底板上由左至右分别是：电源模块PS407 4A，处理器模块416-3，接口模块IM 460-0和通讯处理器模块CP 443-1
**可程式化邏輯控制器**（，简称**PLC**），一种具有微处理器的数字电子设备，用于自动化控制的數位邏輯控制器，可以將控制指令隨時載入記憶體內儲存與執行。可程式控制器由內部CPU，指令及資料記憶體、輸入輸出單元、電源模組、數位類比等單元所模組化組合成。PLC可接收（輸入）及發送（輸出）多種型態的電氣或電子訊號，並使用他們來控制或監督幾乎所有種類的機械與電氣系統。

最初的可编程序逻辑控制器只有電路逻辑控制的功能，所以被命名为可程式邏輯控制器，后来随着不断的发展，这些当初功能简单的计算机模块已经有了包括逻辑控制，时序控制、模拟控制、多机通信等许多的功能，名称也改为可程式控制器（Programmable Controller），但是由于它的縮写也是PC，与个人电脑（Personal Computer）的縮写相同，也因為多年来的使用习惯，人们还是经常使用可程式邏輯控制器这一称呼，并在术语中仍沿用**PLC**这一缩写。

在可程式邏輯控制器出现之前，一般要使用成百上千的继电器以及計數器才能组成具有相同功能的自动化系统，而现在，经过编程的简单的可程式邏輯控制器模块基本上已经代替了这些大型装置。可程式邏輯控制器的系统程序一般在出厂前已经初始化完毕，用户可以根据自己的需要自行编辑相应的用户程序来满足不同的自动化生产要求。

現在工業上使用可程式邏輯控制器已經相當接近於一台輕巧型電腦所構成，甚至已經出現整合個人電腦（採用嵌入式作業系統）與PLC結合架構的可程式自動化控制器（Programmable Automation Controller，簡稱PAC），能透過數位或類比輸入/輸出模組控制機器設備、製造處理流程及其他控制模組的電子系統。可程式邏輯控制器广泛应用于目前的工业控制领域。在工業控制領域中，PLC控制技術的應用已成為工業界不可或缺的一員。

定義與特性
-----

PLC具有通用性強、使用方便、適應面廣、可靠性高、抗干擾能力強、編程簡單等特點。

国际电工委员会（IEC）在其标准中将PLC定义为：

|  |  |  |
| --- | --- | --- |
|  | 可程式邏輯控制器是一種数字運算操作的电子系统，专为在工业环境应用而设计的。它采用一类可编程的存储器，用于其内部存储程序，执行逻辑运算、顺序控制、定时、计数与算术操作等面向用户的指令，并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。可程式邏輯控制器及其有关外部设备，都按易于与工业控制系统联成一个整体，易于扩充其功能的原则设计。 |  |

美国通用汽车公司在1968年提出了著名的"通用十条"招标指标，也是目前PLC的特點：

1. 编程方便，现场可修改程序；
2. 维修方便，采用模块化结构；
3. 可靠性高于继电器控制装置；
4. 体积小于继电器控制装置；
5. 数据可直接送入计算机；
6. 成本可与继电器控制装置竞争；
7. 输入可以是交流115V；
8. 输出为交流115V，2A以上，能直接驱动电磁阀，接触器等；
9. 在扩展时，原系统只要很小变更；
10. 用户程序存储器容量能扩展。

1978年美國電機製造協會（英语：）（NEMA）對可程式控制器定義是：

> 可程式控制器是一種以數位動作之電子裝置，它使用可程式記憶體以儲存指令，執行像是邏輯、順序、計時、計數與演算等功能，並透過數位或類比輸入輸出模組，控制各種的機械或工作程序。
> 
>

發展历史
----

常見的可程式邏輯控制器外觀
**可程式控制器**的興起與美國現代工業自動化生產發展的要求密不可分的。PLC源起於1960年代，當時美国通用汽车公司，為解決工廠生產線調整時，繼電器順序控制系統之電路修改耗時，平時檢修與維護不易等問題。在可程式邏輯控制器出现之前，汽车制造业中的一般控制、顺序控制以及安全互锁逻辑控制必须完全依靠众多的继电器、定时器以及专门的閉迴路控制器来实现。它们体积庞大、有着严重的噪音，不但每年的维护工作要耗费大量的人力物力，而且继电器-接触器系统的排线检修等工作对维护人员的熟练度也有着很高的要求。

