机器和设备的关键性独有特点越来越多地需要借助软件来实现。因此,制造商开始关注软件开发的效率。普遍存在的成本压力、资源稀缺、技术人才短缺和不断缩短的新品上市时间又强化了这一趋势。通过软件模块化和预制模板与功能块的使用,可以更快、更安全地创建应用程序。通过现有的现代化开发工具,例如Lenze L-force Engineer,这类软件可以通过使用应用模块以及提供技术和函数库来实现最佳的软件模块化,没有什么可以阻挡这种现代化的、有效的软件被广泛应用于有效的机械设备制造中。
虽然德国机械设备在机械模块化和电子模块化方面堪称典范,但是,软件仍然是结构复杂而难以理解的“面条式代码”。在开发一台新机器时,开发人员尝试尽可能多地复制这些代码,以减少编程的工作量。对于小型项目和条理分明的项目,这种做法是可取的。但是,如果软件已经经过多年的发展,包含几万甚至几十万行代码,情况就会完全不同。简单地复制代码会对软件的质量和可维护性以及开发人员的创造力产生不利影响。
所以就存在将错误的或不再使用的代码从旧项目引入新项目的危险。即使原来的代码是正确的,也可能因为对面条式代码的了解有限而阻碍应用程序的维护、扩展或修改。此外,程序的继续开发可能导致经过测试的程序部分出现新的、意想不到的错误。因此,每次程序扩展都有风险,可能导致整机测试十分耗时,从而影响产品的上市时间。而且,这样的项目很难在团队或公司范围内分配给多名开发人员确保其相互之间协调合作。其结果就是代价高昂的多次开发。
分而治之
机械设计尤其与众不同:早已确定,源自模块的机械有自定义的机械接口。封装的功能块形成一个(集中管理的)标准构件,设计人员利用这些标准构件,快速、高效地从成熟模块中整理出一个新的机械解决方案,从而降低了机械的建造和测试费用。设计人员可以专注于开发新功能和独特特点,或扩展现有的标准构件。此外,因为(预先)明确定义了模块接口,所以很容易将大规模的开发任务分给多名设计人员,因此,开发和测试任务可以并行执行,从而进一步缩短了产品的上市时间。
因此,设置的目标是:在软件开发中进一步推动软件模块化。
来自自动化供应商的功能模块库
然而,软件标准功能模块组件的构建和实现往往超出了机械和设备制造商的能力。为消费品行业提供生产资料的设备生产商中有90%雇用了30到70名员工,而在这些员工中,平均只有1.6名员工从事设备自动化工作。企业在产品上市方面获得显着的竞争优势之前,需要员工团体开发标准构件。作为机械工程的系统和技术合作伙伴,Lenze从多年前开始,采取工程技术服务的形式为用户提供支持,提供预制的标准功能块,如,卷绕或飞锯,支持智能驱动。现在,公司还为基于控制器的自动化解决方案提供功能块,同时扩展了用于消费品行业的特定功能块,如,“无缝隙不封口(No gap – no Seal)”。用于三轴多关节机器人的复杂功能块也即将推出。
根据应用情况和要求,开发人员可以为单个机械或成套设备使用具有不同层次的功能块和软件- 如,力学 – 大部分建立在经过测试并在很多应用中得到证明的标准功能的基础上。正如我们在电子和软件行业的很多领域所观察到的,随着模块化软件和相应开发方法的逐渐增加,第三方公司也可以开发和提供功能块和相关的测试矢量来验证。
自定义功能块模板
因此,用户可以通过使用模板并在必要时借助简单的标准功能块,快速创建自定义功能块并将其集成到后续的项目中。模块提供了预制的软件结构,如,错误处理程序、接口、数据库和状态机。就像使用Word模板一样方便,用户可以集中精力于创建实际功能或内容。
现代化工程环境和OOP
面向对象的编程语言支持软件模块化,因为这种语言的基本概念是将功能和数据封装于“对象”中。继承法可以在现有对象的基础上快速生成新对象,从而特别有效地实现新功能和新选项。与IEC 61131“编程语言”相比,面向对象的语言的另一个优点在于,在教育和企业中覆盖率更大。强大的开放式编程环境,例如Lenze的L-force Engineer,不仅支持面向对象的高级语言编程,而且在一个项目中还允许使用类似于C语言的结构化文本、在KOP中创建的代码和预制功能块的组合。
结论和展望
资金和人力资源的稀缺导致中小型机械和设备制造商必须优化软件工程。统一的软件模块化允许程序员顺利重复使用已有的、经过测试的代码,在此基础上开发新的功能。同时,通过软件模块化提高了软件的可读性,从而改善了软件的可维护性。另外,使用不同抽象度的标准功能块能够进一步提高效率,这些标准功能块由自动化与解决方案合作伙伴(如,Lenze或第三方)提供而且经过了测试。程序员可以用节省出的开发和测试时间来专注自己的产品范围和核心竞争力,从而提高公司的竞争地位。
(转载)