1 問題的提出
在現(xiàn)代工業(yè)生產(chǎn)中,PLC的應(yīng)用極其普遍,在大型的集中控制系統(tǒng)中,通常會(huì)用到多個(gè)PLC,每個(gè)獨(dú)立的PLC又由相對(duì)獨(dú)立的程序組組成,每個(gè)程序組控制幾臺(tái)至幾十臺(tái)設(shè)備,各臺(tái)設(shè)備間的控制要求較多,有的被控對(duì)象自身較為復(fù)雜,這就使得PLC控制也就越趨復(fù)雜。
PLC控制的復(fù)雜性,自然也就使其軟件設(shè)計(jì)更加繁瑣。其軟件設(shè)計(jì)在滿足生產(chǎn)工藝和電氣聯(lián)鎖控制關(guān)系的基礎(chǔ)上,還應(yīng)盡可能滿足在使用上操作簡(jiǎn)便、直觀,這包括:PLC主機(jī)自檢;自動(dòng)進(jìn)行設(shè)備組備妥檢查;系統(tǒng)音響試驗(yàn)輸出;程序組啟動(dòng)預(yù)告輸出;程序組設(shè)備的正常啟/停聯(lián)鎖、運(yùn)行聯(lián)鎖、緊急停車;組設(shè)備運(yùn)行狀態(tài)輸出;設(shè)備啟動(dòng)過程中或系統(tǒng)正常運(yùn)行后設(shè)備故障時(shí)的故障聯(lián)鎖停車、故障報(bào)警輸出;故障解除后復(fù)位且能夠從故障設(shè)備位置重新完成程序組設(shè)備順序啟動(dòng)的控制等。
2 解決的思路
控制對(duì)象和對(duì)象之間關(guān)系的多樣性,體現(xiàn)在PLC程序的編寫上,就越來越龐大。這樣采用一般面向過程的方法進(jìn)行PLC編程會(huì)變得十分困難,且程序的調(diào)試和修改也同樣十分困難。因此,必須采用面向?qū)ο蟮木幊谭椒?。主體思想有兩條:
第一條:為程序組中每個(gè)獨(dú)立的被控對(duì)象或需要同時(shí)啟/停的一組被控對(duì)象建立功能/數(shù)據(jù)模塊FB/DB,被控對(duì)象在程序組中的聯(lián)鎖關(guān)系及自身控制要求都通過功能模塊FB的外部屬性和內(nèi)部屬性進(jìn)行體現(xiàn)。
第二條:為每個(gè)PLC控制系統(tǒng)的每個(gè)程序組分別定義和創(chuàng)建公用模塊FC,每個(gè)公用模塊FC的入口/出口條件作為公共對(duì)象的外部屬性;把按功能劃分的設(shè)備間的故障判定、功能輸出等作為公共對(duì)象的內(nèi)部屬性。
3 程序設(shè)計(jì)的方法
對(duì)于各個(gè)PLC集中控制系統(tǒng),首先根據(jù)工藝生產(chǎn)流程,將整個(gè)車間分成若干個(gè)工段。在每個(gè)工段內(nèi),根據(jù)驅(qū)動(dòng)設(shè)備的啟停順序和流程分支,將驅(qū)動(dòng)設(shè)備分成若干個(gè)組。對(duì)于每一個(gè)組的驅(qū)動(dòng)設(shè)備,在正常操作情況下,根據(jù)工藝流程,逆流程開車,順流程停車。為了減小設(shè)備啟停對(duì)電網(wǎng)的沖擊,所有設(shè)備都是按順序單臺(tái)啟動(dòng),根據(jù)設(shè)備的容量大小和啟動(dòng)特性,每臺(tái)設(shè)備的啟停相對(duì)于前一臺(tái)設(shè)備都設(shè)置了相應(yīng)的延時(shí)時(shí)間。對(duì)于操作員來說,整個(gè)生產(chǎn)線的啟動(dòng),只是按設(shè)計(jì)的操作順序啟動(dòng)每個(gè)組,只不過是點(diǎn)幾下鼠標(biāo)而己,不需要每臺(tái)設(shè)備都去操作,使得操作非常簡(jiǎn)單。
3.1 段控制
從生產(chǎn)工藝考慮,不需要其它設(shè)備的參與,能夠獨(dú)立完成一定生產(chǎn)任務(wù)的一些設(shè)備的集合被稱為一個(gè)段。一臺(tái)PLC可以單獨(dú)控制一個(gè)段,也可以幾個(gè)小段由一個(gè)PLC控制。根據(jù)段的控制要求,設(shè)計(jì)一個(gè)通用的功能塊FB220,功能塊如圖1所示,其主要功能如下:

