Ladder diagram

Ladder diagram (, , ) — язык релейной (лестничной) логики.

Применяются также названия:
 язык релейно-контактной логики,
 релейные диаграммы,
 релейно-контактные схемы (РКС),
 язык программирования релейно-лестничной логики стандарта МЭК 61131-3.

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

Программа на языке релейной логики имеет наглядный и интуитивно понятный инженерам-электрикам графический интерфейс, представляющий логические операции как электрическую цепь с замкнутыми и разомкнутыми контактами. Протекание или отсутствие тока в этой цепи соответствует результату логической операции (истина — если ток течёт; ложь — если ток не течёт).

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

Различаются нормально замкнутые и нормально разомкнутые контактные элементы, которые можно сопоставить с нормально замкнутыми и нормально разомкнутыми кнопками в электрических цепях:
 ─┤ ├─ Нормально разомкнутый контакт разомкнут при значении ложь назначенной ему переменной и замыкается при значении истина.
 ─┤/├─ Нормально замкнутый контакт, напротив, замкнут, если переменная имеет значение ложь, и разомкнут, если переменная имеет значение истина.
 ─()─ Итог логической цепочки копируется в целевую переменную, которая называется катушка (). Это слово имеет обобщённый образ исполнительного устройства, поэтому в русскоязычной документации обычно говорят о выходе цепочки, хотя можно встретить и частные значения термина, например катушка реле.

Дизъюнкции A ∨ B соответствует схема, составленная из двух параллельно соединённых контактов А и В. Конъюнкции А & В соответствует схема, составленная из двух последовательно соединённых контактов А и В. Отрицанию высказывания А соответствует размыкающий контакт А, управляемый тем же устройством, что и контакт А.

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

См. также 
Языки программирования стандарта МЭК 61131-3:
 FBD — функциональные блоковые диаграммы.
 IL — список инструкций.
 SFC — последовательностные функциональные диаграммы.
 ST — структурированный текст.

Литература 
 Шэннон К. Символический анализ релейно-контактных схем, 1938.
 Мишель Ж. Программируемые контроллеры: архитектура и применение. — М.: Машиностроение, 1986.
 Э. Парр. Программируемые контроллеры: руководство для инженера. — М.: БИНОМ. Лаборатория знаний, 2007. — 516 с. ISBN 978-5-94774-340-1.
 Петров И. В. Программируемые контроллеры. Стандартные языки и приёмы прикладного проектирования / Под ред. проф. В. П. Дьяконова. — М.: СОЛОН-Пресс, 2004. — 256 c. ISBN 5-98003-079-4.
 Минаев И. Г. Программируемые логические контроллеры. Практическое руководство для начинающего инженера / И. Г. Минаев, В. В. Самойленко — Ставрополь: АГРУС, 2009. — 100 с. ISBN 978-5-9596-0609-1.
 Минаев И. Г. Программируемые логические контроллеры в автоматизированных системах управления / И. Г. Минаев, В. М. Шарапов, В. В. Самойленко, Д. Г. Ушкур. 2-е изд., перераб. и доп. — Ставрополь: АГРУС, 2010. — 128 с. ISBN 978-5-9596-0670-1.

Языки программирования по алфавиту
Программируемые логические контроллеры
Математическая логика