PDA

Просмотр полной версии : Вызов программы в основной программе



MadJOk
08.12.2014, 10:56
Здрасти!
Сильно не пинайте!

Ситуация
Есть основная программа PLC_PRG. Так же есть еще пару не основных программ. В основной программе необходимо запустить другие программы. Другие программы написаны на SFC. Пробовал через "Конфигуратор задач". По идее хочу вызывать программу "Obrazec" по событию "Start5=true". На деле программа вызывается без этого события.
15598

То есть нажимая старт ПЛК, но не меняя переменную Start5(изначально FALSE) происходит вот такая картина:

15599

!ПОМОГИТЕ!

petera
08.12.2014, 12:31
А где видно, что она вызывается? На нижней картинке видно только, что активным является начальный шаг "Init", а дальше ни каких действий выполнено не будет.
Учтите, что программа на SFC из нескольких шагов не выполняется полностью за один цикл ПЛК или за один вызов по событию. Снимется событие и программа на SFC "затормозиться" на каком-то шаге, появится событие -продолжится с этого места(шага), а не с начала.

MadJOk
08.12.2014, 18:59
А где видно, что она вызывается? На нижней картинке видно только, что активным является начальный шаг "Init", а дальше ни каких действий выполнено не будет.
Учтите, что программа на SFC из нескольких шагов не выполняется полностью за один цикл ПЛК или за один вызов по событию. Снимется событие и программа на SFC "затормозиться" на каком-то шаге, появится событие -продолжится с этого места(шага), а не с начала.

Она висит на Init и в скором времени зацикливается. Вот в том то и подвох. Я знаю как работает ПЛК и этот язык. Но "зависание" на этом шаге, грозит зависанию ПЛК. Проверял.

petera
08.12.2014, 22:16
Она висит на Init и в скором времени зацикливается. Вот в том то и подвох. Я знаю как работает ПЛК и этот язык. Но "зависание" на этом шаге, грозит зависанию ПЛК. Проверял.
Значит не все знаете.
Вариант "по событию" в конфигурации задач работает не так, как Вам кажется.
15602

Событие не есть сигнал разрешения непрерывного выполнения программы. Задача по событию -однократный вызов программы в момент наступления события, в Вашем случае однократное обращение к действиям/переходам текущего шага. Затем не смотря на то, что Вы видите в программе SFC текущий шаг активным(синий цвет) действия в нем не выполняются до следующего фронта события!

Кроме того, зачем городить этот огород? На SFC довольно просто сделать обработку событий без использования конфигурации задач.