Показано с 1 по 10 из 14

Тема: тонкости вложенных шагов Sfc

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от Kiselev Посмотреть сообщение
    ...И вообще можете пояснить как работает шаг INIT в Codesys? Что с ним можно делать, а что нельзя?Что именно он "инициализирует"?
    В CoDeSys 2.3 есть такая тонкость: в шаге INIT "step attributes" использовать нельзя.
    Внутри исполнитель так устроен, что для 'завода' механизма атрибутов, SFC схема должна как минимум один переход пройти.

    Вообще шаг INIT не делает никакой внутренней инициализации. Оставлять его пустым совершенно нормально. Возможно, по ходу развития прикладной программы, возникнет нужда делать некие подготовительные/инициализационные вычисления, тогда он и пригодится.

    Цитата Сообщение от Kiselev Посмотреть сообщение
    Какие операции при этом остаются "за сценой" от прикладника? как осуществляется выход из подобной "вложенности" при наступлении условия перехода на следующий внешний шаг? вложенная структура успевает доработать или же прерывается?
    Если внешний SFC POU ушел на другой шаг, то вложенный SFC POU просто перестает вызываться и более ничего. В итоге 1) он естественно не доработает свою задержку 2) при повторном вызове (когда внешний SFC POU опять придет на шаг, где он вызывается), то пойдет он не с INIT, а с того места, где был брошен.

    Если надо чтобы внешний SFC работал с оглядкой на внутренний, то лучше во внутреннем POU сделать некий выход-флаг (типа – Рядовой Петров стрельбу закончил!) и завязать его в разрешении перехода внешнего POU.
    Последний раз редактировалось Игорь Петров; 19.06.2008 в 09:13.

  2. #2
    незарегистрированный
    Гость

    По умолчанию

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    В CoDeSys 2.3 есть такая тонкость: в шаге INIT "step attributes" использовать нельзя.
    Странно. У Lenze в их Drive PLC developer studio (их вариант codesys) шаг INIT можно задавать, там даже примеры фирменные были: POU для работы с блоками распределенного ввода-вывода. Заданная время "простоя" INIT требовалось для аппаратной инициализации CANbus.


    Если внешний SFC POU ушел на другой шаг, то вложенный SFC POU просто перестает вызываться и более ничего. В итоге 1) он естественно не доработает свою задержку 2) при повторном вызове (когда внешний SFC POU опять придет на шаг, где он вызывается), то пойдет он не с INIT, а с того места, где был брошен.

    внешнего POU.
    А что делать, если в ситуации, описанной Вами в пункте 2, требуется начать с INIT, а не с того места, где он был брошен?

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •