Опубликовано

Ld язык программирования

Содержание

Язык релейных диаграмм LD и его применение

Язык релейных или лестничных диаграмм LD (от англ. Ladder Diagram) представляет собой простой в обращении, графический язык разработки. В его основе лежат релейно-контактные схемы, поэтому элементами логики здесь выступают: обмотки реле, контакты реле, горизонтальные и вертикальные перемычки.

Пары контактов реле или кнопки — вот основные логические переменные языка LD, при этом состояние переменных — это есть ни что иное, как состояние контактов: разомкнутое или замкнутое.

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

Немного истории

Как таковой, язык релейных схем существовал еще во времена Томаса Эдисона, и лишь в начале 1970-х он был адаптирован для первых ПЛК. В самом начале данный язык появился в пакетах программирования ПЛК компаний Modicon и Allen-Bradly, причем символика была заимствована именно из электротехнической области.

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

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

Результат логической операции «ЛОЖЬ» или «ИСТИНА» в общем случае имеет под собой соответствующее состояние цепи: если ток течет — «ИСТИНА», «true», если тока нет — «ЛОЖЬ», «false».

Достоинства и недостатки языка LD

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

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

Как выглядит программа на LD

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

В языке LD для каждого контакта имеет место логическая переменная, которая и определяет состояние контакта. Для нормально-разомкнутого контакта переменная принимает значение «ИСТИНА» когда контакт замкнут, или принимает значение «ЛОЖЬ», когда контакт разомкнут. Надпись над контактом — это имя переменной и одновременно название контакта.

При последовательном соединении нескольких контактов логика равноценна операции «И». Параллельно соединенные контакты воспроизводят логическую операцию «монтажное ИЛИ». Цепь замкнута «ON», разомкнута — «OFF», что сказывается на состоянии обмотки реле и на значении логической переменной применительно к обмотке — «ЛОЖЬ» или «ИСТИНА».

  • -||- контакт нормально-разомкнутый

  • -|/|- контакт нормально-замкнутый

  • -( )- катушка реле

  • -(/)- катушка реле инверсная

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

Для инверсных контактов (нормально-замкнутых -|/|- ) характерно значение переменной «ИСТИНА», когда контакт разомкнут, и значение переменной «ЛОЖЬ» — когда контакт замкнут. Работа такого контакта эквивалентна логической операции НЕ. Комбинацией инверсного и прямого контакта получается переключающий контакт.

Кроме того, как видите, обмотки реле также могут быть инверсными, что означает, что логическая переменная принимает инверсное значение по отношению к состоянию цепи: ток течет — «ЛОЖЬ», тока нет — «ИСТИНА».

Пример использования языка LD:

Реализации проходного выключателя для автоматизации управления освещением

Еще один очень распространенный язык программирования ПЛК:

Язык функциональных блоковых диаграмм (FBD)

Мы планируем развивать эту тему здесь:

Обучение применению и программированию ПЛК

Андрей Повный

Ladder Diagram

Ladder Diagram (англ. LD, англ. LAD, рус. РКС) — язык релейной (лестничной) логики.

Применяются также названия:

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

Пример логического выражения на LD

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

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

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

Различаются нормально замкнутые и нормально разомкнутые контактные элементы, которые можно сопоставить с нормально замкнутыми и нормально разомкнутыми кнопками в электрических цепях.

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

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

Дизъюнкции AvB соответствует схема, составленная из двух параллельно-соединенных контактов А и В.

Конъюнкции А&В соответствует схема, составленная из двух последовательно соединенных контакт А и В.

Отрицанию высказывания А соответствует размыкающий контакт А, управляемый тем же устройством, что и контакт А

В 1910 физик Эренфест П.С. указал на возможность применения алгебры логики при создании релейно-контактных схем. В 1938 Клод Шэннон написал книгу «Символический анализ релейно-контактных схем».

Язык релейно-контактных схем (LD)‌


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

Структура команды на языке релейно-контактных схем показана на рисунке 11.1.



Рисунок 11.1 – Структура команды


