? PLC的工作原理 表1 LEM PLC的6種指令
前面幾節(jié)把可編程控制器硬件體系中的最基本部件做了介紹。本節(jié)用一個(gè)最簡(jiǎn)單的PLC來(lái)說(shuō)明其工作原理。設(shè)有一臺(tái)PLC(型號(hào)為L(zhǎng)EM),它有6種基本指令,指令見(jiàn)表1。
圖1給出了指令格式,每一條指令由13位組成。
圖1 LEM PLC的指令格式
從圖1指令格式中可以看出指令的地址場(chǎng)包含9位2進(jìn)制數(shù),允許尋址29 = 512位。在LEM-PLC中設(shè)置128位輸入變量Ui和128位輸出變量Yj,剩下256位保留作為中間變量Xk。因此LEM的數(shù)據(jù)存儲(chǔ)器(便箋式存儲(chǔ)器)具有512位,以8進(jìn)制表示時(shí),地址為0(O)至777(O)。圖2表示了LEM的數(shù)據(jù)存儲(chǔ)器組態(tài)。
圖2 LEM的數(shù)據(jù)存儲(chǔ)器組態(tài)
LEM的中央處理器包含一個(gè)程序計(jì)數(shù)器(P)或稱指令指針(10位寄存器),一個(gè)13位指令寄存器(I)和一個(gè)邏輯累加器(A),最后還有一個(gè)4位后進(jìn)先出的堆棧LIFO。圖3表示執(zhí)行指令的過(guò)程。指令指針執(zhí)行完當(dāng)前指令后把指針數(shù)加1,指向下一條將執(zhí)行的指令。現(xiàn)在指令指針中的內(nèi)容為1000(O)(2進(jìn)制碼為001 000 000 000),在程序存儲(chǔ)器(用戶存儲(chǔ)區(qū))中。地址為1000(O)單元處放置有指令I(lǐng)FU3,中央處理器將這條指令取入指令寄存器(I),這時(shí)(I)寄存器的內(nèi)容為:
圖3 LEM PLC執(zhí)行指令的過(guò)程
其地址場(chǎng)的內(nèi)容為000 000 011轉(zhuǎn)入地址寄存器(S),并取數(shù)據(jù)存儲(chǔ)器第3單元(輸入變量U3)的內(nèi)容送至累加器(A)。這一過(guò)程是中央處理器根據(jù)指令中的操作碼0001,經(jīng)譯碼器譯碼后在時(shí)鐘的控制下進(jìn)行的。以上僅僅是執(zhí)行一條指令的過(guò)程。
下面說(shuō)明PLC怎樣使用LIFO堆棧來(lái)完成一個(gè)梯形圖的梯節(jié)或一個(gè)布爾代數(shù)方程的表達(dá)式:
用梯形圖來(lái)表示上述邏輯方程的梯節(jié)如圖4所示:
圖4 用梯形圖表示的例子
將上述邏輯方程或梯節(jié)寫成LEM PLC能執(zhí)行的程序,其程序表見(jiàn)表2。 表2 LEM PLC內(nèi)的用戶程序表(執(zhí)行本例子的程序表)
表2中的指令助記符在程序存儲(chǔ)器中的編碼見(jiàn)表3。
在表4中列出了程序執(zhí)行過(guò)程中,累加器A和堆棧的內(nèi)容。
輸入變量,中間變量和輸出變量在數(shù)據(jù)儲(chǔ)器中的位置如表5所示。
上面說(shuō)明了PLC執(zhí)行一條指令或一個(gè)邏輯方程(用梯形圖表示時(shí)是一個(gè)梯節(jié))的過(guò)程。但是PLC與普通辦公用計(jì)算機(jī)有一個(gè)很大的不同點(diǎn),就是PLC的程序是自動(dòng)循環(huán)執(zhí)行的,而普通計(jì)算機(jī)是按照命令執(zhí)行程序,程序結(jié)束后等待新的命令。后一種工作方式稱異步工作方式。因此,對(duì)PLC說(shuō)來(lái)循環(huán)是一個(gè)十分重要的概念。大部分PLC采用這樣的循環(huán)方式,程序一開(kāi)始,掃描和采集輸入摸板上各輸入變量的數(shù)據(jù),然后轉(zhuǎn)移到中央存儲(chǔ)器的數(shù)據(jù)區(qū)(有時(shí)稱為便箋式存儲(chǔ)器或輸入映像區(qū)),接著執(zhí)行用戶的應(yīng)用程序,把邏輯運(yùn)算的結(jié)果送到便箋式存儲(chǔ)器的輸出映像區(qū),最后將輸出映像區(qū)的值送到輸出摸板去控制具體的物理過(guò)程。在處理完輸出轉(zhuǎn)移后,要進(jìn)行通信程序處理,來(lái)完成編程命令或監(jiān)視命令。然后又回到循環(huán)的起始點(diǎn),掃描和采集輸入摸板。
表3 程序表在存儲(chǔ)器中的編碼
表4 程序執(zhí)行過(guò)程中累加器A和堆棧的內(nèi)容
表5 程序執(zhí)行過(guò)程中各個(gè)變量在存儲(chǔ)器中的位置
下面以PHILIPS Proscon邏輯控制器為例,進(jìn)一步說(shuō)明循環(huán)的概念,該控制器的配置如下:
16塊輸入摸板,每塊摸板16個(gè)輸入點(diǎn),總共256個(gè)輸入點(diǎn);
16塊輸出摸板,每塊摸板16個(gè)輸出點(diǎn),總共256個(gè)輸出點(diǎn);
程序存儲(chǔ)器4KB。
圖5 PLC循環(huán)舉例
圖6 PLC摸板之間信息交換的過(guò)程
一塊輸入板或輸出板的存取時(shí)間為29μs,執(zhí)行1K字程序指令的時(shí)間為1.85ms。這樣,整個(gè)的循環(huán)時(shí)間是8.3ms。它是由兩個(gè)部分組成的:一部分的輸入/輸出循環(huán)時(shí)間為32×29=928μs=0.928ms;另一部分的執(zhí)行程序存儲(chǔ)器用戶程序的時(shí)間,最長(zhǎng)為4×1.85=7.4ms。圖5為PLC循環(huán)舉例。圖6表示了摸板之間信息交換的過(guò)程。 圖7表示了循環(huán)的控制信號(hào)定時(shí)圖。
圖7上的各種信號(hào)說(shuō)明如下:
S1:輸入/輸出信號(hào)的有效周期;
B1:輸入/輸出地址總線信號(hào);
S2:來(lái)自輸入摸板的應(yīng)答信號(hào);
B2:轉(zhuǎn)移輸入狀態(tài)到便箋式存儲(chǔ)器(輸入/輸出映像)的總線信號(hào);
B3:從便箋式存儲(chǔ)器中輸出狀態(tài)轉(zhuǎn)移到緩沖存儲(chǔ)器的總線信號(hào).緩沖存儲(chǔ)器能保證即使在輸出板的電源發(fā)生故障的情況下,也能保持住應(yīng)輸出的信息;
S3:來(lái)自中央處理單元允許轉(zhuǎn)移到輸出摸板的時(shí)鐘信號(hào);
S5:邏輯處理信號(hào);
B4:程序存儲(chǔ)器地址總線信號(hào);
S6:開(kāi)始執(zhí)行指令周期的信號(hào);
B5:指令的總線信號(hào)。
有三種基因素會(huì)影響到PLC的循環(huán)結(jié)構(gòu),它們是:
? 輸入/輸出采集戰(zhàn)略;
? 跳轉(zhuǎn)指令的應(yīng)用;
? 有可能存在數(shù)值計(jì)算。
還有一種更復(fù)雜的情況,就是多處理器結(jié)構(gòu)的PLC,在循環(huán)過(guò)程中要分配給智能摸板命令和采集信息,智能摸板是自身帶CPU具有特殊功能的摸板,智能摸板的循環(huán)和主CPU的循環(huán)是并行進(jìn)行的,但主CPU要向智能摸板發(fā)送命令和采集信息。
圖7 PLC循環(huán)的控制信號(hào)定時(shí)圖
在循環(huán)過(guò)程中,遇有跳轉(zhuǎn)指令時(shí)(包括無(wú)條件和條件跳轉(zhuǎn)),會(huì)改變循環(huán)的方向,圖8 表示了執(zhí)行程序過(guò)程中修整循環(huán)的例子。
? PLC 軟件體系
PLC系統(tǒng)軟件和應(yīng)用軟件
PLC的基本軟件包括系統(tǒng)軟件和應(yīng)用軟件,如果用一個(gè)示意圖來(lái)表示的話(見(jiàn)圖9),PLC的硬件處在一個(gè)園的核心部分。在硬件外圍有三個(gè)環(huán)包圍著。第一個(gè)環(huán)是軟件的操作系統(tǒng),用它來(lái)管理各種硬件資源(存儲(chǔ)器,軟盤驅(qū)動(dòng),鍵盤。CRT,輸入,輸出等);第二個(gè)環(huán)是編程語(yǔ)言的編譯系統(tǒng);第三個(gè)環(huán)是應(yīng)用程序。最外圍是被控制對(duì)象。相對(duì)PLC講來(lái)是外部世界。在硬件和外部世界之間的三個(gè)環(huán)就構(gòu)成了PLC的基本軟件,硬件通過(guò)基本軟件實(shí)現(xiàn)對(duì)外部世界的控制。對(duì)基本軟件可以下這樣一個(gè)定義:PLC的基本軟件是由一組程序組成,這組程序允許對(duì)硬件進(jìn)行管理,并提供使用方便。這組程序也用來(lái)生成和開(kāi)發(fā)應(yīng)用軟件,通過(guò)應(yīng)用軟件實(shí)現(xiàn)對(duì)外部世界的控制。
在PLC的結(jié)構(gòu)中,軟件操作系統(tǒng)駐留在PLC的中央存儲(chǔ)器內(nèi),并且都加以固化。PLC的語(yǔ)言編譯系統(tǒng),一般都比較大,通常是以磁盤文件的形式,放置在編程器內(nèi),最后生成的應(yīng)用程序也放置在中央存儲(chǔ)器內(nèi).但是需要有后備電池支持,以保證關(guān)機(jī)時(shí),程序不會(huì)丟失。只有在程序經(jīng)確認(rèn)沒(méi)有錯(cuò)誤,現(xiàn)場(chǎng)也不需改動(dòng)的情況下,為了提高運(yùn)行的安全性才將應(yīng)用程序進(jìn)行固化。
(a) 根據(jù)程序中的跳轉(zhuǎn)指令,循環(huán)的時(shí)間是變化的
(b) 子循環(huán)的建立
圖8 程序執(zhí)行時(shí)循環(huán)時(shí)間修改的例子
圖9 PLC的軟件結(jié)構(gòu)