labview在不同VI间传递波形(全局变量)

labview波形的本质

在明白labview波形的本质后就可以很明确怎样在labview间传递一个波形,labview中波形的本质是一个结构体(簇),其中有两个字段,一个二维数组(分别保存时间和对应的波形数据大小)、一个时间变量(保存波形的开始时间)。二维数组时波形的关键,而开始时间通常设置为unix时间戳或当前时间。
在这里插入图片描述

传递方法

背景介绍

在开始前有如下方案:

  1. 全局变量
  2. 生成波形文件在读取(竞态)
  3. 子VI(在主VI运行时,子VI无法手动控制运行,只能被动的等待调用)

这里我选择使用全局变量的方法。案例是现在有一个信号发生器、一个噪声发生器各在一个VI,然后将两个产生的波形传入滤波器VI,并需要进行加法操作。注意以下两个参数和对应的要点:

  • 采样率
  • 波形合成是加入的时间
    1.保证信号发生器采样率与噪声发生器采样率一致
    2.保证使用函数合成波形时,间隔时间是采样率的倒数

过程分析

1.信号发生器生成波形
在这里插入图片描述
2. 此时通过探针可以看到传递过去的变量是一个一维数组(保存一个采样周期1s内的数值)包含波形的值,但是去掉了原二维数组的时间维度和起始时间。当然这里最好的方法是拆开簇,然后通过三个全局变量传递,我为了简化项目难度只传递值过去。
在这里插入图片描述
3. 在接收端使用build wave函数合成为波形,注意delta t要是采样率的倒数(采样是1s一采样,也就是采样周期为1s)
在这里插入图片描述

函数介绍

https://zone.ni.com/reference/en-XX/help/371361R-01/lvwave/build_waveform/
https://zone.ni.com/reference/zhs-XX/help/371361R-0118/lvwave/build_waveform/

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值