11.1 Основные команды‌

      1. Команда (LD) нормально открытый контакт


        Прочитав этот сигнал, контроллер начинает постоянно проверять состояние входа, норме которого указан программистом. (Далее для простоты изложения будут указаны конкретные номера, они выбраны произвольно). И как только контролер определяет изменение состояния входа (X1), с выключено на включено, следует включение выхода (Y1). Данный символ может относиться не только к физическим входам контроллера, а также и к внутренним (вспомогательным) реле. Число и ограничения по использованию внутренних реле определяется только возможностями контроллера.


      2. Команда (LDI) нормально закрытый контакт

        Прочитав этот сигнал, контроллер начинает постоянно проверять состояние входа (X2). И как только контроллер определяет изменение состояния входа (X2), с включено на выключено, следует включение выхода (Y1). Данный символ может относиться не только


        к физическим входам контроллера, а также и к внутренним (вспомогательным) реле. Логика работы соответствует таблице 11.1.


        Таблица 11.1 – Таблица логического состояния входов

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

        LD нормально открытый контакт

        LDI – нормально закрытый контакт

        0

        Ложь

        Истина

        1

        Истина

        Ложь



      3. Команда (OUT) инициализация Выхода

        Прочитав эту команду, контроллер изменит состояние выхода (Y1), с выключено на включено. Так же, как и в случае с входами данный символ может относиться не только к физическим выходам контроллера, но и к внутренним (вспомогательным) реле. Число и ограничения по использованию внутренних реле определяется только возможностями контроллера. Логика работы соответствует таблице 11.2.


        Таблица 11.2 – Таблица логического состояния выходов

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

        OUT – Выход

        0

        Ложь

        1

        Истина


        Примечание:

        Избегайте двойной записи выходов (double coil) , так как это может привести к помехам при отработке программы.


        Пример двойной записи приведен на рисунке 11.2 а – ошибочная, б – верная запись:


        а)



        б)

        Рисунок 11.2 – Пример двойной записи выхода


        Исходим из того, что вход X1 включен (сигнал «1»), а вход X2 отключен (сигнал «0»).

        Первая запись выхода Y3 активизируется включенным входом X1, в отображении процесса выходов Y3 включен, соответственно активизируется также выход Y4.

        Эта программная последовательность имеет следствием то, что когда выключится X1, Y3 останется включенным, при условии, что был включен Х2.

        Для исправления такой ошибки, необходимо использовать оператор «ИЛИ». (см. далее)


        Y0 будет в состоянии «истина», когда вход Х0 будет включен («истина») , т.е. замкнут.

        Y0 будет в состоянии «истина», когда вход Х0 будет включен («истина») , т.е. замкнут.

        Вместе с Y0 будет включено внутреннее реле M0 (см. далее), замыкание которого повлечет в свою очередь установление выхода Y1 в состояние 1 («истина»).

        Рисунок 11.3 – Зависимость

        отработки выходов от значения входов

        Отработка зависимости выходов от значения входов показана на рисунке 11.3:


      4. Команды логических связей процесса (AND/ANI/OR/ORI)


        Команда (AND) логическое умножение

        Операция логического умножения. В языках программирования и языках запросов обозначается символами


        Рисунок 11.4 Логическое умножение


        AND, И, & и другими способами. Результатом операции является «истина», если оба операнда принимают значение

        «истина», и «ложь» – в остальных случаях. Пример записи команды показан на рисунке 11.4.


        Команда (ANI) – отрицание логического умножения

        По аналогии с предыдущим операндом результатом операции является «истина», если Х0 будет замкнут, и Х1 – разомкнут, т.е. оба входа примут значение «истина», в остальных случаях Y0 будет

        «ложь». Пример записи команды показан на рисунке 11.5.


        Рисунок 11.5 – Отрицание логического умножения



        Команда (OR) логическое сложение

        Операция логиче-


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



        Рисунок 11.6 – Логическое сложение

        Команда (ORI) отрицание логического сложения

        Аналогично предыдущему варианту. Пример записи команды показан на рисунке 11.7.


        Рисунок 11.7 – Отрицание логического сложения


      5. Команды (LDP) и (LDF) – управление по фронтам входных сигналов‌


        При необходимости использовать фронты сигналов входов (передний или задний) сигнал входа будет иметь вид


        Команда LDP (управление по переднему фронту)


        Команда LDF (управление по заднему фронту)


        Пример использования управления по фронтам сигналов показан на рисунке 11.8.

        Рисунок 11.8 – Управления по фронтам сигналов

        Внутреннее реле М100 (меркер) включается на время включения X1 или при положительном фронте X0 (моменте его включения).


        Выход Y0 включается при отрицательном фронте X0 (моменте его отключения).



      6. Команды SET(Установить)/RST(Сбросить)


        Пример, объясняющий функциональность команд прямой установки и сброса, показан на рисунке 11.9.

        Состояние сигнала операнда с помощью «SET/RST» команд (включение/выключение) может устанавливаться непосредственно.

        С помощью «SET/RST» могут устанавливаться в «1»/»0″ (включаться/выключаться) соответствующие операнды, например: Y (выход) , M (внутреннее реле) или S (состояние шагов).

        Также «RST» применяется для обнуления регистров и счетчиков.


        Рисунок 11.9 – Команды прямой установки


        Примечание: команда «RST» преобладает над командой

        «SET».


      7. Команда (INV) – Инверсия результата обработки


        Инвертирует состояние сигнала результата стоящей впереди команды. Полученный согласно обработки сигнал «1», после инверсии становится «0», и соответственно наоборот «0» становится «1».


      8. Команда (NOP) – Пустая строка в программе


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

        «NOP»-команды должны быть удалены, так как в противном случае они бесполезно удлиняют время цикла программы. «NOP» – команда может использоваться для создания паузы нужной длительности при отработке программы ПЛК.


      9. Команда (END) – конец программы


Окончание программы ПЛК и переход к началу программы (шаг 0). Каждая программа ПЛК должна завершаться командой


