工業控制系統

独立控制器系统

最简单的控制系统是以小型独立控制器进行，单一控制回路的系统。控制器上一般会有简易的面板可以观看系统情形，也提供人工介入调整（控制流程或是改变控制器目标值）的界面。早期有气动型的控制器，现在仍有少部气动控制器在运作，不过大部分的已改为电子式控制器。
复杂的系统可能会用这些小控制器组合成网络，用工业通讯协定互相沟通。网络化之后可以选择使用近端操作界面，或是远端的SCADA操作界面，也可以让控制器之间有串接或是互锁的功能。不过随着系统中控制回路越来越多，使用可编程逻辑控制器（PLC）及分散式控制系统（DCS）的比例也越来越高，此作法不但在成本上有优势，也便于管理。

分散式控制系统

分散式控制系统（DCS）是制程或是工厂中用的数位处理控制系统，其中的控制器及现场连结模组是分散在系统的不同区域。随着控制环数量的增加，DCS的价格会比许多个别控制器要低。DCS也可以提供有关大型工业流程的监控画面以及管理机能。在DCS中，各阶层的控制器是透过通讯网络连结，因此可以在控制室集中控制，也可以在各工厂监控及控制。
分散式控制系统可以简化工厂控制的组态调整（像是级联控制及互锁），和其他电脑系统（例如生产管理）的界面也比较简单。分散式控制系统也可以有复杂的警报处理，利用自动事件记录，减少实体记录的必要性，也让控制设备可以用网络相连接，因此控制设备可以靠近要控制的机器，减少接线。
分散式控制系统一般会用客制化的处理器当作控制器，通讯可能会用专用的通讯协定，也可能会用工业界常用的通讯协定。系统的周边则会由输入模组及输出模组所组成。
处理器接收输入模组的资讯，处理后，决定控制动作，并透过输出模组来产生对应的输出。输入模组会接收感测器量测制程或是现场的资讯，输出模组会则会将输出送到终端控制元件（例如控制阀）。
现场的输入讯号或输出讯号可以是模拟信号（例如电流环），也可以是双值表示“开”或“关”的信号（例如继电器接点或是半导体开关）。
分散式控制系统支援的通讯协定一般包括基金会总线、Profibus、HART通讯、Modbus以及其他的数位通讯协定，其中不但包括输入及输出信号，也可以有像是故障诊断及状态信号之类的资讯。

SCADA系统

资料采集与监控系统简称是SCADA，是利用电脑、网络资料通讯及图形用户界面进行高阶程序监控管理的控制系统架构。透过SCADA的串面，使用者可以监控以及进行过程操作（例如改变控制器设定值）。不过实时的控制逻辑或是控制器计算是由网络模组所进行的，这些模组也会连接到其他设备，像是可编程逻辑控制器及离散PID控制器等。
SCADA的概念一开始是希望有通用的方式可以远端控制各种控制的模组，可能是透过不同的制造商透过自动化通讯协定来互动。实际上，大型的SCADA系统在机能上已非常类似分散式控制系统，但和工厂用不同的方式互动。可以控制大型的制程，可能包括数个不同的厂房，并且可以远端作业，这是工业控制系统常用的架构，不过因为SCADA容易受到网络战或网络恐怖主义攻击的影响，也有人提出相关的顾虑。
SCADA软件主要是处理监控层次的事务，控制行为会由远程终端装置（RTU）或PLC自动进行。SCADA控制功能一般受限于基本的overriding或监控层次的介入。回授控制是由RTU或PLC直接控制，而SCADA软件会监控控制回路的整体性能。例如，PLC会透过制程控制冷却水的流量到设定值，不过SCADA系统软件可以让操作员改变流量的设定值。SCADA也可以有警告条件（例如没有水流或是水温过高），可以显示及记录对应资讯。

可编程逻辑控制器

PLC可以小到在一个单体内，由一个处理器以及数十个I/O组成的小型模组化设备，也可以大到是用底板（rack）安装的模组化设备，有上千个I/O，和其他PLC或SCADA以通讯方式交换资讯。PLC可以有许多不同的类比输入／数位输入／类比输出／数位输出的配置、延伸温度范围、对噪声的免疫、耐振动及冲击等。控制机器动作的程式一般会储存在非挥发性内存中，或是系统有备用电池供电，避免因为断电而丧失资讯。

