標題: modbus主機等待從機超時 收到從機地址的回復數(shù)據(jù),就發(fā)送3次應答,代碼該怎么寫 [打印本頁]

作者: sr861126    時間: 2023-5-6 15:55
標題: modbus主機等待從機超時 收到從機地址的回復數(shù)據(jù),就發(fā)送3次應答,代碼該怎么寫
  modbus主機沒有收到從機地址的回復數(shù)據(jù),就發(fā)送3次應答,代碼該怎么寫

作者: Hephaestus    時間: 2023-5-6 18:56
你就正常發(fā)送就行了唄,加個無應答計數(shù)變量,三次超時就算出錯,然后根據(jù)需求來寫出錯代碼。
作者: sr861126    時間: 2023-5-8 10:33
Hephaestus 發(fā)表于 2023-5-6 18:56
你就正常發(fā)送就行了唄,加個無應答計數(shù)變量,三次超時就算出錯,然后根據(jù)需求來寫出錯代碼。

根據(jù)中斷標志計數(shù)器來判斷嗎?

作者: xiaouex    時間: 2023-5-8 11:06
modbus的數(shù)據(jù)包由多部份組成,你所說的沒有接收到數(shù)據(jù)是指接收到的數(shù)據(jù)包中沒有數(shù)據(jù)位還是指接收不到數(shù)據(jù)包?
作者: xiaouex    時間: 2023-5-8 11:11
如果是前者,那么只需要在解包函數(shù)中加入判斷:若data位為空,則判定為未接受到數(shù)據(jù)
如果是后者可以嘗試加延時判斷,超時判定為沒接到數(shù)據(jù)

作者: li64331218    時間: 2023-5-8 11:27
解析一下: 1、主從通訊,主機發(fā)起,從機回復。每次通訊主機都發(fā)送三次。三次都沒有應答數(shù)據(jù),判定超時錯誤。
作者: li64331218    時間: 2023-5-8 11:31
解析一下:1、主從通訊,主機發(fā)送指令,從機回復。主機發(fā)三次都沒有收到應答,判定超時錯誤。2、主機無論是否收到數(shù)據(jù),都是發(fā)送三次。  三次以后則停止,然后等待一定的時間,沒有回復判定錯誤。根據(jù)不同情況來寫代碼





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1