当前位置:首页 期刊杂志

基于FPGA自动变速率采集实现及SQL数据库链接建立

时间:2024-05-04

王树东,李晓培,梁国栋

(1.兰州理工大学电气与信息工程学院,甘肃兰州730050;2.甘肃省工业过程先进控制重点实验室,甘肃兰州730050)

基于FPGA自动变速率采集实现及SQL数据库链接建立

王树东1,2,李晓培1,梁国栋2

(1.兰州理工大学电气与信息工程学院,甘肃兰州730050;2.甘肃省工业过程先进控制重点实验室,甘肃兰州730050)

针对卫星电推进分系统地面测试设备建设方案,开发了配套的数据采集存储系统,阐述了FPGA在LabVIEW语言编程中下位机自动变速率采集的实现,并通过LabVIEW如何建立与数据库的链接,进行数据插入,查询,系统能够在前台监控计算机提供人机界面,能够自动根据情况变换速率采集。详细介绍了每个程序VI的编程思路,给下位机自动变速率编程提供一个新的方向,实际运行系统表明,该思路编程新颖独特,自动变速率运行稳定,采集效果准确。

数据采集;LabVIEW;SQL数据库;变速率采集

0 引言

随着航空航天技术的不断发展,对电推进技术的要求不断提高,依托于电推进系统的数据采集系统应运而生。数据采集存储系统配套服务于电推进分系统地面试验设备,是电推进系统进行地面测试、验证的重要组成部分,提供对实验的过程控制、数据存储、数据分析等功能。传统的数据采集系统只能对于特定硬件进行相应的软件定制,拓展性适应性较差,研发费用较高。而且系统的自控型较迟滞,不能根据现场环境自动进行变速率采集。本文着重阐述了一种FPGA在下位机中基于LabVIEW编程语言的自动变速率采集方式[1],及如何把采集到数据进行数据库链接及存储回放。系统程序可以自动变换所需的采集速率,不用人为手动控制,而且系统可以随着现场环境随时修改程序,结合相应的硬件就可以快速地搭建一个完整的采集系统,为实验和工程节约大量时间和经费,程序灵活度大大增加。

1 硬件设计

数据采集卡是计算机与外界的接口[2],它的主要作用是将外部的模拟信号转化为计算机能够处理的数字信号。本文采用了NI公司提供的FPGA CampactRIO系列(CRIO)数据采集设备。整个硬件CRIO采集系统由NI CompactRIO⁃9025控制器、CRIO⁃9118机箱、NI⁃9222和NI⁃9229采集卡三部分硬件组成,在下位机,采用了NI TPC⁃2212 LabVIEW触屏式计算机实现人机界面,实时控制数据采集过程[3]。从硬件结构上,FPGA程序运行在FPGA机箱背板中,它是作为CRIO系统中的一个部件存在的,它的上一级是控制器,运行的是实时操作系统,下一级是C系列模块即采集卡,负责实际的数据采集和控制[4]。图1为采集设备硬件连接图。

图1 采集设备硬件连接图

2 FPGA下位机软件设计

下位机FPGA中采用LabVIEW编程语言进行编程,主要程序由FPGA机箱中的最底层采集程序Target.VI和RT实时控制器中进行数据整理交换程序HOST.VI组成。FPGA编程是整个数据采集的核心所在,它是采集系统的数据来源。

2.1 FPGA采集程序Target.VI

整个程序采用平铺式顺序结构来实现,确保程序按一定顺序进行,不容易出现程序混乱。首先在第一个帧中设置要采集的采样率,完成后在第二帧中开启采集卡START,采集卡模块准备数据采集。因为需要变速率进行采集,运用了条件结构进行程序搭建。当速率一切正常不需要变换速率时,直接运行“假”程序,这里的16路I/O接口通道进行采集,把采集到的数据进行创建数组以便用于数据传送。因为在FPGA中,不能使用全局变量进行数据共享,同时为了保持FPGA运行的精确性,摒弃了轮询和中断方式,这里采用DMA FIFO进行VI间数据传送,把得到的数据直接传递到RT实时控制器的内存中。这里需要注意的是保持数据连续采集的While只需要在第三帧I/O接口进行循环即可,不用覆盖整个平铺顺序结构,防止每次采集都需要重新设置采样率,影响系统运行。采集底层程序要求越简单直接越好,抛却系统冗繁性,拖慢整个系统。

当系统需要变换速率时,运行条件“真”中的程序,这里设置了一个真假布尔开关update speed,根据环境需要以便自动控制采样率切换。在“真”条件结构内部创建第二个平铺顺序结构,第一帧程序中设置采集模块STOP,把采集卡模块进行中断,第二帧中设置需要改变的采样率,这里用采样率2控件进行输入,为后面RT程序中自动变换速率留下输入端口。最后第三帧中进行采集模块START进行,创建update speed布尔输入开关局部变量,局部变量状态为“F”,把条件结构切换到运行“假”中程序,进行I/O端口数据采集。FPGA程序条件“假”如2图表示,变速率条件“真”程序如3图表示。

