MODBUS_RTU通信协议

通讯数据的类型及格式:
信息传输为异步方式,并以字节为单位。在主站和从站之间传递的通讯信息是11位的字格式:
在这里插入图片描述
通讯数据(信息帧)格式
数据格式:
地址码 功能码1字节 数据区1字节 功能码N字节 错误校检
16位CRC码(冗余循环码)

一、通讯信息传输过程:
当通讯命令由发送设备(主机)发送至接收设备(从机)时,符合相应地址码的从机接收通讯命令,并根据功能码及相关要求读取信息,如果CRC校验无误,则执行相应的任务,然后把执行结果(数据)返送给主机。返回的信息中包括地址码、功能码、执行后的数据以及CRC校验码。如果CRC校验出错就不返回任何信息。
1.1 地址码:
地址码是每次通讯信息帧的第一字节(8位),从0到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送信息。当从机回送信息时,回送数据均以各自的地址码开始。主机

发送的地址码表明将发送到的从机地址,而从机返回的地址码表明回送的从机地址。相应的地址码表明该信息来自于何处。

1.2 功能码:
是每次通讯信息帧传送的第二个字节。ModBus通讯规约可定义的功能码为1到127。作为主机请求发送,通过功能码告诉从机应执行什么动作。作为从机响应,从机返回的功能码与从主机发送来的功能码一样,并表明从机已响应主机并且已进行相关的操作。

MODBUS部分功能码
在这里插入图片描述
数据区:
数据区包括需要由从机返送何种信息或执行什么动作。这些信息可以是数据(如:开关量输入/输出、模拟量输入/输出、寄存器等等)、参考地址等。例如,主机通过功能码03告诉从机返回寄存器的值(包含要读取寄存器的起始地址及读取寄存器的长度),则返回的数据包括寄存器的数据长度及数据内容。对于不同的从机,地址和数据信息都不相同(应给出通讯信息表)

主机(PLC、RTU、PC机、DCS等)利用通讯命令(功能码03),可以任意读取其数据寄存器

二、MODBUS功能码简介

1 功能码“02”:读1路或多路开关量状态输入
例如:主机要读取地址为01,开关量DI1—DI4的输入状态
从机(PDM)数据寄存器的地址和数据为:
在这里插入图片描述
主机发送的报文格式:
在这里插入图片描述
从机(PDM)响应返回的报文格式:在这里插入图片描述
2.2 功能码“01”:读1路或多路开关量输出状态
例如:主机要读取地址为01,开关量DO1,DO2的输出状态。
从机(PDM)数据寄存器的地址和数据为:
在这里插入图片描述
主机发送的报文格式:
在这里插入图片描述
从机(PDM)响应返回的报文格式:
在这里插入图片描述
2.2 功能码“01”:读1路或多路开关量输出状态
例如:主机要读取地址为01,开关量DO1,DO2的输出状态。
从机(PDM)数据寄存器的地址和数据为:在这里插入图片描述
主机发送的报文格式:
在这里插入图片描述
从机(PDM)响应返回的报文格式:
在这里插入图片描述
主机发送的报文格式:
在这里插入图片描述
从机(PDM)响应返回的报文格式:
在这里插入图片描述
2.3 功能码“03”:读多路寄存器输入
例如:主机要读取地址为01,起始地址为0116的3个从机寄存器数据。
从机(PDM)数据寄存器的地址和数据为:
在这里插入图片描述
主机发送的报文格式:
在这里插入图片描述
从机(PDM)响应返回的报文格式:
在这里插入图片描述
https://blog.csdn.net/qq_36339249/article/details/90664839

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值