今天调试了一天的MODBUS通讯,我把常用的通讯都总结了一遍,分享给大家,希望能有帮助:
1.1 功能码"03":读多路寄存器输入
此功能码作液晶屏启动时需读出初始设置参数,如:直流电压上限等参数值用
例如:主机要读取地址为01,起始地址为0116的3个从机寄存器数据。
从机(PDM)数据寄存器的地址和数据为:
主机发送的报文格式:
从机(PDM)响应返回的报文格式:
1.2 功能码"04":读多路输入寄存器
例如:主机要读取地址为01,起始地址为0000的3个输入寄存器数据。
从机(PDM)数据寄存器的地址和数据为:
主机发送的报文格式:
从机(PDM)响应返回的报文格式:
1.3 功能码"06":写单路寄存器
例如:主机要把数据07D0,保存到地址为002C的从机寄存器中去(从机地址码为01)。通讯数据保存结束后,地址为002C的PDM表原存储信息为:
主机发送的报文格式:
从机(PDM)响应返回的报文格式:
与主机发送的报文格式及数据内容完全相同。
1.4功能码"10":写多路寄存器
主机利用这个功能码把多个数据保存到PDM表的数据存储器中去。Modbus通讯规约中的寄存器指的是16位(即2字节),并且高位在前。这样PDM的存储器都是二个字节。由于Modbus通讯规约允许每次最多保存60个寄存器,因此PDM一次也最多允许保存60个数据寄存器。
例如:主机要把0064,0010保存到地址为002C,002D的从机寄存器中去(从机地址码为01)。通讯数据保存结束后,地址为002C/002D的PDM表内存储信息为:
主机发送的报文格式:
从机(PDM)响应返回的报文格式:
欢迎关注微信公众号,二维码在网页右侧,截屏保存面到手机,打开微信扫描二维码即可观看我的分享。