2018-04-20

浅谈PLC的编程思想及其未来发展(3)

原创 2017-11-19 HwLib(慧兰博) HwLib慧兰博

6、我们究竟该如何编程

面向过程的编程通常只适用于小项目。而对于规模较大的项目如果依然采取这种方式将导致控制程序开发量暴增,且bug极多,项目工期长和项目质量难以把控,同时也会大大的增加项目后期服务的工作量。而DCS在这个问题上则不是很明显,无论是霍尼韦尔还是西门子的PCS7,它们都提供过程控制库,比如PCS7中的APL。

 目前国内自动化市场普通存在以下现象:

    1)硬件价格透明、项目利润率低;

 2)僧多粥少,竞争激烈,最后都是白菜价拿项目;

 3)自动化工程师待遇低、人员流动性高;

 4)编程不规范,维护工程师苦不堪言;

5)HMI风格不统一,让人感觉不专业;

对于上述问题,相信大家都深有体会。很多PLC厂商都提出了相应的解决方案,比如西门子提出了模块化编程的概念,利用FB/FC进行一些相应的功能封装,而且提供了像BST这样的模板。AB的ControlLogix则开始支持AOI功能,也提供了PlantPAxLibrary,只不过最新的版本好像要收费了。行业里的很多自动化工程师也做了不懈的努力,比如模仿APL开发自己程序库等。有人将此称之为面向对象编程,但也有人并不认同,由此也产生了一些争论。

面向对象解决的最大问题是使程序易于维护和增加了程序的复用性,其三要素是封装、继承和多态。PLC编程中基于FB的模块化编程在提高程序的维护性和复用性这方面毋庸置疑,而封装、继承和多态这三个要素也基本具备(当然语法特性两者无可比性,但思想基本吻合),因此个人认为称之为面向对象编程亦并无不可。

借鉴软件工程的发展,面向组件编程将可以进一步的解决上面提出的问题,无论是在开发效率上还是在程序质量上都将会再上一个台阶。面向组件(COP,Component-Oriented Programming)编程是一种编程思想,它来源于软件工程领域,是高级语言编程中的概念。面向组件技术建立在面向对象技术(OOP,Object-Oriented Programming)之上,它是面向对象技术的进一步发展。它的定义是:系统中一种物理的、可代替的部件、它按照某种类别对部分数据及逻辑进行封装,并对外提供了一系列可用的接口。一个组件代表一个系统中实现的物理部分。面向组件和面向对象的主要区别是组件的粒度更大。面向对象一般以设备(马达、阀门)为最小单位,而面向组件一般以工艺段为最小单位。

这里以TIA Portal为平台来简单说明如何应用面向组件的编程思想。TIA Portal是SIEMENS的新一台自动化平台,其强大之处相信大家都有所体会,这里不再多言。如前所述,面向组件是建立在面向对象基础上的。在进行面向组件编程时需要我们首先有一个强大的对象库。对象库应包括常用单体设备的控制模型和一些简单的算法、闭环控制等,如下图所示。

2018-04-20_第1张图片

图1 设备对象库

组件是根据行业特性和以工艺段为最小单位开发的标准控制模型。一个组件通常会包括若干个设备对象,这些对象根据工艺要求实现相应的功能。他们是被封装为一体的,且需要具备可扩展性。组件通常按照行业来进行分类存放,如下图所示。

2018-04-20_第2张图片

图2 组件库(或称为行业库)

在进行项目开发时,按照P&ID和工艺要求可以从库中直接拖放相应的程序模块到PLC中和画面模板到相应的工艺画面中。

2018-04-20_第3张图片

图3 拖拽方式的组态

需要注意的是组件不是对图形控件的简单编组。组件可以有一个统一的接口或者按照设备来规划接口。在连接变量时,将PLC中的组件接口变量直接拖到画面上的组件接口即可,整个过程不过数分钟即可完成一个小工艺段。

2018-04-20_第4张图片

图4 拖拽式的接口组态

和设备控制对象开发一样,组件的开发也需要进行接口的统一规划,在开发时需要考虑适应性可扩展性。经过实际项目的反复验证,组件和底层对象可以得到日益的完善和壮大。得益于TIA Portal平台的强大性,这些现在都变成了现实。正如前所述,以工艺段为最小单位的面向组件编程和以设备为最小单位的面向对象编程的相互结合可以迸发出强大的创造性。

可以预见,面向组件编程肯定会是一种趋势。归根结底其最大优势就是缩减项目成本,无论是从节省人工、缩短项目时间还是提高项目质量上来看。

--The End--


HwLib(慧兰博)公众号

专注于SIMATIC TIA高端编程应用

2018-04-20_第5张图片

HwLib(慧兰博)微信号

2018-04-20_第6张图片

你可能感兴趣的:(2018-04-20)