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