Modbus通訊使用-全網(wǎng)看這一篇就行

從調(diào)試軟件使用去分析。Modbus報文分析。
地址描述:
平常設備手冊寫的PLC寄存器地址Y-XXXX,Y:寄存器類型(0x、1x、3x、4x),XXXX:十進制(協(xié)議標準使用Y-XXXX五位十進制定義地址,而前綴是寄存器類型,協(xié)議定義范圍:0001~9999,而實際范圍可以是0001~65536)與modbus寄存器地址(A)偏移1位范圍:0~65535。每個功能碼類型地址范圍0~65535,不同功能碼間地址可相同重復。



Modbus寄存器地址XXXXH,XXXX:16進制地址(范圍:0000~FFFF),H:16進制標識(HEX)。

臺達變頻器參數(shù)手冊如圖所示:

RTU通訊報文解析
03功能碼保持寄存器報文分析

異常功能碼情況:

01功能碼線圈寄存器報文分析

?
ASCII模式
模式選擇,報文通訊模式RTU||ASCII,模式不匹配將造成通訊超時。
ASCII模式報文分析
報文ASCII轉換字符
01讀取多線圈——:+RTU碼字符轉換ASCII碼(無CRC碼轉換)+LRC校驗碼(9+9)+er+nl
幀頭是冒號(:),幀尾是回車換行符(\r\n)

05寫單線圈置0——:+RTU碼字符轉換ASCII碼+ LRC校驗碼(F+9)+er+nl

05寫單線圈置1——:+RTU碼字符轉換ASCII碼+ LRC校驗碼(F+A)+er+nl

15寫單線圈置0——:+RTU碼字符轉換ASCII碼+ LRC校驗碼(E+B)+er+nl
15寫單線圈置1——:+RTU碼字符轉換ASCII碼+ LRC校驗碼(E+A)+er+nl

03讀取多保持寄存器——:+RTU碼字符轉換ASCII碼+ LRC校驗碼(A+2)+er+nl
06寫單保持寄存器——:+RTU碼字符轉換ASCII碼+ LRC校驗碼(0+2)+er+nl
16寫多保持寄存器——:+RTU碼字符轉換ASCII碼+ LRC校驗碼(F+4)+er+nl

LRC校驗計算需要把RTU碼(包括CRC校驗)計算得出:算法計算自行查詢。

ModbusUDP連接方式


TCP/IP需要建立連接才能進行收發(fā)數(shù)據(jù),UDP/IP不需要建立連接即可一直廣播發(fā)送數(shù)據(jù)。

建立連接方式
IPV6建立連接方式

勾選任何地址,兩主一從建立連接情況:該從站可被多個從站IP建立連接。

若取消勾選任何地址,只有唯一IP地址主站成功通訊交互數(shù)據(jù)。

從站設備勾選忽略設備ID情況:

忽略設備ID從站設備,無論主站請求從站id多少,該從站設備都可以回復響應的設備報文,回復從站數(shù)據(jù)。類似虛擬了多個從站ID,對任何主站請求都可以回復。
主站如果已經(jīng)和一從站建立連接無法從新連接新建立從站。




ModbusTCP其他功能碼報文分析


AND Mask與掩碼;OR Mask或掩碼。


報告從站ID


常見的錯誤情況
Modbus串口通訊,若從站號沒有對應從站是不會回復數(shù)據(jù)

ModbusTCP通訊,若從站號沒有對應從站是有回復對應序號數(shù)據(jù),但主站沒有接收數(shù)據(jù)打印,若此時從站設備恢復服務器存儲區(qū)從站號,將恢復正常通訊。異常碼:大小2字節(jié),byte1=0x80(高位置1)+功能碼,byte2=錯誤碼。




主站連接錯誤,檢查IP和端口設置,是否存在從站連接地址,可能連接超時。

從站建立連接地址錯誤,檢查IP端口設置,注意占用或填寫錯誤情況。

輪詢間隔時間范圍:0~1000ms之間整數(shù)。

響應超時時間保證通訊正常,50~100000ms之間整數(shù)。

IPV4地址輸入錯誤

IPV6地址輸入錯誤

關于串口服務器使用問題
使用串口服務器改變接口(物理層、數(shù)據(jù)鏈路層),傳輸數(shù)據(jù)協(xié)議(傳輸層)串口服務器自動實現(xiàn)轉換,透明傳輸。通過串口服務器配置軟件配置串口連接參數(shù)轉為以太網(wǎng)連接方式(配置串口服務器)。低代碼直接使用ModbusTCP通訊與串口服務器通訊即可實現(xiàn)對串口設備ModbusRTU通訊控制。
modbus rtu Over tcp/ip:是tcp網(wǎng)絡通信,但是本質上還是rtu。RTU通訊轉換使用以太網(wǎng)連接方式使用,實現(xiàn)方式與串口服務器不同,使用TCP通訊連接方式走ModbusRTU通訊協(xié)議報文。

個人理解的OSI模型分析Modbus通訊協(xié)議如下:

個人學習總結,如有錯誤歡迎指正,大家點關注一起學習分享,謝謝大家。END
