超聲波流量計關于通訊方面問題的問答:• 問:為什么連接不上流量計?,接上后它不做任何反應?
答: A. 檢查串口參數是否匹配;位于 M63 窗口的協議選擇是否正確
B .檢查物理連線是否接好
D .位于 M46 窗口的地址是否設置正確
C .把流量計重新上電,應該能接收到字符“ AT ”,否則 A 和 B 步存在問題
D .檢查命令是否正確。在使用擴展協議時命令后面要緊跟者一個回車符號
• 問:為什么 MODBUS 讀出的量值亂七八糟的,和顯示值完全不一致?
答:一般來說如果 MODBUS 協議能夠讀出數據就表明協議本身沒有問題了。亂七八糟的數據是因為存在如下錯誤:
A .數據格式錯誤; B. 寄存器地址有誤,導致數據發生了位移而產生錯誤。
比如 REAL4 這種實型變量( IEEE754 格式的單精度浮點數),按照字和字節共有 4 種不同的排列方式, TDS100 使用的是最常規的一種,即低 word 和高 byte 在前格式。您可以修改您的軟件的數據存放格式解決這個問題。如果使用通用的組態軟件,則組態軟件一般具有一個選擇格式的方法。
• 問:我的系統要求每次 1 小時只發出一次命令然后要求同時收到多個變量,應該使用 那個協議?
答:一條 MODBUS 命令可以一次讀出很多變量。如果 MODBUS-RTU 不能解決問題,可以使用使用“ & ”連接符號連接起來的海峰擴展協議。還可以使用簡易兼容協議,或者 Meter-BUS 協議。
• 問:為什么通過協議讀出的量值和流量計顯示的不一致?
答: A. 確認變量地址是否就是您要求的那個變量?因為流量計內部的變量太多,是否混淆了 ? 注意在讀取數據時, REG 0001 在命令字符串中表示為 0000 ,而不是 0001 。 0001 在命令字符串中表示讀出 REG 0002 的內容。
B .對于累積量只能顯示 7 位 10 進制數字,而通過 MODBUS 協議可以讀出 8 位 10 進制數字。這種情況下,讀出來的數值的后 7 位是一樣的。
• 問:我的系統不能支持長整數以及實型變量格式,應該怎么辦?
答:需要采用數值轉換方式,或查找新驅動程序解決。
• 問: MODBUS 有測試程序嗎?
答:有!推薦使用 MODSCAN 這個軟件,可以在網上搜到。這個程序很是方便,有助于方便檢查讀出的數據,理解各種類型數據的含義。
• 問:流量計是否具有模擬運行狀態以方便測試,怎樣設置?
答:有!在 M11 窗口中輸入 0 值即啟動模擬運行狀態。模擬運行狀態下總是設置流速為 1.2345678m /s ,瞬時流量等于 0 ,并且顯示“ R ”狀態。如果要求瞬時流量為設定值,則可以通過在 M44 窗口中輸入一個負的設定值實現。例如在 M44 窗口中輸入 -3600 立方米 / 秒。瞬時流量就會顯示為 3600 立方米 / 秒。這時所有累積器也會做相應的累積。因此就得到了變化的累積量輸出。使用這個功能,能在不接傳感器的條件下,特別方便與聯網軟件的調試以及流量計功能的測試。
• 問:使用 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 為效驗和)