В CoDeSys 2.3 есть такая тонкость: в шаге INIT "step attributes" использовать нельзя.
Внутри исполнитель так устроен, что для 'завода' механизма атрибутов, SFC схема должна как минимум один переход пройти.
Вообще шаг INIT не делает никакой внутренней инициализации. Оставлять его пустым совершенно нормально. Возможно, по ходу развития прикладной программы, возникнет нужда делать некие подготовительные/инициализационные вычисления, тогда он и пригодится.
Если внешний SFC POU ушел на другой шаг, то вложенный SFC POU просто перестает вызываться и более ничего. В итоге 1) он естественно не доработает свою задержку 2) при повторном вызове (когда внешний SFC POU опять придет на шаг, где он вызывается), то пойдет он не с INIT, а с того места, где был брошен.
Если надо чтобы внешний SFC работал с оглядкой на внутренний, то лучше во внутреннем POU сделать некий выход-флаг (типа – Рядовой Петров стрельбу закончил!) и завязать его в разрешении перехода внешнего POU.





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