针对这些问题，美国通用汽车公司在1968年向社会公开招标，要求设计一种新的系统来替换继电器系统，并提出了著名的"通用十条"招标指标。随后，美国数字设备公司（DEC）根据这一设想，于1969年研制成功了第一台PDP-14控制器，并在汽车自动装配线上使用并获得成功。由于当时系统主要用于顺序控制、只能进行逻辑运算，所以被命名为**可程式邏輯控制器**（Programmable Logic Controller，PLC）。最早期的PLC只具有簡易之邏輯開/關（on/off）功能，但比起傳統繼電器之控制方式，已具有容易修改、安裝、診斷與不佔空間等優點。

1970年代初期，PLC引進微處理機技術，使得PLC具有算術運算功能與多位元之數位信號輸出/輸入功能，並且能直接以階梯圖符號進行程式之編寫。这项新技术的使用，在工业界产生了巨大的反响。日本在1971年从美国引进了这项技术，并很快研制成功了自己的DCS-8可程式邏輯控制器，德、法在1973年至1974年间也相继有了自己的该项技术。中国则于1977年研制成功自己的第一台可程式邏輯控制器，但是使用的微处理器核心为MC14500。1970年代中期，PLC功能加入遠距通訊、類比輸出輸入、NC 伺服控制等技術。1980年代以後更引進PLC高速通訊網路功能，同時加入一些特殊輸出/輸入界面、人機界面、高功能函數指令、資料收集與分析能力等功能。

PLC之功能早已不止當初數位邏輯之運算功能，因此近年來PLC常以**可程式控制器**（*Programmable Controller*）簡稱之。

PLC內部運作方式
---------

PLC內部運作架構
雖然PLC所使用之階梯圖程式中往往使用到許多繼電器、計時器與計數器等名稱，但PLC內部並非實體上具有這些硬體，而是以記憶體與程式編程方式做邏輯控制編輯，並藉由輸出元件連接外部機械裝置做實體控制。因此能大大減少控制器所需之硬體空間。實際上PLC執行階梯圖程式的運作方式是逐行的先將程式碼以掃瞄方式讀入CPU中並最後執行控制運作。在整個的掃瞄過程包括三大步驟，「輸入狀態檢查」、「程式執行」、「輸出狀態更新」說明如下：

* 步驟一「輸入狀態檢查」：

PLC首先檢查輸入端元件所連接之各點開關或感測器狀態（1或0代表開或關），並將其狀態寫入記憶體中對應之位置Xn。

* 步驟二「程式執行」：

將階梯圖程式逐行取入CPU中運算，若程式執行中需要輸入接點狀態，CPU直接自記憶體中查詢取出。輸出線圈之運算結果則存入記憶體中對應之位置，暫不反應至輸出端Yn。

* 步驟三「輸出狀態更新」：

將步驟二中之輸出狀態更新至PLC輸出部接點，並且重回步驟一。

此三步驟稱為PLC之掃描周期，而完成所需的時間稱為PLC之反應時間，PLC輸入訊號之時間若小於此反應時間，則有誤讀的可能性。每次程式執行後與下一次程式執行前，輸出與輸入狀態會被更新一次，因此稱此種運作方式為輸出輸入端「程式結束再生」。

硬體結構
----

可程式邏輯控制器硬體構成
一般講，PLC分為箱體式和模組式兩種。但它們的組成是相同的，對箱體式PLC，有一塊CPU板、I/O板、顯示面板、記憶體塊、電源等，當然按CPU性能分成若干型號，並按I/O點數又有若干規格。對模組式PLC，有CPU模組、I/O模組、記憶體、電源模組、底板或機架。無论哪種結構類型的PLC，都屬於匯流排式開放型結構，其I/O能力可按用戶需要進行擴展與組合。PLC的基本結構框圖如下：

### 電源模組

有些PLC中的電源，是與CPU模組合二為一的，有些是分開的，其主要用途是為PLC各模組的積體電路提供工作電源。同時，有的還為輸入電路提供24V的工作電源。電源如果為交流電源通常為220VAC或110VAC，若為直流電源常用的為24V。

### 中央處理單元

