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

已锁定

宝冬

  • 帖子

    203
  • 精华

    26
  • 被关注

    249

论坛等级:奇侠

注册时间:2016-07-06

黄金 黄金 如何晋级?

发布于 2023-05-04 17:01:35

47楼

如果让同一类多个设备,只用一个FB实例,可以做到嘛?



FB实例本质上还是个数据块(IDB)。IDB里面主要承载了每个设备的内部私有数据,它们不是接口数据,不是设备对象所代表的FB边界功能,只是实现并行功能和并行调度的内部工具。


所以,如果把这些主要的内部私有数据,都放到设备对象的UDT中去,只剩下可以同类设备公用的内部工具,那么同一类多个设备的功能实现,只用一个共用实例来运转,当然可以。


说到底就是:如果每一个设备独特的数据,都有自己单独的存放之处,那么剩下的承载形式的选择,就可以灵活多变。就看自己的需求和看法。


这个开源案例中,只是把每个设备的界面外部功能提取出去,它们的实现和调度的内部载体,都放在FB实例中。这满足了我的案例应用。


如果诸位根据各自的案例需要,觉得有继续向外提取的必要,可以继续抽象隔离下去,把个体设备对象的独特性数据完全分离出去,就可以实现单类设备单实例的状态。


最终就是关于性价比,和资源空间的考量。


当然大家不妨试一下。给设备对象UDT扩充一些同名变量,加分组。为了代码书写便利,把FB中的一些static变量改成temp,名称不变就可以减少改代码。


这样做不论是否有案例层面的实际意义,都可以锻炼你站在功能的高度,和内部/外部/独特/共用,这几种观察角度,去对眼前的具体事务进行精确抽象分离的能力。就是关于提纯能力的练习。

设计能力最终就看这个基本功,案例只在具体个例上的能力落地的虚实结合体。


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15118条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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