大連海峰偉業超聲波流量計流速范圍是0-12m/s
串口及通訊協議
§1.1 概述
流量數據采集可以使用本公司研制開發的通用/專用流量/熱量數據監控系統,該系統基于TDS-100流量計的特點,充分利用了流量計特色的軟硬件設計,具有投資少、系統簡單明快、運行可靠等特點。
目前還已經有了多家第三方廠商的專門支持TDS-100系列流量計的數據采集軟件供用戶選用,其中有些小的軟件是免費的,特別方便小用戶的組網使用。
為了通訊調試的方便,新版TDS-100設有一個模擬運行狀態。在此狀態下,流量計不需要接入管道,即可模擬工作,用于調試,參看下一節的問答。
§1.2 關于通訊方面問題的問答
(1) 問:為什么連接不上流量計?,接上后它不做任何反應?
答: A. 檢查串口參數是否匹配。
B.檢查物理連線是否接好
C.網絡地址是否設置正確
(2) 問:為什么MODBUS讀出的量值亂七八糟的,和顯示值完全不一致?
答:一般來說如果MODBUS協議能夠讀出數據就表明協議本身沒有問題了。亂七八糟的數據是因為存在如下錯誤:
A.數據格式錯誤; B.寄存器地址有誤,導致數據發生了位移而產生錯誤。
比如REAL4這種實型變量(IEEE754格式的單精度浮點數),按照字和字節共有4種不同的排列方式,TDS100使用的是最常規的一種,即低word和高byte在前格式。您可以修改您的軟件的數據存放格式解決這個問題。如果使用通用的組態軟件,則組態軟件一般具有一個選擇格式的方法。
(3) 問:我的系統要求每次1小時只發出一次命令然后要求同時收到多個變量,應該使用 那個協議?
答:一條MODBUS命令可以一次讀出很多變量。問:為什么通過協議讀出的量值和流量計顯示的不一致?
答:A. 確認變量地址是否就是您要求的那個變量?因為流量計內部的變量太多,是否混淆了? 注意在讀取數據時,REG 0001在命令字符串中表示為0000,而不是0001。0001在命令字符串中表示讀出REG 0002的內容。
B.對于累積量只能顯示7位10進制數字,而通過MODBUS協議可以讀出8位10進制數字。這種情況下,讀出來的數值的后7位是一樣的。
(4) 問:我的系統不能支持長整數以及實型變量格式,應該怎么辦?
答:需要采用數值轉換方式,或查找新驅動程序解決。
(5) 問:MODBUS有測試程序嗎?
答:有!推薦使用MODSCAN這個軟件,可以在網上搜到。這個程序很是方便,有助于方便檢查讀出的數據,理解各種類型數據的含義。
(6) 問:流量計是否具有模擬運行狀態以方便測試,怎樣設置?
答:有!M1111進入液晶顯示分組,ENT鍵切換至輸入輸出分組,M307選擇模擬運行,M308設置瞬時流量,即啟動模擬運行狀態。
(7) 問:使用C時,浮點數存放順序是怎樣的?
答:例如3F 9E 06 51四個字節為1.2345678的IEEE754格式單精度浮點形式。在MODBUS數

據流中的順序是06 51 3F 9E,1號地址數據流應該是01 03 04 06 51 3F 9E 3B 32(十六進制數字)。在X86計算機中使用C語言時,按照內存從低到高存放順序51 06 9E 3F。
再例如讀取凈累積寄存器REG25,REG26兩個寄存器命令如下:
01 03 00 18 00 02 44 0C(十六進制數字)
返回數據應該為(設凈累積器=802609,其4字節16進制表示為 00 0C 3F 31)
01 03 04 3F 31 00 0C A7 ED(十六進制數字,A7 ED為效驗和)
§1.3 MODBUS協議
MODBUS協議的兩種格式都能支持,默認狀態下支持MODBUS-RTU格式。
TDS-100型系列超聲波流量計/熱能表只能支持MODBUS功能代碼03和06以及16三種功能代碼,分別是讀寄存器和寫單一寄存器以及數據塊寫入功能。
例如在RTU方式下讀取1號設備的流速,即讀寄存器5,6共2個寄存器,命令如下:
01 03 00 04 00 02 85 CA (十六進制數字)
設備號 功能 起始寄存器 寄存器數目 效驗和
其中85 CA 是16進制數值,是按照CRC-16 (BISYNCH,多項式是x
16 + x
15 + x
2 + 1屏蔽字為0A001H)循環冗余算法得到的。請參考MODBUS有關資料了解進一步的算法。
返回的數據應該為(設定狀態為模擬運行狀態,流速=1.2345678m/s):
01 03 04 06 51 3F 9E 3B 32(十六進制數字)
設備號 功能 數據字節數 數據=1.234567 效驗和
其中 3F 9E 06 51四個字節即為1.2345678的IEEE754格式單精度浮點形式。
再舉例,讀凈累積流量,REG25,REG26兩個寄存器命令如下:
01 03 00 18 00 02 44 0C(十六進制數字)
返回數據應該為(設凈累積器=802609,其4字節16進制表示為 00 0C 3F 31)
01 03 04 3F 31 00 0C A7 ED(十六進制數字,A7 ED為效驗和)
當凈累計=0時,返回數據為01 03 04 00 00 00 00 FA 33
其中FA 33為效驗和。
請注意上面例子中數據存放的順序。對于使用C語言解釋數值時,可以使用指針直接把所需的數據放入相應的變量地址中即可,一般常用的存放順序為低字節在前,例如上面的1.23456m/s例子中,3F 9E 06 51數據的存放順序為 51 06 9E 3F。
有關MODBUS協議細節請參考有關資料。
在調試MODBUS協議時,推薦使用一種免費調試軟件MODSCAN,這個軟件可以在互聯網上搜索到。當出現問題時,如果能夠接受到效驗和正確的數據包則說明通訊本身是不存在問題的。
在默認狀態下通信的設置速率一般是9600、無效驗、8數據位、1個停止位。