2 Режим эмуляции
defaultValue- Подробности
- Категория: Простое и понятное программирование в «CODESYS».
Весьма часто в технологическом программировании, то есть при создании алгоритмов работы оборудования возникает следующая задача. Вам необходимо разделить условия включения какого-то исполнительного механизма и условия его отключения. К примеру, при управлении вентилятором условием его запуска может быть высокая температура в помещении. А условием остановки того же вентилятора будет окончание отсчета заданного времени.
Для того, чтобы реализовать такие раздельные условия, в CoDeSys реализованы операции установки и сброса значения дискретной переменной. Наши входы и выходы ПЛК как раз объявлены, как дискретные. Таким образом, мы можем задать включение выхода out3, если есть сигнал на входе in3. Выключение out3 возможно тогда, когда есть сигнал на входе in4. Для реализации этого алгоритма мы выделяем линию связи рядом с переменной out3 .

Затем находим на панели быстрого доступа кнопку и нажимаем ее ЛКМ. Рядом с нашей выходной переменной появляется символ
. Теперь к переменной out3 в данной цепочке будет применена операция установки. Если Вы еще раз нажмете на кнопку
,то появится символ
, то есть будет настроена операция сброса. При следующем нажатии
система вернет цепочку в состояние обычного присваивания, и дополнительные символы
и
будут автоматически убраны. Потренируйтесь переключать операции установки и сброса. Вместо использования кнопки на панели быстрого доступа Вы можете найти пункт Set/Reset в контекстном меню . Это меню, напомним, вызывается нажатием ПКМ, сделать это необходимо на выделенном кусочке линии связи. В итоге, у Вас должно получиться четыре цепочки, изображенные на рисунке:

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

Если они все же есть, удалите их вручную.
Когда ошибки исправлены, необходимо включить режим эмуляции. Вам необходимо зайти в меню «Онлайн» и поставить галочку в пункте «Режим эмуляции».

В дальнейшем мы эту галочку уберем. А пока запускаем проект на исполнение («Онлайн» -«Подключение» или AIt+F8). Помним о необходимости запустить выполнение нашей программы, для этого нажимаем кнопку F5.
Внешний вид вашей программы должен быть похожим на то, что изображено на рисунке ниже.

В CoDeSys принята следующая цветовая кодировка: черным цветом подсвечиваются те переменные, значение которых False («ложь»). Синий цвет используется тогда, когда в переменную записано значение True. Теми же цветами отображаются линии связи при отсутствии или прохождении через них сигнала. К примеру, в результате инверсии на выходе out2 у нас появилось значение «истина».
Для того, чтобы изменить значения входных переменных и повлиять таким образом на состояние выходов мы используем уже знакомый способ. Т.к. в эмуляции работать с физическими кнопками и тумблерами мы не можем, то задаем значения непосредственно в окне CoDeSys. Необходимо дважды нажать ЛКМ на нужной переменной, чтобы поменять ее значение

и продолжать нажимать до тех пор, пока не появится то, что Вам нужно. Для записи значений в программу мы используем уже знакомую Вам комбинацию клавиш Ctrl+F7 .
Немного подробнее рассмотрим работу операций установки и сброса, это две наших нижних цепочки. Когда в переменных in3 и in4 значение False, переменная out3 будет оставаться в том состоянии, в котором она находилась до выполнения этих операций.

Т.е. она сохраняет свое значение.

Когда на входе in3 появляется значение True, происходит включение выхода out3.

В свою очередь когда на входе in4 появляется значение True, происходит отключение выхода оut3.

Когда же на обоих входа присутствует значение «истина», необходимо оценить очередность выполнения операций. Здесь действует следующий принцип: последняя операция, произведенная с переменной, задает ее состояние в момент окончания цикла ПЛК. Мы уже говорили, что контроллер (и эмуляции тоже) работают циклично. И созданный нами алгоритм обрабатывается последовательно в соответствии с номерами операций. Порядок выполнения мы с Вами задавали перед запуском проекта на исполнение. В нашем проекте очередность выполнения цепочек идет сверху вниз. Таким образом, операция сброса у нас производится после операции установки. И значит, что последняя операция - это сброс. Поэтому на рисунке

переменная out3 имеет значение False и окрашена в черный цвет. Когда этот алгоритм будет загружен в ПЛК, контакты выходного реле контроллера, связанные с переменной out3, в подобной ситуации будут разомкнуты. Надеемся, что эта особенность теперь Вам понятна. Проверьте самостоятельно, как работают операции установки и сброса.
По сути дела, последние две цепочки нашего алгоритма представляют собой реализацию обыкновенного RS-триггера, т.е. триггера с приоритетом сброса. Если мы поменяем местами порядок обработки последних цепочек и поставим сброс перед установкой, то получим другое значение на выходе. Здесь мы реализовали SR-триггер, имеющий приоритет по сигналу установки. И при наличии значения «истина» одновременно на входах in3 и in4 выходная переменная останется включенной.

Статья создана на основе книги Кирилла Гайнутдинова "Простое и понятное программирование в CODESYS".
defaultValue

