Широко применяемый контроллер с программируемой логикой семейства SIMATIC S7-300
Программи́руемый логи́ческий контро́ллер (сокр. ПЛК; англ.programmable logic controller, сокр. PLC; более точный перевод на русский — контроллер с программируемой логикой), программируемый контроллер — электронная составляющая промышленного контроллера, специализированного (компьютеризированного) устройства, используемого для автоматизации технологических процессов. В качестве основного режима работы ПЛК выступает его длительное автономное использование, зачастую в неблагоприятных условиях окружающей среды, без серьёзного обслуживания и практически без вмешательства человека.
ПЛК имеют ряд особенностей, отличающих их от прочих электронных приборов, применяемых в промышленности:
в отличие от микроконтроллера (однокристального компьютера) — микросхемы, предназначенной для управления электронными устройствами — областью применения ПЛК обычно являются автоматизированные процессы промышленного производства в контексте производственного предприятия;
в отличие от компьютеров, ориентированных на принятие решений и управление оператором, ПЛК ориентированы на работу с машинами через развитый ввод сигналов датчиков и вывод сигналов на исполнительные механизмы;
в отличие от встраиваемых систем ПЛК изготавливаются как самостоятельные изделия, отдельные от управляемого при его помощи оборудования.
В системах управления технологическими объектами логические команды, как правило, преобладают над арифметическими операциями над числами с плавающей точкой, что позволяет при сравнительной простоте микроконтроллера (шины шириной 8 или 16 разрядов), получить мощные системы, действующие в режиме реального времени. В современных ПЛК числовые операции в языках их программирования реализуются наравне с логическими. Все языки программирования ПЛК имеют лёгкий доступ к манипулированию битами в машинных словах, в отличие от большинства высокоуровневых языков программирования современных компьютеров.
Первые логические контроллеры появились в виде шкафов с набором соединённых между собой реле и контактов. Эта схема задавалась жёстко на этапе проектирования и не могла быть изменена далее. Первый в мире программируемый логический контроллер (1968) — Modicon 084 (от англ.modular digital controller), имевший 4 кБ памяти.
Термин PLC ввел Odo Josef Struger (Allen-Bradley) в 1971 году. Он также сыграл ключевую роль в унификации языков программирования ПЛК и принятии стандарта IEC61131-3. Вместе с Richard Morley (Modicon) их называют 'отцами ПЛК’. Параллельно с термином ПЛК в 1970-е годы широко использовался термин микропроцессорный командоаппарат.
В первых ПЛК, пришедших на замену релейным логическим контроллерам, логика работы программировалась схемой соединений LD. Устройство имело тот же принцип работы, но реле и контакты (кроме входных и выходных) были виртуальными, то есть существовали в виде программы, выполняемой микроконтроллером ПЛК. Современные ПЛК являются свободно программируемыми.
ECM (Engine Control Module) — Модуль управления двигателем.
ECU (Electronic Control Unit) — Электронный блок управления, является общим термином для любого электронного блока управления. (См. п.3.9. SAE J1979[1].)
Структуры систем управления
Централизованная: в корзину ПЛК устанавливаются модули ввода-вывода. Датчики и исполнительные устройства подключаются отдельными проводами непосредственно, либо при помощи модулей согласования к входам/выходам сигнальных модулей;
Распределенная: удалённые от ПЛК датчики и исполнительные устройства связаны с ПЛК посредством каналов связи и, возможно, корзин-расширителей с использованием связей типа «ведущий-ведомый» (англ. Master-Slave).
Структурно в IEC61131-3 среда исполнения представляет собой набор ресурсов (в большинстве случаев это и есть ПЛК, хотя некоторые мощные компьютеры под управлением многозадачных ОС представляют возможность запустить несколько программ типа softPLC и имитировать на одном ЦП несколько ресурсов). Ресурс предоставляет возможность исполнять задачи. Задачи представляют собой набор программ. Задачи могут вызываться циклически, по событию, с максимальной частотой.
Программа — это один из типов программных модулей POU. Модули (Pou) могут быть типа программа, функциональный блок и функция. В некоторых случаях для программирования ПЛК используются нестандартные языки, например: Блок-схемы алгоритмов Си-ориентированная среда разработки программ для ПЛК. HiGraph 7 — язык управления на основе графа состояний системы.
Инструменты программирования ПЛК на языках МЭК 61131-3 могут быть специализированными для отдельного семейства ПЛК (например, STEP 7 для контроллеров SIMATIC S7-300/400) или универсальными, работающими с несколькими (но далеко не всеми) типами контроллеров:
Конфигурируемые: В ПЛК хранится несколько программ, а через клавиатуру ПЛК выбирается нужная версия программы.
свободно программируемые: программа загружается в ПЛК через его специальный интерфейс с Персонального компьютера используя специальное ПО производителя, иногда с помощью программатора
Мишель Ж. Программируемые контроллеры: архитектура и применение. — М.: Машиностроение, 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.