自从上个世纪80年代数控装置广泛采用32位CPU组成多微处理器系统以来,计算机软件在数控设备中的地位逐渐变得重要起来。90年代以后,随着计算机技术的飞速发展,利用PC机丰富的软件及硬件资源开发出来的开放式体系结构的数控系统中的软件,对于智能化和网络化的支持更加强大,软件的规模和功能进一步的增强了。数控设备已经成为一种硬件与软件高度集成化的综合性系统。
一、数控系统中软件的特点
数控系统中的软件大多数都是嵌入式软件,与硬件有着紧密关系并且运行在特定的硬件环境中。其最大的特点就是与硬件环境有着密不可分的关系,整个数控系统的性能、智能化水平的高低以及可靠性的优劣等都是由硬件环境和软件共同决定的。但当前技术条件下,软件的可靠性比硬件的可靠性要低一个数量级。据资料统计,嵌入式系统的运行失效中有75%是由其中的软件失效所引起的。事实上软件失效所导致的系统故障已经成为数控设备故障诊断中一个不容忽视的问题了。
二、数控系统中软件的测试与诊断方法
与硬件相比软件失效主要有以下两个特点:(1)软件失效不会随时间而发生变化。硬件的有很大一部分是由于设备的磨损和材料的老化所致,而在软件中则不存在这样的问题。一旦软件运行正确,它是不会随着时间的推移而退化的。(2)软件的失效多数是由程序代码中的固有错误所导致,而对于嵌入式软件来说,软硬件之间的接口错误也是导致失效的一个重要因素。
因为失效机理的不同,软件的诊断方法与硬件通常所使用的故障诊断方法也不尽相同。从保证设备可靠性的角度来看,硬件设备在出厂之前要做一系列的可靠性试验,目的就是要把设计和加工过程中产生的问题提前暴露出来,而到了用户使用阶段,工作的重点就是对设备的运行状态进行监测,对出现的故障进行诊断和维修。而软件则在于出厂前和使用初期对其进行的测试,尤其是对软件与硬件集成之后所进行的系统测试。即系统测试是发现嵌入式系统中软件问题的最行之有效的方法之一。
在软件测试的理论中,系统测试属于一种动态黑盒测试,即测试人员不必深入软件代码的细节,只需通过控制软件的输入条件驱动被测软件的真正运行。简单的说,动态黑盒测试就是要尽量模拟出被测系统的真实使用情况,并通过对被测系统的实际操作来达到发现故障的目的。根据系统测试原理,实验室自主设计开发出一种具有一定通用性的嵌入式软件系统测试环境,并在此基础上总结出一套有效的系统测试方法。下面结合一个具体测试实例对系统测试环境以及测试方法进行介绍。
三、数控系统中的软件系统测试
1.系统测试环境
对一个数控设备中的嵌入式软件进行系统测试的第一步就是要搭建系统测试的环境。系统测试环境的作用就是能够让软件在真实的硬件环境下运行,而且还能够让测试人员把测试用例施加到被测软件中,并且可以收集到测试的结果数据。系统测试环境是一个由硬件和软件共同组成的测试平台。
图1所示为某型号发动机的数控系统软件测试时所设计开发的系统测试环境。
图1 软件系统测试环境简图
整个测试环境由三大部分组成:测试用例及测试脚本生成环境、系统检测软件以及系统检测箱。其中的测试用例及测试脚本生成环境和系统检测软件属于测试平台的软件部分,而系统检测箱以及与之相连的I/O设备都属于硬件部分。
测试用例及测试脚本生成环境是一个图形化的编辑环境,测试人员可以在这个环境中把设计好的测试用例通过画图或是写文本的方式转换成测试脚本,它是测试用例的可执行形式。测试脚本中包含了一系列对被测系统的操作动作,它的实质作用就是通过控制测试流程来实现测试者的测试意图。