圖1 段控制功能塊
檢測(cè)系統(tǒng)狀態(tài):
AC220V控制電源狀態(tài);
DC24V控制電源狀態(tài);
PLC電池電壓狀態(tài);
PLC冷卻風(fēng)扇狀態(tài);
系統(tǒng)緊急停車開關(guān)位置;
接收上位機(jī)的預(yù)警測(cè)試指令;
3.2 組控制
按生產(chǎn)工藝,在同一時(shí)間段內(nèi)允許同時(shí)開停的設(shè)備作為一個(gè)組,組內(nèi)設(shè)備的開停不依賴于其它設(shè)備的開停,它收集組內(nèi)各臺(tái)設(shè)備的驅(qū)動(dòng)狀態(tài),匯總后送至上位機(jī),并接收上位機(jī)發(fā)出的各種控制指令,通過組控制字節(jié)分別送至每個(gè)驅(qū)動(dòng)。組控制功能塊FB227,其控制過程如圖2所示:首先向FB227中輸入?yún)?shù)AUX1,AUX2,F(xiàn)B227接收上位機(jī)指令GCOM,并采集組內(nèi)設(shè)備的驅(qū)動(dòng)狀態(tài)STAC;然后FB227將組控制字節(jié)GRUP送至每個(gè)驅(qū)動(dòng),將組狀態(tài)GSTA、組報(bào)警GALM送至上位機(jī)。

圖2 組控制過程框圖
3.3 驅(qū)動(dòng)
驅(qū)動(dòng)分為馬達(dá)驅(qū)動(dòng)和電磁閥驅(qū)動(dòng),馬達(dá)驅(qū)動(dòng)按控制方式分為主驅(qū)動(dòng)和輔助驅(qū)動(dòng)馬達(dá)。主驅(qū)動(dòng)馬達(dá)是指為維持正常生產(chǎn)必須持續(xù)運(yùn)行的馬達(dá),其開停與組的開停同步,若遇有分支的情況下,通過選擇來確定。輔助驅(qū)動(dòng)馬達(dá)是指在生產(chǎn)過程中不是每時(shí)每刻都需要參與的馬達(dá),它的開停是根據(jù)生產(chǎn)的需要,是斷續(xù)運(yùn)行的設(shè)備,其開停依賴于組,但又不完全由組控制。按馬達(dá)種類分有單向馬達(dá)、可逆馬達(dá)、電動(dòng)執(zhí)行器、電動(dòng)推桿等。根據(jù)每種驅(qū)動(dòng)的控制要求編寫各自的功能塊,在主程序中可以很方便地調(diào)用,使得程序結(jié)構(gòu)簡(jiǎn)單,易于維護(hù)。單向主驅(qū)動(dòng)馬達(dá)的功能塊FB200,其驅(qū)動(dòng)過程如圖3所示。

圖3 驅(qū)動(dòng)過程框圖
4 結(jié) 論
采用面向?qū)ο蟮木幊谭椒?,設(shè)置PLC段、組、馬達(dá)驅(qū)動(dòng)等功能模塊,盡可能按功能要求創(chuàng)建各種功能模塊,在主程序中進(jìn)行調(diào)用,使得復(fù)雜系統(tǒng)PLC的編程問題變得有跡、有序、系統(tǒng)和規(guī)范化,復(fù)雜問題簡(jiǎn)單化了,其發(fā)展前景無限。










