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