Мы продолжаем изучать программирование ПЛК ОВЕН в универсальной среде программирования CoDeSys. В этой публикации описаны элементы языка релейно-контакторных схем (релейные диаграммы LD, LD-диаграммы). С предыдущей публикацией по программированию ПЛК, посвященной знакомству с операторами языка ST (структурированный текст), можно ознакомиться здесь.
LD (Ladder Diagram) язык релейных диаграмм или релейно-контактных схем (РКС) — графический язык, реализующий структуры электрических цепей. Данный графический язык появился как решение задачи прозрачного переноса релейных схем в ПЛК. Различные варианты программной реализации релейных схем создавались практически всеми ведущими производителями ПЛК. Благодаря простоте представления РКС обрел заслуженную популярность, что и стало основной причиной включения его в стандарт МЭК.
Лучше всего LD подходит для построения логических переключателей, но достаточно легко можно создавать и сложные цепи – как в FBD. Кроме того, LD достаточно удобен для управления другими компонентами POU
LD-диаграмма
Графически LD-диаграмма представлена в виде двух вертикальных шин питания. Между ними расположены цепи, образованные соединением контактов. Нагрузкой каждой цепи служит реле. Каждое реле имеет контакты, которые можно использовать в других цепях. Количество контактов в цепи произвольно. Если последовательно соединенные контакты замкнуты, ток идет по цепи и реле включается. При необходимости можно включить параллельно несколько реле, последовательное включение не допускается.
В LD каждому контакту ставится в соответствие логическая переменная, определяющая его состояние. Если контакт замкнут, то переменная имеет значение ИСТИНА. Если разомкнут ЛОЖЬ. Имя переменной пишется над контактом и фактически служит его названием.
Последовательное соединение контактов или цепей равноценно логической операции И. Параллельное соединение образует монтажное ИЛИ.
Цепь может быть либо замкнутой (ON), либо разомкнутой (OFF). Это отражается на обмотке реле и соответственно на значении логической переменной обмотки (ИСТИНА/ЛОЖЬ).
Основные элементы языка LD
Зрительное восприятие LD-диаграмм должно быть интуитивно понятным. Преимущество состоит в возможности применения символов псевдографики для построения LD-диаграмм.
Основными элементами языка являются контакты, которые можно образно уподобить паре контактов реле или кнопки. Пара контактов отождествляется с логической переменной, а состояние этой пары — со значением переменной.
Различаются нормально замкнутые и нормально разомкнутые контактные элементы, которые можно сопоставить с нормально замкнутыми и нормально разомкнутыми кнопками в электрических цепях:
- ─┤ ├─ Нормально разомкнутый контакт разомкнут при значении ложь назначенной ему переменной и замыкается при значении истина.
- ─┤/├─ Нормально замкнутый контакт, напротив, замкнут, если переменная имеет значение ложь, и разомкнут, если переменная имеет значение истина.
- ─()─ Итог логической цепочки копируется в целевую переменную, которая называется катушка (coil). Это слово имеет обобщённый образ исполнительного устройства, поэтому в русскоязычной документации обычно говорят о выходе цепочки, хотя можно встретить и частные значения термина, например катушка реле.
Переключающий контакт образуется комбинацией прямого и инверсного контактов:
Обмотки реле также могут быть инверсными, что обозначается символом (/). Если обмотка инверсная, то в соответствующую логическую переменную копируется инверсное значение состояния цепи.
SET и RESET обмотка
Помимо обычных реле, в релейных схемах часто применяются поляризованные реле. Такое реле имеет две обмотки, переключающие его из одного положения в другое. Переключение производится импульсами тока. При отключении тока питания поляризованное реле остается в заданном положении, что реализует элементарную ячейку памяти.
В LD такое реле реализуется при помощи двух специальных обмоток SET и RESET. Обмотки типа SET обозначаются буквой S внутри круглых скобок (S). Обмотки типа RESET обозначаются буквой R внутри круглых скобок (R). Если соответствующая обмотке (S) переменная принимает значение ИСТИНА, то сохраняет его бесконечно. Вернуть данную переменную в ЛОЖЬ можно только обмоткой (R).
Функциональные блоки в LD
Кроме контактов и обмоток, в LD можно использовать функциональные блоки и программы. Они должны иметь логические вход и выход и могут использоваться так же, как контакты.
LD в качестве FBD
При работе с LD может возникнуть необходимость с помощью контакта управлять другими POU.
Во-первых, можно использовать обмотку для передачи значения глобальной переменной, которая будет использоваться в другом месте. Кроме того, можно вставить вызов прямо в схему LD.
Такой POU может быть оператором, функцией, программой или функциональным блоком, который имеет добавочный вход, обозначаемый EN. Вход EN всегда логического типа, и POU выполняется, только когда значение EN=ИСТИНА. POU встраивается в схему параллельно обмоткам, и вход EN соединяется ответвлением. Использование таких POU делает LD схему похожей на FBD схему.
Логически последовательное (И), параллельное (ИЛИ) соединение контактов и инверсия (НЕ) образуют базис Буля. В результате LD подходит не только для построения релейных автоматов, но и для программной реализации комбинационных логических схем. Благодаря возможности включения в LD функций и функциональных блоков, выполненных на других языках, сфера применения языка практически не ограничена.
В этой статье мы познакомились с приемами использования релейных диаграмм LD при написании программ в CoDeSys. На следующем уроке начнем разбираться с элементами другого графического языка программирования – функциональными диаграммами FBD, используемыми в проектах CoDeSys.