Программирование логических выражений и триггеров

 

Программа контроллера разделяется на блоки (Network), которые выполняются последовательно сверху вниз. Каждый блок начинается от вертикальной линии. Принято, что на этой линии всегда высокий уровень сигнала (логическая единица). Чтобы запрограммировать логическое выражение достаточно использовать 2 вида контактов (нормально разомкнутый и нормально замкнутый) и катушку (см. рис. 4).

 

Рис.4. Программирование логического выражения

 

Каждый контакт связан со своей переменной типа Bool. Значение этой переменной определяет состояние контакта. Нормальное состояние контакта – это состояние, когда его переменная равна логическому нулю. Когда переменная контакта равна логической единице, состояние контакта противоположно нормальному. Катушка одним выводом подключается к контактной схеме, а другим – к «земле», т.е. точке с нулевым потенциалом. В зависимости от состояния контактов на катушке может оказаться высокое или низкое напряжение. Соответственно переменной катушки (тоже типа Bool) будет присвоено значение логической единицы или логического нуля.

При составлении схемы удобно использовать кнопки, расположенные в верхней части экрана рабочей среды Step-7 (рис.5). Обратите внимание на кнопки BranchOpen и Branch Closed. С их помощью можно создавать параллельные ветви схемы. Для удаления какой-либо части схемы её необходимо выделить с помощью мыши и нажать Delete.

 

 

Рис.5. Кнопки для составления лестничной схемы.

 

Для вставки нового блока Network используйте команду Insert Network, которую можно запустить из меню, появляющегося при щелчке правой кнопкой мыши. Чтобы удалить весь блок Network выделите слово Network щелчком мыши и нажмите Delete.

На рис.6 показан пример использования элемента Not, который позволяет выполнить инверсию всего логического выражения.

Для программирования RS-триггера используются включающая и выключающая катушки (рис.7).

 

 

Рис.6. Программирование логического выражения

 

Рис.7. Пример программировании RS-триггера

 

Катушка установки (S-катушка) при подаче на неё высокого уровня напряжения установит свою переменную в единицу (S-катушка может только устанавливать в единицу, но не может сбрасывать в ноль). Катушка сброса (R-катушка) при подаче на неё высокого уровня напряжения сбросит свою переменную в ноль (R-катушка может только сбрасывать в ноль, но не может устанавливать в единицу). Применение S-катушки и R-катушки для одной и той же переменной позволяет реализовать RS-триггер. Так в примере на рис.7 переменная Z будет установлена в 1 если хотя бы одна их переменных A или B равна 1, и будет сброшена в ноль, если переменная С равна единице. Если же одновременно выполняются условия сброса и установки, то приоритетнее окажется тот блок Network, который расположен ниже. Если в примере на рис.7 A=1 и C=1, то переменная Z будет сброшена в ноль.

 

Рис.8. Пример использования детекторов

положительного и отрицательного фронта

 

Детектор положительного фронта (P) левым выводом подключается к контактной схеме, а правым – к катушке. Переменная детектора хранит значение сигнала на левом выводе, которое было в предыдущем цикле сканирования. Если в текущем цикле на левом выводе 1, а в предыдущем был 0, то это называется положительным фронтом сигнала. В этом случае на правом выводе будет установлена 1 (но только в одном цикле, когда произошел переход входного сигнала из 0 в 1). Детектор отрицательного фронта (N) устанавливает выходной сигнал в 1, если происходит переход входного сигнала из 1 в 0 (единица на выходе также сохраняется только на 1 цикл).

 

Элементы сравнения

 

Элементы сравнения расположены в папке Comparator библиотеки элементов. Каждый элемент сравнения имеет логический вход, два входа сравниваемых величин и один логический выход. Элементы сравнения делятся по виду выполняемой операции: EQ – элемент, проверяющий равенство, NE – элемент, проверяющий неравенство, GT – элемент, проверяющий условие «больше», LT – элемент, проверяющий условие «меньше», GE – элемент, проверяющий условие «больше или равно», LE – элемент, проверяющий условие «меньше или равно». Элементы сравнения также делятся по типу сравниваемых данных: I – для данных типа Int, D – для данных типа Dint, R – для данных типа Real.

 

Рис.9. Пример использования элемента сравнения.

Так например (рис.9), элемент GE_I – это элемент, проверяющий условие «больше или равно» для данных типа Int. Логический вход используется для активизации элемента (если он подключен непосредственно к линии высокого уровня сигнала, то сравнение осуществляется в каждом цикле сканирования). На логическом выходе появляется результат сравнения – 0, если условие ложно и 1, если оно истинно. В примерен на рис.9 логическая переменная, находящаяся по адресу M5.6 получит значение 1, если переменная типа Int, находящаяся по адресу MW26 имеет значение большее или равное 20 (в противном случае M5.6 получит значение 0).

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: