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