关键词:LabVIEW 虚拟仪表 电表校验
Abstracts:This paper introduces the software of ammeter visual instrument, which is developed by LabVIEW. With the instances of signal sampling control and management of database, it presents the technology and method of the connection and interface of hardware and software of the system in detail.
Key words:LabVIEW Visual Instrument Ammeter Test
1. 引言
Visual Instrument (VI,虚拟仪器)是以计算机强大的软硬件资源作为仪器的支撑,利用高性能的模块化硬件,结合高效灵活的软件组成的,来完成各种测试、测量和自动化的应用的各种各样的仪器系统。传统的电子仪器是自封闭的系统,属于专用设备,不便于用户对仪表功能需要改变及仪表功能的扩充,而VI的功能是可由用户自己定义的,并且是可以根据用户需求进行快速升级的。
传统的电表校验仪表都是专用昂贵的笨重型设备,而本系统是建立在小型PXI工业控制计算机平台之上,结构小巧紧凑。本校验系统的软件设计是在Windows下实现,主要包括三个层面:底层的硬件驱动程序,针对硬件特点,根据Windows操作系统对设备管理的特点,采用DLL文件实现对硬件部分的直接驱动;中层通过编写生成DLL文件来完成应用程序和驱动程序的接口,被应用程序调用实现对硬件的具体控制和操作;上层的用户应用程序进行人-机交互操作,调用功能子程序,实现参数传递,完成有关的数据处理,在这里采用LabVIEW(Laborary Virtual Instrument Engineering Workbench)设计虚拟仪器的用户应用程序,则是当前优选的方法。在采用虚拟仪器技术设计的电表校验系统中,由于测量功能的特殊要求,微机的电量测量仪表插卡是自行设计的,数据库也是按用户要求设计。因此,采用LabVIEW开发虚拟仪表就面临如何用LabVIEW实现对硬件控制,如何用LabVIEW实现对数据库管理的问题,这也是设计中必须首先解决的问题。
2. LabVIEW对电量测量卡硬件控制
2.1 LabVIEW对硬件控制的基本结构
LabVIEW对自行设计的电量测量卡硬件控制主要是通过调用动态连接库(DLL)来实现。对于NI公司生产出售的各种数据采集卡式设备,都提供了对应的设备驱动程序,安装后可以被LabVIEW的VI函数直接调用,以此方便用户对数据采集卡的使用和控制。对本系统自行设计的电量测量卡,必须自行设计驱动程序并形成DLL文件,用LabVIEW的Call Library Function Node 结点来调用动态连接库里的函数,完成对硬件的控制。LabVIEW对硬件控制 测量插卡驱动程序的基本结构如图1所示。
图1 LabVIEW对硬件控制结构
图中,底层硬件接口驱动程序是面向硬件接口专用驱动程序,它可以被应用层驱动程序调用实现对硬件直接控制。应用层驱动程序是面向用户应用程序的控制接口,为动态连接库文件,可用LabVIEW的Call Library Function Node 结点来调用。该结点在Advenced子模板中,其配置也比较简单,只需打开对应的动态连接库文件,选中要调用的函数,添加适当的参数即可,细节可参阅参考文献[1]。
2.2 LabVIEW电量测量控制流程
电量测量插卡能对三相交流电压和电流进行测量,测量过程由插卡上的DSP控制,测量的数据存放在插卡上的双口RAM中,微机上LabVIEW编写的用户程序通过双口RAM和电量测量插卡交换信息,下传控制信号,读取测量数据。系统对测量信号处理及分析有不同的要求,这里仅以图2 A相电压测量的LabVIEW控制程序流程对测量控制进行说明。
A相电压测量控制程序
由程序的代码框图可见,只要LabVIEW程序从双口RAM中获取不同的数据,就可以利用LabVIEW提供的各种控件和函数对数据进行不同的分析、计算、处理和显示。而不同的数据是通过该数据存放在双口RAM中的起始地址位置和数据数量来确定。当系统工作在测量控制方式下,在循环程序中执行Call Library Function Node 结点,该结点根据程序设定的“起始位置”和“采集点数”,调用了应用层驱动DLL里的READRAM函数,从双口RAM指定位置(由起始位置决定)读取连续数目(采集点数)的测量数据,并和采集时间间隔组成采集到的实际波形,提供给后续程序进行分析处理。以A相电压波形的测量和显示为例,测量插卡按系统设计的约定把被测量电压的幅度、频率、相位值放在双口RAM的某一连续单元,用户只要在程序中选择A相电压测量,LabVIEW程序就通过Call Library Function Node 结点从双口RAM的对应单元读取测量插卡适时测量的幅度、频率、相位数据,由这三个基本数据,通过调用LabVIEW提供的功能强大的函数,就能非常方便的对被测信号进行显示、分析、处理。
当然这里只是用数据读取来示例LabVIEW对硬件的控制,实用中还要通过DLL来完成对硬件的复位、初始化以及其它如档位选择、功能选择、采集启动等等。而且整个程序的结构不仅和采集卡工作过程有关,还与被测信号需要的采集控制过程紧密相关,需要具体处理。
3. LabVIEW实现电表校验数据库管理
LabVIEW与数据库接口,主要以下几种方式:一是购买NI公司的LabVIEW SQL Toolkit数据库接口模块;二是采用第三方提供的数据库接口模块LabSQL;三是通过调用动态链接库DLL(Dynamic Link Library)访问,先利用其它编程语言如Visual C++编写DLL,再利用LabVIEW的调用库函数节点CLFN(Calling Library Function Node)调用此DLL中相关函数访问数据库;四是利用动态数据交换(dynamic data exchange ,DDE)来实现对数据库的访问操作。本系统采用第三方提供的免费的LabSQL来实现对数据库的各种操作,相比方式一成本低,相比方式三、四简单易用。
3.1 LabVIEW数据库管理的基本结构
LabVIEW数据库管理的基本结构如图3所示,LabSQL1.1A是多数据库的、跨平台的LabVIEW数据库访问工具包(免费下载网址http://jeffreytravis.com),它支持Windows操作系统中任何基于ODBC的数据库,利用ADO以及SQL语言来完成数据库访问,提供一系列数据库访问的LabSQL VI。通过调用其中不同功能的子函数,辅以简单的SQL编程,就可以对数据库进行存取、查询、修改、统计等各种操作。使用前,要对LabSQL进行正确的安装和配置,其方法可参看本文参考文献[1]。
图3 LabVIEW数据库管理基本结构
LabSQL VIs按照功能可分为四类:Command Vis用来完成一系列的基本ADO操作;Connection VIs是管理LabVIEW与数据库之间的连接;Recordset VIs用于对数据库中的记录进行各种操作;Top Level VIs属于顶层的LabSQL应用,对前三类LabSQL VIs某些功能的封装,例如,SQL Execute.VIs可用于直接执行SQL命令。
电表校验数据库用来存放电表校验的有关数据,它独立存储,以便系统对历史的数据进行管理和管理功能扩充。系统采用ACCESS建立电表校验数据库,根据数据管理的需要,数据库主要包含校验员表(存放校验员信息)、被校验仪表表(存放被校电表结论资料)、幅度表(存放被校电表幅度实测记录)、频率表(存放被校电表频率实测记录)、功率因素表(存放被校电表功率因素测量记录)、谐波分析表(存放谐波分析结果数据表)。
3.2 利用LabSQL操作数据库的基本步骤
利用LabSQL在数据库操作中可实现应用程序与数据库之间的数据传送。一般的操作步骤如图4所示,首先利用ADO Connection Create.vi创建一个空的连接对象,然后利用ADO Connection Open.vi打开指定的数据库; 再利用ADO Recordset Create.vi创建一个空的记录集对象,之后利用ADO Recordset Open.vi打开指定表格中的数据集对象。随后是调用对数据集进行添加、修改、删除等操作的vi对数据集进行指定操作,完成操作后,利用ADO Recordset Close.vi断开记录集,最后用ADO Connection Close.vi关闭数据库。LabSQL对数据库操作的各种Vis由Functions Palette→ALL Function→User Libraries→LabSQL→LabSQL ADO Functin 中取得。
图4 数据库操作的基本步骤
3.3 电表校验数据库管理程序
系统数据库管理的程序代码框图见图5。
程序中,按前面板“Tab Control”标签选择当前要操作的数据表,在主循环下,程序等待用户操作的发生,当用户按下“查询”、“删除”、“添加”、“更新”等操作按钮时,程序就对选定的数据表执行相应的操作。在右边的CASE结构中,其代码框图的内容和操作对象会随数据表的选择和“操作按钮”的改变而变化,从而实现对不同的数据表进行数据管理的功能,这些功能都是调用LabSQL1.1A中相应的VI完成,其操作的基本过程如前面图4所示。图5所示的操作表示当前正在对校验员表进行查询操作,会把查询到的记录显示在前面板的屏幕上,供用户翻阅。
4.结束语
采用LabVIEW开发的虚拟仪器,界面友好美观,代码结构清晰易读。处理好LabVIEW对虚拟仪表软、硬件接口控制,对于充分发挥LabVIEW的功能极为重要,以此为基础,就可以灵活、充分地利用通用计算机的大量实用软件工具及强大的信号处理能力,以及各种插卡式“仪器”,实现对信号测量、计算、分析、处理、图形或数字显示、数据管理、 以及输出控制,突破了传统仪器在数据处理、显示、传输、存储等方面的限制,并把测量控制和信息管理相结合。虚拟仪器VI作为计算机技术和仪器测量技术相结合的产物,未来必将在许多行业发挥越来越大的作用。
本文的创新点是:把虚拟仪器技术应用到电表检验设备当中,详细描述了LabVIEW对自行设计的硬件接口控制方法和数据库的访问操作方法,该方法切实可行,有一定的借鉴意义。
参考文献
[1] 杨乐平 李海涛等.LabVIEW高级程序设计.北京:清华大学出版社.2004
[2] 杨乐平 李海涛等.LabVIEW程序设计与应用.北京:电子工业大学出版社.2001
[3] 汪敏生等.LabVIEW基础教程.北京:电子工业出版社.2002
[4] Gary W Johnson,Richard Jennings著.武嘉,陆劲昆译.LabVIEW图形编程.北京:北京大学出版社.2002
[5] 宋志军.基于LabVIEW和PXI平台的焊机自动测试系统.工业控制.2004.9
[6] 毕虎,律方成,李燕青,李和明.《LabVIEW中访问数据库的几种不同方法》,微计算机信息,2006,1-1:131-134