PDA

Просмотр полной версии : Оформление подпрограммы



YuG
25.02.2011, 23:49
Здравствуйте.
Подскажите новичку, как правильно организовать вызов программы написанной на SFC из тела SFC программы.
По подобию таймера TON: подал на IN FALSE – взвел, дал TRUE – поехали, и жди на TON.Q готовности.
На первый взгляд вопрос пустяковый, но у меня не получается отловить завершение выполнения подпрограммы и при этом остановить ее и инициализировать,
т.е. при повторном вызове подпрограмма сразу сообщает о том, что уже справилась и только на третьем проходе начинает нормально исполняться. (каждый второй проход - холостой)

Николаев Андрей
26.02.2011, 00:01
Я бы рекомендовал основную программу писать может быть и на SFC... но вот подпрограммы я бы на SFC не писал...
Вообще работа с SFC - отдельное развлечение... Рекомендую очень подробно ознакомится со всеми особенностями данного языка...
Пример вызова подпрограмм я написал, и выложил на форуме

YuG
26.02.2011, 08:32
спасибо за ответ!
а ссылочку на Ваш пример можно получить.

P.S.
<<Рекомендую очень подробно ознакомится со всеми особенностями данного языка>>
и где можно ознакомиться с особенностями SFC?

Николаев Андрей
26.02.2011, 16:07
http://www.owen.ru/forum/showpost.php?p=38769&postcount=55
По SFC - в мануале по CoDeSys.
Ну и проверяйте работу...

YuG
26.02.2011, 18:20
Спасибо за ссылку!
правда, я там не увидел того, что ожидал.
Хотелось бы уточнить у специалистов, такое решение, как в прикрепленном варианте, корректно или требуются дополнительные действия, предохраняющие от неконтролируемого исполнения подпрограммы.

Пьер
26.04.2011, 10:11
Как организовать связь основной программы с подпрограммой, PLC_PRG черного цвета, а подпрограмма серого и перемнные VAR_GLOBAL в этой подпрограмме равны знакам вопроса (=???), хотя если в основной, они работают порядочно.

swerder
26.04.2011, 11:34
подпрограмма серого, потому что не вызывается из plc_prg
как вызывать спросите? ну хоть справку по кдс почитайте чтоль

Пьер
26.04.2011, 11:46
подпрограмма серого, потому что не вызывается из plc_prg
как вызывать спросите? ну хоть справку по кдс почитайте чтоль

Читал и примеры все проштудировал:o . Свой делаю, по самому простому принципу, с одной переменной в подпрограмме и не хочет работать, думаю может как проинициализировать по особому :confused: Наверное голова не работает.

Николаев Андрей
26.04.2011, 12:03
http://www.owen.ru/forum/showpost.php?p=38769&postcount=55
По SFC - в мануале по CoDeSys.
Ну и проверяйте работу...

Посмотрите таки пример.
Подпрограмма вызывается точно так же, как если бы Вы объявляли блок, к примеру таймера. Естественно от вида подпрограммы условия вызова несколько отличаются. Опять же смотрим пример...

Пьер
26.04.2011, 15:54
Спасибо ребята!