超聲波流量計(jì)關(guān)于通訊方面問題的問答:• 問:為什么連接不上流量計(jì)?,接上后它不做任何反應(yīng)?
答: A. 檢查串口參數(shù)是否匹配;位于 M63 窗口的協(xié)議選擇是否正確
B .檢查物理連線是否接好
D .位于 M46 窗口的地址是否設(shè)置正確
C .把流量計(jì)重新上電,應(yīng)該能接收到字符“ AT ”,否則 A 和 B 步存在問題
D .檢查命令是否正確。在使用擴(kuò)展協(xié)議時(shí)命令后面要緊跟者一個(gè)回車符號(hào)
• 問:為什么 MODBUS 讀出的量值亂七八糟的,和顯示值完全不一致?
答:一般來說如果 MODBUS 協(xié)議能夠讀出數(shù)據(jù)就表明協(xié)議本身沒有問題了。亂七八糟的數(shù)據(jù)是因?yàn)榇嬖谌缦洛e(cuò)誤:
A .?dāng)?shù)據(jù)格式錯(cuò)誤; B. 寄存器地址有誤,導(dǎo)致數(shù)據(jù)發(fā)生了位移而產(chǎn)生錯(cuò)誤。
比如 REAL4 這種實(shí)型變量( IEEE754 格式的單精度浮點(diǎn)數(shù)),按照字和字節(jié)共有 4 種不同的排列方式, TDS100 使用的是最常規(guī)的一種,即低 word 和高 byte 在前格式。您可以修改您的軟件的數(shù)據(jù)存放格式解決這個(gè)問題。如果使用通用的組態(tài)軟件,則組態(tài)軟件一般具有一個(gè)選擇格式的方法。
• 問:我的系統(tǒng)要求每次 1 小時(shí)只發(fā)出一次命令然后要求同時(shí)收到多個(gè)變量,應(yīng)該使用 那個(gè)協(xié)議?
答:一條 MODBUS 命令可以一次讀出很多變量。如果 MODBUS-RTU 不能解決問題,可以使用使用“ & ”連接符號(hào)連接起來的海峰擴(kuò)展協(xié)議。還可以使用簡易兼容協(xié)議,或者 Meter-BUS 協(xié)議。
• 問:為什么通過協(xié)議讀出的量值和流量計(jì)顯示的不一致?
答: A. 確認(rèn)變量地址是否就是您要求的那個(gè)變量?因?yàn)榱髁坑?jì)內(nèi)部的變量太多,是否混淆了 ? 注意在讀取數(shù)據(jù)時(shí), REG 0001 在命令字符串中表示為 0000 ,而不是 0001 。 0001 在命令字符串中表示讀出 REG 0002 的內(nèi)容。
B .對(duì)于累積量只能顯示 7 位 10 進(jìn)制數(shù)字,而通過 MODBUS 協(xié)議可以讀出 8 位 10 進(jìn)制數(shù)字。這種情況下,讀出來的數(shù)值的后 7 位是一樣的。
• 問:我的系統(tǒng)不能支持長整數(shù)以及實(shí)型變量格式,應(yīng)該怎么辦?
答:需要采用數(shù)值轉(zhuǎn)換方式,或查找新驅(qū)動(dòng)程序解決。
• 問: MODBUS 有測試程序嗎?
答:有!推薦使用 MODSCAN 這個(gè)軟件,可以在網(wǎng)上搜到。這個(gè)程序很是方便,有助于方便檢查讀出的數(shù)據(jù),理解各種類型數(shù)據(jù)的含義。
• 問:流量計(jì)是否具有模擬運(yùn)行狀態(tài)以方便測試,怎樣設(shè)置?
答:有!在 M11 窗口中輸入 0 值即啟動(dòng)模擬運(yùn)行狀態(tài)。模擬運(yùn)行狀態(tài)下總是設(shè)置流速為 1.2345678m /s ,瞬時(shí)流量等于 0 ,并且顯示“ R ”狀態(tài)。如果要求瞬時(shí)流量為設(shè)定值,則可以通過在 M44 窗口中輸入一個(gè)負(fù)的設(shè)定值實(shí)現(xiàn)。例如在 M44 窗口中輸入 -3600 立方米 / 秒。瞬時(shí)流量就會(huì)顯示為 3600 立方米 / 秒。這時(shí)所有累積器也會(huì)做相應(yīng)的累積。因此就得到了變化的累積量輸出。使用這個(gè)功能,能在不接傳感器的條件下,特別方便與聯(lián)網(wǎng)軟件的調(diào)試以及流量計(jì)功能的測試。
• 問:使用 C 時(shí),浮點(diǎn)數(shù)存放順序是怎樣的?
答:例如 3F 9E 06 51 四個(gè)字節(jié)為 1.2345678 的 IEEE754 格式單精度浮點(diǎn)形式。在 MODBUS 數(shù)據(jù)流中的順序是 06 51 3F 9E , 1 號(hào)地址數(shù)據(jù)流應(yīng)該是 01 03 04 06 51 3F 9E 3B 32 (十六進(jìn)制數(shù)字)。在 X86 計(jì)算機(jī)中使用 C 語言時(shí),按照內(nèi)存從低到高存放順序 51 06 9E 3F 。
再例如讀取凈累積寄存器 REG25 , REG26 兩個(gè)寄存器命令如下 :
01 03 00 18 00 02 44 0C (十六進(jìn)制數(shù)字)
返回?cái)?shù)據(jù)應(yīng)該為(設(shè)凈累積器= 802609 ,其 4 字節(jié) 16 進(jìn)制表示為 00 0C 3F 31 )
01 03 04 3F 31 00 0C A7 ED (十六進(jìn)制數(shù)字, A7 ED 為效驗(yàn)和)