manning
級別: 探索解密
精華主題: 1 篇
發(fā)帖數(shù)量: 36 個
工控威望: 171 點
下載積分: 888 分
在線時間: 51(小時)
注冊時間: 2017-03-10
最后登錄: 2024-09-13
查看manning的 主題 / 回貼
樓主  發(fā)表于: 2017-08-10 14:49
小弟在做QJ71C24N用422方式和AD-4401A稱重儀表走無協(xié)議通訊時,遇到一個問題,還請各位大神指教指教小弟
儀表接收的報文格式是@01RW,停止符可選擇CR和CR LF這兩種,當(dāng)只用CR作為停止符時是可以通訊上,并讀到正確的數(shù)據(jù),如圖

但是數(shù)據(jù)會在地址區(qū)內(nèi)循環(huán)變化,是因為沒有LF這個換行指令,但是停止符選CR LF時就讀不到數(shù)據(jù)。
小弟我反復(fù)試了下,個人覺得應(yīng)該是停止符CR LF不是在同一個地址區(qū)內(nèi)造成無法讀取的,如圖

如果真如我所猜想的這樣,那么問題來了,如圖
gadna9
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 95 個
工控威望: 202 點
下載積分: 823 分
在線時間: 41(小時)
注冊時間: 2016-08-02
最后登錄: 2019-12-06
查看gadna9的 主題 / 回貼
1樓  發(fā)表于: 2017-08-10 19:25
跟這個沒有關(guān)系,對于儀表而言,它接受到正確命令就有正確反應(yīng),跟這些命令放在那個地址區(qū)是沒有關(guān)系。
你可以通過線路追蹤功能確認(rèn)你的命令是否正確
gadna9
級別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 95 個
工控威望: 202 點
下載積分: 823 分
在線時間: 41(小時)
注冊時間: 2016-08-02
最后登錄: 2019-12-06
查看gadna9的 主題 / 回貼
2樓  發(fā)表于: 2017-08-11 16:26
引用
引用第3樓manning于2017-08-11 09:16發(fā)表的  :
發(fā)送CR LF這個停止符時用線路追蹤發(fā)現(xiàn)最后一位的高字節(jié)有個空字符NUL,那現(xiàn)在怎么消除這個空字符。 [attachment=202837]


那是因為你設(shè)置發(fā)送長度錯了導(dǎo)致的。
你現(xiàn)在設(shè)置應(yīng)該是以字為單位,長度為4。
應(yīng)該改成以字節(jié)為單位,長度為7.
樓主留言:
真誠感謝!太感謝您了,是我一直在鉆牛角尖,多謝大神!
本帖最近評分記錄:
  • 下載積分:+10(ymmfa) 感謝分享!