Лестничная логика - Википедия - Ladder logic
Эта статья нужны дополнительные цитаты для проверка.Май 2012 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Лестничная логика изначально был письменным методом документирования дизайна и строительства релейные стойки как используется в производстве и контроль над процессом.[1] Каждое устройство в релейной стойке будет представлено символом на релейной диаграмме с подключениями между этими устройствами. Кроме того, на лестничной диаграмме также будут показаны другие элементы, внешние по отношению к релейной стойке, такие как насосы, нагреватели и т. Д.
Лестничная логика превратилась в язык программирования представляющий программу в виде графической диаграммы на основе принципиальные схемы из релейная логика аппаратное обеспечение. Релейная логика используется для разработки программного обеспечения для программируемые логические контроллеры (ПЛК), используемые в приложениях промышленного управления. Название основано на наблюдении, что программы на этом языке напоминают лестницы, с двумя вертикальными направляющими и рядом горизонтальных перекладин между ними. Раньше лестничные диаграммы были единственными доступными обозначениями для записи программ программируемых контроллеров, но сегодня другие формы стандартизированы в IEC 61131-3 (Например, в качестве альтернативы форме графической релейной логики существует также другой язык ассемблера, такой как формат, который называется Список инструкций в пределах IEC 61131-3 стандарт.).
Обзор
Релейная логика широко используется для программирования ПЛК, где требуется последовательный контроль процесса или производственной операции. Релейная логика полезна для простых, но важных систем управления или для переделки старых проводной релейные схемы. По мере того, как программируемые логические контроллеры становились все более сложными, они также использовались в очень сложных системах автоматизации. Часто программа релейной логики используется вместе с HMI программа, работающая на компьютерной рабочей станции.
Мотивация для представления последовательный логика управления лестничная диаграмма должна была позволить заводским инженерам и техническим специалистам разрабатывать программное обеспечение без дополнительного обучения для изучения такого языка, как FORTRAN или другой компьютерный язык общего назначения. Разработка и обслуживание были упрощены из-за сходства со знакомыми аппаратными системами реле.[2] Реализации релейной логики могут иметь характеристики, такие как последовательное выполнение и поддержка функций потока управления, что делает аналогию с аппаратным обеспечением несколько неточной.
Лестничную логику можно рассматривать как язык, основанный на правилах а не процедурный язык. «Ступенька» в лестнице представляет собой правило. При использовании реле и других электромеханических устройств различные правила выполняются одновременно и немедленно. При реализации в программируемом логическом контроллере правила обычно выполняются последовательно программным обеспечением в непрерывном цикле или «сканировании». Выполняя цикл достаточно быстро, обычно много раз в секунду, достигается эффект одновременного и немедленного выполнения. Правильное использование программируемых контроллеров требует понимания ограничений порядка выполнения цепочек.
Синтаксис и примеры
Сам язык можно рассматривать как набор связей между логическими устройствами проверки (контактами) и исполнительными механизмами (катушками). Если путь между левой стороной ступени и выходом можно проследить через подтвержденные (истинные или «замкнутые») контакты, цепочка является истинной, а бит хранения выходной катушки установлен (1) или истинен. Если путь не прослеживается, то выход ложный (0) и «катушка» по аналогии с электромеханическим реле считается «обесточенным». Аналогия между логическими предложениями и состоянием контактов реле объясняется тем, что Клод Шеннон.
У лестничной логики есть контакты, которые замыкают или размыкают цепи для управления катушками. Каждая катушка или контакт соответствует состоянию отдельного бита в памяти программируемого контроллера. В отличие от электромеханических реле, лестничная программа может любое количество раз ссылаться на состояние одного бита, что эквивалентно реле с бесконечно большим числом контактов.
Так называемые «контакты» могут относиться к физическим («аппаратным») входам в программируемый контроллер от физических устройств, таких как кнопки и концевые выключатели через встроенный или внешний модуль ввода, или может представлять состояние битов внутренней памяти, которые могут быть сгенерированы в другом месте программы.
У каждой ступени лестничного языка обычно есть одна катушка в крайнем правом углу. Некоторые производители могут допускать использование более одной выходной катушки на ступеньке.
- Вход звена: шашки (контакты)
—[ ]—
Нормально разомкнутый контакт, замкнутый всякий раз, когда на его соответствующую катушку или управляющий вход подается напряжение. (Открытый контакт в состоянии покоя)—[\]—
Нормально замкнутый («не») контакт, замкнутый всякий раз, когда соответствующая катушка или управляющий вход не находятся под напряжением. (Замкнутый контакт в состоянии покоя)
- Выход ступени: исполнительные механизмы (катушки)
—( )—
Обычно неактивная катушка, запитывается всякий раз, когда ее ступень закрывается. (Неактивен в состоянии покоя)—(\)—
Обычно активная («не») катушка, запитанная всякий раз, когда ее ступень открыта. (Активен в покое)
«Катушка» (выход ступени) может представлять физический выход, который управляет некоторым устройством, подключенным к программируемому контроллеру, или может представлять бит внутренней памяти для использования в другом месте программы.
Чтобы вспомнить их, представьте шашки (контакты) как вход для кнопки, а исполнительные механизмы (катушки) как выход лампочки. Наличие косой черты внутри шашек или исполнительных механизмов указывает на состояние по умолчанию устройства в состоянии покоя.
Логическое И
------ [] -------------- [] ---------------- () Замковый выключатель 1 Замковый выключатель 2 Двигатель двери |
Вышеупомянутое реализует функцию: Мотор двери = Ключевой выключатель 1 И Ключевой переключатель 2
На этой схеме показаны два клавишных переключателя, которые охранники могут использовать для активации электродвигателя на двери хранилища банка. Когда нормально разомкнутые контакты обоих переключателей замыкаются, электричество может течь к двигателю, который открывает дверь.
Логическое И с НЕ
------ [] -------------- [] ---------------- () Закройте дверь Препятствие Электродвигатель двери |
Вышеупомянутое реализует функцию: Двигатель двери = Закрыть дверь. И НЕТ (Препятствие).
Эта схема показывает кнопку, которая закрывает дверь, и датчик препятствий, который определяет, что что-то мешает закрывающейся двери. Когда нормально открытый контакт кнопки замыкается, а нормально закрытый датчик препятствий закрывается (препятствие не обнаружено), электричество может течь к двигателю, который закрывает дверь.
Логическое ИЛИ
- + ------- [] ------- + ----------------- () | Внешняя разблокировка | Разблокировать | | + ------- [] ------- + Разблокировка салона |
Вышеупомянутое реализует функцию: Разблокировать = Внутренняя разблокировка ИЛИ ЖЕ Внешняя разблокировка
Эта схема показывает две вещи, которые могут вызвать электрические дверные замки. Удаленный приемник всегда включен. Разблокировка соленоид получает питание, когда любой набор контактов замкнут.
Промышленный СТОП / ПУСК
В обычной промышленной логике запуска / остановки с фиксацией у нас есть кнопка «Пуск» для включения контактора двигателя и кнопка «Стоп» для выключения контактора.
При нажатии кнопки «Старт» вход становится истинным через замыкающий контакт кнопки «Стоп». Когда вход «Работа» становится истинным, замыкающийся замыкающий контакт «Работа», параллельный замыкающему контакту «Пуск», замыкается, поддерживая истинную логику входа (фиксация или опломбирование). После фиксации схемы можно нажать кнопку «Стоп», что приведет к размыканию ее нормально замкнутого контакта и, следовательно, к ложному входу. Затем размыкается нормально разомкнутый контакт «Работа», и логическая схема возвращается в неактивное состояние.
- + ---- [] - + ---- [] ---- () | Старт | Остановить бег | | + ---- [] - + Выполнить ------- [] -------------- () Запуск двигателя |
Вышеупомянутое реализует функцию: Run = (Start ИЛИ ЖЕ Пробег) И (НЕТ Останавливаться)
Этот защелка конфигурация обычная идиома в лестничной логике. Это также можно назвать «логикой запечатывания». Ключ к пониманию защелки заключается в признании того, что переключатель «Пуск» является переключателем мгновенного действия (как только пользователь отпускает кнопку, переключатель снова открывается). Как только соленоид «Работа» срабатывает, он замыкает замыкающий контакт «Работа», который фиксирует соленоид. В этом случае размыкание переключателя «Пуск» не дает никакого эффекта.
- Примечание. В этом примере «Выполнить» представляет статус кусочек в ПЛК, в то время как "Motor" представляет фактический выход в реальный мир реле что закрывает реальный мир мотора схема.
По соображениям безопасности аварийный останов может быть подключен последовательно с переключателем пуска, и логика реле должна это отражать.
- [] ---- [] ---- + - [] - + --------- () ES Stop | Старт | Беги | | + - [] - + Выполнить ------- [] -------------- () Запуск двигателя Вышеупомянутое реализует функцию: Run = (НЕТ Экстренная остановка) И (НЕТ Останавливаться) И (Начинать ИЛИ ЖЕ Пробег) |
Сложная логика
Вот пример того, как могут выглядеть две ступени в программе релейной логики. В реальных приложениях могут быть сотни или тысячи ступеней.
Обычно сложная релейная логика «читается» слева направо и сверху вниз. По мере того как каждая из линий (или ступеней) оценивается, выходная катушка ступени может подаваться на следующую ступень лестницы в качестве входа. В сложной системе на лестнице будет много «ступенек», которые пронумерованы в порядке оценки.
1. ---- [] --------- + ---- [] ----- + ---- () Переключатель | HiTemp | A / C | | + ---- [] ----- + Влажный 2. ---- [] ---- [] -------------------- () A / C Heat Cooling |
Строка 1 реализует функцию: A / C = Switch И (HiTemp ИЛИ ЖЕ Влажный)
Строка 2 реализует функцию: Охлаждение = A / C. И (НЕТ Высокая температура)
Это представляет собой немного более сложную систему для ступени 2. После оценки первой строки выходная катушка «A / C» подается на ступень 2, которая затем оценивается, и выходная катушка «Охлаждение» может быть подана на выход. устройство «Компрессор» или в ступеньку 3 на лестнице. Эта система позволяет разбивать и оценивать очень сложные логические конструкции.
Дополнительная функциональность
Производитель ПЛК может добавить дополнительные функции к реализации релейной логики в виде специального блока. Когда специальный блок запитан, он выполняет код с заранее определенными аргументами. Эти аргументы могут отображаться в специальном блоке.
+ ------- + ----- [] -------------------- + A + ---- Удаленная разблокировка + ---- --- + Удаленный счетчик + ------- + ----- [] -------------------- + B + ---- Внутренняя разблокировка + ---- --- + Внутренний счетчик + -------- + -------------------- + A + B + ----------- | в C | + -------- + Сумматор |
В этом примере система подсчитает количество нажатий кнопок внутренней и удаленной разблокировки. Эта информация будет храниться в ячейках памяти A и B. В ячейке памяти C будет храниться общее количество раз, когда дверь была разблокирована электронным способом.
В ПЛК есть много типов специальных блоков. Они включают таймеры, арифметические операторы и сравнения, поиск в таблицах, обработку текста, PID функции управления и фильтрации. Более мощные ПЛК могут работать с группой ячеек внутренней памяти и выполнять операцию с диапазоном адресов, например, для имитации физического последовательного барабанного контроллера или конечный автомат. В некоторых случаях пользователи могут определять свои собственные специальные блоки, которые фактически являются подпрограммами или макросами. Большая библиотека специальных блоков наряду с высокой скоростью выполнения позволила использовать ПЛК для реализации очень сложных систем автоматизации.
Ограничения и языки-преемники
Лестничная нотация лучше всего подходит для задач управления, где требуются только двоичные переменные и где блокировка и последовательность двоичных данных являются основной проблемой управления. Как все языки параллельного программирования, последовательный порядок операций может быть неопределенным или неясным; логика условия гонки возможны, что может привести к неожиданным результатам. Чтобы избежать этой проблемы, сложные ступени лучше всего разбить на несколько простых шагов. Некоторые производители избегают этой проблемы, явно и полностью определяя порядок выполнения ступени, однако программисты могут все еще иметь проблемы с полным пониманием получающейся сложной семантики.
Аналоговые величины и арифметические операции неуклюже выражать в релейной логике, и каждый производитель использует разные способы расширения обозначений для этих задач. Обычно существует ограниченная поддержка массивов и циклов, что часто приводит к дублированию кода для выражения случаев, которые в других языках требуют использования индексированных переменных.
В качестве микропроцессоры стали более мощными, такие обозначения, как последовательные функциональные диаграммы и схемы функциональных блоков может заменить релейную логику для некоторых ограниченных приложений. Некоторые новые ПЛК могут полностью или частично программировать на диалекте, напоминающем БАЗОВЫЙ, C, или другой язык программирования с привязками, подходящими для среды приложений реального времени.
Популярность
В 2019 году IEEE Spectrum поставил релейную логику на 50 место из 52 в списке популярных языков программирования.[3]
Смотрите также
Рекомендации
- ^ http://ecmweb.com/archive/basics-ladder-logic «Релейная логика использует контакты переключателя или реле для реализации логических выражений. В прошлые годы релейная логика стала возможной с помощью дискретных реле и иногда называлась« релейной логикой ».
- ^ Эдвард В. Камен Промышленный контроль и производство, (Academic Press, 1999) ISBN 0123948509, Глава 8 Диаграммы релейной логики и реализации ПЛК
- ^ «Интерактивность: лучшие языки программирования». IEEE Spectrum. Получено 2019-10-18.«Интерактивность: лучшие языки программирования». IEEE Spectrum.
дальнейшее чтение
- Уокер, Марк Джон (2012-09-08). Программируемый логический контроллер: предыстория, возникновение и применение (PDF) (Кандидатская диссертация). Отделение связи и систем факультета математики, вычислительной техники и технологий: Открытый университет. В архиве (PDF) из оригинала на 2018-06-20. Получено 2018-06-20.
внешняя ссылка
- «Глава 6: лестничная логика» Тони Р. Купхальдт