当前位置:首页 > 公众号精选 > 玩转嵌入式
[导读]Modbus-RTU协议解析!

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预置多个寄存器等。

▲ 03功能码举例解析
以03功能码为例,介绍一条具体的数据格式,主机的命令格式为:
01 03 00 04 00 02 85 CA,从机回复的数据格式为:
01 03 04 00 00 00 00 FA 33。如下图所示。

该条命令的含义为:
主机要读取01号地址的从设备的寄存器内容,读取从00 04寄存器开始往后2个寄存器的内容,即00 04和00 05寄存器中的内容。从机收到命令后,将这两个寄存器中的数据发送给主机,每个寄存器存放两个字节的数据,两个寄存器共存放4个字节的数据,所以返回数据字节的个数为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获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

交换机,作为现代信息技术基础设施的关键组件,在计算机网络架构中占据着核心地位。它是数据通信和信息交换的重要枢纽,负责在局域网(Local Area Network, LAN)内部实现设备间高速、智能的数据传输与连接管理。...

关键字: 交换机 数据通讯

1837年电报被发明,人类第一次实现了“给远方写信”;20世纪中叶,互联网诞生,“把地球化作一个大村落”;21世纪初,“一部手机走天下

关键字: te 数据通讯

PCF8591 是一个单电源低功耗的8位 CMOS 数据采集器件,具有4路模拟输入,1路模拟输出和一个串行 I2C 总线接口用来与单片机通信。与前面讲过的 24C02 类似,3个地址引脚 A0、A1、A2 用于编程硬件地...

关键字: pcf8591 硬件接口

像素时钟的公式:VCLK = HCLK/[(CLKVAL+1)X2]在本系统中,HCLK的值为100M HZ下面是几个参量与s3c2410fb_display数据结构之间的关系:VBPD是vertical back po...

关键字: Linux 时序 硬件接口 framebuffer 和s3c2410

Ⅰ、写在前面SPI(Serial Perripheral Interface)串行外设通信接口,主要实现设备(主从)之间的通信。硬件上由CS、SCK、MISO、MOSI四根通信线连接而成。关于SPI更多介绍不再详细描述,...

关键字: 硬件接口 读写flash 软件模拟 stm32f10x_spi
关闭
关闭