《modbus深度讲解.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《modbus深度讲解

MODBUS简介 MODBUS是MODICON公司为该公司生产的PLC设计的一种通信协议,从其功能上看,可以认为是一种现场总线。它通过24种总线命令实现PLC与外界的信息交换。具有MODBUS接口的PLC可以很方便的进行组态。 MODBUS传输协议定义了控制器可以识别和使用的信息结构,而不须考虑通信网络的拓扑结构。它定义了各种数据帧格式,描述了控制器访问另一设备的过程,怎样作出应答响应,以及可检查和报告的错误。 MODBUS有两种传送方式,RTU(Remote Terminal Unit)方式和ASCⅡ方式。MODBUS以LSB在先的形式传送数字量,以MSB在先的形式传送模拟量。MODBUS把通信参与者规定为“主站”(MASTER)和“从站”(SLAVE)。主站可向多个从站发送通信请求,最多可达247个从站。每个从站都有自己的地址编号。 MODBUS的RTU方式规定通信字符串的最后两个字节用于传递循环冗余校验数据。其校验方式是将整个字符串(不包括最后两个字节)的所有字节按规定的方式进行位移并进行XOR(异或)计算。接收方在收到该字符串时按同样的方式进行计算,并将结果同收到的循环冗余校验的两个字节进行比较,如果一致则认为通信正确,如果不一致,则认为通信有误,从站将发送CRC错误应答。MODBUS中RTU采用CRC-16的冗余校验方式。 控制器与PLC之间通信的内容包括主站对从站的读取和写入,MODBUS规定,只有主站具有主动权,从站只能被动的响应,包括回答出错信息。 从功能上讲,MODBUS包括24种命令,每一功能都有相应的功能码。最基本的功能主要包括AI/AO、DI/DO的数据传送, PLC如果支持MODBUS,那么都应该包含这些基本命令。PLC将模拟量和数字量存放在不同的寄存器中。模拟量在PLC中是保存在寄存器(Holding Register)中,数字量保存在线圈中(Holding Coils)。 MODBUS除了定义通信功能码外,同时还定义了出错码,这有助于通信主站发现通信的错误内容和原因,并采取相应措施,从而保证了通信的可靠进行。 modbus线圈储存值和输入状态值都是奇数位数值.串行卡处理数值类型和数据映射. modbus指的是MODICON公司为该公司生产的PLC设计的一种通信协议,从其功能上看,可以认为是一种现场总线。 coil是线圈的意思。 Modbus 地址 通常 Modbus 地址由 5 位数字组成,包括起始的数据类型代号,以及后面的偏移地址。Modbus Master 协议库把标准的 Modbus 地址映射为所谓 Modbus 功能号,读写从站的数据。Modbus Master 协议库支持如下地址: 00001 - 09999:数字量输出( 线圈) 10001 - 19999:数字量输入(触点) 30001 - 39999:输入数据寄存器(通常为模拟量输入) 40001 - 49999:数据保持寄存器 Modbus Master 协议库支持的功能 为了支持上述 Modbus 地址的读写,Modbus Master 协议库需要从站支持下列功能: 表 1. 需要从站支持的功能 Modbus 地址 读/写 Modbus 从站须支持的功能 00001 - 09999 数字量输出 读 功能 1 写 功能 5:写单输出点 功能 15:写多输出点 10001 - 19999 数字量输入 读 功能 2 写 - 30001 - 39999 输入寄存器 读 功能 4 写 - 40001 - 49999 保持寄存器 读 功能 3 写 功能 6:写单寄存器单元 功能 16:写多寄存器单元 如何理解 Modbus 地址与功能码的区别? Modbus 地址与 Modbus 的功能码是两个层次的概念。 根据 Modbus 通信协议,Modbus 数据的地址使用 0xxxx、1xxxx、3xxxx 和 4xxxx 的形式,分别表示数字量输出、数字量输入、模拟量输入等数据地址。在使用 S7-200 的指令库时,Modbus 数据地址与 S7-200 的 I/O 和数据存储区地址间有特定的对应关系。 有些设备表明它支持 Modbus RTU 通信协议,但也详细提供了读写数据的详细通信帧格式,其中包括如何指定 Modbus 站的地址,需要读写数据类型、长度等等。数据帧有特定字节指出此指令读写的数据类型和地址,此字节的数据内容即所谓“功能码”,如功能 1 指定读取单个/多个数字量输出点的值。 支持 Modbus 协议的设备或软件,使用时用户直接设置或看到的应当是 Modbus 数据地址。Modbus 地址所访问的数据,是通过各种“功能”读写而来。功能码是 Modbus 地址的底层。如果 Modbus 通信的一

文档评论(0)

yingrong + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档