Постоянное чтение переменных в Twincat 3 с помощью C# API - PullRequest
1 голос
/ 25 мая 2020

Я хочу непрерывно читать множество переменных (быстрее 10 Гц) через клиент ADS C#. Однако в документации в примерах переменные читаются только один раз. 1006 * Каким образом рекомендуется использовать Twincat3 при использовании c#?

1 Ответ

2 голосов
/ 26 мая 2020

Есть разные способы сделать это. Для меня лучше всего подходит установка дескриптора уведомления на 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

Дескриптор уведомления является хорошим 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...