伍孝雄 孔令聰
【摘 要】“綠水青山就是金山銀山”。隨著中國將生態(tài)文明建設(shè)與綠色發(fā)展作為“十三五”時期經(jīng)濟(jì)社會發(fā)展的一個重要理念,中國社會已經(jīng)越來越注重清潔能源的使用,天然氣作為一種清潔能源已經(jīng)越來越廣泛地被城市與鄉(xiāng)鎮(zhèn)居民使用,但是天然氣是一種有毒、易燃易爆的氣體,國內(nèi)的燃?xì)馄髽I(yè)也注意到相關(guān)事件的危害,對此,各燃?xì)馄髽I(yè)與設(shè)備廠家也相應(yīng)地研發(fā)了基于物聯(lián)網(wǎng)的可燃?xì)怏w泄露報警平臺。但是各廠家與平臺協(xié)議互不兼容,而使用廠家的燃?xì)馄脚_又不便于統(tǒng)一管理,因此燃?xì)馄髽I(yè)需要建立起自己的預(yù)警平臺,方便統(tǒng)一管理。文章針對各廠家平臺協(xié)議互不兼容的現(xiàn)象,制定平臺使用通信協(xié)議的標(biāo)準(zhǔn),重點(diǎn)論述燃?xì)馄髽I(yè)選用通信協(xié)議的標(biāo)準(zhǔn),解決智慧平臺通信并發(fā)、通信驅(qū)動開發(fā)、通信數(shù)據(jù)與平臺數(shù)據(jù)庫對接等問題。
【關(guān)鍵詞】智慧燃?xì)獍踩O(jiān)控云平臺;通信驅(qū)動模塊;天燃?xì)?設(shè)計
【中圖分類號】TP273;TP309【文獻(xiàn)標(biāo)識碼】A 【文章編號】1674-0688(2020)05-0038-02
0 引言
隨著智慧城市建設(shè)的不斷深入,以及“互聯(lián)網(wǎng)+云平臺”的飛速發(fā)展,將居民燃?xì)庑孤稊?shù)據(jù)通過物聯(lián)網(wǎng)采集到云平臺,進(jìn)行數(shù)據(jù)分析、燃?xì)庑孤段kU預(yù)警、泄露點(diǎn)定位、泄露點(diǎn)維護(hù)等各項工作,讓天然氣用戶安全使用燃?xì)猓婪度藛T傷亡和財產(chǎn)損失,建設(shè)美麗和諧社會。
1 云平臺通信驅(qū)動系統(tǒng)架構(gòu)
智慧燃?xì)庠破脚_通信驅(qū)動系統(tǒng)架構(gòu)如圖1所示,民用探測器采集用戶端可燃?xì)怏w濃度,并通過集成的通信模塊和GSM、GPRS、3G、4G技術(shù)傳輸?shù)皆破脚_,云平臺基于COM等技術(shù)開發(fā)的通信驅(qū)動實現(xiàn)與現(xiàn)場設(shè)備的數(shù)據(jù)交換,并通過DDE等技術(shù)開發(fā)與云平臺實時數(shù)據(jù)庫實現(xiàn)數(shù)據(jù)交換,最終通過云端平臺系統(tǒng)進(jìn)行數(shù)據(jù)分析、報警處理,并通過Web、手機(jī)App、短信等多種方式將濃度報警信息推送給用戶。
2 用戶采集層
用戶采集層主要是采集終端用戶燃?xì)庑孤肚闆r,由可燃?xì)怏w泄露探測器、切斷閥、報警器等設(shè)備組成,其中民用探測器中的氣敏傳感器探測周圍環(huán)境中的低濃度可燃?xì)怏w,通過電路將探測信息傳遞給控制器,濃度超標(biāo)時,控制器執(zhí)行報警信號或關(guān)閥操作,與此同時,將燃?xì)鉂舛刃孤稊?shù)據(jù)通過網(wǎng)絡(luò)實時傳輸?shù)桨踩O(jiān)控云平臺。但是,由于各設(shè)備廠家通信協(xié)議互不兼容,因此最關(guān)鍵的是民用探測器通信驅(qū)動協(xié)議標(biāo)準(zhǔn)的確定,以方便統(tǒng)一開發(fā)通信驅(qū)動,提高系統(tǒng)的穩(wěn)定性及降低云平臺通信模塊的開發(fā)難度與費(fèi)用。
根據(jù)我國的工業(yè)總線實際應(yīng)用情況,選用MODBUS通訊協(xié)議作為云平臺通信協(xié)議標(biāo)準(zhǔn),MODBUS是一種串行通信協(xié)議,于1979年為使用PLC可編程控制器而研發(fā),MODBUS通信協(xié)議已經(jīng)成為工業(yè)領(lǐng)域通信總線協(xié)議的業(yè)界標(biāo)準(zhǔn),MODBUS的廣泛應(yīng)用,使市場上大多的燃?xì)庠O(shè)備廠家都具有此項技術(shù)的研發(fā)能力,并且有相關(guān)產(chǎn)品支持MODBUS協(xié)議,燃?xì)庠O(shè)備廠家只需根據(jù)平臺的要求做簡單的報文表頭協(xié)議處理,就可以設(shè)計生產(chǎn)出符合平臺通信標(biāo)準(zhǔn)的帶遠(yuǎn)傳功能的可燃?xì)怏w泄露探測器。
3 云平臺通信驅(qū)動設(shè)計
云平臺的通信驅(qū)動是整個云平臺項目實現(xiàn)的關(guān)鍵,主要負(fù)責(zé)實現(xiàn)與用戶端民用可燃?xì)怏w探測器的數(shù)據(jù)交換及指令下發(fā),要便于日后系統(tǒng)維護(hù)人員擴(kuò)展用戶接入,不需要專門的開發(fā)人員進(jìn)行接入,只需要對系統(tǒng)維護(hù)人員進(jìn)行簡單的培訓(xùn),就可以完成通信接入,實現(xiàn)數(shù)據(jù)交換。
3.1 通信驅(qū)動模塊設(shè)計要求
3.1.1 通用及可復(fù)用性
通信驅(qū)動模塊組件需采用組件模型對象(COM)技術(shù)研發(fā),組件對象模型是由微軟公司創(chuàng)建的一種二進(jìn)制和網(wǎng)絡(luò)標(biāo)準(zhǔn),遵循這一標(biāo)準(zhǔn)開發(fā)的組件之間可以跨進(jìn)程、跟機(jī)器、跨語言甚至跨操作平臺進(jìn)行通信,組件的優(yōu)點(diǎn)在于可重用性好,具有標(biāo)準(zhǔn)的應(yīng)用接口,“施耐德”為合作伙伴提供了現(xiàn)有的Modbus程序,可以將此程序用COM技術(shù)建成組件對象,將封裝有驅(qū)動程序COM組件對象作為COM服務(wù)器,而實時數(shù)據(jù)庫的數(shù)據(jù)采集功能模塊作為COM的客戶端,利用COM標(biāo)準(zhǔn)的COM機(jī)制和可連接對象機(jī)制,通過COM客戶對服務(wù)器的相互調(diào)用完成實時數(shù)據(jù)庫對設(shè)備數(shù)據(jù)的采集和寫入,進(jìn)一步實現(xiàn)系統(tǒng)對設(shè)備的監(jiān)控。
3.1.2 可視化操作
通信模塊需實現(xiàn)可視化配置與操作,便于系統(tǒng)維護(hù)人員編程與開發(fā),通過可視化配置就可以實現(xiàn)民用泄露探測器的數(shù)據(jù)接入,其可視化配置界面可以參考SCADA組態(tài)軟件的I/O驅(qū)動模塊進(jìn)行設(shè)計。
3.1.3 可擴(kuò)展性
通信模塊需要有良好的擴(kuò)展性,支持通過標(biāo)準(zhǔn)接口(如DLL、DDE等)進(jìn)行對其他通信協(xié)議的擴(kuò)展開發(fā),擴(kuò)大以后平臺的使用范圍。
3.1.4 多線程技術(shù)
通信模塊需要支持多線程技術(shù),可以同步完成對多個民用探測器的數(shù)據(jù)采集,提高資源使用效率。
3.1.5 并發(fā)性要求
通信模塊設(shè)計需充分考慮民用泄露探測器進(jìn)行數(shù)據(jù)采集時產(chǎn)生的大量線程并發(fā)導(dǎo)致平臺通信模塊崩潰的情況,因此通信模塊設(shè)計時需支持同步與異步等多種通信模式,并且可以對每個區(qū)域的民用泄露探測器的數(shù)據(jù)采集時間進(jìn)行設(shè)置,從而錯開采集時間,減少并發(fā)。
3.2 通信驅(qū)動模塊設(shè)計
考慮驅(qū)動程序的可擴(kuò)展性及可復(fù)用性,驅(qū)動程序基于組件模型對象的動態(tài)連接庫(DLL)形式封裝,分為3個小模塊:設(shè)備配置,驅(qū)動管理和數(shù)據(jù)I/O。系統(tǒng)維護(hù)管理員通過設(shè)備配置模塊創(chuàng)建設(shè)備,配置設(shè)備驅(qū)動參數(shù)、設(shè)備通信參數(shù)及配置采集點(diǎn);驅(qū)動管理模塊是核心模塊,其運(yùn)行主線程負(fù)責(zé)各類設(shè)備對應(yīng)的采集線程管理和從實時數(shù)據(jù)庫發(fā)來的采集控制命令的任務(wù)調(diào)度;數(shù)據(jù)I/O模塊是對具體設(shè)備的采集,通過設(shè)備的具體設(shè)備驅(qū)動程序與設(shè)備進(jìn)行數(shù)據(jù)交換。
3.2.1 設(shè)備配置模塊設(shè)計
該模塊主要是界面配置,為用戶提供要定義配置的輸入界面。用戶分別對設(shè)備信息、通信方式和采集點(diǎn)3個部分內(nèi)容進(jìn)行定義。生成設(shè)備配置主要涉及3個對話框:CDevAddDlg(構(gòu)建添加設(shè)備設(shè)置對話框),CComsetDlg(構(gòu)建設(shè)備通信參數(shù)的設(shè)置對話框),CTagConDlg(構(gòu)建采集點(diǎn)組態(tài)參數(shù)對話框)。通過這幾個類的定義與實現(xiàn),并將相應(yīng)參數(shù)以鏈表的形式保存在驅(qū)動管理模塊建立的類中,便于后臺程序的運(yùn)行。
3.2.2 驅(qū)動管理模塊設(shè)計
驅(qū)動管理模塊是整個云平臺通信驅(qū)動開發(fā)的核心,管理現(xiàn)場設(shè)備驅(qū)動,包括加載、卸載、配置驅(qū)動,提供其他客戶程序訪問用戶民用燃?xì)庑孤短筋^接口及與其他模塊的交互。該模塊主要定義了以下幾個類:CDriverMgr,CDevice,CTag,CDriver,CComm,CThread,CCommandBuf。驅(qū)動管理類CDriverMgr 是該模塊的核心。根據(jù)各種設(shè)備通信方式的多樣性,在設(shè)備驅(qū)動運(yùn)行中采用多線程技術(shù)處理不同類型設(shè)備。每一類設(shè)備對應(yīng)于一個驅(qū)動,也對應(yīng)于運(yùn)行系統(tǒng)的一個線程,利用驅(qū)動管理類管理各驅(qū)動對應(yīng)的采集線程。
3.2.3 數(shù)據(jù)I/O模塊設(shè)計
數(shù)據(jù)I/O模塊是提供給驅(qū)動管理模塊關(guān)于底層設(shè)備通信的信息,并負(fù)責(zé)設(shè)備的底層操作。針對不同類型的設(shè)備,分別采用動態(tài)鏈接庫的形式導(dǎo)出操作函數(shù),便于驅(qū)動管理模塊的調(diào)用。該模塊是以“施耐德”提供的MODBUS底層通信協(xié)議編寫的DLL(以后也需支持其他設(shè)備與廠家提供的DLL)。
4 結(jié)論
本文主要討論智慧燃?xì)獍踩O(jiān)控云平臺通信驅(qū)動模塊的設(shè)計,確定了云平臺通信協(xié)議的標(biāo)準(zhǔn),并對通信驅(qū)動模塊明確了技術(shù)要求及設(shè)計通信驅(qū)動模塊的架構(gòu),為通信模塊的具體開發(fā)提出了性能與功能指標(biāo)。本文的創(chuàng)新點(diǎn)是在智慧燃?xì)獍踩O(jiān)控云平臺環(huán)境中建立設(shè)備驅(qū)動開發(fā)模塊,為實現(xiàn)民用燃?xì)庑孤短筋^數(shù)據(jù)與云平臺數(shù)據(jù)交換確定了技術(shù)方法與研發(fā)方向。
參 考 文 獻(xiàn)
[1]文本穎,談順濤,袁榮湘,等.基于COM技術(shù)的SC-ADA系統(tǒng)數(shù)據(jù)庫設(shè)計與實現(xiàn)[J].電網(wǎng)技術(shù),2004(7).
[2]李艷,方康玲,方紅萍.嵌入式組態(tài)軟件設(shè)備驅(qū)動平臺的總體設(shè)計[EB/OL].http://www.paper.edu.cn/releas-epaper/content/200806-184,2008-06-10.
[3]李賀斌.監(jiān)控組態(tài)軟件中設(shè)備驅(qū)動程序開發(fā)平臺的研究與實現(xiàn)[D].燕山:燕山大學(xué),2006.