Modbus RTU协议与S7 200 PLC通讯

一、Modbus RTU功能码

在这里插入图片描述

二、功能码使用与解析实例

01功能码 –读线圈状态

主机发送:01 01 00 01 00 08 6C 0C
从机回复: 01 01 01 2F 10 54

主机解析:01 地址(设备ID);

             01  功能码;

            00 01  代表查询的起始线圈地址,即从0001线圈开始查询。

            00 08 查询线圈数量。

            6C 0C 循环冗余校验。

从机解析:01 地址(设备ID);

            01  功能码;

            01  代表后面数据的字节数。

            2F    读取以0001线圈开始的8个线圈的状态。0x2F二进制为00101111,对应状态为1111                         0100

            10 54 循环冗余校验。

02功能码 –-读离散输入寄存器

       功能:读离散输入寄存器,位操作,可读单个或多个,类似功能码0X01

03功能码 –-读保持寄存器的值

主机发送:01 03 00 01 00 01 D5 CA

从机回复: 01 03 02 00 01 79 84

主机解析:01 地址(设备ID);

            03  功能码;

            00 01  代表查询的起始寄存器地址,即从0001寄存器开始查询。

            00 01 查询寄存器数量。

            D5 CA 循环冗余校验。

从机解析:01 地址(设备ID);

             03  功能码;

            02  代表后面数据的字节数。

            00 01 查询0001寄存器的值。

            79 84 循环冗余校验。

04 功能码 –-读输入寄存器

    功能:读输入寄存器,字节操作,可读单个或多个,类似功能码0X03

05 功能码 –-写单个线圈

    功能:对单个线圈进行写操作,位操作,只能写一个。写入0xFF00表示将线圈置为ON,写入0x0000表示将线圈置为OFF,其它值无效;

    主机发送数据:从站地址+功能码+寄存器起始地址+数据值+校验码

    从站应答数据:从站地址+功能码+寄存器地址+写入值+校验码

06 功能码 –-写单个保持寄存器

主机发送:01 06 00 02 00 01 E9 CA

从机回复: 01 06 00 02 00 01 E9 CA

主机解析:01 地址(设备ID);

            06  功能码;

            00 02  代表待写入的起始寄存器地址,即从0002寄存器开始写数据。

            00 01 写入的寄存器的值。即给0002寄存器写入0001

            E9 CA 循环冗余校验。

从机解析:01 地址(设备ID);

            06  功能码;

            02  代表后面数据的字节数。

            00 01 查询0001寄存器的值。

            E9 CA 循环冗余校验。

15 功能码 –-写多个线圈状态

主机发送:01 0F 00 01 00 07 01 6B B2 B9

从机回复: 01 0F 00 01 00 07 45 C9

主机解析:01 地址(设备ID);

            0F  功能码;

            00 01  代表待写入的起始线圈地址,即从0001线圈开始写数据。

            00 07 待写入的线圈的数量。

            01 后面写入数据的字节数。

            6B写入寄存器的值,即11010110。二进制01101011

            B2 B9 循环冗余校验。

从机解析:01 地址(设备ID);

            0F  功能码;

            00 01  代表待写入的起始线圈地址,即从0001线圈开始写数据。

            00 07 待写入的线圈的数量。

            45 C9 循环冗余校验。

16功能码 – 写多个保持寄存器

主机发送:01 10 00 04 00 03 06 00 01 00 00 00 01 5B 55

从机回复: 01 10 00 04 00 03 C1 C9

主机解析:01 地址(设备ID);

            10  功能码;

            00 04  代表待写入的起始寄存器地址,即从0004寄存器开始写数据。

            00 03 待写入的寄存器的数量。

            06 后面写入数据的字节数。

         0001,0000,0001写入寄存器的值。即给0004,0005,0006寄存器分别写入0001,0000,0001

            5B 55 循环冗余校验。

从机解析:01 地址(设备ID);

            10  功能码;

            00 04  代表待写入的起始寄存器地址,即从0004寄存器开始写数据。

            00 03 待写入的的寄存器的值。即给0004,0005,0006寄存器分别写入0001,0000,0001

            C1 C9 循环冗余校验。

三、调试软件

该资源请于最上方下载或进入我的博客查找
在这里插入图片描述

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值