技术论坛

 如何分析Modbus通信的执行快慢

返回主题列表
作者 主题
宝冬
奇侠

经验值: 9836
发帖数: 1491
精华帖: 29
楼主    2021-03-21 06:24:21
主题:如何分析Modbus通信的执行快慢 精华帖 

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号任务的通信耗时统计,稍微加了点滤波。基本上能看出不同任务耗时的大致状况。


lizwpp
游侠

经验值: 515
发帖数: 83
精华帖: 0
1楼    2021-03-21 07:37:30
主题:回复:如何分析Modbus通信的执行快慢
好帖!  有帮助
艾马尔
侠圣

经验值: 4362
发帖数: 665
精华帖: 0
2楼    2021-03-22 06:52:07
主题:回复:如何分析Modbus通信的执行快慢

很不错的分享,经常遇到数据传输过程不稳定出现问题

黑猫警长W
至圣

经验值: 18274
发帖数: 2391
精华帖: 1
3楼    2021-03-22 11:06:40
主题:回复:如何分析Modbus通信的执行快慢

楼主分析能力厉害

木头515
侠圣

经验值: 2151
发帖数: 251
精华帖: 0
4楼    2021-03-22 11:43:32
主题:回复:如何分析Modbus通信的执行快慢

 楼主能够细微的地方去发掘,细心有方法。

低头做事,抬头做人!!
天芯
至圣

经验值: 18630
发帖数: 2091
精华帖: 0
5楼    2021-03-22 12:40:09
主题:回复:如何分析Modbus通信的执行快慢

跟着学习,感谢楼主分析

WOWUWUWU
至圣

经验值: 10349
发帖数: 1791
精华帖: 0
6楼    2021-03-22 16:07:33
主题:回复:如何分析Modbus通信的执行快慢

感谢分享,学习了。

手机用户20200103FZF48F
奇侠

经验值: 5658
发帖数: 764
精华帖: 1
7楼    2021-03-22 16:09:29
主题:回复:如何分析Modbus通信的执行快慢

谢谢楼主分享,跟着长知识了。

Zaxife
至圣

经验值: 12573
发帖数: 2503
精华帖: 31
8楼    2021-03-22 17:07:17
主题:回复:如何分析Modbus通信的执行快慢

RS485单机通讯无所谓了,快也快不到哪里去,慢也慢不到哪里去。数据表优化到位了基本上棒棒的。

真正要关注通讯快慢的是中控系统很多节点的RS485通讯。

其实,中控系统基本上都是写优先,写完后立刻回读,这里可以做到100ms的响应(前提是所有节点通讯都正常)。很多通讯驱动没有开放通讯超时参数修改是很无语的,导致通讯异常超时时间太久太浪费时间。

PLC程序上,要做到写优先也是可以的,在通讯逻辑上花点时间就行了。

xiatianyun
侠圣

经验值: 4834
发帖数: 735
精华帖: 10
9楼    2021-03-22 21:52:51
主题:回复:如何分析Modbus通信的执行快慢

我以为我已经明白了Modbus通讯,现在我知道了我其实啥也不是。

宝冬
奇侠

经验值: 9836
发帖数: 1491
精华帖: 29
10楼    2021-03-23 09:41:20
主题:回复:如何分析Modbus通信的执行快慢

不稳定基本还是硬件原因,最好用示波器查看波形,最直接。


触摸屏上每个从站有自己的诊断页面,了解信息,提供手段,改善体验。要有报警


不稳定的情况,通过程序的调度策略能够有一定程度的改善。有些通信任务的内容是可以动态改变的。


Ready_OK
至圣

经验值: 15522
发帖数: 1734
精华帖: 0
13楼    2021-03-23 14:59:06
主题:回复:如何分析Modbus通信的执行快慢

感谢楼主的细心分享!

海纳百川,厚德务实!
Zaxife
至圣

经验值: 12573
发帖数: 2503
精华帖: 31
14楼    2021-03-24 11:18:10
主题:回复:如何分析Modbus通信的执行快慢

土豪大佬啊,去现场都有示波器侍候。

手持示波器不便宜啊,穷人表示买不起。

常规示波器个头太大绝不方便携带、不方便现场使用。

宝冬
奇侠

经验值: 9836
发帖数: 1491
精华帖: 29
15楼    2021-03-24 11:53:39
主题:回复:如何分析Modbus通信的执行快慢

便携式淘宝一千三。


波形报文,03码读取45个寄存器的一次主从问答


波形报文的解读方法


您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。