LabVIEW中的时标、波形以及动态数据
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LabVIEW中的时标、波形以及动态数据
在LabVIEW中我们分析或采集的数据通常都是时间的函数。例如,我们可能希望知道在一天中温度随着时间的变化,或者是变化的波形在时间轴上绘出之后的样子。
LabVIEW有一些特殊的数据类型可以用来帮助一般的用户来以曲线的形式分析或展示这些数据。这些特殊的数据类型就是时标(Time Stamp)、波形(Waveform)和动态数据(dynamic data)。时标数据用来存储波形中的时间信息而多个波形可以保存在动态数据中。由于时标、波形以及动态数据的自然依赖关系,我们就在本文中对它们一起介绍。
时标(Time Stamp)
时标这个数据类型用来存储绝对日期/时间值,比如数据采集的时间。它的精度非常高,不论是对于计数秒的整数部分还是分数部分都有19位的精度。
虽然我们可通过将一个数值控件的显示方式设定为日期/时间来存储与显示时标值,不过数值控件保存的是相对值,而时标控件保存的则是绝对值。
在LabVIEW中,我们可以使用Get Date/Time In Seconds函数来获取当前的时标值。一个时标控件如下图所示:
时标是一个高精度保存绝对时间的手段,而时标控件则可以用来查看与修改时标的值。时标控件可以在Controls控件面板的Modern>>Numeric子面板中找到。
通过点击你要修改的时标控件左侧的上下箭头就可以对该时标的值进行增减操作。或者是通过键盘直接键入数值来取代时标的当前值。也可以在时标控件上点击鼠标右键,并在右键菜单中选择Data Operations>>Set Time to Now将时标的值设置为当前的日期与时间。
日期/时间浏览按钮
不过我们还有一个更有趣的修改时标的方法,那就是点击时标控件右侧的日期/时间浏览按钮。在点击该按钮之后,就会弹出下面的日期与时间设置对话框。从这个对话框,我们能够轻松的用这个日历式的界面来修改时标的日期与时间值。
这个对话框也可以在时标控件上点击鼠标右键,在右键菜单中Data Operations>>Set Time and Data菜单项打开这个对话框。对于没有日期/时间浏览按钮的时标常量以及指示器类型的控件,使用这个右键菜单是最合适的方式。
相对时间计算
有些时候我们也需要时间计算。比如下面程序框图中我们使用相减函数来计算两个时标之间的相对时间。
通过这种方式,我们可以用来对某些程序代码的执行时间进行测试,比如在一个VI开始之前获取一个时标值,在VI结束之后获取一个时标值,将这两个值相减就可以知道这个VI的具体执行时间是多少了。
另外我们也可以对时标数据进行加操作,将相对时间加上旧的时标值得到一个新的时标值,这个程序就不再演示了。时标与数值之间的转换
如前面的两个时标相减的例子,我们可以发现时标与数值两种数据类型是密切相关的。在有些情况下,我们需要在这两个数据类型之间进行转换。加、减这两个函数在对时标数据操作时,函数不是匹配为时标类型(由于这两个函数是可复用的)就是将时标强制转换为双精度浮点数。有些时候,我们也想要直接执行这个转换操作。我们可以在函数VI 面板的Programming>>Numeric>>Conversion子面板上找到To Double Precision Float函数来将时标数据转换为双精度浮点数。或在Programming>>Numeric>>Conversion子面板上找到To Time Stamp函数将一个数值转换为时标数据(这个函数也可以在Programming>>Timing子面板上面找到)。
这两个函数如下图所示:
这里的To Double Precision Float函数可以将任何数值型数据转换为双精度浮点数。
波形(Waveforms)
在许多工程以及科技应用中,需要处理的数据都是一组随着时间变化的数值。例如,音频信号就是随着时间变化的压力值,心电图则是随着时间变化的电压值,滴落的水滴的表面就是随时间变化的其xyz坐标的值,计算机常用的数字信号则是随时间变化三维二进制值。LabVIEW中提供了波形数据这个数据类型来组织与处理这些时变信号。一个波形数据不但可以让你来存储数据的值,还可以用来存储第一个数据获取时的时标值、每个数据点之间的间隔时间以及数据的备注信息。它与LabVIEW中其他的数据类型类似,可以进行加减运算操作,以及其他的直接对波形进行的操作。你可以在I/O控件面板选择相应控件来在VI前面板上创建Wavwform或Digital Waveform类型的控件。
上图中就是一个波形控件在前面板以及框图中的表现形式。下图中的则是数字波形控件在前面板以及框图中的表现形式。我们可以发现在程序框图中,波形控件的图标为棕/橙色而数值波形控件的则为绿色。
这两个图标里面,模拟波形是一个类似正弦波的波形,数值波形则是一个方波,再加上它们的颜色不同,区分它们还是很容易的。
通过仔细检查波形数据类型,我们可以发现它其实就是一个特殊的簇类型的数据。在这个簇中包含了四个元素:Y、t0、dt以及Attributes(属性),对其详细讲解如下:
∙Y:这个元素是随着时间变化数据。对于一个模拟波形来说,这是一个元素为数值数据点的一维的数组,这个数据点可以是一个单点也可以是另外一个波形,根据所执行的操作的不同而不同。模拟信号类型的一维数组的元素数据类型为双精度浮点数。离散信号则被称为"数字"信号,离散信号一般就是只有两个状态的信号,比如TRUE或FALSE、0或5V、开或关等等。对于离散信号,我们需要使用的是数字波形。对于数字波形来说。Y元素是数字数据,你可以将其想象为一个二进制值的表格,列为数字线,行为变话的值。
∙t0:这个元素是一个时标值,用来标识Y数组中第一个点采集时的时间(相对于当期的系统时间)。它也被称为初始时间或初始时标。
∙dt:Δt,念作"得尔它T"(哈哈,小幽默一下)。用来表示Y数组中两个相邻数据点之间的间隔时间的数值。∙Attribute:默认情况下,这个元素是隐藏的,只有在波形上点击鼠标右键并在右键菜单中选择Visible Items>>Attribute才能看到。属性元素是可选的,它是可变数据类型的量,可以让你方便的捆绑自定义信息,比如设备编号、通道号等等。该元素不会影响波形数据的表现或Y与时间值。
波形与数组的差别
在很多情况下,你可以将波形想象为一维数组,在这个一维数组中除了保存数据外还附加了一些关于数据点的时间以及采样时间的信息。波形数据在模拟信号采集中经常被用到。
实际上你也可以使用数组来保存你的数据而不是使用波形数据。不过,波形数据比数组数据要有以下几个优势:∙t0的标识:如果没有t0的话,你就不知道你的数据是什么时候得到的。波形数据则会自动在t0中返回数据采集的日期以及时间,这提供了你的数据的现实世界的时间。
∙更易绘图:波形数据同样简化了数据曲线的绘制。在较老的LabVIEW版本中,你必须绑定初始点的值(x0)以及两点之间的间隔时间(delta x)到你的数据(Y数组),才能完成绘制曲线的工作。现在的波形数据就直接包括了这些元素,你只要将波形数据连线到曲线图控件就可以绘图了。
∙更简单的多曲线图:波形数据也简化了多曲线的曲线图的绘制。在旧版的LabVIEW中,每条曲线需要先将x0、delta x以及Y数组绑定之后,再用它们创建一个数组之后才能绘制一个多曲线的曲线图。如果使用波形数据,只要将一个波形数据的一维数组连线到一个曲线图控件就可以绘出多曲线的曲线图了。
波形函数
在LabVIEW的函数面板的Programming下的Waveform面板上全部都是用于波形数据操作的函数,如下图所示: