LabVIEW编程规范

article/2025/7/6 5:25:37

LabVIEW编程规范

编写LabVIEW程序应该遵循哪些规范,使得编写的程序在运行效率、可读性和可维护性方面得到显著提高?

和本文编程语言类似,在LabVIEW中设计程序框图时也应该养成良好的编程习惯,使得设计出的图形化程序外观美观、便于理解,以便提高工作效率,减少不必要的失误。而且编写的程序很有可能在后期因为增加新的功能、优化程序执行效率等原因需要对其进行修改,这时候美观整洁的框图、模块化的VI、简洁的代码会使修改工作变得很简单。想反,混乱的连线、拥挤不堪的控件和不好的编程样式会使得修改一个程序有时候变得异常艰难,甚至导致所有开发工作重头开始。因此,如果在一开始设计程序的时候就遵循一些良好的编程规范,那么程序的可读性和可维护性就会高得多,这将起到事半功倍的效果。在本系统开发过程中,同样遵循一些基本的原则:

1、前面板、程序框图中控件的对齐。LabVIEW中提供了控件的对齐工具栏,包括左右居中对齐,控件等间距分布、统一控件的长度和宽度等,利用对齐工具栏,可以将前后面板的控件以非常有序的方式组织起来。如图1中前面板控件采用右对齐并且控件之间等间距放置,程序框图中输入控件右对齐,并尽量保持控件垂直方向等间距。

编辑

添加图片注释,不超过 140 字(可选)

图1 :控件对齐

2、LabVIEW是基于数据流的,框图中的连线表示数据流的走势方向。因此节点间连线应清晰直观,尽量使用从左到右,自上而下的方式进行布局。而且要尽量避免不必要的弯曲连线,避免在结构边框下或重叠的对象之间进行连线,因为这些连线的部分连线段可能会被遮挡而影响程序的可读性。对于长距离的走线,应该添加文字注释。图2为框图走线整理前后对比:

编辑

添加图片注释,不超过 140 字(可选)

图2:优化框图连线

图3中为长距离走线加上必要的文字注释:

编辑切换为居中

添加图片注释,不超过 140 字(可选)

图3:为长距离走线加上文字注释

3、为每一部分实现特定功能的框图结构添加有意义的注释,如图4所示,While循环、Case结构每一分支对应的使用场合:

编辑

添加图片注释,不超过 140 字(可选)

图4:为Case结构每一分支添加注释

4、给每个子VI一个明确的图标,并且在其属性的Documentation一栏描述该VI的用途。图标一般采取文字加图形的方式。图5为一些子VI示范图标:

编辑

添加图片注释,不超过 140 字(可选)

图5:给每个子VI明确的图标

给每个VI的Documentation一栏加上描述信息,如图6所示:

编辑

添加图片注释,不超过 140 字(可选)

图6:给VI添加描述信息

5、在程序的适当位置添加错误处理,也可以对可预见的错误进行自定义,这样既增强程序的稳定性,也可以方便问题的快速定位和排查。尽量通过错误输入输出簇来控制代码的先后顺序,而避免使用顺序结构。图7表示在程序的各个不同功能部分添加自动错误处理:

编辑

添加图片注释,不超过 140 字(可选)

图7:自动错误处理

图8表示对可预见的错误进行自定义错误处理:

编辑

添加图片注释,不超过 140 字(可选)

图8 用户自定义错误处理

图9中用错误簇代替顺序结构来控制数据流的先后顺序:

编辑

添加图片注释,不超过 140 字(可选)

图9 用错误簇控制代码执行顺序

6、尽量使主VI的框图简洁,当涉及到对主VI的前面板控件多处属性修改而占用较大框图面积时,通过传引用的方式将这一部分代码放在子VI中进行。如图9(a)中将Table控件的引用传入子VI,在子VI中修改Table控件属性如图9(b):

编辑

添加图片注释,不超过 140 字(可选)

