离开TIA博图的日子---第12天

本文讲述了作者在升级系统设计中,从基于TIA的传统方法转向使用支持OOP的AX,通过抽象演艺设备为操作接口并利用PLCOpen示例学习,优化设备层级结构,以解决存储器空间问题的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        在打通上位机和PLC的基本通信后,今天进入系统设计的核心部分DevMangement,可以说舞台机械控制系统的核心就是围绕着Dev展开的。在系统中所有的被控对象都抽象为设备,包括我们常见的吊杆,升降台,也包括来自音频的TIMECODE或者来自灯光的DMX512信号,在系统中都是演艺设备EntertainmentDev。

        在曾经的设计中,苦于TIA不支持OOP,故设备的描述并不能层层抽象继承完成,故我们常常建立一个很大的结构数据,把所有设备的属性都包含其中,只是对于不适用于该设备的属性不使用,这导致数据结构相当的臃肿。

        同时TIA中也不存在继承关系,为了保持程序架构的相对稳定,故不同的设备或者变频器驱动只能用switch case分类调用,这导致的结果是我常常为S7-1200的工作存储器空间发愁。

        今天本是早早地做好准备工作,面对AX这样的OOP利器,计划大展身手的。但是面对如何OOP,如何设计这个层次结构,我是犯难了,几乎是直到晚上才开始动笔。还好PLCOpen有很好的OOP Application Examples。

        同时AX中有很好的例程《Motion OOP application example》。

          在我的开发经验中,面对新的设计模式或者开发工具时,我一般是坚持书读百遍其意自现这个道理的。所有今天在我至少把这两个文档读了3遍后,终于有了状态。

     

  在上图的启发下,把所有演艺设备的行为都抽象成了操作接口,通过不同设备类和具体Drv层进行Attach。

        对于复杂设备,比如三维威亚,全向车台或者演播演艺临时多个吊挂设备组成的编组,通过AxisGroup抽象。

        思路确定后及开始实施,今天先确定部分行为接口,做MVP测试,部分接口如下:

        此刻,休息的闹钟已第二次敲响,为了不重蹈上周低产出的覆辙,此刻我还是从长计议,选择关机睡觉,明天继续......

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值