高亮显示执行过程

LabVIEW语言的一大特点就是数据流驱动,程序中每一个节点(包括函数、子VI、各种结构等)只有在获得其全部输入数据后才能够被执行,而且只有当其功能完全时节点的输出才是有效的。
通过数据线连接各个节点,从而控制程序的执行顺序,这也形成了同步运行的数据通道,而不像文本语言程序那样受到顺序执行的约束。因此,数据流动驱动模式使得LabVIEW应用程序的开发不仅更为简洁高效,更可以自然而有效地支持多线程并行执行。
使用工具栏上的高亮显示执行过程按钮可以切换VI是否以高亮方式运行,即是否显示数据流在框图中的流动过程。在该按钮变为高亮执行状态时,VI运行速度会变得缓慢,并以流动的橙色小圆点代替数据在线上的流动过程。再次单击此按钮,程序又恢复正常的运行方式。这种状态非常有助于编程者在调试时正确理解程序的执行过程。
下面通过一个汽车车速测量系统的例子来学习高亮显示执行过程的操作方式。在设计汽车车速测量系统程序的过程中,需要通过计数器获得车轮的转速,由于车轮的直径已知,可以通过计算得知当前的行驶速度,再判断是否超速(以100km/h为准),最后以LED指示灯的开/关状态表示判断结果。
步骤一:新建一个VI。
步骤二:创建前面板。使用鼠标右键单击前面板空白处,在弹出的控制面板中,选择“新式”→“数值”→“数值输入控件”,作为车轮转速的输入控件;选择“系统”→“数值”→“系统数值”控件,作为已知的车轮直径数据,单位为cm;选择“新式”→“数值”→“仪表”控件,作为车速的显示仪表;选择“新式”→“布尔”→“圆形指示灯”控件,作为显示是否超速的指示标记。
步骤三:编辑程序框图。打开程序框图,通过车轮每分钟的转速乘以60来表示车轮每小时的转速,通过车轮的直径乘以3.14计算其车轮周长;每小时的转速乘以车轮周长就可计算出汽车的时速,然后将单位转换为公里。由于汽车的速度是波动的,因此添加一个随机生成的函数,乘以5表示向汽车增加一个0~5公里/小时的波动速度。最后添加一个“大于”函数,比较当前速度是否大于100,比较结果可作为判断汽车是否超速的条件。
步骤四:保存程序。在前面板的数值控件中输入相应的数据,运行数据,可发现当转速到660左右时,超速指示灯开始闪烁,车速表会在100左右波动。
步骤五:打开工具栏中的高亮显示执行过程按钮,运行程序。可以发现程序运行速度明显变慢,并且在程序框图中可看到数据的传输过程。


高亮显示:

探针与断点诊断

调试运行VI时,可以通过工具选板直接选取探针工具,用于显示流过数据线的即时数据值,或者通过点击鼠标右键,在出现的快捷菜单中选择“探针”选项,都会弹出“探针监视窗口”对话框,可在其中添加探针,同时在连线上标示一个探针号。

如果从右键快捷菜单中选择“自定义探针”选项,则可以生成具有更多功能的自定义探针,自定义探针具有更复杂的数据探测和流程控制功能,比如特殊条件的断点功能以及波形图显示数据的功能等。
程序调试过程中经常会将断点操作与探针工具配合使用。断点的创建方法为:调试运行VI前,从VI工具选板中选取断点操作,在数据线、节点或子VI上单击就可添加断点,或者在数据线、节点或子VI上点击鼠标右键,在弹出的快捷菜单中选择“断点”下的“设置断点”选项,添加断点。
添加断点的数据线会出现一个红色圆点,添加断点的节点或者子VI四周会出现红色实线,用来代表断点。需要清除断点时,再次用断点工具单击该现象,或者从右键快捷菜单中选择“断点”下的“清除断点”选项即可。
程序运行后,数据流流至任一断点时,会暂停执行;如果断点设置在函数、节点或子VI上,会不断闪烁引起用户注意,此时如果单击工具栏上的暂停按钮,程序就会运行到下一个断点或直到程序运行结束。用户可配合探针工具观察变量数据,或者使用单步调试工具继续执行程序。
下面介绍如何利用“波形生成”函数产生一个带噪声的正弦波,并利用不同的探针来观察线路总数据,学习探针在程序调试中的具体应用。
步骤一:创建一个新VI。打开程序框图,在“函数”面板选择“编程”→“结构”→“While循环”,使用鼠标右键单击右下角循环条件的输入端,选择“创建”下的“输入控件”。
步骤二:添加噪声仿真信号。在程序框图中单击鼠标右键,在“函数”面板上选择“编程”→“波形”→“模拟波形”→“波形生成”→“仿真信号”函数,将所选函数放置在循环体内,会弹出下图所示的对话框。在对话框中勾选“添加噪声”复选框,单击“确定”按钮即可。


步骤三:编辑前面板。打开前面板,在“控件”面板中选择“新式”→“图形”→“波形图”选项,将所选显示控件放在前面板上即可。
步骤四:编写程序框图。从“函数”面板中选择“编程”→“数值”→“随机数(0-1)”函数,将其放置在程序框图中。将随机数连接至仿真信号的“幅值”输入端,并将“仿真信号”函数的“正弦与均匀噪声”输出端与波形图输入端连接起来。
步骤五:创建通用探针。在连至波形图的数据线上单击鼠标右键,在弹出的快捷菜单中选择“自定义探针”下的“通用探针”选项,即可创建一个通用探针,如图所示。通用探针只有显示数值的功能。

