Релейная логика

редактировать

Релейная логика изначально была письменным методом документирования дизайна и строительство релейных стоек, используемых в производстве и управлении технологическим процессом. Каждое устройство в релейной стойке будет представлено символом на релейной диаграмме с подключениями между этими устройствами. Кроме того, на лестничной диаграмме также будут показаны другие элементы, внешние по отношению к релейной стойке, такие как насосы, нагреватели и т. Д.

Релейная логика превратилась в язык программирования, который представляет программу в виде графической диаграммы на основе принципиальных схем аппаратного обеспечения релейной логики. Релейная логика используется для разработки программного обеспечения для программируемых логических контроллеров (ПЛК), используемых в промышленных приложениях управления. Название основано на наблюдении, что программы на этом языке напоминают лестницы, с двумя вертикальными направляющими и серией горизонтальных ступенек между ними. В то время как лестничные диаграммы когда-то были единственной доступной нотацией для записи программ программируемых контроллеров, сегодня другие формы стандартизированы в IEC 61131-3 (например, в качестве альтернативы графической форме лестничной логики также существует более язык ассемблера, например формат, называемый Список инструкций в рамках стандарта IEC 61131-3.).

Содержание
  • 1 Обзор
  • 2 Синтаксис и примеры
    • 2.1 Логическое И
    • 2.2 Логическое И с НЕ
    • 2.3 Логическое ИЛИ
    • 2.4 Промышленный STOP / START
    • 2.5 Сложная логика
    • 2.6 Дополнительные функции
  • 3 Ограничения и языки-преемники
  • 4 Популярность
  • 5 См. Также
  • 6 Ссылки
  • 7 Дополнительная литература
  • 8 Внешние ссылки
Обзор
Часть лестничной диаграммы, включая контакты и катушки, сравнения, таймеры и моностабильные мультивибраторы

лестничная логика широко используется для программирования ПЛК, где последовательное управление процессом или требуется производственная операция. Релейная логика полезна для простых, но критических систем управления или для переделки старых фиксированных релейных схем. По мере того, как программируемые логические контроллеры становились все более сложными, они также использовались в очень сложных системах автоматизации. Часто программа релейной логики используется вместе с программой HMI, работающей на компьютерной рабочей станции.

Мотивация для представления последовательной логики управления в релейной диаграмме заключалась в том, чтобы позволить заводским инженерам и техническим специалистам разрабатывать программное обеспечение без дополнительного обучения для изучения такого языка, как FORTRAN или другой компьютерный язык общего назначения. Разработка и обслуживание были упрощены из-за сходства со знакомыми аппаратными системами реле. Реализации релейной логики могут иметь характеристики, такие как последовательное выполнение и поддержка функций потока управления, что делает аналогию с аппаратным обеспечением несколько неточной.

Релейную логику можно рассматривать как язык, основанный на правилах, а не как процедурный язык. «Ступенька» в лестнице представляет собой правило. При использовании реле и других электромеханических устройств различные правила выполняются одновременно и немедленно. При реализации в программируемом логическом контроллере правила обычно выполняются последовательно программным обеспечением в непрерывном цикле или «сканировании». Выполняя цикл достаточно быстро, обычно много раз в секунду, достигается эффект одновременного и немедленного выполнения. Правильное использование программируемых контроллеров требует понимания ограничений порядка выполнения цепочек.

Синтаксис и примеры

Сам язык можно рассматривать как набор связей между логическими устройствами проверки (контактами) и исполнительными механизмами (катушками). Если путь между левой стороной ступени и выходом можно проследить через подтвержденные (истинные или «замкнутые») контакты, цепочка является истинной, а бит сохранения выходной катушки установлен (1) или истинен. Если путь не может быть прослежен, то выход является ложным (0) и «катушка» по аналогии с электромеханическими реле считается «обесточенной». Аналогия между логическими предложениями и состоянием контактов реле объясняется тем, что Клод Шеннон.

У лестничной логики есть контакты, которые замыкают или размыкают цепи для управления катушками. Каждая катушка или контакт соответствует состоянию отдельного бита в памяти программируемого контроллера. В отличие от электромеханических реле, лестничная программа может любое количество раз ссылаться на состояние одного бита, что эквивалентно реле с неограниченно большим количеством контактов.

Так называемые «контакты» могут относиться к физическим («аппаратным») входам в программируемый контроллер от физических устройств, таких как кнопки и концевые выключатели через встроенный или внешний модуль ввода, или может представлять состояние битов внутренней памяти, которые могут быть сгенерированы в другом месте программы.

