Modbus协议介绍及解析.pdfVIP

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

协议介绍及解析

简介

Modbus是一种广泛应用于工业控制领域串行通信协议,以其开

放性、高可靠性、高效简单性、免费等优点,成为了工业领域通信

协议的业界标准,是工业现场电子设备之间常用的连接方式。

Modbus按其格式可分为Modbus-RTU,Modbus-ASCII,Modbus-TCP,其

中前两者适用于串行通信控制网络中,例如RS485,RS232等,而

Modbus-TCP主要应用于基于以太网TCP/IP通信的控制网络中。通

过此协议,控制器相互之间、或控制器和其它设备之间进行通信。

Modbus协议使用的是主从通讯技术,即由主设备主动查询和操作从

设备。一般将主控设备方所使用的协议称为ModbusMaster,从设

备方使用的协议称为ModbusSlave。典型的主设备包括工控机和工

业控制器等;典型的从设备如PLC可编程控制器等。Modbus通讯物

理接口可以选用串口(包括RS232和RS485),也可以选择以太网

口。

2.报文类型及格式

2.1协议描述

Modbus协议定义了一个与基础通信层无关的简单协议数据单元

(PDU)。特定总线或网络上的Modbus协议映射能够在应用数据单

元(ADU)上引入一些附加域,启动Modbus事务处理的客户机创建

Modbus应用数据单元。如图1所示。Modbus-RTU方式的通讯数据

帧格式如图2所示。

2.2通讯信息传输过程

当命令由主机发送至从机时,符合相应地址码的从机处理命令,根

据功能码作相应任务。如果CRC校验无误,则执行相应的任务,然

后把数据返送给主机。如果CRC校验出错就不返回任何信息,主机

应当有相应的超时处理。如果接收正确,但不能处理,返回异常报

文。对字型数据发送顺序为先高字节后低字节;对浮点数按照正常

的顺序发送;信文总长度(包括地址码和CRC校验码)不超过256

字节。

2.3应用数据单元

应用数据单元(ADU)由地址码、功能码、数据区、错误校验码构

成。

地址码:

地址码是通讯信息帧的第一字节,从0到255。每个从机有唯一的

地址码,并且只有符合地址码的从机才能响应回送信息。0xFF为广

播地址。

功能码:

功能码向服务器指示将执行哪种操作。Modbus协议建立了客户机启

动的请求格式,用一个字节编码Modbus数据单元的功能码域,当

从客户机向服务器设备发送报文时,功能码域通知服务器执行哪种

操作。

数据区:

数据区可以是数据(如:开关量输入/输出、模拟量输入/输出、寄

存器等等)、参考地址等。均为二进制数。各种数据参考地址在综

合控制装置中均从1开始,在通讯过程中则从0开始,所以读写地

址N时使用的地址数据为N-1。

错误校验码(CRC校验):

由于电子噪声或一些其它干扰,信息在传输过程中有时会发生错

误,CRC校验可以检验主机或从机在通讯数据传送过程中的信息是

否有误,错误的数据可以放弃(无论是发送还是接收),这样增加

了系统的安全和效率。

Modbus通讯协议的CRC(冗余循环码)包含2个字节,即16位二进

制数。CRC码由发送设备(主机)计算,放置于发送信息帧的尾

部。接收信息的设备(从机)再重新计算接收到信息的CRC,比较

计算得到的CRC是否与接收到的相符,如果两者不相符,则表明出

错。在进行CRC计算时只用8个数据位,起始位及停止位,如有奇

偶校验位也包括奇偶校验位,都不参与CRC计算。

主要功能码说明

(1)读取内部线圈(接点)

功能码:0x01

描述:读从机多个内部线圈数据。不支持广播命令。(地址0XXXX)

查询

查询信息指定要读取的线圈开始地址和线圈数量。线圈地址从0开

始。

以读取地址为17的从机中第7~15号内部线圈的值为例:

响应

响应报文格式:

计算机发送命令:[设备地址][功能码01][起始寄存器地址高8

位][低8位][读取的寄存器数高8位][低8位][CRC校验的低8

位][CRC校验的高8位]

[设备地址][功能码01][返回的字节个数][数据1][数

据2]…[数据n][CRC校验的低8位][CRC校验的高8位]

文档评论(0)

199****2173 + 关注
实名认证
文档贡献者

小学毕业生

1亿VIP精品文档

相关文档