摘要(yao):針對水庫底部(bù)涵管洩水的流(liú)量計
量問題,讨(tǎo)論了一種電磁(cí)流量計及其數(shù)據遠傳的Modbus協議(yì)和方⭕法🐪,詳細解(jie)析了流量計存(cun)儲器數據格式(shi)、浮點數據轉換(huan)以及CRC校驗等問(wen)題。系統設計的(de)抗幹擾浪湧吸(xī)收電路改善了(le)戶外現場儀😄表(biǎo)數據傳輸的可(kě)靠性。經運行實(shi)踐證明,給出的(de)系統結構和方(fāng)⁉️法能夠适應電(dian)磁流量計
數據(ju)的遠程傳輸。
在(zai)水庫工程管理(lǐ)中,特别是那些(xiē)擔負供水任務(wu)的水庫,統計✉️每(mei)天經底部涵管(guǎn)所洩放的水量(liang)是一件十分重(zhong)要的工作,它不(bú)僅是供水方與(yǔ)用水方結算的(de)依據,而且也能(néng)夠對水庫的防(fang)洪調度提供重(zhong)要參考。
欲實現(xian)水庫涵管流量(liàng)的測量與采集(jí),首先需要根據(ju)現場環境❌和條(tiáo)件選擇合适的(de)現場測量儀表(biao),其💁次是要實現(xiàn)現場到中心監(jiān)控室數據的穩(wěn)定傳輸🆚。底部涵(hán)管現場離水庫(ku)監控室往往有(yǒu)好幾百米的距(jù)離,因此如何克(ke)服信号長距離(lí)傳輸過程中的(de)衰❗減及受到的(de)幹擾,特别是在(zai)極端天氣情況(kuang)下的雷電幹擾(rao),就構成水庫涵(hán)管流量測量系(xi)統設計的主要(yao)内容。
1電磁流量(liàng)計
本系統選用(yong)了插入式、
分體(tǐ)型電磁流量計(ji)
,型号爲XKD99ZC"。由于水(shui)庫放水涵管的(de)直徑很大,可達(dá)500~1000mm,選用🈚插人型式(shì)可以避免開挖(wa)溝槽安裝法蘭(lán)、配接下遊導流(liú)直管等工作,而(er)分體式傳感器(qi)安裝于工藝管(guǎn)道上,其二次變(biàn)送單元可以安(ān)裝在環境較好(hǎo)的室内,這種安(an)裝形式使得二(èr)次變♌送單元遠(yuan)離現場惡劣環(huan)境條件,使電子(zǐ)部件🌈檢查、儀表(biǎo)設定、調整都比(bǐ)較方便,無須⭐采(cai)取專門措施來(lai)防雨、防潮,溫度(du)敏感性也大爲(wèi)降低。
該電磁流(liú)量計采用的通(tong)信協議是Modbus協議(yì),它是一種串🌈行(háng)通信協議,使用(yong)雙絞線作爲傳(chuan)輸的物理介質(zhi)。流量計内部有(you)多個參數可以(yi)進行設置,如波(bo)特率、設備地址(zhǐ)、流量🤞單位等🔞。水(shui)庫涵管的瞬時(shí)流量和累積流(liú)量值通過雙絞(jiao)👄線-→防雷裝置+RS485/RS232協(xié)議轉換-+.上位計(ji)🌍算機完成數據(jù)傳送,在上位計(jì)算機應用軟件(jiàn)的管理下,完成(cheng)水庫涵管流量(liàng)數據的顯示與(yǔ)統計。
2系統結構(gou)方案
在水庫工(gōng)程管理中,現場(chǎng)參數除了底部(bù)涵管流量之外(wài),還有水庫壩體(tǐ)的滲漏流量、水(shuǐ)庫水位等參數(shù)需要監測,因此(cǐ)🧑🏾🤝🧑🏼這些儀表設備(bèi)可以通過RS485工業(ye)現場📱總線構成(chéng)一個分布式網(wǎng)絡。
在這個總線(xiàn)網絡中,上位計(ji)算機PC作爲中心(xīn)主站,而㊙️其他儀(yi)⁉️表設備皆處于(yu)從屬地位,主站(zhan)爲每台從設備(bei)分配-一🐆個唯一(yi)地👣址。爲了獲取(qu)從站各儀器設(shè)備的數據,主站(zhan)采取輪流向各(ge)個設備發送地(dì)址命令的方法(fa)來讀取數據🔞。每(mei)個從站🐪不斷監(jian)測總線上傳來(lái)的地址,隻有當(dang)收到的消息中(zhong)的地址與自己(jǐ)設備地址--緻時(shí),才會執行主站(zhàn)發出的命令,将(jiang)自己的狀态與(yu)數據發給上位(wèi)主🔞機,主機則負(fu)責接收從設備(bèi)🏃♀️發出的數據,按(àn)Modb-us協⚽議規程執行(hang)數據解碼、校驗(yan)、存儲等操作。系(xì)統的拓撲結構(gòu)如圖1所示。
3Modbus協議(yi)及主機信息結(jié)構
Modbus協議是一種(zhong)主從式點對點(diǎn)的通信協議,允(yun)許一台🌈主機和(he)多台從機之間(jiān)進行數據通信(xin),由于Mod-bus協議易于(yu)實現,因此它已(yǐ)經🐅成爲被廣泛(fàn)應用的工業标(biao)準[2]。
Modbus協議支持ASCII和(hé)RTU兩種模式的串(chuan)行鏈路協議,由(you)于RTU模式比ASCII模式(shi)有更高的數據(ju)傳輸效率,因此(ci)大多數總線式(shì)網絡結構中均(jun)采用RTU鏈路協議(yì)[3]。
一個RTU消息幀由(yóu)地址域、功能域(yù)、數據域、CRC校驗域(yu)外加起始位和(hé)💞結🔴束字符共同(tóng)構成,其典型格(ge)式如表1所🍉示。
①起(qi)始位和結束字(zì)符:用來分隔兩(liang)幀消息,RTU規定起(qǐ)始位和結束🤩字(zì)符持續時間不(bu)得小于3.5個字符(fú)時間,一♻️幀消息(xi)必🈚須以連續的(de)字符流進行發(fā)送,并且同一幀(zhēn)内的2個字符間(jiān)隔時間應小于(yú)1.5個字符時間,編(bian)程時需注意🔞RTU模(mó)式的這些定時(shí)要⭐求。
②設備地址(zhǐ):總線網絡中某(mou)個從站設備的(de)地址,作爲❌主機(jī)的尋址标志。
③功(gong)能代碼:當消息(xi)從主機發往從(cong)站設備時,告訴(su)從設備需要💃執(zhí)🍉行哪些行爲,如(ru),“03”,讀取當前從站(zhan)設備寄存器組(zǔ)内🌈-個或多個二(er)進制數據;“06",主機(jī)把設置的二進(jìn)制數🌐據寫人儀(yí)表設備的單-寄(jì)存器内。
④數據域(yù):它包含主-從設(shè)備通信中所涉(shè)及的各種參數(shu),如起始寄存器(qi)、要讀寫的寄存(cún)器數量、據長度(dù)、數據信息等。
⑤CRC校(xiao)驗:RTU幀中包含了(le)一個基于CRC算法(fa)的錯誤檢測城(chéng),即無論主機或(huo)從站設備發送(sòng)RTU幀時,都要計算(suàn)從設備💰地址開(kāi)始到數據區之(zhī)間所有字節的(de)16位CRC校驗碼,并以(yi)低字節在前、高(gāo)字節🤩在後的形(xing)式附加到RTU消息(xi)的CRC域,一并發給(gěi)接收方。當接收(shōu)方收完一幀消(xiao)息後立㊙️即按同(tóng)樣方法計算該(gāi)幀消息的CRC校驗(yàn)碼,并與發送🌈方(fang)傳來的CRC校驗碼(ma)進行比較,若不(bú)同就說明在消(xiāo)息傳輸過程中(zhong)發生了錯誤,應(ying)該棄掉🔱剛才收(shōu)到的消息❤️,并向(xiàng)發送方回傳💚一(yī)幀帶有錯誤标(biao)識的消息作爲(wei)響應。
4電磁流量(liàng)計的存儲器數(shù)據結構
XKD99ZC電磁流(liú)量計是-種智能(neng)化的流量儀表(biǎo),内嵌32位高速😍MCU處(chù)‼️理器,可☂️以測量(liang)瞬時流量、累計(ji)流量等參數,數(shu)據通信傳輸接(jie)口🐪爲半雙工方(fāng)式,支持2400、4800.9600bit/s等波特(tè)率,接口♍電氣标(biao)準遵從EIA/TIA-485國際标(biao)準。用戶無須對(dui)流量計進行⛱️底(di)層編程,隻需設(shè)置好相關參數(shu)即可。流量計内(nei)部寄存器存儲(chǔ)的數據類型與(yǔ)地址如表2所示(shi)。
5系統軟件設計(ji)
5.1通信過程
通信(xin)開始後,主機向(xiang)總線上發送一(yī)幀消息,電磁流(liú)量🙇🏻計偵測總線(xian)狀态并接收主(zhǔ)機送來的消息(xi)。如果消息中的(de)地址與本✔️站設(shè)備(即電磁流量(liàng)計)地址相符,而(ér)且計算所得的(de)16位CRC校驗碼💁也正(zheng)确,就将收到的(de)消息存儲在緩(huǎn)沖區📐内,接着執(zhí)行主機的命令(lìng),并根據處理結(jié)果返回一幀正(zheng)😍确的消息作爲(wei)對主機的響應(ying),其通信流程如(rú)圖2所示。
在本系(xì)統中,主要使用(yòng)Modbus協議中的“03”功能(neng)碼,它的含義是(shì)連續讀取設備(bèi)數據寄存器中(zhong)的内容(每個寄(jì)存器占2B)。
通過設(she)置給電磁流量(liàng)計分配的地址(zhǐ)是0FH,爲了讀取流(liú)量🏒計的📧瞬時流(liú)量,主機應該發(fā)出一-幀(0F0300000002C525)消息(十(shí)六進制),此幀消(xiāo)息中含有如下(xia)信息:
①0F:從站設備(bèi)地址(流量計地(di)址);
②03:功能碼(讀寄(jì)存器内容);
③0000:待讀(dú)寄存器首地址(zhi)(瞬時流量);
④0002:讀2個(ge)連續的數據寄(jì)存器(因爲數據(jù)類型是浮點);
⑤C525:CRC校(xiao)驗碼(低字節在(zài)前高字節在後(hòu))。如果流量計正(zhèng)确⭕收到⛹🏻♀️.上面信(xìn)息,就立即返回(huí)與涵管當前瞬(shùn)時流量對應👈的(de)消息作爲對🏃🏻主(zhǔ)機🎯的響應:
0F030441B142A720F2
在這(zhè)幀消息中,0F03的意(yi)義同前,04指4個字(zì)節的瞬時流量(liàng),數據内容😍是41B142A7,流(liu)量計發出的CRC校(xiào)驗碼是20F2。
同理,爲(wèi)了讀取流量計(jì)的累積流量,主(zhǔ)機應發:
0F0300130004B4E2
如果流(liu)量計接收正确(què),就返回下列數(shu)據串:
0F0308ADDD003B4D6F3F61757F
其中當前(qian)累積流量數據(jù)爲8個字節,ADDD003B4D6F3F61,CRC校驗(yan)碼是757F。
5.2數據解析(xī)
由于XKD99ZC電磁流量(liang)計中的數據是(shì)以字的形式存(cun)儲在寄存💛器🙇♀️組(zǔ)💁中的,而且數據(jù)的低位字在前(qian),高位字在後,所(suǒ)以在解析流量(liàng)數據之前,必須(xu)先要交換它們(men)的順序才能得(dé)到正确結果。對(dui)于瞬時流量的(de)4個字📱節(41B1)(42A7),交換順(shùn)序後成爲(42A7)(41B1),它是(shì)一個符合IEEE754規範(fàn)的32位浮點數值(zhí),将其還原成十(shí)進制🤞數值,結果(guo)得到涵管當前(qian)瞬時流量值✍️83.6263m³/h。
對(duì)于累積流量,它(tā)的數據格式爲(wèi):整數部分是長(zhǎng)整型,而小✨數部(bù)分是32位浮點型(xing),所以應分段交(jiao)換順序👈。整數部(bu)分交換順序後(hòu)是(003B)(ADDD),它對應十進(jin)制3911133,而小數部分(fèn)交換順序後是(shi)(3F61)(4D6F),按IEEE754浮點數規範(fàn),經過轉換,其對(duì)應的十進制小(xiǎo)數爲0.8801,所以涵管(guǎn)當前累積流❓量(liang)是3911133.88m³。
5.3關于CRC檢驗算(suan)法
在Modbus标準通信(xìn)中,對于即将被(bei)傳輸消息中的(de)字符串必須進(jin)行CRC校驗,目的是(shi)發現數據傳輸(shu)過程中可能出(chu)現的錯誤。常用(yòng)的🌈校驗多項式(shì)有CCITT和CRC-16,本系統采(cai)用CRC-16,其多項式爲(wei)G(x)=xl6+xI5+x2+1,實✌️際應用時取(qu)其反序。
具體來(lai)說,對于涵管瞬(shun)時流量,是從地(di)址字節一直♋校(xiào)驗到數據的最(zui)後-一個字節。以(yǐ)流量計返回的(de)瞬時流量數據(ju)串爲例🔴,共須校(xiào)驗0F030441B142A7七個字節,所(suǒ)以得到的16位CRC校(xiao)驗碼爲F220。下面給(gěi)出用VB6.0語言實現(xian)的CRC校驗程序,代(dài)碼如下:
6系統防(fáng)雷
對于戶外運(yùn)行的系統或設(shè)備,-一個很重要(yào)的問題㊙️就💘是防(fang)雷🙇🏻。特别是南方(fāng)水庫所在地域(yù),由于雨水充💃🏻沛(pei),空氣濕👨❤️👨度很大(da),較之幹燥地區(qu)更容易産生雷(lei)電災害,輕則導(dǎo)緻數據傳♊輸出(chū)錯⭐,嚴重時🧡會導(dǎo)緻儀器設備損(sun)毀。因此對水庫(kù)涵管流量測量(liang)系統中的防雷(léi)設計必須高度(dù)重視。本系統中(zhōng)的防雷電路包(bāo)含🌍市電交流進(jin)線保護電路和(hé)低壓數據傳輸(shu)線路保護電路(lu)。交💚流電源進線(xiàn)過壓保護器采(cǎi)用的型号爲DEHNguard275,數(shu)據傳輸線路保(bao)護電路如圖3所(suǒ)示。
這個保護電(diàn)路共分三級。第(dì)--級是氣體放電(diàn)管,當雷電🔅浪湧(yong)高壓大于放電(diàn)管的擊穿電壓(yā)時,将使線路與(yǔ)地短路,爲浪💔湧(yǒng)能量提供洩放(fang)通路;第二級是(shi)由浪湧瞬🆚變抑(yi)制二極管TV1、TV2組成(cheng),它🚶♀️們能迅速對(duì)線路上的浪湧(yǒng)過電壓進行箝(qian)位,第三級由電(dian)阻☂️R1、R2、TV3、TV4、TV5構成,目的也(yě)是用來消除線(xian)路上的高電壓(yā),并使❌線路端口(kǒu)電壓維持在安(an)全水平。
7結束語(yu)
Modbus串行通信協議(yì)與RS485工業現場總(zong)線網絡配合使(shǐ)用實❤️現了水庫(kù)涵管流量測量(liàng)數據的遠傳,同(tong)時也爲今後擴(kuò)展系🆚統,将其他(tā)儀器㊙️設備挂接(jie)在總線上提供(gòng)🏃♂️了便利。Modbus通信隻(zhī)✏️需要一🐉根屏蔽(bi)雙絞線作爲傳(chuán)輸介質,這使得(de)💯穿管敷線🐅施工(gong)既經濟又方便(biàn);另外防雷💞裝置(zhi)的引人,大大提(tí)高了系統在雷(léi)電天氣情況下(xia)的運行可靠性(xing)。運行實踐表明(míng),涵管流量數據(ju)傳輸穩定,能夠(gou)❄️滿足水✊庫工程(cheng)管理需要。
以上(shang)内容源于網絡(luò),如有侵權聯系(xi)即删除!
|