«END» . На этом месте оканчивается обработка программы. Последующие области программы не принимаются во внимание. После обработки «END»–команды выполняется обработка выходов. Чтобы организовать участки программы для пошаговой проверки, можно вводить «END»–команду также внутри программы. Эта дополнительная «END»–команда должна после окончания проверки удаляться.


    1. Программирование внутреннего реле‌


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


      Рисунок 11.10 – Пример программы для ПЛК


      Таблица 11.3 дает представление о том, как контроллер хранит полученные значения в регистрах


      Таблица 11.3 – Пример состояния регистров входов и выходов ПЛК

      Регистр входов (Х0…Х15)

      X15

      X14

      X13

      X12

      X11

      X10

      X9

      X8

      X7

      X6

      X5

      X4

      X3

      X2

      X1

      X0

      1

      0


      Регистр выходов (Y0…Х15)

      Y15

      Y14

      Y13

      Y12

      Y11

      Y10

      Y9

      Y8

      Y7

      Y6

      Y5

      Y4

      Y3

      Y2

      Y1

      Y0

      0


      Регистр входов:

      − в регистре X1 находится значение «0» (бит «0»), то есть вход (X1) – выключен;

      − в регистре X2 находится значение «1» (бит «1») следовательно, вход (X2) – включен.


      Регистр выходов:

      − в регистре Y1 находится значение «0» (Бит «0»), то есть выход (Y1) – выключен.

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


      Рассмотрим то, как изменятся значения в регистрах после того, как включится выключатель – вход (X1). Значения регистров выходов приведены в таблице 11.4.


      Рисунок 11.11 – Реакция выхода на изменение состояния входа


      Таблица 11.4 – Пример состояние регистров входов и выходов ПЛК

      Регистры входов (Х0…Х15)

      X15

      X14

      X13

      X12

      X11

      X10

      X9

      X8

      X7

      X6

      X5

      X4

      X3

      X2

      X1

      X0

      1

      1


      Регистры выходов (Y0…Х15)

      Y15

      Y14

      Y13

      Y12

      Y11

      Y10

      Y9

      Y8

      Y7

      Y6

      Y5

      Y4

      Y3

      Y2

      Y1

      Y0

      1

      Согласно схемы после включения входа (Х1) включился и выход (Y1) – электродвигатель заработал и технологический процесс пошёл. Рисунок 11.11 иллюстрирует это.

      Таблица 11.5 описывает все возможные состояния для двух входов и одного выхода.


      Входы ( Х1/Х2 ) Выход

      ( Y1 ) Значение врегистра

      LD ( X1 )

      LDI ( X2 ) OUT (

      Y1)

      LD ( X1 )

      LDI ( X2 ) OUT ( Y1)

      Ложь

      Истина Ложь

      0

      0 0

      Истина

      Истина Истина

      1

      0 1

      Истина

      Ложь Ложь

      1

      1 0

      Ложь

      Ложь Ложь

      0

      1 0

      Таблица 11.5 – Таблица возможных состояний входов и выходов ПЛК

      х


      Из таблицы 11.5 можем видеть, что контроллер выполнит операцию включения выхода (Y1) тогда, когда вход (X1) и вход (X2) будут в состоянии «истина».

      Данный пример показывает (рисунок 11.12), как работает логика «AND» («И»), т. е. выход (Y1) изменит свое состояние «0» на

      «1» тогда и только тогда, когда вход (X1) и вход (X2) будут в состоянии «истина». Во всех остальных случаях выход (Y1) будет в состоянии «0», т. е. «выкл.».



      Рисунок 11.12 – Пример работы логики «И»


      Использование внутреннего реле (меркера) – контроль уровня.

      Предположим нам необходимо постоянно поддерживать определенный уровень в баке с водой (рисунок 11.13). Для решения необходимо:

      • датчик верхнего уровня – вход (X2) (переходит в состояние

        «включено», когда уровень воды падает);

      • датчик нижнего уровня – вход (X1) (переходит в состояние

        «включено», когда уровень воды падает);

      • насос – выход (Y1).


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

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

      • Включение насоса при достижении нижнего уровня;

      • Выключение насоса при достижении верхнего уровня.

      Рисунок 11.13 – Схема программы для

      включения насоса

      Рисунок 11.14 – Бак

      с водой

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


      Когда вода опустится ниже уровня второго датчика, то оба входа (вход (X1) и вход (X2)) изменят свое состояние с «0» на «1», за этим последует изменение состояния внутреннего реле M1 с «0» на

      «1» и включение насоса.

      Когда вода поднимется до уровня второго датчика, то вход (X2) будет в состоянии «1», а вход (X1) изменит свое состояние с «1» на

      «0», и в результате насос будет продолжать работать, так как внутреннее реле будет в состоянии «1» до тех пор, пока вода не достигнет уровня верхнего датчика и не изменит состояние входа (X2) с

      «1» на «0». За этим последует изменение состояния регистра M1 с

      «1» на «0» и выключение насоса.


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


    2. Программирование счетчика. Команда COUNTER‌


      Счетчик – самое простое устройство в контроллере, так как предназначен только для одного – считать. Конечно, в реальности в зависимости от модели контроллер может поддерживать различные варианты использования данной функции:

      • суммирующие счётчики (прямой счет 1, 2, 3 …);

      • обратные счётчики (счет вниз 3, 2, 1 …);

         счет вверх-вниз (счет вниз 1, 2, 3, 4, 5, 4, 3, 2, 3, 4, 5 …).

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

        Дополнительно счетчики делятся по способу обработки импульсов на два основных типа:

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

      • Аппаратные – не зависят от быстродействия контроллера и могут работать быстрее времени обработки одного программного


        цикла (с частотой до 100 кГц). Мы можем считать, что данный тип счетчиков физически существует;

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

        Для правильного использования счетчиков необходимо определить для себя всего 3 вещи:

      • С какой частотой мы хотели бы считать. Так как обычно, использование программного счетчика допустимо для любого из входов, то при выборе аппаратного счетчика мы можем использовать только те входы, которые служат для высокоскоростного счета. Для определения возможности использования того или иного входа в качестве высокоскоростного необходимо сверяться с руководством пользователя или с руководством по программированию;

      • До какого значения мы собираемся считать импульсы.

        Диапазон, в котором может считать контролер 0 … 32.767, -32.768 …

        -32.768, 0 … 65535, … зависит только от конкретной модели контроллера;

      • По какому условию мы можем остановить счет.


        Команда (OUT Сn Кm) – Инициализация счетчика.


        С – обозначение счетчика;

        n – число от 1 до 256 – номер счетчика;

        К – обозначение константы;

        m – число от 1 2.147.483.648, до которого будет вестись счет.


        Например, при n = 1, m = 3 :


        Вспомним наш первый пример и попробуем решить следующую задачу. Пусть насос (выход (Y1)) включится только после того, как мы три раза включим-выключим вход (X2) (см. рисунок 11.14).

      • То есть при включении входа (X1) – счетчик (С1) установится в значение «0»;

      • Первое нажатие на вход (X2) – счетчик (С1) сравнит «1» = К3 («3») – если нет, то запомнит «1»;


      • Второе нажатие на вход (X2) – счетчик (С1) прибавит «1», сравнит «2» = К3(«3») – если нет, то запомнит «2»;

      • Третье нажатие на вход (X2) – счетчик (С1) прибавит «1» сравнит «3» = К3(«3») – если да, то сменит состояние С1 с «0» на «1» и насос заработает;

      • Повторное включение Входа (X1) – счетчик (С1) установится в значение «0» и цикл начнется с начала.

        Рисунок 11.15 – Схема и диаграмма работы счетчика


    3. Программирование таймера. Команда TIMER‌


      Попробуем классифицировать, какими бывают таймеры:

      • с задержкой по включению. Другими словами, после того, как Вы нажали на выключатель (т.е. придя поздно вечером домой и нажав на выключатель, вы с удивлением обнаруживаете, что свет загорается только через одну минуту после включения выключателя);

      • с задержкой по выключению. Иначе, после того, как Вы выключили свет (т.е. уходя поздно вечером из дома и нажав на выключатель, вы с удивлением обнаруживаете, что свет в квартире погас только спустя некоторое время);

      • Накапливающий таймер – Этот тип таймера позволит Вам выключить свет только после того, как суммарное время включения достигнет определенного значения. Данный тип таймера требует обязательного использования двух входов.

        Что мы должны определить для себя – это всего лишь 2 вещи:

      • Какой из входов запустит таймер;

      • Какую задержку времени установить, т.е. сколько времени пройдет, прежде чем включится-выключится выход.

        С того момента, когда все команды перед символом таймера примут значение – «истина», таймер начинает отсчёт времени и по


        достижении установленного значения переключит состояния выхода с «включено» на «выключено» или наоборот. В любой момент времени работы таймера есть возможность отображать его текущее состояние. Диапазон, в котором может работать контроллер (0 … 32.767, -32.768 … -32.768, 0 … 65535) зависит только от конкретной модели контроллера.

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


        Команда (OUT Tn Кm) – Инициализация таймера.

        Т – обозначение таймера;

        n – число от 1 до 256-номер таймера;

        m – число от 1 до 32768, до которого будет вестись

        отсчет времени.

        Например, при n = 1, m

        = 3:



        Пример 1: Таймер с задержкой по включению.

        Вспомним наш пример с уровнем воды в баке и решим следующую задачу: пусть насос (выход (Y1)) включится через три секунды после включения входа (X1). Схема работы контроллера показана на рисунке 11.16.


        • Вход (X1) включился – таймер (Т1) начал отсчет времени;


        • Прошло три секунды – выход (Y1) включился;


        • Вход (X1) выключился – выход (Y1) выключился.


        • Вход (X1) включился – таймер (Т1) начал отсчет времени;


        • Прошло три секунды – выход (Y1) включился;


        • Вход (X1) выключился – выход (Y1) выключился.


