Никак не могу разобраться, как в CoDeSys, вызвать подпрограмму по прерыванию. Точнее без внешнего воздействия подпрограмма сама вызывается, хотя в Конфигураторе задач ставлю галку по событию, и указываю событие, воздействие на вход контроллера.
И еще вопрос, может ли CoDeSys управлять двумя программами одновременно, т.е. параллельно? Тогда и прерывание не нужно.
Задача такая. Нужно управлять одним механизмом. Здесь все понятно. Порядок действий этого механизма ясен. Одно действие идет за другим, по кругу. Но нужно еще, управлять небольшим механизмом, имеющим два датчика, и мотор. Пришел сигнал с датчика, включился мотор в одну сторону. Сигнал пропал, контроллер выключил мотор. Так и с другим датчиком, если тот сработал, то тот же мотор включился в другую сторону, сигнал с другого датчика пропал, мотор снова выключился. Так и работает от датчика к датчику.
Перепробовал все. Написал простую программу, выставил приоритеты по прерыванию. Никак не могу понять логику. Может надо пробовать на живом контроллере, а то я использую режим эмуляции.
Посмотрите что не так в программе. Имена задавал, как рука легла. Плохо то, что негде прочитать, кроме как в "сухом" "Руководстве по CoDeSys"