- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Modbus资料的
Modbus协议
主从方式,主站初始化传输。从站根据主设备查询提供的数据作出反应。
主站查询格式:站(或广播)地址、功能代码、要发送的数据、错误检测域。
从站回应格式:确认要行动的域、返回的数据、错误检测域。如果在消息接收过程中发生错误,或从站不能执行其命令,从站将建立错误消息并把它作为回应发送出去。
从站地址是0...247,0为广播地址
ASCII模式
: 地址 功能代码 数据数量 数据1 ... 数据n LRC高字节 LRC低字节 换行
消息中的每个ASCII字符都是一个十六进制字符组成
每个字节的位:
1个起始位
7个数据位,最小的有效位先发送
1个奇偶校验位,无校验则无
1个停止位(有校验时),2个Bit(无校验时)
错误检测域
LRC(纵向冗长检测)
使用ASCII模式,消息以冒号(:)字符(ASCII码 3AH)开始,以回车换行符结束(ASCII码 0DH,0AH)。
其它域可以使用的传输字符是十六进制的0...9,A...F。网络上的设备不断侦测“:”字符,当有一个冒号接收到时,每个设备都解码下个域(地址域)来判断是否发给自己的。
消息中字符间发送的时间间隔最长不能超过1秒,否则接收的设备将认为传输错误。
RTU模式
地址 功能代码 数据数量 数据1 ... 数据n CRC低字节 CRC高字节
代码系统:
8位二进制,十六进制数0...9,A...F
消息中的每个8位域都是一个两个十六进制字符组成
每个字节的位:
1个起始位
8个数据位,最小的有效位先发送
1个奇偶校验位,无校验则无
1个停止位(有校验时),2个Bit(无校验时)
错误检测域
CRC(循环冗长检测)
深入理解ModBus功能码
Modbus主要功能码
功能码 名称 注释 01 Read Coil Status (线圈状态0x)(读PLC的出状态) bit 读位,与5对应, 可读可写DO 02 Read Input Status (输入状态1x) (读PLC的入状态) bit 读位,只读DI 03 Read Holding Register (保持寄存器4x HR) (读模出状态) 读整形、状态字、浮点型、字符型,与16对应 04 Read Input Register (输入寄存器3x AR) (读PLC模入状态) 读整形、状态字、浮点型 只读AI 05 Write Single Coil (强制单路出,给PLC写数据) 写单个位 可读可写DO 06 Write Single Register (强制单路模出,给PLC写数据) 写单个整形、状态字、浮点型、字符型,写HR4x的地址区 15 Write Multiple Coil (强制多路出,给PLC写数据) 写多个位 16(0x10H) Write Multiple Register (强制多路模出,给PLC写数据) 写多个整形、状态字、浮点型、字符型
15和16可能是用于一次写一串数据的,不允许单个写。如时间的世纪、年、月、日、时、分、秒要一次写下去
设备和Modbus 地址范围对应表 设备地址 Modbus地址 描述 功能 R/W 1...10000* address - 1 Coils (outputs) 0 Read/Write 10001...20000* address - 10001 Discrete Inputs 01 Read 40001...50000* address - 40001 Holding Registers 03 Read/Write 30001...40000* address - 30001 Input Registers 04 Read *最大值与设备相关
注:设备地址是从1开始的,所以Modbus写入地址要在设备地址上减1。
协议格式
功能码:01 (线圈状态0x)(读出状态)
例:从4站读10…22(Coil 11…23),从A开始,共D(13)个数据主站从站地址 功能码 H 地址 L 地址 H Coils L Coils CRC 04 01 00 0A 00 0D DD 98 从站
从站地址 功能码 字节数 Coils 7..10 Coils 27..20 CRC 04 01 02 0A 11 50 B3 功能码:02 (输入状态1x) (读入状态)
例:从4站读10…22(Input 10011…10023),从A开始,共D(13)个数据主站从站地址 功能码 H 地址 L 地址 H Input L Input CRC 04 02 00 0A 00 0D 99 98 从站
从站地址
文档评论(0)