Одним из базовых и достаточно распространенных языков программирования промышленных логических контроллеров (ПЛК) является язык релейной (лестничной) логики — Ladder Diagram (англ. LD, англ. LAD, рус. РКС).
Этот графический язык программирования основан на представлении коммутационных схем и удобен для специалистов по электротехнике, так как нормально замкнутые и нормально разомкнутые контактные элементы языка LAD можно сопоставить с нормально замкнутыми и нормально разомкнутыми переключателями в электрических цепях.
С середины XX века в промышленности широко использовались релейные системы автоматики. В начале 1970-х гг. релейные автоматы начали постепенно вытесняться программируемыми контроллерами. Некоторое время те и другие работали одновременно и обслуживались одними и теми же людьми. Так появилась задача «переноса» релейных схем в ПЛК.
Различные варианты программной реализации релейных схем создавались практически всеми ведущими производителями ПЛК. Благодаря простоте представления LAD обрел заслуженную популярность, что и стало основной причиной включения его в стандарт МЭК.
Синтаксис команд языка LAD очень похож на синтаксис языка описания релейно-контактных схем. Такое представление позволяет проследить «поток энергии» между шинами при его прохождении через различные контакты, составные элементы и выходные элементы (катушки).
Элементы коммутационной схемы, такие как нормально разомкнутые контакты и нормально замкнутые контакты, группируют в сегменты. Один или несколько сегментов образуют раздел кодов логического блока.
Интерфейс программы, написанной на языке LAD, понятен и прост, так как управляющая LAD-программа является циклической и состоит из строк-ступенек, соединенных слева с вертикальной шиной, а протекание или отсутствие тока в цепи соответствует результату логической операции (истина - ток течет; ложь - ток отсутствует).
Простые примеры программ для ПЛК на языке LAD
На рисунках 1 и 2 представлены сегменты программы, описывающей два действия по управлению двигателем конвейера на языке LAD:
-
нажатие любой кнопки «Пуск» включает двигатель;
-
нажатие любой кнопки «Стоп» или срабатывание датчика отключают двигатель.
Рис. 1. Включение двигателя после нажатия любой кнопки «Пуск»
Рис. 2. Отключение двигателя после нажатия любой кнопки «Стоп» или срабатывания датчика
Вторая задача состоит в определении направления движения ленты транспортера. Пусть на ленте установлены два фотоэлектрических датчика (РЕВ 1 и РЕВ 2) для определения направления движения предмета. Оба работают как нормально открытые контакты.
На рис. 3 - 4 представлены сегменты программ на языке LAD для трех действий:
-
если на входе 10.0 сигнал изменяется с «0» на «1» (нарастающий фронт), и при этом состояние сигнала на входе I0.1 равно «0», то предмет на ленте транспортера движется влево;
-
если на входе 10.1 сигнал изменяется с «0» на «1» (нарастающий фронт), и при этом состояние сигнала на входе I0.0 равно «0», то предмет на ленте транспортера движется вправо;
-
если оба фотодатчика перекрыты, то это значит, что предмет находится между датчиками.
Рис. 3. Движение предмета влево, если вход I0.0 меняет состояние с «0» на «1», и при этом вход I0.1 равен «0»
Рис. 4. Движение предмета вправо, если вход I0.1 изменяется с «0» на «1», и при этом вход I0.0 равен «0»
Рис. 5. Нахождение предмета между датчиками
На рис. 3 — 4 приняты обозначения:
-
вход 1.0 (РЕВ 1) - фотодатчик №1;
-
вход 10.1 (РЕВ 2) - фотодатчик №2;
-
М0.0 (РМВ 1) - тактовый меркер № 1;
-
М0.1 (РМВ 2) - тактовый меркер №2;
-
выход Q4.0 (LEFT) — индикатор движения налево;
-
выход Q4.1 (RIGHT) - индикатор движения направо.
На рис. 6 - 9 представлены простейшие программы с таймером для четырех действий:
-
если статус таймера Т1 равен «0», загружается значение времени 250 мс в Т1 и Т1 запускается как таймер с удлиненным импульсом;
-
состояние таймера временно сохраняется во вспомогательном меркере;
-
если статус таймера Т1 равен «1», переход на метку М001;
-
когда время таймера Т1 истекает, меркерное слово 100 увеличивается на «1».
Рис. 6. Запуск таймера с удлиненным импульсом
Рис. 7. Временное сохранение состояния таймера во вспомогательном маркере
Рис. 8. Переход на метку
Рис. 9. Увеличение меркерного слова на «1», когда время таймера Т1 истекает
Пример программы на языке LAD для контроллера LOGO
Универсальный логический модуль LOGO! является компактным функционально законченным изделием, предназначенным для решения наиболее простых задач автоматизации с логической обработкой информации.
Рис. 10. Модуль LOGO
С помощью модуля LОGO! решена задача управления системой отопления в душевых помещениях административно-производственного корпуса.
Состав системы отопления включает следующие компоненты:
-
три отопительных котла, используемых для отопления помещений;
-
три насоса, обеспечивающих циркуляцию теплоносителя;
-
трубопровод и регистры отопления.
Система управления должна контролировать температуру в душевых помещениях, давление (первый уровень — низкий, при котором возможна дальнейшая эксплуатация при условии включения системы заполнения, и второй уровень критический, при котором дальнейшая эксплуатация запрещена), а также контролировать температуру теплоносителя в системе отопления, отсутствие энергоресурсов (электроэнергия, газ).
Кроме этого в системе отопления могут быть предусмотрены дополнительные источники обогрева, например, электрокалориферы. Пусть включение электрокалориферов осуществляется три раза в сутки: с 600 до 800; с 1500 до 1700; с 2300 до 0100. Если по каким-то причинам в момент посещения рабочим персоналом душевых помещений температура будет ниже нормы, то дополнительно включаются электрокалориферы.
В качестве входов и выходов используются:
-
AI1 - входной сигнал с датчика измерения давления о критическом уровне давления теплоносителя;
-
AI2 — входной сигнал с датчика измерения давления о низком уровне давления теплоносителя, позволяющего дальнейшую работу;
-
AI3 — входной сигнал с датчика измерения температуры о повышении рабочей температуры теплоносителя;
-
вход 13 - входной сигнал об отсутствии электроэнергии;
-
вход 14 - входной сигнал об отсутствии природного газа;
-
выход Q1 - выходной сигнал, осуществляющий включение системы отопления (циркуляционный насос №1);
-
выход Q2 - выходной сигнал, осуществляющий включение системы заполнения;
-
выход Q3 выходной сигнал, осуществляющий отключение котлов системы отопления (котел отопления №1);
-
выход Q4 выходной сигнал, осуществляющий отключение подачи газа к котлам;
-
выход Q5 — выходной сигнал, осуществляющий включение системы отопления (циркуляционный насос №2);
-
выход Q6 - выходной сигнал, осуществляющий включение системы отопления (циркуляционный насос №3);
-
выход Q7 выходной сигнал, осуществляющий отключение котлов системы отопления (котел отопления №2);
-
выход Q8 выходной сигнал, осуществляющий отключение котлов системы отопления (котел отопления №3);
-
С2 - кнопка пуска.
-
В001 - трехрежимный семидневный таймер.
Для электрокалориферов:
-
AI1 - входной сигнал с датчика измерения температуры о температуре в душевых помещениях;
-
выход Q1 - выходной сигнал, осуществляющий включение электрокалориферов (электрокалорифер №1);
-
выход Q2 — выходной сигнал, осуществляющий включение электрокалориферов (электрокалорифер №3);
-
выход Q3 выходной сигнал, осуществляющий включение электрокалориферов (электрокалорифер №3).
Программа для автоматизированной системы управления отоплением, написанная на языке программирования в виде релейно-контактных символов (LAD) в программном пакете "LOGO! Soft comfort" показана на рис. 11 и 12.
Рис. 11. Первый фрагмент программы на языке LAD
Рис. 12. Второй фрагмент программы на языке LAD