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