Программи́руемый логи́ческий контро́ллер (сокр. ПЛК; англ. programmable logic controller, сокр. PLC; более корректный перевод на русский — контроллер с программируемой логикой) — специальная разновидность электронной вычислительной машины. Чаще всего ПЛК используют для автоматизации технологических процессов. В качестве основного режима работы ПЛК выступает его длительное автономное использование, зачастую в неблагоприятных условиях окружающей среды, без серьёзного обслуживания и практически без вмешательства человека.
Иногда на ПЛК строятся системы числового программного управления (ЧПУ) станков.
ПЛК — устройства, изначально предназначенные для работы в системах реального времени.
ПЛК имеют ряд особенностей, отличающих их от прочих электронных приборов, применяемых в промышленности:
- в отличие от микроконтроллера (однокристального компьютера) — микросхемы, предназначенной для управления электронными устройствами — ПЛК являются самостоятельным устройством, а не отдельной микросхемой.
- в отличие от компьютеров, ориентированных на принятие решений и управление оператором, ПЛК ориентированы на работу с машинами через развитый ввод сигналов датчиков и вывод сигналов на исполнительные механизмы;
- в отличие от встраиваемых систем ПЛК изготавливаются как самостоятельные изделия, отдельные от управляемого при его помощи оборудования.
В системах управления технологическими объектами логические команды, как правило, преобладают над арифметическими операциями над числами с плавающей точкой, что позволяет при сравнительной простоте микроконтроллера (параллельные шины шириной 8 или 16 разрядов, последовательные шины I²C и SPI), получить мощные системы, действующие в режиме реального времени. В современных ПЛК числовые операции в языках их программирования реализуются наравне с логическими. Все языки программирования ПЛК имеют лёгкий доступ к манипулированию битами в машинных словах, в отличие от большинства высокоуровневых языков программирования современных компьютеров.
Обычно ПЛК оснащают многоканальными ЦАП и АЦП.
ПЛК имеют ряд особенностей, отличающих их от прочих электронных приборов, применяемых в машиностроении:
-
в отличие от микроконтроллера (однокристального компьютера) — микросхемы, предназначенной для управления электронными устройствами — областью применения ПЛК обычно являются автоматизированные процессы промышленного производства в контексте производственного предприятия;
-
в отличие от компьютеров ПЛК ориентированы на работу с агрегатами машин через развитый ввод сигналов датчиков и вывод сигналов на исполнительные механизмы, ориентированных на принятие решений и управление оператором;
-
в отличие от встраиваемых систем ПЛК изготавливаются как самостоятельные изделия, отдельные от управляемого при его помощи оборудования.
-
наличие расширенного числа логических операций и возможность задания таймеров и счетчиков.
-
все языки программирования ПЛК имеют легкий доступ к манипулированию битами в машинных словах, в отличие от большинства высокоуровневых языков программирования современных компьютеров.
Существуют ПЛК разного уровня сложности в зависимости от сложности решаемых задач автоматизации.
Интерфейсы ПЛК:
- RS-232
- RS-485
- Modbus
- INTERBUS
- Arcnet
- Hart
- BITBUS
- Токовая петля
- CC-Link
- Profibus
- DeviceNet
- ControlNet
- CAN
- AS-Interface
- Industrial Ethernet
Для совместимости с системами “умного дома” также могут поддерживаться интерфейсы BACnet и KNX.
Удаленное управление и мониторинг
Языки программирования ПЛК
Для программирования ПЛК используются стандартизированные языки МЭК (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) — Ассемблеро-подобный язык.
Он позволяет описывать функции, функциональные блоки и программы, а также шаги и переходы в языке SFC. Одним из ключевых преимуществ IL является его простота и возможность добиться оптимизированного кода для реализации критических секторов программ. Особенности IL делают его неудобным для описания сложных алгоритмов с большим количеством разветвлений.
- ST (Structured Text) — Паскале-подобный язык
это текстовый язык высокого уровня общего назначения, по синтаксису схожий с языком Pascal. Удобен для программ, включающих числовой анализ или сложные алгоритмы. Может использоваться в программах, в теле функции или функционального блока, а также для описания действия и перехода внутри элементов SFC. Согласно IEC 61131-3 ключевые слова должны быть введены в символах верхнего регистра. Пробелы и метки табуляции не влияют на синтаксис, они могут использоваться везде.
- C-YART — Си-подобный язык (YART Studio)
Структурно в IEC61131-3 среда исполнения представляет собой набор ресурсов (в большинстве случаев это и есть ПЛК, хотя некоторые мощные компьютеры под управлением многозадачных ОС предоставляют возможность запустить несколько программ типа softPLC и имитировать на одном ЦП несколько ресурсов). Ресурс предоставляет возможность исполнять задачи. Задачи представляют собой набор программ. Задачи могут вызываться циклически, по событию, с максимальной частотой.
Программа — это один из типов программных модулей POU. Модули (POU) могут быть типа программа, функциональный блок и функция. В некоторых случаях для программирования ПЛК используются нестандартные языки, например: Блок-схемы алгоритмов С-ориентированная среда разработки программ для ПЛК. HiGraph 7 — язык управления на основе графа состояний системы.
Основные операции ПЛК соответствуют комбинационному управлению логическими схемами специфических агрегатов — механических, электрических, гидравлических, пневматических и электронных.
В процессе управления контроллеры генерируют выходные сигналы (включить — выключить) для управления исполнительными механизмами (электродвигателями, клапанами, электромагнитами и вентилями) на основании результатов обработки сигналов, полученных от датчиков, либо устройств верхнего уровня.
Современные программируемые контроллеры выполняют также и другие операции, например, совмещают функции счетчика и интервального таймера, обрабатывают задержку сигналов.
Программируемые логические контроллеры среднего и высокого уровня, как правило, имеют встроенные аппаратно-программные средства управления движением, в частности, модули быстродействующих счетчиков, модули позиционирования и др., которые дают возможность сравнительно просто реализовать функции управления движением и обеспечить позиционирование с высокой точностью.
Конструктивно ПЛК приспособлены для работы в типовых промышленных условиях, с учетом загрязненной атмосферы, уровней сигналов, термо- и влагостойкости, ненадежности источников питания, а также механических ударов и вибраций. С этой целью аппаратная часть заключается в прочный корпус, минимизирующий негативное влияние ряда производственных факторов.
Программируемые логические контроллеры традиционно работают в нижнем звене автоматизированных систем управления предприятием (АСУ) — систем, непосредственно связанных с технологией производства. ПЛК обычно являются первым шагом при построении систем АСУ. Это объясняется тем, что необходимость автоматизации отдельного механизма или установки всегда наиболее очевидна. Она дает быстрый экономический эффект, улучшает качество производства, позволяет избежать физически тяжелой и рутинной работы. ПЛК по определению созданы именно для такой работы.