Цитата Сообщение от Sergeba Посмотреть сообщение
Ещё проблема... в CDS3 на "Enable := NOT Mdl.pDisp^.ReadInpRegs.Read" ругается, посмотрел библиотеку Modbus... там нет переменной READ... Как задавать Enable для опроса? Read это локальная переменная, странно что к ней есть доступ... Могу ли я использовать для этих целей Complete?
Поясню по Enable.

Все блоки из библиотеки Modbus.lib активируются по переднему фронту переменной Enable.
Если посмотреть реализации, которые предлагают в примерах от разработчика библиотеки Modbus.lib, там можно встретить такие конструкции.
Шаг Х
Блок1(Enable := true);
if Блок1.Complete then
Блок1(Enable := false);
end_if;

Так пишется, чтобы, когда мы в следующий раз попали на шаг Х снова появился фронт на входе Enable.
На мой взгляд, так некрасиво.

Вызов

Шаг Х
Блок1(Enable := not Блок1.Read);

позволяет формировать фронт, не дублируя вызов Блока1.
Так при первом заходе на шаг Х (Read = false) и мы сформировали фронт на входе Enable.
При втором заходе Read = true и мы записали в Enabel ложь. А значит, когда в следующий раз мы попадем на шаг Х, то снова появиться фронт на входе Enable.