PLC實(shí)訓(xùn)臺可編程控制器的概述
可編程序控制器,英文稱Programmable Logical Controller,簡稱PLC。它是一個以微處理器為核心的數(shù)字運(yùn)算操作的電子系統(tǒng)裝置,專為在工業(yè)現(xiàn)場應(yīng)用而設(shè)計,它采用可編程序的存儲器,用以在其內(nèi)部存儲執(zhí)行邏輯運(yùn)算、順序控制、定時/計數(shù)和算術(shù)運(yùn)算等操作指令,并通過數(shù)字式或模擬式的輸入、輸出接口,控制各種類型的機(jī)械或生產(chǎn)過程。PLC是微機(jī)技術(shù)與傳統(tǒng)的繼電接觸控制技術(shù)相結(jié)合的產(chǎn)物,它克服了繼電接觸控制系統(tǒng)中的機(jī)械觸點(diǎn)的復(fù)雜接線、可靠性低、功耗高、通用性和靈活性差的缺點(diǎn),充分利用了微處理器的優(yōu)點(diǎn),又照顧到現(xiàn)場電氣操作維修人員的技能與習(xí)慣,特別是PLC的程序編制,不需要專門的計算機(jī)編程語言知識,而是采用了一套以繼電器梯形圖為基礎(chǔ)的簡單指令形式,使用戶程序編制形象、直觀、方便易學(xué);調(diào)試與查錯也都很方便。用戶在購到所需的PLC后,只需按說明書的提示,做少量的接線和簡易的用戶程序的編制工作,就可靈活方便地將PLC應(yīng)用于生產(chǎn)實(shí)踐。
一、可編程控制器的基本結(jié)構(gòu)
可編程控制器主要由CPU模塊、輸入模塊、輸出模塊和編程器組成(如下圖所示)。
1、CPU模塊
CPU模塊又叫中央處理單元或控制器,它主要由微處理器(CPU)和存儲器組成。它用以運(yùn)行用戶程序、監(jiān)控輸入/輸出接口狀態(tài)、作出邏輯判斷和進(jìn)行數(shù)據(jù)處理,即讀取輸入變量、完成用戶指令規(guī)定的各種操作,將結(jié)果送到輸出端,并響應(yīng)外部設(shè)備(如編程器、電腦、打印機(jī)等)的請求以及進(jìn)行各種內(nèi)部判斷等。PLC的內(nèi)部存儲器有兩類,一類是系統(tǒng)程序存儲器,主要存放系統(tǒng)管理和監(jiān)控程序及對用戶程序作編譯處理的程序,系統(tǒng)程序已由廠家固定,用戶不能更改;另一類是用戶程序及數(shù)據(jù)存儲器,主要存放用戶編制的應(yīng)用程序及各種暫存數(shù)據(jù)和中間結(jié)果。
2、I/O模塊
I/O模塊是系統(tǒng)的眼、耳、手、腳,是聯(lián)系外部現(xiàn)場和CPU模塊的橋梁。輸入模塊用來接收和采集輸入信號。輸入信號有兩類:一類是從按鈕、選擇開關(guān)、數(shù)字撥碼開關(guān)、限位開關(guān)、接近開關(guān)、光電開關(guān)、壓力繼電器等來的開關(guān)量輸入信號;另一類是由電位器、熱電偶、測速發(fā)電機(jī)、各種變送器提供的連續(xù)變化的模擬輸入信號。
可編程序控制器通過輸出模塊控制接觸器、電磁閥、電磁鐵、調(diào)節(jié)閥、調(diào)速裝置等執(zhí)行器,可編程序控制器控制的另一類外部負(fù)載是指示燈、數(shù)字顯示裝置和報警裝置等。
3、電源
可編程序控制器一般使用220V交流電源。可編程序控制器內(nèi)部的直流穩(wěn)壓電源為各模塊內(nèi)的元件提供直流電壓。
4、編程器
編程器是PLC的外部編程設(shè)備,用戶可通過編程器輸入、檢查、修改、調(diào)試程序或監(jiān)示PLC的工作情況。也可以通過專用的編程電纜線將PLC與電腦聯(lián)接起來,并利用編程軟件進(jìn)行電腦編程和監(jiān)控。
5、輸入/輸出擴(kuò)展單元
I/O擴(kuò)展接口用于將擴(kuò)充外部輸入/輸出端子數(shù)的擴(kuò)展單元與基本單元(即主機(jī))連接在一起。
6、外部設(shè)備接口
此接口可將編程器、打印機(jī)、條碼掃描儀,變頻器等外部設(shè)備與主機(jī)相聯(lián),以完成相應(yīng)的操作。
本實(shí)驗(yàn)裝置(箱)選用的主機(jī)型號為歐姆龍CP-1H系列的主機(jī)。
二、可編程控制器的工作原理
可編程控制器有兩種基本的工作狀態(tài),即運(yùn)行(RUN)狀態(tài)與停止(STOP)狀態(tài)。在運(yùn)行狀態(tài),可編程序控制器通過執(zhí)行反映控制要求的用戶程序來實(shí)現(xiàn)控制功能。為了使可編程序控制器的 輸出及時地響應(yīng)隨時可能變化的輸入信號,用戶程序不是只執(zhí)行一次,而是反復(fù)不斷地重復(fù)執(zhí)行,直至可編程序控制器停機(jī)或切換到STOP工作狀態(tài)。
除了執(zhí)行用戶程序之外,在每次循環(huán)過程中,可編程序控制器還要完成內(nèi)部處理、通信處理等工作,一次循環(huán)可分為5個階段(如圖所示)
在內(nèi)部處理階段,可編程序控制器檢查CPU,模塊內(nèi)部的硬件是否正常,將監(jiān)控定時器復(fù)位,以及完成一些別的內(nèi)部工作。在通信服務(wù)階段,可編程序控制器與別的帶微處理器的智能裝置通信,響應(yīng)編程器鍵入的命令,更新編程器的顯示內(nèi)容。
在輸入處理階段,可編程序控制器把所有外部輸入電路的接通/斷開(ON/OFF)狀態(tài)讀入輸入映像寄存器。
在程序執(zhí)行階段,即使外部輸入信號的狀態(tài)發(fā)生了變化,輸入映像寄
存器的狀態(tài)也不會隨之而變,輸入信號變化了的狀態(tài)只能在下一個掃描周
期的輸入處理階段被讀入。
在輸出處理階段,CPU將輸出映像寄存器的通/斷狀態(tài)傳送到輸出鎖存器。
三、可編程控制器的內(nèi)存區(qū)域的分布及I/O配置
CP1H可使用下列內(nèi)存區(qū)表
數(shù)據(jù)區(qū) | 字 | 位 | 功能 | |||
IR區(qū)1 |
輸入?yún)^(qū) |
IR 000-IR 009 (10個字) |
IR 00000-IR 00915 (160位) |
這些位可以分配給外部I/O端。 |
||
輸出區(qū) |
IR 100-IR 019 (10個字) |
IR 0100-IR 0915(160位) | ||||
工作區(qū) |
IR 020-IR 049 IR 200-IR 227 (58個字) |
IR 02000-IR 04915 IR 20000-IR 22715(928位) |
在程序中可隨意使用工作位。 | |||
SR區(qū) |
SR 228-SR 255 (28字) |
SR 22800-SR 25515(448位) | 這些位用于特定功能,如標(biāo)志和控制位。 | |||
TR區(qū) | —— |
TR 0-TR 7 (8位) |
這些位用于保存程序分支中的ON/OFF狀態(tài)。 | |||
HR區(qū)2 |
HR 00-HR 19 (20個字) |
HR 0000-HR 1915 (320位) |
這些位用于保存數(shù)據(jù),并在電源關(guān)閉后保持ON/OFF狀態(tài)不變。 | |||
AR區(qū)2 |
AR 00-AR 23 (24個字) |
AR 0000-AR 2315 (384位) |
這些位用于特定功能,如標(biāo)志和控制位。 | |||
LR區(qū)1 |
LR 00-LR 15 (16個字) |
LR 0000-LR 1515 (256位) |
用于與其他PC進(jìn)行1:1數(shù)據(jù)鏈接。 | |||
定時器/計數(shù)器區(qū)2 | TC 000-TC 255(定時器/計數(shù)器標(biāo)號)3 | 同一標(biāo)號既可用于定時器,也可用于計數(shù)器。 | ||||
DM區(qū) DM區(qū) |
讀/寫2 |
DM 0000-DM 1999 DM 2022-DM 2047 (2,026個字) |
—— | DM區(qū)只能以字為單位進(jìn)行訪問。在電源關(guān)閉后,其值保持不變。 | ||
錯誤日志2 |
DM 2000-DM 2021 (22個字) |
—— | 用于保存所發(fā)生錯誤的錯誤代碼。當(dāng)不使用錯誤日志功能時,可當(dāng)作普通讀/寫DM區(qū)使用權(quán)用。 | |||
只讀4 |
DM 6144-DM 6599 (456個字) |
—— | 不可在程序中重新寫入。 | |||
PC設(shè)置4 |
DM 6600-DM 6655 (56個字) |
—— | 用于保存控制PC運(yùn)行的各種參數(shù)。 | |||
CP1HX型
型號 | 規(guī)格 | ||
電源 | 輸出 | 輸入 | |
CP1H-X40DR-A | AC100~250V | 繼電器輸出16點(diǎn) | DC24V 24點(diǎn) |
CP1H-X40T1-D | DC24V | 晶體管輸出漏型 16點(diǎn) | DC24V 24點(diǎn) |
CP1H-X40DT1-D | 晶體管輸出源型 16點(diǎn) |
CP1HXA型
型號 | 規(guī)格 | ||
電源 | 輸出 | 輸入 | |
CP1H-XA40DR-A | AC100~250V | 繼電器輸出16點(diǎn) | DC24V 24點(diǎn) |
CP1H-XA40T1-D CP1H-XA40DT1-D |
DC24V | 晶體管輸出漏型 16點(diǎn) | DC24V 24點(diǎn) |
晶體管輸出源型 16點(diǎn) | |||
CP1H-Y20DT-D | DC24V | 晶體管輸出漏型8點(diǎn) | DC24V 12點(diǎn) |
四、可編程控制器的編程語言概述
現(xiàn)代的可編程控制器一般備有多種編程語言,供用戶使用。IEC1131-3—可編程序控制器編程語言的國際標(biāo)準(zhǔn)詳細(xì)的說明了下述可編程控制器編程語言:
順序功能圖
梯形圖
功能塊圖
指令表
結(jié)構(gòu)文本
其中梯形圖是使用得最多的可編程控制器圖形編程語言。梯形圖與繼電器控制系統(tǒng)的電路圖很相似,具有直觀易懂的優(yōu)點(diǎn),很容易被工廠熟悉繼電器控制的電氣人員掌握,特別適用于開關(guān)量邏輯控制。
梯形圖的主要特點(diǎn):
1)可編程控制器梯形圖中的某些編程元件沿用了繼電器這一名稱,如輸入繼電器、輸出繼電器、內(nèi)部輔助繼電器等,但是它們不是真實(shí)的物理繼電器(即硬件繼電器),而是在軟件中使用的編程元件。每一編程元件與可編程序控制器存儲器中元件映像寄存器的一個存儲單元相對應(yīng)。
2)梯形圖兩側(cè)的垂直公共線稱為公共母線(BUS bar)。在分析梯形圖的邏輯關(guān)系時,為了借用繼電器電路的分析方法,可以想象左右兩側(cè)母線之間有一個左正右負(fù)的直流電源電壓,當(dāng)圖中的觸點(diǎn)接通時,有一個假想的“概念電流”或“能流(Power flow)從左到右流動,這一方向與執(zhí)行用戶程序時的邏輯運(yùn)算的順序是一致的。
3)根據(jù)梯形圖中各觸點(diǎn)的狀態(tài)和邏輯關(guān)系,求出與圖中各線圈對應(yīng)的編程元件的狀態(tài),稱為梯形圖的邏輯解算。邏輯解算是按梯形圖中從上到下、從左到右的順序進(jìn)行的。
4)梯形圖中的線圈和其他輸出指令應(yīng)放在最右邊。
5)梯形圖中各編程元件的常開觸點(diǎn)和常閉觸點(diǎn)均可以無限多次地使用。
五、可編程控制器的編程步驟
(1)確定被控系統(tǒng)必須完成的動作及完成這些動作的順序。
(2)分配輸入輸出設(shè)備,即確定哪些外圍設(shè)備是送信號到PLC,哪些是外圍設(shè)備是接收來自PLC信號的。并將PLC的輸入、輸出口與之對應(yīng)進(jìn)行分配。
(3)設(shè)計PLC程序畫出梯形圖。梯形圖體現(xiàn)了按照正確的順序所要求的全部功能及其相互關(guān)系。
(4)實(shí)現(xiàn)用計算機(jī)對PLC的梯形圖直接編程。
(5)對程序進(jìn)行調(diào)試(模擬和現(xiàn)場)。
(6)保存已完成的程序。
顯然,在建立一個PLC控制系統(tǒng)時,必須首先把系統(tǒng)的需要的輸入、輸出數(shù)量確定下來,然后按需要確定各種控制動作的順序和各個控制裝置彼此之間的相互關(guān)系。確定控制上的相互關(guān)系之后,就可進(jìn)行編程的第二步──分配輸入輸出設(shè)備,在分配了PLC的輸入輸出點(diǎn)、內(nèi)部輔助繼電器、定時器、計數(shù)器之后,就可以設(shè)計PLC程序畫出梯形圖。在畫梯形圖時要注意每個從左邊母線開始的邏輯行必須終止于一個繼電器線圈或定時器、計數(shù)器,與實(shí)際的電路圖不一樣。梯形圖畫好后,使用編程軟件直接把梯形圖輸入計算機(jī)并下載到PLC進(jìn)行模擬調(diào)試,修改→下載直至符合控制要求。這便是程序設(shè)計的整個過程。
可編程控制器基本指令簡介
CP1H系列PLC主機(jī)基本指令表
助記符 | 名稱 | 功能 |
LD | 裝載 | 指定位用于指令行的開始或使用權(quán)用AND LD和ORLD指令時定義邏輯塊。 |
AND | 與 | 指定位與執(zhí)行條件進(jìn)行邏輯與運(yùn)算。 |
AND LD | 邏輯塊與 | 前面程序塊進(jìn)行邏輯與運(yùn)算的結(jié)果。 |
AND NOT | 與非 | 指定位的非與執(zhí)行條件進(jìn)行邏輯與運(yùn)算。 |
OR | 或 | 指定位與執(zhí)行條件進(jìn)行邏輯或運(yùn)算。 |
OR NOT | 或非 | 指定位的非與執(zhí)行條件進(jìn)行邏輯或運(yùn)算。 |
OUT | 輸出 |
在執(zhí)行條件為ON時使操作數(shù)位變ON;在執(zhí) 行條件為OFF時使操作數(shù)位變OFF。 |
SET | 置位 | 在執(zhí)行條件為ON時使操作數(shù)位變ON,在執(zhí)行條件為OFF時不影響操作位的狀態(tài)。 |
RSET | 復(fù)位 | 在執(zhí)行條件為ON時使操作位數(shù)變OFF, 在執(zhí)行條件為OFF時不影響操作數(shù)位的狀態(tài)。 |
NOP | 空操作 | 不作任何操作,程序轉(zhuǎn)移到下一個指令。 |
END | 結(jié)束 | 用于程序結(jié)束。 |
JMP | 跳轉(zhuǎn) | 如果跳轉(zhuǎn)條件為OFF,則JMP(04)與JME(05)之間的所有指令均被忽略 |
JME | 跳轉(zhuǎn)結(jié)束 | |
SFT | 移位寄存器 | 生成一個位移位寄存器 |
KEEP | 保持 | 將一個位定義為由置位輸入和復(fù)位輸入控制的鎖存。 |
TIM | 定時器 | ON延遲(減數(shù))定時器操作。 |
CNTR | 可逆計數(shù)器 | 增加或減少輸入信號由OFF變ON時,增加或減小PV值。 |
DIFU | 上升沿微分 | 在輸入信號的上升沿時刻將某個指定位變ON一個循環(huán)周期。 |
DIFD | 下降沿微分 | 在輸入信號的下降沿時刻將某個指定位變ON一個循環(huán)周期。 |
@MOV | 傳送 | 將源數(shù)據(jù)(字或常數(shù))復(fù)制到目標(biāo)字中。 |
@ASL | 算術(shù)左移 | 將單字?jǐn)?shù)據(jù)中的每一位向左進(jìn)行帶CY移位。 |
@ASR | 算術(shù)右移 | 將單字?jǐn)?shù)據(jù)中的每一位向右進(jìn)行帶CY移位。 |
AND LD | 邏輯塊與 | 前面程序塊進(jìn)行邏輯與運(yùn)算的結(jié)果。 |
OR LD | 邏輯塊或 | 前面程序塊進(jìn)行邏輯或運(yùn)算的結(jié)果。 |
NETR NETW |
TABLE,PORT TABLE,PORT |
網(wǎng)絡(luò)讀 網(wǎng)絡(luò)寫 |
SLCR SLCT SLCE |
N N |
順控繼電器段的啟動 順控繼電器段的轉(zhuǎn)換 順控繼電器段的結(jié)束 |