步骤六:创建带条件双精度探针。删除原探针,在连至随机数的数据线上单击鼠标右键,从弹出的快捷菜单中选择“自定义探针”下的“带条件双精度探针”选项,如图所示。探针“数据”页可实时显示数据值,“条件”页可设置断点条件,在满足任何一个勾选中的条件时程序暂停。

步骤七:创建控件型探针。删除原探针,在连至随机数的数据线上单击鼠标右键,从弹出的快捷菜单中选择“自定义探针”→“控件”→“新式”→“图形”→“波形图表”选项,如下图所示。探针可以实时以图表的形式显示数据,适用于观察数据的实时趋势。

本例中为了观察数据及信号分别创建了三种最常见的探针,实际上在自定义探针菜单项里还有很多形式灵活的自定义探针,适用于不同场合。

LabVIEW中VI的运行和调试相关推荐

  1. c语言如何编译及调试,中如何编译运行及调试C语言程序.doc

    中如何编译运行及调试C语言程序 VC++6.0中如何编译运行调试C语言程序 1.启动VC++6.0 (如下图) 2.单个源文件的编译运行 例如下面的源代码 #include void main() { ...

  2. c语言vi运行编译文件,VC++6.0中如何编译运行及调试C语言程序文件.docx

    VC++6. 0中如何编译运行调试C语言程序 1?启动VC++6. 0 (如下图) [5>R?*16 00 P"! tptl tub go□賦星糸理技件□中出融Fz " 口仍 ...

  3. vc60如何输入c语言,vc60中如何编译运行及调试c语言程序.pdf

    VC++6.0中如何编译运行调试 C语言程序 1. 启动VC++6.0 (如下图) 2. 单个源文件的编译运行 例如下面的源代码 #include void main() { int i,sum=0; ...

  4. VC2010中显示开始运行(不调试)快捷按钮

    2015年3月24日22:43:15 新安装的VC2010中,没有 开始运行(不调试)快捷按钮,对于我这种习惯了鼠标点点 就运行程序的人,有点不爽. 自己查找了下,发现可以添加到工具栏上. 方法: 1 ...

  5. labview如何弹出提示窗口_以实例跟我学如何将LabVIEW的VI程序打包成安装程序

    当我们在LabVIEW平台上辛辛苦苦编写完成测试软件程序时,一般很少情况将程序源代码分发给用户,而是将VI程序制作成可执行的安装包程序,供用户安装使用. 那么,如何将LabVIEW中的VI程序打包成安 ...

  6. 第三方数据采集卡在LabVIEW中使用Express VI简化编程范例

    什么是Express VI? Express VI是NI LabVIEW中提供的快捷的编程方法,用很少量的操作替代复杂.底层的代码,常见的如:DAQ助手ExpressVI和仿真信号Express VI ...

  7. LabVIEW从命令行运行VI

    LabVIEW从命令行运行VI 按照以下语法,从命令行运行VI(可在Windows中选择开始»运行): "C:\Program Files(x86)\National Instruments ...

  8. labview运行excel宏_【2017年整理】LabVIEW中Excel报告生成功能开发.pdf

    [2017年整理]LabVIEW中Excel报告生成功能开发 维普资讯 一 6O一 仪 表 技 术 2005年第 3期 LabVIEW 中Excel报告生成功能开发 汪翠英,裴 锋 (江西省电力试验研 ...

  9. LabVIEW主VI前面板中显示或使用多个子VI

    LabVIEW主VI前面板中显示或使用多个子VI 想在程序中连接一个或多个子VI的前面板,但是当调用它们时,每个子VI在计算机屏幕上显示为一个新窗口.那么怎么能让每个子VI作为主VI前面板的一部分进行 ...

最新文章

  1. java将从键盘输入的时间格式化_java 时间格式化中的模式字母
  2. [react] react是哪个公司开发的?
  3. javascript中数组的22种方法
  4. 让PHP开发者事半功倍的十大技巧
  5. SQL2008无法连接到(local),该账户当前被锁定,所以Sa用户登陆失败
  6. 计算机科学考试题目,附录A 计算机科学与技术学科综合考试人工智能真题
  7. oracle中ak约束,Oracle自定义聚集函数
  8. python自动化办公要学多久-深圳用python进行办公自动化都需要学习什么知识呢,谁来说下...
  9. 脱口秀在尝试处理一件难事
  10. 云计算技术 基础知识整理
  11. Xmodem、Ymodem和Zmodem协议是最常用的三种通信协议
  12. MPPT算法(恒定电压、扰动观察、电导增量)介绍与实现过程
  13. 被反爬虫搞到心态崩溃
  14. 41个机器学习面试题
  15. Validation校验属性格式
  16. 订单信息无法识别,建议联系卖家。 错误码:INVALID_PARAMETER
  17. 时序分解股票数据并部署在微信公众号上
  18. 2D/3D视图变换、canvas画布
  19. pta 天梯赛的善良(C语言实现)
  20. 中国民营企业的8+10种死法

热门文章

  1. 学习加密(四)spring boot 使用RSA+AES混合加密,前后端传递参数加解密(方式一)
  2. 【工具类-- posman导出的接口JSON 转为 jmx】
  3. 调用摄像头拍照和选择相册
  4. html+写入数据库+JDBC更改数据库
  5. 从Buck-Boost到Flyback
  6. 诸葛亮86字的家训 影响一生!
  7. linux nobody用户是什么 nobody用户介绍
  8. 2017级算法模拟上机准备篇(一)
  9. 活跃用户的测算方法与用户黏性指数的提出
  10. Linux磁盘空间进行扩容--增大卷组空间