Modbus-RTU协议是主从交互协议,即主机轮询而从机响应。
它广泛用于工业自动化和楼宇自动化行业。
协议的消息结构主要由地址,功能代码,寄存器,数据,校验代码等组成。
让我与您分享Modbus-RTU的基本知识。
▲1 MODBUS-RTU的通讯格式RS485接口广泛用于工业自动化。
该接口是双总线通信模式。
只有两条线,RSA和RSB,可以使用MODBUS TCP / IP协议或MODBUS-RTU协议。
通讯距离可以达到几千米,它是一种标准的通讯接口,而MODBUS-RTU是工业领域中的一种标准通讯协议,大多数PLC和组态画面都支持该通讯协议。
数据格式由以下部分组成:1)从站地址; 2)功能码; 3)数据; 4)检查代码。
主站采用问答通信方式,定期查询从站的状态,从站收到主站的轮询命令后,用相应的数据进行响应。
常用的功能代码包括01读取线圈状态,03读取保持寄存器,06预置单个寄存器,16预置多个寄存器,等等。
▲2功能代码03的示例分析以功能代码03为例,介绍特定的数据格式。
主站的命令格式为:01 03 00 04 00 02 02 85 CA,从站的响应数据格式为:01 03 04 00 00 00 00 FA33。
如下所示。
该命令的含义是:主机希望读取地址为01的从设备的寄存器内容,并读取从00 04寄存器开始的两个寄存器的内容,即00 04和00 05的内容。
寄存器。
从设备收到命令后,将这两个寄存器中的数据发送给主设备。
每个寄存器存储两个字节的数据,并且两个寄存器总共存储4个字节的数据,因此返回了数据字节数。
四个。
▲3 06功能代码的示例分析06功能代码用于写入从属寄存器的内容。
例如,如果主机写入从机寄存器之一的数据,则可以通过06功能代码实现。
主站发送的数据如下:01 06 00 00 00 0A 09 CD,从站返回的数据如下:01 06 00 00 00 0A 09 CD。
如下所示。
数据的含义是:主设备要向01从设备的00 00寄存器中写入两个字节的数据,数据为00 0A。
成功写入后,从站将返回寄存器状态。
06功能代码只需要重写一个寄存器的内容。
如果要重写多个寄存器的内容,则需要使用16个预设的多个寄存器功能代码。
▲4常用通讯参数通讯前必须确认Modbus通讯参数。
这些通信参数包括:1)波特率; 2)数据位数; 3)停止位和4)验证方法。
波特率是指每秒传输的数据位数。
值越大,通信速度越快。
常用的波特率是4800、9600、19200、115200等。
当两个设备进行通信时,通信波特率必须保持一致,否则无法建立通信。
数据位数,通常为8位。
停止位有1位,2位等,检查方法包括奇校验,偶校验和无校验。
Modbus-RTU是工业控制行业中广泛使用的通信协议,主流的PLC支持该协议。
编程时,您不需要执行所有功能代码,只需执行一些常用功能代码,如03、06、16等即可。
很棒的建议:RS485是硬件接口,那么它如何实现数据通信? Modbus-RTU协议分析EMC抗干扰设计-RS485接口的电磁兼容设计RS485典型电路共享(带隔离)免责声明:本文内容经21ic授权后发表,版权归原作者所有。
该平台仅提供信息存储服务。
本文仅代表作者的个人观点,并不代表该平台的立场。
如有任何疑问,请与我们联系,谢谢!