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