ПЛК используют в промышленности для автоматизации процессов и производств :) Обычно стойка ПЛК представляет собой набор модулей: главный модуль с самим контроллером и модули ввода-вывода.
С помощью модулей ввода на контроллер поступает некоторая информация. Для технологического объекта (пусть это будет колонна ректификации) это может быть температура верха колонны, расход сырья на входе, давление внутри колонны и т. д. Эта информация собирается с измерительных преобразователей (или по-просту датчиков), которые установлены непосредственно на объекте управления (колонне). Многие датчики меют разные протоколы передачи данных. Например, термометры могут выдавать свой сигнал в виде изменяющего напряжения, какие-то ещё датчики — в виде токового сигнала 4..20 мА и т. д. Задача модулей ввода как раз и состоит в том, чтобы преобразовать всё это разнообразие в унифицированную форму, понятную контроллеру.
На основании входных данных ПЛК обычно вырабатывает регулирующее воздействие. Например, если температура верха колонны увеличивается, контроллер подаёт сигнал на увеличение расхода орошения. Делает он это с помощью модулей вывода. Их задача — преобразовать сигнал с контроллера в сигнал, понятный Исполнительным Устройствам, в число которых входят электро-механические или пневматические приводы, управляющие клапанами. Модули вывода — это как модули ввода, только наоборот :)
Программируется всё это счастье с помощью очень разнообразного инструментария. Обычно у каждого производителя ПЛК есть свой набор инструментов для разработки. Тем не менее, существует промышленный стандарт, который определяет пять основных языков программирования ПЛК. Все я сейчас не вспомню, но в их число точно входит язык релейной логики (работа контроллера представляется в виде, похожем на простейшую электрическую схему) и язык функциональных блоков. В последнем случае в распоряжение программиста попадают целые блоки, реализующие какую-то функцию, например, закон ПИ-регулирования или умножение/деление сигнала. Есть и язык, похожий на ассемблер, но он используется довольно редко.
В этих контроллерах стоят самые обычные микропроцессоры, похожие на те, что стоят в мобильниках и других потребительских девайсах. Есть совсем простенькие контроллеры со слабенькими восьмибитными процессорами и небольшим набором инструкций, а есть мега-монстры с процессорами, производительность которых сравнима с десктопами.
Я учился в РГУ Нефти и газа в Москве, на кафедре АиВТ, специальность «Автоматизация тех. процессов и производств» :)