回复:【SCL编程案例】SCL的医美:OOP、数据结构及数据库

'Razor

西门子1847工业学习平台

  • 帖子

    3234
  • 精华

    42
  • 被关注

    224

论坛等级:至圣

注册时间:2008-03-31

钻石 钻石 如何晋级?

发布于 2025-06-08 15:56:57

3楼

展开查看
以下是引用宝冬在2025-06-08 12:50:59的发言 >1楼

这种问题可以用多优先级解决,且每个设备各自独立,任何任务随机出现,不必刻意安排,不必捆绑一起循环。关键是调度规则清晰。



上图是5个温控器通过CB1241的Modbus进行控制的一个场景。

每个温控器实例的任务,都分为4个等级:L0、L1、L2、L3(最高)

L0:读任务。

L1:多个设备之间,需要一起协作联动的读任务。

L2:写任务

L3:多个设备之间,需要一起协作联动的写任务。


当L3与L1同时出现,当L2与L1同时出现的时候,是如何按照等级次序,自动切换进行。

每个设备之间并不知道彼此的需求,但他们都平等的知道调度规则,就像遵循红路灯的交通规则一样,每个司机自己根据规则自主决定调度,无需交警在现场命令每个人的行动。

也就是,多主体之间的协调,因规则而自动产生。


下图是多主体的L3、L2、L1任务需求同时出现时候的自动排序。


上面Trace图中,一格折线变化之间,就是一个扫描周期。


这样做的好处就是:设备和任务可以任意增加和扩展,3个、5个、10个等等,自由增减。可以动态化任意联动,无需关注和打乱彼此的关联耦合,且任务不必是相同性质。规则集合自动协调一切。各自按照规则走即可,彼此无关。



另外,第一张图可能会注意到:各个设备的L3任务,在执行的时候,彼此之间是没有间隔一个扫描周期的,虽然分属不同的实例,但紧密相随。其它低等级的任务,彼此之间都有一个扫描周期的间隔。这是规则集合中,离散解耦的规则元素,叠加的效果。

一切都不是死的,都可随时扩展和变化,唯有规则是明确的公开的。





代码是语义的元素,语义是需求的集合化抽象。


宝侠最近又删帖子了

少即是多
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15207条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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