隨著工業(yè)的發(fā)展,DCS(Distributed Control System)的應(yīng)用越來(lái)越廣,但是由于DCS本身的分散控制集中管理的特點(diǎn)必然導(dǎo)致其存在一定的復(fù)雜性,不會(huì)像普通系統(tǒng)那樣容易使用,所以在DCS產(chǎn)生的同時(shí),相應(yīng)的仿真系統(tǒng)也應(yīng)運(yùn)而生。
1 現(xiàn)有DCS仿真系統(tǒng)
DCS仿真系統(tǒng)是將真實(shí)DCS在非DCS的計(jì)算機(jī)系統(tǒng)中重現(xiàn)(純軟件),不會(huì)涉及到底層硬件,完全可以運(yùn)行在普通的PC環(huán)境中。基于這種與硬件無(wú)關(guān)的特性,仿真系統(tǒng)可應(yīng)用于操作人員的培訓(xùn)和前期的工程調(diào)試。所以,DCS仿真系統(tǒng)的仿真程度直接影響到后期的實(shí)際操作。
目前主要存在兩種方式:(1)保留原有的集散控制系統(tǒng)軟件和硬件,接入一個(gè)只限于實(shí)現(xiàn)過程仿真的仿真計(jì)算機(jī),即激勵(lì)(Stimulation)方式;(2)全范圍各個(gè)部分的仿真,用軟件模擬硬件的方式仿真其人機(jī)界面,而不必復(fù)制其所有功能,即仿真(Simulation)方式[1]。
上述兩種方式中,激勵(lì)方式的軟硬件仿真程度較高,但實(shí)現(xiàn)復(fù)雜,與模型連接也很困難。相對(duì)來(lái)說仿真方式比較容易實(shí)現(xiàn),軟件實(shí)現(xiàn)整個(gè)過程靈活性較強(qiáng),可以運(yùn)用于不同的環(huán)境,同時(shí)便于系統(tǒng)升級(jí)。
2 基于虛擬機(jī)技術(shù)的DCS仿真系統(tǒng)
在各個(gè)環(huán)節(jié)使用軟件實(shí)現(xiàn)對(duì)DCS的仿真,然而DCS中很多軟件已經(jīng)運(yùn)行在PC機(jī)上,尤其是操作人員使用的上位機(jī)軟件,這部分完全可以直接使用,不必額外仿真,具體操作在實(shí)際DCS中與DCS仿真系統(tǒng)中都完全一樣,并使得硬件及其相關(guān)硬件也能得到完全模擬。基于虛擬機(jī)技術(shù)的DCS系統(tǒng)實(shí)現(xiàn)的是硬件以及與硬件相關(guān)部分的仿真,即可以在PC環(huán)境中再現(xiàn)DCS。圖1所示為DCS結(jié)構(gòu)圖。
圖1中Level 2的工程師站、操作員站均運(yùn)行在PC環(huán)境中,Level 1及Level 0是硬件相關(guān)的部分。控制器是整個(gè)DCS中最為重要的環(huán)節(jié),對(duì)上起著接受操作命令和反饋現(xiàn)場(chǎng)數(shù)據(jù)的作用;對(duì)下起著傳遞命令和采集現(xiàn)場(chǎng)數(shù)據(jù)的作用。目前最簡(jiǎn)單的控制器仿真是將控制器程序移植到PC環(huán)境中,這樣不僅改變了控制器程序,也丟失了一部分硬件特性,同時(shí)會(huì)隨著控制器程序的不斷升級(jí)而頻繁升級(jí),并需要時(shí)刻保持與控制器程序?qū)R。
而基于虛擬機(jī)技術(shù)的DCS仿真系統(tǒng)則是把仿真目標(biāo)放在了控制器本身,而不是控制器程序。在PC中實(shí)現(xiàn)一個(gè)虛擬的主控制器,控制器程序可以直接運(yùn)行在虛擬控制器中,使得控制器程序的升級(jí)只需要簡(jiǎn)單的替換鏡像文件。只有當(dāng)硬件出現(xiàn)升級(jí)的時(shí)候,才需要對(duì)虛擬控制器進(jìn)行升級(jí)。硬件穩(wěn)定性相對(duì)較高,不會(huì)出現(xiàn)頻繁地升級(jí)。
Level 0的硬件模塊內(nèi)部邏輯比較簡(jiǎn)單,可以使用LabVIEW實(shí)現(xiàn)虛擬設(shè)備。虛擬控制器將輸出值傳送給虛擬設(shè)備,最終虛擬設(shè)備根據(jù)輸出值在顯示面板中作相應(yīng)的顯示,同時(shí)虛擬設(shè)備也可以將自身的某些值傳給虛擬控制器。
綜上所述,整個(gè)基于虛擬機(jī)技術(shù)的DCS仿真系統(tǒng),是由Level 2的實(shí)際軟件、Level 1虛擬控制器以及實(shí)際的控制器軟件和Level 0虛擬設(shè)備模塊組成。由此可以看出,難點(diǎn)是虛擬控制器的實(shí)現(xiàn)。
3 虛擬控制器的實(shí)現(xiàn)
虛擬機(jī)的實(shí)現(xiàn)主要有兩種方式:(1)主要由軟件完全模擬目標(biāo)平臺(tái)的每一條指令,所以稱為指令集虛擬機(jī)ISA(Instruction Set Architecture),又因?yàn)槭峭耆M所以又稱模擬器;(2)借助于特定平臺(tái)和OS環(huán)境,利用VMM(Virtual Machine Monitor)程序?yàn)橛脩籼峁┮粋€(gè)高效的虛擬執(zhí)行環(huán)境,其主要特點(diǎn)就是執(zhí)行效率高。由于使用了宿主操作系統(tǒng)的特性對(duì)功能進(jìn)行了虛擬,所以稱為功能級(jí)或者抽象級(jí)虛擬機(jī),也屬于一種仿真技術(shù)[2-3]。
目前控制器的結(jié)構(gòu)主要包括了CPU、內(nèi)存、網(wǎng)卡、Flash、DOC、雙口RAM、SRAM以及各種端口。其中許多特定的硬件需要模擬,所以選擇指令集虛擬機(jī)技術(shù)設(shè)計(jì)虛擬控制器。圖2所示為虛擬控制器的結(jié)構(gòu)圖。
圖2中各個(gè)模塊完全按照現(xiàn)實(shí)控制器進(jìn)行劃分和設(shè)計(jì)。
(1)CPU模塊包括實(shí)現(xiàn)指令的模擬和各個(gè)寄存器的實(shí)現(xiàn)。
(2)內(nèi)存模塊主要實(shí)現(xiàn)內(nèi)存的模擬,其大小在虛擬控制器啟動(dòng)時(shí)確定,運(yùn)行期間不能改變。
(3)網(wǎng)卡模塊主要實(shí)現(xiàn)虛擬控制器的網(wǎng)卡,使得虛擬控制器可以通過網(wǎng)絡(luò)發(fā)送和接收數(shù)據(jù)。
(4)存儲(chǔ)模塊相當(dāng)于實(shí)現(xiàn)了虛擬機(jī)的存儲(chǔ)介質(zhì),例如Flash、DOC、電子盤等。
(5)SRAM模塊實(shí)現(xiàn)控制器用于掉電保護(hù)的SRAM,并用于虛擬機(jī)的數(shù)據(jù)掉電保護(hù)。
(6)雙口RAM模塊主要模擬控制器與DP主卡交互數(shù)據(jù)的雙口RAM。
(7)端口模塊實(shí)現(xiàn)控制器上的各個(gè)端口,虛擬控制器需要從端口讀取站號(hào),單雙機(jī)狀態(tài)、LED燈狀態(tài)和其他狀態(tài)。
(8)顯示模塊主要模擬類似顯示器的作用。
(9)主板模塊在整個(gè)虛擬控制器起著協(xié)調(diào)作用,具有配置整個(gè)虛擬控制器的硬件特性,其中還包括定時(shí)器。
虛擬控制器在啟動(dòng)時(shí),先讀取硬件配置信息,如內(nèi)存大小、硬盤大小、網(wǎng)卡數(shù)目及其配置信息。根據(jù)配置情況分配資源、初始化各個(gè)設(shè)備、讀取鏡像文件,然后進(jìn)入指令執(zhí)行階段。此階段為循環(huán)執(zhí)行,直到虛擬控制器被執(zhí)行關(guān)機(jī)操作。當(dāng)有關(guān)機(jī)動(dòng)作時(shí),中斷捕獲后交由相應(yīng)的中斷處理模塊。首先需要釋放啟動(dòng)時(shí)申請(qǐng)的資源,然后才能退出。同時(shí)還存在其他中斷,如屏幕輸出、鍵盤輸入等,具體流程如圖3所示。
虛擬控制器不僅應(yīng)用于DCS仿真系統(tǒng)中,也可以用于調(diào)試運(yùn)行控制器上的嵌入式操作系統(tǒng)中,分析操作系統(tǒng)性能。只需在虛擬控制器各個(gè)模塊加入統(tǒng)計(jì)信息,就可計(jì)算控制器程序及其嵌入式操作系統(tǒng)的運(yùn)行情況,例如在指令集中加入統(tǒng)計(jì)信息,并運(yùn)行操作一段時(shí)間后,即可以統(tǒng)計(jì)出操作系統(tǒng)主要指令的集中部分。這種虛擬機(jī)技術(shù)還有其他用途,比如可以做病毒分析,基于這種技術(shù)的應(yīng)用(也稱虛擬機(jī)技術(shù))是一種啟發(fā)式探測(cè)未知病毒的反病毒技術(shù),能夠有效地檢測(cè)出未知病毒及危險(xiǎn)代碼[4]。
評(píng)論
查看更多