前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于串行总线的Modbus协议主从状态转移图

基于串行总线的Modbus协议主从状态转移图

作者头像
Hello工控
发布2024-06-25 19:51:36
730
发布2024-06-25 19:51:36
举报
文章被收录于专栏:Hello工控Hello工控
我们这期主要讨论MODBUS数据链路层的主从协议(状态转移图)。

两个独立子层

MODBUS数据链路层由两个独立的子层组成:

  • 主/从协议
  • 传输模式(RTU与ASCII模式)

接下来的部分描述了主设备和从设备的独立于所使用的传输模式的状态图。RTU和ASCII传输模式将在下一期使用两个状态图进行说明。主要描述了帧的接收和发送。

主站状态图

下图描述主站的详细处理状态及行为:

关于上述状态图的一些解释:

  • 状态“空闲” = 没有待处理的请求。这是上电后的初始状态。只有在“空闲”状态下才能发送请求。发送请求后,主设备离开“空闲”状态,并且不能同时发送第二个请求。
  • 当向从设备发送单播请求时,主设备进入“等待回复”状态,并启动“响应超时”计时。这可以防止主设备无限期地停留在“等待回复”状态。响应超时的值取决于应用程序。
  • 收到回复时,主设备在开始数据处理之前会先检查回复。检查可能会导致错误,例如收到来自意外从设备的回复,或者接收到的帧中存在错误。如果是收到来自意外从设备的回复,响应超时将继续进行。如果检测到帧错误,可能会执行重试。
  • 如果没有收到回复,响应超时到期,将生成错误。然后主设备进入“空闲”状态,允许重试请求最大重试次数取决于主设备的设置
  • 当在串行总线上发送广播请求时,从设备不会返回任何响应。尽管如此,主设备会允许一定的延迟,以允许任何从设备在发送新请求之前处理当前请求。这个延迟称为“转向延迟”。因此,主设备在返回“空闲”状态并能够发送另一个请求之前,会进入“等待转向延迟”状态。
  • 在单播中,响应超时必须设置得足够长,以便任何从设备处理请求并返回响应;在广播中,转向延迟必须足够长,以便任何从设备仅处理请求并能够接收新的请求。因此,转向延迟应该比响应超时短。通常,响应超时从1秒到几秒不等,在9600波特率下;而转向延迟从100毫秒到200毫秒不等。
  • 帧错误包括:1)对每个字符应用的奇偶校验;2)对整个帧应用的冗余校验。更多解释请参见后期的“错误检查方法”。
  • 状态图有意设计得非常简单。它没有考虑到访问线路、消息帧化或传输错误后的重试等...有关帧传输的更多详细信息,请下期“两种串行传输模式”的详细描述。

从站状态图

下图描述从站的详细处理状态及行为:

关于上述状态图的一些解释:

  • 状态“空闲” = 没有待处理的请求。这是设备上电后的初始状态
  • 当从设备接收到请求时,它会在执行请求中的动作之前先检查数据包。可能会发生不同的错误:请求中的格式错误、无效的操作等。如果出现错误,必须向主设备发送回复。
  • 完成所需的动作后,如果是单播消息,则需要格式化回复并发送给主设备。
  • 如果从设备检测到接收到的帧中存在错误,则不会向主设备返回响应。
  • MODBUS定义了诊断计数器,并应由任何从设备管理,以提供诊断信息。这些计数器可以通过使用MODBUS诊断功能获得。

主站/从站设备的通信时序图

下图表展示了3种典型的主站设备/从站设备通信场景的时序图:

注:

  • 请求(REQUEST)、回复(REPLY)、广播(BROADCAST)阶段的持续时间取决于通信特性(帧长度和吞吐量)。
  • 等待(WAIT)和处理(TREATMENT)阶段的持续时间取决于从设备应用程序所需的请求处理时间。

原文参考:

《Modbus_over_serial_line_V1_02》指导文件

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hello工控 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档