labview从入门到出家5(进阶篇)--程序调试以及labview函数库的运用
跟了前面几章的操作流程,相信大家对labview有了一定的认识。其实只要了解了labview的编程思路,再熟悉地运用各个变量,函数以及属性,那么我们就可以打开labview的大门了。跟其他编程语言一样,好的编程思维再加上一个好用的程序框架,那么我们就可以做出很多有趣的功能了。之前看到有人在git上发过一个用labview实现的超级玛丽单机游戏,还是可以跑得了的,你们也可以(手动滑稽),不过还是用在工控和自动化领域会常规(正常)一些。
再好的的教程也需要大家经常动手,何况是这"入门到出家"的教程,大家看完后可以多熟悉一下其他功能,比如数值,数组,字符串之类的使用。本教程不一一细说所有函数和变量的使用,意在给大家提供学习labview的编程思路,后期进阶篇也会提供一个好用的框架给大家(亲测好用),并附上之前写过的一些程序(单片机控制,板卡控制,数据库增删查改)。在提供这些资料之前,我们先讲一下程序如何调试,这对后期的状态机以及各种编程技巧有很大的帮助,它可以协助我们理解程序。
1、程序调试-----程序断点+单步调试+探针
中断大家都不陌生,只要有编程经验的都知道断点是常用的调试手段。如单片机编程中,我们在某一段程序段中加入断点,程序运行到这一行指令的时候停止,然后我们再进行单步调试,查看变量值或者查看寄存器的值。在labview中,调试思路也是通用的。

图中灰色框是顺序结构,右键程序框图->编程->结构->平铺式顺序结构,鼠标移到顺序结构右侧边,右键选择“向后添加帧”。程序逻辑从左往右,先执行左侧顺序框,再执行右侧的。在程序框图中添加程序逻辑如上图所示。
上图左侧的红点为断点,添加方式:鼠标移动到上图红点处,右键选择 断点->设置断点。最后再加上探针(探针用来观察数据线上的数据),鼠标移动到两个加法器的输出,右键选择探针。如下图所示。

探针1显示的是第一个加法输出值,探针2显示第二个加法器的输出值。
点击运行按键后看调试效果。其中1是运行,2是循环运行(一般不用),3是终止程序,4是暂停或继续执行程序,5是高亮显示(重点划起来,考试要考),6是单步进入,7是单步跳出。

点击运行,顺序框直闪,说明大顺序框进入了“断点”,然后点击“单步进入”,加法器在闪,说明执行位置在加法器上,再点击单步进入,探针1出现了输出的数值,说明逻辑按照我们期望的输出正在执行。同样的操作一直下一步,直到探针全部输出。

最后点击“暂停或继续执行程序”继续执行程序,程序结束。以上是基本的调试方式,或者我们在输出的地方直接添加一个显示控件也可以,不过还不如添加探针来得方便一些。但这种调试的前提是我们知道程序逻辑以及程序的走向时采用的调试方式,如果是一个大程序,而且我们并不熟悉内部逻辑的时候要怎么调试,怎么看程序逻辑的走向呢。这时就需要另一个调试工具“高亮显示”了。
2、程序调试-----高亮显示(5号位)

点击5高位的高亮显示,如果图标亮了,则说明进入了高亮显示模式。这时运行程序我们发现程序会出现一些高亮区域以及一些灰色区域,灰色的说明还没执行到,高亮的表示程序正在运行,而且运行的速度非常慢,可以看到每个数据在逻辑线上流动,数据经过每个节点都会显示该数据的值,高亮期间我们也可以随时设置断点以及探针,用以进一步调试观察程序逻辑和输出。

可能还有其他的调试方式,但是目前为止,我所用到的调试方式基本就这两个,也已经够用了。有了这两种调试方式,大家可以大胆地调用Labview的函数库,然后一个一个地看他们的使用方式,以后我们想要什么功能,直接调用响应的labview的函数库就可以了,labview的函数可是非常强大易用的。下面就大致讲讲怎么学习使用Labview的函数库。
3、labview函数库的运用
之前写加法程序的时候,大家可能已经发现我们右键点击程序框图的时候有很多的函数以及结构了。结构其实基本上会用while循环结构,for循环结构,条件结构以及事件结构就可以了,剩下的就是熟悉Labview函数库的用法了,熟悉Labview函数库后就我们就可以实现各种各样的上位机功能了。这里不一一讲解所有函数的使用,只给大家一个学习了解函数库的方法。

拿“写入文本文件”的函数开刀,程序框图中右键,编程->文件I/O->写入文本文件,拖拉至程序框图。再点击程序框图工具栏中的问号,然后把鼠标移到“写入文本文件”的函数上,此时会出现该函数的“即时帮助标签”。


这时继续点击即时帮助中下方的蓝色问号

整个Labview帮助手册就出来了,并定位到这个函数上。我们可以从上面的描述中了解函数的功能,以及它的输入输出项。最后拉到最下方,有一个查找范例的图标,点击后会弹出对应的使用范例。



