程立同,何志平
(中國煤炭科工集團(tuán) 上海有限公司, 上海 200030)
面向?qū)ο笞鳛橐环N技術(shù)方法,不僅在計算機(jī)領(lǐng)域的高級語言編程上得到普遍應(yīng)用,在工業(yè)控制領(lǐng)域,諸如PLC、DCS、HMI等編程中亦有廣泛應(yīng)用,可編程語言標(biāo)準(zhǔn)IEC 61131-3中也有針對面向?qū)ο蟮膬?nèi)容[1]。面向?qū)ο蟮脑O(shè)計思想是人們觀察自然現(xiàn)象的一種認(rèn)知模式,其基本概念是類和類的實例對象,在計算機(jī)編程中,通過抽象和歸納,可將具有共同性質(zhì)的對象封裝成類,而在工業(yè)控制系統(tǒng)中,控制對象諸如:電動機(jī),水泵等就是很明顯的控制類別,只需簡單劃分,即可成類。面向?qū)ο缶幊痰拈_發(fā)步驟大致為:劃分對象→抽象類→將類組織為層次化結(jié)構(gòu)(繼承和合成)→用類與實例進(jìn)行設(shè)計和實現(xiàn)等階段;封裝、繼承和多態(tài)為其主要特征[2]。
中煤科工集團(tuán)上海檢測中心的1 200 kW電動機(jī)試驗臺主要用于變頻器及電動機(jī)的特性試驗,采用電動機(jī)對拖變頻回饋加載的技術(shù)方案[3]。其主電路系統(tǒng)構(gòu)成為進(jìn)線柜總受電,一路電源經(jīng)開關(guān)柜、變頻器驅(qū)動陪試電動機(jī),另一路經(jīng)開關(guān)柜、調(diào)壓器進(jìn)行試驗電壓調(diào)節(jié)后再通過開關(guān)柜、啟動柜、試品變頻器(或直接)驅(qū)動試品電動機(jī);系統(tǒng)測量控制采用西門子S7-1500可編程控制器、人機(jī)交互選用工控機(jī),整個監(jiān)控系統(tǒng)的編程使用西門子博圖集成環(huán)境[4]。
以試驗監(jiān)控系統(tǒng)中的高壓開關(guān)為例,分別給出PLC和HMI中面向?qū)ο蟮木幊虒崿F(xiàn)。
如圖1所示,建立一個新用戶數(shù)據(jù)類型(UDT),包含高壓開關(guān)所需的狀態(tài)控制操作等接口參數(shù),并添加入項目庫發(fā)布為“udtHMI_HVSC_Control”類型。在博圖中數(shù)據(jù)類型可在PLC和HMI間共享。
如圖2所示創(chuàng)建新FB塊,在InOut部分添加新發(fā)布“udtHMI_HVSC_Control”類型的變量,編寫代碼實現(xiàn)高壓開關(guān)控制狀態(tài)等邏輯,編譯成功后將此FB塊拽入項目庫、發(fā)布為“fbHVSC_Control”類型[5]。
圖2 FB塊
添加“udtHMI_HVSC_Control”類型變量(UDT實例對象),如圖3所示;在功能塊中調(diào)用“fbHVSC_Control”類型FB實例,如圖4所示,對具體開關(guān)設(shè)備對象實現(xiàn)PLC控制。
圖3 PLC變量
圖4 FB實例調(diào)用
創(chuàng)建新面板,如圖5所示,放置合適的控件,添加“udtHMI_HVSC_Control”數(shù)據(jù)類型的新面板屬性,將面板中控件的屬性、事件與新屬性相應(yīng)元素映射關(guān)聯(lián),編譯成功后添入項目庫、發(fā)布為新版本面板。
圖5 面板
添加“udtHMI_HVSC_Control”類型HMI變量、與相應(yīng)的PLC變量建立通信連接,如圖6所示。調(diào)用面板實例、接口屬性關(guān)聯(lián)HMI變量,如圖7所示,對具體開關(guān)設(shè)備對象實現(xiàn)HMI監(jiān)控。
圖6 HMI變量
前文針對高壓開關(guān),采用對象封裝技術(shù),在PLC中將UDT和FB塊封裝為控制類,在HMI上將UDT和面板封裝為視圖類,創(chuàng)建類的實例對象在PLC中控制、在HMI上交互、UDT數(shù)據(jù)對象在HMI與PLC間交換。同樣的方法,將電動機(jī)試驗系統(tǒng)中的調(diào)壓器、試品啟動器、變頻器、電量測量、溫度測量等對象均分別在PLC、HMI中封裝成相應(yīng)的類,并添加到項目庫,用面向?qū)ο缶幊?,實現(xiàn)后的系統(tǒng)監(jiān)控界面如圖8所示。
圖8視圖中的各個監(jiān)控對象均由類實例化創(chuàng)建,與系統(tǒng)實際設(shè)備構(gòu)成相對應(yīng),可動態(tài)顯示設(shè)備狀態(tài);同時,每個設(shè)備均可通過點擊彈窗進(jìn)行細(xì)節(jié)顯示和操作(彈窗中對象也要應(yīng)用類實例化),圖9所示的彈窗對象為電量測量,圖10所示為試品啟動柜操作。
圖9 電量測量
該系統(tǒng)投入運(yùn)行一年來穩(wěn)定可靠,日常試驗運(yùn)行結(jié)果顯示,采用面向?qū)ο缶幊?,使PLC及HMI程序邏輯更清晰、可讀性強(qiáng);依據(jù)實際控制設(shè)備對程序類對象進(jìn)行封裝構(gòu)建,讓用戶在界面操作上更方便;類型庫的使用,使系統(tǒng)維護(hù)擴(kuò)展更便利、適應(yīng)性和穩(wěn)定性更高,同時也有利于編程風(fēng)格的標(biāo)準(zhǔn)化、提高程序代碼的重用度及移植性。
圖10 啟動柜操作