可編程序控制器

**可程式化邏輯控制器**（programmable logic controller，簡稱 **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 執行階梯圖程式的運作方式是逐行的先將程式碼以掃瞄方式讀入 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 的編程程式語言與一般電腦程式語言相比，具有明顯的特點，它既不同於高階語言，也不同與一般的組合語言，它既要滿足易於編寫，又要滿足易於除錯的要求。目前，還沒有一種對各廠家產品都能相容的程式語言。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 語言類似於程式語言的特性，因此可利用與微電腦及個人電腦相同的程式設計技術進行階梯式語言所難以執行的複雜計算，完成程式的建立。

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）。

## 應用實例

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

應用例：

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

## 參考文獻

### 參照

### 來源

## 外部連結

* 自動化在線
* 工控 365
* PLC 技術網 （頁面存檔備份，存於網際網路檔案館）
* （中文）央視 - 無人工廠來了 （頁面存檔備份，存於網際網路檔案館）

## 參見

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