绘芯电池测试 - 专业的电池测试平台!

电池测试在线  - 电池测试仪|超级电容测试仪|电池测试系统|超级电容

当前位置: 电池测试 > 知识库 >

数据模块

时间:2016-08-13 16:50来源:未知 作者:admin 点击:
数据模块,该模块主要负责数据的存储功能。输入量为一维数组、保存路径文件名称和是否存盘.

单次存盘.vi

 

 

 

 


             

 

 

该模块主要负责数据的存储功能。输入量为一维数组、保存路径文件名称和是否存盘,详细程序流程如下:

当存盘的Boolean variable量为False的时候,Case Structure内的程序框图为空,此时,本程序不进行任何操作,如果为True的时候,本程序使用了Write to Spreadsheet File.vi (记录电子数据表.vi)程序组件。


 

组件的输入输出入下,这个单次存盘程序主要使用该程序的format . file path .1D data. Append to file选项来完成数据存储。

 

 

I如果为0,则CASE结构为真,且存储Write To Spreadsheet File.vi模块append to file?选择为假(默认为假),该程序会擦除文件已经存在的数据,如果路径上不存在目标文件,VI会忽略这个选项,直接创建一个新文件。本程序设置的默认路径为E:\ we\1.txt

 

 

 

写电子表格节点程序(Write To Spreadsheet File.vi)介绍:

       该节点把一个二维或一维单精度浮点数据数组写到一个电子表格文件中。如果文件是已经存在的,则既可以把数据追加到这个文件,也可以覆盖原有的数据;如果文件不存在,则创建新文件。节点图标及其连线端口如上图示。该节点要调用Array to Spreadsheet String节点把数据数组总的数值转换成电子表格字符串。该节点在写数据之前把文件打开,数据写完之后自动关闭该文件。

l        输出参数如下:

n        format(%.3f)         决定单精度浮点数到字符串的转换格式

n        file path(dialog if empty)      文件路径输入。可以直接在file path中输入一个文件路径和文件名,如果文件是已经存在的,则打开这个文件,如果输入的文件不存在,则创建这个文件。如果file path的值为空或者是非法的路径,则调用file dialog,通过文件对话框来选择或输出文件。

n        2D1D        输入二维或一维的写入数据

