Jump to content
  • PLC programming technology and HMI interface design Russian database

    PLC, DCS, HMI and SCADA product application technical articles

    leizuofa
    Это программа ПЛК для логики двухстороннего переключателя для освещения лестницы в доме
    Логика двухстороннего переключателя ПЛК
    В двухквартирном доме есть первый и второй этажи, а иногда и второй этажи.
    Иногда людям нужно перейти с первого этажа на второй или с первого этажа на первый по лестнице, предусмотренной в доме.
    Но на лестнице нет солнечного света, поэтому людям нужна лампа/свет, чтобы легко видеть ступеньки лестницы.
    Здесь мы используем простой ПЛК для управления этой лампой с помощью двух переключателей, один переключатель на первом этаже и второй переключатель на первом этаже для управления одной лампой, как показано на рисунке ниже.
    Примечание: мы также можем построить схему с помощью простых реле/переключателей. Эта статья только для понимания базовой концепции двухстороннего переключателя с использованием логики лестничной цепи ПЛК.
    Изображение

    Решение
    Мы решим эту проблему с помощью простой автоматизации. Как показано на рисунке, рассмотрим один простой дом с одним этажом и лестницей в доме.
    Здесь мы настроим систему освещения для пользователей, чтобы включать/выключать свет, находятся ли они внизу лестницы или наверху.
    Мы предоставим отдельный выключатель для каждого этажа, как показано на рисунке выше.
    Требования к вводу/выводу ПЛК
    Цифровые входы
    SW1: I0.1 SW2: I0.2 Цифровые выходы
    Лампа: Q0.0 Программа ПЛК для двухстороннего переключателя

    Объяснение программы
    Для этого приложения мы использовали ПЛК S7-1200 и программное обеспечение портала TIA для программирования. В приведенной выше программе мы добавили два НО контакта SW 1 (I0.1) и SW 2 (I0.2) последовательно и НЗ контакты SW1 (I0.1) и SW2 (I0.2) параллельно этой серии НО контактов SW1 и SW2. Если состояние нижнего переключателя (SW1) и состояние верхнего переключателя (SW2) одинаковы, то лампа будет включена. А если состояние нижнего или верхнего переключателя отличается от другого, то лампа (Q0.0) будет выключена. Когда лампа (Q0.0) выключена, то пользователь может включить лампу, изменив состояние любого переключателя. Также пользователь может выключить лампу, изменив состояние одного из двух переключателей. Результат

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

    leizuofa
    Это программа ПЛК для автоматической инициализации параметров при включении питания.
    Инициализация параметров при включении питания
    Описание проблемы
    Во многих приложениях необходимо инициализировать некоторые данные при включении машины.
    Иногда из-за сбоя питания значение некоторых параметров становится равным нулю.
    Из-за этой проблемы оператору приходится вводить все данные снова или каждый раз при сбое питания.
    Когда машина включается, в это время необходимые параметры должны быть инициализированы автоматически.
    Здесь мы обсудим эту проблему с помощью базовой релейной логики.
    Диаграмма проблемы

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

    Список входов/выходов ПЛК
    Список входов
    Кнопка инициализации параметров: I0.0 MW10: Установка скорости с дисплея Список выходов
    Mw12: Скорость для привода Описание программы
    Для этого приложения мы используем ПЛК S7-1200 и программное обеспечение портала TIA для программирования. Эта логика используется для инициализации параметров. Для первого сканирования мы использовали здесь возможности системной памяти S7-1200. Каждый ПЛК имеет свою собственную системную память. Всегда включенный бит, всегда выключенный бит, первый бит сканирования и измененный диагностический статус являются системной памятью для ПЛК S7-1200. Мы можем настроить любой адрес памяти «M» для системной памяти. Здесь мы настроили M1.0 для первого сканирующего бита, который используется для инициализации параметров. Мы пишем для инициализации параметров в Network 1. Здесь мы используем НО контакт первого сканирующего бита (M1.0) для перемещения начальных 5 об/мин в MW12 (скорость для привода). Используя инструкцию MOVE, 5 об/мин будут перемещены в MW12. Добавьте НО контакт кнопки инициализации параметров (I0.0) для перемещения начальных 5 об/мин в MW12 (скорость для привода) вручную. Для редактирования данных вручную в рабочем цикле мы пишем логику в Network 2. Здесь оператор может ввести данные в MW10 (УСТАНОВИТЬ СКОРОСТЬ) с дисплея, и они будут отправлены в MW12 (скорость для привода). Например, скажем, нам нужно ввести скорость 100 об/мин с дисплея, она будет записана в слово MW10 (Установить скорость с дисплея) и согласно логике она будет перемещена в MW12 (скорость для привода), поэтому двигатель будет работать на 100 об/мин. Тестовые случаи во время выполнения

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

    leizuofa
    Это программа ПЛК для защелкивания и разблокирования цепи для вывода.
    Защелкивание и разблокирование цепи ПЛК
    Описание проблемы
    В некоторых системах транспортировки оператор наполняет бак вручную, вручную управляя водяным насосом.
    В этой ситуации оператор ждет, пока бак наполнится, потому что когда бак достигает высокого уровня, водяной насос должен быть остановлен.
    Также водяной насос должен оставаться во включенном состоянии, пока бак не достигнет высокого уровня.
    Например, в этой статье мы рассмотрим ручную систему транспортировки воды.
    Диаграмма проблемы

    Решение проблемы
    В этом примере мы рассматриваем один резервуар для хранения воды и используем один водяной насос для наполнения бака.
    Мы также используем один датчик уровня для высокого уровня и панель управления для оператора.
    Здесь START PB для включения двигателя, чтобы мы могли подавать воду в бак, для остановки двигателя мы используем STOP PB.
    Датчик уровня для обнаружения высокого уровня, поэтому, когда бак наполняется, датчик высокого уровня активируется и останавливает водяной насос.
    Для этой последовательности мы будем использовать инструкции SET и RESET для фиксации и разблокировки водяного насоса.
    Мы можем сделать эту схему с помощью отдельных реле.
    В приложении есть только один ручной выпускной клапан для ручной разгрузки бака. Мы не будем рассматривать логику.
    Список входов ПЛК
    ПУСК PB: I0.0 СТОП PB: I0.1 ДАТЧИК ВЫСОКОГО УРОВНЯ: I0.2 ДАТЧИК НИЗКОГО УРОВНЯ: I0.3 Список выходов ПЛК
    ВОДЯНОЙ НАСОС: I0.0 Релейная диаграмма ПЛК для фиксации и разблокировки цепи

    Описание программы
    Для этого приложения мы используем ПЛК S7-1200 и программное обеспечение портала TIA для программирования. Мы также можем сделать эту схему или логику с реле. Эта схема или логика известна как схема или логика фиксации и расцепления. Мы напишем логику для водяного насоса в сети 1. Здесь мы используем НО контакт START PB (I0.0) для включения водяного насоса (Q0.0). Используя инструкцию SET, выходная катушка водяного насоса (Q0.0) будет зафиксирована. Добавьте НО контакт ДАТЧИКА НИЗКОГО УРОВНЯ (I0.3) последовательно с выходом водяного насоса (Q0.0). Водяной насос не должен запускаться, если бак полон. поэтому в целях безопасности используйте один НО контакт ДАТЧИКА НИЗКОГО УРОВНЯ (I0.3) последовательно после START PB (I0.0) в сети 1. Теперь ДАТЧИК ВЫСОКОГО УРОВНЯ (I0.2) будет обнаружен через некоторое время работы насоса, и в этом случае водяной насос (Q0.0) должен быть остановлен автоматически. Для этой цели нам нужно разблокировать цепь. Мы напишем логику для разблокировки схемы в сети 2. В этом случае мы берем контакт NO ДАТЧИКА ВЫСОКОГО УРОВНЯ (I0.3) для разблокировки схемы с помощью инструкции RESET. Добавьте один контакт NO STOP PB (I0.1) в параллельное соединение, чтобы оператор мог разблокировать схему, нажав STOP PB (I0.1). Здесь мы заблокируем схему с помощью инструкции SET и разблокируем с помощью инструкции RESET. Тестовые случаи во время выполнения

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

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

    Примечание: для простоты обсуждения в этом примере не рассматриваются локальные/дистанционные или любые другие разрешающие блокировки.
    Проблема Решение
    Здесь мы решаем эту проблему, используя простой пример условной логики. В этом примере есть один редукторный двигатель, и нам нужно обеспечить смазку перед его запуском.
    Таким образом, для смазки у нас есть смазочный двигатель (также называемый масляным насосом или вспомогательным насосом смазочного масла), и он будет обеспечивать смазочное масло для главного двигателя или редукторного двигателя.
    Кроме того, мы предоставим систему блокировки, чтобы оператор не мог напрямую запустить/использовать главный двигатель без использования надлежащей смазки, в противном случае главный двигатель может перегреться и выйти из строя после нескольких запусков без надлежащего ухода.
    Сначала оператор должен включить масляный насос, и только после этого он сможет управлять главным двигателем.
    Используя эту логику, мы можем заботиться о редукторном двигателе в течение длительного времени с надлежащей смазкой.
    Операторы запускают/останавливают масляный насос с помощью кнопок ПУСК и СТОП масляного насоса.
    Как масляный насос, так и главный двигатель имеют отдельные индивидуальные кнопки ПУСК и СТОП, как показано на схеме выше.
    Список входов ПЛК
    Oil Pump Start PB : I0.0 Oil Pump Stop PB : I0.1 Main Motor Start PB : I0.2 Main Motor Stop PB : I0.3 Список выходов ПЛК
    Oil Pump Motor : Q0.0 Main Motor : Q0.1 Релейная схема ПЛК для условной схемы управления

    Описание релейной логики
    В этом приложении мы использовали Siemens S7-1200 PLC и программное обеспечение TIA Portal для программирования. Мы также можем разработать эту логику с помощью релейной схемы. Эта схема также известна как условная схема управления, потому что вторая последовательность зависит от первого условия. Мы напишем логику для масляного насоса в сети 1. Здесь мы возьмем нормально разомкнутый контакт масляного насоса START PB (I0.0), а также мы должны рассмотреть один нормально замкнутый контакт катушки масляного насоса (Q.0) для фиксации команды START. Поставьте NC контакт остановки масляного насоса PB (I0.1) последовательно для разблокировки цепи нажатием кнопки STOP масляного насоса PB (I0.1), чтобы оператор мог остановить масляный насос (Q0.0). Теперь напишите логику для главного двигателя в Network 2. Здесь мы возьмем NO контакт START главного двигателя PB (I0.2), а также возьмем еще один NO контакт катушки главного двигателя для блокировки главного двигателя (Q0.1). Поставьте NC контакт остановки главного двигателя PB (I0.3) последовательно для разблокировки цепи нажатием кнопки STOP главного двигателя PB (I0.3), чтобы оператор мог остановить главный двигатель (Q0.1). Поставьте NO контакт масляного насоса (Q0.0) последовательно после START главного двигателя PB (I0.2) для блокировки. Таким образом, оператор должен запустить масляный насос (Q0.0), и только после этого он сможет ЗАПУСТИТЬ главный двигатель (Q0.1). Тестовые случаи времени выполнения

    Примечание: приведенная выше логика ПЛК дает базовую идею о применении программы ПЛК для условной логики управления. Логика ограничена и не является полным приложением.

    leizuofa
    Предположим, что вдоль конвейерной системы имеется шестнадцать станций.
    Станции пронумерованы от 0 до 15, причем нулевая станция является первой (т. е. точка, где детали попадают на конвейер).
    Детали должны продвигаться по конвейеру со скоростью одна станция каждые четыре секунды.
    Деталь может находиться или не находиться на данной станции в любой момент времени.
    Входной датчик I:0.0/0 используется для обнаружения детали, поступающей на конвейер.
    На станции 5 детали проверяются на наличие дефектов, и входной датчик I:0.0/1 активируется, если деталь неисправна.
    На станции 10 любые дефектные детали должны быть удалены с конвейера путем активации выхода O:0.0/0.
    Напишите эффективную программу логики ПЛК для этого процесса.
    Программа логики конвейера ПЛК


    leizuofa
    Напишите программу счетчиков ПЛК для приведенного ниже примера.
    Счетчики ПЛК
    Определенный процесс заключается в подсчете количества переходов «истина-ложь» на входе I:0.0/0 в течение 10-секундного периода.
    Подсчет должен выполняться, если входное слово I:0.1 имеет значение меньше 10000 или больше 20000.
    10-секундный период подсчета должен начинаться через 15 секунд после начала процесса. I:0.0/1 — это вход запуска процесса, а вход I:0.0/2 — это вход остановки процесса.
    Дисплей подсчета должен выводиться в слово O:0.0 только в конце периода подсчета.
    Все выходы должны быть обесточены через 5 секунд после периода подсчета.
    Процесс должен повторяться только после еще одного отдельного нажатия входа запуска процесса.
    Напишите эффективную программу релейной логики для этого процесса.
    Логика ПЛК


    leizuofa
    Напишите программу логического вентиля ПЛК для примера ПЛК ниже.
    Программа логического вентиля
    Напишите программу, которая выполняет операцию И B3:0 с B3:1 при подаче питания на I:0.0/0, операцию ИЛИ B3:0 с B3:1 при подаче питания на I:0.0/1, операцию ИСКЛЮЧАЮЩЕЕ ИЛИ B3:0 с B3:1 при подаче питания на I:0.0/2 и операцию ДОПОЛНЕНИЯ B3:0 при подаче питания на I:0.0/3. B3:1 должна содержать результат в каждом случае.
    Если подаётся питание на более чем один вход I:0.0/0-I:0.0/3, будет выполнена только одна из операций.
    Порядок приоритета операций должен быть от И (высший приоритет) до ДОПОЛНЕНИЯ (низший приоритет).
    Логика лестничной схемы ПЛК


    leizuofa
    Инструкции JSR, SBR и RET используются для указания контроллеру выполнить отдельный файл подпрограммы в программе релейной логики и вернуться к инструкции, следующей за инструкцией JSR.
    Подпрограммы ПЛК Allen Bradley
    Инструкция SBR должна быть первой инструкцией на первой ступени в файле программы, содержащем подпрограмму.
    Используйте подпрограмму для хранения повторяющихся разделов логики программы, которые должны быть выполнены из нескольких точек в вашей прикладной программе Подпрограмма экономит память, поскольку вы программируете ее только один раз. Обновляйте критический ввод-вывод в подпрограммах с помощью инструкций немедленного ввода и/или вывода (IIM, IOM), особенно если ваше приложение вызывает вложенные или относительно длинные подпрограммы В противном случае контроллер не обновляет ввод-вывод, пока не достигнет конца основной программы (после выполнения всех подпрограмм) Выходы, контролируемые в подпрограмме, остаются в своем последнем состоянии, пока подпрограмма не будет выполнена снова. При выполнении инструкции JSR контроллер переходит к инструкции подпрограммы (SBR) в начале целевого файла подпрограммы и возобновляет выполнение с этой точки. Вы не можете перейти ни в одну часть подпрограммы, кроме первой инструкции в этом файле.
    Целевая подпрограмма идентифицируется номером файла, который вы ввели в инструкции JSR. Инструкция SBR служит меткой или идентификатором для программного файла как обычного файла подпрограммы. Инструкция должна быть запрограммирована как первая инструкция первой ступени подпрограммы.
    Инструкция RET отмечает конец выполнения подпрограммы или конец файла подпрограммы. Ступень, содержащая инструкцию RET, может быть условной, если эта ступень предшествует концу подпрограммы.
    Таким образом, контроллер пропускает остаток подпрограммы, только если условие ее ступени истинно.

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

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

    Кнопка запуска I1:
    Нормально открытый контакт (замыкающий контакт) используется, поскольку двигатель должен запускаться только при нажатии кнопки.
    Кнопка остановки I2:
    Нормально закрытый (размыкающий контакт) контакт используется, поскольку кнопка обычно должна быть замкнута или иметь высокий уровень, чтобы двигатель продолжал работать. Она должна размыкаться при нажатии кнопки. Она противоположна кнопке запуска.
    Реле перегрузки I3:
    В нормальном состоянии это реле должно позволять двигателю вращаться, поэтому для него выбран нормально закрытый контакт. В случае перегрузки оно остановит двигатель, разомкнув свой контакт.
    Концевой выключатель I4:
    Двигатель должен вращаться только при замкнутом концевом выключателе, поэтому используется нормально открытый контакт.
    Выход Q1, Q2, Q3:
    Катушка реле Q1, Q2 и Q3 представляет выход двигателя, индикацию двигателя ВКЛ и индикацию ВЫКЛ соответственно.
    Индикатор ВКЛ получает вход от нормально открытого входа, который зависит от выхода Q1. Индикатор ВЫКЛ питается от нормально закрытого входа, который зависит от выхода Q2.
    Вход Q1 (для непрерывного вращения):
    Поскольку требуется, чтобы после нажатия кнопки двигатель работал непрерывно, даже если кнопка отпущена.
    Для достижения этой части используется вход Q1 (нормально открытый), подключенный параллельно с I1. Этот вход зависит от выхода Q1.
    Когда выход высокий, вход Q1 также высокий. Поскольку вход Q1 обеспечивает параллельный путь с I1, поэтому, если любой из них должен быть высоким, двигатель будет работать (если также выполнены другие условия).
    Кнопка запуска (нормально открытая), кнопка остановки (нормально закрытая), реле перегрузки (нормально закрытое) и концевой выключатель (нормально открытый) соединены последовательно. Таким образом, двигатель будет работать, если кнопка запуска нажата, кнопка остановки не нажата, реле перегрузки не выбрано, а концевой выключатель замкнут.
    Примечание: этот пост предназначен только для образовательных или справочных целей. Для цепи под напряжением будут некоторые дополнения к вышеуказанной схеме, такие как связанные с безопасностью, в соответствии с применением, некоторые блокировки и т. д.

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

    Цель
    Соленоид: для управления заполнением продукта из бункера. Соленоид активируется после позиционирования ящика (активация бесконтактного выключателя) и снова деактивируется после активации выключателя уровня (уровень заполнен).
    Выключатель уровня: для определения уровня продукта в бункере.
    Бесконтактный выключатель: для размещения ящика точно под бункером.
    Двигатель: для запуска конвейера таким образом, чтобы ящик перемещался соответствующим образом.
    Локальная панель управления: имеет кнопки ПУСК и СТОП, используемые для управления последовательностью.
    Панель индикации: отображает состояние завода/партии. Сигналы состояния: Работа/Ожидание/Полный.
    Логика ПЛК

    Ниже приведены положения по умолчанию:
    Переключатель СТОП: нормально замкнутый (НЗ) Переключатель СТАРТ: нормально разомкнутый (НО) Переключатель приближения: нормально разомкнутый (НО) Переключатель уровня: нормально разомкнутый (НО) Примечание: в релейной логике мы можем использовать как контакты НО, так и НЗ в качестве контактов приближения и уровня по умолчанию по мере необходимости. Если мы используем НО, то он становится НЗ после активации переключателя. Если мы используем НК, то он становится НО после активации переключателя.
    Пояснение
    Здесь у нас есть 5 ступеней / полных строк в приведенной выше релейной логике.
    Первая ступень:
    У нее есть индикация СТОП, ПУСК и РАБОТА. СТОП по умолчанию НЗ, ПУСК — НО, когда мы нажимаем команду ПУСК, то и СТОП, и ПУСК становятся НЗ, поэтому выход ПУСК будет активирован.
    Индикация РАБОТА будет отображаться на панели индикации. Поскольку ПУСК — это кнопка, которая генерирует только кратковременную команду.
    Поэтому мы используем логический контакт NO с выхода RUN. Когда активируется RUN, NO становится NC и удерживает/фиксирует команду START, а RUN будет постоянно активирован, даже если сигнал START потерян, поскольку он кратковременного типа.
    Вторая ступень:
    используется для индикации статуса сигнала STAND BY на панели индикаторов. Контакт индикации RUN NC подключается к STANDBY.
    поэтому, когда активируется сигнал RUN или запускается процесс, то NC становится NO, а индикация STAND BY будет отключена. Если он не запущен, то будет активирован режим stand by.
    Третья ступень:
    используется для индикации статуса сигнала FULL на панели индикаторов. Когда активируются датчик уровня и датчик приближения, то контакты NO становятся NC, а статус сигнала FULL будет включен.
    Четвертая ступень:
    используется для управления двигателем либо START/STOP. Используется контакт NC датчика приближения, а контакт NO сигнала RUN используется здесь для управления двигателем.
    поэтому, когда мы нажимаем кнопку START, активируется RUN (как обсуждалось в первой ступени), поэтому сигнал RUN NO становится NC.
    Оба сигнала приближения и RUN включены/здоровы, тогда двигатель запустится, и конвейер начнет работать, а коробка/упаковка начнет двигаться.
    как только коробка достигнет Hooper, будет активирован бесконтактный выключатель. Поэтому бесконтактный выключатель NC становится NO, поэтому двигатель будет немедленно остановлен.
    После заполнения коробка должна снова двигаться и достичь другой стороны. поэтому здесь мы используем бесконтактный выключатель уровня через бесконтактный выключатель.
    Когда заполнение завершено, контакт бесконтактного выключателя уровня меняется с NO на NC, поэтому двигатель снова запускается и перемещает коробку на другой конец.
    Пятая ступень:
    Используется для управления работой электромагнитного клапана. Если соленоид активирован, он начинает заполнять коробку, а если электромагнитный клапан деактивируется, то заполнение будет остановлено.
    Здесь мы в основном используем бесконтактный контакт сигнала RUN, бесконтактный выключатель уровня NC, бесконтактный выключатель NO для управления электромагнитным клапаном.
    Электромагнитный клапан будет активирован, когда дана команда START (сигнал RUN NO контакт становится NC), когда уровень равен нулю (по умолчанию здесь используется контакт реле уровня NC), когда коробка помещается под обмотчик (используется контакт бесконтактного реле NO.
    поэтому, когда коробка попадает под обмотчик, контакт NO становится NC), после того, как все логические схемы исправны, электромагнитный клапан будет активирован и начнет заполнение.
    если уровень достигает 100%, то реле уровня становится NO и, таким образом, останавливает заполнение, деактивируя электромагнитный клапан. Мы использовали здесь бесконтактный переключатель, потому что заполнение должно начинаться, когда коробка помещается в правильное положение.
    После заполнения коробка выдвигается, и заполнение снова начнется, когда следующая коробка попадает под обмотчик.

    leikang
    Создайте лестничную диаграмму для управления процессом смешивания партии. Реализуйте программу ПЛК для смесительного бака или процесса смешивания с помощью лестничной логики ПЛК.
    Программа ПЛК для смесительного бака

    Рис.: Смесительный бак
    Бак используется для смешивания двух жидкостей.
    Требуемая схема управления работает следующим образом:
    A. При нажатии кнопки ПУСК соленоиды A и B активируются. Это позволяет двум жидкостям начать заполнять бак.
    B. Когда бак заполнен, поплавковый выключатель срабатывает. Это обесточивает соленоиды A и B и запускает двигатель, используемый для смешивания жидкостей.
    C. Двигатель может работать в течение 1 минуты. По истечении 1 минуты двигатель выключается, а соленоид C активируется для опорожнения бака.
    D. Когда бак пуст, поплавковый выключатель отключает соленоид C.
    E. Кнопку STOP можно использовать для остановки процесса в любой момент.
    F. Если двигатель перегружен, действие всей цепи прекратится.
    G. После подачи питания на цепь она продолжит работать до тех пор, пока ее не остановят вручную.
    Логическое решение PLC
    Схема реле, которая будет выполнять логику этой цепи, показана на рисунке ниже. Логика этой цепи следующая:

    Рис.: Схема реле
    A. При нажатии кнопки START катушка реле CR активируется. Это приводит к замыканию всех контактов CR. Контакт CR-1 является удерживающим контактом, используемым для поддержания цепи катушки CR при отпускании кнопки START.
    B. Когда контакт CR-2 замыкается, цепь замыкается на соленоидные катушки A и B. Это позволяет двум жидкостям, которые должны смешиваться, начать заполнять резервуар.
    C. Когда резервуар заполняется, поплавок поднимается, пока не сработает поплавковый выключатель. Это приводит к размыканию нормально замкнутого контакта поплавкового выключателя и замыканию нормально разомкнутого контакта.
    D. Когда нормально замкнутый поплавковый выключатель размыкается, соленоидные катушки A и B обесточиваются и останавливают поток двух жидкостей в резервуар.
    E. Когда нормально разомкнутый контакт замыкается, цепь замыкается на катушку пускателя двигателя и катушку таймера задержки включения. Двигатель используется для смешивания двух жидкостей.
    F. По истечении периода времени в одну минуту все контакты TR меняют положение. Нормально замкнутый контакт TR-2, соединенный последовательно с катушкой стартера двигателя, размыкается и останавливает работу двигателя.
    Нормально разомкнутый контакт TR-3 замыкается и подает питание на соленоидную катушку C, что позволяет жидкости начать слив из бака. Нормально замкнутый контакт TR-1 используется для того, чтобы гарантировать, что клапаны A и B не будут повторно включены, пока соленоид C не обесточится.
    G. Когда жидкость сливается из бака, поплавок опускается. Когда поплавок опускается достаточно далеко, поплавковый выключатель срабатывает, и его контакты возвращаются в свои нормальные положения. Когда нормально разомкнутый контакт поплавкового выключателя снова размыкается и обесточивает катушку TR, все контакты TR возвращаются в свои нормальные положения.
    H. Когда нормально разомкнутый контакт TR-3 снова размыкается, соленоид C обесточивается и закрывает сливной клапан. Контакт TR-2 снова замыкается, но двигатель не может перезапуститься из-за нормально разомкнутого контакта поплавкового выключателя.
    Когда контакт TR-1 снова замыкается, цепь замыкается на соленоиды A и B. Это позволяет баку начать заполнение, и процесс начинается снова.
    I. Если кнопка STOP или контакт перегрузки размыкаются, катушка CR обесточивается, и все контакты CR размыкаются. Это обесточивает всю цепь.
    Примечание: программа ПЛК также будет очень похожа на схему реле выше.
    Задание для вас
    Проанализируйте анимацию ниже и поделитесь работой цепи в комментариях.


    leikang
    Здесь мы обсуждаем управление пневматической цепью ПЛК на различных примерах. Лестничная схема ПЛК для пневматических цилиндров одностороннего и двустороннего действия.
    Примеры пневматической цепи ПЛК
    Пример 1:
    Двухсторонний цилиндр используется для выполнения операции обработки. Пневматический цилиндр выдвигается путем одновременного нажатия двух кнопок. Если отпустить любую из кнопок, цилиндр возвращается в исходное положение. Нарисуйте пневматическую цепь, схему электропроводки ПЛК и лестничную схему для реализации этой задачи.
    Решение:

    Как показано на схеме электропроводки ПЛК, кнопки PB1 и PB2 подключены к адресам памяти I1 и I2.
    I1 и I2 подключены последовательно в лестничной схеме для реализации этой логической функции И.
    При одновременном нажатии кнопок PB1 и PB2 адреса I1 и I 2 переходят из состояния 0 в состояние 1, в результате чего мощность протекает через катушку, и на катушке 01 будет выход. Выход на катушке 01 приводит в действие катушку соленоида, и цилиндр движется вперед, выполняя требуемую операцию.
    Если нажата любая из кнопок PB1 и PB2, то соответствующие битовые адреса переходят в 0, поскольку I1 и I2 соединены последовательно, если любая из них переходит в состояние 0, на 01 не будет никакого выхода, и, таким образом, соленоид обесточивается и возвращается назад.
    Пример 2:
    Двухсторонний цилиндр используется для выполнения движения вперед и назад. Пневматический цилиндр выдвигается нажатием кнопок PB1. Цилиндр возвращается нажатием кнопки PB2. Нарисуйте пневматическую цепь, схему электропроводки ПЛК и лестничную диаграмму для выполнения этой задачи.
    Решение

    Схема электропроводки ПЛК и лестничные диаграммы показаны на рисунке выше. Когда нажимается кнопка PB1, состояние адреса I1 меняется на 1, и, таким образом, будет выход 01. Выход 01 управляет соленоидом Y1, и цилиндр движется вперед,
    Когда цилиндр достигает крайнего переднего положения, и нажимается кнопка PB2, состояние адреса I2 меняется на 1, и, таким образом, будет выход 02. Выход 02 управляет соленоидом Y2, и цилиндр возвращается в исходное положение.
    Пример 3:
    Цилиндр двойного действия используется для выполнения прямого и обратного автоматического движения после достижения крайнего переднего положения. Пневматический цилиндр выдвигается нажатием кнопок PB1. Нарисуйте пневматическую цепь, схему электропроводки ПЛК и лестничную диаграмму для реализации этой задачи.
    Решение

    Схема электропроводки ПЛК и лестничные диаграммы показаны на рисунке выше. при нажатии кнопки PB1 состояние адреса I1 меняется на 1, и, таким образом, будет выход 01. Выход 01 управляет соленоидом Y1, и цилиндр движется вперед.
    Когда цилиндр достигает крайнего переднего положения, и срабатывает концевой выключатель S2, состояние адреса I3 меняется на 1, и, таким образом, будет выход 02. Выход 02 управляет соленоидом Y2, и цилиндр возвращается в исходное положение.
    Пример 4:
    Для выполнения операции прессования используется цилиндр двойного действия. Цилиндр должен двигаться вперед, когда нажата кнопка PB1, и возвращаться в течение установленного времени 20 секунд, прежде чем он автоматически вернется в исходное положение. Концевой выключатель S2 используется для определения конца движения цилиндра вперед. Нарисуйте пневматическую цепь, схему электропроводки ПЛК и лестничную диаграмму для реализации этой задачи.
    Решение

    При нажатии PB1 состояние входа адреса I1 меняется на 1, и на O1 есть выход. Из-за выхода на O1 срабатывает соленоидная катушка Y1, и цилиндр движется вперед.
    Когда цилиндр достигает конечного положения, срабатывает концевой выключатель S2, в результате чего адрес I3 меняется на 1, и, следовательно, запускается таймер T1.
    Состояние сигнала таймера T1 меняется на 1 после достижения 20 секунд. По истечении 20 секунд будет выведен выходной сигнал с таймера T1, установленного на выходе O2. Катушка Y2 активируется, что вызывает возвратное движение цилиндра.
    Пример 5:
    Двухсторонний цилиндр используется для выполнения непрерывного возвратно-поступательного движения. Цилиндр должен двигаться вперед, когда нажата кнопка PB1, и как только начинается возвратно-поступательное движение вперед и назад, оно должно продолжаться до нажатия кнопки остановки PB2. Концевые выключатели используются для определения конечного положения. Нарисуйте пневматическую цепь, схему электропроводки ПЛК и лестничную диаграмму для выполнения этой задачи.
    Решение:

    Операции запуска и остановки могут быть реализованы с использованием флага памяти с адресом M1, который устанавливается PB1 и сбрасывается PB2.
    Состояние элемента памяти M1 сканируется через нормально разомкнутый контакт, последовательно объединяется с состоянием датчика S1 для получения управления запуском и остановкой.
    Пример 6:
    Двухсторонний цилиндр используется для выполнения возвратно-поступательной операции. Цилиндр должен двигаться вперед при нажатии кнопки PB1 и продолжать возвратно-поступательное движение до тех пор, пока не будет выполнено 10 циклов операций. Нарисуйте пневматическую цепь, схему электропроводки ПЛК и лестничную диаграмму для реализации этой задачи.
    Решение

    Полностью автоматическая работа цилиндра может быть получена, как и ранее, с использованием концевого выключателя S1 и S2.
    Операцию запуска и остановки можно реализовать с помощью флага памяти с адресом M1, который устанавливается PB1 на I1 и сбрасывается контактом NC обратного счетчика.
    Состояние флага памяти M1, сканируемое через контакт NO (звено 2), последовательно объединяется с датчиком состояния S1 для получения управления запуском и остановкой.
    Пример 7:
    Нарисуйте пневматическую схему, схему электропроводки ПЛК и лестничную схему для реализации последовательности A+B+B-A-.
    Решение

    В этой схеме последовательности PB2 используется для запуска программы. Нажатие PB2 приводит к установке последнего состояния памяти M4 и сбросу всех остальных флагов памяти M1, M2 и M3. Первоначально S1 и S3 активируются и генерируют выходы.
    Условие 1:
    Нажатие PB1 устанавливает флаг памяти M1 и сбрасывает флаг памяти M4. Соленоид Y1 включен. Цилиндр A выдвигается (A+). Датчик S1 деактивируется после перемещения A, а S2 активируется при достижении конечного положения.
    Условие 2:
    Когда активируется S2, устанавливается память M2 и сбрасывается флаг памяти M1. Соленоид Y3 активируется. Цилиндр B выдвигается (B+). Датчик S3 деактивируется после перемещения B, а S4 активируется при достижении конечного положения.
    Условие 3:
    Когда активируется S4, устанавливается память M3 и сбрасывается флаг памяти M2. Соленоид Y4 активируется. Цилиндр B втягивается (B-). Датчик S4 деактивируется после перемещения B, а S3 активируется при достижении начального положения.
    Условие 4:
    Когда активируется S3, устанавливается память M4 и сбрасывается флаг памяти M3. Соленоид Y2 активируется. Цилиндр A втягивается (A-). Датчик S2 деактивируется после перемещения B, а S1 активируется при достижении начального положения.


    leikang
    Программируемый логический контроллер (ПЛК) Allen-Bradley SLC500 использует 16-битный аналого-цифровой преобразователь (в модели 1746-NI4) в плате аналогового входа для преобразования сигналов 4–20 мА в цифровые числовые значения в диапазоне от 3277 (при 4 мА) до 16384 (при 20 мА).
    Однако эти необработанные числа с аналоговой платы ПЛК должны быть математически масштабированы внутри ПЛК для представления реальных единиц измерения, в данном случае от 0 до 700 галлонов в минуту расхода.
    Масштабирование аналогового входа ПЛК
    Сформулируйте уравнение масштабирования для программирования в ПЛК так, чтобы 4 мА тока регистрировались как 0 галлонов в минуту, а 20 мА тока регистрировались как 700 галлонов в минуту.

    Нам уже даны необработанные числовые значения из схемы аналого-цифрового преобразователя (АЦП) аналоговой карты для 4 мА и 20 мА: 3277 и 16384 соответственно.
    Эти значения определяют область нашего линейного графика:

    Вычисление и подстановка значения наклона (m) для этого уравнения с использованием полного превышения подъема линейной функции:

    Этот тип расчета масштабирования настолько распространен в приложениях ПЛК, что Allen-Bradley предоставил специальную инструкцию SCL («масштаб») специально для этой цели.
    Вместо «наклона» (m) и «пересечения» (b) инструкция предлагает программисту-человеку ввести значения «скорости» и «смещения» соответственно.
    Более того, скорость в инструкции SCL Аллена-Брэдли выражается как числитель дроби, где знаменатель зафиксирован на 10000, что позволяет указывать дробные (меньше единицы) значения наклона с помощью целых чисел.
    За исключением этих деталей, концепция точно такая же. Выражение нашего наклона 700/13107 в виде дроби со знаменателем 10000 — это простой вопрос решения для числителя с помощью перекрестного умножения и деления:

    Таким образом, инструкция SCL будет настроена следующим образом


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

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

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

    Масштабирование прибора всегда должно начинаться с измерения процесса. Проектировщик сверяется с таблицей баланса тепла и материалов (HMB) для нашей воображаемой системы и обнаруживает, что ожидаемая температура в точке измерения составляет приблизительно 105 °C.
    Нагреватель выше по потоку способен нагреть систему приблизительно до 130 °C, прежде чем она отключится из-за блокировки перегрева.
    Инженер-проектировщик знает, что правильно откалиброванный диапазон поместит нормальную рабочую точку примерно в середину кривой. Верхний конец должен быть выше 130 °C.
    После некоторых раздумий инженер выбирает калиброванный диапазон от 15 до 150 °C и выбирает термопару типа K, которая обеспечивает выходной сигнал от 0,597 до 6,138 мВ в этом температурном интервале.

    Температурный датчик должен быть откалиброван на стенде, чтобы обеспечить выходной сигнал 4–20 мА, пропорциональный входному сигналу от 0,597 до 6,138 мВ, ожидаемому от термопары.
    Датчик, являющийся источником тока (в отличие от источника напряжения), изменяет свою выходную мощность по мере необходимости для поддержания стабильного выходного тока в миллиамперах, пропорционального милливольтам на его входе, т. е. измеренному показанию температуры.
    (Примечание: источник напряжения, такой как батарея, пытается поддерживать постоянное напряжение независимо от нагрузки, в то время как источник тока пытается поддерживать постоянный ток независимо от нагрузки).
    Затем датчик температуры преобразует этот сигнал в сигнал 4–20 мА, который был масштабирован, в данном случае для диапазона от 15 до –150 °C.
    ПЛК имеет аналоговый входной модуль, который обнаруживает выходной сигнал датчика температуры. Практически все аналоговые входные модули являются вольтметрами, хотя они указаны как миллиамперные входы.
    Иногда резистор является внешним на клеммной колодке, а иногда он является внутренним на модуле ввода-вывода ПЛК (показано на рисунке). В любом случае сигнал 4–20 мА будет преобразован в напряжение.
    Обычно это напряжение составляет 1–5 В постоянного тока, поскольку используемый резистор составляет 250 Ом. Затем это аналоговое значение должно быть преобразовано в двоичное значение.
    В нашем примере спецификация ПЛК указывает этот конкретный модуль ввода-вывода ПЛК как имеющий 12-битное разрешение. Чтобы найти разрешение модуля в терминах переменной процесса, выполните двоичное преобразование: 212 = 4095.
    Таким образом, для входного диапазона 1–5 В постоянного тока модуль ввода-вывода ПЛК предоставляет программе ПЛК целочисленное значение в диапазоне от 0 до 4095.
    Программа ПЛК может извлекать эти данные для использования по мере необходимости. Одним из возможных действий программы ПЛК является перемещение этого значения данных в буфер сетевого интерфейса (серия смежных ячеек в памяти ПЛК) для передачи вверх по течению в ЧМИ.
    Затем необработанное целочисленное значение счетчика становится доступным для передачи данных по сети.
    ЧМИ получает этот переданный поток данных, который затем сохраняется в буфере входных данных. Компьютер ЧМИ имеет базу данных тегов-файлов, которая содержит инструкции о том, как манипулировать каждым элементом данных для представления оператору.
    Многие теги в файле тегов связаны с элементами данных в буфере входных данных. Один такой тег связан с этим конкретным местоположением.
    Необработанное значение от 0 до 4095 извлекается и преобразуется в технические единицы с помощью формулы, встроенной либо в базу данных тегов-файлов, либо в программное обеспечение графического экрана, которое использует эту информацию.
    Формула в нашем примере показана на рисунке ниже.
    Полученное значение (85,88) будет значением, отображаемым оператору в oC, как показано на рисунках ниже:


    leikang
    Здесь мы эмулируем точно такую же цепь сигнализации высокого давления, используя ПЛК Allen-Bradley MicroLogix 1000 вместо катушки реле:
    Пример логики ПЛК

    Программа релейной логики

    Предположим, что к реле давления приложено давление жидкости 36 PSI. Это меньше, чем уставка отключения реле 50 PSI, что оставляет реле в его «нормальном» (закрытом) состоянии. Это подает питание на вход I:0/2 ПЛК.
    Контакт с маркировкой I:0/2, нарисованный в программе релейной логики ПЛК, действует как контакт реле, управляемый катушкой, запитанной от входной клеммы I:0/2.
    Таким образом, замкнутый контакт реле давления активирует входную клемму I:0/2, которая в свою очередь «замыкает» нормально разомкнутый контактный символ I:0/2, нарисованный в программе релейной логики.
    Этот «виртуальный» контакт посылает виртуальную мощность на виртуальную катушку с меткой B3:0/0, которая представляет собой не более чем один бит данных в памяти микропроцессора ПЛК.
    «Включение» этой виртуальной катушки имеет эффект «активации» любого контакта, нарисованного в программе с той же меткой.
    Это означает, что нормально замкнутый контакт B3:0/0 теперь будет «активирован» и, таким образом, будет находиться в открытом состоянии, не отправляя виртуальную мощность на выходную катушку O:0/1.
    При «отключенной» виртуальной катушке O:0/1 реальный выход O:0/1 на ПЛК будет электрически разомкнут, а сигнальная лампа будет отключена (выключена).
    Если предположить, что к реле давления приложено давление жидкости 61 PSI, нормально замкнутый контакт реле давления будет активирован (принудительно переведен) в открытое состояние.
    Это приведет к отключению входа ПЛК I:0/2, таким образом «открыв» нормально разомкнутый виртуальный контакт в программе ПЛК с той же меткой. Этот «открытый» виртуальный контакт прерывает виртуальное питание виртуальной катушки B3:0/0, заставляя нормально замкнутый виртуальный контакт B3:0/0 «замкнуться», отправив виртуальное питание на виртуальную катушку O:0/1.
    Когда эта виртуальная выходная катушка «включается», активируется реальный выходной канал ПЛК, отправляя реальное питание на сигнальную лампу для ее включения, сигнализируя о состоянии тревоги высокого давления.
    Мы можем еще больше упростить эту программу ПЛК, исключив виртуальное реле управления B3:0/0 и просто активировав вход I:0/2 через «нормально замкнутый» виртуальный контакт:

    Эффект тот же: выход ПЛК O:0/1 активируется всякий раз, когда вход I:0/2 обесточивается (всякий раз, когда реле давления размыкается высоким давлением), включая сигнальную лампу в условиях высокого давления.
    В условиях низкого давления активный вход I:0/2 заставляет виртуальный нормально замкнутый контакт I:0/2 размыкаться, тем самым обесточивая выход ПЛК O:0/1 и выключая сигнальную лампу.
    Программируемые логические контроллеры не только значительно упростили подключение промышленных логических элементов управления, заменив множество электромеханических реле микропроцессором, но и добавили расширенные возможности, такие как счетчики, таймеры, секвенсоры, математические функции, коммуникации и, конечно же, возможность легко изменять логику управления с помощью программирования, а не путем переподключения реле.
    Прелесть программирования релейной логики заключается в том, что оно переводит понимание техническим специалистом традиционных схем управления реле в виртуальную форму, где контакты и катушки взаимодействуют для выполнения практических функций управления.
    Однако ключевой концепцией для освоения является ассоциация реальных условий с состоянием переключения на основе «нормального» представления этих контактов переключателя, независимо от того, являются ли переключатели реальными (реле) или виртуальными (ПЛК). Как только эта важная концепция освоена, становится возможным понимание как жестко подключенных схем управления реле, так и программ ПЛК. Без освоения этой важной концепции ни схемы управления реле, ни программы ПЛК не могут быть поняты.

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

    В этом посте мы увидим различные методы алгоритмов управления, которые используются в программе ПЛК.
    ПИД-регулятор
    Это, безусловно, самый известный метод контроля. ПИД-регулятор использует механизм замкнутого контура управления. Это означает, что сначала он получит обратную связь и в зависимости от вашего желания будет соответствующим образом изменять выходные данные.
    Для этого ПИД-регулятор использует внутренние математические вычисления с тремя параметрами – пропорцией, интегралом и производной. Итак, если вы хотите управлять чиллером с компрессором, то ПЛК будет управлять выходной мощностью компрессора, сначала измеряя фактическую температуру и сверяя ее с тем, сколько требуется пользователю.
    В зависимости от этой разницы каждый раз мощность компрессора будет либо регулироваться постепенно, либо включаться-выключаться для поддержания температуры. Для этого в программе ПЛК для выполнения этой задачи будет использоваться блок ПИД.
    Генератор функций
    Это очень простой тип метода управления. В генераторе функций вам необходимо определить входную таблицу из n значений. Аналогичным образом определите выходную таблицу из n значений.
    Так, например, если мы определим 10 таблиц значений как на входной, так и на выходной стороне, у нас будет элемент размером 10. Теперь эти 10 элементов будут иметь разные значения. Если вы установили 0-100 на входной стороне, то мы установили 0-50 на выходной стороне. Эти 10 элементов представляют собой 10 диапазонов, то есть 0–10, 10–20, 20–30 и так далее.
    Соответственно, выходная сторона будет распределена на 10 элементов от 0 до 5, 5–10, 10–15 и так далее до 50. Когда ввод в реальном времени находится между любым значением на входной стороне, соответствующий масштабированный выход будет прошедший. Здесь у вас есть полная гибкость в установке значений входных и выходных таблиц.
    Нечеткое логическое управление
    Нечеткая логика — относительно очень хороший метод управления выходными данными. Обычно у вас есть два двоичных состояния – 0 и 1. Итак, давайте рассмотрим, может ли клапан быть открыт или закрыт. Но что, если клапан застрял между ними? Мы не знаем, находится ли клапан в открытом или закрытом состоянии. В этом случае помогает, если существует состояние между 0 и 1. Это помогает хотя бы приблизиться к возможности. Это называется суетливая логика.
    Здесь вы можете определить значения около 0 и 1. Это может быть 0,9 или 0,2. Соответственно, вы можете контролировать выходы, когда они приближаются к этим значениям. И когда он достигнет крайнего предела, то есть 0 или 1, можно полностью открыть или закрыть клапан.
    До этого можно постепенно управлять клапанами. Это обеспечивает более точный контроль процесса. Итак, этот блок управления позволяет собирать значения, которые могут быть полезны в непредсказуемых ситуациях. Требуется много знаний и опыта, чтобы правильно установить значения и наборы, чтобы логика работала правильно.
    Позиция пропорциональная
    Эта логика будет открывать или закрывать устройство, импульсно открывая или закрывая контакты в определенный заранее заданный таймер, установленный пользователем. Это делается для ширины импульса, пропорциональной отклонению между требуемым положением и текущим положением.
    Вам необходимо установить параметры управления, такие как минимальное и максимальное значение ограничения выхода, продолжительность, в течение которой выход будет оставаться включенным, скорость, с которой устройство должно открываться или закрываться в %/секунду и т. д.
    Функциональный блок принимает фактическую обратную связь, оценивает внутренние таймеры и проверяет, происходит ли открытие или закрытие с желаемой скоростью или нет. Если нет, то будет подан соответствующий импульс открытия или закрытия.
    Таким образом, мы увидели различные методы алгоритмов управления, используемые в программировании ПЛК.

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

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

    leikang
    Инструкции сравнения в ПЛК используются для проверки пар значений, чтобы обеспечить логическую непрерывность цепочки.
    Таким образом, инструкции сравнения редко, если вообще когда-либо, будут последней инструкцией в цепочке.
    Типы инструкций сравнения

    В качестве примера предположим, что инструкция LES представлена двумя значениями. Если первое значение меньше второго, то инструкция сравнения верна.
    Команда равенства (EQU)

    Используйте инструкцию EQU, чтобы проверить, равны ли два значения. Если источники A и источники B равны, инструкция логически верна. Если эти значения не равны, инструкция логически ложна.
    Источник A должен быть адресом.
    Источник B может быть либо программной константой, либо адресом.
    Значения хранятся в дополняющей друг друга форме.
    Инструкция «Не равно» (NEQ)

    Используйте инструкцию NEQ, чтобы проверить, не равны ли два значения.
    Если источники A и источники B не равны, инструкция логически верна.
    Источник A должен быть адресом.
    Источник B может быть либо программной константой, либо адресом.
    Значения хранятся в дополняющей друг друга форме.
    Инструкция «Меньше чем» (LES)

    Используйте инструкцию LES, чтобы проверить, меньше ли одно значение (источник A) другого (источник B).
    Если значение источника A меньше значения источника B, инструкция логически верна.
    Источник A должен быть адресом.
    Источник B может быть либо программной константой, либо адресом.
    Значения хранятся в дополняющей друг друга форме.
    Инструкция «Меньше или равно» (LEQ)

    Используйте инструкцию LEQ, чтобы проверить, меньше ли одно значение (источник A) другого (источник B) или равно ему.
    Если значение в источнике A меньше или равно значению в источнике B, инструкция логически верна.
    Источник A должен быть адресом.
    Источник B может быть либо программной константой, либо адресом.
    Значения хранятся в дополняющей друг друга форме.
    Инструкция «Больше, чем (GRT)»

    Используйте инструкцию GRT, чтобы проверить, больше ли одно значение (источник A) другого (источник B).
    Если значение в источнике A больше, чем значение в источнике B, инструкция логически верна.
    Инструкция «Больше или равно» (GEQ)

    Используйте команду GEQ, чтобы проверить, больше ли одно значение (источник A) другого (источник B) или равно ему.
    Если значение в источнике A больше или равно значению в источнике B, инструкция логически верна.
    Маскированное сравнение равных (MEQ)

    Используйте инструкцию MEQ для сравнения данных по адресу источника с данными по адресу сравнения.
    Использование этой инструкции позволяет маскировать части данных отдельным словом.
    Источник — это адрес значения, которое вы хотите сравнить.
    Маска — это адрес маски, через которую инструкция перемещает данные.
    Маска может быть шестнадцатеричным значением.
    Сравнение — это целое число или адрес ссылки.
    Если 16 бит данных по адресу источника равны 16 битам данных по адресу сравнения (без маскированных битов), инструкция верна.
    Инструкция становится ложной, как только обнаруживается несоответствие.
    Инструкция по предельному тесту (LIM)
     
    M)
    Используйте инструкцию LIM для проверки значений в пределах или за пределами указанного диапазона, в зависимости от того, как вы установили пределы.
    Значения нижнего предела, теста и верхнего предела могут быть адресами слов или константами, ограниченными следующими комбинациями:
    Если параметр Test является программной константой, параметры Low Limit и High Limit должны быть адресами слов. Если параметр «Тест» представляет собой адрес слова, параметры «Нижний предел» и «Верхний предел» могут быть либо программной константой, либо адресом слова. Статус true/false инструкции LIM
    Если значение нижнего предела равно или меньше верхнего предела, инструкция верна, когда тестовое значение находится между пределами или равно любому из пределов.

    Если нижний предел имеет значение, превышающее верхний предел, инструкция является ложной, если тестовое значение находится между пределами.


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

    Если мы используем ПЛК, программисты могут работать с ними в чрезвычайных ситуациях, таких как сбой SCADA, и выполнять свою работу, правильно ее кодируя. В этом посте мы увидим, как использовать ПЛК с базой данных SQL.
    Для тех, кто не знаком с SQL-сервером, это инструмент управления базой данных, который последовательно хранит большой объем данных в формате реального времени, и запросы для получения данных записываются в него либо через какой-то внешний источник, например ПЛК.
    Для хранения данных в нем написана логика в ПЛК, который при выполнении сохраняет данные в SQL. Это простая концепция, которая более кратко объясняется в статье из-за ее преимуществ.
    Планировщик ПЛК
    Предположим, у вас очень крупномасштабная система, в которой оператору ежедневно приходится вводить сотни графиков времени для работы определенных функций. Вместо того, чтобы использовать обширное кодирование и переменные в ПЛК для хранения данных, введенных в SCADA, и использовать их, когда придет время, просто передавайте все переменные данные на SQL-сервер через ПЛК каждый раз, когда создается новый рецепт.
    SQL будет хранить дату и время введенных значений в реальном времени и предоставит операторам возможность выбирать их в соответствии с отфильтрованной датой и временем. Например, в SQL есть пять записей с 1 по 5 октября для различных типов введенных расписаний. Преимущество в том, что оператор может выбрать любой необходимый и затем запустить систему.
    Если бы SQL не было, ему пришлось бы запускать только один вариант: 1 октября или любую другую дату. В противном случае ему пришлось бы использовать память SCADA или ПЛК, что является пустой тратой данных и кодирования. То же самое становится проще благодаря SQL-серверу.
    Еще одним преимуществом является то, что размер кода SCADA уменьшается и его можно использовать для других целей. Планирование используется во многих приложениях, а использование для него ПЛК вместе с SQL делает систему более эффективной.
    Последовательность действий
    Рассмотрим растение, имеющее 10 последовательностей. В каждой последовательности имеется считыватель штрих-кодов для запуска действия с необходимым продуктом. Если штрих-код считывается в SCADA, то соответствующие данные передаются в ПЛК или, короче говоря, SCADA является промежуточным средством для инициирования связи между ПЛК и данными; затем просто подключите ПЛК напрямую к SQL.
    SQL будет напрямую взаимодействовать с ПЛК для определения штрих-кодов и других данных для запуска или остановки последовательности. Такие большие объемы данных о последовательностях объектов помогают сократить количество кода в SCADA и ускоряют работу системы. Поскольку ПЛК написан с кодировкой для последовательной работы, почему бы не соединить его напрямую с SQL и не использовать систему.
    Синхронизировать несколько ПЛК
    Существует множество приложений, в которых одному ПЛК в одном месте для выполнения работы требуются данные из другого местоположения ПЛК. В этом случае традиционно для интеграции всех ПЛК и управления ими используется SCADA.
    В том случае, если ПЛК напрямую подключены к SQL-серверу, данные будут синхронизироваться по дате и времени SQL; таким образом, устраняются проблемы синхронизации нескольких RTC (часов реального времени) ПЛК.
    Кроме того, ПЛК будет напрямую связываться с другим ПЛК для запроса каких-либо данных или предоставления каких-либо данных через сервер SQL. Любой сигнал тревоги или событие в ПЛК также будет передано на другой ПЛК и поможет отслеживать записи в реальном времени.
    Подтверждение связи
    Квитирование — это процесс, при котором одна сторона подтверждает другой стороне, что задание выполнено. По сути, это реакция, необходимая для того, чтобы партия могла начать другую работу. Этот метод хорошо работает с серверами PLC и SQL.
    SQL-сервер может напрямую взаимодействовать с ПЛК, отправляя уведомления о событиях в режиме реального времени или данные уведомлений о тревогах в режиме реального времени. Это означает, что предположим, что выполнение задания заняло 3 дня.
    Затем подтверждение завершения будет отправлено в ПЛК как отдельное событие, и, поскольку в нем также содержатся данные за 3 дня, оператор может легко просмотреть весь процесс в отчетах SCADA. Таким образом, квитирование является важной причиной для прямой связи ПЛК с SQL.
    Основы базы данных ПЛК
    Установите соединение между ПЛК и базой данных SQL с помощью промежуточного программного обеспечения или шлюза, который облегчает взаимодействие между протоколами промышленных сетей и языками баз данных. Выберите протокол связи, понятный как ПЛК, так и базе данных SQL, например OPC UA, Modbus TCP или любой другой протокол, поддерживаемый вашим ПЛК и промежуточным программным обеспечением. Настройте ПЛК для отправки и получения данных, настроив необходимые параметры, регистры или теги, которые будут считываться или записываться. Это может включать программирование ПЛК с использованием соответствующего программного обеспечения, чтобы убедиться, что он готов к обмену данными. Настройте базу данных SQL, создав новую базу данных или настроив существующую для хранения данных из ПЛК. Определите таблицы, столбцы и типы данных, соответствующие структуре данных, отправляемых из ПЛК. Сопоставьте каждую точку данных ПЛК с соответствующим полем в базе данных SQL. Убедитесь, что типы данных совместимы и что сопоставление имеет логический смысл для нужд приложения. Реализуйте логику передачи данных с помощью сценариев или хранимых процедур базы данных. Определите, как часто данные должны передаваться, при каких условиях и должна ли передача запускаться по событиям или по расписанию. Тщательно проверьте связь между ПЛК и базой данных SQL. Проверьте наличие ошибок или несоответствий данных и убедитесь, что система ведет себя должным образом в различных условиях. Постоянно контролируйте работоспособность системы, точность данных и любые аномалии. Настройте оповещения или уведомления о системных ошибках или важных событиях. Регулярно проверяйте и обновляйте систему по мере необходимости, чтобы учесть изменения в настройке ПЛК, структуре базы данных или дополнительных требованиях. Постоянно обновляйте документацию на предмет любых изменений в системе. Обеспечьте наличие мер безопасности как для ПЛК, так и для базы данных SQL для защиты от несанкционированного доступа и утечки данных. Рассмотрите возможность внедрения шифрования, межсетевых экранов и протоколов безопасного доступа.

    leikang
    Эта статья посвящена методу устранения неполадок при программировании ПЛК. В промышленных ПЛК, где используются тысячи входов и выходов, и мы знаем, насколько продолжительны программы ПЛК, это зависит от приложения или использования предприятия.
    Устранение неполадок в программах ПЛК Сименс
    Иногда люди могут неосознанно изменить логические параметры, что может привести к неисправности. Даже некоторые ошибки возникают на этапе проектирования логики из-за сложности конструкции. Программное обеспечение Siemens plc включает в себя различные удобные инструменты для устранения ошибок, возникающих в программах.
    Ошибки могут быть такими, как перекрытие адресации, несколько одинаковых экземпляров вывода, перекрытие адресов битов памяти, многократное использование одной программы для работы снова и снова и т. д.
    Чтобы обнаружить такие проблемы, в программном обеспечении Siemens доступны четыре типа окон, которые помогут нам устранить проблемы.
    Они есть:
    Перекрестная ссылка Структура звонка Список назначений Структура зависимостей Давайте обсудим, как их использовать в нашей программе для устранения неполадок и где их найти в программном обеспечении.
    Перекрестная ссылка
    Перекрестные ссылки используются для поиска всех цифровых и аналоговых входов и выходов, используемых в логике. Это поможет нам узнать, сколько раз входы/выходы используются в программе, а также направит пользователей непосредственно к конкретному месту ввода/вывода на страницах логики.
    Вот пример одной из программ, в которой можно увидеть, как выглядит таблица перекрестных ссылок. Он содержит всю информацию, такую как адресация, язык программы, используемые входы и выходы и т. д.

    Структура звонка
    Если вы хотите узнать, какой блок используется в программировании, используется структура вызова.
    Это обращение функции перекрестных ссылок, в которой мы узнаем, сколько раз SFC, блок FB используются в OB (организационном блоке), и здесь мы узнаем, сколько раз OB используется в SFC и FB.

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

    Структура зависимостей
    Структура зависимостей используется, чтобы показать, где каждый блок используется в программировании.
    Но на шаге 7 он не доставит вас прямо на локацию, а в TIA PORTAL перенесет вас туда, где написана программа.

    ПРИМЕЧАНИЕ:
    Чтобы открыть эти окна на шаге 7, используйте информацию, как показано на рисунке. После нажатия на дисплей у вас есть варианты.

    В TIA PORTAL выполните следующий шаг, показанный на рисунке.


    leikang
    В этом посте мы поймем, как фильтровать цифровые и аналоговые входы в ПЛК.
    Как сказано в теме, фильтрация — это средство удаления нежелательных всплесков сигналов, поступающих в ПЛК. Его роль заключается в устранении флуктуаций и передаче в ПЛК только правильных изменений сигнала в определенный момент времени.
    Внутри ПЛК сначала идет схема фильтра, а затем схема обработки ввода ПЛК, которая принимает окончательный отфильтрованный входной сигнал и использует его для своей логики.

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

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

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

    Первый – синий цвет имеет коэффициент 1.
    Второй – зеленый цвет имеет коэффициент 2.
    Третий – оранжевый цвет имеет коэффициент 3.
    Четвертый – коричневый цвет имеет коэффициент 4.
    По мере увеличения значения коэффициента фильтра вы можете видеть, что форма сигнала улучшается за счет фильтрации сигнала с более резким значением.
    Через заданное время фильтр усреднит значения, полученные от входных данных; и на основе формул, используемых внутри него, он выдаст окончательный средний результат за раз.
    Таким образом, по мере увеличения коэффициента фильтра или веса мы получаем более точное значение аналогового сигнала с меньшими помехами. Обычно для этой цели используется фильтр первого прохода.
    Таким образом, мы приходим к выводу, что фильтрация очень полезна для уменьшения нежелательного шума на входе поля и передачи правильных значений, что также защитит входную цепь ПЛК от повреждения; если возникают какие-либо высокие или нежелательные пики.

    leikang
    Самыми элементарными объектами программирования лестничных диаграмм являются контакты и катушки, предназначенные для имитации контактов и катушек электромеханических реле.
    Контакты и катушки представляют собой дискретные элементы программирования, работающие с логическими состояниями переменных (1 и 0; включено и выключено; истинно и ложно).
    Каждый контакт в программе ПЛК лестничной схемы представляет собой чтение одного бита в памяти, а каждая катушка представляет запись одного бита в памяти.
    Дискретные входные сигналы ПЛК от реальных переключателей считываются программой лестничных диаграмм с помощью контактов, привязанных к этим входным каналам.
    В устаревших системах ПЛК каждый дискретный входной канал имеет определенный адрес, который необходимо применить к контакту(ам) в этой программе.
    В современных системах ПЛК каждый дискретный входной канал имеет имя тега, созданное программистом, которое применяется к контакту(ам) в программе.
    Аналогичным образом, дискретные выходные каналы, на которые ссылаются символы катушек на лестничной диаграмме, также должны иметь некоторую форму адреса или метки имени тега.
    Для иллюстрации представим себе построение и программирование резервной системы обнаружения пламени для контроля состояния пламени горелки с помощью трех датчиков.
    Целью данной системы будет индикация «зажженной» горелки, если хотя бы два из трех датчиков покажут пламя.
    Если только один датчик указывает на пламя (или если ни один из датчиков не указывает на пламя), система объявит горелку не зажженной.
    Статус горелки будет визуально обозначаться лампочкой, которую операторы смогут легко видеть внутри диспетчерской.
    Схема подключения нашей системы показана на следующей схеме:

    Каждый датчик пламени выдает сигнал постоянного напряжения, указывающий на обнаружение пламени на горелке, либо включенной (24 В постоянного тока), либо выключенной (0 В постоянного тока).
    Эти три дискретных сигнала напряжения постоянного тока воспринимаются первыми тремя каналами карты дискретного ввода ПЛК.
    Индикаторная лампа представляет собой лампочку на 120 В, поэтому ее питание должно осуществляться от карты дискретного выхода переменного тока, показанной здесь в последнем слоте ПЛК.
    Чтобы сделать лестничную программу более читабельной, мы назначим имена тегов (символические адреса) каждому входному и выходному биту ПЛК, описывая его реальное устройство в легко интерпретируемом формате.
    Мы обозначим первые три дискретных входных канала как датчик IN A, датчик IN B и датчик IN C, а выход — как горит горелка OUT.
    Здесь показана лестничная программа, позволяющая определить, обнаруживают ли по крайней мере два из трех датчиков пламя, с именами тегов, относящимися к каждому контакту и катушке:

    Последовательно соединенные контакты в лестничной схеме выполняют логическую функцию И, а параллельные контакты выполняют логическую функцию ИЛИ. Таким образом, эту программу обнаружения пламени «два из трех» можно словесно описать так:
    «Горелка горит, если либо A и B, либо B и C, либо либо A и C»
    Альтернативный способ выразить это — использовать обозначения булевой алгебры, где умножение представляет функцию И, а сложение представляет функцию ИЛИ:
    Burner_lit = AB + BC + AC
    Еще один способ представить эту логическую связь — использовать символы логических элементов:

    Чтобы проиллюстрировать, как будет работать эта программа, мы рассмотрим случай, когда датчики пламени B и C обнаруживают пламя, а датчик A — нет (Примечание 1).
    Это представляет собой два из трех хороших условий, и поэтому мы ожидаем, что ПЛК включит индикатор «Горелка горит», как запрограммировано.
    Со стороны стойки ПЛК мы видим, как на плате дискретного входа загораются светодиоды-индикаторы датчиков B и C, а также светодиод-индикатор выходного канала лампы:
    Примечание 1. Наиболее вероятной причиной того, что один из двух датчиков пламени может не обнаружить наличие пламени, является некоторая форма смещения или загрязнения датчика пламени.
    Фактически, это веская причина для использования системы обнаружения пламени 2 из 3, а не симплексной схемы детектора (1 из 1): сделать систему более устойчивой к случайным проблемам с датчиками без ущерба для горелки. безопасность.

    Эти два входных канала, находящихся под напряжением, «устанавливают» биты (состояние 1) в памяти ПЛК, представляющие состояние датчиков пламени B и C. Бит датчика пламени A будет «чистым» (состояние 0), поскольку соответствующий входной канал обесточен.
    Тот факт, что светодиод выходного канала включен (и горит индикаторная лампа «Горелка горит»), говорит нам, что программа ПЛК «установила» соответствующий бит в регистре выходной памяти ПЛК в состояние «1».
    Отображение битов входного и выходного регистра показывает состояния «установки» и «сброса» ПЛК в данный момент времени:

    Исследуя программу Ladder Diagram с включенной индикацией состояния, мы видим, что только средняя пара контактов передает «виртуальную мощность» на выходную катушку:

    Напомним, что целью контакта в программе ПЛК является чтение состояния бита в памяти ПЛК.
    Эти шесть «виртуальных контактов» считывают три входных бита, соответствующие трем датчикам пламени.
    Каждый нормально разомкнутый «контакт» «замыкается», когда соответствующий бит имеет значение 1, и «размыкается» (переходит в нормальное состояние), когда соответствующий бит имеет значение 0.
    Таким образом, мы видим здесь, что два контакта, соответствующие датчику A, появляются без подсветки (что означает отсутствие «проводимости» в схеме виртуального реле), поскольку бит для этого входа сброшен (0).
    Два контакта, соответствующие датчику B, и два контакта, соответствующие датчику C, отображаются выделенными (представляющими «проводимость» в виртуальной схеме), поскольку оба их бита установлены (1).
    Напомним также, что назначение катушки в программе ПЛК — запись состояния бита в память ПЛК.
    Здесь «активированная» катушка устанавливает бит для выхода 0 ПЛК в состояние «1», тем самым активируя реальный выход и отправляя электроэнергию на лампу «Горелка горит».
    Обратите внимание, что цветовое выделение не означает, что виртуальный контакт проводит виртуальную энергию, а лишь указывает на то, что он способен проводить энергию. Однако цветовая подсветка вокруг виртуальной катушки указывает на наличие виртуальной «мощности» в этой катушке.
    Контакты и реле полезны не только для реализации простых логических функций, но также могут выполнять функции фиксации.
    Очень распространенным применением этого в промышленных системах ПЛК является программа запуска/останова с фиксацией для управления электродвигателями с помощью кнопочных переключателей с мгновенным контактом.
    Как и раньше, эта функциональность будет проиллюстрирована с помощью гипотетического примера схемы и программы:

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

    Нажатие кнопки «Пуск» активирует канал дискретного входа 6 ПЛК, который «замыкает» виртуальный контакт в программе ПЛК, обозначенный IN-переключателем «Пуск».
    Нормально закрытый виртуальный контакт для входного канала 7 (кнопка «Стоп») по умолчанию уже закрыт, когда кнопка «Стоп» не нажата, поэтому виртуальная катушка будет получать «питание» при нажатии кнопки «Старт». нажата, а кнопка «Стоп» — нет.
    Обратите внимание на герметичный контакт с той же маркировкой, что и на катушке: контактор OUT. На первый взгляд может показаться странным, что и контакт, и катушка в программе ПЛК имеют одинаковую маркировку (примечание 3), поскольку контакты чаще всего связаны с входами, а катушки с выходами, но это имеет смысл, если вы понимаете истинный смысл контакты и катушки в программе ПЛК: как операции чтения и записи битов в памяти ПЛК.
    Катушка с надписью OUT contactor записывает состояние этого бита, а контакт с надписью OUT contactor считывает состояние того же бита. Цель этого контакта, конечно, состоит в том, чтобы зафиксировать двигатель во включенном состоянии после того, как человек-оператор отпустит палец с кнопки «Пуск».
    Примечание 3. Очень распространенное заблуждение среди студентов, впервые изучающих программирование лестничных диаграмм ПЛК, заключается в том, что контакты всегда связываются с входами ПЛК, а катушки с выходами ПЛК, поэтому кажется странным, что контакт имеет ту же маркировку, что и выход. Однако это ложная ассоциация. В действительности контакты и катушки представляют собой инструкции чтения и записи, поэтому ПЛК может читать один из своих собственных выходных битов как часть некоторой логической функции. Что было бы действительно странно, так это маркировать катушку адресом входного бита или именем тега, поскольку ПЛК электрически не способен устанавливать реальный статус включения каких-либо входных каналов.
    Этот метод программирования известен как обратная связь, где выходная переменная функции (в данном случае переменная обратной связи — выходной контактор) также является входом той же функции.
    Путь обратной связи в программировании лестничных диаграмм является скорее неявным, чем явным, причем единственным признаком обратной связи является общее имя, общее для катушки и контакта.
    Другие языки графического программирования (например, функциональные блоки) имеют возможность отображать пути обратной связи как соединительные линии между выходами и входами функций, но эта возможность не существует в лестничной диаграмме.
    Пошаговая последовательность, показывающая работу и состояние этой простой программы, иллюстрирует, как работает герметичный контакт в ходе цикла запуска и остановки двигателя:

    Эта последовательность помогает проиллюстрировать порядок оценки или порядка сканирования программы лестничной диаграммы. ПЛК читает лестничную диаграмму слева направо, сверху вниз в том же порядке, в котором человек читает предложения и абзацы, написанные на английском языке.
    Однако, согласно стандарту IEC 61131-3, программа ПЛК должна оценивать (считывать) все входы (контакты) функции, прежде чем определять состояние выхода функции (катушки или катушек).
    Другими словами, ПЛК не принимает никакого решения о том, как установить состояние катушки, пока не будут прочитаны все контакты, обеспечивающие питание этой катушки.
    Как только статус катушки будет записан в память, все контакты, имеющие одно и то же имя тега, будут обновляться с этим статусом на последующих ступенях программы.
    Шаг 5 в предыдущей последовательности особенно показателен. Когда человек-оператор нажимает кнопку «Стоп», активируется входной канал для IN-переключателя Stop, который «открывает» нормально замкнутый виртуальный контакт IN-выключателя Stop.
    При следующем сканировании этой цепочки программы ПЛК оценивает все входные контакты (выключатель IN Start, переключатель IN Stop и контактор OUT), чтобы проверить их состояние, прежде чем решить, какое состояние записать в катушку контактора OUT.
    Видя, что стоп-контакт переключателя IN был принудительно разомкнут в результате активации соответствующего дискретного входного канала, ПЛК записывает состояние «0» (или «Ложь») на катушку контактора OUT.
    Однако контакт обратной связи выходного контактора не обновляется до следующего сканирования, поэтому на этапе 5 он по-прежнему выделяется цветом.
    Потенциальная проблема этой системы в ее конструкции заключается в том, что человек-оператор теряет контроль над двигателем в случае обрыва проводки в любой из цепей кнопочного переключателя.
    Например, если провод отвалился от винтового контакта цепи кнопочного переключателя «Пуск», двигатель не мог быть запущен, если он уже был остановлен.
    Аналогичным образом, если провод отвалился от винтового контакта цепи кнопочного выключателя «Стоп», двигатель не мог быть остановлен, если он уже работал.
    В любом случае обрыв проводного соединения действует так же, как «нормальное» состояние кнопочного переключателя, то есть удерживает двигатель в его текущем состоянии.
    Для некоторых приложений этот режим отказа не будет серьезной проблемой. Однако во многих приложениях довольно опасно иметь работающий двигатель, который невозможно остановить.
    По этой причине принято проектировать системы запуска/остановки двигателя несколько иначе, чем показано здесь.
    Чтобы построить систему управления двигателем «при отказе» с помощью нашего ПЛК, мы должны сначала перемонтировать кнопочный переключатель, чтобы использовать его нормально замкнутый (НЗ) контакт:

    Благодаря этому канал дискретного входа 7 остается активным, когда кнопка не нажата. При нажатии оператором кнопки «Стоп» контакт выключателя принудительно размыкается и входной канал 7 обесточивается.
    Если провод выпадет из винтовой клеммы в цепи переключателя «Стоп», входной канал 7 обесточится точно так же, как если бы кто-то нажал кнопку «Стоп», что автоматически отключит двигатель.
    Чтобы программа ПЛК работала правильно с этой новой проводкой переключателя, виртуальный контакт для переключателя IN Stop должен быть изменен с нормально закрытого (NC) на нормально разомкнутый (NO):

    Как и раньше, виртуальный контакт остановки переключателя IN находится в «закрытом» состоянии, когда никто не нажимает переключатель «Стоп», что позволяет двигателю запуститься в любое время при нажатии переключателя «Пуск».
    Аналогичным образом, виртуальный контакт остановки переключателя IN размыкается каждый раз, когда кто-то нажимает переключатель «Стоп», тем самым прекращая подачу виртуальной «мощности» на катушку контактора ВЫХОДА.
    Хотя это очень распространенный способ создания систем запуска/остановки двигателя, управляемых ПЛК – с кнопочным переключателем НЗ и виртуальным контактом «Стоп» NO – студенты, плохо знакомые с программированием ПЛК, часто находят этот логический разворот запутанным.
    Возможно, наиболее распространенной причиной этой путаницы является неправильное понимание «нормальной» концепции контактов переключателя, реальных или виртуальных. Виртуальный контакт остановки переключателя IN запрограммирован как нормально разомкнутый (НО), но обычно он находится в закрытом состоянии.
    Напомним, что «нормальным» состоянием любого переключателя является его состояние в состоянии покоя без стимуляции, а не обязательно его состояние, когда процесс находится в «нормальном» рабочем режиме.
    «Нормально открытый» виртуальный контакт IN-переключателя Stop обычно находится в закрытом состоянии, поскольку соответствующий ему входной канал обычно находится под напряжением благодаря нормально замкнутому контакту кнопочного переключателя, который передает реальную электрическую мощность на входной канал, в то время как никто нажимает переключатель.
    Тот факт, что переключатель настроен как нормально разомкнутый, не обязательно означает, что он обычно находится в разомкнутом состоянии! Состояние любого контакта переключателя, реального или виртуального, зависит от его конфигурации (НО или НЗ) и приложенного к нему воздействия.
    Еще одна проблема, связанная с реальными проблемами с проводкой, заключается в том, что будет делать эта система, если цепь катушки контактора двигателя разомкнется по какой-либо причине.
    Разрыв цепи может возникнуть в результате падения провода с винтовой клеммы или из-за размыкания контакта тепловой перегрузки из-за перегрева. Проблема с нашей системой запуска/остановки двигателя в том виде, в котором она спроектирована, заключается в том, что она «не знает» о реальном состоянии контактора.
    Другими словами, ПЛК «думает», что контактор будет под напряжением каждый раз, когда на канал дискретного выхода 2 будет подано напряжение, но на самом деле это может быть не так, если в цепи катушки контактора происходит обрыв.
    Это может привести к опасной ситуации, если позже будет устранено открытое замыкание в цепи катушки контактора. Представьте себе, что оператор нажимает кнопку «Пуск», но замечает, что двигатель на самом деле не запускается.
    Задаваясь вопросом, почему это может быть, он или она идет посмотреть на реле перегрузки, чтобы убедиться, что оно не сработало. Если он сработал и оператор нажимает кнопку «Сброс» на блоке защиты от перегрузки, двигатель немедленно запустится, поскольку дискретный выход ПЛК остается под напряжением все время после нажатия переключателя «Пуск».
    Запуск двигателя сразу после сброса тепловой перегрузки может стать неожиданностью для эксплуатационного персонала, и это может быть весьма опасно, если кто-нибудь окажется рядом с оборудованием с приводом от двигателя во время его запуска.
    Что было бы безопаснее, так это система управления двигателем, которая отказывается «фиксироваться», если на контактор не подается питание при нажатии кнопки «Пуск». Чтобы это было возможно, ПЛК должен иметь какой-то способ определения состояния контактора.
    Чтобы ПЛК «знал» о реальном состоянии контактора, мы можем подключить контакт вспомогательного переключателя к одному из неиспользуемых дискретных входных каналов ПЛК, например:

    Теперь ПЛК может определять состояние контактора в реальном времени через входной канал 5.
    Мы можем изменить программу ПЛК, чтобы распознавать это состояние, назначив этому входу новое имя тега (дополнительный входной контактор) и используя нормально разомкнутый виртуальный контакт с этим именем в качестве герметичного контакта вместо бита выходного контактора:

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

    Обратите внимание на использование нормально разомкнутого (НО) контакта кнопочного переключателя (снова!), без вспомогательного контакта, обеспечивающего индикацию состояния контактора для ПЛК. Это очень минимальная программа, показанная исключительно с целью проиллюстрировать использование фиксирующих катушек «установки» и «сброса» в программировании лестничных диаграмм ПЛК.
    Катушки «Установка» и «Сброс» (называемые катушками «Фиксация» и «Разблокировка») являются примерами того, что известно в мире программирования ПЛК как сохраняемые инструкции. «Сохраняющая» инструкция сохраняет свое значение после того, как она фактически «обесточена» в «схеме» лестничной диаграммы.
    Стандартная выходная катушка не удерживается, что означает, что она не «фиксируется» при обесточивании. Концепция сохраняемых и несохраняемых инструкций появится снова, когда мы будем изучать программирование ПЛК, особенно в области таймеров.
    Обычно мы стараемся избегать использования нескольких катушек с одной и той же меткой в программе лестничной схемы ПЛК. Поскольку каждая катушка представляет команду «записи», несколько катушек с одинаковым именем представляют несколько операций «записи» в один и тот же бит в памяти ПЛК.
    Здесь, при использовании катушек с фиксацией, конфликта нет, поскольку каждая из катушек записывает данные в бит контактора OUT только тогда, когда соответствующий контакт находится под напряжением. Пока одновременно нажимается только один из кнопочных переключателей, конфликта между катушками с одинаковыми названиями не возникает.
    Возникает вопрос: что произойдет, если одновременно нажать оба кнопочных переключателя? Что произойдет, если на катушки «Установка» и «Сброс» одновременно будет подано напряжение? В результате бит контактора OUT сначала будет «установлен» (записан в значение 1), а затем «сброшен» (записан в значение 0) в том порядке, в котором две цепочки программы сканировались сверху вниз. .
    ПЛК обычно не обновляют свои регистры дискретного ввода-вывода во время сканирования программы лестничной диаграммы (эта операция происходит либо до, либо после каждого сканирования программы), поэтому реальное состояние канала дискретного вывода будет таким, каким оно было указано в последней операции записи. , в данном случае «сброс» (0 или выкл.).
    Даже если дискретный выход не «перепутан» из-за конфликтующих операций записи обмоток «Установка» и «Сброс», это могут быть и другие ступени программы, записанные между цепочками «Установка» и «Сброс».
    Рассмотрим, например, случай, когда после цепочек «Установить» и «Сброс» были другие цепочки программы, считывающие для какой-то цели состояние бита контактора ВЫХОДА.
    Эти другие цепочки действительно войдут в «замешательство», поскольку они увидят бит контактора OUT в состоянии «установлено», в то время как фактический дискретный выход ПЛК (и любые цепочки после цепочки «Сброс») увидят бит контактора OUT в состоянии «установлено». состояние «перезагрузки»:

    По этой причине несколько (несохраняемых) выходных катушек с одним и тем же адресом памяти почти всегда являются ошибкой программирования, но даже сохраняющие катушки, которые предназначены для использования в согласованных парах, могут вызвать проблемы, если не предвидятся последствия одновременного включения.
    Несколько контактов с одинаковыми адресами не представляют никакой проблемы, поскольку несколько операций «чтения» одного и того же бита памяти никогда не вызовут конфликта.
    Стандарт программирования ПЛК IEC 61131-3 определяет контакты, чувствительные к переходу, а также более привычные «статические» контакты. Контакт, чувствительный к переходу, будет «срабатывать» только на время одного сканирования программы, даже если соответствующий ему бит остается активным.
    В стандарте IEC определены два типа контактов лестничной схемы, чувствительных к переходу: один для положительных переходов, а другой для отрицательных переходов.
    В следующем примере показана схема подключения, программа лестничной диаграммы и временная диаграмма, показывающая, как каждый тип контакта, чувствительного к переходу, работает при стимулировании реальным (электрическим) входным сигналом на дискретный канал:

    When the pushbutton switch is pressed and the discrete input energized, the first test lamp will blink “on” for exactly one scan of the PLC’s program, then return to its off state.
    The positive transition contact (with the letter “P” inside) activates the coil OUT test1 only during the scan it sees the status of IN test transition from “false” to “true,” even though the input remains energized for many scans after that transition.
    Conversely, when the pushbutton switch is released and the discrete input de-energizes, the second test lamp will blink “on” for exactly one scan of the PLC’s program then return to its off state.
    The negative-transition contact (with the letter “N” inside) activates the coil OUT test2 only during the scan it sees the status of IN test transition from “true” to “false,” even though the input remains de-energized for many scans after that transition:
    It should be noted that the duration of a single PLC program scan is typically very short: measured in milliseconds. If this program were actually tested in a real PLC, you would probably not be able to see either test lamp light up, since each pulse is so short-lived.
    Transitional contacts are typically used any time it is desired to execute an instruction just one time following a “triggering” event, as opposed to executing that instruction over and over again so long as the event status is maintained “true.”
    Contacts and coils represent only the most basic of instructions in the Ladder Diagram PLC programming language.

    leikang
    Программируемый логический контроллер (ПЛК) Вопросы и ответы
    Этот ПЛК используется для запуска и остановки электродвигателя, а также для его автоматического выключения при возникновении любого из трех условий «выключения»:
    Чрезмерная вибрация Перегрузка по току (перегрузка контакта нагревателя) Высокая температура обмотки Логика отключения двигателя с использованием программирования ПЛК

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


Apply for friendship links:WhatsApp or E-mail: admin@plchmis.com
×
×
  • Create New...