可編程邏輯控制器

可程式化邏輯控制器（programmable logic controller，簡稱PLC），一種具有微處理器的數字電子設備，用於自動化控制的數位邏輯控制器，可以將控制指令隨時載入記憶體內儲存與執行。可程式控制器由內部CPU，指令及資料記憶體、輸入輸出單元、電源模組、數位類比等單元所模組化組合成。PLC可接收（輸入）及發送（輸出）多種型態的電氣或電子訊號，並使用他們來控制或監督幾乎所有種類的機械與電氣系統。

最初的可編程序邏輯控制器只有電路邏輯控制的功能，所以被命名為可程式邏輯控制器，後來隨著不斷的發展，這些當初功能簡單的電腦模塊已經有了包括邏輯控制，時序控制、模擬控制、多機通信等許多的功能，名稱也改為可程式控制器（Programmable Controller），但是由於它的縮寫也是PC，與個人電腦（Personal Computer）的縮寫相同，也因為多年來的使用習慣，人們還是經常使用可程式邏輯控制器這一稱呼，並在術語中仍沿用PLC這一縮寫。

在可程式邏輯控制器出現之前，一般要使用成百上千的繼電器以及計數器才能組成具有相同功能的自動化系統，而現在，經過編程的簡單的可程式邏輯控制器模塊基本上已經代替了這些大型裝置。可程式邏輯控制器的系統程序一般在出廠前已經初始化完畢，使用者可以根據自己的需要自行編輯相應的使用者程序來滿足不同的自動化生產要求。

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

## 定義與特性

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

國際電工委員會（IEC）在其標準中將PLC定義為：

可程式邏輯控制器是一種數字運算操作的電子系統，專為在工業環境應用而設計的。它採用一類可編程的存儲器，用於其內部存儲程序，執行邏輯運算、順序控制、定時、計數與算術操作等面向使用者的指令，並通過數字或模擬式輸入/輸出控制各種類型的機械或生產過程。可程式邏輯控制器及其有關外部設備，都按易於與工業控制系統聯成一個整體，易於擴充其功能的原則設計。

美國通用汽車公司在1968年提出了著名的「通用十條」招標指標，也是目前PLC的特點：

- 編程方便，現場可修改程序。
- 維修方便，採用模塊化結構。
- 可靠性高於繼電器控制裝置。
- 體積小於繼電器控制裝置。
- 數據可直接送入電腦。
- 成本可與繼電器控制裝置競爭。
- 輸入可以是交流115V。
- 輸出為交流115V，2A以上，能直接驅動電磁閥，接觸器等。
- 在擴展時，原系統只要很小變更。
- 使用者程序存儲器容量能擴展。

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主要是提供了五種程式語言，包含：

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

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

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

- 順序功能流程圖（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。

應用例：

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

## 參考文獻

### 來源

書籍

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