На каждой ступени языка релейной логики обычно есть одна катушка в крайнем правом углу. Некоторые производители могут допускать использование более одной выходной катушки на ступеньке.

  • Вход звена: шашки (контакты)
    • - [] -Нормально открытый контакт, замкнутый всякий раз, когда на его соответствующую катушку или вход, который управляет им, подается напряжение. (Открытый контакт в состоянии покоя)
    • - [\] -Нормально замкнутый («не») контакт, замкнутый всякий раз, когда соответствующая катушка или вход, который управляет им, не находятся под напряжением. (Замкнутый контакт в состоянии покоя)
  • Выход звена: исполнительные механизмы (катушки)
    • - () -Обычно неактивная катушка, запитывается всякий раз, когда ее звено замкнуто. (Неактивен в состоянии покоя)
    • - (\) -Нормально активная («не») катушка, запитывается всякий раз, когда ее ступень открыта. (Активен в состоянии покоя)

«Катушка» (выход ступени) может представлять физический выход, который управляет некоторым устройством, подключенным к программируемому контроллеру, или может представлять бит внутренней памяти для использования в другом месте программы.

Чтобы вспомнить это, представьте шашки (контакты) как вход для кнопки, а исполнительные механизмы (катушки) как выход лампочки. Наличие косой черты внутри шашек или исполнительных механизмов указывает на состояние покоя устройства по умолчанию.

Логическое И

------ [] -------------- [] --------------- - () Ключ-выключатель 1 Ключевой выключатель 2 Дверной выключатель

Вышеупомянутое реализует функцию: Дверной двигатель = Пусковой выключатель 1 И Пусковой выключатель 2

Эта схема показывает два ключевых выключателя, охранники могут использовать для активации электродвигателя на двери хранилища банка. Когда нормально разомкнутые контакты обоих переключателей замыкаются, электричество может течь к двигателю, который открывает дверь.

Логическое И с НЕ

------ [] -------------- [\] ------------ ---- () Закройте дверь. Препятствие. Мотор двери

. Вышеупомянутое реализует функцию: Мотор двери = Закрыть дверь И НЕ (препятствие).

Эта схема показывает кнопку, которая закрывает дверь, и датчик препятствий, который определяет, что что-то мешает закрывающейся двери. Когда нормально открытый контакт кнопки замыкается, а нормально закрытый датчик препятствий закрывается (препятствие не обнаружено), электричество может течь к двигателю, который закрывает дверь.

Логическое ИЛИ

- + ------- [] ------- + ----------------- () | Внешняя разблокировка | Разблокировать | | + ------- [] ------- + Внутренняя разблокировка

Вышеупомянутая функция реализует функцию: Разблокировка = Внутренняя разблокировка ИЛИ Внешняя разблокировка

Эта схема показаны две вещи, которые могут вызвать срабатывание дверных замков с электроприводом. Удаленный приемник всегда включен. Электромагнит разблокировки получает питание, когда замкнут любой набор контактов.

Промышленный СТОП / ПУСК

В обычной промышленной логике запуска / останова с фиксацией у нас есть кнопка «Пуск» для включения контактора двигателя и кнопка «Стоп» для выключения контактора.

При нажатии кнопки «Старт» вход становится истинным через замыкающий контакт кнопки «Стоп». Когда вход «Работа» становится истинным, замыкающийся замыкающий контакт «Работа», параллельный замыкающему контакту «Пуск», замыкается, поддерживая истинную логику входа (с фиксацией или опломбированием). После фиксации схемы можно нажать кнопку «Стоп», что приведет к размыканию нормально замкнутого контакта и, следовательно, к ложному входу. Затем размыкается нормально разомкнутый контакт «Работа», и логическая схема возвращается в неактивное состояние.

- + ---- [] - + ---- [\] ---- () | Старт | Остановить бег | | + ---- [] - + Пуск
------- [] -------------- () Пуск двигателя

Сказанное выше понимает функция: Пуск = (Пуск ИЛИ Пуск) И (НЕ Стоп)

Эта конфигурация защелки является распространенная идиома в релейной логике. Это также можно назвать «логикой запечатывания». Ключ к пониманию защелки заключается в признании того, что переключатель «Пуск» является переключателем мгновенного действия (как только пользователь отпускает кнопку, переключатель снова открывается). Как только соленоид «Работа» срабатывает, он замыкает замыкающий контакт «Работа», который фиксирует соленоид. В этом случае размыкание переключателя «Пуск» не дает никакого эффекта.

Примечание. В этом примере «Работа» представляет состояние бита в ПЛК, а «Двигатель» представляет фактический выход в реальный мир . реле, которое замыкает реальную цепь двигателя.

По соображениям безопасности аварийный останов может быть подключен последовательно с пусковым переключателем, и логика реле должна это отражать.

- [\] ---- [\] ---- + - [] - + --------- () ES Stop | Старт | Беги | | + - [] - + Пуск
------- [] -------------- () Пуск двигателя

Вышеуказанное реализует функцию: Пуск = (НЕ Аварийный останов) И (НЕ Останов) И (Пуск ИЛИ Выполнить)

Сложная логика

