ПЛК

Язык релейных диаграмм LD (Тема)

 

Язык LD представляет собой графическую интерпретацию процесса разработки релейно-контактных схем управления. Первоначально на языке LD программировались контроллеры производства компании Allen Bradley. Ввиду его удобства и значительного количества пользователей, обладающих навыками проектирования логических систем на базе реле и контакторов, язык LD был введен в стандарт IEC 61131-3 и в настоящее время является одним из наиболее распространенных язы­ков программирования ПЛК. Этот язык наиболее удобен для программирования небольших задач дискретной логики, поэтому многие контроллеры младших классов имеют язык LD в качестве основного для разработки программ управления.

Программы, написанные на языке LD, состоят из последовательности ступеней, которые выполняются ПЛК последовательно, слева направо.

Ступень состоит из набора графических элементов, ограниченных слева и справа условными шинами питания.

Набор графических элементов языка LD включает:

1)      Входы/выходы ПЛК (кнопки, датчики, реле, индикаторные лампы и т.д.);

2)      Стандартные управляющие системные функции (таймеры, счетчики и т.д.);

3)      Арифметические, логические и специальные операции;

4)      Внутренние переменные ПЛК.

 

Рис. Пример программы на языке LD

 

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

Графические элементы языка LD можно условно разделить на базовые элемен­ты, функциональные и операционные блоки. Каждый базовый элемент занимает одну ячейку (одну строку по высоте и одну колонку по ширине). Блоки могут зани­мать несколько ячеек. Базовые элементы и блоки языка LD приведены далее.

 

Таблица. Базовые элементы и блоки языка LD

Наименование

Элемент/Блок

Символ

Функция

Элементы
условий

Нормально откры­тый контакт

–| |–

Контакт замкнут, когда битовая переменная, которая управляет им, равна 1

Нормально закры­тый контакт

–|/|–

 

Контакт замкнут, когда битовая переменная, которая управляет им, равна 0

 

Контакты, срабаты­вающие по перепаду

–|P|–

Возрастающий перепад: контакт замкнут, когда битовая перемен­ная, которая управляет им, изме­няется с 0 до 1

–|N|–

Убывающий перепад: контакт замкнут, когда битовая переменная, которая управляет им, изменяет­ся с 1 до 0

Элементы
связи

Горизонтальные связи

______

Используются для соединения элементов условий и элементов действия, расположенных последовательно между двумя шинами питания

Вертикальные свя­зи

|

Используются для параллельного соединения элементов действия и условий

Коротко-круговые соединения

_ˉˉˉ|__

Используются для соединения двух объектов, использующих разные связи

Элементы
действия

Прямая обмотка

–( )–

Устанавливает соответствующий битовый объект в значение, рав­ное результату, полученному в проверочной зоне

Обратная обмотка

–(/)–

Устанавливает соответствующий битовый объект в значение, рав­ное инверсии от результата, полу­ченного в проверочной

 

Устанавливающая обмотка

–(S)–

Устанавливает соответствующий битовый объект в 1, когда резуль­тат, полученный в проверочной зоне, равен 0

Сбрасывающая обмотка

–(R)–

Сбрасывает соответствующий би­товый объект в 0, если результат, полученный в проверочной зоне, равен 1

Условный переход к другой ступени

>> %Li

Обеспечивает соединение с поме­ченной строкой, причем послед­няя может быть расположена до или после текущей ступени

Обмотка вызова подпрограммы

–(C)–

Позволяет подсоединиться к под­программе, если результат, полу­ченный в проверочной зоне, ра­вен 1

 

Возврат из
подпрограммы

<RETURN>

Зарезервировано для подпро­грамм, позволяет возвращаться в вызывающий модуль, когда результат, полученный в прове­рочной зоне, равен 1

Останов

программы

<HALT>

Останов выполнения программы, когда результат, полученный в проверочной зоне, равен 1

Проверочные элементы

Блоки:
Таймер
Счетчик
Одновибратор
Регистр
Контроллер
барабана

 

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

Вертикальный блок сравнения

 

Позволяет сравнивать два опе­ранда. В зависимости от результа­та соответствующий вход прини­мает значение, равное 1. Размер: 2 колонки/4 строки

 

Горизонтальный блок сравнения «Compare»

 

Позволяет сравнивать два операнда. Выход принимает значение, рав­ное 1, если при сравнении получен истинный результат. (Блок может содержать до 4096 символов). Раз­мер: 2 колонки/1 строка

Элемент

дей­ствия

Операционный блок «Operate»

 

Выполняет арифметические, логические и другие операции и ис­пользует синтаксис языка структурированного текста. (Блок мо­жет содержать до 4096 символов). Размер: 4 колонки/1строка

 

Ступень содержит до 7-ми строк и до 11-ти колонок, разделенных на две зоны – проверочную и зону действий. Каждая ступень может быть снабжена меткой и озаглавлена комментарием. Метки могут быть использованы для идентификации ступени внутри программного объекта (головной программы, подпрограммы и т.д.), но не являются обязательными. Метки имеют синтаксис %Li (где i от 0 до 999) и располагаются в левом верхнем углу перед шиной питания. Каждая метка может присваиваться только одной ступени в пределах данного программного объекта. Система сканирует ступени в том порядке, как они были введены, независимо от порядка нумерации меток.

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

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

Пред­полагается, что между шинами питания протекает ток, который имеет следующее направление:

– по горизонтальным связям слева направо;

– по вертикальным связям в обоих направлениях.

Проверочная зона содержит: контакты, которые могут быть помечены любым, ранее определенным битовым объектом; функциональные блоки; блоки сравнения. Возрастающие и убывающие фронты могут быть связаны только входными и вы­ходными битовыми объектами и внутренними битами.

Зона действий содержит: прямые, инверсные, фиксирующие и инверсно-фикси­рующие обмотки, которые могут быть помечены любым битовым объектом; запи­санные пользователем операционные блоки; другие элементы действия (Call, Jump, Halt, Return).

На одной линии возможно до 10-ти контактов. В одной колонке максимально может параллельно проверяться до 7-ми контактов. До 7-ми обмоток могут быть включены параллельно. Ступень может быть разделена на несколько независимых линий контактов, причем каждая линия управляет независимой обмоткой.

Операционные блоки всегда расположены в зоне действий. Внутри блока запи­сывается фраза на языке ST. Операционный блок должен быть присоединен непо­средственно к правой «шине» питания.

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

В соответствии с указанным порядком исполнения система:

1)      Оценивает логическое состояние каждого контакта, соответствующее текущему значению внутренних переменных объекта управления, или состояние входов модулей ввода/вывода ПЛК, считываемых в начале сканирования;

2)      Выполняет рабочие действия, соответствующие функциям, функциональным блокам и подпрограммам;

3)      Обеспечивает битовые объекты, соответствующие обмоткам (выходы модулей ввода/вывода обновляются в конце сканирования);

4)      Переходит к другой помеченной ступени в данном программном модуле (перехо­ды к другой ступени >>%Li), возвращается в вызывающий модуль <RETURN> или останавливает программу <HALT>.