Рисунок 11.16 – Схема и временная диаграмма программирования таймера с задержкой по включению


Понятно, что шаг мог бы быть и 0,1 мс или 0,01 мс и т. д. Аналогично работает таймер с задержкой по выключению.


Пример 2: Таймер с накоплением



Рисунок 11.17 – Схема и временная диаграмма программирования таймера с накоплением


Пусть насос (выход (Y1)) включится только после того, как вход (X1) отработает цикл включено-выключено-включено, общей длительностью 6 секунд. Схема работы контроллера показана на рисунке 11.17.

  • Вход (X1) включился – таймер (Т1) начал отсчет времени;

  • Прошло три секунды – выход (X1) выключился;

  • Таймер запомнил время работы входа(X1) – t1 = 3 с;

  • Вход (X1) включился – таймер (Т1) продолжил отсчет времени, как только T = t1 + t2 = 6 с, то выход (Y1) включился;

  • Вход (X2) включился – таймер (Т1) изменил свое состояния с

    «1» на «0» и выход (Y1) выключился.


    Пример 3: Таймер с памятью


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


    Рисунок 11.18 – Схемы и временные диаграммы

    работы таймера с памятью

    TIMER – погрешность

    Теперь вернемся немного назад и вспомним, как работает контроллер – что такое быстродействие? Конечно, если использовать таймер с шагом 1 секунда, то можно не беспокоиться, но когда используются таймеры, которые работают с шагом от 0,001 секунды, просто необходимо помнить о быстродействии контроллера.

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

    • погрешность по входу;

    • погрешность по выходу.


Погрешность по входу (рисунок 11.19) означает, что с момента, когда включится вход (X1), до начала работы таймера пройдет время, равное:

tВып.прог  2  tВх  tВых  tПогр.по Вых.


Рисунок 11.19 – Временная диаграмма погрешности таймера по входу


Погрешность по выходу (рисунок 11.20) означает, что с момента, когда выключится вход (X1), до начала работы таймера пройдет время, равное

