失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Modbus教程| Modbus协议 ASCII和RTU帧 Modbus工作

Modbus教程| Modbus协议 ASCII和RTU帧 Modbus工作

时间:2024-01-11 17:04:19

相关推荐

Modbus教程| Modbus协议 ASCII和RTU帧 Modbus工作

转载自:https://www.rfwireless-/Tutorials/Modbus-Protocol-tutorial.html

这个Modbus教程涵盖了modbus协议基础,ASCII和RTU帧结构,Modbus协议工作。Modbus协议教程还描述了应用示例。

什么是Modbus?

简介

“Modbus”术语是Modicon Inc.的商标,维护该标准。它是一种应用层协议,它基于连接在不同类型总线或网络上的设备之间的客户端/服务器架构。该Modbus协议用于SCADA风格的设备之间的网络通信。

Modbus协议运行在RS232,RS422和RS485之上。对于Modbus帧,为基于IP的链路层定义了Modbus / TCP规范。有许多工业自动化和计量协议。Modbus协议基于查询/响应模型。“查询消息”和“响应消息”及其字段(即内容)的放大视图如下图所示。

•如图所示,查询和响应消息都包含start(0x3A)和end(0x0D0A)分隔符。

•查询消息由包括设备地址,功能代码,查询数据和错误检查的字段组成。

•响应消息由包括设备地址,功能代码,响应数据和错误检查的字段组成。

Modbus协议工作

•Modbus协议通常遵循基于主从架构。主设备向从设备发送请求消息并等待响应消息。该架构为主站提供了完整的信息流控制。与以前使用RS422 / RS485等的多点网络相比,这具有很大的优点

•如图所示,Modbus请求消息是一组分层数据。控制器可以设置为使用两种传输模式之一在标准Modbus网络上进行通信:ASCII或RTU。在配置每个控制器期间,用户可以选择所需的模式以及串行端口通信参数(波特率,奇偶校验模式等)。对于Modbus网络上的所有设备,模式和串行参数必须相同。

•ASCII或RTU(远程终端单元)模式的选择仅适用于标准Modbus网络。它定义了在这些网络上串行传输的消息字段的位内容。它确定如何将信息打包到消息字段中并进行解码。

•当控制器设置为使用ASCII模式在Modbus网络上通信时,消息中的每个8位字节将作为两个ASCII字符发送。此模式的主要优点是它允许在字符之间发生长达一秒的时间间隔而不会导致错误。

•当控制器设置为使用RTU模式在Modbus网络上通信时,消息中的每个8位字节都包含两个四位十六进制字符。这种模式的主要优点是,对于相同的波特率,其更大的字符密度可以比ASCII更好的数据吞吐量。每条消息必须以连续的流方式传输。

•在两种串行传输模式(ASCII或RTU)中的任何一种模式下,发送设备将Modbus消息放入具有已知起点和终点的帧中。这允许接收设备在消息开始时开始,读取地址部分并确定寻址哪个设备,以及知道消息何时完成。可以检测到部分消息,并且可以设置错误。

•如图所示,Modbus协议适用于主从模型。总线或网络上的一个设备可以启动事务(称为查询),该事务可以寻址单个从设备或广播到所有从设备。从设备根据收到的Modbus帧执行操作,并在需要时以“响应帧”的形式进行响应。

•传输模式定义要在Modbus网络上传输的消息的成帧和位编码。

Modbus ASCII模式

该图描绘了Modbus帧的ASCII模式。如ASCII模式所示,每个字节在串行链路上编码为2个ASCII字符。每个ASCII字符作为1个起始位,7个数据位,0或1个奇偶校验位,一个或两个停止位发送

Modbus RTU模式

该图描绘了Modbus帧的RTU模式。如RTU(远程终端单元)模式所示,消息以连续流格式传输。每个8位字节由1个起始位,8个数据位,0或1个奇偶校验位,1或2个停止位构成。消息本身在至少3.5个字符时间的静默期后开始。

Modbus消息字段

➤让我们了解在ASCII模式和RTU模式下使用的主要字段。

Modbus地址:Modbus消息以8位目标地址开始。这可以取0到247之间的任何值。这里0用作广播地址,其余用作唯一设备地址。

Modbus功能:功能代码包含2个字符(ASCII模式)和8位(RTU模式)/它取1到255之间的任何值,并根据应用程序配置文件选择。

Modbus数据字段:该数据字段根据需要通过不同的Modbus功能传送应用程序级别信息。如果函数包含可变大小的数据,则在此位置以“字节计数”开头。

Modbus错误检查字段:此字段用作错误检测。它也被称为“校验和”。

Modbus TCP模式

与RS232和RS485不同,Modbus TCP使用TCP / IP协议传输Modbus消息。该图描绘了TCP / IP和OSI协议栈中Modbus协议的映射。

•Modbus TCP提供对Modbus功能的TCP / IP访问。

•使用众所周知的端口502,通过主站和从站之间建立的TCP连接发送每个Modbus请求/响应。

•TCP连接可以重复用于多个查询/响应交换。

•modbus请求/响应帧的字节内容(即没有特定于串行物理层的帧起始 - 停止 - 奇偶校验位)仅通过TCP连接以大印度顺序传输。Modbus TCP的唯一补充是添加一个7字节的消息前缀。

➤Refref00 00 00 len unit

•“ref”字节简单地由从服务器从请求中复制,并且可以由主服务器用作句柄。消息前缀中的长度信息允许在多个IP数据包中分割Modbus消息时正确重新组装。

•从站地址已重命名为“单元标识符”并包含在单元中。消息的其余部分符合常规Modbus结构,但出于显而易见的原因,可能会省略错误检查字段。

Profibus与Modbus

下表提到了Profibus和Modbus之间在各种参数方面的比较。

Modbus应用示例

modbus协议可以在RS485 / RS422等各种系统中实现。

•Zigbee到Modbus RTU / TCP网关

•实时库存控制,如拣货,点亮等。

•工业自动化

•智能计量

这个Modbus教程对初学者学习Modbus协议的基础非常有用。有关更多信息,请参阅ASCII,RTU或TCP模式的相应modbus协议规范。

如果觉得《Modbus教程| Modbus协议 ASCII和RTU帧 Modbus工作》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。