- •Предисловие
- •Введение
- •1. Основные особенности языков программирования
- •2. Язык функциональных блок-схем - fbd
- •2.1. Основные понятия
- •1.2. Функции и функциональные блоки
- •Группа «Arithmetic»
- •2.3. Пример программы на языке fbd
- •3.1. Контакты
- •3.2. Катушки
- •3. Язык лестничных схем – ld
- •3.4. Функции и функциональные блоки
- •3.5. Пример программы на языке ld
- •4. Язык последовательных функциональных схем – sfc
- •4.1. Описание элементов sfc
- •4.2 Задание свойств шага
- •4.3 Задание действий
- •4.4. Переход
- •4.5. Пример программы на языке sfc
- •5. Язык структурированного текста – st
- •5.1. Операторы
- •Описание операторов
- •5.2. Примеры использования операторов в простых инструкциях
- •5.3. Сложные инструкции
- •5.4. Использование функций и функциональных блоков
- •5.5. Примеры программ на языке st
- •5.6. Пример программы на языках sfc и st
- •6. Язык списка инструкций – il
- •6.1. Операторы и модификаторы
- •Описание операторов
- •Описание модификаторов
- •6.2. Примеры выполнения инструкций
- •6.3. Использование функций и функциональных блоков
- •6.4. Пример программы на языке il
- •Заключение
- •Библиографический список
- •Оглавление
- •Языки программирования в среде Concept
- •443100, Г. Самара, ул. Молодогвардейская, 244. Главный корпус
- •443100, Г. Самара, ул. Молодогвардейская, 244. Корпус 8
3.4. Функции и функциональные блоки
В LD доступны практически все FFB, кроме AND_BOOL, NOT_BOOL, OR_BOOL, R_TRIG и F_TRIG. Их функциональные возможности реализуются с помощью контактов.
FFB будут редактироваться, если, по крайней мере, один булев вход или вход EN связан (через контакт или другой FFB) с левой шиной питания.
3.5. Пример программы на языке ld
В примере приведен возможный вариант программной реализации системы управления установкой для смешивания жидкостей (рис. 3.3), рассмотренной в п. 1.3. Алгоритм управления, подключение датчиков и выходных устройств, объявление переменных приведены в п. 2.3.
В основном программа на рис. 3.3 аналогична программе на рис. 2.13. Отличие заключается в реализации трех состояний конечного автомата. Эти состояния реализованы на двух RS-триггерах с доминирующим сбросом – S1, R1 и S2, R2. В исходном состоянии установки состояние триггеров – 00.
Вопросы для самоконтроля
Назовите назначение основных элементов языка LD.
Перечислите функции, реализуемые разновидностями контактов.
Перечислите функции, реализуемые разновидностями катушек.
Назовите различие между языками LD и FBD при реализации логических и арифметических функций.
Задания для самостоятельной работы
Приведите пример программной реализации логической функции для переменных типа BOOL:
Приведите пример программной реализации логической функции для переменных типа BOOL:
Приведите пример программной реализации RS–триггера (с доминирующим сбросом).
Приведите пример программной реализации SR–триггера (с доминирующей установкой).
Приведите пример программной реализации функции A=(B+C)/D – E*F для переменных типа REAL.
Приведите пример программной реализации формирователя импульса длительностью 5 секунд, запускаемого переменной Puls типа BOOL.
Приведите пример реализации программы по п. 1.3 для измененного алгоритма – клапан К1 дополнительно должен включаться при естественном охлаждении жидкости до 50оС.
4. Язык последовательных функциональных схем – sfc
Язык SFC (Sequential Function Chart) позволяет простыми средствами описать логическую часть программы. Элементами языка являются шаг, переход, связь, прыжок, альтернативное ответвление, параллельное ответвление, альтернативное соединение и параллельное соединение.
Н
а
рис. 4.1 приведены условные графические
обозначения элементов SFC.
4.1. Описание элементов sfc
Основными объектами SFC являются шаги и переходы, связанные между собой с помощью связей. Должны выполняться следующие правила чередования шагов и переходов:
– два шага не могут следовать непосредственно друг за другом - они должны всегда разделяться переходом;
– два перехода не должны следовать непосредственно друг за другом – между ними должен находиться шаг.
Шаг (Step).
Шаг представлен блоком (рис. 4.1.б), содержащим имя шага. Он предназначен для выполнения действий (присвоение значений переменным типа BOOL и отсчета времени), заданных в этом шаге. Шаг, в котором действия не заданы, называется пустым шагом.
Действия в шаге выполняются только тогда, когда он активен. В пассивном шаге действия не выполняются. Шаг становится активным, когда условие предшествующего ему перехода истинно. Шаг при нормальных обстоятельствах становится пассивным, когда действия, заданные в этом шаге, выполнены и условие перехода, следующего за ним, истинно.
Частным случаем шага является шаг инициализации (рис. 4.1.а). Начальное состояние секции SFC характеризуется шагом инициализации, который является активным при инициализации проекта, содержащего секцию. Первый шаг в секции SFC должен быть шагом инициализации.
Переход (Transition).
Переход (рис. 4.1.г) определяет условие (истина или ложь) активизации следующего за ним шага. Переход разрешается, если в предшествующем шаге выполнены все действия. Переход заканчивается, если переход разрешен и выполняется условие перехода.
Прыжок (Jump).
Прыжок (рис. 4.1.д) позволяет передать управление шагу, имя которого указано в обозначении прыжка. Прыжок из ветви в параллельную ветвь запрещается.
Связь (Link).
С помощью связей (рис. 4.1.в) передается управление от одного элемента к другому. Связь создается автоматически, если элементы размещаются в соседних по вертикали клетках.
Н
а
рис. 4.2 приведена простая циклическая
программа, состоящая из одной ветви.
Программа выполняется следующим образом:
1) при инициализации проекта активным становится шаг инициализации S_3_1. После выполнения действий, заданных в этом шаге и, если условие «а» перехода истинно, то выполнятся переход к шагу S_3_2;
2) после выполнения действий, заданных в шаге S_3_2, и, если условие «b» перехода истинно, то выполнятся переход к шагу S_3_3.
3) после выполнения действий, заданных в шаге S_3_3 и если условие «с» перехода истинно, то с помощью прыжка выполнятся переход к шагу S_3_2 (переход ко второму циклу программы) и т.д.
Альтернативное ответвление (Alternative branch).
Альтернативное ответвление позволяет создавать ветвления в программе. Альтернативное ответвление в секции SFC разрешается устанавливать после шага. Каждая ветвь должна начинаться с перехода. Переходы в ветви обрабатываются слева направо, и разрешается выполнение только одной ветви. Вначале проверяется условие перехода в первую (левую) ветвь и, если это условие истинно, будет выполняться первая ветвь независимо от выполнения условий перехода в другие ветви. Если условие перехода в первую ветвь ложно, то проверяется условие перехода во вторую ветвь и, если оно ложно, проверяется условие перехода в третью ветвь и т.д.
Все ветви должны быть соединены в одну ветвь с помощью альтернативных соединений или прыжков.
На рис. 4.3 приведен пример альтернативного ответвления.
П
осле
выполнения действий в шаге S_3_10 проверяется
условие «а» перехода и если оно истинно,
то активизируется шаг S_3_11 (осуществляется
переход от шага S_3_10 к шагу S_3_11) независимо
от состояний условий «b» и «c». Переход
от шага S_3_10 к шагу S_3_12 оказывается
возможным, если условие «а» перехода
ложно, условие «b» перехода истинно, а
состояние условия «с» любое. Переход
от шага S_3_10 к шагу S_3_13 оказывается
возможным, если условия «а» и «b» перехода
ложные, а условие перехода «с» истинно.
Н
а
рис. 4.4 приведен пример использования
альтернативных ответвлений совместно
с прыжками для организации условных
переходов. После выполнения операций
в шаге S_3_16 в зависимости от состояния
условий «b», «c» и «d» может выполниться
переход к шагу S_3_17, или к шагу S_3_18, или
к шагу S_3_15.
Например, если условие «b» истинно, то независимо от состояния условий «c» и «d» выполнится переход к шагу S_3_17. Если условие «b» ложно, условие «c» истинно, то независимо от состояния условия «d» выполняется переход к шагу S_3_18. Если условия «b» и «c» ложные, а условие «d» истинно, то выполняется переход к шагу S_3_15.
Параллельное ответвление (Parallel branch).
Параллельное ответвление (рис. 4.1.ж) позволяет передавать управление нескольким параллельным ветвям, при этом ветви обрабатываются одновременно.
Н
а
рис. 4.5 приведен пример параллельного
ответвления. Переход к выполнению
операций в шагах S_3_21, S_3_22 и S_3_23 оказывается
возможным, если выполнены операции в
шаге S_3_20 и условие «а» перехода истинно.
Альтернативное соединение (Alternative joint).
Альтернативное соединение позволяет соединить несколько ветвей в одну ветвь, где затем продолжается обработка. Это соединение также оказывается возможным с помощью прыжков.
Н
а
рис. 4.6 приведен пример объединения трех
ветвей в одну с помощью альтернативного
соединения и прыжка. Переход из ветви,
содержащей шаг S_3_33, к шагу S_3_35 оказывается
возможным, если в шаге S_3_33 выполнены
операции и условие «d» перехода истинно.
Переход из ветви, содержащей шаг S_3_31, к
шагу S_3_35 оказывается возможным, если в
шаге S_3_31 выполнены операции и условие
«b» перехода истинно. Переход из ветви,
содержащей шаг S_3_34, к шагу S_3_35 оказывается
возможным, если в шаге S_3_34 выполнены
операции и условие «е» перехода истинно.
Параллельное соединение (Parallel joint).
П
араллельное
соединение (рис. 4.1з) применяется для
соединения нескольких ветвей в одну.
Соединение выполняется только после
выполнения всех операций во всех ветвях.
На рис. 4.7 приведен пример параллельного соединения трех ветвей в одну. Переход в шаг S_3_43 разрешен только тогда, когда выполнены все операции в шагах S_3_40, S_3_41 и S_3_42 и условие «d» перехода истинно.
Примечание: Альтернативное ответвление не может непосредственно следовать за параллельным соединением. Между ними должны быть размещены переход с шагом.