tВып.прог  2  tВх  tВых  tПогр.по Вых.


Рисунок 11.20 – Временная диаграмма погрешности таймера по выходу


Таким образом, если контроллер имеет tЦикла обработки = 5 мк и поддерживает работу таймера с шагом 1 мсек., то минимальный шаг,


с которым может корректно работать таймер контроллера, должен быть больше, чем 10 мсек. В действительности, кроме «программной погрешности», мы должны принимать во внимание и существование

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


    1. Программирование одиночных импульсов. Команды (PLF) и (PLS)‌‌



Генерация одного импульса – опознание фронта сигнала независимо от продолжительности входного сигнала для включения соответствующего операнда (выхода Y или внутреннего реле M). Операнд остается включенным на протяжении одного цикла программы (скана).

PLS – генерация одиночного импульса по возрастающему фронту входного сигнала.

PLF – генерация одиночного импульса по cпадающему фронту входного сигнала.


Пример применения однократных импульсов показан на рисунке 11.21:



Рисунок 11.21 – Схема и временная диаграмма применения команды

временных импульсов

При возрастании входного сигнала на входе X0 с «0» до «1» (возрастающий фронт) внутреннее реле М0 благодаря «PLS»команде получает импульс (включается на время одного цикла программы). С помощью этого импульса по контакту реле М0 включается выход Y0. Лишь когда на входе X1 пройдет смена сигнала с «1» на «0» (падающий фронт), выход Y0 снова отключится (см. рисунок 11.21).

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

В начало

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

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

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

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

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

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

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

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

Рис. Пример программы на языке 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. Операционный блок должен быть присоединен непо­средственно к правой «шине» питания.

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

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

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

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

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

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

Простая автоматизация: программируемые реле Easy

Здравствуйте, уважаемое сообщество!
На Хабре уже много сказано слов о различных устройствах автоматизации, начиная от простых Arduino, заканчивая промышленными многопроцессорными системами. Я же хочу закрасить очередное белое пятно на карте хабро-автоматики статьей о промежуточных устройствах — программируемых реле, на примере микропроцессорных устройств Easy производства корпорации Eaton (Moeller).
Прошло уже достаточно много времени с моего первого знакомства с данным типом устройств, но по-прежнему, эти «электронные малыши» остаются незаменимыми помощниками для реализации широкого спектра инженерных и бытовых задач.

Программируемое (интеллектуальное) реле — разновидность программируемых логических контроллеров (ПЛК).
Основное применение программируемые реле нашли в качестве средств автоматизации локальных контуров, отдельных агрегатов машин и механизмов, для бытового применения.
На основе интеллектуальных реле интуитивно и понятно строятся различные системы автоматического управления, например, системы управления насосным оборудованием, сверлильными станками, системы автоматического ввода резерва (АВР). Компактные размеры и простота программирования позволяют разрабатывать на базе программируемых реле элементы системы «умный дом».
Стандартными средствами описания и построения программ для данных устройств являются языки релейной логики (LD) или функциональных блоков (FBD), разработанные специально для инженеров, занятых в области автоматизации промышленности и производства.
Простота языка программирования, легкость перехода от морально устаревших систем автоматизации на базе релейно-контакторных схем к микропроцессорным устройствам, позволили программируемым реле занять надежную позицию на рынке устройств автоматизации.

Теория

Реле, как основной оператор программирования

Исходя из названия описываемого класса устройств, основным оперируемым элементом будет являться реле.
Реле — электромеханическое устройство, предназначенное для коммутации электрических цепей при заданных изменениях электрических или неэлектрических входных величинах. Классическое реле имеет катушку управления x, и группу контактов, реализующих выходную функцию y=f(x).
При подаче управляющего напряжения на вход катушки контакты изменяют свое первоначальное состояние на инверсное.
Группа контактов может содержать два основных типа контактов: нормально открытые контакты и нормально закрытые контакты.
Нормально открытый контакт — контакт, находящийся в разомкнутом состоянии при отсутствии напряжения на катушке управления.
Нормально закрытый контакт — контакт, находящийся в замкнутом состоянии при отсутствии напряжения на катушке управления.
Таким образом можно записать два основных типа функций, реализуемых с помощью реле:
y(x) = x — для нормально-открытых контактов;
y(x) = x̅ — для нормально-закрытых контактов.
Остальные типы функций, реализуемых с помощью реле, основываются на придании контактной группе дополнительных свойств. Функции и типы контактов реле показаны на рисунке ниже.

1 — катушка реле (управляющая цепь), 2 — нормально открытый контакт, 3 — нормально закрытый контакт, 4 — нормально открытый контакт с замедлителем при срабатывании, 5 — нормально открытый контакт с замедлителем при возврате, 6 — нормально открытый контакт импульсный, 7 — нормально открытый контакт без самовозврата, 8 — нормально закрытый контакт без самовозврата, 9 — нормально закрытый контакт с замедлителем при срабатывании, 10 — нормально закрытый контакт с замедлителем при возврате.

Элементы теории дискретных автоматизированных устройств

