Смекни!
smekni.com

Ельцина Кафедра «Электронное машиностроение» (стр. 2 из 5)

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

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

При составлении схемы удобно использовать кнопки, расположенные в верхней части экрана рабочей среды Step-7 (рис.5). Обратите внимание на кнопки Branch Open и 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).

Пересылка данных и преобразование типов

Для пересылки данных используется элемент Move. Этот элемент имеет логические вход и выход, вход источника данных и выход приёмника данных. На вход источника данных может подключаться переменная или константа, а на выход приёмника данных только переменная. Операция пересылки происходит при условии, что на логический вход приходит сигнал 1. Если операция выполнена, то 1 появляется на логическом выходе. Таким образом, элементы Move можно соединять по цепочке, они будут выполняться слева направо.

Рис.10. Пример пересылки данных и преобразования типов

В примере на рис.10 целочисленной переменной с адресом MW2 присваивается значение 23, а вещественной переменной с адресом MD10 присваивается значение –1,2. Также рис.10 показывает пример преобразования типов. Элемент Round округляет вещественное число (переменная MD14 типа Real) до ближайшего целого. Результат записывается в переменную MD50 типа Dint. Следующий элемент Move выполняет преобразование типа Dint (переменная MD50) в тип Int (переменная MW0).

Различные элементы преобразования типов находятся в папке Converter библиотеки элементов.

Арифметические операции

Элементы арифметических операций находятся в папках библиотеки элементов Integer fct. (для целых чисел) и Floating point fct. (для вещественных чисел). В число этих элементов входят: ADD – элемент сложения, SUB – элемент вычитания, MUL – элемент умножения, DIV – элемент деления. Также в обозначении элемента присутствует буква, обозначающая тип данных для аргументов операции: I – тип Int, DI – тип Dint, R – тип Real. Перечисленные элементы имеют 2 входа для аргументов операции и 1 выход для результата, а также логический вход и логический выход (назначение логических входа и выхода такое же как у элемента Move). На рис.11 показан пример арифметической операции с целыми числами.

Рис.11. Пример выполнения арифметической операции

с целыми числами:

Таймер с задержкой включения

Таймер – программный элемент, предназначенный для реализации временных задержек при выполнении программы. Адрес таймера записывается в виде буквы T с номером таймера (0…255), например Т101, Т102 и т.д. На рис.12 показан вид элемента S_ODT (таймер с задержкой включения) с пояснением назначения входов и выходов и типа данных на входах и выходах. Данный таймер, а также другие виды таймеров находятся в папке Timers библиотеки элементов.

Время, которое будет отсчитывать таймер, задаётся на входе TV константой специального типа S5Time (например, S5T#2S – время 2 секунды, S5T#5S500МS – время 5 секунд, 500 мс или 5,5 секунд).


Рис.12. Элемент «таймер с задержкой включения».

Входы S,R и выход Q предназначены для логических сигналов. В исходном состоянии на выходе Q сигнал 0 (таймер сброшен). Таймер активизируется (начинает отсчёт времени) при условии положительного фронта сигнала (переход от 0 к 1) на входе S при условии, что на входе R сигнал 0. Отсчет времени продолжается при том же условии (на входе S – 1, на входе R – 0). Когда таймер отсчитает заданное время, сигнал на выходе Q станет равным 1 (таймер установлен). Сброс таймера происходит в следующих случаях. Когда сигнал на входе S станет равным нулю, сигнал на выходе Q также станет равным нулю (причём без задержки по времени). Также сброс произойдет если на вход R придёт сигнал 1, причём если затем сигнал на входе R снова станет равным нулю, а сигнал на входе S остаётся равным 1, то таймер не активизируется, т.к. не было положительного фронта на входе S. Если сигнал на входе S станет равным 0 (или сигнал на входе R станет равным 1), когда таймер активен и производит отсчёт времени, то он переходит в неактивное состояние, отсчёт времени прекращается, на выходе Q остаётся сигнал 0. Работу таймера поясняют временные диаграммы (рис.13).