历史

大型工厂的过程控制经过许多阶段的演进。一开始，控制是在透过各个生产机器的面板进行，这个就需要操作人员轮流在各的机器的面板前进行操作，而且无法看到整体的流程。下一个逻辑上的进展是将所有的工厂量测设备面板整合到一个持续有人监控的中控室。控制器多半是在其对应面板的背后，所有自动及手动的控制输出是透过气动或是电子信号传送到工厂对应的机器。这是在工厂各处的面板集中在一个地方，是有效率的作法，好处是节省监控的人力需求，也可以看到流程的整体情形。
不过系统虽然以中央控制方式运作，但是每个控制环以及其控制器硬件的配置不容易调整，若需要重新调整系统，就需要重新配线。为了监控整个制程的情形，也需要有固定的人力，在大的监控室中不同的设备仪表之间进行监控。随着电子处理器、高速电子网络以及电子绘图显示器的问世，已经可以将这些个别的控制器整合成以电脑为基础的控制系统，放在由许多输入／输出模组以及其控制器组成的网络系统中。这些设备可以分散在工厂的各处，可以彼此通讯，而在中控室中有绘图显示。这就是“分散式控制”（distributed control）概念的实现。
分散式控制的出现让工厂控制设备的互联以及重新组态更加灵活，可以有像是互锁或是串接回路的功能，也可以和其他生产的电脑系统连线。可以提供整体的工厂状态以及生产情形概观。针对大型的控制系统，出现了“分散式控制系统”（DCS）的名称，指由许多制造商提供的专属模组化系统，整合了高速网络、显示以及控制器模组。
DCS的应用可以符合大型连续工业制程的需求，但在一些以组合逻辑以及顺序逻辑为主要需求的产业中，开始用PLC来代替许多用在事件驱动控制的继电器以及计时器。早期的控制系统很难重新组态，也很难除错，PLC控制可以让许多信号组成的网络连到有电子显示的中央控制区域中。PLC一开始是为了车辆产业的汽车组装生产线所开发，其中的顺序逻辑非常的复杂。PLC很快就适用于大量的事件驱动应用里，例如印刷产业以及水处理厂。
SCADA的历史是从分散式应用开始的，例如电厂、天然气以及供水系统，这些应用透过不一定可靠、或是低带宽、高延迟的网络来收集大量资料。SCADA系统使用开回路控制器，其设备之间可能有相当的距离，其中会使用远程终端装置（RTU）来传送监控资料给控制中心。在连接不到主系统时，大部分的RTU系统有能力可以处理一些简易的近端控制。而近年来的RTU系统处理近端控制的能力也越来越强，
随着时代的演进，DCS系统和SCADA/PLC系统之间的界限已越来越模糊不清。早期有一些技术限制，因此开发了这些不同的系统，而这些技术限制后来都已不成问题。许多PLC的平台运作起来和小型的DCS一样好，其中也用到远端I/O，而且有相当的可靠度，甚至有些SCADA系统已经针对远端的设备进行闭回路控制。随着处理器速度越来越快，许多DCS产品也有完整类似PLC的子系统，是一开始发展DCS时所不可能有的。
在1993年，随着IEC-1131的问世（也就是后来的IEC-61131-3），控制软件的程式码开始往标准化、可以重复使用、可以独立于硬件的方向发展。一开始，面向对象程序设计（OOP）可以用在工业控制系统中，因此带来可编程自动控制器（PAC）以及工业电脑（IPC）的发展。有许多平台可以用五种IEC标准编程语言（阶梯图、结构化文字、功能方块、指令文字以及顺序方块图）来进行开发。有些也可以用现代的高阶语言（例如C语言以及C++语言）进行开发。而且这些平台也接受一些用分析工具（像是MATLAB及Simulink）所开发的模组。IPC和传统的PLC不同，许多传统PLC使用专门的操作系统，IPC则使用Windows IoT。IPC利用强大的多核处理器的优点，其硬件成本比传统PLC要低很多，也可以有不同的外型，例如配合DIN rail安装，和触碰型萤幕整合（panel-pc），或是当作嵌入型电脑。新的硬件平台及技术也带来DCS及SCADA系统的进步，也让这两种系统的边界更加模糊，在定义上也开始变化。