- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Modbus 是美国 Modicon 公司(即现在的 Schneider Electric 公司)于 1979 年开发的一种通信协议,其目的是采用一根双绞线实现多个设备之间的通信。
Modbus 很快就成为自动化工业领域事实上的标准,Modicon 公司把它向社会公开发布,不收任何专利费用。
通过 Modbus 协议,可以轻松地实现不同厂家的控制设备(例如PLC、变频器和 DCS)之间的通信。Modbus 协议采用问答式的通信方式,具有简单、硬件便宜、通用性强、使用方便的优点,容易开发和实现。Modbus RTU 几乎成了国产 PLC 和变频器首选的通信协议。
Modbus 协议不需要专门的通信模块,通信所需的堆栈和协议机制是以软件形式实现的,属于 ISO-OSI 参考模型的第 7 层。它的另一个优点是可以通过任何传输媒介进行通信,包括双绞线、无线通信、光导纤维、以太网、电话调制解调器、移动电话以及微波等。这样可以很容易地在一个新的或者是现有的工厂里建立 起 Modbus 连接。
目前使用的 Modbus 有三个版本:Modbus ASCII、Modbus RTU 和 Modbus/TCP。Modbus ASCII 协议需要将一个字节的数据转换为两个字节的 ASCII 码后发送。Modbus RTU 协议的数据以二进制进行编码,每个字节的数据只需要一个字节的通信量。
Modbus RTU 通信采用主-从方式,最多传送 255 个字节的数据。主设备与一个或多个从设备进行通信。比较典型的主设备是 PLC、PC、DCS(集散控制系统)或者 RTU(远程终端单元)。Modbus RTU 的从设备一般是现场设备。当Modbus RTU 主设备想要从一台从设备得到数据的时候,主设备发送一条包含该从设备站地址、所需要的数据以及一个用于检测错误的CRC 校验码。网络上所有其它设备都可以接收到这条信息, 但是只有地址被指定的从设备才会作出反应。Modbus 网络上的从设备不能发起通信,它们只能在主设备对它说话的时候回答。
Modbus /TCP 可以被理解为以太网上的 Modbus。Modbus /TCP 不过是采用 TCP/IP 标准,简单地把Modbus 信息包打包压缩而已。这样 Modbus /TCP 设备就可以通过以太网和光纤网络进行连接和通信。与RS-485 接口相比,Modbus /TCP 还允许使用更多的地址、可以采用多主站架构、传送速率可以达到GB/s 的水平。Modbus /TCP 网络的从站数量仅受限于网络物理层的能力。通常从站的数量一般在 1024 个左右。Modbus RTU 采用 16 位的循环冗余校验码(CRC)。通过一个对数据进行“或”运算以及移位运算的复杂程序, 由主设备产生 CRC,并且由接收设备进行检查。如果双方计算出的 CRC 值不符,从设备就会要求重新传送信息。
Modbus RTU 协议分为 Modbus RTU 主站协议和 Modbus RTU 从站协议。Modbus 通信是由功能码来控制的,主站直接访问从站的数据区。
Modbus 的报文传输模式
串行链路上的 Modbus 协议有ASCII 和 RTU(远程终端单元)这两种报文传输模式,同一 Modbus 网络上所有的站都必须选择相同的传输模式和串口参数。
ASCII 模式
当控制器设为在 Modbus 网络上以ASCII(美国标准信息交换代码)模式通信时,报文帧中的每个 8 位字节都转换为两个 ASCII 字符发送。下面是ASCII 模式的报文格式:
:地址 功能码 数据字节数 数据 1……数据 n LRC 高字节 LRC 低字节 回车 换行
报文中的每个 ASCII 字符都由十六进制字符组成,传输的每个字符包含一个起始位、7 个数据位、一个奇偶校验位和一个停止位;如果没有校验位,则有两个停止位。Modbus 协议需要对数据进行校验,串行协议中除了奇偶校验外,ASCII 模式采用纵向冗余校验(LRC),计算LRC 时不包括开始的冒号符、LRC 本身和回车换行符。
RTU 模式
Modbus 网络上的 RTU 模式的报文以字节为单位进行传输,一个字节由两个十六进制数组成。在同样的波特率下,传输效率比 ASCII 模式的高。
传输的每个字节包含一个起始位,8 个数据位(先发送最低的有效位),奇偶校验位、停止位与 ASCII 模式的相同,报文最长为 256 字节。
MODBUS 的 RTU 模式报文的最后两个字节是循环冗余校验码(CRC)。其校验方式是将整个报文的所有字节(不包括最后两个字节)按规定的方式进行位移并进行XOR(异或)计算。接收方在收到该字符串时按同样的方式进行计算,并将结果与收到的循环冗余校验码进行比较,如果一致则认为通信正确,如果
原创力文档


文档评论(0)