Gw21x 在集中監(jiān)控系統(tǒng)中的應(yīng)用方案
在傳統(tǒng)的集中監(jiān)控系統(tǒng)中,一般通過Modem或E1等進行數(shù)據(jù)傳輸,隨著網(wǎng)絡(luò)技術(shù)的發(fā)展和網(wǎng)絡(luò)在各行各業(yè)的普及,通過網(wǎng)絡(luò)進行遠(yuǎn)程監(jiān)控和遠(yuǎn)程數(shù)據(jù)采集成為一種最經(jīng)濟最可靠的方式。但由于網(wǎng)絡(luò)跟傳統(tǒng)通訊方式的工作模式和工作原理相比具有更好的優(yōu)勢,因此為了充分發(fā)揮網(wǎng)絡(luò)通訊的優(yōu)勢,基于網(wǎng)絡(luò)的遠(yuǎn)程監(jiān)控和遠(yuǎn)程數(shù)據(jù)采集可以采用一些更加高效和可靠的軟件設(shè)計方案。本文以下以北京市金招牌技術(shù)有限公司生產(chǎn)的Gw21x轉(zhuǎn)換器為例,對基于網(wǎng)絡(luò)的遠(yuǎn)程監(jiān)控和遠(yuǎn)程數(shù)據(jù)采集的系統(tǒng)設(shè)計方案進行一些探討。
首先我們了解一下Gw21x 的功能:Gw21x 是一個RS232與TCP/IP的協(xié)議轉(zhuǎn)換器,它提供RS232到網(wǎng)絡(luò)和網(wǎng)絡(luò)到RS232的透明數(shù)據(jù)傳輸 ,Gw21x 向上提供10M以太網(wǎng)接口,向下提供1個標(biāo)準(zhǔn)RS232串行口,內(nèi)部集成ARP,IP,ICMP,TCP,UDP,DHCP,SOCK5等協(xié)議,支持網(wǎng)關(guān)和代理服務(wù)器。
Gw21x 有三種工作模式: 1. 作為TCP服務(wù)器,轉(zhuǎn)換器在指定的TCP端口上監(jiān)聽平臺程序的連接請求;2. 作為TCP客戶端,轉(zhuǎn)換器上電時主動向平臺程序請求連接。 3. 自動方式,轉(zhuǎn)換器一般工作在TCP服務(wù)器模式,當(dāng)轉(zhuǎn)換器收到串口數(shù)據(jù)時自動切換到TCP客戶端模式,轉(zhuǎn)換器向平臺程序請求連接,并將數(shù)據(jù)傳送到平臺,傳送完后轉(zhuǎn)換器自動切換回TCP服務(wù)器模式。
監(jiān)控中心應(yīng)用程序可以通過三種方式和Gw21x轉(zhuǎn)換器進行數(shù)據(jù)通訊:1.使用Socket(套接字);2.本公司提供的ActiveX控件(EDSockServer.ocx);3.虛擬串口。
一.系統(tǒng)結(jié)構(gòu)
使用Gw21x的基于網(wǎng)絡(luò)的遠(yuǎn)程監(jiān)控和遠(yuǎn)程數(shù)據(jù)采集的系統(tǒng)結(jié)構(gòu)如下:
監(jiān)控平臺負(fù)責(zé)與現(xiàn)場設(shè)備通訊,接收各種現(xiàn)場設(shè)備信息和控制現(xiàn)場設(shè)備,并把經(jīng)過處理后的數(shù)據(jù)保存到數(shù)據(jù)庫;數(shù)據(jù)服務(wù)器運行數(shù)據(jù)庫系統(tǒng),同時通過WEB服務(wù)器向數(shù)據(jù)查詢終端提供數(shù)據(jù);數(shù)據(jù)查詢終端通過瀏覽器或?qū)S貌樵児ぞ卟樵兯枰男畔ⅰ?
二.軟件設(shè)計方案
由于監(jiān)控中心應(yīng)用程序可以通過三種方式和Gw21x轉(zhuǎn)換器進行數(shù)據(jù)通訊,本文以使用控件(EDSockServer.ocx)與Gw21x通訊為例說明平臺軟件的設(shè)計方案(使用Windows Socket與Gw21x通訊與使用控件與Gw21x通訊可以采用相同的軟件設(shè)計方案):
1. 首先監(jiān)控中心軟件要能識別現(xiàn)場設(shè)備,現(xiàn)場設(shè)備必須具有一個唯一的標(biāo)識。一般來講可以采用以下三種方式標(biāo)識現(xiàn)場設(shè)備:
?。?)使用Gw21x的MAC地址標(biāo)識現(xiàn)場設(shè)備。(該方式只適用于使用控件的情況)
?。?)使用現(xiàn)場設(shè)備自己的序列號。(該序列號對于每個現(xiàn)場設(shè)備必須是唯一的,這種方式可以同時適用于使用控件和使用Win Socket的情況)
?。?)使用Gw21x 的IP地址標(biāo)識現(xiàn)場設(shè)備,但這樣要求每個現(xiàn)場設(shè)備分配一個固定的IP地址,這樣做在很多情況下會帶來網(wǎng)絡(luò)資源浪費和網(wǎng)絡(luò)管理及維護的困難。一般不推薦使用此方式。(這種方式可以同時適用于使用控件和使用Win Socket的情況)
2. 在傳統(tǒng)的遠(yuǎn)程監(jiān)控和分布式數(shù)據(jù)采集細(xì)途中,一般采用主機輪詢的方式進行數(shù)據(jù)通訊,這樣做的目的主要是為了解決總線和資源(如串口,Modem)競爭的問題,但總線和資源競爭的問題在網(wǎng)絡(luò)環(huán)境中已經(jīng)不存在了,因此在網(wǎng)絡(luò)條件下完全可以采用基于事件驅(qū)動的更加高效的通訊方式,具體來說就是:
Gw21x 和平臺軟件建立TCP連接的過程中,將平臺軟件作為TCP服務(wù)器時,與平臺軟件連接的Gw21x設(shè)置為TCP客戶端的工作方式,平臺軟件在指定TCP端口上被動的等待Gw21x的連接請求,Gw21x上電時主動向監(jiān)控平臺請求建立TCP連接,監(jiān)控平臺軟件在收到連接請求后建立TCP連接,并且連接一旦建立,除非監(jiān)控平臺軟件主動要求斷開連接,否則連接一直保持,這樣可以保證監(jiān)控平臺軟件和Gw21x之間的數(shù)據(jù)通訊管道一直存在,由于TCP連接建立后如果不進行數(shù)據(jù)通訊,它不占用任何網(wǎng)絡(luò)資源,因此采用這種方式不但可以保證用戶程序和Gw21x之間的通訊可以時實進行,而且不會增加任何網(wǎng)絡(luò)負(fù)擔(dān)。
由于監(jiān)控平臺軟件和Gw21x 之間的TCP連接一直存在,因此現(xiàn)場設(shè)備如果有數(shù)據(jù)需要傳送到監(jiān)控平臺時,它隨時可以與監(jiān)控平臺進行通訊,即使有兩個或多個現(xiàn)場設(shè)備同時向監(jiān)控平臺發(fā)送數(shù)據(jù)也不會造成任何問題,因為監(jiān)控平臺與每個Gw21x的TCP連接都分別由不同的Win Socket進行管理,當(dāng)某個TCP連接收到數(shù)據(jù)時相應(yīng)的Win Socket會通過“接收數(shù)據(jù)事件”通知平臺軟件進行數(shù)據(jù)處理,當(dāng)同時從幾個連接收到數(shù)據(jù)時,這些TCP連接相對應(yīng)的Win Socket會分別產(chǎn)生“接收數(shù)據(jù)事件”,這些事件進入平臺軟件的事件隊列,由平臺軟件分別進行處理。當(dāng)監(jiān)控平臺有數(shù)據(jù)需要傳送到現(xiàn)場設(shè)備時,監(jiān)控平臺隨時可以向現(xiàn)場設(shè)備發(fā)送數(shù)據(jù),而不必理會其它現(xiàn)場設(shè)備和平臺軟件的通訊狀態(tài)。
通過這種基于事件驅(qū)動方式設(shè)計的遠(yuǎn)程監(jiān)控系統(tǒng),當(dāng)現(xiàn)場設(shè)備產(chǎn)生報警信息時,現(xiàn)場設(shè)備可以立即將這個信息傳送到監(jiān)控平臺,而不必等到監(jiān)控平臺輪詢到該現(xiàn)場設(shè)備時才傳送。這樣就大大提高了系統(tǒng)的響應(yīng)速度,特別是當(dāng)系統(tǒng)中現(xiàn)場設(shè)備數(shù)量較大時,效果更加明顯。同時由于避免了輪詢點名,系統(tǒng)中網(wǎng)絡(luò)通訊的數(shù)據(jù)量大大減少,節(jié)約了網(wǎng)絡(luò)帶寬,也就意味著節(jié)約了網(wǎng)絡(luò)資源和網(wǎng)絡(luò)投資。(雖然點名時傳送的數(shù)據(jù)很少,但在網(wǎng)絡(luò)通訊中,即使只有一個字節(jié)的有效數(shù)據(jù),它產(chǎn)生的一個以太網(wǎng)數(shù)據(jù)包也超過512字節(jié),因為不足512個字節(jié)時協(xié)議自動用無用數(shù)據(jù)填充,而在輪詢點名的系統(tǒng)中會產(chǎn)生大量的這種數(shù)據(jù)包,使網(wǎng)絡(luò)的效率下降。)
3. 平臺軟件基于事件驅(qū)動時的通訊處理流程如下:
?。?)通過Gw21x 的MAC地址標(biāo)識設(shè)備
?。?)通過現(xiàn)場設(shè)備序列號標(biāo)示設(shè)備
將Gw21x 的工作方式設(shè)置成“TCP客戶端”。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。