回复:Modbus设备FB接口设计背后的理念

已锁定

宝冬

  • 帖子

    437
  • 精华

    28
  • 被关注

    256

论坛等级:至圣

注册时间:2016-07-06

钻石 钻石 如何晋级?

发布于 2022-11-11 13:37:29

22楼

多个Modbus设备同时出现多个优先执行的处理


多个Modbus设备轮询中,有可能每个设备都在同一时间,产生多个优先任务的执行申请。


如果这些任务的优先级不同,还容易处理,按照优先级高低决定即可。


但如果它们都是同一个优先级的,如何处理呢?或者说,在众多任务中,很难不遇到优先级相同的申请,毕竟优先级总是少量的,没几个。例如:A、B、C三个设备,分别产生了1和2两个优先任务申请,都是同等优先级。


可以有两种处理方式。


1、均衡方式:比如:A1-->B1-->C1-->A2-->B2-->C2。每个设备只执行一个优先任务,之后让给其它设备执行,然后轮转回来再执行自己的第二个优先任务。如下图:

注意:上图中,在每个任务执行完毕后,没有空出一个扫描周期,而是在本周期之内,直接抢断,启动其它设备的优先任务。虽然减少了一个间隔周期,但会偶尔出错。


2、独占方式:比如:A1-->A2-->B1-->B2-->C1-->C2。每个设备先把自己的全部优先任务都执行完毕后,再让给其它设备执行。如下图:

注意:上图中的每个任务执行完毕后,就空出了一个扫描周期,可以稳妥不出错了。


可以把两种方式都集成进一个设备FB里面,通过管脚切换。


独占方式,在一定意义上,其实是在改变优先级策略。所以我还是倾向均衡方式。不同的调度方式,可以把玩,品味其中的各自特点优劣。


稍改一下,可以分清每个任务。


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15757条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

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