文档介绍:Modbus
通讯协议
(RTU 传输模式)
本说明仅做内部参考,详细请参阅英文版本。
Modbus 通讯协议 (RTU 传输模式)
第一章 Modbus 协议简介
Modbus 协议是应用于电子控制器上的一种 通用语言 。通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有
了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
此协议定义了一个控制器能认识使用的消息结构 , 而不管它们是经过何种网络进行通信
的。它描述了一控制器请求访问其它设备的过程, 如果回应来自其它设备的请求, 以及怎样
侦测错误并记录。它制定了消息域格局和内容的公共格式。
当在一 Modbus 网络上通信时, 此协议决定了每个控制器须要知道它们的设备地址 ,识
别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用
Modbus 协议发出。在其它网络上,包含了 Modbus 协议的消息转换为在此网络上使用的帧
或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。
协议在一根通讯线上使用应答式连接( 半双工 ),这意味着在一根单独的通讯线上信号
沿着相反的两个方向传输。首先,主计算机的信号寻址到一台唯一的终端设备(从机),然
后,在相反的方向上终端设备发出的应答信号传输给主机。 协议只允许在主计算机和终端
设备之间,而不允许独立的设备之间的数据交换, 这就不会在使它们初始化时占据通讯线路,而仅限于响应到达本机的查询信号。
1. 1 传输方式
传输方式是一个信息帧内一系列独立的数据结构以及用于传输数据的有限规则, 以 RTU
模式在 Modbus 总线上进行通讯时,信息中的每 8 位字节分成 2 个 4 位 16 进制的字符,每
个信息必须连续传输下面定义了与 Modebus 协议 –RTU 方式相兼容的传输方式。
代码系统
8 位二进制,十六进制数 0...9, A...F
消息中的每个 8 位域都是一个两个十六进制字符组成
每个字节的位
个起始位
个数据位,最小的有效位先发送
个奇偶校验位,无校验则无
1 个停止位(有校验时), 2 个 Bit (无校验时)
错误检测域
CRC(循环冗长检测 )
1
Modbus 通讯协议 (RTU 传输模式)
1. 2 协议
当信息帧 到达终端设备时,它通过一个简单的“口”进入寻址到的设备,该设备去掉
数据帧的“信封” (数据头),读取数据,如果没有错误,就执行数据所请求的任务,然后,
它将自己生成的数据加入到取得的“信封”中,把数据帧返回给发送者。返回的 响应数据
中包含了以下内容:终端从机地址 (Address) 、被执行了的命令 (Function) 、执行命令生成的被请求数据 (Data)和一个校验码 (Check) 。发生任何错误都不会有成功的响应。
1. 2. 1 信息帧
Address Function Data Check
8-Bits 8-Bits N x 8-Bits 16-Bits
图 1 –1 . 信息帧格式
特注: Modbus 信息帧所允许的最大长度为 256 个字节 ,即 N 的范围是大于等于零且小
于等于 252( N{0 , 252} )。
即,所有的数据一共 256 个,数据剩下 253 个。
1. 2. 2 地址( Address)域
信息帧地址域 (信息地址 )在帧的开始部分,由 8 位组成,有效的从机设备地址范围
0-247( 十进制 ),各从机设备的寻址范围为 1-247 。主机把从机地址放入信息帧的地址区, 并
向从机寻址。 从机响应时, 把自己的地址放入响应信息的地址区, 让主机识别已作出响应的
从机地址。
地址 0 为广播地址,所有从机均能识别。 当 Modbus 协议用于高级网络时,则不允许广播或其它方式替代。
1. 2. 3 功能( Function )域
信息帧功能域代码告诉了被寻址到的终端 执行何种功能 。有效码范围 1-225( 十进制 ) ,
有些代码是适用于所有控