张 勇
(天津电子信息职业技术学院,天津 300350)
随着工业自动化的快速发展,不断地促进经济的快速发展,提高了生产效率,提升了经济效益,但传统的工业自动化在物联网、大数据、数字化等新形势下正面临严峻考验。因此,基于虚拟仪器技术的自动化测试,在智能制造发展的大好时机下得到了快速发展。该虚拟仪器可以快速建立起测试与控制平台,同时攻破了传统测试设备不能更换硬件功能的难题,能够很好地结合模块化设备,完成各种测试需求,为下一代工业自动化在工业互联网产业打下了良好的基础。
本系统采用LabVIEW作为软件开发平台,应用状态机的控制方式对整个系统进行控制,使整个测试系统的性能更优异,通过PXI总线的模块化仪器,使系统可靠性、扩展性更强。
本系统应用虚拟仪器技术使测试系统的功能进行软件化,拓展了该测试系统硬件不能扩展的需求,使测量系统发生了质的改变,同时应用PXI总线的模块化仪器使整个测量系统性能更优异、扩展性更强。在前面板设计中,应用了LabVIEW的动态程序控制技术,当实现不同的功能时,就将相应的VI调入内存,通过动态调入VI,可以使运行的VI程序达到最优化,进而减少内存的使用,提高整个测试系统的性能。在程序框图设计中,应用队列技术将数据放入到队列中,采用多线程、多任务方式同时进行管理,这样不仅增强了程序的可读性,降低编程复杂性,而且也方便维护。在生成报表设计中,采用了Activex技术,labview作为客户端通过Excel提供的Activex自动化对象在labview中操作Excel。此软件极大地提高了工作效率,在实际当中取得了很好的效果。
由于本高精度传感器自动化测试系统要实现44路高精度测量,且要保证具有一定的同步性,因此整个硬件系统是基于PXI平台架构,由高精度数字表卡4071和扫描开关2530B等模块化仪器组成,高精度数字表卡4071采集来自44路铂电阻PT100的电阻信号,并产生触发信号,通知扫描开关2530B切换到扫描列表的下一项,在采集周期内,由扫描开关2530B快速切换44个通道进行采集,采集完成后产生触发信号再通知高精度数字表卡4071继续采集测量。
由于本测试系统采用的是高精度的数字表卡4071,为了保证整体性能,需要在硬件和上层软件之间建立起高速通道,因此总线的选择就至关重要,不仅能够快速地传输数据,还决定着测试系统的稳定性,所以本高精度测试系统硬件还需进行以下工作。
在本测量系统中,是以数字万用表/扫描开关为主的高精度自动化测试系统,时延相对这种单点操作较为重要。由于本系统是基于数据流形式的LabVIEW平台进行开发,所以带宽对于数据流应用同样较为重要。因此选择一个正确的总线,对于系统的性能至关重要。
基于PC机/PXI的虚拟仪器系统,能很好地解决以上两个问题,在PXI背板上保留了PCI电气总线,并设置了各类插槽,使各类仪器具有模块化的特性,根据设计的功能插入不同的功能模块,同时进行Eurocard机械封装,使PXI成为一个具有不同信号组合的平台架构,也使它继承了PCI的电气信号特性,具有非常高的数据传输能力,数据处理速度达到从132Mbyte/s到528Mbyte/s的传输能力。基于PXI总线的系统由PXI机箱、系统控制处理器、PXI背板和数个外设模块组成,使其在可靠性、稳定性和抗干扰方面得到大幅提升。
在本PC机/PXI的虚拟仪器系统中,对于整个性能来说另一个重要指标是模块化仪器的选择,在本PXI机箱中设置不同的插槽,用于放置不同的模块化仪器,这些仪器可以在同一个机箱内使用相同的设备电源和控制器,而对于分立仪器设备需要在每一个设备中都配置同样的设备,这就大大地增加了产品的成本和外围尺寸,也降低了产品的可靠性。同时,在PXI机箱中控制器使用的都是G赫兹PC处理器,其测量速度吞吐量是传统仪器的十到百倍,这就使模块化仪器具有高带宽、低时延的总线特性,可快速地实现从模块化仪器到共享处理器的连接。
而对于本系统来说,由模块化仪器PXI 2530B开关卡配置成64×1的2线制测量,配合7位M半模块化仪器4071实现两线制测量44路铂电阻,并产生触发信号通过和4071万用表的互相触发,实现多路测试,如图1。
图1 系统硬件模块化仪器工作原理
在整个系统中,采用了模块化仪器进行硬件系统的搭建,相对于传统仪器来说,这种基于软件化的模块化仪器更具有灵活性,方便系统功能的扩展和二次开发。由于传统仪器功能固化,而模块化仪器可以自由地添加新的功能和属性,赋予用户更多的自主权,使自动化测试更加完善,更加智能。因此如果需要对测试系统重新进行配置,来满足多种不同任务的需要时,可以配置不同的板卡,这样使整个系统可以根据需求的变化调整原系统,灵活性更强。
由于上层软件要控制模块化仪器,就必须保证它们之间能够进行通信。目前投入市场的仪器设备,都会由设备制造商提供仪器驱动程序,他们将这些底层语言编制的指令封装程子VI的形式来进行调用,只保留输入输出及参数设置,在使用时配置好相应参数,就可以轻松地实现仪器的功能。
本高精度测试系统的测量程序中采用的是高精度数字表4071仪器驱动程序的子VI,这样就可以设置所需要的功能,本4071采集模块最高精度可设置成7位半精度,由于本项目产品的精度要求不是太高,所以本项目设置为5位半精度;同样对扫描开关2530B也调用了驱动程序,并对扫描开关的触发方式、循环方式、扫描清单进行了设置,矩阵配置采用64×1(2线),扫描清单通道设置为ch0:43->com0,同时为了保证高精度分别在4071和2530B的采集流采用毫米级定时器,在进入生产者消费者循环后采用时间计时器进行毫秒同步计时,由于使用了封装好的驱动程序,可快速方便地搭建软件和硬件之间的联系,提高了工作效率。
本测试系统软件总体主要对前面板和程序框图进行了设计。当实现不同的功能时,就将相应的VI调入内存,通过动态调入VI,可以使运行的VI程序达到最优化,进而减少内存的使用,提高整个测试系统的性能。同时,整体架构采用的是状态机的控制方式,对整个测试系统进行控制,可有效地避免轮询导致的CPU浪费,而在数据采集子VI中,为了避免数据重复和丢失,应用队列技术将数据放入到队列中,采用多线程、多任务方式同时进行管理,保证了数据的准确性。
在前面板设计中,对每个控件设置事件响应类型,保证在调用该VI时能将需要的VI进行运行,其他VI不放入内存,这样就实现了动态控制VI,由于在调用目标VI时,没有把全部的VI都调入内存,使软件占有内存大大减少,提高了软件的系统性能。
为了提高传感器测试的自动化程度,在创建可靠性的环境试验中,先让测试软件进行自动巡检,当检测的温度持续在设定范围内10分钟时,方可进行产品测试。在数据采集子VI中,数据采集主界面可将设置的所有信息进行显示,同时波形图表可对产品的试验过程进行直观地监控,如图2。
图2 数据采集显示界面
同时为了直接显示被测的温度信息,对铂电阻传感器的信号进行了二次转化,利用PT100铂电阻分度表中的温度和阻值对应关系,并根据本产品实验的温度范围从-70℃到300℃内进行线性细分插值,并封装成子VI,在进行报表输出时,直接进行调用转化,方可直接输出温度值,为了保证该测试系统对其他类型传感器的通用性,对PT500和PT1000两种类型的传感器,也在实验温度范围内进行了线性细分插值和封装,保证了测量精度和测试产品的广泛性。
该软件运行步骤如下:
1.按下开始运行按钮后,程序按选择顺序自上而下的执行测试程序。
2.在参数配置过程中,按照要求进行配置,完成后自动关闭。
3.若环境试验条件达到了试验的要求时,可直接进行数据采集,若没有达到时,可让测试系统进行自动巡检,当达到要求时会有声光报警提醒使用人进行下一步工作。
4.点击完成后开始进行产品测试。
在整个系统程序框图中,采用状态机的控制方式,通过生产者——消费者模式,应用队列技术将数据放入到队列中,采用多线程、多任务方式同时进行管理,这样不仅增强了程序的可读性,降低编程复杂性,而且可以方便维护,使程序框图更加清晰,同时可以避免大量的重复编程,如图3。
图3 状态机控制结构框图
本系统软件部分,在状态机的架构下,采用的是事件控件,触发源来自前面板上的控件按钮,如果用户点击相应按钮时,该控件按钮的程序框图中的VI就可以根据事件结构自带的控件引用,来建立该控件的Label.Text属性,并获取控件的中文名称,接线来用Open VI Refernece函数来获取该控件的引用,再利用属性节点Exec.State得到目前软件的工作状态,若软件处于Idle状态(即不运行状态),则使用Run VI属性运行该VI,最后利用Subpanel实现动态加载界面。
对于本系统来说数据采集周期为人为设置,可以设置的很高,这就要求普通的数据流方式显然不行,为了保证程序在数据采集过程中不出现数据重复和丢失的现象,保证数据的准确性。本软件在状态机的架构下设置了队列程序,将数据采集和数据分析放入到不同的循环中,当数据采集的时间周期和数据分析的数据周期不同时,就将采集的数据放入到队列中进行排队,防止数据的溢出,若队列中没有数据,则数据分析程序就进入等待状态,通过此队列技术的应用,保证了数据采集的真实可靠,防止了数据的重复和丢失,如图4所示。
图4 队列程序框图
在测试系统的软件编制过程中,整体采用项目树来进行管理的,由于除了有非常多的子VI,还有一些表格文档,为了修改其中某项信息,相关能够进行同步更新,必须建立起他们之间的依赖关系,防止出现前后不匹配问题,同时在项目管理中,可以将所有程序文档打包进行发布,在没有LABview运行平台的计算机中,使用起来非常方便。
LabVIEW本身没有数据库子VI,这就要求必须通过外部程序接口来调用,进而对Excel进行访问管理。
ActiveX是由微软公司提出的一种建立在OLE标准之上的规范和公共框架,通过ActiveX技术,可以将一些其他的软件组装到应用程序或者服务程序中去,并在客户端执行,由于在LabVIEW中无法直接操作Microsoft Excel,因此,可以把它当成一个ActiveX Automation服务器,把LabVIEW应用程序当成客户端,通过ActiveX去控制Microsoft Excel的属性,对它的属性节点和调用节点进行操作,从而完成生成报表、打印报表的功能。
在报表程序模块中,现在Microsoft Excel编制好符合要求的报表形式,之后通过ActiveX技术实现Excel与LabVIEW进行通讯,将采集好的数据传递给Excel,并通过调用节点放置在预先规定好的位置,最后再设置Excel属性格式,释放资源,完成报表的打印输出。通过这种方式,ActiveX Automation服务器等待LabVIEW应用程序客户端向它发出命令,然后根据客户端的命令进行执行某项功能或接收来自客户端的数据,即LabVIEW客户端通过ActiveX Automation服务器向Microsoft Excel发出数据填写的请求,接下来由Microsoft Excel响应客户端的请求,并接收采集的有效数据,进而逐步更新报表内容,来实现报表的生成,图5是本测试软件的报表程序框图。
图5 本测试软件的报表程序框图
高精度传感器自动化测试系统的设计。在当今快速发展的社会中,随着工业互联网的不断发展,工业自动化测试在各行各业中都得到了广泛应用,提高了生产效率,加快了经济发展,但同时对自动化测量精度和功能的要求也越来越高。基于虚拟仪器和PXI技术的测试系统打破了传统测试系统硬件固化的限制,实现了测试系统定制化、软件化和模块化,同时客户可以在本测试系统架构上进行二次开发添加或删减部分功能,获取想要的数据,使测试更为智能。
本项目分别完成了对某航空单位的飞机风挡玻璃测试和C919项目中MGQ-62温度传感器的测试,通过了环筛通电监测和0n-off循环目击实验验证,由于采用自动采集,智能监控及声光报警设置,方便了监管部门的过程监督,由于采用了队列技术,也保证了产品数据的准确性,防止出现虚假数据的情况,在实际的应用中,得到了客户的满意和相关单位的认可。