今天調試了一天的MODBUS通訊,我把常用的通訊都總結了一遍,分享給大家,希望能有幫助:
1.1 功能碼"03":讀多路寄存器輸入
此功能碼作液晶屏啟動時需讀出初始設置參數,如:直流電壓上限等參數值用
例如:主機要讀取地址為01,起始地址為0116的3個從機寄存器數據。
從機(PDM)數據寄存器的地址和數據為:
主機發(fā)送的報文格式:
從機(PDM)響應返回的報文格式:
1.2 功能碼"04":讀多路輸入寄存器
例如:主機要讀取地址為01,起始地址為0000的3個輸入寄存器數據。
從機(PDM)數據寄存器的地址和數據為:
主機發(fā)送的報文格式:
從機(PDM)響應返回的報文格式:
1.3 功能碼"06":寫單路寄存器
例如:主機要把數據07D0,保存到地址為002C的從機寄存器中去(從機地址碼為01)。通訊數據保存結束后,地址為002C的PDM表原存儲信息為:
主機發(fā)送的報文格式:
從機(PDM)響應返回的報文格式:
與主機發(fā)送的報文格式及數據內容完全相同。
1.4功能碼"10":寫多路寄存器
主機利用這個功能碼把多個數據保存到PDM表的數據存儲器中去。Modbus通訊規(guī)約中的寄存器指的是16位(即2字節(jié)),并且高位在前。這樣PDM的存儲器都是二個字節(jié)。由于Modbus通訊規(guī)約允許每次最多保存60個寄存器,因此PDM一次也最多允許保存60個數據寄存器。
例如:主機要把0064,0010保存到地址為002C,002D的從機寄存器中去(從機地址碼為01)。通訊數據保存結束后,地址為002C/002D的PDM表內存儲信息為:
主機發(fā)送的報文格式:
從機(PDM)響應返回的報文格式:
歡迎關注微信公眾號,二維碼在網頁右側,截屏保存面到手機,打開微信掃描二維碼即可觀看我的分享。