孔令鋮,謝冰雪,吳一帆,吳 剛
無錫中糧工程科技有限公司 (無錫 214036)
隨著現(xiàn)代工廠規(guī)?;⒆詣?dòng)化、信息化的不斷發(fā)展,企業(yè)對(duì)自動(dòng)化系統(tǒng)程序的要求也日益提高,而在工業(yè)控制系統(tǒng)程序中,大部分程序可讀性較差,不利于后期系統(tǒng)維護(hù)。本文闡述了PLC程序模塊化對(duì)傳統(tǒng)程序結(jié)構(gòu)化的改善,保證了PLC系統(tǒng)的安全性與穩(wěn)定性。
所謂模塊化,簡(jiǎn)單地來說就是將每個(gè)設(shè)備當(dāng)成一個(gè)子系統(tǒng)(如電機(jī),閥門等設(shè)備),將這個(gè)子系統(tǒng)作為通用性的模塊與其他設(shè)備進(jìn)行多種組合,使其構(gòu)成一個(gè)新的系統(tǒng),產(chǎn)生多種不同功能或相同功能、不同性能的系列產(chǎn)品。模塊化設(shè)計(jì)是綠色設(shè)計(jì)方法之一,已經(jīng)從理念轉(zhuǎn)變?yōu)檩^成熟的設(shè)計(jì)方法。一方面,可以縮短PLC程序的編寫周期,提高工作效率,對(duì)應(yīng)對(duì)工程工期過短的問題有著很大的幫助;另一方面,在對(duì)公司團(tuán)隊(duì)的發(fā)展有著巨大的作用,模塊化的程序可以使整個(gè)公司團(tuán)隊(duì)的程序編寫風(fēng)格一致,在項(xiàng)目后期的維護(hù)中,其他工程師無需花費(fèi)大量的時(shí)間去了解前人編寫的程序。
模塊化設(shè)計(jì)具有以下特征:相對(duì)獨(dú)立性,可以針對(duì)每個(gè)設(shè)備來進(jìn)行單獨(dú)的程序編寫,例如使用西門子PLC來編程,那么每種設(shè)備可以編寫成一個(gè)FB塊,其可以在程序中多次使用;互換性,程序中模塊的接口可以對(duì)外開放,工程師可以根據(jù)項(xiàng)目的實(shí)際情況來更改模塊的作用,從而使模塊滿足在不同場(chǎng)景下實(shí)現(xiàn)不同的功能;通用性,有利于實(shí)現(xiàn)不同項(xiàng)目之間模塊的通用,實(shí)現(xiàn)跨項(xiàng)目間的模塊通用,可以有效的減少每個(gè)項(xiàng)目在前期對(duì)于程序的開發(fā)。
PLC即可編程邏輯控制器(Programmable Logic Controller,簡(jiǎn)稱PLC),一種具有微處理器的數(shù)字電子設(shè)備,用于自動(dòng)化控制的數(shù)字邏輯控制器,可以將控制指令隨時(shí)加載存儲(chǔ)器內(nèi)存儲(chǔ)與運(yùn)行??删幊炭刂破饔蓛?nèi)部CPU,指令及數(shù)據(jù)存儲(chǔ)器、輸入輸出單元、電源模塊、數(shù)字模擬等單元所模塊化組合成。PLC可接收(輸入)及發(fā)送(輸出)多種類型的電氣或電子信號(hào),并使用他們來控制或監(jiān)督幾乎所有種類的機(jī)械與電氣系統(tǒng)。
簡(jiǎn)單一點(diǎn)來說,假設(shè)我們有一個(gè)設(shè)備有電機(jī)和按鈕。那邊我們希望按下按鈕時(shí)電機(jī)開啟,等再次按下按鈕時(shí),希望電機(jī)關(guān)閉。這個(gè)功能類似于電視遙控器上按鈕的功能。要做到這一點(diǎn),我們必須先編寫一個(gè)程序在計(jì)算機(jī)上執(zhí)行此操作,然后將其下載到CPU。及接著我們連接按鈕到輸入模塊,電機(jī)接到輸出模塊?,F(xiàn)在我們按下按鈕,電信號(hào)將被發(fā)送到PLC,PLC輸入將首先將此信號(hào)傳送給CPU,CPU收到信號(hào)后按照事先編寫的程序來控制電機(jī)啟停。所有的PLC都是由3個(gè)主要部分組成:輸入模塊,CPU和輸出模塊(圖1)。
圖1 PLC基本組成部分
PLC程序的整體編寫可分為工藝需求了解、功能設(shè)置、程序編寫、現(xiàn)場(chǎng)調(diào)試以及系統(tǒng)后期的維護(hù)與功能升級(jí)這五個(gè)大的階段。目前,大部分工廠的PLC程序已梯形圖為主,該語言與繼電器控制系統(tǒng)圖相識(shí),比較直觀,偏重于邏輯設(shè)計(jì),但是梯形圖的程序?qū)懛ㄓ兄苤氐膫€(gè)人色彩,每個(gè)人的寫法不同會(huì)導(dǎo)致程序的可讀性差,這對(duì)以后程序的維護(hù)與功能升級(jí)帶來了很大的不便。因此模塊化的編程方式能把控制系統(tǒng)的設(shè)計(jì)與設(shè)備屬性的設(shè)計(jì)分割出來,各自單獨(dú)進(jìn)行。該方案編寫的程序具有較好的可讀性,便于設(shè)計(jì)、調(diào)試以及后期的維護(hù)等特點(diǎn),尤其適合多人協(xié)同合作的項(xiàng)目。
模塊化PLC程序的基本原理是把設(shè)備設(shè)計(jì)作為一個(gè)具有各自屬性的單體對(duì)象,把工藝流程設(shè)計(jì)為各個(gè)設(shè)備間的邏輯控制,使其形成一個(gè)點(diǎn)對(duì)點(diǎn)的連鎖關(guān)系,從而實(shí)現(xiàn)控制設(shè)備的啟停和停止邏輯。這種編程思想下我們的程序主要分為兩個(gè)部分。
(1)第一部分是以設(shè)備為主,我們?yōu)槊糠N不同類型的設(shè)備建立各自獨(dú)立的基本功能塊,可以稱為設(shè)計(jì)對(duì)象。其功能塊的功能包含控制對(duì)象的手自動(dòng)切換、啟動(dòng)停止、設(shè)備報(bào)警以及輸入輸出點(diǎn)的使用(如圖2)?;竟δ軌K是直接驅(qū)動(dòng)硬件,控制對(duì)象是現(xiàn)場(chǎng)的電機(jī)或者閥門(注意:功能塊可以根據(jù)具體的使用情況進(jìn)行修改,其沒有固定的形式,如西門子plc中的FB塊或者FC塊)。
圖2 基本功能塊示意圖
(2)第二部分以邏輯控制為主,即按照工藝的控制要求,把所有的單個(gè)設(shè)備建立成一個(gè)有邏輯控制的整體程序,以滿足工藝流程的需求。這一部分是針對(duì)這個(gè)的工藝流程來設(shè)計(jì)的,因?yàn)閱蝹€(gè)的設(shè)備程序無法滿足整體流程,其只有設(shè)備本身的控制邏輯,即只能控制設(shè)備本身的啟停。
對(duì)于一套控制系統(tǒng)來說,其包含了多個(gè)需要控制的電機(jī)與閥門,如有3臺(tái)電機(jī)與1臺(tái)泵需要控制,那么我們需要在這個(gè)4臺(tái)設(shè)備的基本功能塊中增加1個(gè)控制程序,用來把這幾個(gè)設(shè)備實(shí)現(xiàn)聯(lián)動(dòng)。而模塊化編程方式即:主程序讀取控制程序,控制程序讀取子程序,子程序?qū)?yīng)相應(yīng)的設(shè)備。目前大型PLC編程環(huán)境一般都支持子程序功能,子程序的優(yōu)點(diǎn)就是一次編寫,多次調(diào)用,無需重復(fù)編寫相同的設(shè)備程序。但子程序是無法獨(dú)自控制設(shè)備,其內(nèi)部程序無法執(zhí)行設(shè)備啟停功能,它只能被主程序調(diào)用后才能使用,例如:在西門子PLC程序中,我們的設(shè)備塊(FB塊)只有在被主程序調(diào)用后才可以控制設(shè)備。這種編程方式使各個(gè)模塊之間通過中間變量來傳遞數(shù)據(jù),各自的點(diǎn)號(hào)(如I點(diǎn)與Q點(diǎn))被良好的封裝在各自的子程序中,相互之間不會(huì)干擾。
PLC程序模塊化的設(shè)計(jì)思路,采用計(jì)算機(jī)高級(jí)語言的編程算法,因此程序靈活性強(qiáng),且具有一定的通用性,一些類似的設(shè)備,只需修改下子程序或者相應(yīng)的模塊就可繼續(xù)使用,其本身的靈活多變性與程序本體的空間占用率低的優(yōu)勢(shì)有著很好的推廣性。采取此方法后,調(diào)試時(shí)間大幅度減少,同時(shí)也給后期的系統(tǒng)維護(hù)與升級(jí)帶來了方便,具有性能良好,無安全隱患的優(yōu)點(diǎn)。