图2 FPGA条件“假”中程序图

图3 变速率条件”真”中程序图

2.2 RT实时控制器HOST.VI

RT中程序主要负责对FPGA采集上来的数据进行传递和处理[5]。上位机通过RT控制器进行数据共享,来进行波形显示数据库存储等功能。首先运用打开FPGA VI引用句柄控件进行FPGA Target.vi的底层程序调用,经过属性重置及FIFO请求深度的设置后,连接一个FPGA的读取/写入控件,通过它可以直接对FPGA中采样率2端口进行采样率重置输入以达到变速率的目的。这里对采样率2及update speed端口连接了两个局部变量,它们负责对改变的采样率进行输入和采集卡模块的切换控制。最后连接FIFO读取控件,运用FIFO成功把底层数据传递上来。

下面进行最重要的自动变速率切换程序编程。主要思想是利用条件结构进行程序“真假”切换。当需要25 Kb/s的采样率时,调用执行“真”中的程序,条件结构中输入25 Kb/s到显示控件,并通过刚开始创建的局部变量直接把改正数值输入FPGA读写控件,达到改正采样率的目的。最后把得到的数据进行队列数据传送,以便后面进行外挂硬盘存储。这里还创建了一个数值局部变量配合相应的采样率进行后面的数据存储时间配合,方法同修改采样率一样。当程序稳定运行一段时间,只需要2 Kb/s的采样率时,执行“假”中程序,同样运用局部变量把2 Kb/s采样率输入到读写控件,直接改正采样率,不需要回到底层FPGA Target.vi中改正。因为此时,只需要1 Kb/s的存储就可以,这里做了一个数组子集索引,把两个索引出来的数组相加除2即可,同样在VI内部传递数据用队列实现。在这里用布尔开关控制调节采样率,当需要自动控制变速率时,比如当系统刚开始采集15 s时数率值较高,电压电流较大不稳定,需要高速率25 Kb/s采集,可以把采集到的一组数据索引出来进行比对,当高于特定值时选择器输入“真”信号,实行条件结构“真”中程序,进行25 Kb/s采样率切换,之后系统运行稳定,电压电流降下来小于特定值,输入“假”信号,切换到2 Kb/s的采样率。这就实现了工程上的自动转换速率功能,采样率可以根据自己实际需要进行转换。图4,图5为数据读取及采样率真假切换程序。

图4 2 Kb/s采样率程序框图

图5 25 Kb/s采样率程序框图

3 LabVIEW上位机数据库链接设计

运用数据共享传递从下位机采集上来的数据,也就是来自从下位机RT实时控制器HOST.VI中的数据。把数据进行滤波、加窗等处理后导入队列,进行VI内部数据库存储。

3.1 数据库写入.VI

把由队列传来的数据进行SQL数据库存储。存储速率由主界面VI程序中时间等待控件来确定,这里设定1 s存储1个,即等待1 000 ms。首先把数据进行至小数字符串转换,就是把数据变换为小数分数格式的浮点数字符串,因为需要把时间字符串加入数据中以便存储,所以需要把数组全都变成统一类型的字符串形式。然后索引16路数组字符串,为的是添加时间字符串,把得到的17路数组进行创建数组。其中,获得的时间格式化,格式为′%Y⁃%m⁃%d%H:%M:%S%3u′。把得到的17路数组转换为电子表格字符串,因为SQL Executu模块中命令文本需要连接的是字符串格式。把得到的字符串格式化,加入表名和values,把得到的格式化字符串用数据库inserti nto语句利用SQL Execute执行模块,插入数据库,进行数据存储,把数据存到SQL数据库中。这里用了两个执行模块,第一个是执行插入数据,第二个执行模块的作用是查询表中所有的数据,检查是否存入数据,其中表名用全局变量来显示,方便查询不同表的数据,利用Rows fetch显示存储的数据行数。数据写入VI见图6。

图6 数据库写入VI程序框图

数据库ADO框图程序操作步骤分析:利用ADO Connection Create.vi创建一个链接对象,利用ADO Con⁃nection Open.vi建立与数据库的链接。数据库链接串这里建立了一个数据库链接子VI用于指定数据库链接。数据库链接串也可以用ODBC数据源中创建一个DSN进行链接。但是用这种方式链接,需要在每一台电脑上运行程序链接数据库时都需要重新创建数据源,非常麻烦。这里直接创建一个数据库子VI,把服务器和数据库名称直接用全局变量写入子VI,用户只需要选择好数据库和服务器就可以直接运行程序进行存储,方便快捷。利用ADO Conn Execute.vi执行插入数据和SQL查询命令“select*from表名”。最后用ADO Conn Close.vi关闭与数据库之间的链接。