图9:通过引用修改控件属性

7、优化VI运行性能。有几个常用的工具可以分析所编写程序的性能,如VI性能与内存使用工具(VI Performance and Memory)、显示缓冲区分配(Show Buffer allocations)、VI整体评估工具(VI Metrics),使用这些工具使你对编写的程序有一个整体的把握,如内存分配是否合理、前面板控件是否过多、是否使用了过多的属性结点、是否存在大数组的强制类型转换、是否某个子VI存在明显的耗时代码等等。

编辑

添加图片注释,不超过 140 字(可选)

图10:VI性能与内存使用工具

编辑

添加图片注释,不超过 140 字(可选)

图11:显示缓冲区分配

编辑

添加图片注释,不超过 140 字(可选)

图12:VI评估工具

另外还有一些LabVIEW编程规范,如簇的使用尽量采用严格自定义类型、避免程序框图过大超过整个屏幕、用条件For循环代替While循环、严格控制局部变量和全局变量的使用、避免GUI轮循等。合理使用这些编程规范,对于编写大型程序,提高程序的可读性和可维护性具有非常重要的意义。

更详细的内容,参加如下附件的介绍。

LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序

上文中提到的例子和资料,均在word中的附件里,可点击下载。进一步了解,可联系们。

LabVIEW编程规范 - 北京瀚文网星科技有限公司 (bjcyck.com)


http://chatgpt.dhexx.cn/article/gNZr1f5b.shtml

相关文章

LabVIEW编程入门笔记

CSDN话题挑战赛第2期 参赛话题:学习笔记 学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐&a…

LabVIEW学习入门(二)

一、Labview编程特点 基本无需code,是图形编程,选择部件,然后将其连接起来并行性运行,而非顺序执行基于数据流运行 二、Labview编程特点举例说明 实现顺序执行可借助“程序框图”页的"Programming"中的"Structu…

LabVIEW编程基础:事件结构框架编程

LabVIEW又称为G语言,简单易学、形象直观,采用图形化的编程方式,是专为测试、测量和控制应用而设计的系统工程软件。 前面几篇文章依次讲解了LabVIEW中顺序顺序结构、条件结构及循环结构的编程方法,下面再讲一种与软件界面响应有关…

LabVIEW编程基础:条件结构编程

目录 一、条件结构框架特点 二、示例1:布尔型的条件输入 三、示例1运行效果 四、示例2:数值型的条件输入 五、示例3:枚举型的条件输入 六、示例3:运行效果 七、示例4:字符串型的条件输入 八、示例4&#xff1a…

啊这!终于不用敲代码了?Labview牛逼!带你轻松入门Labview~

文章目录 一、Labview的三大特征1、图形编程2、并行性运行3、基于数据流 二、Labview编程小tips1、快捷键!2、善于利用Labview中的“即使帮助”3、运行之后某个控件或函数部分闪了?!——出错了!4、我喜欢有代码洁癖的程序员&#…

noip201506 Message 信息传递

试题描述: 有 n 个同学(编号为 1 到 n )正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为 i 的同学的信息传递对象是编号为 T_i 的同学。游戏开始时,每人都只知道自己的生日…

Codevs 4511 信息传递

题目描述 Description 有个同学(编号为 1 到)正在玩一个信息传递的游戏。在游戏里每人都有一个固定的信息传递对象,其中,编号为的同学的信息传递对象是编号为的同学。游戏开始时,每人都只知道自己的生日。之后每一轮中…

消息的传递

我们的郭嘉大大在曹操这过得逍遥自在,但是有一天曹操给了他一个任务,在建邺城内有 N 个袁绍的奸细,将他们从 1 到 N 进行编号,同时他们之间存在一种传递关系,即若C{i,j}1,则奸细 i 能将消息直接传递给奸细 …

简单知识——跨页面信息传递

