Несмотря на похожее звучание, понятие «контроллер» произошло не от русского слова «контроль», а от английского «control», которое можно перевести, как управление. В автоматизированных системах контроллер представляет собой устройство, на которое возложена функция по управлению всеми или некоторыми физическими процессами. Управление происходит за счет заранее записанных алгоритмов, для работы которых также могут использоваться всевозможные данные, поступающие от датчиков.
Первые плк контроллеры появились в конце 60-ых годов. В то время их начали использовать преимущественно в автомобильной промышленности для обеспечения автоматизированного процесса по сбору транспортных средств на конвейерах. Электронно-вычислительные машины тогда стоили просто безумно дорого, поэтому контроллеры начали использоваться повсеместно. Однако данные устройства все равно имели много недостатков. Из-за того что контроллеры настраивались с помощью аппаратного программирования, даже при незначительном изменении сборочного процесса требовалось создавать абсолютно новые устройства.
Чтобы избежать таких затрат, были изобретены новые виды контроллеров, изменение алгоритма в которых могло производиться путем настройки схемы соединений реле. Новый вид устройств получил соответствующее наименование – программируемые логические контроллеры (ПЛК). Так они называются до сих пор. Более того, в настоящее время многие специалисты используют термины ПЛК и контроллеры практически как синонимы.
Процесс совершенствования контроллеров после возникновения ПЛК, естественно, не закончился. После этого через довольно небольшой промежуток времени появились контроллеры, которые программировались с помощью машинно-ориентированного языка. В плане конструкции устройства стали более простыми, однако, для совершения даже небольших правок требовался хорошо подготовленный программист. Именно с этого времени производители приступили к поиску решений для упрощения процесса внедрения алгоритмов в ПЛК. Данный поиск впоследствии привел к появлению так называемых языков программирования высокого уровня, а затем – узконаправленных языков по визуальному программированию.