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