Цитата Сообщение от Sergeba Посмотреть сообщение
Да, но судя по коду (в примерах), насколько я понял, эти шаги исполняются один за другим, за одну итерацию - если это так, то смысла в Step не вижу. Это же не оператор Case. Следуя примеру, я так и сделал для описания своего модуля (реле с управлением), использовал Step. В результате модуль опрашивался реже и реже, .пока вообще перестал опрашиваться, причём опрос происходил только по первой описываемой функции, вторая и третья по очереди (были разнесены на разные Step) не опрашивались Read у них висел всё время в False. После чего я описал модуль оператором Case, параметр для оператора передавал из основной программы - так опрос пошёл по всем трём функциям, только пришлось подобрать тайминги выполнения каждой из них, поскольку, к примеру, срабатывание реле не происходило, если обращение функции происходило меньше 1 сек.

Хотя... смысл в Step понятен, но тогда получается, что ещё нужно описать задержки между опросами разных функций. Т.к. мой модуль отказывается опрашиваться...Причём, в моём случае эти задержки различны по времени.
Что значит за одну итерацию?
Мы переходим на следующий Step, только, когда получили ответ, что опрос закончен, т.е. Complete = true.
Если ваш модуль неповоротливый и не может сразу после обработки одного запроса, тут же отвечать на другой, тогда сделайте "пустой" шаг, на котором просто ждите определенное время (100, 200 мс).

А вот параметр для case передавать из основной программы - это идеологически неверно! Модуль сам решает, как опрашивать свои регистры! Зачем еще что-то писать в основной программе!???