引言
在計算機信息網絡技術的促進下,為適應對大型工業過程及其控制系統的分析、優化和訓練的需求,集散控制系統DCS的全范圍仿真正在向所謂“虛擬”技術方向發展。目前,虛擬DCS的實現主要包括三種方式,激勵型DCS、仿真DCS和虛擬DCS。[1]其中基于虛擬DPU(分散處理單元)技術的虛擬DCS介于另外兩者之間,其控制參數和算法完全來自于下載文件,使用與實際DPU相同的算法、模塊、時間片、位號等,可以同步修改更新,軟件功能逼真度較高,實現成本低。[2]因此,虛擬DPU技術能夠真正有效、經濟和廣泛地應用于人員培訓、在線檢測、故障診斷和設計調試DPU,滿足火力發電等過程工業“數字化”的需求。
1 虛擬DPU技術
SYMPHONY集散控制系統和其他DCS控制系統一樣,主要有DPU來完成,虛擬DPU技術將實際DCS系統中的DPU的處理功能移植到虛擬DPU的軟件上,脫離硬件設備,采用軟件仿真在計算機上實現一個或多個DPU工作過程的模擬。這樣就可以直接運行設計人員組態好的文件,執行其控制策略。然后,通過與操作員站人機界面(HMI)的通訊接口相連,就可以完成整個DCS流程動態數學模型仿真系統。
下圖(圖1)為虛擬DPU在整個DCS工作過程中的位置。
圖1虛擬DPU在整個DCS中的位置
從圖中可以看出虛擬DPU完全取代了真實的DPU,對下載好的組態文件進行處理,然后在操作員站顯示出執行的結果。這樣既能完成設計調試、人員培訓等離線功能,又能進行在線檢測和診斷。
2 虛擬DPU仿真軟件的實現
結合華北電力大學仿真與控制技術實驗室引進的Symphony系統,運用虛擬DPU技術對Symphony集散控制系統實現模型仿真。
2.1面向對象方法
面向對象方法(Object-Oriented Method)是一種把面向對象的思想應用于軟件開發過程中,指導開發活動的系統方法,簡稱OO(Object-Oriented)方法,是建立在“對象”概念基礎上的方法學。對象是由數據和容許的操作組成的封裝體,與客觀實體有直接對應關系,一個對象類定義了具有相似性質的一組對象。繼承性是對具有層次關系的類的屬性和操作進行共享的一種方式。所謂面向對象就是基于對象概念,以對象為中心,以類和繼承為構造機制,來認識、理解、刻畫客觀世界和設計、構建相應的軟件系統。
面向對象方法支持三種基本的活動:識別對象和類,描述對象和類之間的關系,以及通過描述每個類的功能定義對象的行為。面向對象的第一個原則是把數據和對該數據的操作都封裝在一個類中,在程序設計時要考慮多個對象及其相互間的關系。有些功能并不一定由一個程序段完全實現,可以讓其它對象來實現,面向對象的另外一個好處是實現代碼的重復使用。
2.2虛擬DPU控制算法模塊
Symphony分散控制系統包含255種軟件模塊,即255個功能碼。這些功能碼可以分為四種類型,執行塊、系統常數塊、輸入/輸出塊、用戶可組態塊。[3][4] 它們主要完成五大功能:1. 輸入輸出。完成模擬量、邏輯量和脈沖量等輸入輸出功能。2.模擬控制。完成模擬量的運算及其控制。3.邏輯控制。完成邏輯量的運算及其控制。4.順序控制。完成提供設備的自動手動順序切換等功能。5.特殊計算。提供特殊的計算功能。根據對其算法、模塊、時間片、位號等的分析,對虛擬DPU控制算法模塊進行開發。在VC++中,采用面向對象的模塊編程技術,創建虛擬DPU基類庫。這五個大模塊在運行過程中,通過不同的功能調用,完成了DPU的基本功能。同時,五大模塊下層又有一些小模塊來輔助其實現該功能。
2.3虛擬DPU智能編譯部分
智能編譯部分主要是對DPU組態后下載文件的代碼進行掃描解釋,然后建立完整的虛擬DPU組態語義庫。結合控制算法模塊,把控制算法模塊以庫文件的形式與掃描得到的代碼編譯鏈接,得到虛擬DPU控制程序。
2.3.1組態文件的結構
ABB公司推出的Symphony分散控制系統是通過其系統工程工具Composer進行DCS組態的。對Composer編譯后的下載文件結構的分析,不同模塊有著不同的二進制結構,但大體上有著相似性。它們都是先標明該模塊所占的字節數,接著依次是塊地址、常數塊號、輸入地址、輸入值、輸出地址、輸出值等(如圖2)通過對這些二進制結構的識別,進行進一步的編譯工作。
圖2下載文件的一般格式
2.3.2編譯部分的實現
編譯部分在整個虛擬DPU的過程中,主要的作用是連接組態文件和算法類庫,把二者對應起來,然后得出顯示的結果。如圖3是對這幾個部分所在位置和功能的說明。
圖3編譯部分在整個程序中所在的位置
3 軟件封裝與測試
為了對模塊進行測試,采用對話框形式的圖形操作界面建立一個測試環境。在這個測試環境中,以實際系統可能出現的各種情況對模塊進行初始化和賦值,以實際系統相同的時間片調用模塊,使測試環境盡量接近于實際的系統。[5]
測試的重點在:1)模塊接口——模塊能否被正確的初始化和賦值,能否正確地輸出數據;2)異常處理——軟件對異常情況的特殊處理是否到位,是否能夠達到準確無誤。
測試方法采用黑盒測試和白盒測試。黑盒測試即已知產品的功能設計規格,可以進行測試證明每個實現了的功能是否符合要求。它意味著測試要在軟件的接口處進行。白盒測試即已知產品的內部工作過程,可以通過測試證明每種內部操作是否符合設計規格要求,所有內部成分是否已經過檢查。它是對軟件的過程性細節做細致的檢查。[6]
組態圖完成后,首先對組態圖下載,然后運用所編的軟件一步步執行,得出結果,于實際DPU的運行結果相對照,看虛擬DPU系統能否做到設備的正確啟停,對變化及事故的處理能否做出正確響應。其次觀察其調試速度是否與真是DPU相同。通過多次的反復測試、調試使其仿真軟件能夠正確可靠地運行,這樣就完成了軟件的開發。
4 結束語
虛擬DPU 由于它使用與真實 DPU 相同的算法,模塊,時間片和位號。因此具有更高的軟件逼真度。它能夠和真實DPU 相聯網運行,實現機組的性能計算,在線診斷,優化運行等高級功能。相信虛擬DPU技術將在大型工業過程仿真中有著越來越廣泛的應用。
主要參考文獻
[1]冷杉.論虛擬分散控制系統技術[J].中國電力,36卷第2期,2003.2,第53-54頁
[2]宋人杰,王曉東. 基于虛擬DPU技術的DCS流程動態數學模型仿真[J].高壓電技術,32卷第1期,2006.1,第91頁
[3]仿真與控制技術實驗室[M].SYMPHONY系統介紹.華北電力大學,2002
[4]仿真與控制技術實驗室[M].SYMPHONY系統功能碼(N-90、INFI-90).華北電力大學,2002
[5]劉哲,冷杉,楊靜.面向對象虛擬DPU的實現[J].電力自動化設備,24卷第1期,2004.1,第76頁
[6]陳沛然,張建華. 淺析基于虛擬DPU技術的330MW機組仿真系統開發與調試[J].寧夏電力,2005.5,第43-44頁