张丽 杨俊飞 陈立剑
(中国船舶重工集团公司第七一二研究所,武汉 430064)
随着计算机和软件技术的发展,虚拟仪器软件开发平台LabView加上多功能数据采集卡的实现方案,具有简便灵活的特点,因此正在逐渐成为测试领域的发展方向。LabVIEW是业界领先的高效图形化开发环境,是美国 NI(National Instrument)公司研制的具有革命性的虚拟仪器开发环境,LabVIEW功能非常强大,它是带有可扩展函数库和子程序的通用程序设计系统,不仅可以用于一般的Windows桌面应用程序设计,而且还提供了用于GPIB设备控制、VXI总线控制、串行口设备控制,以及数据分析、显示和存储等应用程序模块,其强大的专用函数库使得它非常适合编写用于测试、测量以及工业控制的应用程序。
随着测试系统的发展,实时控制系统的应用越来越广泛。实时系统的开发和应用,与传统的基于Windows平台的系统在设计与编程方式都有很大的不同。普通Labview程序还是建立于通用的操作系统上,如Windows系统,因此这些系统仍然无法提供很高的实时性能。Labview RT系统通过在普通的Labview开发环境中增加的RT模块,配合必要的硬件平台,最终可以将开发完成的程序下载到一些指定的硬件环境中(称为目标环境),而在目标环境中运行实时操作系统,进而提供实时性。本文主要介绍基于Labview 的实时系统设计与开发的测试系统。
绝大部分实时系统的核心是实时操作系统。与通用的操作系统比较,实时操作系统最大的特点是其可以保证在最差的情况下对外部事件的响应延时,而通用的操作系统如Windows,Mac等为多任务系统,外部事件通常放入一个队列中等待处理,因而很难保证实时特性。因此建立在实时操作系统上的应用系统一般有如下的实时特性:①系统具有确定性。确定性定义为系统在给定的时间内对事件响应的一致性。②实时系统提供最大的可靠性。③实时系统大多不需要用户的交互干涉。在嵌入式系统中应用广泛。
Labview VI程序编译、下载和通信必须与一定的目标环境配合,必须使用特定的支持实时系统的硬件平台。目前NI公司针对不同的实时应用要求,提供了3种平台:RT系列采集卡、RT系列PXI、RT系列的FieldPoint模块,本测试系统中使用的就是第三种。
本测试系统包括两个主要设备,一个是放置于集控室内的数采控制台,一个是放置于试验现场的现地采集柜。数采控制台内主要设备为工控机、集线器和外围电路设备等。
采集柜内的主要设备为实时系统的硬件即NI公司的CFP(Compact Field Point)系列设备和外围电路等,CFP属于可编程自动化控制器,其优势在于结合了 PLC的稳固性和 PC的灵活性。本测试系统目标环境CFP硬件的基本结构分为两部分,一部分为处理器和存储器部分,运行实时操作系统,将 Labview的实时 VI程序下载至其存储器,使其在实时系统下运行;第二部分为采集和控制部分,即输入输出通道。CFP设备的机架为8槽机架,上面依次安装有实时控制器、温度采集模块、开关量采集模块、电压采集模块、频率采集模块。待测设备上的信号通过传感器传至CFP的采集模块,通过下载至控制器内的程序对待测设备的相关运行参数(包括转速、压力、温度、流量和开关量等)进行实时采集,并将采集到的实时数据通过 TCP/IP协议通过网线上传至数采控制台内的上位机。
测试系统软件包括上位机的 Windows下的Labview软件和 CFP内运行的实时系统下的Labview RT软件,如图1。上位机的开发环境运行Windows操作系统,包括普通的Labview开发模块程序和RT模块程序,普通的Labview开发模块程序,用来对数采程序的人机界面进行开发,上位机的数采程序具有对数据进行海量存储、查询、定制报表和图表等功能,并且以简洁直观的方式在数采控制台上的显示器上进行显示。其中RT模块提供实时采集程序和通信程序开发的功能,将 Labview的 VI程序编译下载到执行的目标环境即CFP的控制器内,实现两者之间的数据通信功能。
图1 测试系统结构
在Labview环境下,用户的应用程序称为虚拟仪器VI,人机交互接口称为前面板。一般而言,实时系统的运行不需要图形界面,但有时在不影响系统实时运行的前提下,也可通过前面板监视系统的运行状况。此时,VI程序与前面板之间的联系就是通过利用RT开发系统内置的通讯功能实现的。但这种情况的缺点就是只能进行监视,不能实现数据的大量交互。因此,为了实现数据的大量交互,在一个大型自动测试系统中,上位机Labview程序主要运行非实时程序,而通过软件调用方式来访问实时程序。软件调用方式与非实时任务相对独立,提高了系统的稳定性。一般而言,通过软件调用有三种方式:
(1)TCP/IP:采用网络地址访问实时系统。TCP/IP协议通信的优点是传输数据量大、网络通信可靠性高。在网络出错时,能够提示报错信息。
(2)UDP:采用网络地址和端口访问实时系统。UDP协议的优点是通信方式简单,即只发送数据不提示网络错误,缺点是网络可靠性较低。
(3)共享变量:共享变量编程方式很简单,只需将实时系统内的数据送至共享变量即可,在数据量通信很少时,可以使用共享变量方式。但在通信数据量较大的情况下,会造成程序的拥堵。
鉴于本测试系统的要求与实际情况,实时系统与上位机采用TCP/IP的通信方式,当出现网络错误时,上位机的监视软件界面能够提示错误,并等待再次连接。下载至CFP内实时系统内的程序,在网络出现错误期间,实时程序中的上传数据子程序停止,实时程序中本地存储程序启动并将采集到的数据存储在CFP本地的存储器内。当网络恢复正常时,上位机与CFP再次正常连接,本地存储程序停止,上传数据程序启动并将采集到的数据继续通过网线传送至上位机。
本测试系统软件基本开发步骤可分为三步:
(1)在上位机Labview平台上开发应用程序。这是系统开发的第一步,也是最重要的步骤。开发人员在运行Windows系统的上位机上,开发实时应用程序(即将下载的实时采集程序)与非实时程序(即监视与其他功能的上位机程序),通过网络与目标硬件系统连接。
(2)下载实时应用程序。将完成的应用实时程序通过网络下载至目标硬件系统中。
(3)在目标硬件系统平台实时系统中运行下载的程序,这时目标硬件系统与上位机之间的控制量通过少量的共享变量进行交互,大量数据通过TCP/IP协议上传,在上位机的界面上即可显示来自目标硬件系统的数据。
目标硬件将采集模块采集到的各种数据通过TCP/IP通信程序上传,上位机的程序接收采集数据,并将接收到的数据进行显示和存储。下面仅介绍通信部分的程序。目标硬件系统中运行的实时程序采用生产者—消费者程序结构,采用生产者—消费者程序结构的优点是将采集功能与通信功能分开,使得两个任务分别在两个循环中完成,而不会互相影响。生产者循环主要用于各种数据(温度、压力、流量和开关量)的采集,采集程序中用到实时编程模块CFP的采集子VI,并在检测到网络出错时将采集到的数据以二进制文件的形式存储在本地的存储卡中;消费者循环用于在网络正常的情况下将生产者循环内的各种数据通过通信程序上传至上位机。程序如图2。上位机中运行的程序亦是使用生产者—消费者程序结构,生产者循环用来读取实时程序上传的实时数据,消费者循环将生产者读取到的数据存入数据库。程序如图3。通信程序中用到的是TCP/IP编程模块中的子VI,包括TCP侦听VI、读取TCP数据VI、写入TCP数据VI、关闭TCP连接VI和队列VI。
图2 实时系统内运行的通信程序
图3 上位机内运行的通信程序
Labview RT在原有图形化编程的基础上,通过RT模块和相应的硬件系统提供了实时控制的功能,又结合了实时操作系统处理实时任务的优越性能,将在实时数据采集、嵌入式实时控制领域得到广泛的应用。基于实时系统开发的测试系统具有一般通用操作系统无法保证的实时性和高可靠性;而且采集与数据处理分别运行在两个硬件系统中,使得测试系统在设计与使用方面更加可靠和灵活。
[1]王磊等. 精通LabVIEW8.0. 北京:电子工业出版社,2007, 1.
[2]项晓峰, 田作华, 张忆. Labview RT实时控制开发系统结构与开发应用. 测控技术, 2003, 3.
[3]李雯, 肖凯. 应用LabVIEW RT开发实时测试系统.微计算机信息, 2003, 8.