MODBUS RTU通信协议详解

需积分: 9 8 下载量 164 浏览量 更新于2024-09-12 收藏 78KB DOC 举报
"MODBUS RTU通讯规约介绍" MODBUS RTU是一种广泛应用于工业控制领域的通信协议,它基于串行通信,使用RTU(Remote Terminal Unit)模式,以实现设备间的高效、可靠的数据交换。本规约详细描述了MODBUS RTU通信的数据格式、传输过程以及常用功能码。 一、通讯数据的类型及格式 MODBUS RTU信息帧由多个部分组成,包括起始位、地址码、功能码、数据区、CRC校验和结束位。信息帧以一个起始位(0)开始,接着是8位数据位,然后是2个停止位(均为1)。数据传输间隔最小为3.5个字节时间。信息帧结构如下: | 开始 | 地址码 | 功能码 | 数据区 | CRC校验 | 结束 | | ---- | ------ | ------ | ------ | ------- | ---- | | >3.5 字节停顿 | 1字节 | 1字节 | n字节 | 2字节 | >3.5 字节停顿 | 二、通讯信息传输过程 主机向从机发送命令时,从机根据接收到的地址码判断是否回应。如果CRC校验正确,从机会执行相应功能并返回执行结果。如果CRC校验错误,从机不返回任何信息。 2.1 地址码 地址码是每条通讯信息的第一个字节,范围从0到255(在描述中可能是100的限制是特定应用的设定)。地址码用于指定目标从机,从机在响应时也会回送其地址码,表明信息来源。 2.2 功能码 功能码是信息帧的第二个字节,指示从机应执行的操作。主机发送的功能码与从机返回的功能码一致,表明从机已成功处理请求。 2.3 数据区 数据区的内容根据功能码的不同而变化,可能包含数值、地址等信息。主机通过功能码03H读取寄存器,10H写入多个寄存器。读取或写入的寄存器数量不能超过规定的限制。 三、功能码简介 3.1 功能码03H:读寄存器 例如,主机要读取从机地址01H的寄存器0CH和0DH,主机将发送如下信息: - 地址码:01H - 功能码:03H - 起始寄存器地址:0CH(高字节00H,低字节0CH) - 寄存器数量:2个(高字节00H,低字节02H) - CRC校验码:08H(高字节),04H(低字节) 如果从机0CH和0DH的寄存器数据为特定值,从机将返回这些数据给主机。 四、CRC校验 CRC(Cyclic Redundancy Check)校验用于检测数据传输中的错误。从机在接收到信息后计算CRC值并与接收到的CRC值进行比较,以确认数据的完整性。 MODBUS RTU通讯规约通过规范化的数据帧结构、地址编码和功能码,实现了主从设备间高效、可靠的通信。这使得开发者能够方便地构建和扩展工业自动化系统,实现设备间的通信交互。