【摘要(yao)】本文分析了基于(yu)Modbus協議的電磁流量(liang)計
通訊在污水計(jì)量中的應用,通過(guò)RS-485串口連接,進行相(xiàng)關的流量信息的(de)讀取,從而切實可(ke)靠的保證了數據(jù)穩定性、可靠性和(he)正确率。
0引言
随着(zhe)中國城市經濟的(de)發展,無論是生活(huó)污水量還是工♍業(ye)污🌈水量都出現了(le)較快增長的态勢(shì),使得水👅環境污染(ran)和水環境💜質量下(xià)降的趨勢也在不(bu)斷加劇。因此,國家(jiā)加強了對✊污水處(chù)理的投資,興建和(hé)投💔運了大量的污(wū)水處🔞理廠,從而🈲改(gai)善我們所處的生(shēng)态環境。如何保證(zheng)污水處理的水質(zhi)、水⁉️量達到國家排(pai)放标準,這就對計(jì)量檢測儀表的配(pèi)置和管理提出了(le)新的要求。
目前,污(wu)水處理廠對電磁(ci)流量計這種計量(liàng)比較準确的儀表(biao)逐🍓漸推廣和普及(jí)。在傳統的污水處(chu)理廠的自✌️動化監(jiān)控🌐及信息集成系(xi)統中,電磁流量計(jì)采用4-20mA(傳送模拟量(liang)信息)或24VDC(傳送開關(guān)量信息)信号進行(hang)通訊傳輸,很多現(xian)場層流量計與控(kòng)制器之間的連🌐接(jie)是一對一(一個I/O點(diǎn)對設備的一個測(ce)控點)所謂I/O接🈲線方(fang)式。但是這樣的系(xì)統存在❄️一些明顯(xiǎn)的缺點,那就是信(xin)息集成能力不強(qiáng);系統不開放、可集(ji)成性差、專業性不(bú)強;可靠性不易保(bǎo)證;可維護性不高(gao)等。
如果現場層設(shè)備配有串行數據(ju)接口(如RS-232/485),控制器就(jiu)可🛀🏻以按接口規定(ding)協議,通過串行通(tōng)信方式(而不是♌I/O方(fang)式)完成🔴對現場設(she)備的監控。[1]如果設(she)想全部或大部分(fen)現場設備都具有(yǒu)串行通信接口并(bìng)具有統一的通信(xìn)協議,控制器隻需(xū)一根通信電纜就(jiù)可将分散的現場(chǎng)設🏃♂️備連接,完成對(dui)所有現場設備的(de)監控,這就是所說(shuo)的采用現場總線(xian)技術。
1Modbus協議在電磁(ci)流量計通訊中實(shi)現的簡介
目前,污(wu)水處理廠所用的(de)電磁流量計大部(bu)分都配🌍有🙇♀️串行數(shu)據接口(如RS-232/485),并且接(jie)口支持MODBUS總線協議(yi)。一般電磁流量轉(zhuan)換🌐器MODBUS通訊采用标(biao)準MODBUS通訊協議,MODBUS模塊(kuài)和上位機㊙️進行通(tong)訊的波🈲特率爲600–19200,波(bo)特率設備地址可(ke)以通過鍵盤進行(hang)設置。通訊由❌主機(jī)發起,主機首先發(fā)送消息幀,消息幀(zhēn)的發送間隔必須(xū)🥰大于3.5個以上字符(fú)的發送時間。[2]消息(xi)幀發送的第一個(gè)字節是設備地址(zhi),從設備不斷的偵(zhēn)測網絡總線當接(jie)收到第🔴一個字節(jie),每一個設備都進(jin)行解碼以判斷是(shi)否是發往自己的(de)消息幀;接收到一(yi)個字符之後,如果(guo)停頓時間超過3.5個(gè)以上字符的發送(song)時間,标志着前一(yī)個消息幀發送結(jié)束,一個✍️新的消息(xi)幀在此停頓後開(kāi)始。字符間隔不能(neng)大于一個字符,否(fǒu)則認爲是一條新(xin)的消息幀開始,老(lao)的消息幀結束。
消(xiāo)息幀定義如下:
Modbus通(tong)訊協議規定了2種(zhǒng)通訊方式。RTU(REMOTETERMINALUNIT)方式通(tong)訊采用8位字節的(de)二進制數據通訊(xùn),數據校驗采用CRC循(xun)環冗餘校驗,通訊(xùn)速度較快;ASCII方式采(cǎi)用7位ASCII碼進行通訊(xun),數據校驗采用LRC邏(luó)輯冗餘校驗,通訊(xun)速率較慢。針對MODBUS在(zai)電磁流量轉換器(qi)上的應用,在MODBUS的功(gōng)能碼中,不⁉️同公司(sī)采⛹🏻♀️用不同的方式(shi)實現,有的公司隻(zhī)用了3個功能碼:03、04、06。03号(hao)♈功能碼主要用來(lái)讀取流量信息,包(bāo)括瞬時流量、流速(su)、流量百分比、電極(ji)電阻、正向累計、反(fǎn)向累計、儀表口徑(jìng)、報警狀态等;04号功(gōng)能碼用來讀取鍵(jian)💯盤參數,06号功能碼(mǎ)用🌈來設置鍵盤參(can)數。
2基于Modbus協議的電(dian)磁流量計信息讀(dú)取
在污水處理廠(chǎng)和運行泵站中作(zuò)爲污水計量的儀(yí)表,電磁流量計信(xìn)息的讀取就顯得(dé)異常重要。現場儀(yí)表🚶♀️的流量信息,由(you)瞬時流量、流速、百(bai)分比、報警狀🌂态等(deng)參🐪數進行反映,參(can)數存放⭐地址如下(xia)表:
定義如下:讀取(qu)流量信息時,主機(jī)發出功能編碼03:讀(dú)取輸入寄存器值(zhi)。參數存放首址對(dui)應輸入寄存器首(shǒu)址🔆的低字節。主機(ji)發送命令格式如(rú)下:
從機地址(1Byte)+功能(neng)編碼(1Byte)+輸入寄存器(qi)首址(2Byte)+輸入寄存器(qi)個數(2Byte)+CRC校驗值(2Byte),從機(jī)地址值範圍在1-99;
輸(shu)入寄存器高字節(jiē)全部是0,低字節範(fàn)圍在01~09,對應上面表(biǎo)格中參數存放首(shǒu)址。輸入寄存器個(gè)數高字節是0,低❄️字(zì)節是3,從🐕機回應格(ge)式如下:
從機地址(zhi)(1Byte)+功能編碼(1Byte)+讀出的(de)字節個數(1Byte)+字節内(nei)容(6Byte)+CRC校驗🌍值(2Byte),返✌️回♍的(de)參數占6個字節,故(gù)字節個數是6。
注:讀(du)取流量信息時,對(dui)瞬時流量、流速、百(bai)分比、報警狀态等(deng)參數,用戶可以分(fèn)别讀取,即一次隻(zhi)讀取一個參數。用(yòng)戶也可以一次性(xing)讀取所有的8個參(can)數或一次讀☔取其(qi)中的幾個參數。讀(du)出的流量信息有(yǒu)兩種表示方法:整(zheng)形數表示法和浮(fu)點數表示法。如沒(mei)有特殊聲明,儀表(biao)一般采用整形數(shù)據進行傳輸。
詳細(xì)信息結構定義如(ru)下:
1)瞬時流量信息(xi)定義
主機發送:
01H03H00H01H00H03H54H0BH
從(cóng)機響應:
01H03H06HD0D1D2D3D4D5CRC16低CRC16高
如果(guo)數據以整形數格(gé)式進行傳輸,則D0、D1代(dài)表瞬時流量整數(shù)部分的高4位(16進制(zhi)),D2、D3代表瞬時流量整(zheng)數部分的低4位(16進(jìn)制),D4、D5代㊙️表瞬🙇♀️時流量(liang)小數部分值(16進制(zhi))。
2)流速信息定義
主(zhǔ)機發送:
01H03H00H04H00H03H44H0AH
從機響應(ying):
01H03H06HD0D1D2D3D4D5CRC16低CRC16高
如果數據以(yǐ)整形數格式進行(háng)傳輸,則D0、D1代表流速(su)整數部分的高🏃♀️4位(wei)(16進制),D2、D3代表流速整(zhěng)數部分的低4位(16進(jin)制),D4、D5代😘表流速小數(shù)部✌️分值🧑🏽🤝🧑🏻(16進制)。
3)正向(xiang)總量信息定義
主(zhu)機發送:
01H03H00H0DH00H03H94H08H
從機響應(ying)
01H03H06HD0D1D2D3D4D5CRC16低CRC16高
如果數據以(yǐ)整形數格式進行(háng)傳輸,則将D0、D1由16進制(zhi)轉換成10進制X0X1X2X3,将D2、D3由(yóu)16進制轉換成10進制(zhi)X4X5X6X7,将D4、D5由16進制轉換成(chéng)10進制X8X9X10X11,數據由X0X1X2X3X4X5X6X7X8X9組成(cheng),小數點位置和累(lèi)計單位由X10X11決定。
舉(ju)例說明如下:
如接(jie)收到的數據是
01H04H06H00H22H16430C84686B
則(zé)0022(16進制)=34(十進制)
則1643(16進(jin)制)=5699(十進制)
則0C84(16進制(zhì))=3204(十進制)
則數據可(kě)表示爲34569932,04是小數點(dian)位數,查表爲0.001m3,故實(shi)際數🔴據🐕爲34569.932m3。
4)反向總(zong)量信息定義
主機(jī)發送:
01H03H00H10H00H03H04H0EH
從機響應:
01H03H06HD0D1D2D3D4D5CRC16低(di)CRC16高
數據表示方法(fa)和正向總量一樣(yàng)。
5)報警狀态信息定(ding)義
主機發送:
01H03H00H16H00H03HE4H0FH
從機(ji)響應:
01H03H06HD0D1D2D3D4D5CRC16低CRC16高
如果數(shù)據以整形數格式(shì)進行傳輸,則D2、D3代表(biao)報警狀态整數值(zhi)(十🏃🏻♂️六進制),D0、D1、D4、D5保留。
報(bao)警狀态的值範圍(wei)不會超過1024,用二進(jin)制位表示爲✍️:Bit9Bit8Bit7Bit6Bit5Bit4BIT3bit2Bit1Bit0,分别(bie)定義如下:
位定義(yì):Bitx=0無警狀态;Bitx=1報警狀(zhuàng)态;
3基于Modbus協議的電(diàn)磁流量計參數讀(dú)取
基于Modbus協議的電(diàn)磁流量計在進行(háng)參數讀取時,可以(yi)先定義
現場儀表(biǎo)的各個參數,參數(shù)編号定義如下:
3.1語(yǔ)言選擇
參數值=0:中(zhōng)文
參數值=1:英文
3.2流(liú)量量程設置:0~65535。
4電磁(ci)流量計Modbus通訊的安(an)裝與布線
電磁流(liú)量計按照RS-485串口方(fāng)式進行布線和連(lian)接,按照下圖方式(shì)進行連接:
工控機或PC機通過(guo)串口連接到RS232/RS485轉換(huan)器,轉換器的+A、+B分🚩别(bie)連接到各個電磁(cí)流量計。
如果是
分(fen)體式電磁流量計(jì)
,将RS232/RS485轉換器的+A、+B分别(bie)和電磁流量計的(de)A2、B2相連接,如果接線(xiàn)較💁長🥵,連接的儀表(biǎo)較多,有必要在遠(yuan)端加一個100Ω-200Ω的🈲匹配(pèi)電阻。
如果是
一體(ti)式電磁流量計
,将(jiang)RS232/RS485轉換器的+A、+B分别和(hé)電磁流量計的TRX+、TRX-相(xiang)連接,如果接線較(jiào)長,連接的儀表較(jiao)多,有必要在遠端(duān)加一個100Ω-200Ω的匹配電(diàn)阻。
5電磁流量計的(de)Modbus通訊測試
如果用(yong)戶需要和現場儀(yí)表進行MODBUS通訊,可以(yi)安裝測試程序進(jìn)行🍉測試,利用測試(shi)應用程序MODBUSV1.0及通訊(xùn)範例源程序(VB)進行(hang)通訊測試。
用戶在(zai)應用MODNUS之前應該仔(zai)細閱讀電磁流量(liang)計MODBUS通訊協議,這樣(yang)㊙️上⭕位機才能正确(que)的讀、寫電磁流量(liàng)計的相關參數。測(ce)試時,打開測試應(yīng)用程序MODBUSV1.0,如下圖:
如(rú)果RS232/RS485轉換器輸出是(shì)與多台電磁流量(liàng)計相連接,首先應(ying)該注意的是:
1)必須(xu)将每一台電磁流(liú)量計設置爲不同(tong)的地址,地💋址範圍(wéi)🔅是01-32。地址如果重複(fú),通訊很容易出錯(cuò)。
2)記住每一台電磁(ci)流量計的通訊速(sù)度。通訊速度的波(bo)特率🧑🏽🤝🧑🏻包括600、1200、2400、4800、9600、14400、19200。每一台(tái)電磁流量計的通(tong)訊速度應該盡量(liàng)一緻,這樣操作方(fang)便,也減少了出錯(cuo)的幾率。
連接完畢(bì)後,操作如下:
如果(guo)連接的儀表中有(you)一台儀表地址是(shi)02,通訊速度是👌19200,則首(shǒu)先在💃🏻測試畫面的(de)左面,在通訊速度(du)的列表框中☁️選擇(zé)19200,在設備地址的列(lie)表框中選擇02;此時(shí)在右邊的空白框(kuang)中就會有🌏數據顯(xiǎn)示。點擊顯示刷新(xin)按扭,會對右🛀🏻邊的(de)數據進行瞬間清(qīng)屏。
如果要對02号儀(yí)表的鍵盤參數進(jin)行讀、寫,可點擊左(zuo)邊的⭐讀/寫參數按(an)扭,彈出下圖:
寫參(can)數時,可在下拉列(liè)表框中選擇,或在(zai)文本框中輸入參(can)數。參💘數下面有提(tí)示,輸入不能超過(guò)範圍。
6結束語
目前(qian)中國對于環境治(zhi)理的重視程度日(ri)益增強,其中污🚶♀️水(shuǐ)處理是重中之重(zhòng)。[3]在污水計量中起(qi)到關鍵🌂作用的流(liú)量計就顯得非🤞常(chang)重要,爲了保證計(jì)量數據的穩定性(xìng)、可靠性和精确性(xing)🏃,采用串口方式基(jī)于Modbus協議進行🏃🏻數據(jù)通訊的優勢就尤(yóu)爲突出。這種串口(kou)😄通訊方式,必将在(zài)今後污水處理廠(chang)的㊙️自動化系統🏒和(he)信息集成系統中(zhong),應用的更加廣泛(fàn)。