Есть разные способы сделать это. Для меня лучше всего подходит установка дескриптора уведомления на Toggle Bit в PL C (порт 851 TC3), может быть что-то вроде этого:
// tic for ADS notification, imod used for cycle adjustment
diCounter := diCounter + 1;
IF (diCounter MOD imod = 0)
THEN
bTic := NOT bTic;
END_IF
![toggle bit in PLC](https://i.stack.imgur.com/3VC98.png)
Дескриптор уведомления является хорошим ti c в реальном времени для передачи данных в C#. Это прекрасно работает вплоть до цикла 10 мс, если TwinCAT работает на изолированном ядре. На контроллерах Beckhoff эта связь с приложением пользовательского режима стабильна до 1 мс. По крайней мере, это мой опыт относительно детерминированного c оборудования в реальном времени.
Теперь уведомление циклически приходит в C#, с этим сигналом можно использовать команду ADS sum для получения нескольких переменных в одном запросе. Это также настоятельно рекомендуется для снижения накладных расходов на связь. Команды TC3 ADS SUM. NET пример:
https://infosys.beckhoff.de/english.php?content=.. / content / 1033 / tc3_adssamples_net / 185258507.html & id = 8424732030635156090