Поясню по 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.





Ответить с цитированием