PLC中的CPU是PLC的核心，它按PLC的系統程式賦予的功能接收並存貯用戶程式和資料，用掃描的方式採集由現場輸入裝置送來的狀態或資料，並存入規劃的暫存器中，同時，診斷電源和PLC內部電路的工作狀態和編程過程中的語法錯誤等。進入運行後，從用戶程式存貯器中逐條讀取指令，經分析後再按指令規定的任務產生相應的控制信號，去指揮有關的控制電路，與個人電腦一樣，主要由運算器、控制器、寄存器及實現它們之間聯繫的資料、控制及狀態匯流排構成，還有週邊晶片、匯流排界面及有關電路。它確定了進行控制的規模、工作速度、記憶體容量等。

### 記憶體

記憶體主要用於存儲程式及資料，是PLC不可缺少的組成單元。PLC內部會存放撰寫完成編輯的程式指令及資料，通常也可使用RAM或EEPROM等專用記憶體卡片方式擴充，但擴充能力得依各廠牌與型號有所不同。

### 輸入/輸出單元

PLC的對外功能，主要是通過各種輸入/輸出模組與外界聯繫的，按I/O點數確定模組規格及數量，I/O模組可多可少，但其最大數受CPU所能管理的基本配置的能力，即受最大的底板或機架槽數限制。I/O模組集成了PLC的I/O電路，其輸入暫存器反映輸入信號狀態，輸出點反映輸出鎖存器狀態。

輸入單元是用來連結擷取輸入元件的信號動作並透過內部匯流排將資料送進記憶體由CPU處理驅動程式指令部分。PLC輸入模組PLC系統的架構和輸入模組產品的選擇端視需要被監測的輸入訊號位準而定。 

來自不同類型被監測的感測器與流程控制之變量訊號，可以涵蓋從±10mV至±10V的輸入訊號範圍。 

輸出單元是用來驅動外部負載的介面，主要原理是由CPU處理以書寫在PLC裡的程式指令，判斷驅動輸出單元在進而控制外部負載，如指示燈、電磁接觸器、繼電器、氣（油）壓閥等。

PLC輸出模組在工業環境中用來控制制動器、氣閥及馬達等的PLC系統類比輸出範圍包括±5V、±10V、0V到5V、0V到10V、4到20mA、或0到20mA等。

### 通訊

現在PLC大多具有可擴充通信網路模組的功能，簡單的PLC以BUS纜線或RS-232方式通訊連結，較高階的PLC會採用USB或乙太網路方式做通訊連結。它使PLC與PLC之間、PLC與個人電腦以及其他智慧設備之間能夠交換資訊，形成一個統一的整體，實現分散集中控制。現在幾乎所有的PLC新產品都有通信網路功能，它和電腦一樣具有RS-232介面，通過雙絞線、同軸電纜或光纜，可以在幾公里甚至幾十公里的範圍內交換資訊。當然，PLC之間的通訊網絡是各廠家專用的，PLC與電腦之間的通訊，一些生產廠家採用工業標準匯流排，並向標準通訊協定靠近，這將使不同機型的PLC之間、PLC與電腦之間可以方便地進行通訊與網路。

PLC通訊協定規格可分為RS-232、RS-422、RS-432、RS-485、IEEE 1394、IEEE-488（GPIB），其中RS-432最為少見。目前國際中最常用的通信協定為MODBUS-ASCII模式及MODBUS-RTU模式，此為Modicon公司所制定的通訊協定。PROFIBUS則為西門子公司所制定。日本三菱電機則推出CC-LINK通信協定。

外部設備
----

外部設備是PLC系統不可分割的一部分，它有四大類

* 編程設備：有簡易編程器和智慧圖形編程器，用於編程、對系統作一些設定、監控PLC及PLC所控制的系統的工作狀況。編程器是PLC開發應用、監測運行、檢查維護不可缺少的器件，但它不直接參與現場控制運行。
* 監控設備：資料監視器和圖形監視器。直接監視資料或通過畫面監視資料。
* 存儲設備：有存儲卡、存儲磁帶、軟碟或唯讀記憶體，用於永久性地存儲用戶資料，使用戶程式不丟失，如EPROM、EEPROM寫入器等。
* 輸入輸出設備：用於接收信號或輸出信號，一般有條碼讀入器，輸入模擬量的電位器，印表機等。

程式設計
----

PLC程式設計示意圖
PLC的編程程式語言與一般電腦程式語言相比，具有明顯的特點，它既不同於高階語言，也不同與一般的組合語言，它既要滿足易於編寫，又要滿足易於調試的要求。目前，還沒有一種對各廠家產品都能相容的編程語言。IEC 61131-3是一個國際標準，它規範了PLC相關之軟體硬體的標準，其最終的目的是可以讓PLC的使用者在不更改軟體設計的狀況下可以輕易更換PLC硬體。IEC 61131-3主要是提供了五種程式語言，包含：