Под дискретным автоматизированным устройством понимают управляющее устройство, осуществляющее переработку априорной и текущей информации в управляющую, причем носителями всех перечисленных составляющих информации являются дискретные по уровню и во времени сигналы. Это означает, что состояние сигнала каждого входа (выхода) автоматизированного устройства характеризуется двумя уровнями: минимальным, условно обозначаемым «0», и максимальным, обозначаемым «1».
Составление структурной схемы управления по заданным условиям ее работы называют синтезом. Определение условий работы схемы или ее отдельных элементов по имеющейся структуре называют анализом схем управления.
Схемы на релейных и бесконтактных элементах можно составлять двумя способами.
Первый способ опытный, широко используемый в практике логического составления релейно-контакторных схем. Исходя из заданных условий работы отдельных частей рабочей машины, составляют принципиальную схему системы автоматики. Аналогично составляют бесконтактные аналоги релейно-контактных схем, в которых заданные условия работы схемы выражаются в виде функций алгебры логики. При этом целесообразно провести минимизацию любой контактной или бесконтактной схемы, построенной таким опытным способом. Минимизация схем проводится на основе законов алгебры логики.
Второй способ построения (синтеза) схем основан на более полном использовании теории алгебры логики и принципов формализации реальных условий работы схемы автоматики. В этом случае исходят из заданных условий работы, составляя соответствующие таблицы состояний (карты функций), где отмечают комбинации аргументов и значений функций (выходных сигналов) в виде логических «1» и «0». Основная задача синтеза заключается в определении такой формы выражения искомой логической функции, которую можно реализовать с применением минимального числа возможно более простых элементов. Синтез релейных схем управления сводится к составлению структурной формулы (аналитического выражения), описывающей логические функции, которые должны выполняться данным устройством. Затем анализируют полученную алгебраическую формулу и составляют графическое начертание схемы.
Разбор полного курса теории логики и синтеза схем выходит за рамки данной статьи, все заинтересовавшиеся данной тематикой могут подробно ознакомиться с предметом, используя ссылки на литературу (в конце статьи).
Давайте рассмотрим процесс создания схемы управления на простом примере из жизни.

Синтез релейно-контакторной схемы управления на примере

Постановка задачи

Необходимо разработать систему управления освещением офисного помещения в соответствии со следующими условиями:
Дано
Офисное помещение с одной группой основного освещения (люминесцентные лампы) и одной группой дежурного и фонового освещения.
Шторы-жалюзи с электроприводом.
Необходимо

  1. По окончанию рабочего дня (18:15) обеспечить отключение группы основного освещения и обеспечить включение дежурного освещения. Если жалюзи остались закрытыми — обеспечить их открытие.
  2. Перед началом рабочего дня (8:45) обеспечить отключение дежурного освещения.
  3. При недостаточном природном освещении, обеспечить включение основного освещения по сигналу с датчика затемнения, при условии, что жалюзи открыты.
  4. Обеспечить включение фонового освещения при закрытых жалюзи. Если было включено основное освещение — выключить его.
  5. При включении фонового освещения предусмотреть автоматическое опускание жалюзи.

Дополнительные условия

  1. Датчик освещенности имеет бинарный выход, настраиваемый на определенный порог освещенности. При недостаточной освещенности — контакт замыкается.
  2. Система привода жалюзи имеет контакты, информирующие о граничных положениях.

Решение

Давайте в первую очередь определим соответствия входных и выходных сигналов проектируемой системы переменным. Условимся обозначать все входные сигналы переменными I с соотв. индексом, а все выходные сигналы – переменными Q с соотв. индексом.
Входные переменные:
I1 — сигнал датчика освещенности.
I2 — сигнал верхнего положения жалюзи.
I3 — сигнал нижнего положения жалюзи.
I4 — сигнал включения фонового освещения.
Выходные переменные:
Q1 — включение/выключение основной группы освещения.
Q2 — включение/выключение дежурного освещения.
Q3 — включение/выключение фонового освещения.
Q4 — поднятие жалюзи.
Q5 — опускание жалюзи.
Переменные времени:
T1 — достижение времени окончания рабочего дня.
T2 — достижение времени начала рабочего дня.
Далее —разобьем нашу задачу на условные части и составим логические функции для каждой из частей.

  1. Конец рабочего дня
    1. Выключаем основной свет: Q1=not(T1)
    2. Включаем дежурный свет: Q2=T1
    3. Открываем жалюзи, если закрыты: Q4=not(I2)⋅T1

  2. Начало рабочего дня
    1. Выключаем дежурный свет: Q2=not(T2)

  3. Контроль уровня освещенности
    1. Включение основного света по датчику освещенности, с проверкой, открыты ли жалюзи: Q1=I1⋅ I2⋅not(T1)⋅T2
  4. Управляем фоновым освещением
    1. Включение фонового освещения при закрытых жалюзи: Q3=I3
    2. Отключим основное освещение при закрытых жалюзи Q1=not(I3)
  5. Управление жалюзи в зависимости от включенного фонового освещения
    1. При включении фонового освещения опустить жалюзи, если не конец рабочего дня: Q5=I4⋅not(I3) ⋅not(T1)⋅T2

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

Железо

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

Вверху устройства расположены:

  • клеммы для подключения питания;
  • клеммы цифровых входов устройства;
  • клеммы аналоговых входов (0..10 В).

Внизу устройства расположены:

  • клеммы релейных (или транзисторных) выходов устройства.

На фронтальной панели расположены:

  • жидкокристаллический экран — для отображения информационных сообщений, редактирования программы, изменения параметров;
  • клавиатура — для навигации по меню устройства;
  • разъем для подключения кабеля программирования.

Питание устройств

По напряжению и типу питания программируемые реле делятся на:

  • устройства с питанием 12, 24 В (DC);
  • устройства с питанием 24, 110-220 В (AC).

Цифровые входы

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

  • устройства с входами 12, 24 В (DC);
  • устройства с входами 24, 110-220 В (AC).

