Основы лестничной диаграммы в программировании ПЛК
Первоначально релейная логика представляла собой письменный метод документирования проектирования и изготовления релейных стоек, используемых в производстве и управлении технологическими процессами. Каждое устройство в релейной стойке должно было быть представлено символом на лестничной схеме с указанием соединений между этими устройствами. Кроме того, на лестничной диаграмме также будут показаны другие элементы, внешние по отношению к релейной стойке, такие как насосы, нагреватели и т. д.
Релейная логика превратилась в язык программирования, который представляет программу в виде графической схемы, основанной на принципиальных схемах аппаратных средств релейной логики. Релейная логика используется для разработки программного обеспечения для программируемых логических контроллеров (ПЛК), используемых в приложениях промышленного управления. Название основано на наблюдении, что программы на этом языке напоминают лестницы с двумя вертикальными перекладинами и рядом горизонтальных перекладин между ними. Хотя лестничные диаграммы когда-то были единственной доступной формой записи программ программируемого контроллера, сегодня другие формы стандартизированы в IEC 61131-3.
Релейная логика широко используется для программирования ПЛК, где требуется последовательное управление процессом или производственной операцией. Лестничная логика полезна для простых, но важных систем управления. Поскольку программируемые логические контроллеры стали более сложными, они также стали использоваться в очень сложных системах автоматизации. Часто программа лестничной логики используется вместе с программой HMI, работающей на компьютерной рабочей станции.
Пример простой программы лестничной логики
Сам язык можно рассматривать как набор связей между логическими контролерами (контактами) и исполнительными механизмами (катушками). Если между левой стороной ступеньки и выходом можно проследить путь через подтвержденные (истинные или «замкнутые») контакты, ступенька истинна, а бит хранения выходной катушки установлен или истинен. Если путь не проследить, то на выходе ложный сигнал (0) и «катушка» по аналогии с электромеханическими реле считается «обесточенной».
Лестничная логика имеет контакты, которые замыкают или размыкают цепи управления катушками. Каждая катушка или контакт соответствует состоянию одного бита в памяти программируемого контроллера. В отличие от электромеханических реле, лестничная программа может ссылаться на состояние одного бита любое количество раз, что эквивалентно реле с неопределенно большим количеством контактов.
Так называемые «контакты» могут относиться к физическим («жестким») входам программируемого контроллера от физических устройств, таких как кнопки и концевые выключатели, через встроенный или внешний модуль ввода, или могут представлять состояние битов внутренней памяти, которые могут быть сгенерированы. в другом месте программы.
Каждая ступень лестничного языка обычно имеет одну катушку в крайнем правом углу. Некоторые производители могут допускать использование более одной выходной катушки на ступеньке.
—( )— Обычная катушка, на которую подается напряжение всякий раз, когда ее ступенька замыкается.
—()— Катушка «нет», на которую подается напряжение всякий раз, когда ее ступенька разомкнута.
—[ ]— Обычный контакт, замыкающийся всякий раз, когда на соответствующую катушку или вход, который им управляет, подается напряжение.
—[]— Контакт «нет», замыкается, когда соответствующая катушка или вход, который им управляет, не находится под напряжением.
«Катушка» (выход цепочки) может представлять собой физический выход, который управляет каким-либо устройством, подключенным к программируемому контроллеру, или может представлять собой бит внутренней памяти для использования в другом месте программы.
Логическое И
------[ ]--------------[ ]----------------( )
Ключевой переключатель 1 Ключевой переключатель 2 Двигатель двери
Вышеупомянутое реализует функцию: Дверной двигатель = ключевой переключатель 1 и ключевой переключатель 2.
На этой схеме показаны два выключателя с ключом, которые охранники могут использовать для активации электродвигателя на двери банковского хранилища. Когда нормально разомкнутые контакты обоих переключателей замыкаются, электричество может поступать на электродвигатель, который открывает дверь.
Логическое И с НЕ
------[ ]--------------[]----------------( )
Закрыть дверь. Препятствие. Двигатель двери.
Вышеупомянутое реализует функцию: Двигатель двери = Закрыть дверь И НЕ (Препятствие).
На этой схеме изображена кнопка, закрывающая дверь, и детектор препятствий, который определяет, есть ли что-то на пути закрывающейся двери. Когда нормально разомкнутый контакт кнопки закрывается и нормально закрытый детектор препятствий закрывается (препятствие не обнаружено), электричество может поступать на двигатель, который закрывает дверь.
Логическое ИЛИ
--+-------[ ]-------+-----------------( )
| Внешняя разблокировка | Разблокировать
| |
+-------[ ]-------+
Разблокировка салона
Вышеупомянутое реализует функцию: Разблокировка = Внутренняя разблокировка ИЛИ Внешняя разблокировка.
На этой схеме показаны две вещи, которые могут вызвать срабатывание дверных замков автомобиля. Удаленный приемник всегда находится под напряжением. Соленоид замка получает питание, когда любой набор контактов замкнут.
Промышленный СТОП/СТАРТ
В обычной промышленной логике пуска/останова с фиксацией у нас есть кнопка «пуск» для включения контактора двигателя и кнопка «стоп» для выключения контактора.
При нажатии кнопки «пуск» вход активируется через нормально замкнутый контакт кнопки «стоп». Когда входной сигнал «работа» становится истинным, герметичный НО контакт «пуск» параллельно с НО контактом «пуск» закроется, поддерживая истинную входную логику (зафиксирован или закрыт). После того, как цепь защелкнута, можно нажать кнопку «стоп», что приведет к размыканию ее нормально замкнутого контакта и, следовательно, к ложному срабатыванию входа. Затем размыкается «рабочий» нормально разомкнутый контакт, и логика схемы возвращается в свое состояние покоя.
--+----[ ]--+----[]----( )
| начать | хватит бежать
| |
+----[ ]--+
бегать
-------[ ]--------------( )
запустить мотор
Вышеприведенное реализует функцию: run = (start OR run) AND ( NOT stop )
Обратите внимание на использование круглых скобок для группировки логической функции ИЛИ перед вычислением логической функции И (которая имеет более высокий приоритет операции). Также обратите внимание на использование NOT для обозначения логики нормально замкнутого контакта «стоп».
Такая конфигурация защелки является общепринятой идиомой в релейной логике. В лестничной логике это называется логикой запечатывания. Ключом к пониманию защелки является признание того, что переключатель «пуск» — это переключатель мгновенного действия (как только пользователь отпускает кнопку, переключатель снова размыкается). Как только соленоид «работа» срабатывает, он замыкает размыкающий контакт «пуск», который фиксирует соленоид. Размыкание переключателя «Пуск» не оказывает никакого эффекта.
По соображениям безопасности аварийный останов и/или останов должны быть подключены последовательно с пусковым выключателем, и логика реле должна это отражать.
--[]----[]----+--[ ]--+---------( )
ЕС Стоп | Начало | Мотор
| |
+--[ ]--+
Бегать
Сложная логика
Вот пример того, как могут выглядеть две ступени в программе релейной логики. В реальных приложениях могут быть сотни или тысячи ступеней.
Обычно сложная релейная логика «читается» слева направо и сверху вниз. Поскольку каждая из линий (или ступеней) оценивается, выходная катушка ступени может поступать на следующий этап лестницы в качестве входного сигнала. В сложной системе на лестнице будет много «ступенек», которые пронумерованы в порядке оценки.
1. ----[ ]---------+----[ ]-----+----( )
Переключатель | ПриветТемп | кондиционер
| |
+----[ ]-----+
Влажный
2. ----[ ]----[]--------------------( )
Кондиционер Обогрев Охлаждение
Линия 1 реализует функцию: A/C = Переключатель И (HiTemp ИЛИ Влажность)
Линия 2 реализует функцию: Охлаждение = кондиционер И (НЕ обогрев)
Это представляет собой немного более сложную систему для ступени 2. После оценки первой линии выходная катушка «A/C» подается на ступень 2, которая затем оценивается, и выходная катушка «Охлаждение» может быть подана в выходную ступень. устройство «Компрессор» или на третью ступень лестницы. Эта система позволяет разбивать и оценивать очень сложные логические конструкции.
Дополнительный функционал
Дополнительные функциональные возможности могут быть добавлены в реализацию релейной логики производителем ПЛК в виде специального блока. Когда специальный блок включен, он выполняет код с заранее определенными аргументами. Эти аргументы могут отображаться в специальном блоке.
+-------+
-----[ ]--------------------+ А +----
Удаленная разблокировка +-------+
Удаленный счетчик
+-------+
-----[ ]--------------------+ B +----
Разблокировка салона +-------+
Внутренняя стойка
+--------+
--------------------+ А + Б +-----------
| в C |
+--------+
Сумматор
В этом примере система подсчитает количество нажатий кнопок внутренней и дистанционной разблокировки. Эта информация будет храниться в ячейках памяти A и B. В ячейке памяти C будет храниться общее количество раз, когда дверь была отперта электронным способом.
ПЛК имеют множество типов специальных блоков. Они включают в себя таймеры, арифметические операторы и сравнения, поиск в таблицах, обработку текста, ПИД-регулятор и функции фильтрации. Более мощные ПЛК могут работать с группой ячеек внутренней памяти и выполнять операцию с диапазоном адресов, например, для моделирования физического последовательного барабанного контроллера или конечного автомата. В некоторых случаях пользователи могут определять свои собственные специальные блоки, которые по сути являются подпрограммами или макросами. Большая библиотека специальных блоков наряду с высокой скоростью исполнения позволили использовать ПЛК для реализации очень сложных систем автоматизации.