Спасибо за ответ! Дело в том, что у меня семь датчиков в основной программе, плюс два на стороне. Опрашиваются они последовательно. В этом случае программу удобней писать на языке SFC. Шаги будут идти от датчика к датчику. А те два могут включиться в любой момент, и есть комбинация, когда они оба выключены. Когда писал ответ, подумал, да, можно опрашивать состояние трех датчиков, и обойтись без прерывания. То – же получится, но с прерыванием проще организовать работу. Меньше ветвлений.
Кстати прерывания заработали. Не могу однозначно ответить, что было, но здесь есть одно правило. PLK_PRG, нужно убрать, и создать программу с другим именем. В конфигураторе создать новую задачу, добавить имя созданной программы, и указать в конфигураторе, что она свободная, т.е. если она закончит свою работу, то начнет все сначала. Приоритет ставим 1. PLK_PRG в этом случае будет не активна, думаю, из-за ее специфических свойств. А дальше пишем нужную программу (подпрограмму). В конфигураторе создаем задачу, вставляем нашу подпрограмму. Ставим приоритет 2 и указываем, что она работает по событию. Указываем событие, имя входа ПЛК. И все заработало. Создавал для проверки две программы. Одна работала, другая сразу же вызывалась. Помогло, когда удалил старую, и по новой ее создал. И все - таки, есть неоднозначности. Мне кажется, что дело в режиме эмуляции. Нужно такие вещи пробовать на "живом" контроллере. Спасибо за ответы, помогли, в особенности с присвоением в конфигураторе имени, автоматически получаем глобальную переменную. Непонятно мне что делать с вложением TASKPRIMER.EXP, если не затруднит, объясните. С уважением!