stringtranslate.com

Лестничная логика

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

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

Обзор

Часть лестничной схемы, включая контакты и катушки, блоки сравнения, таймеры и моностабильные мультивибраторы.

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

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

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

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

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

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

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

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

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

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

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

Логическое И

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

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

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

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

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

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

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

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

Промышленный СТОП/СТАРТ

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

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

Вышеупомянутое реализует функцию: Run = (Пуск ИЛИ Run) И ( НЕ Stop)

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

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

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

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

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

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

  1. Реализация функции: A/C = Переключатель И (Высокая температура ИЛИ Влажность).
     ----[ ]---------+----[ ]-----+----( ) Переключатель | ПриветТемп | кондиционер | | +----[ ]-----+ Влажный
  2. Реализация функции: Охлаждение = кондиционер И ( НЕ обогрев).
     ----[ ]----[\]--------------------( ) Кондиционер Обогрев Охлаждение

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

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

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

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

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

Ограничения и последующие языки

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

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

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

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

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

Смотрите также

Рекомендации

  1. ^ «Основы лестничной логики». Лестничная логика использует контакты переключателей или реле для реализации логических выражений. В прошлые годы лестничная логика стала возможной благодаря дискретным реле, и ее иногда называли релейной логикой.
  2. ^ Эдвард В. Кеймен, «Промышленный контроль и производство» , (Academic Press, 1999) ISBN 0123948509 , Глава 8. Лестничные логические схемы и реализации ПЛК. 
  3. ^ «Интерактив: лучшие языки программирования». IEEE-спектр . Архивировано из оригинала 18 сентября 2019 г.

дальнейшее чтение

Внешние ссылки