发表于:2023/12/6 21:08:59
#0楼
Modbus设备的单FB封装和多设备平行调用的通用架构此文章出自于西门子工业支持中心技术论坛,作者:宝冬
首先请注意:这不是通常所说的Modbus通信模块,而是一个具体设备的FB,和它在触摸屏上的交互界面。
Modbus是作为这个设备的IO被嵌入进FB。我追求的是:一个设备只需一个FB实例,通信只是它的IO管脚。
为什么要这样呢?因为作为买来的一个物理实体设备,485和Modbus是长在它身体里的。并不存在一个单独的可以拿在手里的实体物件叫Modbus模块,通信本来就是设备的内在功能的一项。而我喜欢抽象与现实的对称,也就是:现实中的一个可以拿在手里的完整东西,程序中就对应一个FB,这就是它的抽象孪生,除此没了。
我不想额外造出一个在现实中不存在单独对应体的抽象体。解耦分隔在FB内部就可以了,正如现实中的一个完整设备,它的内部各个组件功能也可以相对独立一样。设备FB内部采用的是分层解耦。
多个设备FB实例之间,是平行调用的,没有上级管理者。不管是同类设备,还是不同种类的,都可以。
开源的意义在于这个设计背后的思想。至于能理解和启发运用到什么程度,看代码吧。我在其它帖子中介绍过,其实是模仿了法治社会中的自由人的行为方式。
之所以说它是通用架构:如果你理解了,可以按照它的设计思想,很容易把它改写成任何种类Modbus设备,且可以灵活扩展和增减,适应多变且复杂的任何场景需求。这是个面向开放的设计。
其实并不局限于Modbus。任何多个实体之间,存在竞争性协调使用稀缺公共资源的场景下,都可以采用这个架构中的调度和解耦思想。这才是它的真正本意。
我以前分享过用自由口PtP做的MB-Master指令,还有可以运行在UDP上的MB-Master指令,它们可以被嵌入这个框架。
可以体验:一个设备FB,同时具备通过PLC本体485串口,和通过以太网UDP走串口服务器,可以在不同通道间,从HMI界面自由切换,来运转Modbus的效果。
项目是用博图V14Sp1的做的(PLC部分全部是SCL),体积大约40兆,归档后也有2.6兆,只好用网盘分享了,链接是永久的
链接:https://pan.baidu.com/s/1Ry0bRXbAGzLmAqWjTr4mqA
提取码:xarh
首先请注意:这不是通常所说的Modbus通信模块,而是一个具体设备的FB,和它在触摸屏上的交互界面。
Modbus是作为这个设备的IO被嵌入进FB。我追求的是:一个设备只需一个FB实例,通信只是它的IO管脚。
为什么要这样呢?因为作为买来的一个物理实体设备,485和Modbus是长在它身体里的。并不存在一个单独的可以拿在手里的实体物件叫Modbus模块,通信本来就是设备的内在功能的一项。而我喜欢抽象与现实的对称,也就是:现实中的一个可以拿在手里的完整东西,程序中就对应一个FB,这就是它的抽象孪生,除此没了。
我不想额外造出一个在现实中不存在单独对应体的抽象体。解耦分隔在FB内部就可以了,正如现实中的一个完整设备,它的内部各个组件功能也可以相对独立一样。设备FB内部采用的是分层解耦。
多个设备FB实例之间,是平行调用的,没有上级管理者。不管是同类设备,还是不同种类的,都可以。
开源的意义在于这个设计背后的思想。至于能理解和启发运用到什么程度,看代码吧。我在其它帖子中介绍过,其实是模仿了法治社会中的自由人的行为方式。
之所以说它是通用架构:如果你理解了,可以按照它的设计思想,很容易把它改写成任何种类Modbus设备,且可以灵活扩展和增减,适应多变且复杂的任何场景需求。这是个面向开放的设计。
其实并不局限于Modbus。任何多个实体之间,存在竞争性协调使用稀缺公共资源的场景下,都可以采用这个架构中的调度和解耦思想。这才是它的真正本意。
我以前分享过用自由口PtP做的MB-Master指令,还有可以运行在UDP上的MB-Master指令,它们可以被嵌入这个框架。
可以体验:一个设备FB,同时具备通过PLC本体485串口,和通过以太网UDP走串口服务器,可以在不同通道间,从HMI界面自由切换,来运转Modbus的效果。
项目是用博图V14Sp1的做的(PLC部分全部是SCL),体积大约40兆,归档后也有2.6兆,只好用网盘分享了,链接是永久的
链接:https://pan.baidu.com/s/1Ry0bRXbAGzLmAqWjTr4mqA
提取码:xarh