在進行微控制器與上位機進行Modbus協議通訊時,沒有成功,提示是「寫通訊超時」,哪位大俠知道這是什麼情況

時間 2021-08-31 20:06:21

1樓:匿名使用者

modbus寫命令分為5號單寫位,15號多個位寫,6號單暫存器,16號多暫存器寫。如果讀命令響應正確,但是寫命令超時,很有可能是下位機僅支援單獨的位或暫存器寫操作,不支援多暫存器操作。

2樓:瘋狂的門

上位機上不知道你用的是不是modbus除錯助手還是自己編寫的除錯軟體,如果是除錯助手的話那就是你的下位機的程式問題了,但如果是你自己編寫的軟體那就不好說了,所以在你除錯的時候一定要保證除錯的一端或者被除錯的一端中有一端是正常的,否則很難確定問題的所在。

通訊超時最終還是你的下位機沒有響應,就是你的微控制器沒有向外傳送資料,所以你就要看看你的下位機在什麼時候才滿足傳送資料的條件(前提是你的下位機通訊是正常的,不管是不是modbus協議下,可以先用串列埠除錯助手來檢驗一下你的下位機是不是通的,如果下位機收發都正常,那就得看看你的下位機的程式是如何處理該協議的了),你可以先去掉對接收資料的判斷語句,讓下位機接收完資料後不用任何判斷直接傳送幾個資料,看看上位機能不能收到,這樣一步一步查詢問題的所在,我也編寫過51微控制器modbus的程式,並且和s7-200通訊正常,有問題可以交流一下。。。。。。。。

3樓:西門不敗

地址不對或者線路不通

51微控制器控制的小車如何與PC進行無線通訊

東吳小肥羊 可以用nrf24l01做通訊用,zgbe也可以。不過 距離遠了,可能會延遲。速度快了,微控制器會丟失資料。建議用arm。arm處理器是acorn計算機 面向低預算市場設計的第一款risc微處理器。更早稱作acorn risc machine。arm處理器本身是32位設計,但也配備16位指...

使用51微控制器與PC進行串列埠通訊時,怎麼將溫度值(帶兩位小數)傳送到VB編寫的上位機介面上顯示

可以啊,你自己定個協議,然後pc解包就可以了,打個比方說 你發aa 00 xx,aa表示幀頭,00表示溫度高位,xx寫溫度高位數值 aa 01 yy,aa表示幀頭,01表示溫度低位,yy寫溫度低位數值當然這只是比較簡單的說法,還有字長啊,檢驗啊等等問題需要考慮 使用51微控制器與pc進行串列埠通訊時...

plc怎麼與上位機進行通訊,PLC怎麼與上位機進行通訊

plc與上位機進行通訊,採用blandc編寫主機與plc的通訊程式,必須對com1口進行初始化,波特率為9600bps,奇偶校驗位採用偶校驗,七位有效資料。當計算機接收到來自plc的應答字元ack後,就可以進入資料通訊了。計算機可對plc內各軟裝置進行讀 寫和強制on off操作。除開plc的計時器...