Как обстоят дела в TwinCAT 2:
- Рантайм может исполнятся только на одном ядре.
- Рантайм работает только в 32-х разрядных системах.
- Выбор ядра на котором будет выполняться рантайм производится через реестр (можно считать, что 98% пользователей об этом не знает).
Как обстоят дела в TwinCAT 3:
- Отзывчивость (Latency) меньше одной микросекунды (на тестовом Intel Core i5).
- Настраиваемый уровень предупреждений превышения уровня отзывчивости: если вероятен сильный джиттер (jitter, дрожание, отклонение) — можно задать уровень паники. Будет вылезать мутная табличка, что на этапе наладки скрасит скудность средств отладки производительности.
- Вроде бы гарантируют не превышение отведенного времени для TwinCAT. Вероятно, в случае, когда TwinCAT нагружен чересчур сильно, он перестанет отнимать время у бедного Windows. И по косвенным результатам, этому уже есть подтверждения.
Нюансы многоядерности
Задачи цифрового управления движением NC SAF и NC SVB должны быть закреплены за одним ядром. Для CNC такого ограничения нет.
Для запуска TwinCAT и Windows на одном и том же ядре в 64-х разрядной системе необходима поддержка процессором VT-x технологии. Во всех остальных случаях (AMD, старые процессоры, виртуальные машины и т. п.), придется запускать TwinCAT на отдельном ядре. Причем для TwinCAT, ядро нужно изолировать от Windows, т. е. уделить TwinCAT 100% процессорного времени.
Гипертрединг рекомендуется выключить т. к. псевдо-полу-ядра очень тесно взаимодействуют в плане блоков процессора, кеша, памяти и прочих устройств в единственном числе (физически — это по прежнему одно ядро, поэтому возможно нарушение синхронизации).
Взаимодействие ПЛК-модулей
Когда ПЛК-задачи запускаются на разных ядрах, у нас все еще остается общая память и ряд других общих ресурсов. Поэтому возможны несколько способов обмена данными: одни быстрее, другие — надежнее.
1. Маппинг данных между операционными образами.
- Доступно для всех языков.
- Гарантируется целостность данных.
- Передача выполняется синхронно с тактами задачи (пульс задачи, task pulse).
2. Указатель на область данных.
- Не гарантирует целостности данных.
- Прямой синхронный доступ из программы (данные никуда не копируются, прямой доступ к ним).
3. Вызов методов через интерфейс.
- Прямой, синхронный доступ.
- Не гарантируется целостность данных
4. Протокол ADS.
- Асинхронный и событийный способы доступа.
- Клиент-сервер.
- Вертикальное и горизонтальное применение для обмена данными.
- Доступен обмен между ядрами.
- Доступен обмен по локальной/глобальной сети (например, через TCP/IP).
- Целостность данных — гарантируется.
No comments
Post a Comment
Note: Only a member of this blog may post a comment.