摘要:以精密
離心機為背景,對基于DCOM的分布式實時診斷與監(jiān)控系統(tǒng)設計中涉及的主要問題和關鍵技術(shù)進行研究。結(jié)合具體的實際系統(tǒng),采用分布式組件的方法,實現(xiàn)了精密
離心機控制局域網(wǎng)絡,使得整個系統(tǒng)在系統(tǒng)維護、實時處理能力上有了很大的提高。長期運行的結(jié)果表明,該系統(tǒng)能夠完成測試任務,并達到要求的性能指標。
關鍵詞:精密離心機;實時故障診斷與監(jiān)控;分布式組件對象模型;DCOM
中圖分類號:U666.1文獻標識碼:A
0 引言
精密離心機作為一種重要的慣導測試設備,屬于復雜的大型旋轉(zhuǎn)機械系統(tǒng)。它的高精度特性使得控制、測量及機械設計趨于復雜,包括位置控制、速率控制、溫度控制、氣壓控制、濕度控制、超速保護等子系統(tǒng)。每個子系統(tǒng)都是獨立的計算機控制系統(tǒng),同時精密離心機工作在高速旋轉(zhuǎn)狀態(tài)。為了人員和設備的安全,整個離心機被放置在密閉的鋼結(jié)構(gòu)的保護罩中,這就要求控制系統(tǒng)具有網(wǎng)絡通訊、遠程控制能力,同時對系統(tǒng)的實時性、可靠性、開放性提出了更高的要求。
IBM和Microsoft公司認為,未來的軟件應用體系結(jié)構(gòu)必然為分布式網(wǎng)絡體系結(jié)構(gòu)。面對這樣的發(fā)
1DCOM分布式組件技術(shù)在工業(yè)控制中的應用展趨勢,分布式組件技術(shù)及基于組件技術(shù)的分布式軟件平臺也將是控制局域網(wǎng)絡軟件的重要發(fā)展方向。
Microsoft的DCOM即分布式組件對象模型,支持在局域網(wǎng)、廣域網(wǎng)上不同計算機對象之間的通訊。利用DCOM技術(shù)能夠使控制程序?qū)崿F(xiàn)物理空間上的分布性,而且在DCOM組成的分布式控制局域網(wǎng)絡中,DCOM已經(jīng)處理了底層的網(wǎng)絡協(xié)議細節(jié)問題,從而使控制系統(tǒng)開發(fā)人員能夠集中精力解決控制對象的實際問題。
整體結(jié)構(gòu)
當客戶進程和組件位于不同的機器時,DCOM僅僅只是用網(wǎng)絡協(xié)議來代替本地進程之間的通訊。圖1顯示了DCOM的整體結(jié)構(gòu):COM運行庫向客戶和組件提供了面向?qū)ο蟮姆眨⑶沂褂肦PC和安全機制產(chǎn)生符合DCOM線路協(xié)議標準的標準網(wǎng)絡包。
DCOM組件具有位置透明性,無論它是位于客戶的同一進程中,還是在其它地方(甚至在地球的另一端),客戶連接組件和調(diào)用組件的方法都是一樣的。DCOM不僅無需改變源碼,而且無需重新編譯程序。一個簡單的再配置動作就改變了組件與組件之間相互連接的方式。
DCOM由于具有語言獨立性,使得控制系統(tǒng)開發(fā)人員可以選擇他們最熟悉的語言和工具來進行開發(fā),特別適合團隊協(xié)作開發(fā)。DCOM將網(wǎng)絡循環(huán)時間最小化,避免了網(wǎng)絡中潛在的擁塞。DCOM選擇了無連接UDP協(xié)議作為的傳輸協(xié)議。協(xié)議的無連接特性使得DCOM能夠?qū)⒃S多低級別的確認包和實際的數(shù)據(jù)以及地址合法性檢查(pinging)信息混合起來,從而改善了性能。即使是運行在面向連接的協(xié)議上,DCOM也優(yōu)于傳統(tǒng)的面向特殊應用的協(xié)議。DCOM使用了WindowsNT提供的擴展的安全框架。WindowsNT提供了一套穩(wěn)固的內(nèi)建式安全模塊,DCOM無需在客戶端和組件上進行任何專門為安全性而做的編碼和設計工作,就可以為分布式控制局域應用系統(tǒng)提供安全性保障。
總之,DCOM技術(shù)為控制局域網(wǎng)絡軟件開發(fā)的帶來全新的革命。
2 基于DCOM的分布式實時診斷與監(jiān)控系統(tǒng)的結(jié)構(gòu)
精密離心機系統(tǒng)分別由動態(tài)半徑及失準角測量系統(tǒng)、溫度控制系統(tǒng)、主軸控制系統(tǒng)、動平衡系統(tǒng)、鳥籠控制系統(tǒng)、中心監(jiān)控系統(tǒng)、故障診斷系統(tǒng)組成。
圖 2
如圖2所示,每個系統(tǒng)都是獨立的計算機控制系統(tǒng),DCOM客戶端和組件根據(jù)設計配置在各子系統(tǒng)中,通過100M交換機組成了局域控制網(wǎng)絡。
主軸控制系統(tǒng)控制整個離心機大臂的旋轉(zhuǎn),其精度和穩(wěn)定性對整個系統(tǒng)的影響至關重要。主軸控制系統(tǒng)控制離心機的旋轉(zhuǎn)速度、旋轉(zhuǎn)方式和顯示運行狀況,同時負責把一些運行狀態(tài)傳送到遠程的中心管理機,并能接收到中心管理機的控制命令并通過WDM驅(qū)動程序控制主軸的運行。
鳥籠控制系統(tǒng)對精密離心機系統(tǒng)的精密測試端進行控制,它的精度和穩(wěn)定性同樣對于被測慣性器件的測試精度至關重要。
動平衡系統(tǒng)用于避免由于旋轉(zhuǎn)機械不平衡而產(chǎn)生振動、噪聲及部件破壞等現(xiàn)象,采用自動平衡技術(shù)在某些平面上加上或減去校正質(zhì)量,因而改善了運動部分的質(zhì)量分布,使校正質(zhì)量產(chǎn)生的振動與不平衡產(chǎn)生的振動相互抵消,消除不平衡力,實現(xiàn)旋轉(zhuǎn)機械轉(zhuǎn)子的自動平衡。
溫度控制系統(tǒng)對慣性器件的測試環(huán)境溫度進行控制,從而為測試設備提供一個恒定溫度的測試環(huán)境,以滿足對加速度計測試的精度要求。
精密離心機工作在高速旋轉(zhuǎn)狀態(tài)。為了人員和設備的安全,整個離心機被放置在密閉的鋼結(jié)構(gòu)保護罩中;中心監(jiān)控系統(tǒng)和故障診斷系統(tǒng)位于遠程操作控制平臺,操作人員通過中心監(jiān)控系統(tǒng)實現(xiàn)對上述各子系統(tǒng)的遠程控制,發(fā)送控制指令。
同時各子系統(tǒng)的運行狀態(tài)也實時顯示在屏幕上,中心監(jiān)控系統(tǒng)還利用視頻監(jiān)控系統(tǒng)直接對工作倉內(nèi)
精密離心機的工作狀況進行實時監(jiān)控。
此外對于精密離心機系統(tǒng)這樣一個大型的高速旋轉(zhuǎn)機械系統(tǒng),其安全性顯得至關重要,稍有不慎,后果不堪設想。因此,故障診斷與安保系統(tǒng)必不可少。當離心機大臂高速運轉(zhuǎn)時,由于外界干擾或者系統(tǒng)本身的不穩(wěn)定因素,有可能出現(xiàn)旋轉(zhuǎn)速度超過設定狀態(tài)或飛車等各種難以預料的現(xiàn)象。對于這些情況,我們設置了超速報警,當出現(xiàn)飛車事故時,能及時自動急停保護,以防止出現(xiàn)人員傷亡或設備損失等危險情況。對于精密離心機系統(tǒng)這種高速旋轉(zhuǎn)的大型的機械慣性系統(tǒng)來說,提前預報比實時報警更加重要,因此故障診斷系統(tǒng)除了具有實時診斷報警功能外,還利用數(shù)據(jù)挖掘技術(shù)實現(xiàn)歷史數(shù)據(jù)的故障分析。
3 DCOM關鍵技術(shù)在精密離心機中具體實現(xiàn)
下面以運行在主軸控制系統(tǒng)上的測角采集組件為例,說明精密離心機各子系統(tǒng)如何利用DCOM構(gòu)成了局域控制網(wǎng)絡。
圖 3
如圖3所示,精密離心機運行時,中心管理機向主軸控制系統(tǒng)發(fā)送控制指令,同時主軸的運行參數(shù),包括角度、速度數(shù)據(jù)也要實時傳送到中心控制機,并在監(jiān)控屏幕上顯示,而同時動平衡系統(tǒng)在測試主軸旋轉(zhuǎn)轉(zhuǎn)子的不平衡性時,也需要主軸的角度數(shù)據(jù)。按照傳統(tǒng)的SOCKET網(wǎng)絡編程技術(shù),就要在主軸控制系統(tǒng)軟件中為二者分別開設網(wǎng)絡端口和相應的網(wǎng)絡鏈接傳輸代碼,而利用DCOM的組件復用特性,只需要在主軸控制系統(tǒng)設置一個測角數(shù)據(jù)采集組件,中心監(jiān)控系統(tǒng)和動平衡系統(tǒng)都可以通過DCOM客戶請求的形式,訪問主軸控制系統(tǒng)服務器,實現(xiàn)對測角數(shù)據(jù)采集。
客戶端程序運行在中心監(jiān)控系統(tǒng)和動平衡系統(tǒng)之中,為了激活DCOM服務器,必須在客戶端做如下工作:將服務器計算機名字載入到 COSERVERINFO結(jié)構(gòu)體,然后調(diào)用CoCreateInstanceEx(),包括相應的參數(shù)和一個稱為MULTI_QI的結(jié)構(gòu)體。在任何的 DCOM編程中,首先要做的第一件事情是調(diào)用CoInitialize()。我們將使用默認的線程模式,也就是獨立線程。
//初始化DCOMhr=CoInitialize(0);
進行遠程DCOM連接時,你必須指定服務器計算機的名字。計算機的名字可以是一個標準的UNC計算機名字或者是一個TCP/IP地址。該服務器的名字將會被載入到一個COSERVERINFO結(jié)構(gòu)體中。這個結(jié)構(gòu)體需要一個指向?qū)捵址?BR> (wide-character)的指針以得到服務器的名字。
設置好COSERVERINFO結(jié)構(gòu)體。我們將把它傳送到CoCreateInstanceEx以指定服務器。 CoCreateInstanceEx可一次返回超過一個接口。它通過傳送MULTI_QI結(jié)構(gòu)體的一個數(shù)組來做到這一點。數(shù)組的每個元素指定了一個單一的接口。CoCreateInstanceEx將會填入到數(shù)據(jù)請求中。
//為CoCreateInstanceEx定義MULTI_QI結(jié)構(gòu)體
MULTI_QIqi[2];
memset(qi,0,sizeof(qi));
qi[0].pIID=&IID_IGetInfo;
qi[1].pIID=&IID_ISomeOtherInterface;
hr=CoCreateInstanceEx(CLSID_GetInfo,NULL,CLSCTX_SERVER,&cs,2,qi);
一切準備好后,就可以調(diào)用CoCreateInstanceEx。一旦已經(jīng)確定接口被返回了,就表示客戶端連接到DCOM服務器,你就可以使用這個接口指針調(diào)用相應的方法實現(xiàn)控制與數(shù)據(jù)采集功能。
4 結(jié)論
目前,精密離心機各子系統(tǒng)運行平臺為Windows2000平臺,利用DCOM技術(shù)構(gòu)成的控制局域網(wǎng)絡,已經(jīng)實現(xiàn)遠程控制和數(shù)據(jù)采集、故障診斷等功能,系統(tǒng)安全可靠。
最后還要指出,一種新的軟件開發(fā)技術(shù)是否真正適合應用到工業(yè)控制領域,需要我們審慎分析和實踐的檢驗。由于DCOM在遠程連接、傳輸速度與透過防火墻訪問的能力還存在一定問題,所以作者更建議把DCOM技術(shù)應用到控制局域網(wǎng)絡而不是廣域網(wǎng)中。