- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[Modbus通讯协议]
[本页为封面,由文件管理员粘贴]
版本记录
目 录
1. Modbus 协议概述 1
1.1. Modbus协议传输模式 1
1.2. 帧 1
1.2.1. ASCII帧 2
1.2.2. RTU帧 2
2. Modbus协议 3
2.1. 通讯方式 3
2.2. Modbus帧 3
2.2.1. 从站地址字段 4
2.2.2. 功能码字段 4
2.2.3. 起始数据地址字段 5
2.2.4. 数据长度字段 5
2.2.5. 数据字段 5
2.2.6. 校验和字段 6
2.3. 功能码 6
2.3.1. 读取开出状态(功能码01) 6
2.3.2. 读取开入状态(功能码02) 7
2.3.3. 读取模出状态(功能码03) 7
2.3.4. 读取模入状态(功能码04) 8
2.3.5. 强制单路开出(功能码05) 9
2.3.6. 强制单路模出(功能码06) 9
2.3.7. 强制多路开出(功能码15) 10
2.3.8. 强制多路模出(功能码16) 11
3. 附录A 纵向冗余校验(LRC) 12
4. 附录B 循环冗余校验(CRC) 13
5. 附录C 功能码与数据类型对应表 15
6. 附录D 功能码和内存映射 16
7. 附录E 估算串口时间 17
8. 附录F 最大参数 20
9. 附录G 异常应答 21
Modbus 协议
Modbus协议是主从式通讯协议,理论上可接(寻址)一台主站和至多247①台从站。受线路和设备的限制,最多可接一台主站和32台从站。
Modbus协议的某些特征是固定的,如帧格式、帧顺序、通讯错误和异常情况的处理,以及所执行的功能等,都不能随便改动。其他特征属于用户可选的,如传输介质、波特率、字符奇偶校验、停止位的个数以及传输模式(ASCII或RTU)的选择等等。用户所选择的参数对于各个站必须一致,在系统运行时不能改变。
注:
① 除非特别指明或表示,本文档中所有数字均为十进制数。
Modbus协议传输模式
Modbus有两种可选的传输模式:ASCII(美国信息交换码)和RTU(远程终端设备),选择时应视主站而定。
表1-1 ASCII和RTU传输模式的特征
特征 ASCII RTU 编码系统 十六进制0-F的ASCII码 十六进制 每个字符的位数 起始位 1位 1位 数据位 7位 8位 奇偶校验位 0或1位 0或1位 停止位 1或2位 1或2位 校验位 LRC① CRC② 注:
纵向冗余校验,见附录A。
循环冗余校验,见附录B。
帧
Modbus协议的帧(报文)格式(详见2.2),对于ASCII和RTU传输模式基本相同,差别仅在于ASCII帧有帧首和帧尾,用以分断帧和同步,RTU帧无帧首和帧尾,其同步用时间间隔来实现。帧的各个字段的意义对于ASCII和RTU是相同的,主要区别在于对报文执行的校验类型以及报文中各个字符的编码形式和数量。一个8位的16进制RTU字符,对应于两个ASCII字符。其转化方式是:将8位RTU字符按二进制分成2段,每段4位;然后把每段对应的十六进制数扩展成对应的ASCII字符,就实现了RTU字符到ASCII字符的转换。例如,假设从站地址为17,RTU模式下,从站地址字段表示为11H;ASCII模式下,从站地址表示为‘1’‘1’,即31H 31H两个字节。由此可见,ASCII所用的字符是RTU的2倍。
最大帧长255。但有的厂家实现时可能会超过此限制,如北京13号线的HC6000就能最多一次读127个寄存器(RTU模式),计259个字节。请参考附录F
ASCII帧
ASCII传输模式的帧,是以“:”字符表示帧的开始,CR(回车)、LF(换行)表示帧
的结束。LF(换行)字符同时作同步字符使用,表示发送站已准备好接受应答。
基本规范:
(1)使用ASCII数据通讯。
(2)每个帧使用“: (冒号: 3AH)”作为头,CRLF (Carriage Return-Line Feed:0DH 0AH
),作为尾。
(3)允许在字符之间的间隔是1秒。
(4)使用LRC检查错误。
(5)帧结构(ASCII 数据)。
下表是ASCII传输模式的一般格式命令帧(见2.2)
帧首 从站地址 功能码 数据 校验和 帧尾 : 2字符
16位 2字符
16位 N*2字符
N*16位 2字符
16位 CR LF RTU帧
RTU传输模式的帧,无帧首和帧尾,帧同步只能通过模拟同步报文来保持。接收设备
监视收到的数据的间隔,若大于3.5个字符时间①还未收到新字符或帧尾,则该接收设备将去除原帧,并把下一个收到的字节作为节点地址。
基本规范:
(1) 使用十六进制数据通讯。
(2) 没有头和尾的区分。从
文档评论(0)