3.2 数据库链接(子)VI

用链接字符串把Server(服务器名称),Database(数据库名称),Uid(用户名),Pwd(密码)链接起来,用ADO Conn Open.Vi指定打开的路径。其中服务器名称等做成全局变量,直接选择,方便一点。此vi用于代替电脑上设置ODBC数据源。数据库链接VI程序设计见图7。

3.3 信息查询子.VI

信息查询子VI调用于历史数据查询vi,为其提供历史数据。用链接字符串把数据库的查询语句链接起来,数据库语句为“select*from表名where cisj between′时间′and′时间′”。用connection VIS进行实现,原理同数据插入,只是查询语句的改变。信息查询VI程序设计见图8。

图7 数据库链接VI程序设计

图8 信息查询VI程序框图

4 实验验证

当系统运行时,通过CRIO系统分别采集10 V交流电压,10 A的交流电流,下载在FPGA机箱中的Target.VI通过NI 9229和9222模块进行采集数据,并把采到的数据通过FIFO上传到RT中进行分析,并存储到外挂的硬盘中进行保存,最后RT与上位机PC进行数据传递,在上位机中进行信号处理,最后在系统主界面显示出来。系统运行主界面如图9所示。

从图9可以看出,系统采集的电压、电流与实际输出10 V正弦电压一致,数据准确稳定。系统连续采集24 h无死机状态出现,系统运行稳定。

5 结论

经过某研发所应用实践证明,基于LabVIEW的数据采集系统完全达到用户的标准,其可以自动变速率的新颖思想有很大的拓展性,可以有多重变换方式,实际应用可靠,其设计费用相比于传统数据采集设备大大降低,顾客只需要根据自己不同环境使用硬件设备就可以快速搭建起一个采集系统。本文采用的程序结合NI CRIO系列采集模块,运行稳定,可靠性高,具有一定推广价值。

图9 系统实际运行界面

[1]陈树学,刘萱.LabVIEW宝典[M].北京:电子工业出版社,2011.

[2]王立强.计算机测控系统与数据采集卡应用[M].北京:机械工业出版社,2007.

[3]崔佩佩,何强,韩壮志,等.基于LabVIEW FPGA实现不同时域的数据连续传输[J].现代电子技术,2011,34(17):21⁃24.

[4]周益青,王勇.基于LabVIEW软件的数据采集与分析系统[J].制导与引信,2012,33(1):24⁃28.

[5]刘晓燕,吴娜,陈宇佳.基于LabVIEW数据采集的大型机械故障诊断分系统[J].华北水利水电学院学报,2013,34(6):126⁃128.

[6]向科峰.基于LabVIEW的数据采集系统设计与实现[J].机械管理开发,2011(4):191⁃192.

[7]吕向峰,高洪林,马亮,等.基于LabVIEW串口通信的研究[J].国外电子测量技术,2009,28(12):27⁃30.

[8]章勇勤,艾勇,邓德祥,等.基于FPGA的超高速数据采集与处理系统[J].数据采集与处理,2009,24(2):238⁃242.

[9]初华,李长兵.LabVIEW基于USB 2.0的数据采集及处理[J].仪表技术,2010(5):22⁃25.

[10]杨乐平,李海涛,赵勇,等.LabVIEW高级程序设计[M].北京:清华大学出版社,2003.

Realization of automatic variable rate acquisition and establishment of SQL database link in data acquisition system based on FPGA

WANG Shu⁃dong1,2,LI Xiao⁃pei1,LIANG Guo⁃dong2
(1.College of Electrical and Information Engineering,Lanzhou University of Technology,Lanzhou 730050,China;2.Gansu Province Key Laboratory of Advanced Control for Industrial Process,Lanzhou 730050,China)

According to the development scheme of ground testing equipment for the satellite electric propulsion subsys⁃tem,a matched data acquisition and memory system is developed.The implementation of FPGA⁃based automatic variable rate ac⁃quisition in the LabVIEW language programming by slave computer is described.The realization method for link of the data⁃base with SQL database through LabVIEW is introduced.With data insertion and query,the system can provide human⁃machine interface in the PC monitoring computer and transform the acquisition rate automatically according the situation.The program⁃ming idea for each program VI is elaborated,which provides a new direction for computer automatic variable rate programming. The actual running result shows that the programming idea is novel and unique,and the system works well and can realize accu⁃rate acquisition.

data acquisition;LabVIEW;SQL database;variable rate acquisition

TN911⁃34;TP311

A

1004⁃373X(2015)09⁃0096⁃04

王树东(1965—),男,山东青岛人,教授。主要从事计算机自动控制技术、智能检测技术的教学与应用研究工作。

2014⁃10⁃21

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!