Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование контроллеров для АСУ и мехатронных систем. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Выходные действия
–
действия, которые выполняются однократно в мо
-
мент деактивации шага, т.е. в момент перехода на другой шаг
Активные действия активен соответствующий шаг
–
действия, которые выполняются многократно, пока
.
.
Классификаторы присваиваются МЭК-шагам для определения обработки действия шага. Классификаторы обрабатываются функциональным блоком
SFCActionControl
в проект за счёт плагина табл
. 6.1.
в
IecSfc.library
SFC.
.
Эта библиотека автоматически интегрируется Доступные классификаторы представлены в
6.1. Классификаторы действий
Обозначение
N Не сохранять Действие активно, пока активен шаг
R0 Внеочередной сброс Действие деактивируется
S0 Set (сохранять) CODESYS выполняет действие при активации шага.
Наименование Описание
Действие выполняется до получения сброса, даже если этот шаг уже отключён
L Время ограничено
(time Limited)
D Задержка (time
Delayed)
P Импульс (Pulse) CODESYS выполняет действие один раз при актива-
SD Сохранение и за-
держка (Stored and time Delayed)
DS Задержка и сохране-
ние (Delayed and Stored)
CODESYS выполняет действие, пока шаг активен.
Действие выполняется до тех пор, пока шаг не будет деактивирован или не истечёт заданный интервал времени
CODESYS начинает выполнение действия только по истечении заданного времени после активации шага, и этот шаг всё ещё активен. Действие выполняется до тех пор, пока шаг не будет деактивирован
ции шага
CODESYS начинает выполнение действия только по истечении заданного времени после активации шага. Действие выполняется до тех пор, пока оно не полу­чит сброс
CODESYS начинает выполнение действия только по истечении заданного времени после активации шага, и этот шаг всё ещё активен. Действие выполняется до тех пор, пока оно не получит сброс
SL Сохранение и огра-
ничение по времени
(Stored and time Limited)
CODESYS
Действие выполняется до тех пор, пока не истечёт заданное время или не будет получен сброс
выполняет действие при активации шага.
61
Рис. 6.4. Пример использования действия с классификатором
На рисунке тором
.
При вставке нового шага средой неявные переменные
<
имя шага
<
имя шага
6.4
приведён пример использования действия с классифика
CoDeSys
автоматически объявляются
:
>.x –
>.t –
активность шага (логическая переменная
отражает время, истекшее с момента активации шага
(
таймерная переменная
– TIME).
Доступ к этим переменным возможен в любом месте программы
Пример 1:
следовательность действий: при нажатии на кнопке
(
переменная
разработать программу на
kl_A) и
кнопка
start
SFC,
реализующую следующую по
start
автоматически сбрасывается, в течение клапан остаётся открытым, по прошествии этого времени грамма переходит на начало
Код программы представлен на рис
.
. 6.5.
– BOOL)
.
открывается клапан А
5 с
–
закрывается и про
-
-
-
62
Рис. 6.5. Код программы для примера 1
При запуске (старте контроллера) программа стартует с начального шага
Init и
шаг. Переход осуществляется, когда булевская переменная чение действия: входное
находится в нём пока не выполнится условие перехода на следующий
TRUE.
После этого активным становится шаг
– Step0_entry и
Внутри входного действия
выходное
Step0_entry
start
Step0.
Шаг
– Step0_exit.
прописываются операции, которые
принимает зна
Step0
имеет два
выполняются однократно при переходе на этот шаг, т.е. сбрасывается перемен ная
start и
открывается клапан А
(kl_A:=TRUE;).
Внутри выходного действия
рые выполняются однократно при выходе из шага, т.е. клапан А закрывается
Step0_exit
прописываются операции, кото
.
Переход с шага
Step0
производится при условии
:
,
-
-
-
т.е. когда время активации шага становится больше или равно заданному вре мени
5 с.
При выполнении этого условия осуществляется безусловный переход на
начало программы, на шаг
Init.
CoDeSys
тивных и параллельных мощью ветвей
предоставляет возможность для программирования альтерна
SFC-
последовательностей. Осуществляется это с по
( ).
Параллельные ветви выполняются одновременно. При использовании
альтернативных ветвей
CoDeSys
выполняет только одну из ветвей. Именно ту ветвь, для которой выполнилось соответствующее условие перехода. Следует обратить внимание, что условия, присоединённые к переходам, не являются взаимоисключающими. Для того чтобы программа пошла по одной ветке, надо явно определить исключительность условий перехода
Примеры параллельных и альтернативных ветвей представлены на рис
.
. 6.6.
-
-
-
Линии параллельных ветвей должны начинаться и заканчиваться шагами
(
рис
. 6.6, а).
Линии параллельных ветвей могут содержать другие ветви. Гори
зонтальные линии до и после ветви являются двойными
Выполнение в онлайн-режиме: если предыдущий переход
рис
. 6.6, а)
возвращает
TRUE,
первые шаги в параллельной ветви становятся
-
.
(usl0
на
63
а
)
Рис. 6.6. Виды ветвей:
а – параллельные; б – альтернативные
б
)
активными
новременно, а затем выполняется последующий переход
(Step1 и Step2). CODESYS
обрабатывает отдельные линии ветви од
(usl3).
У альтернативных ветвей горизонтальные связи до и после ветви изобра
жаются одинарными линиями
(
рис
. 6.6, б).
Линии альтернативных ветвей
должны начинаться и заканчиваться переходами. Линии ветвей могут содер
жать другие ветви
Пример 2:
приведённую последовательность действий (рис
1.
При
А и загрузить компонент А в течение
2.
По
начать загрузку компонента В, открыв клапан В
3.
Загрузку
4.
По
вать ещё в течение
.
Разработать приложение на языке
SFC,
реализующее ниже
. 6.7):
нажатии кнопки ПУСК начать процесс, при этом открыть клапан
10 с в
ёмкость
1.
окончании загрузки компонента А, при работающей мешалке М
.
осуществить в течение
15 с.
окончании загрузки компонента В смесь продолжить перемеши
10 с.
-
-
-
-
-
5.
Затем
нии ёмкости
6.
В
клапан С
.
7.
Дать
и выгрузить готовый продукт из ёмкости
смесь перекачать в ёмкость
1
свидетельствует срабатывание датчика реле уровня
ёмкость
2
произвести загрузку компонента С в течение
смеси выдержаться в течение
2,
2. Об
тельствует срабатывание датчика реле уровня
8.
Подготовить
64
линию для приготовления новой партии продукта
включив насос Н
15 с,
после чего открыть клапан
опорожнении ёмкости
LS2.
1. Об LS1.
10 с,
опорожне
открыв
D
2
свиде
.
-
-
SFC?
1.
Для
2.
К
3.
Как
4.
Из
5.
Перечислите
6.
Каким
чего применяется язык последовательных функциональных схем
какой группе языков относится язык
расшифровывается аббревиатура
каких элементов состоит
шагом описывается начальная ситуация программы
Рис. 6.7. Код программы для примера 2
Контрольные вопросы
SFC?
SFC?
SFC-
основные компоненты
программа
SFC.
?
SFC?
Перечислите
7.
8.
Что
такое классификатор действия? Перечислите их
виды действий внутри шагов
.
.
65
9.
LE
C
Как
10.
11.
12.
13.
14.
могут использоваться неявные переменные шага
Перечислите Для
чего используются альтернативные ветви? Приведите пример
Для
чего используются параллельные ветви? Приведите пример
Приведите Приведите
виды ветвей в
правила организации альтернативной ветви правила организации параллельной ветви
Контрольные задания
1.
Разработать приложение на языке
SFC.
?
Как они обозначаются
.
SFC,
реализующее следующий алго
?
.
.
.
-
ритм управления. В ёмкость залить вещество А до уровня шалку. Затем залить вещество С до уровня течение
1 ч.
Выключить мешалку и слить полученную смесь В (рис
2,6 м.
B
Выдержать смесь в аппарате в
A
1,5 м.
Включить ме
. 6.8).
Рис. 6.8
2.
Необходимо реализовать одноконтурную АСР температуры в реакторе
(
рис
. 6.9, а).
При этом необходимо загружать вещество А в течение
5
мин, затем вклю
чить мешалку и поддерживать температуру по заданной программе (рис
-
-
. 6.9, б).
66
ДВ
V2
а)
V1
А
Рис. 6.9
Т
з
t
б)
ТЕ
C
ДВ
а)
B
А
Tz
t
б)
Рис. 6.10
3. Необходимо реализовать одноконтурную АСР температуры в реакторе
(рис. 6.10, а).
Открыть клапан А на 30 с. Затем включить мешалку и поддерживать температуру по заданной программе в течение 1 ч (рис. 6.10, б). Далее открыть клапан В.
4. Разработать приложение на языке SFC, реализующее следующий алго-
ритм управления темперирующей машиной. Залить компоненты в аппарат. Включить мешалку, нагреть массу до 60 °С. При этой температуре вести обра­ботку 4 ч. После этого выключить мешалку и перекачать массу.
ДВ
ИМ1
LЕ
ТЕ
ИМ2
Рис. 6.11
5. Разработать приложение на языке SFC, реализующее следующий алго-
ритм управления. Предварительно аппарат А просушить в течение 10 мин сжа­тым воздухом. Затем закачать реагент, включить мешалку, нагреть до темпера­туры 80 ºС, выключить мешалку, перекачать в аппарат В. Одновременно с про­сушкой аппарата А в аппарат В закачать воду и включить мешалку. Перед за­качкой реагента в аппарат В из него слить воду.
67
реагент
сж. воздух
LE
C
TE
вода
пар
LЕ
М1
ТЕ
А
М2
LЕ
В
Рис. 6.12
6. Разработать приложение на языке SFC, реализующее следующий алго-
ритм управления. В ёмкость загрузить вещество А до уровня 1,5 м. Включить мешалку. Нагреть вещество до 70 °С. Затем загрузить вещество В до уровня
2,6 м. Выдержать смесь в аппарате в течение 1 ч при температуре 70
°
С. Вы-
ключить мешалку и слить полученную смесь С.
A
пар
С
Рис. 6.13
68
Глава 7
СТАНДАРТНЫЕ ОПЕРАТОРЫ, ФУНКЦИИ И
ФУНКЦИОНАЛЬНЫЕ БЛОКИ