1. **指令表**（Instruction List，IL或Statement List，SL） ：類似組合語言的描述文字。由指令語句系列構成，如Mitsubishi FX2的控制指令LD、LDI、AND、ANI、OR、ORI、ANB、ORB、MMP、MMS與OUT等，一般配合書寫器寫入程式，而書寫器只能輸入簡單的指令，與電腦程式中的階梯圖比較起來簡單許多。書寫器不太直觀，可讀性差，特別是遇到較複雜的程式，更難讀；但其優點就是不需要電腦就可以更改或察看PLC內部程式。使用書寫器時，必須注意的是PLC指令中輸出有優先次序，其中若有輸出至相同的單元時（如Y000），輸出的優先次序以位址越大優先次愈越高，一般不容易從書寫器中察覺所輸入的單元。

2. **結構式文件編程語言**（Structured Text，ST）：類似PASCAL與C語言的語法，適合撰寫較複雜的演算法，除錯上也比階梯圖要容易得多。ST語言類似於程式語言的特性，因此可利用與微電腦及個人電腦相同的程式設計技術進行階梯式語言所難以執行的複雜計算，完成程式的建立。 

自保持迴路的階梯圖，當開關ON觸動後，電燈即自我保持在輸出，直到開關OFF觸動才會切斷
3. **階梯圖**（Ladder Programming，LAD）：類似於傳統上以繼電器控制接觸器的階梯圖，梯形圖是通過連線把PLC指令的梯形圖符號連接在一起的連通圖，用以表達所使用的PLC指令及其前後順序，它與電氣原理圖很相似。  
它的連線有兩種：一為母線，另一為內部橫豎線。內部橫豎線把一個個梯形圖符號指令連成一個指令組，這個指令組一般總是從裝載（LD）指令開始，必要時再繼以若干個輸入指令（含LD指令），以建立邏輯條件。最後為輸出類指令，實現輸出控制，或為資料控制、流程控制、通訊處理、監控工作等指令，以進行相應的工作。

4. **順序功能流程圖**（Sequential Function Chart，SFC）：類似於流程設計（Flow Design），流程圖中的步驟組合而完成，主要是規劃動作順序的流程圖，故謂之順序功能流程圖。所謂步序式控制，即是一步一步控制，而這一步與上一步是有關連性的，有順序性的。必須有上一個動作（STL），才會啟動（SET）下一個動作（STL）。

5.**功能區塊圖**（Function Block Diagram，FBD）：以畫電路圖的方式來寫PLC程式。常用的程式及迴路可透過FB（功能區塊）的建立輕易地重複利用。

其他一些高檔的PLC還具有與電腦相容的C語言、BASIC語言、專用的高階語言（如西門子公司的GRAPH5、三菱公司的MELSAP、富士電機的Micrex-SX系列），還有用布林邏輯語言、通用電腦相容的組合語言等。

### 內部元件

PLC在程式設計過程中，會利用到內部記憶體，規劃許多順序控制程式上常會使用到的元件，這些元件包括：輸入繼電器、輸出繼電器、補助繼電器、計數器、計時器、資料暫存器等主要元件，各元件功能與使用方法，說明如下：

* 輸入接點與輸出接點：用於PLC與外部元件之間的狀態傳送。可連接外部器件，及按鈕開關、選擇開關、光電開關、數字開關等，使用過大電流將會造成內部接點元件損壞。
* 輔助繼電器：用來取代傳統順序控制中的繼電器。傳統繼電器包括接點與線圈二部份，但實際上PLC是以內部記憶體來記憶補助繼電器之狀態，若線圈被驅動則將**1**寫入，否則將**0**寫入。
* 計數器：在程式中被用來計算重覆動作的次數。
* 計時器：用來計算動作的時間長短。
* 資料暫存器：用來儲存字元組之數值或字元資料（Data）。

應用實例
----

三菱公司的Q系列大型PLC，以模組化設計來擴充功能
由於具有使用容易，節省配線人力，設計彈性等優點，已廣泛的應用於各種控制系統中，在工廠自動化控制中擔任核心控制任務。目前市面上之PLC種類繁多，依照製造廠商及適用場所的不同而有所差異，但是每種廠牌可依機組複雜度分為大、中、小型;而一般工廠及學校通常使用小型PLC，在工業用途通常使用大型PLC。

