林志雄,张艺媛
(安徽江淮汽车集团股份有限公司,安徽 合肥 230601)
一种数据采集程序的基本架构
林志雄,张艺媛
(安徽江淮汽车集团股份有限公司,安徽 合肥 230601)
数据采集一般指测试过程中将模拟信号转变成数字信号,或模拟信号数据产生的过程。文章采用一种通用简洁的程序架构,可运用于大部分连续进行的模拟输入、模拟输出、数字输入、数字输出、计时、频率等等信号数据的测量操作。
数据采集;程序架构;测量
CLC NO.:U463.6Document Code:AArticle ID:1671-7988 (2017)06-72-02
在汽车电子部件测试过程中,经常需要用到模拟/数字信号的采集分析或信号的产生等过程,应用 LabVIEW 的DAQmx组件子vi编写程序,就可以很好地满足信号的测试需求,并通过对DAQmx多态子 vi 的设置,可实现各类常用信号测量/产生的应用程序。将应用程序与 NI 硬件链接起来,就可以实现各种信号测量/产生,如汽车电子部件测试中的电压、电流、频率、占空比等信号采集分析或信号产生等。
利用 DAQmx组件子vi编写的数据采集程序的基本架构是在 while循环之前先进行创建、配置、设置测试任务的相关信息和配置要求,并只执行一次后就进入while循环体进行数据采集或数据写入,在循环结束后进行清除和结束所创建的任务。利用DAQmx编写的测量程序基本架构是基于“任务”的,它包括了通道信息配置、时序设定、采样方式选择、采样速率设置、触发条件等信息,表现为一个任务执行的全过程,即任务的创建、配置及结束等,程序架构如下图所示。
图1 数据采集程序的基本架构
(1)创建任务 vi,该 vi路径为函数选板/测量 I/O/ DAQmx-数据采集/ DAQmx 高级任务选项/ DAQmx 创建任务,一般创建任务时定义一个任务名称,错误输入设定为一个常数(即没有错误发生)。使用这个 vi 可以创建相互独立的测量任务,该vi 尽量不在while循环中使用,并在任务结束后进行清除任务,以免占用过多的内存。
(2)创建通道 vi,该 vi路径为函数选板/测量 I/O/ DAQmx-数据采集/ DAQmx 创建通道,这是一个多态 vi,可以选择多种测量功能的虚拟通道添加到任务中,包含模拟输入输出、数字输入输出、计数器输入输出等。实际使用中,常利用“分配名称”来给虚拟通道进行命名,曲线名称就会自动显示“分配名称”。
(3)DAQmx 定时vi,该vi路径为函数选板/测量 I/O/ DAQmx-数据采集/DAQmx 定时,编程时主要对测量的采样速率和采样模式进行设置,采样速率一般选择为实现输入频率的5倍~10倍。
(4)DAQmx 开始任务vi,该vi路径为函数选板/测量I/O/ DAQmx-数据采集/DAQmx 开始任务,该vi 在编程中一般无须配置。
(5)DAQmx 读取vi,该vi 路径为函数选板/测量 I/O/ DAQmx-数据采集/ DAQmx 读取,该vi 为多态 vi,包含模拟单通道/多通道、数字单通道/多通道、计数器单采样/多采样等,通过选择不同的类型可以进行模拟或数字信号的测量。若每通道读取选择N采样,其采样数的设置即为数据分析显示的更新频率,所以不能大于前面定时 vi中设定的采样频率,实际显示的更新率=(采样频率/采样数)次/S。
(6)DAQmx 写入vi,该vi路径为函数选板/测量 I/O/ DAQmx-数据采集/ DAQmx 写入。该 vi 也为多态 vi,与读取vi类似,同样包含模拟单通道/多通道、数字单通道/多通道、计数器单采样/多采样等,通过选择不同的类型可以实现模拟或数字信号的产生和输出,同样若每通道写入选择N采样,其采样数的设置不能大于前面定时 vi中设定的采样频率。
(7)DAQmx 清除任务vi,该vi路径为函数选板/测量I/O/ DAQmx-数据采集/DAQmx 定时,在测量程序架构中使用该 vi,应与“创建任务” vi 成对出现,实现测量任务结束后关闭程序以免占用过多的内存,一般在编程中无须进行设置。
应用模拟/数字信号测量程序基本架构,编写一个电压有效值 RMS测量程序,在创建任务中配置任务名称和无错误的常量输入;在创建通道中配置物理输入通道(即输入控件)、选择测量内容(AI电压)、测试值的最大最小值范围、输入接线端配置;在定时中设定采样模式(有限采样)和采样频率;开始任务采用默认设置;数据读取选择“模拟波形1通道N采样”、每通道采样数设定为1000(比前面定时中的采样频率要小);采集到的波形数据进行“基本平均直流-均方根”(该vi路径为函数选板/信号处理/波形测量)处理后并通过显示控件显示;测量任务结束后进清除任务,解除所占用的内存;最后用一个简易错误处理,当程序出现错误后可以由测量人员来停止程序运行;具体测量程序和设置如下图所示。
图2 电压有效值RMS测量程序
基于DAQmx的测量程序基本架构主要依据数据流传递关系,结合测量任务创建、运行和结束的概念,利用LabVIEW中DAQmx组件的相关子vi编写一个测量任务的全过程,包括任务的创建、配置、运行及结束清除。在程序架构应用时,需要注意读取vi中的采样数和定时vi中采样频率的关系和设置原则,采样频率大小会影响测量数据还原的真实性,而采样数设定会影响测量数据分析显示的更新速率,一般希望用于分析的信号数据更新尽可能快,但由于数据分析也必须满足采样定理才能获得理解结果,所以被分析的信号频率上限就会降低。
[1] 陈锡辉,张银鸿.LabVIEW8.20程序设计从入门到精通. 北京:清华大学出版社,2007.
[2] 程学庆. LabVIEW 图形化编程与实例应用[M]. 北京: 中国铁道出版社, 2005.
The basic structure of data acquisition program
Lin Zhixiong, Zhang Yiyuang
(Anhui Jianghuai Automobile Co., Ltd, Anhui Hefei 230601)
Data acquisition generally refers to the process of testing analog signals into digital signal, or analog signal data generation process.In this paper, we use a general and concise program architecture, which can be used in most of the continuous analog input, analog output, digital input, digital output, timing, frequency and other signal data measurement operations.
Data acquisition; Program architecture; Measurement
U463.6
A
1671-7988 (2017)06-72-02
林志雄,助理工程师,就职于安徽江淮汽车集团股份有限公司技术中心,车辆工程,主要研究电子零部件功能和性能测试验证等工作。
10.16638/j.cnki.1671-7988.2017.06.023