范例有助于我们了解和使用函数,运行时再配上我们上面说的单步调试和高亮显示等方式就可以清晰地看到程序逻辑了。这样,我们可以开始去了解Labview函数库中所有函数的使用方法了,有一些不好理解的我们可以找度娘呀。大家尽可能地熟悉和了解相关的函数和结构,有些东西只要知道有这玩意就可以了,有需要的时候再详细了解用法也不迟。后面几章老曹会给大家一个好用的框架,这样用Labview就能做出不少工具了。再提示一句,前期跟着教程走就可以了,后期有个初步的了解了,有兴趣了,再去啃书升华一下,这样离人生巅峰,迎娶白富美就又近一步了。
原创不易,一键三连啦!
labview从入门到出家5(进阶篇)--程序调试以及labview函数库的运用的更多相关文章
- labview从入门到出家6(进阶篇)--移位寄存器的使用
前面介绍了如何熟悉和使用Labview自带的库函数以及调试方式,大家后期基本可以凭借这两个方式从入门到出家了,哈哈,后面就靠各位同仁99%的努力了.这篇为啥要讲移位寄存器呢,主要是之前做的项目和经验告 ...
- labview从入门到出家9(进阶篇)--串口通讯
Labview在工控领域,如产线,实验室等环境用得较多,其中与仪器通讯控制的方式有串口(RS232,RS485,TTL),GPIB,网口,CAN等,其中串口在仪器还有单片机控制中用来调试居多.(很 ...
- labview从入门到出家8(进阶篇)--简单好用的状态机
labview的状态机类似于一个软件框架的基本单元,好的软件框架和软件思路采用一个好的状态机,就如虎添翼了.这章给大家讲一个本人常用的一个状态机,基本上以前的项目都是建立在这个状态机上完成的,当然网上 ...
- labview从入门到出家7(进阶篇)--队列的使用
本节简单讲解队列在Labview中的使用,队列你可以认为就是一组先进先出的数据列表,在Labview中常用来缓存和传递数据.用了这么久的队列,个人认为有个方便的地方在于数据传递的把控,不管是局部变量还 ...
- labview从入门到出家1--第一个加法程序
概述: Labview在众多编程语言中排名靠后,显然在当今互联网,物联网时代并非主流语言.但是俗话说行行 出状元,即便不是立身于某个主流的领域,用好了依旧可以独领风骚,而且Labview对于硬件出身的 ...
- 动态方式破解apk进阶篇(IDA调试so源码)
动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/qq_21051503/article/details/74907449 下面就说关于在IDA中And ...
- Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码)
Android逆向之旅---动态方式破解apk进阶篇(IDA调试so源码) 来源 https://blog.csdn.net/jiangwei0910410003/article/details/51 ...
- labview从入门到出家4--用事件结构实现运算功能
使用事件结构可以快速定位响应界面的操作事件,如按下,拖动,双击的事件.基本上我们所要实现的所有功能,都可以通过条件结构+事件结构去实现,比如后面进阶篇将会讲到的状态机就是通过条件结构和事件结构组成的. ...
- Android动态方式破解apk进阶篇(IDA调试so源码)
一.前言 今天我们继续来看破解apk的相关知识,在前一篇:Eclipse动态调试smali源码破解apk 我们今天主要来看如何使用IDA来调试Android中的native源码,因为现在一些app,为 ...
随机推荐
- C++ 类成员指针
C++的类成员指针是一种奇葩的指针. 假设现在我们要表示一个三维的点,现在有两种定义方式: struct point1{ int x, y, z; }; struct point2{ int c[3] ...
- 通过 SingleFlight 模式学习 Go 并发编程
最近接触到微服务框架go-zero,翻看了整个框架代码,发现结构清晰.代码简洁,所以决定阅读源码学习下,本次阅读的源码位于core/syncx/singleflight.go. 在go-zero中Si ...
- HashMap源码理解一下?
HashMap 是一个散列桶(本质是数组+链表),散列桶就是数据结构里面的散列表,每个数组元素是一个Node节点,该节点又链接着多个节点形成一个链表,故一个数组元素 = 一个链表,利用了数组线性查找和 ...
- 痞子衡嵌入式:大话双核i.MXRT1170之在线联合调试双核工程的三种方法(IAR篇)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1170下在线联合调试双核工程的方法(基于IAR). 前段时间痞子衡写过一篇<双核i.MXRT1170之单独在线调试从 ...
- 跟我学Python图像处理丨获取图像属性、兴趣ROI区域及通道处理
摘要:本篇文章主要讲解Python调用OpenCV获取图像属性,截取感兴趣ROI区域,处理图像通道. 本文分享自华为云社区<[Python图像处理] 三.获取图像属性.兴趣ROI区域及通道处理 ...
- web渗透学习目录
一,基础学习 01.基础学习 [[编码总结]] [[JSON三种数据解析方法]] [[js加密,解密]] [[Internet保留地址和非保留地址.内网和公网.VNC和UltraVN]] 代理 [[S ...
- Redis源码漂流记(二)-搭建Redis调试环境
Redis源码漂流记(二)-搭建Redis调试环境 一.目标 搭建Redis调试环境 简要理解Redis命令运转流程 二.前提 1.有一些c知识简单基础(变量命名.常用数据类型.指针等) 可以参考这篇 ...
- 用 Python 远程控制 Windows 服务器,太好用了!
在很多企业会使用闲置的 Windows 机器作为临时服务器,有时候我们想远程调用里面的程序或查看日志文件 Windows 内置的服务「 winrm 」可以满足我们的需求 它是一种基于标准简单对象访问协 ...
- Mysql limit 优化优化
MySql 性能到底能有多高?用了php半年多,真正如此深入的去思考这个问题还是从前天开始.有过痛苦有过绝望,到现在充满信心! MySql 这个数据库绝对是适合dba级的高手去玩的,一般做一点1万篇新 ...
- Vulnhub-napping
1.信息收集 先用arp-scan探测出靶机地址 arps-scan -l 显然靶机地址 10.1.1.106,然后利用nmap进行详细信息收集 nmap -A 10.1.1.106 可以看到,目标的 ...