2
LabVIEW中的时标、波形以及动态数据
2010-01-20 21:55:18 admin 浏览:3995次 【

  在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面板上全部都是用于波形数据操作的函数,如下图所示:

波形函数

  这里的获取波形元素(Get Waveform Components)以及创建波形(Build Waveform)函数分别用来获取或设置模拟、数组波形和数字值的波形元素。

获取波形元素

  获取波形元素函数可以返回你需要的波形元素。你可以通过在该函数节点上面右键点击并选择Add Element并左键点击来选择需要的波形元素。这个函数是可扩展的。

  创建波形

  创建波形函数可以用来创建一个新的波形或者是修改一个现有波形。如果不链接输入到waveform输入端,这个函数就会按照输入的数据来创建一个新的波形。如连接了一个波形到这个输入端,这个函数就会按照你输入的参数修改这个波形。这个函数也是可扩展的。

  这两个函数都是可复用的,可以对模拟波形、数字波形以及数字数据进行操作。函数的waveform输入端会根据输入波形的不同而自动转换。

  除此之外,还有很多对波形进行操作的函数,可以参考LabVIEW的自带帮助文件或例子来自己熟悉。

动态数据(Dynamic Data)

  几乎所有的用于采集、分析、操作以及生成信号的Express VI都使用了一个特殊的数据类型传送信号数据,这个数据类型就是动态数据。简单地说,动态数据就是一个或多个通道的波形数据。实际上,你也可以将动态数据想象为只是一个简单的模拟波形的数组,用一个智能的线所表示。不过,在实际的使用中,动态数据确实也是非常智能的,比如将几个动态数据合并为一个动态数据的操作是非常简单的。

  在LabVIEW中,将一个动态数据连线到另一个动态数据,LabVIEW会自动的添加一个合并信号的函数将这两个信号线合并为一个信号线。

  对动态信号操作的函数都位于Express>>Signal Manipulation子面板中,大家可以通过帮助文件来熟悉这些函数的使用。

2 条评论
查看更多评论
  • 键盘快捷键描述按住Shift并单击选择多个对象;将对象添加到当前选择。按住Ctrl单击切换单个对象以加入或保留当前选择。方向键一次将所选对象移动一个像素。Sh..

    浏览:5205次 评论:0
    2021-02-06 09:23:02
  • Modbus是全球第一个真正用于工业现场的总线协议,采用的是主从原则,其物理接口主要有串口和以太网口两种。本文主要介绍LabIEW与PLC的通信实现方式。在进行通..

    浏览:12296次 评论:0
    2019-09-22 12:58:51
  • 对实时数据或者历史存储数据进行滤波及校准处理,可以将采样数据转化为具有实际意义的物理量,为用户后续操作提供方便。滤波校准功能的程序设计如图1所示,本..

    浏览:4578次 评论:0
    2019-09-21 16:32:59
  • 在进行LabVIEW程序设计时,一个VI中可以包含一个或若干个子vi。这些子vi是被直接放置在程序框图中,习惯上称这些子vi为:静态链接子vi。这些子vi在VI载入的同..

    浏览:11235次 评论:0
    2018-12-17 15:28:30
  • 新建一个LabVIEW项目,或者打开一个已经建好的项目,项目中包含主vi,子vi以及自定义控件等,确保vi运行正常。    在项目浏览器的-程序生成规范->..

    浏览:9014次 评论:0
    2018-07-18 10:55:21
作者专栏
  • sltang

    注册时间:2024-12-21 15:45:59

  • samhuang63

    注册时间:2024-12-20 09:42:58

  • csq663347

    注册时间:2024-12-05 16:34:39

  • guohuiming

    注册时间:2024-11-14 08:49:44

  • 机飞弹打

    注册时间:2024-11-11 13:46:27

Copyright@http://nilab.com.cn all rights reserved 备案号:京ICP备12043750号-1
Powered by qibosoft V9.0 Code © 2003-2017 qibosoft
LABVIEW之家 QQ:181237912; email:Labviewzj@qq.com 项目合作 微信及手机:18510627229