Программируемый логический контроллер (ПЛК) (англ. Programmable Logic Controller, PLC) или программируемый контроллер — электронная составляющая промышленного контроллера, специализированного (компьютеризированного) устройства, используемого для автоматизации технологических процессов. В качестве основного режима длительной работы ПЛК, зачастую в неблагоприятных условиях окружающей среды, выступает его автономное использование, без серьёзного обслуживания и практически без вмешательства человека.
Иногда на ПЛК строятся системы числового программного управления станком (ЧПУ, англ. Computer numerical control, CNC).
ПЛК являются устройствами реального времени.
В отличие от:
- микроконтроллера (однокристального компьютера), микросхемы предназначенной для управления электронными устройствами, областью применения ПЛК обычно являются автоматизированные процессы промышленного производства, в контексте производственного предприятия;
- компьютеров, ПЛК ориентированы на работу с машинами и имеют развитый 'машинный' ввод-вывод сигналов датчиков и исполнительных механизмов в противовес возможностям компьютера, ориентированного на человека (клавиатура, мышь, монитор и т. п.);
- встраиваемых систем — ПЛК изготавливается как самостоятельное изделие, отдельно от управляемого при его помощи оборудования.
Первые логические контроллеры появились в виде шкафов с набором соединённых между собой реле и контактов. Эта схема задавалась жёстко на этапе проектирования и не могла быть изменена далее.
Первый в мире ПЛК — MOdular DIgital CONtroller (Modicon) 084, имеющий память 4 кБ, произведен в 1968 году.
В первых ПЛК, пришедших на замену обычным логическим контроллерам, логика соединений программировалась схемой соединений LD (Ladder logic Diagram). Устройство имело тот же принцип работы, но реле и контакты (кроме входных и выходных) были виртуальными, то есть существовали в виде программы, выполняемой микроконтроллером ПЛК. Современные ПЛК являются «свободно программируемыми».
В системах управления технологическими объектами логические команды преобладают над числовыми операциями, что позволяет при сравнительной простоте микроконтроллера (шины шириной 8 или 16 бит), получить мощные системы действующие в режиме реального времени. В современных ПЛК числовые операции реализуются наравне с логическими. В то же время, в отличие от большинства процессоров компьютеров, в ПЛК обеспечивается доступ к отдельным битам памяти.