Вот пример того, как могут выглядеть две ступени в программе релейной логики. В реальных приложениях могут быть сотни или тысячи ступеней.

Обычно сложная релейная логика «читается» слева направо и сверху вниз. По мере того как каждая из линий (или ступеней) оценивается, выходная катушка ступени может подаваться на следующую ступень лестницы в качестве входа. В сложной системе будет много «ступенек» на лестнице, которые пронумерованы в порядке оценки.

1. ---- [] --------- + ---- [] ----- + ---- () Переключатель | HiTemp | A / C | | + ---- [] ----- + Влажный
2. ---- [] ---- [\] -------------------- () A / C Heat Cooling

Строка 1 реализует функцию: A / C = переключатель И (HiTemp OR Humid)

Строка 2 реализует функцию: Охлаждение = A / C AND (НЕ Нагрев)

Это представляет собой немного более сложную систему для ступени 2. После оценки первой строки выходная катушка «A / C» подается на ступень 2, которая затем оценивается и выходной змеевик «Охлаждение» может быть подан на выходное устройство «Компрессор» или на ступеньку 3 на лестнице. Эта система позволяет разбивать и оценивать очень сложные логические конструкции.

Дополнительные функции

Дополнительные функции могут быть добавлены к реализации релейной логики производителем ПЛК в виде специального блока. Когда специальный блок запитан, он выполняет код с заранее определенными аргументами. Эти аргументы могут отображаться в специальном блоке.

+ ------- + ----- [] -------------------- + A + ---- Удаленная разблокировка + - ------ + Удаленный счетчик
+ ------- + ----- [] ------------------- - + B + ---- Разблокировка салона + ------- + Счетчик салона
+ -------- + ------------- ------- + A + B + ----------- | в C | + -------- + Сумматор

В этом примере система подсчитает количество нажатий кнопок внутренней и удаленной разблокировки. Эта информация будет храниться в ячейках памяти A и B. В ячейке памяти C будет храниться общее количество раз, когда дверь была разблокирована электронным способом.

В ПЛК есть много типов специальных блоков. Они включают таймеры, арифметические операторы и сравнения, поиск в таблицах, обработку текста, управление PID и функции фильтрации. Более мощные ПЛК могут работать с группой ячеек внутренней памяти и выполнять операцию с диапазоном адресов, например, для имитации физического последовательного барабанного контроллера или конечного автомата. В некоторых случаях пользователи могут определять свои собственные специальные блоки, которые фактически являются подпрограммами или макросами. Большая библиотека специальных блоков наряду с высокой скоростью выполнения позволила использовать ПЛК для реализации очень сложных систем автоматизации.

Ограничения и языки-преемники

Лестничная нотация лучше всего подходит для управления проблемами, когда требуются только двоичные переменные и где блокировка и упорядочение двоичных данных являются основной проблемой управления. Как и во всех языках параллельного программирования, последовательный порядок операций может быть неопределенным или неясным; логика возможны состояния состязания, которые могут привести к неожиданным результатам. Чтобы избежать этой проблемы, сложные ступени лучше всего разбить на несколько простых шагов. Некоторые производители избегают этой проблемы, явно и полностью определяя порядок выполнения ступени, однако программисты могут все еще иметь проблемы с полным пониманием получающейся сложной семантики.

Аналоговые величины и арифметические операции неудобно выражать в релейной логике, и у каждого производителя есть разные способы расширения обозначений для этих проблем. Обычно существует ограниченная поддержка массивов и циклов, что часто приводит к дублированию кода для выражения случаев, которые в других языках требуют использования индексированных переменных.

Поскольку микропроцессоры стали более мощными, такие обозначения, как последовательные функциональные схемы и функциональные блок-схемы, могут заменить релейную логику для некоторых ограниченных приложений. Некоторые новые ПЛК могут полностью или частично выполнять программирование на диалекте, напоминающем BASIC, C или другом языке программирования с привязками, подходящими для среды приложений реального времени.

Популярность

В 2019 году IEEE Spectrum поставил лестничную логику на 50-е место из 52 в списке популярных языков программирования.

См. Также
Ссылки
  1. ^http://ecmweb.com/archive/basics-ladder-logic «Релейная логика использует контакты переключателя или реле для реализации логических выражений. В прошлые годы Релейная логика стала возможной благодаря дискретным реле и иногда называлась «релейной логикой».
  2. ^Эдвард В. Камен, Промышленное управление и производство, (Academic Press, 1999) ISBN 0123948509, Глава 8 Диаграммы релейной логики и реализации ПЛК
  3. ^«Интерактивное: лучшее программирование Языки ». IEEE Spectrum. Проверено 18 октября 2019 г. «Интерактивные: лучшие языки программирования». IEEE Spectrum.
Дополнительная литература
Внешние ссылки
Последняя правка сделана 2021-05-26 10:44:57
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте