Программируемый логический контроллер
Программи́руемый логи́ческий контро́ллер (сокр. ПЛК; англ. programmable logic controller, сокр. PLC; более точный перевод на русский — контроллер с программируемой логикой), программируемый контроллер — цифровая электронная система, предназначенная для применения в производственной среде, которая использует программируемую память для внутреннего хранения ориентированных на потребителя инструкций по реализации таких специальных функций, как логика, установление последовательности, согласование по времени, счет и арифметические действия для контроля посредством цифрового или аналогового ввода/вывода данных различных видов машин или процессов[1]. Чаще всего ПЛК используют для автоматизации технологических процессов. В качестве основного режима работы ПЛК выступает его длительное автономное использование, зачастую в неблагоприятных условиях окружающей среды, без серьёзного обслуживания и практически без вмешательства человека.
Иногда на ПЛК строятся системы числового программного управления станков.
ПЛК — устройства, предназначенные для работы в системах реального времени.
ПЛК имеют ряд особенностей, отличающих их от прочих электронных приборов, применяемых в промышленности:
- в отличие от микроконтроллера (однокристального компьютера) — микросхемы, предназначенной для управления электронными устройствами — ПЛК являются самостоятельным устройством с совокупностью различных электронных компонентов, заключенных в отдельный корпус, что позволяет оперативно и просто внедрять его в систему автоматизации любого уровня без риска потери его надежности.
- в отличие от компьютеров, ориентированных на принятие решений и управление оператором, ПЛК ориентированы на работу с машинами через развитый ввод сигналов датчиков и вывод сигналов на исполнительные механизмы, не затрачивая при этом большие вычислительные ресурсы, что делает работу и обслуживание системы автоматизации более стабильным и недорогим;
- в отличие от встраиваемых систем ПЛК изготавливаются как самостоятельные изделия, не требующие оборудования, без которого он не может полноценно выполнять свои задачи, и при этом имея возможность подключать дополнительные модули для увеличения количества решаемых задач по автоматизации.
Логические операции, применяемые в работе ПЛК, позволяют оперировать с переменными, занимающих в памяти фиксированную часть, заданную программистом. Например, при работе с переменной, значение, которого будет равно от 0 до 65535, будет занимать 2 байта, а число с плавающей точкой занимает 4 байта. Благодаря этому память, занимающая переменными и логическими операциями, представленных в виде функциональных блоков, повторяющихся многократно, в ПЛК распределяется более оптимально.
В современных ПЛК числовые операции в языках их программирования реализуются наравне с логическими. Все языки программирования ПЛК имеют лёгкий доступ к манипулированию битами в машинных словах, в отличие от большинства высокоуровневых языков программирования современных компьютеров.
История
Первым в мире программируемым контроллером (ПК) в 1968 году стал Modicon 084 (1968) (от англ. modular digital controller), спроектированный в прочном корпусе, без вентиляторов, переключателя ON/OFF и отверстий для циркуляции воздуха с расчётом на тяжелые условия эксплуатации[2]. Ричард Морли объяснял это так:
Мысленно мы представили, что программируемый контроллер находится на открытом воздухе под грузовиком и ездит между Техасом и Аляской. В тех обстоятельствах мы хотели, чтобы он выжил. Другое требование, чтобы он стоял на столбе, выполняя служебную программу, или радиовышке, которая не имела климат-контроля и вообще не обслуживалась.
Оригинальный текст (англ.)[показатьскрыть]Mentally, we had imagined the programmable controller being underneath a truck, in the open, and being driven around in Texas, in Alaska. Under those circumstances, we wanted it to survive. The other requirement was that it stood on a pole, helping run a utility or a microwave station which was not climate controlled, and not serviced at all.
ПК появились в качестве замены системам на релейной автоматике[2]. Такая схема не могла быть изменена после этапа проектирования и поэтому получила название жёсткая логика. Системы управления на основе ПК имели ряд преимуществ по сравнению со своими предшественниками[3]:
- они были меньшего размера и потребляли меньше электроэнергии;
- срок службы полупроводниковых элементов значительно выше, чем у механических реле;
- время и трудоемкость настройки или ремонта значительно ниже, что также сокращает простой оборудования.
В 1971 инженеры Allen-Bradley Одо Жозеф Стругер и Ричард Морли (т. н. «отцы ПЛК») разработали Bulletin 1774 PLC, впервые использовав термин ПЛК вместо ПК. В дальнейшем именно ПЛК будет являться стандартом в области автоматизации, а ПК станет чаще ассоциироваться с персональным компьютером. Несмотря на революционность ПЛК, его продвижение на рынке сопрягалось с трудностями[2]. По словам Морли:
В первые дни реальной проблемой было убедить людей в том, что коробка с программным обеспечением, пусть и в чугунном корпусе, может делать то же самое, что 50 футов шкафов, связанных с ними реле и проводки. …. всем компьютерам требовалась чистая, кондиционированная среда, и они по-прежнему были подвержены частым неисправностям. … Таким образом, несмотря на то, что ПЛК были и остаются специальными, выделенными компьютерами, были предприняты значительные усилия, чтобы не идентифицировать ПЛК как компьютеры из-за низкой надежности компьютеров и того факта, что они не были созданы для производственных операций.
Оригинальный текст (англ.)[показатьскрыть]We had some real problems in the early days of convincing people that a box of software, albeit cased in cast iron, could do the same thing as 50 feet of cabinets, associated relays, and wiring. ... all computers required a clean, air-conditioned environment, yet were still prone to frequent malfunctions. ... Thus, even though PLCs were and are special, dedicated computers, considerable effort was made to not identify PLCs as computers due to the poor reliability of computers and the fact that they were not things procured by manufacturing operations.
Первые ПЛК имели 16 входов, 16 выходов и 1 килобайт памяти[3], а логика их работы программировалась схемой соединений LD. Устройство имело тот же принцип работы, но реле и контакты (кроме входных и выходных) были виртуальными, то есть существовали в виде программы, выполняемой ПЛК. Такая технология была знакома инженерам и техникам, обслуживающим системы управления, поэтому они могли без обширной подготовки интерпретировать программы и вносить в них изменения[4]. Современные ПЛК являются свободно программируемыми.
В 2001 году исследовательская фирма ARC ввела термин PAC (Programmable Automation Controller) или контроллер автоматизации, с тем, чтобы отличить обычные ПЛК (programmable logic controller – PLC) от появившихся на рынке новых, более мощных и гибких контроллеров. Однако в настоящее время нет четких различий между этими типами устройств, поэтому термины PAC и PLC часто используются как синонимы.
Типы ПЛК
В зависимости от области применения и круга решаемых задач ПЛК имеет свою классификацию[5].
Основным показателем ПЛК является количество каналов ввода-вывода, которые имеют собственное разделение по типу обработки физических сигналов. Они могут быть дискретными и аналоговыми.
- Моноблочными - в которых устройство ввода-вывода не может быть удалено из контроллера или заменено на другое. Конструктивно контроллер представляет собой единое целое с устройствами ввода-вывода в одном корпусе. Моноблочный контроллер может иметь, например, 16 каналов дискретного ввода и 8 каналов релейного вывода.
- Модульные - состоящие из общей корзины (шасси), в которой располагаются модуль центрального процессора и сменные модули ввода-вывода, но чаще всего их устанавливают на DIN-рейки. Состав модулей выбирается пользователем в зависимости от решаемой задачи.
- Распределенные (с удаленными модулями ввода-вывода) - в которых модули ввода-вывода выполнены в отдельных корпусах, соединяются с модулем контроллера по сети (обычно на основе интерфейса RS-485) и могут быть расположены на расстоянии до 1,2 км от процессорного модуля.
Часто перечисленные конструктивные типы контроллеров комбинируются, например, моноблочный и модульный контроллеры могут быть дополнены удаленными модулями ввода-вывода, чтобы увеличить общее количество каналов.
Многие контроллеры имеют набор сменных процессорных плат разной производительности. Это позволяет расширить круг потенциальных пользователей системы без изменения ее конструктива.
- панельные (для монтажа на панель или дверцу шкафа);
- для монтажа на DIN-рейку внутри шкафа;
- для крепления на стене;
- стоечные - для монтажа в стойке;
- бескорпусные (обычно одноплатные) для применения в специализированных конструктивах производителей оборудования (OEM - "Original Equipment Manufact urer").
- универсальные общепромышленные;
- для управления роботами;
- для управления позиционированием и перемещением;
- коммуникационные;
- ПИД-контроллеры;
- специализированные и др.
- программируемые с лицевой панели контроллера;
- программируемые переносным программатором;
- программируемые с помощью дисплея, мыши и клавиатуры;
- программируемые с помощью персонального компьютера.
Устройство ПЛК
Часто ПЛК состоит из следующих частей:
- модуль питания — преобразовывает электрическую энергию, подводимую к ПЛК извне, для питания всех его компонентов; например, из напряжения распределительной сети 220 В в напряжение 24В постоянного тока, на котором работает ПЛК и его модули; может находится внутри ПЛК или устанавливаться отдельно;
- центральная микросхема (микроконтроллер или процессор), с необходимой обвязкой — предназначена для выполнения заложенных в неё логических операций;
- подсистема часов реального времени, как правило имеющая собственный элемент питания внутри корпуса ПЛК;
- энергонезависимая память — используется для хранения переменных в случае обесточивания системы;
- интерфейсы последовательного ввода-вывода (RS-485, RS-232, Ethernet) для связи с модулями или с системой верхнего уровня;
- схемы защиты и преобразования напряжений на входах и выходах ПЛК — защищают процессор или преобразовывают приходящие сигналы в измеряемую величину. Обычно вход или выход ПЛК нельзя сразу же подключить к соответствующему выходу центральной микросхемы. Эти выходы характеризуются низкими уровнями напряжений, обычно от 3,3 до 5 вольт. Входы и выходы ПЛК обычно должны работать с напряжениями 24 В постоянного либо 220 В переменного тока. Поэтому между выходом ПЛК и выходом микросхемы необходимо предусматривать усилительные и защитные элементы.
Структуры систем управления
- Централизованная: в корзину ПЛК, зачастую в объединительную панель, устанавливаются модули процессора(ов), ввода-вывода и связи. В случае необходимости расширения системы сверх ограничения существующей корзины, в неё ставят модули расширения, добавляющие возможность масштабирования в пределах одного шкафа. Датчики и исполнительные устройства подключаются отдельными проводами непосредственно к модулям ввода-вывода, при помощи модулей согласования к входам/выходам сигнальных модулей либо (в случае организации в устройстве интерфейса с шиной) через модуль связи (мост); в случае использования полевой шины типа AS-i возможно питание исполнительного механизма по шине с одновременной передачей сигналов управления.
- Распределенная: удалённые от шкафа с ПЛК датчики и исполнительные устройства связаны с ПЛК посредством каналов связи (через модули или процессоры связи) и, возможно, корзин-расширителей с использованием связей типа «ведущий-ведомый» (англ. Master-Slave).
Интерфейсы связи ПЛК
Для связи ПЛК с различными дополнительными модулями для расширения автоматизированной системы измерения и управления, а также с устройствами, имеющими специфические функции для конкретных задач, применяются следующие основные физические интерфейсы, использующие проводную связь по линиям подключаемых контактов или разъемов:
- RS-232 — работает в дуплексном режиме, то есть может одновременно передавать и принимать данные, но только между ПЛК и одним устройством на расстоянии нескольких метров из-за нестабильной связи, не устойчивой к помехам. Применяется, если нужна привязка к устройству, где будут передаваться частые или большие объемы информации, например, к персональному компьютеру, модему или панели оператора. В данном интерфейсе используются минимум три линии контакта.
- RS-485 — работает в полудуплексном режиме, то есть передача и принятие данных идут последовательно по времени между ПЛК и большим количеством устройств на большом расстоянии, до нескольких километров. Используется для расширения автоматизированной системы, где требования к скорости невысоки, вследствие чего RS-485 встречается достаточно широко. В данном интерфейсе используются минимум две линии контакта.
- RS-422 — работает в дуплексном режиме и устойчив к помехам на больших расстояниях, имея достоинства RS-232 и RS-485. Однако в режиме приема данных работает только с одним устройством. В данном интерфейсе используются минимум четыре линии контакта.
- Ethernet — интерфейс, позволяющий подключать ПЛК к локальной сети. Позволяет строить более сложные автоматизированные системы. Благодаря высокой скорости и устойчивости к помехам в настоящее время вытесняет использование остальных интерфейсов.
Следует отметить, что при построении автоматизированной системы ПЛК и все подключаемые нему устройства должны иметь один вид интерфейса (в противном случае необходимо использовать преобразователи интерфейсов) и работать по одному протоколу передачи данных.
В таблице приведено сравнение основных характеристик трех промышленных интерфейсов, используемых в промышленной автоматизации с помощью проводного соединения [6]:
| Параметр | RS-232 | RS‑422 | RS‑485 |
| Способ передачи сигнала | Однофазный | Дифференциальный | Дифференциальный |
| Максимальное количество приемников | 1 | 10 | 32 |
| Максимальная длина кабеля | 15 м | 1200 м | 1200 м |
| Максимальная скорость передачи | 460 кбит/с | 10 Мбит/с | 30 Мбит/с |
| Синфазное напряжение на выходе | ± 25 В | -0,25...+6 В | -7...+12 В |
| Напряжение в линии под нагрузкой | ±5... ±15 В | ±2 В | ±1,5 В |
| Импеданс нагрузки | 3...7 кОм | 100 Ом | 54 Ом |
| Ток утечки в "третьем" состоянии | - | - | ±100 мкА |
| Допустимый диапазон сигналов на входе приемника | ±15 В | ±10 В | -7...+12 В |
| Чувствительность приемника | ±3В | ±200 мВ | ±200 мВ |
| Входное сопротивление приемника | 3...7 кОм | 4 кОм | 12 кОм |
Протоколы передачи ПЛК
Любая автоматизированная система имеет свой протокол или несколько протоколов передачи данных между устройствами. Каждое устройство, в том числе и ПЛК, должно иметь в своем функционале возможность обрабатывать данные для обеспечения связи в системе автоматизации согласно определенному стандарту. Протоколов связи в устройстве может быть несколько, но выбирается только тот, который принят в системе автоматизации, что препятствует возникновению ошибок и остановке работы устройств.
- Modbus — встречается у многих производителей приборов автоматизации благодаря открытой документации по его работе. Этот протокол подразделяется на три протокола, в зависимости от используемого интерфейса и формата передачи данных: Modbus RTU и Modbus ASCII по интерфейсам RS-232 и RS-485, а также Modbus TCP в интерфейсе Ethernet.
Остальные протоколы используются производителями приборов автоматизации только для своих устройств и встречаются достаточно редко:
Удаленное управление и мониторинг
- SCADA — находит применение в больших автоматизированных системах. Для работы с ним используются вычислительные сервера и компьютерные устройства различных типов, применяемые для управления и мониторинга системы автоматизации посредством удалённой диспетчеризации по локальной или глобальной сети.
- Операторские панели — применяются для средней или малой по размеру автономной системы автоматизации. Могут подключаться непосредственно к ПЛК.
- Веб-интерфейс — использует для вывода работы системы автоматизации на экран любого устройства, имеющего браузер. Для открытия страницы мониторинга и управления необходимо подключиться к ПЛК по его сетевому адресу.
Языки программирования ПЛК
Для программирования ПЛК используются стандартизированные языки МЭК (IEC) стандарта IEC61131-3
Языки программирования (графические)
- LD (Ladder Diagram) — Язык релейных схем — самый распространённый язык для PLC
- FBD (Function Block Diagram) — Язык функциональных блоков — 2-й по распространённости язык для PLC
- SFC (Sequential Function Chart) — Язык диаграмм состояний — используется для программирования автоматов
- CFC (Continuous Function Chart) — Не сертифицирован IEC61131-3, дальнейшее развитие FBD
Языки программирования (текстовые)
- IL (Instruction List) — Ассемблеро-подобный язык.
- ST (Structured Text) — Си-подобный или Паскале-подобный язык.
- C-YART — Си-подобный язык (YART Studio).
Структурно в IEC61131-3 среда исполнения представляет собой набор ресурсов (в большинстве случаев это и есть ПЛК, хотя некоторые мощные компьютеры под управлением многозадачных ОС предоставляют возможность запустить несколько программ типа softPLC и имитировать на одном ЦП несколько ресурсов). Ресурс предоставляет возможность исполнять задачи. Задачи представляют собой набор программ. Задачи могут вызываться циклически, по событию, с максимальной частотой.
Программа — это один из типов программных модулей POU. Модули (POU) могут быть типа программа, функциональный блок и функция. В некоторых случаях для программирования ПЛК используются нестандартные языки, например: Блок-схемы алгоритмов С-ориентированная среда разработки программ для ПЛК. HiGraph 7 — язык управления на основе графа состояний системы.
Инструменты программирования ПЛК на языках МЭК 61131-3 могут быть специализированными для отдельного семейства ПЛК или универсальными, работающими с несколькими (но далеко не всеми) типами контроллеров:
Программирование ПЛК
- Конфигурируемые: В ПЛК хранится несколько программ, а через клавиатуру ПЛК выбирается нужная версия программы;
- Свободно программируемые: программа загружается в ПЛК через его специальный интерфейс с персонального компьютера используя специальное ПО производителя, иногда с помощью программатора.
Программирование ПЛК имеет отличие от традиционного программирования. Это связано с тем, что ПЛК исполняют бесконечную последовательность программных циклов, в каждом из которых:
- считывание входных сигналов, в том числе манипуляций, например, на клавиатуре оператором;
- вычисления выходных сигналов и проверка логических условий;
- выдача управляющих сигналов и при необходимости управление индикаторами интерфейса оператора.
Поэтому при программировании ПЛК используются флаги — булевые переменные признаков прохождения алгоритмом программы тех или иных ветвей условных переходов. Отсюда, при программировании ПЛК от программиста требуется определённый навык.
Например, процедуры начальной инициализации системы после сброса или включения питания. Эти процедуры нужно исполнять только однократно. Поэтому вводят булевую переменную (флаг) завершения инициализации, устанавливаемую при завершении инициализации. Программа анализирует этот флаг, и если он установлен, то обходит исполнение кода процедур инициализации.
Литература
- Мишель Ж. Программируемые контроллеры: архитектура и применение. — М.: Машиностроение, 1986
- Э. Парр. Программируемые контроллеры: руководство для инженера. — М.: БИНОМ. Лаборатория знаний, 2007. — 516 с. ISBN 978-5-94774-340-1
- Петров И. В. Программируемые контроллеры. Стандартные языки и приемы прикладного проектирования / Под ред. проф. В. П. Дьяконова. — М.: СОЛОН-Пресс, 2004. — 256 c. ISBN 5-98003-079-4
- Денисенко В. В. Компьютерное управление технологическим процессом, экспериментом, оборудованием. — М: Горячая Линия-Телеком, 2009. — 608 с. ISBN 978-5-9912-0060-8
- Минаев И. Г. Программируемые логические контроллеры. Практическое руководство для начинающего инженера. /И. Г. Минаев, В. В. Самойленко — Ставрополь: АГРУС, 2009. — 100 с. ISBN 978-5-9596-0609-1
- Минаев И. Г. Программируемые логические контроллеры в автоматизированных системах управления / И. Г. Минаев, В. М. Шарапов, В. В. Самойленко, Д. Г. Ушкур. 2-е изд., перераб. и доп. — Ставрополь: АГРУС, 2010. — 128 с. ISBN 978-5-9596-0670-1
- О. А. Андрюшенко, В. А. Водичев. Электронные программируемые реле серий EASY и MFD-Titan. — 2-е изд., испр. — Одесса: Одесский национальный политехнический университет, 2006. — С. 223.
- Минаев И. Г. Свободно программируемые устройства в автоматизированных системах управления / И. Г. Минаев, В. В. Самойленко, Д. Г. Ушкур, И. В. Федоренко — Ставрополь: АГРУС. 2016. — 168 с. ISBN 978-5-9596-1222-1