恭喜,你发布的帖子
发布于 2020-12-10 16:28:00
18楼
结合工作经验,分享下我的模块化之路
1、入门
很幸运,一毕业就接手BOSS的IFIX项目,这个项目奠定了我的思维高度。
入门啃了一个月的vb,终于能上手。IFIX的开放性和灵活度确实非常好,作为组态软件,我认为比wincc好用很多。程序里有很多函数、模块,比如有连接数据库、关闭数据库、登录、操作记录等等公用模块,标签组实现faceplate。那时还没有模块化的概念,只是觉得应该这样做,程序架构很清晰,非常好维护。
2、对PLC模块化的疑惑
早期参与了几个PLC项目,其中一个是用AB的1756做的污水处理,里面开泵开阀、异常判断有很多代码,但都是针对一个个任务,直接输出到IO点,调试的比较麻烦
3、模块化的启蒙
应该是西门子有个示例代码,里面有step7和wincc的一些模块案例,逐渐对模块化有了理解。
2009版本的找不到了,这个类似:
https://support.industry.siemens.com/cs/cn/zh/view/66839614
4、尝试与应用
后来逐渐在项目里应用,尝试自己做些模块化的程序。
不论是施耐德unity pro、ABB AC800M、AB 1756这些plc还是AB SE、IFIX、Wincc flexible、国产的力控组态王这些组态软件。
印象里大概是10年,有一套s7-300+力控的项目,做完后仪表阀门数据刷新非常慢,后来查明原因:力控和s7-300通讯的背景DB太多(采用了一个仪表一个DB),不知道现在力控的驱动是否已经优化了。
5、提高与深入
做的第一个PCS7项目,那时刚出8.0,研究了APL,对APL丰富的功能感到惊讶,在项目自定义了很多APL风格的库。可以说PCS7的帮助非常大:
基础的原则、控制策略、体系化、模块化、结构化、标准化
6、疑惑
PCS7、APL很强大很复杂,博大精深。但能用的到的只有少数和基本的功能
PCS7没有很好的解决流程问题,虽然有SFC和SFC Type、Batch
不容易解决定制化的需求,毕竟没有APL源代码
还是结合行业特点,做自己的库和模块,才是解决之道。
7、优化
由于有跨平台的需求,因此采用SCL,在PCS7、TIA、Step7项目里都建立了核心代码基本一样的模块,减少项目团队的学习成本。
慢慢做到模块公用,比如开关阀、调节阀、工频电机、变频电机这些的核心逻辑是类似的,我就把她们共用了一套模块,包括facepate,减少维护量,应用时只要简单的配置。
基础的流程、顺控、状态机等,也统一用SCL做标准的模块,自己搭,比SFC灵活好用
8、标准化
模块化和标准化是并行的。
我们现在所有人用一套模块、一套架构、一套开发原则和一套质量标准。这个对公司会很有帮助。
程序模块依然在不断打磨、升级
9、拓展
单元级别的模块化:
有几个项目,特点是同类型单元很多,每个单元的工艺流程、仪表阀门配置基本一样,针对这种,我们把整个装置视为一个模块,类似于PCS7里的unit class type,在TIA里实现了几十个装置共用1个模块和1个画面,极大地提高了效率。
可配置和柔性化:
这是正在做的。很多相似的单元、流程,做成可配置的模块化。项目里做配置,不需要修改原始模块代码。要真正发挥效力,不仅仅是软件,也包括硬件、设备、管道,以及用户水平。
请填写推广理由:
分享
只看
楼主