★北京城市排水集團有限責任公司劉偉,張建強,楊自強
★北京顯通恒泰科技有限公司張彤
★北京城市排水集團有限責任公司裘巖
某水廠(chǎng)目前安裝廠(chǎng)區進(jìn)水兩塊自來(lái)水水表,用以測量整個(gè)廠(chǎng)區水區和泥區的自來(lái)水用量。本次水表數據采集利用物聯(lián)網(wǎng)及無(wú)線(xiàn)技術(shù),實(shí)現比傳統PLC采集少土方施工的技術(shù)方向,以“WAMP”為數據平臺、“ESP8266MCU”為邊緣計算核心及“LORA”為通訊載體定期發(fā)送數據給中心端,實(shí)現了以太陽(yáng)能為能源,搭建的現場(chǎng)數據采集系統。數據保存方面,本次研究單獨部署了一個(gè)開(kāi)源“LAMP”系統,也就是使用“l(fā)inux”作為操作系統,“Apache”網(wǎng)頁(yè)服務(wù),“Mysql”數據庫,“PHP”服務(wù)應用。數據分析采“邊緣計算”,即用物聯(lián)網(wǎng)的特征“萬(wàn)物互聯(lián)”,不同于傳統工控控制端在PLC,物聯(lián)網(wǎng)在物端有計算控制和通訊能力,發(fā)生在現場(chǎng)的數據采集數據分析處理和計算。根據運行情況給儀表端“ModbusRTU”從站供電,作為“ModbusRTU”主站采集從站數據,轉換數據格式,并編寫(xiě)報文,啟動(dòng)“LORA”工作,并發(fā)送報文,最后關(guān)閉外部電源進(jìn)入休眠模式完成整個(gè)采集流程計算,最后在數據訪(fǎng)問(wèn)端開(kāi)發(fā)了基于CS的c#程序和基于BS架構的PHP服務(wù)。
某再生水廠(chǎng)水表數據需要采集到系統,根據位置和廠(chǎng)區自控設備的部署情況選取最優(yōu)的策略。本次進(jìn)廠(chǎng)水表遠離現有系統和電纜通道,采用傳統PLC加DCS的方式,施工成本高昂。廠(chǎng)技術(shù)團隊另辟蹊徑,嘗試以無(wú)線(xiàn)的方式對數據進(jìn)行采集傳輸,研發(fā)了基于PCB層面的控制器設計、光伏及系統低功耗設計、LoRa傳輸的私有協(xié)議設計,應用WAMP系統,并編寫(xiě)了數據入庫程序,開(kāi)發(fā)了BS和CS架構的數據查詢(xún)應用。
1 系統結構概述
本次主要研究以下幾個(gè)方面:
(1)數據采集和保存
(2)數據存儲
(3)數據訪(fǎng)問(wèn)
(4)數據應用
1.1數據采集和保存
某再生水廠(chǎng)目前的數據保存在相對封閉的DCS數據庫系統,可以查詢(xún)歸檔的歷史數據,但是訪(fǎng)問(wèn)相對不方便,一般通過(guò)DCS界面進(jìn)行訪(fǎng)問(wèn)查詢(xún)。
行業(yè)內倡導的“雙網(wǎng)融合”目標是讓工控網(wǎng)在安全穩定的基礎上結合IT網(wǎng)絡(luò ),為用戶(hù)提供更為方便的訪(fǎng)問(wèn)方式。
本項目以探索的方式,部署了一個(gè)WAMP系統,即使用Windows操作系統,Apache網(wǎng)頁(yè)服務(wù),MySQL數據庫,PHP服務(wù)應用。
1.2數據存儲
數據庫中包含一張數據表名稱(chēng)為“his_xhm_simbase”,用于存儲記錄過(guò)程數據,如不同工藝設備代號、記錄時(shí)間、工藝單位等。
本項目開(kāi)發(fā)了數據接入服務(wù)程序。該應用運行期間會(huì )偵聽(tīng)串口LoRa模塊的報文并進(jìn)行解析,用SQL語(yǔ)句把數據寫(xiě)入數據庫。
1.3數據訪(fǎng)問(wèn)
基于數據庫的IT應用方式很多,目前開(kāi)發(fā)的程序主要是基于CS架構和基于BS架構的瀏覽器查詢(xún)數據。未來(lái)隨著(zhù)數據的數量和接入點(diǎn)的增多,基于大數據的工藝優(yōu)化程序成為可能。
1.4控制器研發(fā)
供電單元:現場(chǎng)供電采用太陽(yáng)能電池板、充電模組、鉛酸電池構成的供電系統,該系統提供5VDC和12VDC兩路直流電源供給;
通訊單元:采用LoRa433MHz模塊,定期發(fā)送數據給中心端;控制單元現場(chǎng)部署一套ESP8266物聯(lián)網(wǎng)單元和配套支持電路。
2 系統設計
基于物聯(lián)網(wǎng)技術(shù)水表數據遠傳的設計主要包括以下幾個(gè)部分:
(1)基于水表的低功耗設計;
(2)基于LoRa模塊數據采集低功耗設計;
(3)系統硬件復位電路的設計;
(4)系統邊緣計算設計與控制。
2.1基于水表的低功耗設計
本次研究采用光伏供電,除了要保證自身MCU控制系統供電外,還要考慮給水表進(jìn)行供電。
水表工作不需要電源,但是和水表的Modbus模塊通訊的時(shí)候,需要給它提供12VDC的電源。這個(gè)電源如果一直提供,在沒(méi)有外部供電的情況下,會(huì )對光伏和儲能模塊提出比較大的能耗需求。設計研究的方案是在MCUESP8266休眠的時(shí)候,斷開(kāi)給儀表12V的供電,我們選擇的是松下電子的光耦合固態(tài)繼電器AQW212EH,電路實(shí)現如圖1所示。
圖1 水表485供電硬件電路設計
2.2基于LoRa模塊數據采集的低功耗設計
LoRa模塊采用壹佰特的E32-TTL-1W,該模塊是一款基于SEMTECH公司SX1278射頻芯片的無(wú)線(xiàn)串口模塊(UART),采用透明傳輸方式,工作在410~441MHz頻段(默認433MHz),1W發(fā)射功率,LoRa擴頻技術(shù),TTL電平輸出。
該模塊提供了低功耗的管腳配置,在M1管腳和M2管腳都為高電平情況下,發(fā)射模塊進(jìn)入休眠模式,其休眠電流為2^A,工作期間在發(fā)射時(shí)候670mA@30dBo
在微控制單元(MicrocontrollerUnit,MCU)休眠的時(shí)候,GPI。管腳處于釋放狀態(tài),無(wú)法為E32模塊提供適合的高電平信號使其進(jìn)入休眠。需要使用一個(gè)SS8050
的三極管做一個(gè)電平轉換電路,此時(shí)提供2個(gè)高電平輸出;當MCU喚醒后,給出GPIO高電平,經(jīng)過(guò)轉換后給出M0M1低電平,使它們進(jìn)入工作狀態(tài)。如圖2所示。
圖2 LoRa模塊數據采集硬件電路設計
2.3系統硬件復位電路的設計
在失去電源后,如果MCU處在休眠模式,則GPIO16會(huì )給出一個(gè)低電平脈沖,脈沖出現后將不再重復輸出。如果增加一個(gè)外圍電路,在電壓降低到臨界值或者電壓升高到臨界值時(shí),單獨給出低電平脈沖到reset管腳,或許可以解決“假死”后自恢復問(wèn)題。選擇TL7705AC做了一個(gè)外部復位電路。
本系統是由太陽(yáng)能電池板進(jìn)行供電、鉛酸電池進(jìn)行電能保存,失電后如果光伏恢復,首先電流要大于100mA解決MCU“假死”的供電電耗,如果有富余電能,光伏會(huì )緩慢給電池充電,在電池電壓升高觸發(fā)閾值后,會(huì )給MCU一個(gè)低電平脈沖。復位情況如圖3所示。
圖3 復位邏輯時(shí)序圖
MCU接收到復位信號會(huì )啟動(dòng),但是ESP8266啟動(dòng)電流為200~500mA,相對于剛剛充電到臨界電壓的電源系統來(lái)說(shuō)負擔很重,無(wú)法維持正常的運行狀態(tài),造成關(guān)機。
改進(jìn)措施:增加C1電容,延長(cháng)TD時(shí)間,希望給電源系統更多的充電時(shí)間。
隨后問(wèn)題又出現了,MCU在reset低電平的時(shí)候也有很大的功耗,在reset低電平情況下無(wú)法提供足夠的充電電能。此再生水廠(chǎng)使用的進(jìn)水水量數據報送頻率實(shí)際上是1天1次,目前把數據報送頻率調整為1800秒(30分鐘)一次,把每天24X60X2=2880次減少為48次。電源系統可以實(shí)現長(cháng)期穩定工作。
2.4系統邊緣計算與控制
邊緣計算是指在靠近物或數據源頭的一側,采用網(wǎng)絡(luò )、計算、存儲、應用核心能力為一體的幵放平臺,就近提供最近端服務(wù)。其應用程序在邊緣側發(fā)起,產(chǎn)生更快的網(wǎng)絡(luò )服務(wù)響應,滿(mǎn)足行業(yè)在實(shí)時(shí)業(yè)務(wù)、應用智能、安全與隱私保護等方面的基本需求。邊緣計算處于物理實(shí)體和工業(yè)連接之間,或處于物理實(shí)體的頂端。而云端計算,仍然可以訪(fǎng)問(wèn)邊緣計算的歷史數據。
簡(jiǎn)而言之,物聯(lián)網(wǎng)的特征是“萬(wàn)物互聯(lián)”,不同于傳統工控控制端在PLC,物聯(lián)網(wǎng)在物端有計算控制和通訊能力,發(fā)生在現場(chǎng)的數據采集、數據分析處理和計算就是“邊緣計算”。
具體計算內容如下:
(1)根據運行情況給儀表端“ModbusRTU”從站供電;
(2)作為“ModbusRTU”主站采集從站數據;
(3)轉換數據格式,編寫(xiě)報文;
(4)啟動(dòng)“LoRa”工作,并發(fā)送報文;
(5)關(guān)閉外部電源進(jìn)入休眠模式。
3 系統數據接收與存儲
(1)系統數據的接收與存儲;
(2)系統數據的查詢(xún)與顯示。
3.1系統數據的接收與存儲
安裝本次開(kāi)發(fā)的CS架構軟件:“某再生水無(wú)線(xiàn)數據串口接收程V02B”軟件,該軟件界面如圖4所示。
圖4 軟件開(kāi)發(fā)
功能有四個(gè)方面。
(1)接收:在串口安裝了“LoRa”接收裝置并轉
為串口數據,接收到不同設備發(fā)送的JSON報文;
(2)解析:接收到報文會(huì )進(jìn)行JSON格式的解析,得到接收變量和對應值;
(3)辨析:把解析的數據進(jìn)行分析處理,如果對應的key和value不符合識別規則,則沒(méi)接收到;
(4)入庫:以SQL語(yǔ)言把數據保存到數據庫hisxhmsimtable中。數據表如圖5所示。
圖5 數據表存儲
3.2系統數據的查詢(xún)與顯示
基于MySQL數據庫的數據展示,在IT行業(yè)就有無(wú)窮多的案例說(shuō)明和應用。本次研究是基于CS架構開(kāi)發(fā)的應用。圖6為CS客戶(hù)端方式的水表查詢(xún)軟件界面,用戶(hù)輸入查詢(xún)的開(kāi)始、結束時(shí)間和變量名稱(chēng),就可以查詢(xún)對應的歷史數據,轉成曲線(xiàn),另存csv文件等功能。
圖6 數據查詢(xún)界面
4典型代碼
4.1數據合成
Modbus的HoldingRegisters是16-bit整型,從站儀表的數據給出的32-bit的長(cháng)整數,當MCU用F03指令讀取從站的保持寄存器HoldingRegisters的數據,合成整數方面查閱技術(shù)資料,得到如下結論:
實(shí)際儀表數據二數據高位*0xff+低位數據。代碼段實(shí)現如下:
for(inti=0;i<MBcounts;i++)
{
uMybuf[i]=ModbusRTUClient.read();DEBUGLOG(H[%d]\t\nH,uMybuf[i]);
}
longlsum=uMybuf[0]*65536+uMybuf[1];
水表提供的數據是0.01立方米為基本單元,最終得到的整數應轉換后再除以100。
4.2Modbus中浮點(diǎn)數的識別轉換
Modbus還能以數據高位和數據低位的合成方式實(shí)現浮點(diǎn)數的合成,解析高低數據,我們寫(xiě)了一個(gè)方法用于實(shí)現這一功能,代碼如下:
floatuint2float(uint_uintB,uint_uintA)
{
DEBUGLOG("DBG_uintA=%d\t_uintB=%d\t\n",_uintA,_uintB);
intintSign,intSignRest,intExponent,intExponentRest;
floatfaResult,faDigit;
intSign=_uintA/32768;
intSignRest=_uintA%32768;
intExponent=intSignRest/128;
intExponentRest=intSignRest%128;
faDigit=(float)(intExponentRest*65536+_uintB)/8388608;
faResult=(float)pow(-l,intSign)*(float)pow(2,intExponent-127)*(faDigit+1);
DEBUGLOG("intSign=%d\tintSignRest=%d\tintExponent=%d\tintExponentRest%d\tfaDigit%d\t\n",intSign,intSignRest,intExponent,intExponentRest,faDigit);
returnfaResult;
}
作者簡(jiǎn)介:
劉 偉(1988-),男,河北保定人,中級工程師,碩士,現就職于北京城市排水集團有限責任公司,研究方向為工業(yè)自動(dòng)化控制。
參考文獻:
[1]林惠霞,武永華,張淑城.基于BF592的攝像直讀無(wú)線(xiàn)遠傳抄表裝置的設計[J].自動(dòng)化技術(shù)與應用,2020,39(01):140-143.
[2]喬芝忠,楊琦.電子遠傳水表兼容性與互換性問(wèn)題及其對策[J].給水排水,2017,53(12):110-114.
[3]侶金玲.無(wú)線(xiàn)遠傳大口徑水表的數據采集與管理系統[D].石家莊:河北科技大學(xué),2013.
⑷吉健紅.淺談自來(lái)水遠傳水表抄表系統的幾次技術(shù)改進(jìn)[J].科技資訊,2012,(23):218.
[5]白天明.無(wú)線(xiàn)智能水表的設計與研究[J].科技傳播,2010,(19):80,79.
[6]王衛國,韋萌.基于CC1100的無(wú)線(xiàn)抄表系統[J].計算機與數字工程,2009,37(01):171-173.
[7]王春.智能無(wú)線(xiàn)遠傳水表設計及應用研究[D].北京:北方工業(yè)大學(xué),2009
摘自《自動(dòng)化博覽》2022年第三期