嵌入式
返回首页

浅谈Modbus通信执行的快慢

2025-09-11 来源:elecfans

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

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

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

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

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

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

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

f071198a-e84a-11ed-ab56-dac502259ad0.jpg

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

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

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

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

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

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

f08517f0-e84a-11ed-ab56-dac502259ad0.jpg

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

f08f0fd0-e84a-11ed-ab56-dac502259ad0.jpg

关于优先权,通常都是写任务。读任务同样可以优先,并且能实现一些很实用的工艺。

在前面细节分析的基础上,用程序来计算每个通信任务的执行时间,以便整体看一下这个写任务执行快慢在整体场景中的分布情况。

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

f09e7e2a-e84a-11ed-ab56-dac502259ad0.jpg

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

f0a6195a-e84a-11ed-ab56-dac502259ad0.jpg


进入嵌入式查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • FollowMe 第二季:3 - EK_RA6M5 开发板入门

  • FollowMe 第二季: 1 Adafruit Circuit Playground Express及任务讲解

  • Azure RTOS step by step workshop

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • 从0到1:树莓派与物联网教程(英文)

精选电路图
  • 1瓦四级调频发射机

  • 500W MOS场效应管电源逆变器,12V转110V/220V

  • 12V 转 28V DC-DC 变换器(基于 LM2585)

  • 红外开关

  • 12V转110V/220V 500W逆变器

  • DS1669数字电位器

    相关电子头条文章