[西门子] 如何分析Modbus通信的执行快慢

[复制链接]
查看56869 | 回复0 | 2024-2-21 08:49:37 | 显示全部楼层 |阅读模式


以下内容来源于网络

Modbus通信执行的快慢分为两种场景。

1、一种是常规的多个站点的任务轮询执行的耗时。但这种轮询快慢和通信任务量有关,只要通信任务量不便,就改变不了执行速度,改波特率不算。

除非由于设备工作模式的变化导致通信的任务数量有变化,或者由于个别站点的通信质量不好或者掉站而导致的时间拖延,而这后者是有改善余地的。

就是在经过一定错误次数之后,把有问题的站点退出轮询。这样可以节约有限的通信资源,保证其它正常站点可以能更好执行,不被耽搁。

但这种轮询的快慢并不是这里要探讨的,因为它说明不了单个通信任务在本质上的执行快慢。

2、当用户的操作命令和参数发生变化的时候,Modbus设备能在多少时间之内迅速做出反应,这才是有分析意义的。

这里我们用1200和2个温控器之间的Modbus通信的实例,来做一个细致的分析。



上面这个GIF截图,是PLC和温控器之间的Modbus通信的手机快速连拍。

我在触摸屏仿真上用鼠标快速点击一个按钮。这个按钮是把温控器的工作模式在手动和PID自动模式之间来回切换,所以它是个写任务通信的反复执行。

可以看到点击的速度很快,温控器面板上的数字反应也在快速切换。就主观手感而言,执行是非常快的,滞后微乎其微,很难觉察。

但是这个写任务的执行到底消耗了多少时间呢?这执行中的细节受到哪些因素的影响?这些过程细节需要用Trace才能呈现。

下面用两张详细注释的Trace图来展示。

A、这张图是10秒钟内的整体通信场景的记录。其中可以看到周期性的2个温控器的轮询执行,和偶尔插入的临时写任务的优先执行。



B、下面这张图是单独取出上图中的某一次优先任务,具体分析它的执行和耗时


关于优先权,通常都是写任务。读任务同样可以优先,并且能实现一些很实用的工艺。
在前面细节分析的基础上,用程序来计算每个通信任务的执行时间,以便整体看一下这个写任务执行快慢在整体场景中的分布情况。

可以看到这个写任务的消耗时间在20多ms~50多ms之间变化不等。我的PLC程序的扫描周期是20多ms,实际就是1-2个扫描周期的区别。



下图是5号从站的0号任务、7号任务、18号任务的通信耗时统计,稍微加了点滤波。基本上能看出不同任务耗时的大致状况。





文章来源:综合网络,本文系网络转载,版权归原作者所有。但因转载众多,无法确认真正原始作者,故仅标明转载来源。本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容!本文内容为原作者观点,并不代表本公众号赞同其观点和对其真实性负责。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则