1、读线圈寄存器(01H)[对应的写入功能码是05]、读离散输入寄存器(02H)
主机发送报文格式:
从机地址(1字节)+功能码(1字节)+起始地址(2字节,大端格式)+读取数量(2字节,大端格式)+CRC校验(2字节,小端格式)
从机回复报文格式:
从机地址(1字节)+功能码(1字节)+数据长度(1字节)+数据(长度不固定,按顺序,每8个位组成一个字节)+CRC校验(2字节,小端格式)
例1:从机编号为1,自19(0X13)号线圈开始读取27(0X1B)个线圈的状态,从机返回这27个线圈的状态分别是:0XCD 0X6B 0XB2 0X05
主机发送:01 01 (00 13) (00 1B) (8D C4)
从机回复:01 01 04 (CD 6B B2 05) (00 02)
例2:从机编号为2,读取3、4、5号线圈(1开始)的状态,从机返回这3个线圈的状态分别是:1、0、0
主机发送:02 01 (00 02) (00 03) (DD F8)
从机回复:02 01 01 (01) (90 0C)
2、写单个线圈(05H)
报文格式(主从机报文内容一致):
从机地址(1字节)+功能码(1字节)+写入地址(2字节,大端格式)+写入数据(2字节,大端格式)+CRC校验(2字节,小端格式)
例1:从机编号为2,将5号(1开始)IO点设置为吸合(吸合:FF00,断开:0000)
主、从机报文内容:02 05 (00 04) (FF 00) (CD C8)
例2:从机编号为1,将27号(1开始)线圈设置为吸合
主、从机报文内容:01 05 (00 1A) (FF 00) (AD FD)
3、读保持寄存器(03H)[对应的写入功能码是06]、读输入寄存器(04H)
主机发送报文格式:
从机地址(1字节)+功能码(1字节)+起始地址(2字节,大端格式)+读取数量(2字节,大端格式)+CRC校验(2字节,小端格式)
从机回复报文格式:
从机地址(1字节)+功能码(1字节)+数据长度(1字节)+数据(按顺序每个寄存器的结果大端格式)+CRC校验(2字节,小端格式)
例1:从机地址为18,从第17个(1开始)寄存器开始读取2个寄存器的值,结果分别是:259、68
主机发送:12 03 (00 10) (00 02) (C7 6D)
从机回复:12 03 (04) (01 03) (00 44) (29 3D)
例2:从1号从机的108号(1开始)寄存器开始读取2个寄存器的值
主机发送:01 03 (00 6B) (00 02) (B5 D7)
从机回复:01 03 (04) (00 C8) (01 2C) (7B 80)
4、写单个寄存器(06H)
报文格式(主从机报文内容一致):
从机地址(1字节)+功能码(1字节)+写入地址(2字节,大端格式)+写入数据(2字节,大端格式)+CRC校验(2字节,小端格式)
例1:将1号从机的17号寄存器(1开始)设为768
主、从机报文内容:01 06 (00 10) (03 00) (88 FF)
总结:
- 主机写入单个线圈或单个寄存器的报文格式一致,报文长度固定是8个字节
 - 在modbus报文中,除了CRC校验是小端格式,其余全是大端格式。
 
版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/14461.html