Ladder diagram самоучитель

Содержание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.2.1. Базовые конструкции релейно-контактных схем.

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

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

  • входы и выходы ПЛК – кнопки, контакты реле, концевые выключатели, сигналы датчиков, индикаторные лампы и т.д.;

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

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

  • внутренние переменные ПЛК.

Для использования в логике релейно-контактных схем применяются две системы – комбинационная логика и последовательная логика.

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

Рис. 4.2. Релейно-контактная схема комбинационной логики для ПЛК

Дискретные входы ПЛК и результаты выполнения логических операций пред­ставляются в виде условных контактов реле, нормально разомкнутых (нормально открытых, или контактов типа A) и нормально замкнутых (нормально закрытых, инверсных, или контактов типа B). Нормально разомкнутые контакты замыкаются при появлении сигнала на соответствующем входе или истинности поставленного в соответствие данному контакту логического выражения. В цепи 1 на рис. 4.2 используется нормально разомкнутый входной контакт ПЛК X0. Логика работы нормально замкнутых контактов – обратная, он размыкаются при появлении сигнала или истинности логического выражения. В цепи 2 на рис. 4.2 используется нормально замкнутый входной контакт ПЛК X1. В цепи 3 используется несколько входных контактов ПЛК – X2, X3 и X4.

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

На языке LD могут быть запрограммированы ло­гические операции «И» (AND), «ИЛИ» (OR), «НЕ» (NOT) и др. Последова­тельное соединение контактов равнозначно логической операции «И», параллельное «ИЛИ». Операция «НЕ» реализуется инверсным кон­тактом. Ток в обмотке реле по­является после замыкания (размыкания) контактов и выполнения всех логических условий. Для цепи 3 рис. 4.2, а можно записать логическое уравнение функционирования: Y2 = ( (NOT X2) OR X3) AND X4).

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

Рис. 4.3. Релейно-контактная схема последовательной логики для ПЛК

Схема на рис. 4.3 – это схема самоблокировки реле. При замыкании входного контакта X5 реле Y3 срабатывает, его контакт Y3 замыкается и блокирует контакт X5. В этом состоянии контакт X5 может и разомкнуться, реле Y3 все равно останется во включенном состоянии. Выключение реле происходит при размыкании нормально замкнутого контакта X6, при этом контакт реле Y3 размыкается и схема возвращается в исходное состояние, замыкание контакта X6 не приведет к срабатыванию реле Y3.

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

Рис.4.4. Процесс сканирования релейно-контактной схемы в ПЛК

Структура и терминология релейно-контактной схемы. Релейно-контактную схему можно разделить на ряд небольших ячеек, объединенных в строки и столбцы. Для ПЛК серии FBs максимальный размер схемы составляет 16 строк по 22 столбца. В одной ячейке может располагаться один элемент. Пример релейно-контактной схемы приведен на рис. 4.5.

Рис. 4.5. Пример релейно-контактной схемы

Контакт – это элемент с двумя состояниями – замкнут или разомкнут. Один тип контактов называется «Входной контакт» (X со справочным номером) и его состояние определяется внешними входными сигналами с блока входных клемм. Другой тип контактов называется «Релейный контакт» и его состояние соответствует состоянию реле. В ПЛК FBs имеются следующие виды контактов: контакт A (X0, X2), контакт B (X1, X3), дифференциальные контакты «вверх» TU (X10, Y4), дифференциальные контакты «вниз» TD (X5, M6) и контакты «разомкнуто/замкнуто» Open/Short (отсутствие или наличие линии связи).

Реле состоит из катушки (обмотки) и контактов (рис. 4.6).

Рис. 4.6. Схема реле

Для включения реле нужно подать ток в его катушку. Если реле Y0 находится в состоянии ВКЛ, то контакт A будет находиться в состоянии ВКЛ, контакт B – в состоянии ВЫКЛ. Контакты TU (TD) принимают состояние ВКЛ в интервале времени скана, когда реле переходит из состояния ВЫКЛ в состояние ВКЛ (из ВКЛ в ВЫКЛ) соответственно. В ПЛК FBs имеются четыре типа реле: выходные Y, внутренние M, шаговые S, временные TR. Состояния выходных реле Y передаются на блок выходных клемм. На рис. 4.5 показаны выходная катушка Y0, инверсная выходная катушка Y2.

.. 1 2 3 4 5 6 7 8 ..

Язык релейно-контактных схем (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).

This entry was posted in Ремонт. Bookmark the <a href="https://kabel-house.ru/remont/ladder-diagram-samouchitel/" title="Permalink to Ladder diagram самоучитель" rel="bookmark">permalink</a>.

Добавить комментарий

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