1、硬件問題——接線錯誤造成的無法連接、無數(shù)據(jù)返回、返回數(shù)據(jù)錯亂等。需要注意,請務(wù)必將未使用的接線用絕緣膠布單獨包好,以防造成干擾。
2、針對modbus-rtu命令,地址錯誤。
3、軟件設(shè)置錯誤導(dǎo)致沒有數(shù)據(jù)返回或返回數(shù)據(jù)錯亂。
4、正確有效的數(shù)據(jù)返回后,由于客戶對數(shù)據(jù)處理有誤而造成的讀取數(shù)據(jù)與水表實際參數(shù)不同。
針對第1、2、3情況,這里提供查看通訊是否正常工作的方法:
a.電腦帶485接口線,單獨連接水表的485,通過串口助手發(fā)送01 03 00 00 00 02 C4 0B;水表返回數(shù)據(jù)01 03 04 00 00 00 00 FA 33。此時瞬時流量為0 。
b.或者發(fā)送字符:ESN 會返回水表的序列號。
以上均可驗證水表通訊是正常工作的。
很多客戶說所采集到數(shù)據(jù)和顯示值及運算值不一樣,從而認為表是壞的,其實是因為客戶沒能把讀取到的數(shù)據(jù)換算正確,這里針對這種客戶不能有效解析所讀取數(shù)據(jù)的情況做以下分析:
常用有以下兩種數(shù)據(jù)類型:
整形數(shù)據(jù) :正累積流量,負累計流量,正累計熱量等。
Long數(shù)據(jù)有32位,存在4個字節(jié)中。
單精度數(shù)據(jù):瞬時流量,瞬時熱量等。
REAL4數(shù)據(jù)有32位,存在4個字節(jié)中。
在此著重說明兩個問題:
一:數(shù)據(jù)發(fā)送順序。水表默認先發(fā)低字節(jié),后發(fā)高字節(jié)。那么客戶接受的順序就是先收低字節(jié),后收高字節(jié)。按照接受順序顯示的話一定是錯誤的。所以客戶要把收到的字節(jié)前后(高低位)順序調(diào)換一下。
二:modbus地址問題。資料給的modbus地址是按照國際規(guī)定執(zhí)行的。從40001開始,十進制表示。但是我們水表內(nèi)部地址從0000開始,十六進制表示。所以要求客戶將資料中的寄存器地址換算為16進制后減一再運算。訪問運算后的地址就能得到正確的數(shù)據(jù)。
查詢修改modbus地址方法:使用V51setup軟件?;蛘甙l(fā)送字符命令MBUSADD? (發(fā)送新行/回車、換行)命令為查詢地址,發(fā)送字符命令MBUSADD=1 (發(fā)送新行/回車、換行)命令為設(shè)置地址為1(默認地址為1,廣播地址FF).
三、以下的例子我們只取兩種代表性的數(shù)據(jù):瞬時流量和正累計流量。
1.瞬時流量 real4數(shù)據(jù)處理。
通過串口調(diào)試助手發(fā)送Simulation Mode Timer=3600 ,讓表頭進入模擬運行。這個時候顯示流量為36.00 。(此處是因表沒有安裝在管道上處于實驗室狀態(tài)或已安裝但實際沒有流量,或是空管狀態(tài),若表已安裝且實際有瞬時流量請忽略此步驟)
瞬時流量存放在0001和0002寄存器,單片機(表內(nèi)部地址)地址為0000和0001 。
使用串口調(diào)試助手發(fā)送:
01 03 00 00 00 02 C4 0B
收到01 03 04 00 00 42 10 CB 5F
有效數(shù)據(jù)是00 00 42 10。
使用modscan軟件收到
在40001寄存器里面是:0000
在40002寄存器里面是:4210
數(shù)據(jù)一致,需要注意的是:4210是高字節(jié)的數(shù)據(jù),0000是低字節(jié)的數(shù)據(jù)。
用戶必須調(diào)整高低位數(shù)據(jù)為42100000 。通過后續(xù)的轉(zhuǎn)換將單精度32位數(shù)據(jù)42100000顯示為十進制小數(shù)就是36.00 。
不提供單精度轉(zhuǎn)換程序,請客戶自行處理。
2、讀取正累積流量
內(nèi)部累積量使用了長整數(shù)和小數(shù)組合的方式。在一般使用時,用戶只需要讀出長整數(shù)部分即可,小數(shù)部分可以忽略。
假設(shè) N 表示是長整數(shù)的值 (例如對于正累積流量,REG 0009, 0010 中的 32 比特數(shù)值是一個長整數(shù))
Nf 表示小數(shù)部分 (例如對于正累積流量,REG 0011, 0012 中的 32 比特浮點數(shù))
n 表示小數(shù)點位置 (例如對于累積流量,REG 1439).
那么最終的總累積流量 = ( N + Nf ) ×10n-3
以上詳見通訊協(xié)議(下載)
3、通過一個例子具體說明
此通訊演示軟件可下載
以下是PLC的一個例子
客戶讀出的數(shù)據(jù),找不到對應(yīng)關(guān)系了,仔細觀察一下??蛻舻募拇嫫魇?位的,我們的水表是16位的??蛻舴稿e的原因是把8位寄存器的地址安裝到16位地址上了。水表通訊資料里面的REG09、REG10寄存器放的是正累積流量??蛻艟桶焉厦媪斜淼?008 ,7010單元的數(shù)值作為正累積量,但是怎么也對不上。那到底應(yīng)該是哪個呢?我們水表的REG 09寄存器的數(shù)值是16位的,根據(jù)減一(上文第二項所述)的原則放在客戶的7016里了,由此可見,REG10寄存器的16位數(shù)據(jù)是存放在7018里。
根據(jù)我們水表的協(xié)議規(guī)則,高地位轉(zhuǎn)化后的數(shù)據(jù)是7018在前7016在后。完整的32位數(shù)據(jù)是
0000 0000 0100 1010 1101 0010 0111 1110
四、在修改參數(shù)的時候,會出現(xiàn) #010通訊不上等問題時候,可能存在的原因:
1、數(shù)據(jù)線沒有連接好。
2、數(shù)據(jù)線連接錯誤,AB接反。
3、數(shù)據(jù)線不符合連接要求,需要屏蔽雙絞的好線。
4、通訊協(xié)議不搭配。
5、通訊設(shè)置不一致,波特率,數(shù)據(jù)位,校驗位等。
五、現(xiàn)場數(shù)據(jù)通訊出現(xiàn)躍變,數(shù)據(jù)不穩(wěn)定的情況分析如下:
客戶現(xiàn)場的設(shè)備供電一般不存在地線結(jié)構(gòu),很多情況下只有火線和零線兩根線供電。普通情況下現(xiàn)場的電壓轉(zhuǎn)換為AC220V-DC24V。
無論是開關(guān)電源模式還是線性電源模式都是經(jīng)過變壓器轉(zhuǎn)換,變壓器進行電源隔離,濾除高頻諧波,減小干擾。
客戶絕大多數(shù)情況下不會將DC24V接地,而是將DC24V懸浮使用,在這種情況下,DC24V設(shè)備和我們的水表通訊的時候就會出現(xiàn)各種干擾,比如數(shù)據(jù)的突變,參數(shù)的自動改變等。這些問題大都是沒有接地引起的,希望客戶將DC24V的負端接地使用。
如果客戶現(xiàn)場不能提供接地線,如下處理:
用戶設(shè)備和水表用屏蔽雙絞線連接,雙絞線連接彼此的485A和485B。屏蔽層一端接客戶的DC24V-,另外一端屏蔽層連接現(xiàn)場的法蘭。
關(guān)于V51版選型說明:
1)4~20mA 不能與DC8~30V同時使用(注意是8~30V不是36)
2)4~20mA 不能與485同時使用
3)4~20mA 不能與TTL-USART(TXD/RXD)同時使用
4)4~20mA 不能與C1/C2同時使用
5)4~20mA 不能與M-BUS同時使用(硬件已經(jīng)測試通過,但未經(jīng)客戶嘗試)
6)選擇OCT后必須選擇DC8~30V供電或4~20mA(可作為供電使用也可以作為電流傳輸使用)
7)OTC為光耦隔離輸出,最高耐壓36V最大驅(qū)動電流50mA
以上我們是不建議客戶使用4-20mA輸出的,如果執(zhí)意要4-20mA輸出,請配合隔離器使用。
-
數(shù)據(jù)采集
+關(guān)注
關(guān)注
38文章
5720瀏覽量
113342 -
儀表通訊
+關(guān)注
關(guān)注
1文章
4瀏覽量
1566
原文標題:儀表通訊問題相關(guān)分析
文章出處:【微信號:gongkongworld,微信公眾號:工控資料窩】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論