崔海濤,王國棟
(東北大學(xué)軋制技術(shù)及連軋自動化國家重點(diǎn)實(shí)驗(yàn)室,遼寧 沈陽,110819)
近年來,我國引進(jìn)了多條中厚板生產(chǎn)線,其控制系統(tǒng)大多采用西門子公司的設(shè)備或者技術(shù)。西門子公司的中厚板生產(chǎn)控制系統(tǒng)的自動化程度高、精度好、運(yùn)行穩(wěn)定,代表了中厚板軋制自動化控制領(lǐng)域的世界先進(jìn)水平。
西門子中厚板軋機(jī)二級控制系統(tǒng)采用多進(jìn)程的架構(gòu)形式,在實(shí)際應(yīng)用中表現(xiàn)出極好的穩(wěn)定性和可擴(kuò)展性,非常值得借鑒。本文通過分析西門子中厚板軋機(jī)二級控制系統(tǒng)的系統(tǒng)架構(gòu)設(shè)計(jì)思想,結(jié)合國內(nèi)中厚板生產(chǎn)線的自動化控制需求,對東北大學(xué)軋制技術(shù)及連軋自動化國家重點(diǎn)實(shí)驗(yàn)室原有中厚板軋機(jī)二級控制系統(tǒng)進(jìn)行改造,擬開發(fā)一個(gè)多進(jìn)程形式的控制系統(tǒng),使該系統(tǒng)在功能上滿足國內(nèi)中厚板軋機(jī)的控制要求,在穩(wěn)定性和可擴(kuò)展性方面以期與西門子中厚板軋機(jī)二級控制系統(tǒng)相當(dāng)。
西門子中厚板軋機(jī)二級控制系統(tǒng)采用的是多進(jìn)程形式和面向?qū)ο蟮木幊谭绞?。每個(gè)進(jìn)程實(shí)現(xiàn)不同的功能,各進(jìn)程間的通信、調(diào)度等都是在基于CORBA的二級控制系統(tǒng)平臺上完成的。通過該系統(tǒng)平臺可以方便地添加或刪除進(jìn)程,實(shí)現(xiàn)系統(tǒng)功能的伸縮。
該二級控制系統(tǒng)包括30多個(gè)進(jìn)程,進(jìn)程之間相對獨(dú)立。這些進(jìn)程根據(jù)功能大體可以分為3大類型:接口類進(jìn)程、非控制類進(jìn)程和控制類進(jìn)程。這3大類進(jìn)程的關(guān)系如圖1所示。
圖1 西門子軋機(jī)二級控制系統(tǒng)各類進(jìn)程間的關(guān)系Fig.1 Relationship among processes of level two control system for SIEMENS mill
由本實(shí)驗(yàn)室開發(fā)的軋機(jī)二級控制系統(tǒng)已成功應(yīng)用于國內(nèi)多條中厚板生產(chǎn)線,該軋機(jī)二級控制系統(tǒng)主要由通信和模型兩個(gè)進(jìn)程組成,進(jìn)程間通過消息傳遞事件,通過共享內(nèi)存實(shí)現(xiàn)數(shù)據(jù)共享,如圖2所示。這兩個(gè)進(jìn)程皆采用多線程結(jié)構(gòu)設(shè)計(jì),每個(gè)線程實(shí)現(xiàn)不同的功能。通信進(jìn)程負(fù)責(zé)實(shí)現(xiàn)軋機(jī)二級與基礎(chǔ)自動化、人機(jī)界面等外部通信;模型進(jìn)程負(fù)責(zé)設(shè)定計(jì)算,其中的跟蹤調(diào)度模塊負(fù)責(zé)對通信進(jìn)程傳遞的事件進(jìn)行解析處理,并協(xié)調(diào)其它模塊的運(yùn)行,調(diào)度進(jìn)程中的事件[1-2]。
圖2 軋機(jī)二級控制系統(tǒng)結(jié)構(gòu)Fig.2 Configuration of level two control system for mill
該控制系統(tǒng)結(jié)構(gòu)簡單,易于掌握和維護(hù),但是在穩(wěn)定性和可擴(kuò)展性方面與西門子軋機(jī)二級控制系統(tǒng)相比還有一定差距。首先,該系統(tǒng)中任何一個(gè)進(jìn)程出現(xiàn)問題都會導(dǎo)致整個(gè)控制系統(tǒng)功能的喪失;其次,隨著新工藝、新技術(shù)的投入使用,軋機(jī)二級系統(tǒng)的升級改造也越來越頻繁,原有控制系統(tǒng)的架構(gòu)形式很難適應(yīng)這種變化,因此有必要對該系統(tǒng)進(jìn)行改造。
改造后的二級控制系統(tǒng)在系統(tǒng)架構(gòu)設(shè)計(jì)上借鑒了西門子控制系統(tǒng),在模型方面繼承了原系統(tǒng)的控制模型。進(jìn)程劃分依據(jù)兩個(gè)原則:①功能惟一,每個(gè)進(jìn)程只實(shí)現(xiàn)一個(gè)功能;②進(jìn)程之間相對獨(dú)立,這樣既能增強(qiáng)系統(tǒng)的穩(wěn)定性,又便于日后升級改造。依據(jù)上述原則,軋機(jī)二級控制系統(tǒng)可劃分為15個(gè)進(jìn)程,進(jìn)程間的關(guān)系如圖3所示。
圖3 改造后的軋機(jī)二級控制系統(tǒng)各進(jìn)程間的關(guān)系Fig.3 Relationship among processes of level two control system for reformed mill
接口類進(jìn)程有6個(gè),分別為三級接口進(jìn)程(L3l)、加熱爐二級接口進(jìn)程(FUl)、ACC二級接口進(jìn)程(ACCl)、人機(jī)界面接口進(jìn)程(HMIl)、一級輸入接口進(jìn)程(iL1)、一級輸出接口進(jìn)程(oL1)。
非控制類進(jìn)程有5個(gè),分別為調(diào)度進(jìn)程(dispatch)、測量值處理進(jìn)程 (meas)、跟蹤進(jìn)程(track)、設(shè)定值發(fā)送進(jìn)程(spt)、數(shù)據(jù)庫讀寫進(jìn)程(dbwriter)。
控制類進(jìn)程有4個(gè),分別為預(yù)計(jì)算進(jìn)程(precalc)、道次修正進(jìn)程 (recalc)、自學(xué)習(xí) 進(jìn)程 (adapt)、軋制節(jié)奏控制進(jìn)程(mipa)。控制類進(jìn)程用于設(shè)定值計(jì)算,包含了所有的中厚板軋制工藝模型。
3.2.1 網(wǎng)絡(luò)通信
軋機(jī)二級控制系統(tǒng)通過工業(yè)以太網(wǎng)與上下游設(shè)備服務(wù)器進(jìn)行通信。以往的過程控制系統(tǒng)一般采用傳統(tǒng)的Socket(套接字)進(jìn)行主機(jī)間通信,本系統(tǒng)采用 ACE Socket[3-4],通信流程如圖4所示。
圖4 ACE Socket通信流程圖Fig.4 Flow chart of ACE Socket communication
采用ACE進(jìn)行網(wǎng)絡(luò)通信具有高效性、可移植性和穩(wěn)定性,在實(shí)際應(yīng)用中可以降低通信時(shí)延,提高通信效率,增強(qiáng)通信穩(wěn)定性[5-7]。此外,采用ACE Socket wrapper facade的“面向?qū)ο蟆痹O(shè)計(jì),應(yīng)用程序的IPC機(jī)制可以很容易地改變,并且無需更改API參數(shù),也無需手工修改地址結(jié)構(gòu)和函數(shù)。
3.2.2 系統(tǒng)進(jìn)程間通信
本系統(tǒng)通過共享內(nèi)存實(shí)現(xiàn)進(jìn)程間通信。由dispatch進(jìn)程通過 ACE_M(jìn)alloc[8]模板類創(chuàng)建共享內(nèi)存池,并在共享內(nèi)存池中為每個(gè)進(jìn)程開辟相應(yīng)的數(shù)據(jù)型共享內(nèi)存塊和消息型共享內(nèi)存塊。因此系統(tǒng)中的各個(gè)進(jìn)程就可以通過這兩種共享內(nèi)存塊進(jìn)行通信。
數(shù)據(jù)型共享內(nèi)存塊用于實(shí)現(xiàn)進(jìn)程間的數(shù)據(jù)共享,由本進(jìn)程寫入,供其它進(jìn)程讀取。以meas進(jìn)程為例,meas進(jìn)程將處理后的實(shí)測數(shù)據(jù)寫入到該進(jìn)程的數(shù)據(jù)型共享內(nèi)存塊中,供precalc等進(jìn)程使用。
消息型共享內(nèi)存塊用于實(shí)現(xiàn)進(jìn)程觸發(fā),由其它進(jìn)程寫入觸發(fā)消息,本進(jìn)程讀取并根據(jù)觸發(fā)消息執(zhí)行相應(yīng)功能。
3.2.3 線程間通信
本系統(tǒng)中有些進(jìn)程實(shí)現(xiàn)的功能比較復(fù)雜,需要采用多線程結(jié)構(gòu)設(shè)計(jì),如HMIl、meas、track等進(jìn)程。ACE提供了一個(gè)用于創(chuàng)建線程的模板類ACE_Tack〈〉,通過該模板類可以很容易地創(chuàng)建線程,并利用ACE消息隊(duì)列機(jī)制實(shí)現(xiàn)線程間通信。
系統(tǒng)中的進(jìn)程由主調(diào)線程和功能線程組成,采用自定義消息實(shí)現(xiàn)線程間通信。主調(diào)線程負(fù)責(zé)從該進(jìn)程的消息型共享內(nèi)存塊中讀取進(jìn)程觸發(fā)消息,并根據(jù)進(jìn)程消息觸發(fā)相應(yīng)的功能線程,功能線程負(fù)責(zé)實(shí)現(xiàn)具體功能。
3.2.4 系統(tǒng)監(jiān)控
本軋機(jī)二級控制系統(tǒng)包含15個(gè)進(jìn)程,并涉及到數(shù)據(jù)庫中各種類型的表。為便于操作人員對軋機(jī)二級系統(tǒng)進(jìn)行監(jiān)控,特別開發(fā)了軋機(jī)二級系統(tǒng)監(jiān)控軟件。通過該軟件可進(jìn)行系統(tǒng)進(jìn)程監(jiān)控和數(shù)據(jù)庫操作。
圖5所示為系統(tǒng)進(jìn)程監(jiān)控界面,通過該界面可以實(shí)現(xiàn)進(jìn)程的啟動與關(guān)閉以及進(jìn)程運(yùn)行狀態(tài)實(shí)時(shí)監(jiān)控。
圖5 軋機(jī)二級系統(tǒng)進(jìn)程監(jiān)控界面Fig.5 Monitoring interface of level two processes for mill
系統(tǒng)改造完成后,在實(shí)驗(yàn)室的過程自動化控制模擬平臺上進(jìn)行測試。測試內(nèi)容包括系統(tǒng)的穩(wěn)定性與響應(yīng)速度、系統(tǒng)通信的準(zhǔn)確性、進(jìn)程間數(shù)據(jù)共享與調(diào)度機(jī)制的可靠性以及系統(tǒng)容錯能力等。
測試系統(tǒng)結(jié)構(gòu)如圖6所示。改進(jìn)后的軋機(jī)二級控制系統(tǒng)安裝于軋機(jī)二級服務(wù)器中,PLC充當(dāng)現(xiàn)場的基礎(chǔ)自動化,其發(fā)送的數(shù)據(jù)是從現(xiàn)場采集的實(shí)測數(shù)據(jù)。人機(jī)界面服務(wù)器的配置與現(xiàn)場使用的完全相同,通過人機(jī)界面對軋機(jī)二級控制系統(tǒng)進(jìn)行操作。此外,人機(jī)界面服務(wù)器上還裝有3個(gè)基于TCP/IP協(xié)議的通信進(jìn)程,分別與軋機(jī)二級系統(tǒng)中的L3l、FUl、ACC進(jìn)程通信,用來模擬軋機(jī)二級與加熱爐、軋機(jī)三級以及ACC過程機(jī)之間的通信。
圖6 測試系統(tǒng)結(jié)構(gòu)Fig.6 Configuration of test system
經(jīng)過7d的不間斷測試,結(jié)果表明:①改造后的軋機(jī)二級控制系統(tǒng)運(yùn)行穩(wěn)定,沒有出現(xiàn)死機(jī)、無響應(yīng)等重大問題;②系統(tǒng)通信準(zhǔn)確可靠,未出現(xiàn)問題;③系統(tǒng)能夠?qū)Ω鞣N觸發(fā)事件迅速準(zhǔn)確地做出響應(yīng),最長響應(yīng)時(shí)間不超過0.1s。
(1)改造后的軋機(jī)二級控制系統(tǒng)架構(gòu)設(shè)計(jì)合理,運(yùn)行穩(wěn)定,響應(yīng)迅速,能夠滿足在線控制要求。通過添加或刪除進(jìn)程的方式可以非常容易地實(shí)現(xiàn)系統(tǒng)功能的伸縮。
(2)采用ACE中間件解決系統(tǒng)開發(fā)的關(guān)鍵問題,避免了使用復(fù)雜的 Windows API函數(shù),大大降低了開發(fā)難度,提高了開發(fā)效率。
[1]矯志杰,何純玉,陳波,等.首鋼中厚板軋機(jī)過程控制系統(tǒng)[J].東北大學(xué)學(xué)報(bào):自然科學(xué)版,2004,25(5):412-415.
[2]何純玉,吳迪,王君,等.中厚板軋制過程計(jì)算機(jī)控制系統(tǒng)結(jié)構(gòu)的研制[J].東北大學(xué)學(xué)報(bào):自然科學(xué)版,2006,27(2):173-176.
[3]Huston S D,Johnson J C,Syyid U.ACE程序員指南:網(wǎng)絡(luò)與系統(tǒng)編程的實(shí)用設(shè)計(jì)模式[M].馬維達(dá),譯.北京:中國電力出版社,2004.
[4]Douglas C S,Stephen D H.C++網(wǎng)絡(luò)編程(第1卷):運(yùn)用ACE和模式消除復(fù)雜性[M].於春景,譯.北京:電子工業(yè)出版社,2007.
[5]Schmidt D C.ACE:an object-oriented framework for developing distributed applications[C]//Proceedings of the 6th USENIX C++ Technical Conference.Cambridge,Massachusetts:USENIX As-sociation,April 1994:1-17.
[6]Chang-Chien L-R,Ong C-M,Kramer R A.Field tests and refinements of an ACE model[J].IEEE Transactions on Power Systems,2003,18(2):898-903.
[7]Ponterli E,Gupta G,Hermenegildo M V.ACE:a high-performance parallel prolog system[C]//Proceedings of International Parallel and Distributed Processing Symposium/International Parallel Processing Symposium-IPDPS (IPPS),25-28April 1995,Santa Barbara,California,USA.IEEE Computer Society,1995:564-571.
[8]藍(lán)炳雄,張麗.基于ACE的共享內(nèi)存的開發(fā)與研究[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2005(4):40-43.