В зависимости от типа программируемого реле Easy, один и более цифровых входов могут быть использованы как «быстрые счетчики» — для подсчета импульсов с частотой до 3 кГц.

Аналоговые входы

Для обработки аналоговых сигналов, таких как, сигналы температурных датчиков, датчиков скорости ветра, внешних потенциометров, программируемые реле Easy имеют на борту два и более аналоговых входа 0..10 В (DC).
Нужно заметить, что аналоговые входы предусмотрены только на устройствах с питанием 12 В (DC), 24 В (AC, DC).

Релейные и транзисторные выходы

Для коммутации выходных сигналов в программируемых реле Easy предусмотрены 4 и более выходов. Выходы устройств бывают двух типов:

  • транзисторные выходы, обеспечивающие возможность коммутации небольших нагрузок до 0,5 А;
  • релейные выходы, обеспечивающие коммутацию нагрузок до 8 А (AC1).

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

Аналоговые выходы

Программируемые реле серии Easy800 имеют на борту аналоговый выход (0..10 В).

Экран

Встроенный экран предназначен для отображения текстовой (в устройствах серии Easy500, 700, 800) и графической (в устройствах серии MFD-Titan) информации.

Коммуникации и масштабируемость системы

Ethernet – возможность подключения посредством модуля расширения, реализующего функции OPC-сервера. Для всей линейки устройств.
Profibus, CANopen, DeviceNet, As-i – возможность подключения посредством модулей расширения. Для устройств серии Easy700, Easy800.
Easy-net – возможность соединения программируемых реле в сеть. Для устройств Easy800, MFD-Titan.

Для устройств серии Easy700, Easy800 доступны модули расширения, позволяющие увеличить количество входов и выходов устройств. Модули расширения могут иметь крепление встык, посредством переходника, либо, устанавливаться удаленно (до 100 м). Удаленная установка удобна в том случае, если, например, вы реализуете систему управления двумя помещениями.
К одному программируемому реле Easy может быть подключен только один модуль расширения.
Программируемые реле серии Easy800 имеют на борту интерфейс Easy-net, позволяющий объединить до 8-ми устройств в единую сеть, при этом к каждому из устройств может быть подключен модуль расширения. Таким образом возможна организация системы с количеством входов/выходов до 328.

Линейка программируемых реле Easy

Программируемые реле Easy представлены устройствами серий Easy500, Easy700, Easy800 и MFD-Titan.

Программируемые реле серии Easy500

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

Основные характеристики программируемых реле серии Easy500

  • Напряжение питания и напряжение цифровых входов: 24 В и 100 – 240 В AC, 12 В и 24 В DC.
  • 8 цифровых входов.
  • 2 аналоговых входа: 0 — 10 V (0 – 1023 bit), в версиях с питанием 12 В, 24 В DC и 24 В AC.
  • 4 релейных выхода: 8 A, или 4 транзисторных выхода: 24 В DC/0.5 A.
  • 128 «строк программы» с 3-мя контактами и 1-й катушкой.
  • Реле серии Easy500 не имеют возможности подключения модулей расширения.

Программируемые реле серии Easy700

Устройства, сочетающие в себе все преимущества устройств Easy500-й серии, с возможностью подключения дополнительных блоков расширения: аналоговых и цифровых входов/выходов, коммуникационных модулей и тп.
Данная серия программируемых реле Easy оптимальна для решения достаточно сложных задач автоматизации, с возможностью управления большим количеством сигналов (линий). Также, устройства идеальны для применения в проектах, предполагающих дальнейшее расширение возможностей системы управления с минимальными затратами.

Основные характеристики программируемых реле серии Easy700

  • Напряжение питания и напряжение цифровых входов: 24 В и 100 – 240 В AC, 12 В и 24 В DC.
  • 12 цифровых входов.
  • 4 аналоговых входа: 0 — 10 V (0 – 1023 bit), в версиях с питанием 12 В, 24 В DC и 24 В AC.
  • 6 релейных выхода: 8 A, или 8 транзисторных выходов: 24 В DC/0.5 A.
  • 128 «строк программы» с 3-мя контактами и 1-й катушкой.
  • Возможность подключения блоков расширения.

Программируемые реле серии Easy800

Продвинутая, и наиболее функциональная серия устройств Easy, позволяющая реализовать гибкое решение практически любой задачи бытовой и промышленной автоматизации. Устройства серии Easy800 могут быть расширены дополнительными модулями расширения функционала и коммуникаций.
Наряду со стандартными функциями, представленными в easy500/700, такими как многофункциональные реле, импульсные реле, счетчики, аналоговые компараторы, таймеры, часы реального времени и энергонезависимая память, easy800 дополнительно содержит ПИД-регуляторы, арифметические блоки, блоки масштабирования значений и многие другие функции. Также возможность объединения в сеть до 8 устройств, делает easy800 самым мощным программируемым реле на электротехническом рынке.
При решении комплексных задач, программируемые реле Easy800 могут быть объединены в одну общую сеть устройств EasyNet.

Основные характеристики программируемых реле серии Easy800:

  • Напряжение питания и напряжение цифровых входов: 24 В и 100 – 240 В AC, 12 В и 24 В DC.
  • 12 цифровых входов.
  • 4 аналоговых входа: 0 — 10 V (0 – 1023 bit), в версиях с питанием 12 В, 24 В DC и 24 В AC.
  • 6 релейных выхода: 8 A, или 8 транзисторных выходов: 24 В DC/0.5 A.
  • 256 «строк программы» с 4-мя контактами и 1-й катушкой.
  • Интегрированный интерфейс EasyNet для соединения устройств в сеть (до 8-ми устройств).
  • Возможность подключения блоков расширения.

