
- •Предисловие
- •Введение
- •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.4. Пример программы на языке il
Ниже приведен листинг программы управления установкой для смешивания жидкостей, алгоритм работы которой, подключение датчиков и выходных устройств к ПЛК, объявление переменных приведены в п. 2.4. В программе дополнительно введены две переменные SA1 и SA2 типа BOOL, которые используются для реализации трех состояний конечного автомата.
(*Declaration EFB*)
VAR
Timer : TON;
END_VAR
(*Invocation EFB*)
CAL Timer(IN:=SA2, PT:=t#10s)
(*Transformation of a code temperature*)
LD DTemp
UINT_TO_REAL
SUB 6400.0
DIV 256.0
GT 70.0
ST TUp
(*Control of state SA1*)
LD Start
S SA1
LD SA2
R SA1
(*Control of state SA2*)
LD TUp
S SA2
LDN DU1
R SA2
(*Control of valve К1*)
LD SA1
ANDN DU2
AND Stop
ST K1
(*Control of valve К2*)
LD SA1
AND DU2
ANDN DU3
AND Stop
ST K2
(*Control of heater - Nagr*)
LD SA1
AND DU3
ANDN TUp
AND Stop
ST Nagr
(*Control of electric motor*)
LD SA1
AND DU2
AND Stop
OR( SA2
AND DU3
AND Stop
)
ST KM
(*Control of valve К3*)
LD Timer.Q
AND Stop
ST K3
Вопросы для самоконтроля
Назовите основные особенности языка IL.
Что такое инструкция, оператор, операнд, модификатор, метка и аккумулятор?
Перечислите операторы языка IL и их функции.
Перечислите модификаторы языка IL и их функции.
Назовите особенности обращения к функциям и функциональным блокам.
Задания для самостоятельной работы
Напишите программу вычисления функции, заданной выражением RESULT=(SENSOR_1 – SENSOR_2)/2*(SENSOR_3)2.
Напишите программу реализации логической функции для переменных типа BOOL:
.
Напишите программу управления индикацией: LAMP_R=1, если выполняется SENSOR_P > 10.0; LAMP_G=1, если выполняется 8.0 ≤ SENSOR_P ≤ 10.0; LAMP_B=1, если выполняется 8.0 < SENSOR_P.
Напишите программу реализации генератора прямоугольных импульсов с параметрами: частота импульсов – 0,8 Гц, длительность – 0,1 с.
Напишите программу управления установкой по п. 2.3, в которой необходимо дополнительно предусмотреть останов установки и выдачу аварийной сигнализации в случае срабатывания реле токовой защиты электродвигателя мешалки.
Заключение
В пособии описаны языки программирования FBD, LD, SFC, ST и IL в среде Concept. При первом знакомстве с ними может возникнуть вопрос, какие из них следует применять? При выборе языка авторы советуют придерживаться приведенных ниже рекомендаций.
1. Поведение сложного объекта автоматизации можно описать в виде конечного автомата (автомата с памятью). Состояния конечного автомата наиболее просто и наглядно реализуются на языке SFC. На нем легко и естественным образом описываются технологические процессы, что делает его понятным для специалистов различного профиля. Кроме того он удобен для описания как последовательных, так и параллельных процессов. В его шагах легко реализуются временные задержки. Недостатком языка является отсутствие в нем возможности реализации математических вычислений.
2. Языки FBD, LD, ST и IL позволяют достаточно просто реализовывать математические вычисления, но конечные автоматы программируются на них неудобным и неочевидным образом. Кроме того, использование этих языков приводит к увеличению сложности интерпретации, анализа и отладки программ по мере возрастания их объема.
3. Напрашивается очевидное построение программы, реализующей конечный автомат – на языке SFC следует реализовывать состояния автомата и переходы между состояниями, а математические операции – на оном из языков FBD, LD, ST, IL или их комбинации. Выбор языка (языков) определяется его возможностями и степенью подготовки программиста. При выборе следует учесть, что язык IL имеет ряд недостатков, к которым относятся: высокая трудоемкость программирования, трудность модификации написанных на нем программ, малая степень «видимого» соответствия исходного текста программы и решаемой задачи.
Приведенные в пособии примеры программ дают наглядное представление о достоинствах и недостатках, как отдельных языков программирования, так и их комбинации.
Изучение языков программирования невозможно без навыков практического программирования ПЛК, которые студенты получают на лабораторных работах и в результате самостоятельного изучения данного пособия, а также дополнительной литературы, посвященной программным [1-3] и аппаратным [4-7] средствам ПЛК.