回复:【开源】Modbus设备的单FB封装和多设备平行调用的通用架构 ------ 一个温控器案例的完整项目文件

已锁定

宝冬

  • 帖子

    418
  • 精华

    27
  • 被关注

    256

论坛等级:奇侠

注册时间:2016-07-06

钻石 钻石 如何晋级?

发布于 2023-07-05 23:30:51

64楼

每个从站之间,每个从站内部各个任务之间,可以空一个扫描周期。如下图




各个设备FB的代码,在同一个扫描周期之内,是有先后执行顺序的。


在当前扫描周期内,当某个设备的通信执行权发生转移的时候。

如果下一个设备的代码是位于它后面,那么下一个设备需要主动空出当前周期,等到下一周期再开始通信。

如果下一个设备的代码是位于它前面,那么下一个设备就不需要这样做。因为下一个设备的通信,必定是只能开始于下一扫描周期。


这需要每个获得执行权的设备,知道自己与上一个执行设备,在扫描周期中的前后位置。怎么才能知道呢?


设备代码的扫描顺序,是由它们被调用的位置次序决定的。

在调用的地方,为每个设备自动依次分配12345的先后序号并传入实例内部。

当前设备把自己的扫描序号,与上一个执行设备的扫描序号对比一下,就清楚彼此的前后顺序了。

因此,上一个获得485执行权的设备的扫描序号,是个公共变量。


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15639条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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