恭喜,你发布的帖子
发布于 2023-05-04 17:01:35
47楼
如果让同一类多个设备,只用一个FB实例,可以做到嘛?
FB实例本质上还是个数据块(IDB)。IDB里面主要承载了每个设备的内部私有数据,它们不是接口数据,不是设备对象所代表的FB边界功能,只是实现并行功能和并行调度的内部工具。
所以,如果把这些主要的内部私有数据,都放到设备对象的UDT中去,只剩下可以同类设备公用的内部工具,那么同一类多个设备的功能实现,只用一个共用实例来运转,当然可以。
说到底就是:如果每一个设备独特的数据,都有自己单独的存放之处,那么剩下的承载形式的选择,就可以灵活多变。就看自己的需求和看法。
这个开源案例中,只是把每个设备的界面外部功能提取出去,它们的实现和调度的内部载体,都放在FB实例中。这满足了我的案例应用。
如果诸位根据各自的案例需要,觉得有继续向外提取的必要,可以继续抽象隔离下去,把个体设备对象的独特性数据完全分离出去,就可以实现单类设备单实例的状态。
最终就是关于性价比,和资源空间的考量。
当然大家不妨试一下。给设备对象UDT扩充一些同名变量,加分组。为了代码书写便利,把FB中的一些static变量改成temp,名称不变就可以减少改代码。
这样做不论是否有案例层面的实际意义,都可以锻炼你站在功能的高度,和内部/外部/独特/共用,这几种观察角度,去对眼前的具体事务进行精确抽象分离的能力。就是关于提纯能力的练习。
设计能力最终就看这个基本功,案例只在具体个例上的能力落地的虚实结合体。
请填写推广理由:
分享
只看
楼主