計算機(jī)監(jiān)控接口技術(shù)研究
圖1 典型的計算機(jī)監(jiān)控系統(tǒng)硬件結(jié)構(gòu)
無論是串行通訊還是網(wǎng)絡(luò)通訊,都不能保證其數(shù)據(jù)傳輸平穩(wěn)流暢,即數(shù)據(jù)有間斷性。應(yīng)該根據(jù)具體的情況,將一定時間內(nèi)的不連續(xù)的數(shù)據(jù)合并成一個完整的數(shù)據(jù)包,進(jìn)行校驗(yàn)分析。將屬于一個數(shù)據(jù)包的不連續(xù)的數(shù)據(jù)分開,或?qū)⒉粚儆谝粋€數(shù)據(jù)包的數(shù)據(jù)合并處理都是錯誤的,這是由于軟件處理不當(dāng)所造成的嚴(yán)重的通訊故障。實(shí)際的數(shù)據(jù)流示例如圖2所示。受控機(jī)的軟件一般采用低級語言編寫,這可以通過設(shè)置循環(huán)次數(shù)來收集數(shù)據(jù),如果在設(shè)置的最大的時間片內(nèi)沒有新的數(shù)據(jù)到達(dá),則當(dāng)前數(shù)據(jù)為一個數(shù)據(jù)包,作為整體進(jìn)行處理。在主控機(jī)端則可以簡單地通過定時器來實(shí)現(xiàn)。對于串行通訊,等待的時間片由字節(jié)數(shù)來計算,并考慮波特率和具體的串口類型。
圖2 實(shí)際數(shù)據(jù)流
由于計算機(jī)一般配備網(wǎng)口(RJ45)和串口(RS232),所以,用軟件來實(shí)現(xiàn)網(wǎng)口和串口之間的數(shù)據(jù)轉(zhuǎn)換,是一個安全、可靠和方便的手段,避免了硬件串行網(wǎng)關(guān)的設(shè)備故障的可能性??梢酝ㄟ^Visual Basic語言,采用串行通訊控件MsComm32.OCX和網(wǎng)絡(luò)通訊控件WinSock.OCX[3][4]來實(shí)現(xiàn),兩個控件的收發(fā)數(shù)據(jù)的變量類型都應(yīng)設(shè)置為變體Variant,因?yàn)樵跀?shù)據(jù)包中存在“00”字節(jié)是常有的事,如果設(shè)置為字符串String,“00”字節(jié)后面的數(shù)據(jù)將被截去。MsComm控件是通過Input和Output屬性來收發(fā)數(shù)據(jù)的,應(yīng)將接收閾值設(shè)為1,即一有數(shù)據(jù),立即響應(yīng),當(dāng)發(fā)生數(shù)據(jù)到達(dá)事件comEvReceive時,通過Input屬性直接讀取數(shù)據(jù),然后通過Winsock的SendData立即轉(zhuǎn)發(fā)(見圖3-1所示)。對于WinSock控件,當(dāng)發(fā)生DataArrival事件時,用GetData函數(shù)讀取,然后通過MsComm控件的Output屬性立即轉(zhuǎn)發(fā)(見圖3-2所示)。 串口的通訊屬性必須與對等設(shè)備的通訊屬性一致。至于網(wǎng)口,可以有兩種方式與對等設(shè)備建立連接,如果對等設(shè)備以服務(wù)器方式工作,則以客戶機(jī)方式(Winsock.Connect)建立連接(預(yù)先設(shè)置服務(wù)器的IP地址和端口號);如果對等設(shè)備以客戶機(jī)方式工作,則以服務(wù)器方式(Winsock.Listen)偵聽,等待客戶機(jī)的連接請求并作出相應(yīng)的處理。
5 遠(yuǎn)程測試模型及分析
對計算機(jī)監(jiān)控系統(tǒng)進(jìn)行測試的最理想的地理位置,一般是現(xiàn)場,因?yàn)橹挥性诂F(xiàn)場,才能觀察各種復(fù)雜的因素。有的監(jiān)控模塊可以通過撤換法進(jìn)行查錯,然而,大型設(shè)備,如大型柴油發(fā)電機(jī)組,難以搬遷,也無法替換。如何采用一種簡潔高效的方式,對現(xiàn)場監(jiān)控系統(tǒng)和設(shè)備進(jìn)行檢測?文獻(xiàn)[5]介紹了一個“智能設(shè)備的通用測試”軟件,通過串口進(jìn)行測試,只能在近距離或現(xiàn)場進(jìn)行。借助上文的串口和網(wǎng)口的轉(zhuǎn)換軟件,可以實(shí)現(xiàn)遠(yuǎn)距離現(xiàn)場測試。遠(yuǎn)程測試模型如圖4所示,服務(wù)器和客戶機(jī)都是普通的PC機(jī),均運(yùn)行RS232/RJ45轉(zhuǎn)換軟件。
圖4 遠(yuǎn)程測試模型
對于測試結(jié)果,如果屬于軟故障,即非設(shè)備故障,工程師可以通過電子協(xié)作指示用戶對系統(tǒng)加以調(diào)整或維護(hù);如果是硬故障,即設(shè)備故障,工程師可以根據(jù)具體情況,有準(zhǔn)備地去現(xiàn)場解決問題,節(jié)省人力物力。
6 結(jié)束語
計算機(jī)監(jiān)控系統(tǒng)廣泛應(yīng)用于眾多領(lǐng)域,接口的可靠性則關(guān)系到系統(tǒng)的生命。本文充分研究了各種常用接口的硬件性能和相關(guān)的軟件特性,以及接口之間的硬件轉(zhuǎn)換和軟件轉(zhuǎn)換,最后設(shè)計了一個遠(yuǎn)程測試模型,并在局域網(wǎng)上通過了測試,取得了良好的效果。通過因特網(wǎng)進(jìn)行遠(yuǎn)程測試,可以節(jié)省大量的人力物力,不失為一種高效的測試手段。
參考文獻(xiàn)
[1] 大漠電子?http://www.demo.com.cn/,2003
[2] 馬玉春,趙躍華?高山無人站監(jiān)控系統(tǒng)設(shè)計與開發(fā)?電腦開發(fā)與應(yīng)用[J]?13(9):35, 2000
[3] 汪曉平,鐘軍等?Visual Basic網(wǎng)絡(luò)高級編程[M],北京:人民郵電出版社,2001
[4] MSDN Library Archive?http://msdn.microsoft.com/archive/,2003
[5] 王建明,馬玉春?智能設(shè)備的通用測試?工業(yè)控制計算機(jī)[J]?15(12):10, 2002(end)
評論