
- •Предисловие
- •Введение
- •1. Основные особенности языков программирования
- •2. Язык функциональных блок-схем - fbd
- •2.1. Основные понятия
- •1.2. Функции и функциональные блоки
- •Группа «Arithmetic»
- •2.3. Пример программы на языке fbd
- •3. Язык лестничных схем – ld
- •3.1. Контакты
- •3.2. Катушки
- •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
6.3. Использование функций и функциональных блоков
Для расширения возможностей языка IL в нем предусмотрено использование функций и функциональных блоков.
Использование функциональных блоков
В начале программы с помощью команды VAR…END_VAR должны быть объявлены все используемые в дальнейшем функциональные блоки. Это объявление делается также как и на языке ST только один раз и применимо только для текущей секции. Если тот же самый тип FB/DFВ должен использоваться в другой секции, он должен быть объявлен снова.
Пример объявления функциональных блоков:
VAR
TIM_N1, TIM_N2: TON;
END_VAR
В примере функциональному блоку TON назначаются уникальные имена экземпляров TIM_N1 и TIM_N2.
После объявления функциональные блоки вызываются с помощью команды CAL, после которой следует имя экземпляра функционального блока, а затем в скобках список распределения значений фактических параметров (параметров, которые используются в программе) к входным формальным параметрам (параметрам, которые используются внутри FB/DFВ) функциональных блоков.
Если формальному параметру не задано значение, то будет использоваться начальное значение, определенное в редакторе переменных. Если начальное значение не было определено, то будет использоваться значение, заданное по умолчанию – 0.
Если у функционального блока отсутствуют входные параметры, то для него список распределения не нужен.
Пример вызова функциональных блоков:
CAL TIM_N1 (IN:= P_N1, PT:=t#5s)
CAL TIM_N2 (IN:=P_N2, PT:=t#1s)
Во первой строке указано, что экземпляр TIM_N1 таймера TON может запускаться переменной P_N1. Выдержка времени для этого таймера – 5с.
Во второй строке указано, что экземпляр TIM_N2 таймера TON может запускаться переменной P_N2. Выдержка времени для этого таймера – 1с.
После объявления и вызова функциональных блоков можно обращаться к их выходам.
Пример обращения к выходам функциональных блоков
LD S1 (*Если S1 AND S2 = 1, то начинается*)
AND S2 (*выдержка времени таймером TIM_N1*)
ST P_N1 (* по истечении времени 5с *)
LD TIM_1.Q (*переменной Q_N1 будет присвоено*)
ST Q_N1 (*значение лог. 1*)
…
…
LD S1 (*Если S1 AND S3 = 1, то начинается*)
AND S3 (*выдержка времени TIM_N2*)
ST P_N2 (*По истечении времени 1с Q_N2=1*)
LD TIM_2.Q
ST Q_N2
Реализация обращения к FB/DFB упрощается, если, как и в языке ST, воспользоваться средствами редактора языка IL.
Обращение к функциям
Имена доступных функций находятся в библиотеке FFB – Library.
Функции вызываются списком команд, состоящим из первого фактического параметра, загруженного в аккумулятор, и имени функции. В случае необходимости он сопровождается списком дополнительных фактических параметров. В обращении к функции следует соблюдать порядок распечатки формальных параметров. Порядок должен быть таким же, как и в графическом изображении функции в FBD.
Результат вычисления функции сохраняется:
в аккумуляторе;
в операнде следующим за ST;
или он может использоваться для прямой дальнейшей обработки.
Пример обращения к функции с одним фактически параметром:
LD A
SIN_REAL
ST B
В примере B=SIN_REAL(A).
Пример обращения к функции с несколькими фактическими параметрами:
LD IN_LIM
LIMIT_REAL MIN_LIM, MAX_LIM
ST OUT_LIM
В примере будет выполнено OUT_LIM=IN_LIM, если выполняется MIN_LIM<IN_LIM<MAX_LIM. Если MIN_LIM<IN_LIM, то IN_LIM=MIN_LIM. Если IN_LIM<MAX_LIM, то IN_LIM= MAX_LIM D.
На рис. 5.1 приведен пример обращения к функции LIMIT_REAL в секции FBD.