当今控制系统的可靠性越来越依赖于软件。制造商为保证稳定的性能付出了很大努力,然而控制工程师们可能需要通过另一种途径来解决这个问题。除了要使用更加稳定和高质量的代码以外,降低工程成本、工程时间和工程风险将会是主要考虑的对象。
总部位于荷兰Gorinchem的工业控制组织PLCopen的管理总监Eelco van der Wal,正在为控制工程师们所负责的软件可靠性应用而努力着。尽管他的努力只提供了一部分解决办法。
可靠的控制软件需要有一个坚实的基础,这只有供应商可以提供。van der Wal发现,当程序从数行扩大到数千行甚至更多代码的时候,其成本就会不断膨胀,相应风险也会飙升。他同时指出,可以确定一个应用实施在控制器前后发生的变化。
van der Wal指出节约成本和降低风险的关键,是依照全球工业控制编程标准IEC 61131-3中规定的接口进行结构编程。但是结构编程本身需要改变传统的编程方法,van der Wal表示这些付出可以提高软件的稳定性能,物超所值。尤其是在需要同一时间考虑许多工程的时候,它的作用会更加明显。
van der Wal说:“如果主次项目在时
节省费用的途径多种多样,而van der Wal指出其中只有40%的花费是不可缺少的。因此,更可靠的软件也可以成本更低。
上面简单介绍了控制工程师提高软件可靠性的方法,由于工具的存在使工作更加简便。另外,控制器制造商之间的讨论揭示了他们如何应对提高软件可靠性时所面临的挑战。
功能块的基本原理
van der Wal表示,提倡一种以标准为依据的结构编程方法所带来的好处不是免费的,这需要改变以往开发代码的方式。“你必须为此形成一套完整的软件开发理念,”他说。
这意味着控制工程师要采用结构化的方法,即先将问题分解成数个单独部分,用定义的输入和已知输出的功能块表示。
功能块使用IEC 61131-3标准中规定的图形或文本语言编写。框图后台有定义好的变量和数据类型,如整型、实数型、布尔型和阵列等,可以在脱机状态下进行模拟。符合要求后,该框图就同其他功能块整合到一起进入使用阶段,在该阶段须进行配置和维护。
van der Wal表示,稳定性提高、成本的降低都归功于功能块的使用。由于功能块本身相对小且简单,这使得成批添加功能块进行测试与了解其功能成为可能。功能块成品重新用于后续项目中,直接降低了工程成本。由于功能块改动更加方便,维护次数减少也使得成本降低。
结构化编程方法确实需要非常多的前期工作,尤其是对第一个项目来说。这也意味着你不可能总是钻研于同一个问题,不管它有多么诱人。控制问题的划分工作,却得益于这种顺序功能图。
IEC 61131-3规定了工业自动化编程的标准化语言,提供了对结构编程环境的定义,其中还包括了功能块的概念。
基于模型的设计工具
座落在麻省Natick市的私人控股公司Mathworks,拥有另外一套理念相似的系统稳定性控制软件。随技术计算软件一起,公司开发了一系列基于模型的设计工具,这可以作为控制软件的基础。这种基于模型的控制系统开发方法与结构编程方法类似,都要求事先定义问题并将其分解为几个小步骤。完成上述工作之后,该公司的Simulink过程建模软件就可以模拟功能快的功能了。
Mathworks公司控制设计自动化的营销总监Paul Barnard解释道,过程建模后该软件可以用来开发代码。“使用图形描述一个运算法则,代码生成系统会自动产生C语言代码,并对某些嵌入式目标汇编和调试。”
NI的LabView采用了一种相似的方法——使用图形开发,其好处是可以将控制问题抽象化,让一个单独的开发者掌握更多的功能。正如编译器可以产生机器指令一样,代码生成系统移除了过程中的人为因素。由此产生的代码比由程序员编写的代码形式更一致——虽然无定论,但或许更加可靠。
Mathworks负责核查、验证和测定的市场技术经理Brett Murphy指出,Mathworks公司已经意识到代码生成系统并非总是正确的,为此我们提供了相应解决方法和模型。“比方说我们现在已经出台了模型校验的标准,”他说。
其他种类的工具提供了更多对模型和代码的校验形式,并验证特定故障是否有可能产生。这些工具允许在组件和模型的层次上进行校验,但目前为止还不能形成大规模的系统。
Opto22的工程师Tommy Leung在公司位于加州的办公室里使用QA wall检测软件和公司组件,以确保可靠性。
机器并非是孤立的
缺乏升级能力是很不幸的,因为应用是作用在大型网络的平台或系统。这种组合带来的一系列全新问题往往超出了一个控制工程师的控制范围,将直接影响
弗吉尼亚州Charlottesville市GE Fanuc Automation公司的人机界面监控软件Proficy HMI/SCADA市场部经理Roy Kok指出,平台操作系统(如Microsoft Windows, NT or Vista操作系统)需要经常进行升级,如果可能的话须打全补丁。但在熟悉非关键区域前应用补丁,有可能适得其反影响到软件的可靠性。于是GE Fanuc会专门提供技术支持来了解补丁是否恰到好处。
同样道理,其他软件和组件也可能影响到自控系统的应用——即使问题最初并没有显现出来。Kok表示,“对辅助软件的升级可能直接影响到主要解决方案的操作及其稳定性。”
KOK继续说道,虽然可靠性可以通过移除软件非关键区域和未验证的冗余来提升,但这是不够的,我们需要对第三方组件和别处的改动给出诊断。
假设一条生产线出现了故障,有时可能只需使一块涉及限位开关的代码无效即可恢复。需要时立即进行修改,先旁路开关再处理故障软件。Kok表示重要的是临时修理时,不允许用简单的修补凑数,以免过一段时间后再出故障。GE Fanuc的变更管理系统可以定周期自动的对控制器软
信任,但仍须验证
ABB集团过程系统软件架构主管Jeffrey Harding同样谈到,其公司推出的800xA软件拥有对系统操作和健康程度的检测诊断能力。该产品检测已安装软件的组件,与通过检验的已知良好配置进行对比。“这样做可以让系统检测出未检验组件(包括第三方组件)的版本是否已安装。”
西门子的工程软件产品营销主管Eric Kaczor指出,终端用户有时要面对许多品牌的软件。这种情况下,对版本的控制及其兼容性都难以达到和管理。一种使用冻结时间的技术——至少就软件而言——可以减少这种麻烦。西门子为此向用户提供了一张“黄金DVD”,这张光盘包含了仪器使用所需的所有软件。Kaczor说,虽然这样设置光盘可能使软件的更新受到限制,但是这种组合也带来了最新软件无法提供的优势。“这样可以保证软件间的协同工作。”
提高软件的可靠性要求程序员和软件供应商都作出改变,但补偿是得到较大的可靠性、更高的质量并降低成本。
Kaczor说,出于这部分考虑,西门子公司尽了最大努力确保软件可以适用于各种方式的硬件组合。通过广泛深入的回归测试,在装满各种仪器的房间中测试新软件。我们的检查进行的十分彻底,但并非100%做到了无遗漏,因为这项工作极其复杂而无法对所有第三方软件进行查认确证。
Opto 22是一家提供I/O接口、控制器及相关软件的供应商。同其它公司一样,Opto 22公司向用户发布软件前,也要进行回归测试。其品质保证组(QA)的高级工程师Roger Herrscher说,公司最近重组了QA以适应对各种可能范围内硬件进行的软件测试。从前,QA由专门进行产品测试的工程师组成。现在Opto 22将软硬件设计师分配到了这个部门,结果增加了对产品的熟悉程度、提高了检测水平和最终质量。
Herrscher指出,这种方法提示了我们根据软件的属性“在使用软件时,几乎每次都可用不同的方式完成既定任务。”
他说,软件设计者都有一种自然倾向就是喜欢用习惯的方式去做事情。这导致设计者无法考虑并尝试所有的方法,用户只得对其效仿。Herrscher说,分配另一些人来设计测试功能,这个问题就可被规避。
如同其他供应商一样,法国Rueil Malmaison的施耐德电气公司在每次发布其集成软件包前也要进行回归测试。其自动化产品部经理Rich Hutton说,通信层是实现可靠性和一致操作的关键。他指出,诊断设备虽然可以发现存储故障和其他问题,但是这些附加设备本身也耗费了资源。如果出现极端情况,这些诊断设备本身完全可能直接影响主系统的可靠性。
施耐德电气在努力让其软件变得更加可靠的同时,也采取了一系列步骤保证为终端用户所希望的应用而做的设计是可靠的。Hutton说,公司的开发工具支持IEC 61131-3标准规定的五种编程语言。这样做的部分原因是可以让施耐德的用户也尽自己的一份努力,来确保软件的可靠性。
Hutton说,对于标准编程语言的选择“提高了设计师的可靠性,因为他们可以利用一种设计样式”,使程序代码变得更加可靠。
“质量测试不是目的,将质量融入其中才是关键。”
伴随着快速的发展,在开放系统时代控制软件的质量对于所有开发商来说都是一项挑战。2007年6月在凤凰城召开的霍尼韦尔用户组会议的最后一天,使用者将问题集中于软件的升级和补丁管理。霍尼韦尔技术执行副总裁DonnaLee Skagg针对遇到的问题,提出了不断改进的方法。
她说,“当你们谈论软件质量的时候,一定会涉及到三个方面。第一你要
“第二”,Skagg说到,“如果有缺陷,你不想把它散播出去。在软件给客户使用之前,你要找出它们并打好补丁。”
“第三,仔细查看你所发现的任何缺陷,不只是去解决这些问题。要好好想想是什么原因引起的,对其根本原因作出分析,以确保不会再发生在其他地方。”
Skagg说,霍尼韦尔公司正在建立一种重复式的软件开发战略,该战略将部署未来一年半内霍尼韦尔公司的走向。重复式开发意味着软件功能的版本开发、评估和测试更迅速、周期更短。客户被邀请进来参与对软件功能的评论,较早进行测试以便结果可以反馈到其他正在拟订的功能之中。
“基本上质量测试并不是目的,从一开始我们所要确定的就是质量。”Skagg说,“一个重复不断的过程保证了我们能做到这一点。”
www.honeywell.com/ps
打造值得信赖的软件,须关注操作系统。
当控制工程师和供应商正与软件的日益复杂化和由此降低的可靠性作斗争时,种种迹象表明,一切依据的源头-操作
每个月的第二个星期二我们都会收到来自微软的安全补丁,其中一些是打在操作系统的核心部件上的。由于逐渐增大的连通性和对网络安全关注,不安装补丁是用户越来越少的一个选择。供应商,为此必须及时地做好补丁的测试。
罗克韦尔自动化FactoryTalk服务平台产品经理Stephen Briant表示,微软并没有把工业自动化作为自己产品的核心。因此,他说,微软的软件需求并不一定符合这些控制系统的用户。使用非微软操作系统,可以提高软件的整体可靠性——但权衡交易都必须仔细考虑。
Briant还指出,总体来讲今天的控制器软件可靠性很高,其可能产生的深远影响是:“市场正在走向把同水平完整性经营作为控制的解决方案。”
www.rockwellautomation.com
翻译:石磊