應用例：

* 半導體晶圓廠的各種自動化設備
* 大樓電梯
* 停車場機械設備
* 自動化生產線
* 中央空調

參考文獻
----

### 引用

1. ↑  陳雙源.. 東華書局. 1999-12-01: 12-1. ISBN 978957483020 6.
2. ↑ .  [2005-10-29]. （原始内容存档于2019-12-06）.

### 来源

书籍
* 雙象貿易.. 台北: 文笙書局. 1994 （中文（臺灣））.
* 永宏電機 編著。2000。《永宏可程式控制使用手冊I-硬體篇與基礎篇》。永宏電機。台北。（繁體中文）
* 永宏電機 編著。2000。《永宏可程式控制器使用手冊II-進階篇》。永宏電機。台北。（繁體中文）
* 吳炳煌、黃仁清 編著。1998。《FX2可程式控制原理與實習》。高立圖書。台北。（繁體中文）
* 廖文煇 編著。2001。《可程式控制器應用基礎篇》。全華科技圖書。（繁體中文）
* 李新濤 著。2001。《可程式控制器設計與應用》。滄海書局。（繁體中文）
* 陳煥榮 編著。1999。《可程式控制器與實習》。全華科技圖書。（繁體中文）
* 彭錦銅 編著。2001。《可程式控制實習》。台科大。（繁體中文）
* 國立台灣大學生物產業機電工程學系 編印。《農業自動化叢書第十二輯機電整合》（繁體中文）
* 宓哲民、王文義、陳文耀、陳文軒 等 編著。2017。《PLC原理與應用實務（第八版）》。全華科技圖書。台北。（繁體中文）

外部連結
----

* 自動化在線
* 工控365
* PLC技术网 （页面存档备份，存于）
* （中文）央視-無人工廠來了 （页面存档备份，存于）

參見
--

* icon计算机程序设计主题
* icon电子学主题
* icon工程主题

* 可程式自動化控制器
* 工業電腦
* PLC放大板
* 软PLC控制技术


|  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 

| * 
* 论
* 编
单片机 |
| --- |
|  |
| 總論 | 
* 单片机
* 特殊功能暫存器（英语：）

 |
|  |
| 架構 | 
* 8051
* ARM
* MIPS
* AVR
* PIC
* C166（英语：）
* TriCore（英语：）
* FR-V（英语：）
* MC6800
* RISC-V

 |
|  |
| 家族系列 | 

|  |  |
| --- | --- |
| 4位元 | 
* TLCS-47（英语：）

 |
|  |
| 8位元 | 
* AVR
* PIC（8-bit）
* COP8
* MCS-48（英语：）
* 英特爾MCS-51
* Z8（英语：）
* eZ80（英语：）
* 飛思卡爾68HC08（英语：）
* 飛思卡爾68HC11（英语：）
* H8
* PSoC
* 東芝TLCS（英语：）
* XC800系列（英语：）

 |
|  |
| 16位元 | 
* C166
* CR16/CR16C
* H8S
* MSP430
* PIC（16位元）
* R8C
* 東芝TLCS-900
* XC 2000
* XE166

 |
|  |
| 32位元 | 
* Am29000
* CRX
* 富士通FR
* FR-V
* H8SX
* MPC5xx
* PIC（32位元）
* TLCS-900
* TriCore
* 英飛凌XMC4000
* 英飛凌AURIX
* V850
* 應用級ARM核心列表（STM32）

 |

 |
|  |
| 界面 | 

|  |  |
| --- | --- |
| 編程 | 
* 電路線上串列燒錄編程（ICSP）
* 在線燒錄（ISP）
* 程式和除錯界面（PDI）
* 高電壓串列編程燒錄（HVSP）
* 高電壓並列編程燒錄（HVPP）
* Bootloader
* ROM
* aWire

 |
|  |
| 除錯 | 
* debugWIRE
* Joint Test Action Group（JTAG）
* In-circuit debugging（ICD）
* In-circuit emulator（ICE）
* In-target probe（ITP）

 |

 |
|  |
| 模擬器 | 
* gpsim

 |
|  |
| 列表 | 
* Common microcontrollers
* By manufacturer
	+ Freescale
	+ Intel

 |
|  |
| 參見 | 
* 嵌入式系統
* 可程式邏輯控制器

 |

 |