首页 理论教育LabVIEW2012电子表格文件读写操作

LabVIEW2012电子表格文件读写操作

【摘要】:写入电子表格文件VI或数组至电子表格字符串转换函数可将来自图形、图表或采样的数据集转换为电子表格字符串。LabVIEW 2012中文版提供了两个VI用于写入和读取电子表格文件,它们分别是写入电子表格文件VI和读取电子表格文件VI。例8-3:写入电子表格文件VI的使用。图8-124 连续写入电子表格文件程序框图下面使用读取电子表格文件VI演示数据读取中的流盘操作。

要将数据写入电子表格,必须格式化字符串为包含分隔符(如制表符)的字符串。

写入电子表格文件VI或数组至电子表格字符串转换函数可将来自图形、图表或采样的数据集转换为电子表格字符串。

LabVIEW 2012中文版提供了两个VI用于写入和读取电子表格文件,它们分别是写入电子表格文件VI和读取电子表格文件VI。下面以两个实例分别介绍这两个函数存取电子表格文件的方法。

写入电子表格文件VI可以将一个一维或二维数组写入文件,如果没有在文件路径输入端口指定文件路径,则程序会弹出一个“文件”对话框,提示用户给出文件名。除了文件路径输入端口以外,此VI的二维数据和一维数据输入端口分别用来连接将要存储为文件的二维和一维数组。“添加至文件?(新文件:F)”输入端口用于连接一个布尔变量,如果变量的值为TRUE,则输入的数据追加到已有文件的后面,如果是FALSE,则输入的数据将覆盖原有的文件。“转置?(否:F)”数据输入端同样也连接一个布尔型变量,如果是TRUE,则将输入的数组做转置运算,然后将运算的结果存储为电子表格文件。在格式数据输入端口可以更改数组中数据的格式。

例8-3:写入电子表格文件VI的使用。

978-7-111-40983-0-Chapter08-126.jpg首先,新建一个VI,从函数选板中的文件I/O子选板中选取写入电子表格文件VI置于LabVIEW的程序框图中。

978-7-111-40983-0-Chapter08-127.jpg用For循环产生100个正弦数据及余弦数据,并分别将两组数据用写入电子表格文件VI存储为电子表格文件,文件路径为C:\data。

程序框图如图8-117所示。

上面的程序将For循环产生的正弦与余弦数据存储在电子表格文件data中,用Microsoft Excel打开这个文件,可以发现文件中有两行,第一行为余弦数据,第二行为正弦数据,用Microsoft Excel的绘图功能分别汇出这两行数据的散点图分别如图8-118和图8-119所示。

图8-117所示的程序可能有些不容易理解,问题在于两个写入电子表格文件VI的执行次序问题。更容易理解且更常用的方法是将数据合并成一个二维数组,将二维数组一次性写入电子表格文件。程序框图如图8-120所示。

978-7-111-40983-0-Chapter08-128.jpg

图8-117 程序框图

978-7-111-40983-0-Chapter08-129.jpg

图8-118 用存储在电子表格文件中的余弦数据绘图

978-7-111-40983-0-Chapter08-130.jpg

图8-119 用存储在电子表格文件中的正弦数据绘图

978-7-111-40983-0-Chapter08-131.jpg

图8-120 使用写入电子表格文件VI写入二维数组

本实例充分印证了电子表格的特性,也是这种文件格式最大的好处,可以用其他电子表格处理软件来处理文件中的数据。

例8-4:电子表格文件的读取。

本实例的程序框图如图8-121所示,使用读取电子表格文件VI读取用写入电子表格文件VI存储的正弦与余弦波形文件。

978-7-111-40983-0-Chapter08-132.jpg

图8-121 程序框图

如果不在读取电子表格文件VI的文件路径端口连接任何路径,那么程序将打开“文件路径”对话框,让用户选择存储的电子表格文件的路径。在读取电子表格文件VI中另外几个比较重要的端口有:行数(全部:-1),读取起始偏移量(字符:0),转置(否:F)。

本实例中,将读取的电子表格文件的数据使用波形图控件在前面板上显示,程序的前面板及运行结果如图8-122所示。

在程序前面板中,波形图控件显示出了用读取电子表格文件VI读取的电子表格中的数据。两条正弦余弦曲线就是上一节中用写入电子表格VI存储的正弦、余弦数据。

“文件I/O”函数还可用于流盘操作,它可以减少函数因打开和关闭文件与操作系统交互的次数,从而节省内存资源。流盘是一项在进行多次写操作时保持文件打开的技术,如在循环中使用流盘。如将路径控件或常量连接至写入文本文件、写入二进制文件或写入电子表格文件函数,则函数将在每次函数或VI运行时打开关闭文件,增加了系统占用。避免对同一文件进行频繁的打开和关闭操作,可提高VI效率。(www.chuimin.cn)

978-7-111-40983-0-Chapter08-133.jpg

图8-122 程序前面板

在循环之前放置打开/创建/替换文件函数,在循环内部放置读或写函数,在循环之后放置关闭文件函数,即可创建一个典型的流盘操作。此时只有写操作在循环内部进行,从而避免了重复打开关闭文件的系统占用。

对于速度要求高,时间持续长的数据采集,流盘是一种理想的方案。数据采集的同时将数据连续写入文件中。为获取更好的效果,在采集结束前应避免运行其他VI和函数(如分析VI和函数等)。

例8-5:文件I/O函数的流盘操作。

本实例使用写入电子表格文件VI演示文件I/O函数的流盘操作。操作步骤如下:

978-7-111-40983-0-Chapter08-134.jpg使用打开/替换/创建VI打开一个文件,它的操作端口设置为create or open,即创建文件或替换已有文件。文件名的后缀并不重要,但习惯上常取“txt”或“dat”。

978-7-111-40983-0-Chapter08-135.jpg利用While循环将数据写入电子表格文件。

978-7-111-40983-0-Chapter08-136.jpg使用关闭文件函数节点关闭文件。

本实例中信号源是一个随机噪声。VI的前面板和程序框图如图8-123和图8-124所示。

978-7-111-40983-0-Chapter08-137.jpg

图8-123 连续写入电子表格文件前面板

可以使用Windows操作系统的文本编辑工具查看文件中的数据。图8-125所示是用记事本打开的所存储的数据文件。从图中可以看出,数据共有一列20行,每一行对应一次数据采集,每次数据采集包含一个数据。

978-7-111-40983-0-Chapter08-138.jpg

图8-124 连续写入电子表格文件程序框图

下面使用读取电子表格文件VI演示数据读取中的流盘操作。本例的步骤如下:

978-7-111-40983-0-Chapter08-139.jpg使用打开/替换/创建VI打开一个文件,它的操作端口设置为open,即打开已有文件。

978-7-111-40983-0-Chapter08-140.jpg使用读取电子表格文件VI将保存在文件中的数据逐个读出。将这些数据打包成数组送入波形图显示。

978-7-111-40983-0-Chapter08-141.jpg使用关闭文件函数节点关闭数据文件。

VI的前面板及运行结果如图8-126所示,VI的程序框图如图8-127所示。

978-7-111-40983-0-Chapter08-142.jpg

图8-125 写入电子表格文件中的数据

978-7-111-40983-0-Chapter08-143.jpg

图8-126 连续读取电子表格文件程序前面板

978-7-111-40983-0-Chapter08-144.jpg

图8-127 连续读取电子表格文件程序框图