当前位置:首页 > 测试测量 > 测试测量
[导读]昨天在《学习LabVIEW(二)——操作.NET泛型类》给出的代码,实际上是有错误的。按照我们的设想,首先调用了Add,将Key-Value对“eleven”-11放入了Dictionary中,然后调用TryGetValue,查找Key

昨天在《学习LabVIEW(二)——操作.NET泛型类》给出的代码,实际上是有错误的。按照我们的设想,首先调用了Add,将Key-Value对“eleven”-11放入了Dictionary中,然后调用TryGetValue,查找Key: "eleven"对应的Value。所以查询必然应该是成功的。然而,反复执行昨天的代码,偶尔会出现查询失败的情况,如下图所示:


明明已经用Add添加了Key: "eleven",为什么有时候会查询失败呢?原因在于我们使用了错误的观念编写LabVIEW程序。
传统的计算机语言,本质上以指令的流动为核心编写代码,写出来的代码按照顺序被一条一条执行。但是像LabVIEW和Simulink这样的图形化编程语言,是以数据的流动为核心构造程序的。当程序以数据的流动为核心构造时,有时指令的执行先后顺序就不那么明显了,甚至在不知不觉中一些指令会自动的被并行化执行。关于这一点我曾经咨询过NI的客服,他们曾明确表示过,LabVIEW的运行时内部会自动利用多线程来处理可以并行执行的函数,无需用户的干预。这是一个非常好的特性,而且也是非常符合图形化编程这种以数据流动和核心的编程方式的特点的。
然而,当我们还是带着以前的以指令为核心编程的观念画LabVIEW程序时,就会不知不觉犯下错误。昨天写入和查询Dictionary的代码段如下图所示:


看起来,从左到右执行的话,似乎Add是先于TryGetValue的。这实际上是图形的绘制方式迷惑了我们。如果简单调整一下各个节点的位置,如下图所示:


以数据流动为核心的LabVIEW就不一定会先执行哪一个函数了。如果先执行的是TryGetValue,就会出现查询失败的情况。
现在应该怎么解决这个问题呢?LabVIEW以数据流动为核心的编程思想,一方面使自动化的并行编程称为可能,另一方面,使“顺序执行”成了一种需要显示声明的结构;这与传统的语言是非常不同的,传统语言写代码,一行一行的码,一行一行的被执行,自然就是顺序结构。
我们在工具箱的编程这一栏中找到了用以表示顺序结构的工具:


用这个平铺式顺序结构将需要先于TryGetValue调用的部分框起来,如下图所示:


这样一来,只有框内所有的动作执行完成之后,数据才会继续往下流动,于是再也没有出现查询失败的情况了。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

下面的项目包括一个机器人完成各种任务。这是通过在机器人上使用和实现各种传感器来完成的。机器人能够在一个封闭的区域内移动,收集球,并在最后的一个点上放下球。机器人将绘制出它去过的位置和该区域内的障碍物。

关键字: 传感器 机器人 LabVIEW

NI提供的软件包经济省时,不仅帮助开发人员节省时间,还为创客提供了新的机遇

关键字: LabVIEW 自动化测试系统

强大的图形化编程工具使整个测试和测量过程的各个方面实现可视化

关键字: LabVIEW 图形化编程工具

摘要:对于每一型新机试飞,或者是重大的研究性试飞和验证试飞,都必须实施遥测监控。现基于TTS(TextToSpeech)语音合成技术,结合飞行试验遥测监控系统的不足,利用TTS引擎在LabVIEW开发环境下设计并实现了遥...

关键字: 飞行试验遥测监控系统 TTS LabVIEW

在科研以及应用软件领域,LabVIEW和MATLAB作为比较常用的2款工具,相信很多人都用过吧。简单的概括一下,LabVIEW侧重测试测量和数据采集,MATLAB侧重科学计算和数据分析。

关键字: LabVIEW matlab 混合编程

摘要:利用单片机和虚拟仪器LabVIEW在PC端设计了温湿度测量及控制系统,用于温湿度数据监测。该系统上位机为PC端监控界面,下位机为单片机,单片机采集温湿度数据,并将采集到的数据通过串口发送给监控界面进行监测和管理。该...

关键字: DHT11 LabVIEW 单片机

摘要:当前闭环步进电机在自动化设备中的应用越来越广泛,故为了进一步满足闭环步进电机的应用需求,采用LabVIEW上位机+运动控制卡+驱动器模块的控制方案进行了多轴运动系统的设计,通过设计的上位机软件实现闭环步进电机的实时...

关键字: 闭环步进电机 精度测试 LabVIEW

摘要:为满足某扭矩检测试验标准要求,基于LabView设计开发了一款扭矩检测装置,该装置能检测某类零部件的断裂力矩,满足试验标准要求,其他零部件的扭矩也可在该装置上检测。类似的扭矩装置可参考该装置进行设计。

关键字: 伺服电机 LabVIEW PLC

在下述的内容中,小编将会对LabVIEW的相关消息予以报道,如果LabVIEW是您想要了解的焦点之一,不妨和小编共同阅读这篇文章哦。

关键字: LabVIEW 测试测量 NI

一直以来,LABVIEW都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来LABVIEW的相关介绍,详细内容请看下文。

关键字: LabVIEW 测试测量 测试仪器
关闭