modbus协议modbus协议精选.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
modbus协议modbus协议精选

深入理解Modbus基于串口的Modbus软件开发 ----------------------八股-------------------- 一、开发背景: 2、GAT垃圾项目的DCS要通过Modbus与PLC进行通讯,我们的DCS仅进行过简单的测试。要连鬼子的炉排PLC,还需进行更正式的测试,秦SUN为了体现ABB的软件水平,特决定自己写一个ABoBo公司的MB测试软件。 1、已经有好多个测试软件了,但是没有开源。如modbusscan 7.0(ModScan32.exe),Modbus Poll version, 4.3.1, Modbustester.exe,ModLink,ModbusSimulator 2、协议比较老了,但是很管用。 ----------------------八股-------------------- ----------------------N步走-------------------- 第一步:图书馆借N本VC串口编程的书 第二步:上网下N个源代码 第三步:上网下个虚拟串口的程序。(/cn/sn/download.htm) 第四步:学习Modbus协议 主从方式,主站初始化传输。从站根据主设备查询提供的数据作出反应。 主站查询格式:站(或广播)地址、功能代码、要发送的数据、错误检测域。 从站回应格式:确认要行动的域、返回的数据、错误检测域。如果在消息接收过程中发生错误,或从站不能执行其命令,从站将建立错误消息并把它作为回应发送出去。 从站地址是0...247,0为广播地址 ASCII模式 : 地址 功能代码 数据数量 数据1 ... 数据n LRC高字节 LRC低字节 回车 换行 代码系统: 十六进制,ASCII字符0...9,A...F 消息中的每个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 R

文档评论(0)

vshoulrengb3 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档