7.1. ОПЕРАТОРЫ

CoDeSys V3.5 поддерживает все операторы МЭК 61131-3 (табл. 7.1). Эти
операторы распознаются неявно во всём проекте. Помимо МЭК-операторов,
CoDeSys также поддерживает некоторые нестандартные операторы.
7.1. Стандартные операторы и функции языков IEC
Оператор Функция
Арифметические операции
Работа с данными
Булевские операции
Логические операции
Операторы сдвига
Операторы сравнения
Сложение (ADD), вычитание (SUB), умножение (MUL), деление (DIV), целочисленный остаток от деления (MOD)
Присвоение (MOVE)
Логическое И (AND). Логическое ИЛИ (OR). Логическое исключающее ИЛИ (XOR). Логическое отрицание (NOT)
Аналоговое побитовое И (AND). Аналоговое побитовое ИЛИ (OR). Аналоговое побитовое исключающее ИЛИ (OR). Аналоговое побитовое отрицание (NOT)
Побитовый сдвиг влево (SHL), побитовый сдвиг вправо (SHR), цикли­ческий сдвиг влево (ROL), циклический сдвиг вправо (ROR)
Меньше, чем (LT)(<), меньше или равно (LE)(<=), больше, чем (GT)(>), больше или равно (GE)(<=), равно (EQ)(=), не равно (NE)(<>)
Числовые операторы
Преобразование данных
<тип1>…TO… <тип2>
Абсолютная величина (ABS), квадратный корень (SQRT), десятичный логарифм (LOG), натуральный логарифм (LN), экспонента (EXP), три­гонометрические функции (SIN, COS, TAN), обратные тригонометри­ческие функции (ASIN, ACOS, ATAN)
Преобразование в BOOL (тип…TO_BOOL). Преобразование из BOOL в …(BOOL_TO…тип). Преобразование в REAL (тип…TO_REAL). Преобразование из REAL в …(REAL_TO…тип). Преобразование в INT (тип…TO_INT). Преобразование из INT в …(INT_TO…тип). Преобразование в TIME (тип…TO_TIME). Преобразование из TIME в …(TIME_TO…тип). Преобразование в STRING (тип…TO_ STRING). Преобразование из STRING в …(STRING_TO…тип)
69
На рисунке 7.1 показан пример использования блока присвоения
(«Move») с любым типом аргументов In1, Out1 и его эквивалент на языке ST.
(* ST – эквивалент*)
Out1 := In1;
Рис. 7.1. Пример использования блока присвоения
Группу арифметических операций составляют обычные операторы с
традиционным обозначениями внутри блоков: сложение – «+», вычитание –
«–», умножение – «*», деление – «/». На рисунке 7.2 приведён пример
использования оператора «ADD» (сложение) с аргументами типов INT или
REAL на диаграмме CFC и эквивалент на языке ST.
(* ST – эквивалент*)
Out1 := In1 + In2;
К булевским
Рис. 7.2. Пример использования блока сложения
операторам относятся логическое И (AND), логическое
ИЛИ (OR), исключающее ИЛИ (XOR). На рисунке 7.3 приведены примеры использования этих блоков на диаграмме CFC и их эквиваленты на языке ST.
(* ST эквивалент: *) bo10 := bi101 AND NOT (bi102); bo5 := bi51 OR bi52 OR bi53; bo6 := bi61 XOR NOT (bi62);
Рис. 7.3. Примеры использования булевских операций
К логическим операциям относятся традиционные побитовые операции с целочисленными переменными: побитовое И (AND), побитовое ИЛИ (OR), побитовое исключающее ИЛИ (XOR), побитовое отрицание (NOT). На рисунке 7.4 приведены примеры использования этих блоков на диаграмме
CFC и их эквиваленты на языке ST. Переменные в примере имеют тип WORD.
Операции сравнения сопоставляют два входа и, если условие указанное в блоке, выполнятется, то на выходе формирется результат TRUE, иначе –
FALSE.
Оба входа должны иметь один и тот же тип и могут быть аналоговыми
(вещественными или целочисленными), таймерными, строковыми (сообщение)
70
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]