30.Labview如何读懂别人程序、修改程序?

之前写过一次教大家设计界面的文章,这次教大家如何学习别人的程序,和如何搭建一套适合自己的程序框架。
这里事先说明一下:要想搭好程序框架,一定要先把自己的系统搞清楚是干啥的,逻辑是什么! 这非常重要,是决定你程序能否写成的关键因素。

本文程序及更多福利资源请关注公众号:“软件领航站”



废话不多扯,直接说重点。

读懂、修改、搭框架

  • 1. 学习别人的程序
    • 1.1 读程序前准备
      • 1.1.1 明确系统的原理(硬件)
      • 1.1.2 明确软件的功能(软件)
    • 1.2 通过结构分析
    • 1.3 通过数据流分析
      • 1.3.1 探针的使用
      • 1.3.2 高亮的使用
  • 2. 修改程序
    • 2.1 小模块改变时要针对性强
    • 2.2 框架改变时使用复用性高的子vi

1. 学习别人的程序

Labview是一款基于数据流编程的软件,是面向图形化编程的语言。
知道这句话就够了,别的不用了解太多。

1.1 读程序前准备

要读一个程序,首先不能当愣头青吧?欲速则不达,不要老想着一下就读懂,得认真分析,首先读之前要掌握下面两个点

1.1.1 明确系统的原理(硬件)

因为这款软件往往伴随着与硬件之间的交互,一般作为Labview程序的话,就和仪器或者板卡通讯,如果和这两者通讯,往往都差不多,主要就两种状态:Labview通过电脑向仪器发送了什么?又通过电脑向仪器接收了什么?

这是由仪器的基本原理决定的。这里举个最简单的例子,下图是一个虚拟示波器的Labview程序。如果外部仪器需要我们的示波器发送给它一个触发信号,我们的示波器才能采集到他的信号值,那么首先虚拟示波器需要有个向外发信号的功能,并且发完信号再带一个采集信号的功能,采集到信号之后呢再用一个while循环实时刷新当前的信号数据,那么我们才能看到实时变化的外部信号。

在这里插入图片描述
那么本节我需要强调的是大家一定要首先把自己要进行通讯的那个仪器或者板卡的基本原理搞得非常透彻之后再说如何去写这个上位机程序,即:没有硬件就没有软件! 这是非常重要的一个逻辑思路。

1.1.2 明确软件的功能(软件)

在上一章节中我们明确了硬件的具体需求之后,我们就可以进行软件的开发和学习了。

①如果是只是读程序学习的话, 我建议大家直接上手操作一下软件看一下这个软件具体实现的什么编程功能,然后了解一下被控仪器的功能了解一下这个系统是干嘛的就可以了。

②如果是开发复杂系统的软件的话,建议大家在进行软件开发之前首先要画一个或者在自己脑海里构想出一个软件的具体逻辑框图,再去搭建这个系统,比如题主之前做的一个上位机采集的软件画了一个具体的原理逻辑图如下,当然大家也可以有自己适合自己的编程逻辑这里只是做建议:

在这里插入图片描述

1.2 通过结构分析

当我们具体的了解了系统及软件的功能后,就可以按照后面板来进行分析了。
我这里提到的结构指的是 Labview 后面板的循环结构、条件结构、顺序结构等这些结构类型。

这种类型的程序往往就是外边一个超级大的while循环里边套了各种类型的循环和结构体,这种程序最标准的说法就可以说成是:结构套结构。 如下图所示:
在这里插入图片描述
这种程序有个技巧是这样的:

只要这个结构内部的所有程序但凡有一根线或一个小节点当前的执行都没有结束,那么整个结构这一次都没有结束。这也就意味着while循环无法进入下次循环、顺序结构无法进入下一帧节、条件结构停留在当前条件分支直至分支内部的程序运行结束。

依据这个规范我们就可以一层一层的往内部分析了,可能某一个程序我们在一开始分析的时候很慢,然后只要沉住气一点点往里看慢慢的看就好,切勿心急。但是无论程序怎么变上面的那个标准是不会变的。

1.3 通过数据流分析

所谓数据流,我们可以把所有的函数和模块理解为一个个的泵,然后数据流就像水一样从泵里流来流去,泵起到的作用就是处理我们这些水比如说把水变细啊变粗啊这样的,我们的不同的接线就可以理解为粗细大小不一的水管。

有了这个想法我们就可以对程序进行分析了。
在这里插入图片描述
这类程序在了解最外部的结构的基础上,我们随着接线往右一点点的慢慢捋,慢慢的就把程序给李通了。
光有这两个基础技巧是不够用的我们还需要借助一些其他的工具,这些工具在我们读程序的时候是非常非常非常重要的!,这里说的就是探针和高亮。

1.3.1 探针的使用

在我们程序运行的时候或者在程序运行前我们可以在某条线上打上一个探针,探针会显示这根线内部的实时变化的数据的内容,①程序运行时, 直接鼠标放置在接线上点击左键就可以弹出探针,这个时候会出现一个探针窗口,帮我们把这根线的数据显示出来,如下图所示:
在这里插入图片描述

②程序未开始运行时, 在接线上点击鼠标右键,选择探针即可。

在这里插入图片描述
探针可以帮助我们在运行时查看哪个地方的数据流断了,如果数据流断了的话探针所在的那根线是不显示数据的!

1.3.2 高亮的使用

高亮可以将程序数据流放慢几十倍并让数据像水一样在线里流动,来帮助我们看一下具体的数据是如何运行和处理的,这个功能非常能帮助我们来理解数据流的原理。
具体位置如下:
在这里插入图片描述
我们给程序打上高亮之后,就可以看到程序是如何运行的,这两个工具都特别有用希望大家在读程序的时候一定要用上!

2. 修改程序

修改程序对于大家来说还是一个难点也是一个重点,难到什么程序还要大家来判断一下具体改的点到底多不多。这里我强调几个重要的点: 一、新要求的程序功能有哪些改变?;二有哪些子VI可以重复性使用? 那么掌握这两点就使值得修改程序的工作量大大减少。

2.1 小模块改变时要针对性强

这个程序改变伴随着大框架的改变或者是某个小模块的改变,如果是小模块的改变的话可能只需要修改某些子VI或循环就可以了;那么大模块的改变的话可能整个系统的逻辑都要受到影响,这就是比较麻烦的一个点。
如题主之前改过一次运动控制器的程序,要求将控制器的x轴由旋转轴变为平移轴,其实就是变更了运动控制器轴的地址和参数单位。因此直接去找需要变更的部分更改即可:

在这里插入图片描述
技巧就是:大致了解程序基本框架,针对变更的模块部分作出修改即可。

2.2 框架改变时使用复用性高的子vi

这一点适合于程序有较大修改的地方,因为我们编程时会习惯性的将复杂的VI设置为子VI以便于调用,一方面可以提高该模块的复用率,同时也可以减轻主程序的运行负担从而使主程序将重点聚焦在搭建框架上而子VI用来处理数据等。

那么程序有较大修改的这种情况其实我们可以先根据自己项目的需求搭建一些由结构组成的框架,之后然后将源程序中可以调用的子VI和模块直接复制到该控件中完成修改多,这是一个很复杂艰难的过程,并不是说程序修改有多难可能更需要集中注意力和较大的耐心才能完成。

在这里插入图片描述

那么本章就到这里,需要相关福利及编程插件的同学请关注微信公众号:

微信公众号:“软件领航站”

那么本章就到这里,谢谢大家的观看,下一章为大家讲解:如何搭建好一个系统框架!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我萧风啊

您的打赏是对我创作最大的鼓励~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值