Практика

Выбор устройства

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

  1. Определим количество цифровых входов. Мы имеем 4 входные переменные I1..I4, поэтому достаточно наличие в устройстве 4-х входов.
  2. Определим напряжение питания и тип цифровых входов. Так как мы планируем применять программируемое реле для бытовых нужд, с питанием внутридомовой сети 220 В, 50 Гц, то наиболее подходящее устройство будет с аналогичными требованиями к питанию и значениям напряжения цифровых входов – 220 В, 50 Гц.
  3. Определим типы и количество выходных контактов. Для управления 5-ю выходными переменными нам необходимо выбрать устройство с соответствующим количеством выходов. Так выходы программируемого реле должны обеспечивать коммутацию внутриофисных источников света и других силовых устройств, то нам необходимо наличие релейных выходов.

Воспользовавшись каталогом программируемых реле, выбираем тип устройства, наиболее подходящий для наших целей: EASY719-AC-RC10.
Выбранное реле имеет на борту:

  • 12 цифровых входов (220 В, 50 Гц);
  • 6 релейных выходов (коммутация нагрузки до 8 А);
  • часы реального времени;
  • питание устройства – 110-220 В, 50 Гц.

Среда разработки

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

  • контакты и катушки отображаются в соответствии со стандартами МЭК;
  • контакты и катушки отображаются в соответствии со стандартами ГОСТ;
  • контакты и катушки отображаются согласно стандарту ANSI.

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

Программирование

Процесс написания программы для программируемого реле Easy сводится к «отрисовке» релейно-контакторной схемы соединения в соответствии с полученными логическими функциями и определения необходимых параметров, таких как, постоянные времени, значения таймеров и т.п.
Запустим Easy-Soft и создадим новый проект.
Выберем необходимый тип устройства из списка слева и перетащим его в окно проекта. При этом появится меню выбора версии устройства. Из выпадающего списка следует выбрать версию 10-хххххххх – это соответствует устройствам с поддержкой кириллицы.

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

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

Недельный таймер предназначен для инициации каких-либо действий на протяжении недели, в зависимости от установленных временных границ. Таймер имеет 4 независимых канала A, B, C, D. Каждый из каналов может быть сконфигурирован на определенные временные промежутки. Например, в нашем случае, конфигурация недельного таймера обеспечивает его срабатывание с понедельника по воскресенье, с 18-45 до 8-45.
Вы будете правы, если заметите, что в нашем примере используется офисное помещение, рабочие дни которого, обычно, с понедельника по пятницу.
Итоговая релейно-контакторная схема нашего примера

Отладка

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

Прошивка

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

Подключение и сборка системы управления

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

  • 8 А активной нагрузки (AC1) для устройств с релейными выходами;
  • 0,5 А — для устройств с транзисторными выходами.

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

Заключение

Надеюсь, что многие, кто не знал про описываемый класс устройств, теперь имеют информацию и начальные знания, что бы приступить к реализации своих идей, возможно возникших, при прочтении данной статьи.
Хочется верить, что мой труд не прошел даром и изложенная информация пригодится людям для практической реализации своих инженерных идей в промышленности и дома. С программируемыми реле Easy это действительно просто и увлекательно!
Если Хабросообщество сочтет информацию интересной, на будущее планирую подготовить ряд статей по практическому применению описываемых устройств в автоматизации и промышленности. Расскажу про некоторые недокументированные возможности программируемых реле Easy, например, про то, как сделать графический интерфейс с возможностью мониторинга всех внутренних переменных. Да, вы абсолютно правы, на реле Easy можно построить систему диспетчеризации с графическим интерфейсом.

Полезная информация

Wikipedia – алгебра логики.
Wikipedia – карты Карно – методы минимизации булевых функций.
Wikipedia – реле.
Документация на программируемые реле серии Easy500, Easy700.
Документация на программируемые реле серии Easy800.
Центр обучения по реле Easy – множество примеров по применению программируемых реле Easy (на русском языке).
Программное обеспечение для реле Easy (в т.ч., на русском языке).
Сайт производителя.
Каталог программируемых реле Easy.
Easy — это просто. Учебное пособие. О.А. Андрющенко, В.А. Водичев.
Некоторые ссылки на документацию приведены не с сайта производителя, а с сайта моей компании, так как после слияния корпораций Eaton и Moeller ведется реконструкторизация внутренних ресурсов, и ссылки на документацию бывают недоступными.
UPD 1. Добавлена литература — учебное пособие для студентов ВУЗов. Примеры, лабораторные работы.
UPD 2. Да, эти устройства можно программировать непосредственно с встроенной клавиатуры. Большие программы, конечно, не очень удобно набирать, но для оперативного редактирования схем — вполне можно использовать эту возможность.
UPD 3. Хаброюзер ShadowHacker подсказывает, что корректнее в терминах электротехники/электроники употреблять выражение «нормально разомкнутый контакт» и «нормально замкнутый контакт». В статье оставлю первоначальную терминологию по причине того, что в русскоязычной документации и каталогах к устройству употребляются термины «нормально закрытый контакт» и «нормально открытый контакт».


Warning: Error while sending QUERY packet. PID=10848 in D:\OpenServer\domains\kuhnileona.ru\wp-includes\wp-db.php on line 1924
Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *