恭喜,你发布的帖子
发布于 2024-08-16 23:56:56
13楼
我大概明白了。
对象自我调度,真的不需要上层资源来管理吗?
楼主图片中红色部分属于哪个对象,我猜红色部分就是个上层资源吧。
大概是把上层模块逻辑放到了底层模块中,让底层模块对本来处于上层模块的数据(现在是公共数据)进行访问从而实现无需上层模块的调度吧。
-----------------------------------------
这种设计方式如果换成CodeSys就很理想了。
CodeSys的FB有个静态数据,和博图的静态数据完全不同,它是FB类型自身的数据,属于所有FB的对象。
和我的开源案例是一样的。这里只是改成通用的全优先级化了。
公共IO有自己的公示表格,因为公用所以必须公开。各个设备对象通过这个表格交换信息和了解当前公共资源的状态。图中的CB1241就是这个表格。
和开车一样。每个司机(FB实例)自己动态决策,因为每个人都知道交通规则。而不是每时每刻依靠交警(上层管理者)告诉你如何开车,如何过红绿灯等等。
上层管理者也是按照规则来进行管理。所以管理者只是规则的物化载体,抽象规则才是本质。
这规则是个集合,这个集合很多时候被称为调度,从操作系统内核到现实世界管理都一样。
每个对象有自己不同的调度状态,这些数据都要分别存在。所以不论采用何种架构,这些数据存储都省不了,每个对象都得单独有一份。
就像同样一套交通规则,但每个司机脑袋里的具体思考和运用结果是不一样的。因为各自场景不同。
请填写推广理由:
分享
只看
楼主