LabVIEW论坛
直播中

小方方

11年用户 598经验值
擅长:可编程逻辑 测量仪表 模拟技术
私信 关注
[讨论]

搭建基于NI硬件的播放程序

`
    基于NI硬件的播放程序

                               1

接触到labview是偶然也可以说是必然。

大学毕业后进入公司就开始从事研发测试相关的工作,最初接触到的设备是BK2012B&K PulseAP等设备。当时感觉PulseAP等可拖拉出来的测试分析配置界面比bk2012按钮操作方便了太多。当时就在想如果能自定义分析算法就更棒棒的了。

恰在那时接触到了listen公司的soundcheck,接着又顺藤摸瓜了解到了labview,这么一学习起来真是一发不可收拾,感觉从来没有一种语言(cc++VBmatlab等)可以像labview这么直观易掌握(入门容易),且像搭积木一样高效得建立一套测控系统,随心所欲得实现了自己想要的功能。

接下来呢,我会就我个人的学习历程来分享一系列实用的知识和案例,希望可以给大家激发哪怕一丁点的思维小水花,抛劣砖引碧玉喽。

2

这一节主要讲解搭建基于NI硬件的激励采集。分三种常见场景来讲解,并会匹配相

应项目案例。

  • 基于NI硬件的仅激励


客户要求:软件做出一个小信号发生器界面,可发正弦,方波,三角波,电压和频率可调,电压幅度可到10V

类似这种: 1.sc播放.jpg                              

搭建过程:
      2.1 选硬件

考虑到客户使用环境是微型扬声器,对底噪,信噪比等要求较高,且要求输出电压较高,故选择PCI-4461/PXI-4461两种声卡中一种,参数如下:
2. NI板卡.jpg

      2.2程序搭建_设计前面板界面:
       有几个要注意的原则:

(1)尽量与用户所熟悉的实物保持一致,如上图,客户比较熟悉soundcheck那种信号发生器界面,我们设计界面上也尽量往其靠拢;

(2)与windows/Mac等的一些快捷方式尽量保持一致,如windowsenter常用于运行,ESC代表中止操作,则激励发声的快捷键可设置为enter,退出的快捷键可设定为ESC

(3)界面的风格要贴合使用场合和人群,如果你是为小朋友设计legolabview结合的小游戏,则界面可色彩鲜艳一些,动画可适当多一些;如果软件是用于工业测控场合,则界面不可过于花哨,建议以黑白灰为主色调;

(4)其余方面,如功能相关的元素放置在一起等等

我为客户设计出的界面如下所示:

3. 我设计信号发声器.jpg
     2.3 程序搭建_设计程序框图框架:

NI自带了各种框图模式,有基于事件结构的,有基于状态机的,有基于队列结构的,看客们小手轻击打开labview-新建(N),就可跳出如下对话框,我就不对此一一赘述了。
4. NI范例.jpg


我要赘述的是:建议大家建立基于自己使用习惯的程序框图模板。在新建(N)-用户,点击浏览,可添加属于自己的程序框图模板。如果是一个较大型的程序,里面调用诸多运行子VI,则这种基于自己模板的编程习惯可以大大缩短开发过程,并能保持风格的一致性。
5. 用户自定义.jpg

我个人比较喜欢队列,状态机,事件结构三种结构结合使用,如下信号发生器的框图:
6. 程序框架.jpg


      其中,强烈建议状态机(枚举类型)做成自定义枚举类型,这样可以将更改自动更新到所有选择分支。
    2.4 程序搭建_硬件播放

打开NI自带的范例,选择硬件输出电压-连续输出范例,我们在此基础上做修改:
7. NI范例硬件.jpg


删除触发,获取实际采样率,任务等待等配置,如下:
8. 紧凑程序框图.jpg


由于程序中有播放和静音两种状态,我们将播放任务,停止任务分别放在不同的分支里,这样播放时可进入播放分支,静音时可进入停止任务分支,将硬件播放关闭,如下:




    9. 硬件配置.jpg
9. 播放.jpg
10.播放停止.jpg

最后发福利:但凡有留言或者留言将本文中的文章分享到其他公众号的,留下邮箱,我会考虑把源代码和操作说明都发给你。小仙女们,靓仔们燥起来。

   

` 公众号.jpg

回帖(5)

小方方

2017-9-3 07:06:02
看在码字这么多的份上,求个大大的赞。
举报

小方方

2017-9-3 14:10:18
为什么审核还没被通过捏
举报

小方方

2017-9-8 00:58:12
看来没人感兴趣啊,那就自己留言加油下。
举报

h1654155602.8193

2017-9-8 15:06:07
感谢分享,很有用!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分