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

已锁定

宝冬

  • 帖子

    203
  • 精华

    26
  • 被关注

    249

论坛等级:奇侠

注册时间:2016-07-06

黄金 黄金 如何晋级?

发布于 2023-11-11 22:51:52

117楼

这个开源案例中的Modbus作为公共IO被包含进设备单元。


如果你想要把Modbus作为单独的模块剥离出去,也是可以的,如下图做法。

在设备单元和IO执行单元之间加一个交互对象把彼此衔接即可。这个IO单元内部就是简单封装了单纯的MB-comm-load和 MB-Master的执行。

设备与IO分别用不同的LoaderFB加载即可。





这种把IO执行单独剥离出来的做法,未见得有实际意义,只是作为为一种做法可以。

如果在多核芯CPU的PLC中,可以存在程序员可以通过编程或组态,去控制的并行多线程的多个OB的平行运转,那么也许这种做法有点意义。我从未用过这样的PLC,只能说也许。


临时想起这个话题,就做了IO执行剥离,实际验证了一下。在博图中其实没啥分别,只会略微麻烦一点。




---------------------------------------------------------------------------------


因为设备单元的内部采用的是分层解耦架构,所以比较容易就可以把通信IO元素剥离出来,且很容易调试排错。只动了通信部分的初始化层和执行层中的两处局部元素,其它完全不用动,改一下接口,把IO元素删除。




这个IO剥离表明:对于存在复杂一点时空结构的IO,如果从设备功能延伸出的调度体系像八爪鱼一样深入IO内部,那么从抽象高度看,这样的IO与其解耦剥离,不如高内聚。复杂度的变化,导致功能边界的发生质变,效率界限也随之而变。强行切开高耦合会带来浑浊,而不是简化问题。



-----------------------------------------------------------------


多核运用在PC开发是常态,嵌入式也越来越多,因UI与IO的需求不同。

目前的OpenHarmony,有公司也在通过多内核方案,把RTOS的实时性与Linux的高吞吐特点结合,向工业控制领域深入,未来应该会多见。华为有个RTOS内核叫Uniproton,在开源欧拉中使用,目前也被尝试进入OpenHarmony。



评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15112条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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