背景 一个简单的数据查询功能,列表页面有“查看详情”按钮,跳转详情页面时列表的一条记录信息需要传递到详情页面;而详情页面有“返回”按钮,返回的同时也需要将原列表的查询条件回显。 跳转方式直接是 window.location.href&am…

信息传递的多样化的挑战

信息传递的障碍,是造成竞争被动的重要原因。因此,要使有用的信息得以正确传递,必须克服这种传递障碍。 方法之一是减少组织机构层次和信息传递的环节,尽量做到信息的直接贯通。 方法之二是采取双向传递方式。传统的传递往往是高一…

java实现信息传递

在过去,我们无数次实现了代码的本机运行,一行行的代码在我们的屏幕上飞舞,最终形成种种不同的结果,但是,这些都止于自己的计算机上,在这个万物互联的世界里,通信,是不可缺少的一环&a…

【PyG入门学习】三:信息传递机制

1.理论基础 将普通的卷积过程推广到非规则数据领域一般是通过邻域聚合或者信息传递机制。 x i ( k − 1 ) ∈ R F x^{(k-1)}_i∈R^F xi(k−1)​∈RF表示在第k-1层节点i的节点特征, e j , i ∈ R D e_{j,i}∈R^D ej,i​∈RD表示从节点j到节点i的边的特征&#xff08…

[易飞]录入信息传递设置信息

通常我们在查询相关单据单身中会有附带上一个单别的关联单据,比如采购发票单身有进货单单别、单号。系统默认做了超连接。 可有些时候我想查看这个品号信息的参数呢?是否可以自定义呢? 今天是礼拜一,打开某聊天群:就显…

100种思维模型之信息传递思维模型-028

人与人之间存有 认知偏差和理解偏差 ,信息在传递过程中会 衰减、失真以及再加工 ! 信息传递思维模型 ,一个有助于 提高信息传递质量 的思维模型。下面从三个方面进行介绍, 何谓信息传递思维模型、信息传递思模型生活中的运…

沟通管理--关于信息的有效传递和维护

沟通管理作为项目管理核心知识领域之一,在项目管理和团队协作中的作用毋庸置疑。沟通管理涉及的范围很广,本文从沟通的重要性和模型出发,主要从信息传递和信息维护这两个方面对沟通管理进行阐述。 一. 关于沟通 下面这张图描绘了西方文化中…

HC官方资料介绍

中国区市场招商联系方式:13867974424

HC-SR04驱动记录

文章目录 1、工作原理2、读取数据方式3、驱动记录 1、工作原理 常用的HC-SR04模块如下所示: 引脚说明: 引脚说明VCC电源,常用5vTrig控制端Echo接收端GND地 使用说明: 控制端发送一个10us的高电平脉冲,之后再接收口…

【STM32篇】驱动HC_SR04超声波测距模块

CH_SR04 一、简介 1.产品特点 HC_SR04超声波测距模块可提供2cm-400cm的非接触式测距感测功能,测距精度高达3mm;模块包括超声波发射器,接收器与控制电路。 基本工作原理: (1)采用IO口TRIG触发测距&#xff0…

HC-05蓝牙模块配置

目录 1、连接蓝牙模块a.蓝牙模块通过USB转TTL连接电脑b.打开串口助手,波特率设置为38400c.检验是否连接成功 2、配置波特率3、修改密码4、设置主从模式5、设置蓝牙连接模式6、查询自身地址7、添加配对蓝牙地址8、测试 1、连接蓝牙模块 a.蓝牙模块通过USB转TTL连接电…

HC-06蓝牙模块使用方法

接线方式: 配套资料: 链接:https://pan.baidu.com/s/1_8-d1LoHuhpIBC9Ygu4aJQ 参考: (1272条消息) HC-05/06蓝牙模块的原理及使用方法_hc-05蓝牙模块原理图_小小少年123的博客-CSDN博客 注意:蓝牙灯闪烁分析 如果…