北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章545 浏览8637745

Modbus常用功能码解释及示例(2)

前面一篇文章我们介绍了Modbus常用功能码01H和02H,今天我们来介绍下功能码03H、04H和05H。

cover.png

1、功能码:03H
1)功能:读取远程从站若干个保持寄存器(Holding Register)的数值;
2)操作方式:每个保持存储器的数值以字(2个字节)的形式进行应答;
3)发送指令:
假设要读取从机地址0x03的108~110保持存储器的数值,其寄存器地址范围为:0x006B~0x006D,指令格式如下图所示:

03_send.png/

4)应答:
从站应答数据包括:从站地址+功能码+应答字节数+寄存器1高字节+寄存器1低字节+...+寄存器N高字节+寄存器N低字节
假设编号108~110保持寄存器的数值如下图所示:

03_register_value.png/

则应答帧如下图所示:

03_response_frame.png/

2、功能码04H
1)功能:读1~125个连续输入寄存器(Input Register)的数值;
2)操作方式:每个输入寄存器存储器的数值以字(2个字节)的形式进行应答;
3)发送指令:
假设要读取从机地址0x03的9~10号输入存储器的数值,其寄存器地址范围为:0x0008~0x0009,指令格式如下图所示:

04_send_frame.png/

4)应答:
从站应答数据包括:从站地址+功能码+应答字节数+寄存器1高字节+寄存器1低字节+...+寄存器N高字节+寄存器N低字节(与功能码03H类似)
假设寄存器的数据如下图所示:

04_register.png/

应答帧如下图所示:

04_response_frame.png/

3、功能码05H
1)功能:对单个线圈进行写操作。线圈编号从1开始,地址从0开始。写值0xFF00表示将线圈置为ON,写值0x0000表示将线圈置为OFF,其它值是无效的;
2)操作方式:位操作
3)发送指令:
假设要将从站地址0x03的第33个线圈(地址:0x0020)的值设置ON,指令如下图所示:

05_send.png/

4)应答:
从站应答数据包括:从站地址+功能码+寄存器地址+写入值
如果数据成功写入,则应答数据与请求数据一样,如下图所示:

05_response.png/

好了,关于Modbus功能码03H、04H和05H就先介绍到这里。欢迎扫描下方的二维码关注我们的微信公众号。

founderchip.png

Modbus常用功能码解释及示例(2)

来源:本站|   大小:393 KB|   下载次数:2018次

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论