LabWindows/CVI语言编程数据采集卡实验指导
实验四:采集正弦波数据并写入txt文档
开始本实验前,请先参看前面文章《LabWindows/CVI语言编程数据采集卡实验指导一:单次AD采集》板卡配置的基础知识,建议依次按照文章的编排序列阅读,方便后续文章的理解。
一、实验目的:
1.学会LabWindows/CVI采集数据的收集
二、实验内容:
1. 编写程序,令单个AD通道不间断采集一定数量的信号发生器数据并写入txt文档。
三、实验步骤:
1. 打开LabWindows/CVI软件,配置如前文《LabWindows/CVI语言编程数据采集卡实验指导一:单次AD采集》所述,新建项目,连接板卡。
2. 在控件面板放入一个Graph控件,一个Timer控件以及两个Square Command Button控件,并修改Label命名。如图1
3. 运行Library→Generate→ All Code打开编程界面,照例在开始按钮内写入启动Timer控件及令“开始”按键可以暂停启动的程序。如图2所示
4.在Timer控件的callback函数下定义一个单精度浮点型数组z[1024],用于存放AD1连续采集的数据。接着用通道AD1进行单端采集,连续采集512个数并存放到数组z中。然后调用Graph控件显示。程序如图3
5.写入函数ArrayToFile()用于将采集到的数据传入指定文档内,该函数位于Library→Formatting and I/O→File I/O→Array to File。打开后函数设定界面如图4
函数值介绍:
File Name:想要写入的文档所在位置,可以点击右边的按钮选择文件位置,如果该位置没有搜索到指定文件,则会自动创建一个。
Array:数据来源,这里我们选择数组z。
Data Type:数据类型,我们选择单精度浮点型。
Number of Elements:写入的数据量,设定为数组大小1024。
Number of Groups:写入数据的组数,默认值为1,即为将所有数据分入一个大组,一个组1024份。如填入2则分为两组,每份1024/2个数据,以此类推。
Array Data Order:数组数据顺序,选择默认值即可。
File Layout:文件格式,Columns为按列写入,Rows为按行写入。
Column Separation:列分隔样式。Constant Width Columns为等宽列。Separate by Comma为按逗号分隔。Separate by Tab为按制表符分隔。
Field Width:字宽度,根据需求调整。
File Type:文件类型,可选择ASCII码或二进制。
File Action:文件执行动作,选择Truncate时,每当写入新的数据则清空旧的数据。选择Append时则会将新的数据排在旧数据后写入。按需求选择即可。
所有函数值填写完毕后如图5。
将填写好的函数插入到Timer控件的callback函数下。如图6
6. 打开信号发生器,输出稳定的正弦波,接入端口AD1并接地,运行程序。如图7
令程序对通道AD1进行三次连续采集,得到写入txt文档的数据如图8,数据数量为1024*3=3072份,正确。
四、实验结果及思考: