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