工業控制系統
工業控制系統（Industrial control system）簡稱ICS，是用在过程控制上的多種控制系統以及相關的總稱。
工業控制系統可以小到由幾個模組型的控制器組成，也可以是大型互聯及互相影響的分散式控制系統，其中有上千個現場的接線。所有的系統都會透過遠端的感測器量測程序變數（PV），並且接收量測到的資料，將量測資料和理想的目標值（SP）比較，產生透過終端控制元件（FCE）控制流程的命令，終端控制元件可能是等設備。
較大型的系統一般會用数据采集与监控系统（SCADA）來實現，或是由分散式控制系統（DCS）及可编程逻辑控制器（PLC）來實現，不過SCADA及PLC的系統一般可以縮小規模，小到只由幾個控制迴路組成的小型系統。這類系統廣泛應用在產業中，例如化工產業、造紙業、發電廠、石油天然氣提煉，以及電信業。 最簡單的控制系統是以小型獨立控制器進行，單一控制迴路的系統。控制器上一般會有簡易的面板可以觀看系統情形，也提供人工介入調整（控制流程或是改變控制器目標值）的界面。早期有氣動型的控制器，現在仍有少部氣動控制器在運作，不過大部份的已改為電子式控制器。
複雜的系統可能會用這些小控制器組合成網路，用工業通訊協定互相溝通。網路化之後可以選擇使用近端操作介面，或是遠端的SCADA操作介面，也可以讓控制器之間有串接或是互鎖的功能。不過隨著系統中控制迴路越來越多，使用可编程逻辑控制器（PLC）及分散式控制系統（DCS）的比例也越來越高，此作法不但在成本上有優勢，也便於管理。
分散式控制系統（DCS）是製程或是工廠中用的數位處理控制系統，其中的控制器及現場連結模組是分散在系統的不同區域。隨著控制環數量的增加，DCS的價格會比許多個別控制器要低。DCS也可以提供有關大型工業流程的監控畫面以及管理機能。在DCS中，各階層的控制器是透過連結，因此可以在控制室集中控制，也可以在各工廠監控及控制。
分散式控制系統可以簡化工廠控制的組態調整（像是级联控制及互鎖），和其他電腦系統（例如生产管理）的介面也比較簡單。分散式控制系統也可以有複雜的警報處理，利用自動事件記錄，減少實體記錄的必要性，也讓控制設備可以用網路相連接，因此控制設備可以靠近要控制的機器，減少接線。
分散式控制系統一般會用客製化的處理器當作控制器，通訊可能會用專用的通訊協定，也可能會用工業界常用的通訊協定。系統的週邊則會由輸入模組及輸出模組所組成。
處理器接收輸入模組的資訊，處理後，決定控制動作，並透過輸出模組來產生對應的輸出。輸入模組會接收感測器量測製程或是現場的資訊，輸出模組會則會將輸出送到終端控制元件（例如）。
現場的輸入訊號或輸出訊號可以是模擬信號（例如電流環），也可以是雙值表示「開」或「關」的信號（例如繼電器接點或是半導體開關）。
分散式控制系統支援的通訊協定一般包括基金會總線、Profibus、、Modbus以及其他的數位通訊協定，其中不但包括輸入及輸出信號，也可以有像是故障診斷及狀態信號之類的資訊。
資料採集與監控系統簡稱是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系統的進步，也讓這兩種系統的邊界更加模糊，在定義上也開始變化。