內嵌腳本的組態軟件策略模塊設計與實現
方正,梁宵,周曉杰,柴天佑
(東北大學自動化研究中心,遼寧沈陽110004)
摘 要:針對于目前組態軟件存在邏輯控制與算法開發功能不夠完善的問題,提出了一種基于控制策略流程圖和有限狀態機( fsm)相結合的策略模塊設計方法。該方法首先根據控制策略進行流程圖繪制,采用有限狀態機方法生成相應腳本,利用編譯囂進行解釋執行實現控制策略。軟件采用visual c++平臺開發,經該軟件生成的系統可根據組態結果直接實現控制策略、實時曲線和工藝流程繪制等功能。最后通過對某回轉窯控制系統組態,證明了設計的有效性。
關鍵詞:組態軟件;控制策略;有限狀態機;腳本
中圖分類號:tp 27 文獻標識碼:a
1引言
組態軟件是近年來工控領域十分活躍的部分,它的出現和興起為工控軟件的設計注入了新的活力。從整體上看,國外組態軟件發展較為成熟,但價格昂貴,和硬件聯系緊密且普遍無中文界面。而國內的組態軟件大多注重于監控畫面、檢測監控點的開發,控制算法則大多采用獨立于組態軟件的matlab進行設計。隨著控制系統的復雜化,人們對組態軟件的開放性和可重用性提出丁更多要求,這使得組態軟件必須提供更強大的算法開友功能。
本文在分析組態軟件的模塊化結構設計基礎之上,提出了一種策略模塊的設計和實現方法。該方法將腳本生成技術、有限狀態機和編譯技術相結合,在搭建控制結構框圖的過程中即可完成控制策略的開發,為組態軟件提供二次開發功能。本文所開發的組態軟件使用戶不僅可以利用組態軟件的各個模塊構建一個監控系統,同時也可以采用軟件提供的腳本技術,少量編程就可以方便地創建控制策略,生成所需的控制系統。
2組態軟件模塊化結構設計
組態軟件因為其功能強大,而每個功能相對來說又具有一定的獨立性,因此其組成形式是一個集成軟件平臺,由若干程序組件構成。程序設計采用面向對象的結構化編程思想,利用vc++特有的document/view結構和mdi(多文檔應用程序開發),將系統劃分為繪圖模塊層、策略模塊層、數據庫模塊層和通信模塊層4個抽象層。
每一層為上層提供服務,同時又是下層的客戶,層次之間通過接口和協議進行交互,層內的內容被隱藏起來,這樣只要接口協議不變,某一層的改動就不會影響其他層,提高了軟件的可移植性。數據字典包含了整個系統的所有變量,一部分變量接收通訊模塊的采集數據,一部分變量用于策略模塊的中間變量,另外一部分變量將策略模塊計算結果發送回通訊模塊。策略模塊用于構建算法,利用繪圖模塊組成顯示和人機交互部分,通訊模塊最后將軟件平臺和硬件設備連接起來,具體結構,如圖1所示。
3策略模塊的設計與實現
1) 策略圖元
策略圖元用來組成設計者的設計思想,直觀地表達一種控制策略。因此,它除了具有顯示,讀寫和保存等基本功能以外,還要能表現一定的邏輯關系,多種策略圖元經過一定的排列組合可以表達出不同的策略設計思想。根據策略圖元的功能,可以做下面設計:
①圖元的顯示單獨設計圖元顯示類,其基類從cw nd派生,類中的函數主要實現圖元的繪制,鼠標響應如復制,剪切等。另外策略圖元同時需要存儲數據,用以后面生成腳本。其中,派生出來5種主要類:主路類,反饋類,前饋類,連接器類,連接線類。
②圖元的數據單獨設計圖無數據類,其基類從cobject派生,類中的函數主要實現保存圖元的屬性,比如位置,大小,維護圖元鏈表等。同時,它與圖元的顯示類類似,同樣具有一些方法用于數據層面的復制和剪切等。另外,設計屬性框類用于編輯圖元的名稱和表達策略的函數等。圖元數據類在圖元顯示類中實例化對象,當用戶對當前顯示圖元進行操作的時候,在數據層面也同樣有相應操作。
③圖元的連接連接線是一種特殊圖元,通過連接線,把策略圖元按照一定順序連接起來,用來表達邏輯并生成腳本。箭頭的方向用來表示數據流向,連接線類包含兩個變量from,和to,from為變量保存來自的圖元,to為箭頭指向的圖元,為后面生成腳本做準備。此 |