n        append to file?(new file:f   布尔输入。如果设为True ,且写入数据前该文件已经存在,则新的数据被追加到文件尾。当然,对于一个新创建的文件来说,该输入为TrueFalse含义是一样的;如果该输入的值为False(缺省值),则对于已经存在的文件,新的数据将会覆盖掉原有的数据,在使用时必须注意。

l        输出参数如下:

n        new file pathNot A Path if…     路径输出。输出已写入数据的文件路径名。如上所述,可以使用一个文件对话框来选择或输入要操作的文件路径。但是如果此时选择对话框的Cancel键,则该输出将返回一个<Not A Path>值。


 

通道选择.vi

该子程序主要执行在ABA&B三个通道进行选择,使用了CASE结构进行选择,实际程序如下:


 


数据读盘.vi

 

 

 

 

 

 

 

 


该程序中,wave in 悬空,对外,只使用“读盘”和“读路径”与wave out三个接口。

内部程序如图所示:

 

程序中,wave in悬空,无输入数据, 箭头2所指wave out为箭头1所指的局部变量。在程序运行中,选择读盘,则Boolean variable打开上面的CASE结构,里面的程序如图所示:

内部使用了

  

读电子表格文件(Read From Spreadsheet File.vi:

       从一个电子表格文件中读取一定数量的数据,并把这些数值字符串转换成单精度浮点数从一个二位数组中返回。节点图标及其连接端口如上图所示。值得注意的是,必须有保证这个电子表格文件的所有字符串全部由有效的数字字符组成。此节点在读取数据前打开这个文件,操作完成后关闭该文件。

l        输入参数如下:

n        format%.3f          确定字符串到浮点数的转换格式。

n        File pathdialog if empty             输入文件路径及文件名。如果其值为空或者为<Not A Path>,则将通过文件对话框来选择文件,如果在对话框中选择“取消”键,则由error返回一个错误代码,错误代码为47

n        Number of rowsall:-1         确定该节点读取的最多行数。如果该值小于0,则该节点将读取整个文件的数据。注意,电子表格的一行是一个回车符(carriage return)、一个换行符(line feed)、或一个文件结束符(EOF)来结束的。

n        Start of read Offsetchars...        确定读取数据的厨师位置。单位是byte

l        输出参数如下:

n        new file pathNot A Path if…            返回文件的路径。如果操作有错误,则返回<Not A Path>

n        All rows        读取的所有的浮点数都通过这个二维数组返回。

n        First row              返回读取数据的每一行。如果想把数据的一行读入一个一维的数组中,则要使用这个输出端。

n        Mark after read(chars.)              返回当前文件指针的位置。

 

 

 

 

当所要读取的目的文件不是默认的文件时,使用路径后面的选取文件的按键,则上CASE结构为F,下CASE转为True

 

 

 


       改程序使用file dialog节点来实现。在程序中使用的参数如下:

       Prompt   字符串输入,用来定义对话框的标题栏,通常在操作作用作为给用用户的提示信息。在上图中,其值为“打开”。

Start path      路径的输入,定位文件对话框的初始显示路径。如果这个输入的值为<Not A Path>,则其初始位置为对话框最近一次使用的路径。

Select mode  参数是用来显之用户选择文件或目录的类型。在这里,程序主要使用了参数0,该参数指定用户只能选择一个已经存在的文件,如果输入了一个不存在的文件名,对话框将弹出一个警告窗口,要求重新选择,直到选择了正确的文件路径或者按“取消”按钮取消本次文件选择为止。

Path       返回以选择或已输入的文件路径或者目录。如果因为某种原因使对话框不能返回正确的路径,则其值为< Not A Path >

  

数据存盘.vi

 

 

 

 

 

 

 

 

 

 


该模块,是把程序中采集出来的一维数组进行存储。分别放在程序流程的采样环节之后和读取环节之后,这样可以把采样出来的数据和在他处读取出来的数据直接保存下来。

VI的程序如下:

 

 

       数据保存VI的设计思路与数据读取的设计思路相同,采用的方法也相同,使用的是函数面板上:File I/O 中的前两个,即Write to Spreadsheet file.vi & read from Spreadsheet file.vi 。当Boolean variable为真时,上下两个CASE结构分别为

       其中函数使用方法与单次存盘和数据读取两个子程序相同,这里就不再赘述。

 

 

 

 


 

波形运算.vi

 

 

 

波形运算模块在显示前,可以对两个波形进行加、减与乘的运算。面板和位置如图所示。内部主要使用了CASE结构对波形运算进行选择。直接对1D数组进行运算输出。

内部程序如下图:

 

时基控制.vi

 

 

 

 

 

 

 

 


事实上,这个模块在虚拟示波器中已经不在需要,因为在普通的情况下,是调节扫描的频度,来进行测量波形的波长等量。但是在虚拟示波器中,前显示面板的波形显示框已经具备了这个功能。在这个模块的功用,是直接控制每次进入显示波形的点数来控制扫描频率的。

 

  

 

 

注意单双通道的控制。不同的通道是根据点数周期进行自动调配,在图上可以看到,是单通道的周期数目的3倍。(“单/双通道”是变量,直接指向通道选择按钮)

 


 

触发控制.vi

 

 

子程序的控制面板

 

 

 


 

 


因为在信号源输出的两组波形进行了交错运算,所以在这里通过单双通道进行运算,把拟和在一个数组里面的两组波形从新分化出来。此为第一个CASE框图程序的功能,当两个波形出来后,分别输出,同时有另外一组复制的信号进行通过对触发源的选择进入到第二个CASE结构中,进行选择(只在有两个信号源的时候才有效)。被选择的信号通道进入CASE结构后,进入“内部判断”子VI,进行分析。内部程序子程序如下:

子子程序“内部判断”

 

 

 

 

 

 

 

 


       内部判断逻辑如图所示:

数组的元素进入该程序后,分为三路,最下面的一路来确定循环的次数,保证循环正好在数组元素结束时结束,不出现无效循环。中间的一路,来给定该数组第一个元素的值。最上面的一组直接进行判断。首先判断设定的电压是否相等,且大于或者小于数组上一个数值,则触发内部CASE结构。

 

  

触发内部结构后,内部程序如图所示:

该数组中的某个元素(此元素和Level相等)和上一个元素相互比较大小,来确定波形是从下方还是从上方通过该设定触发值的。该部分的逻辑由内部小CASE结构的判断来进行,不同的上触发和下触发是通过direction来选择的。相应的内部判断是是大于或者小于。

  

 

 

 

 

 


Index值直接进入In Range and Coerce函数比较,比较公式为0Index<100000(限定一定值内防止系统负担过大)

 

 

程序块使用了Auto Power SpectrumPower & Frequency Estimate 两个模块联合运算出频率估计值,从而算出“点/周”值。

模拟输入模块

 

 

 

  

 

 

 


 

 

 


程序中波形处理,通道选择模块。使用了LabVIEW最新的波形滤波模块。可以根据不同波形的需要选择低通、高通、带通、带阻等不同的功能。

通道选择中,参照前面的通道选择程序,知:00 01 11分别代表A通道、B通道,AB混合。最后两数组进行混合后输出。

 

 

 


采样使用了16BIT11025立体声采样。可以根据不同的需要进行采样。同时还可以进行LINE IN端口的采样处理。具体操作步骤如技术文章所示(见NI公司技术资料库filename=How Can I Record Sound in LabVIEW from Sources other than the Microphone?”)。指利用计算机声音控制面板中的辅助功能,选择声道进行输入输出。

在模拟输入的情况下,该软件提供了几中输入方法:正弦波、方波、三角波和白噪声等。程序编制方法如下图所示:


开始暂停模块

该模块主要是控制整个程序的开始和暂停,三个按钮控制着整个程序的CASE结构的运行与否。其软件流程图如下:

 

 

 

 

 

 

 

 

 


                                                 

在这个程序流程中,主要使用了顺序结构,当该顺序结构全部程序完成后,程序才能继续运行,这样就实现了暂停循环的状态。

 

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容