NI LabVIEW 编程规范
- LabVIEW程序编写应该遵循哪些规范?
- 遵循这些规范有什么好处?
- 具体细节是什么?
针对上面三个问题一一解答:
一.LabVIEW程序编写应该遵循哪些规范?
(1)前面板、后面板控件整齐,尽可能在一个界面内显示所有控件。
(2)数据连线横平竖直,有长走线,需添加注释。
(3)程序代码添加注释,尤其是重要功能模块
(4)VI图标有含义,VI有描述信息
(5)程序有错误处理机制
(6)避免过多的属性节点,大数组的强制类型转换。
二.遵循这些规范有什么好处?
(1)提高可读性
(2)提高可维护性
(3)提高程序运行效率
三.具体细节是什么?
(1)前面板、程序框图中控件的对齐。LabVIEW中提供了控件的对齐工具栏,包括左右居中对齐,控件等间距分布、统一控件的长度和宽度等,利用对齐工具栏,可以将前后面板的控件以非常有序的方式组织起来。如图1中前面板控件采用右对齐并且控件之间等间距放置,程序框图中输入控件右对齐,并尽量保持控件垂直方向等间距。
图1 :控件对齐
(2)LabVIEW是基于数据流的,框图中的连线表示数据流的走势方向。因此节点间连线应清晰直观,尽量使用从左到右,自上而下的方式进行布局。而且要尽量避免不必要的弯曲连线,避免在结构边框下或重叠的对象之间进行连线,因为这些连线的部分连线段可能会被遮挡而影响程序的可读性。对于长距离的走线,应该添加文字注释。图2为框图走线整理前后对比:
图2:优化框图连线
图3中为长距离走线加上必要的文字注释:
图3:为长距离走线加上文字注释
(3)为每一部分实现特定功能的框图结构添加有意义的注释,如图4所示,While循环、Case结构每一分支对应的使用场合:
图4:为Case结构每一分支添加注释
(4)给每个子VI一个明确的图标,并且在其属性的Documentation一栏描述该VI的用途。图标一般采取文字加图形的方式。图5为一些子VI示范图标:
图5:给每个子VI明确的图标
给每个VI的Documentation一栏加上描述信息,如下图所示:
图6:给VI添加描述信息
(5)在程序的适当位置添加错误处理,也可以对可预见的错误进行自定义,这样既增强程序的稳定性,也可以方便问题的快速定位和排查。尽量通过错误输入输出簇来控制代码的先后顺序,而避免使用顺序结构。图7表示在程序的各个不同功能部分添加自动错误处理:
图7:自动错误处理
图8表示对可预见的错误进行自定义错误处理:
图8 用户自定义错误处理
图9中用错误簇代替顺序结构来控制数据流的先后顺序:
图9 用错误簇控制代码执行顺序
(6)尽量使主VI的框图简洁,当涉及到对主VI的前面板控件多处属性修改而占用较大框图面积时,通过传引用的方式将这一部分代码放在子VI中进行。如图9(a)中将Table控件的引用传入子VI,在子VI中修改Table控件属性如图9(b):
(7)、优化VI运行性能。有几个常用的工具可以分析所编写程序的性能,如VI性能与内存使用工具(VI Performance and Memory)、显示缓冲区分配(Show Buffer allocations)、VI整体评估工具(VI Metrics),使用这些工具使你对编写的程序有一个整体的把握,如内存分配是否合理、前面板控件是否过多、是否使用了过多的属性结点、是否存在大数组的强制类型转换、是否某个子VI存在明显的耗时代码等等。
图10:VI性能与内存使用工具
图11:显示缓冲区分配
图12:VI评估工具
总结.
在一开始设计程序的时候就遵循一些良好的编程规范,那么程序的可读性和可维护性就会高得多,这将起到事半功倍的效果
还有一些LabVIEW编程规范,如簇的使用尽量采用严格自定义类型、避免程序框图过大超过整个屏幕、用条件For循环代替While循环、严格控制局部变量和全局变量的使用、避免GUI轮循等。合理使用这些编程规范,对于编写大型程序,提高程序的可读性和可维护性具有非常重要的意义
NI LabVIEW 编程规范的更多相关文章
- NI Labview 将图形化系统设计用于肿瘤治疗
NI Labview 将图形化系统设计用于肿瘤治疗 - Jeff Stevens, Sanarus 挑战:在严格的规则条例范围内保持设计过程的情况下,为通过FDA认证的等级II医疗设备进行设计.原型并 ...
- 华为C语言编程规范
DKBA华为技术有限公司内部技术规范DKBA 2826-2011.5C语言编程规范2011年5月9日发布 2011年5月9日实施华为技术有限公司Huawei Technologies Co., Ltd ...
- (转)C++ 编程规范
转载地址:http://www.cnblogs.com/len3d/archive/2008/02/01/1061902.html C/C++编码规范 今天人们越来越明白软件设计更多地是一种工程,而不 ...
- Batsing的网页编程规范(HTML/CSS/JS/PHP)
特别注意!!!我这里的前端编程规范不苟同于Bootstrap的前端规范. 因为我和它的目的不同,Bootstrap规范是极简主义,甚至有些没有考虑到兼容性的问题. 我的规范是自己从编程实践中总结出来的 ...
- JAVA编程规范(下)
JAVA编程规范(下) 2016-03-27 6. 代码的格式化 6.1 对代码进行格式化时,要达到的目的 1. 通过代码分割成功能块和便于理解的代码段,使代码更容易阅读和理解: 2. ...
- JAVA 编程规范(上)
2016-03-20 J120-CHARLIEPAN JAVA 编程规范(上) 1. 应用范围 本规范应用于采用J2EE规范的项目中,所有项目中的JAVA代码(含JSP,SERVLET,JA ...
- 使Eclipse符合Java编程规范
编程规范是很重要的东西,能让团队的代码易于阅读和维护,也便于日后的功能扩展. 工欲善其事必先利其器!作为一个Java程序员,与Eclipse打交道可能是一辈子的事情.将Eclipse设置为符合公司编程 ...
- flex+AS3编程规范
flex+AS3编程规范 Flex+AS3编码规范 http://www.cnblogs.com/jiahuafu/ 1. 缩写: 尽量避免使用缩写,使用缩写时尽量和Flex保持一致.但要记住一 ...
- Python编程规范(PEP8)
Python编程规范(PEP8) 代码布局 缩进 对于每一次缩进使用4个空格.使用括号.中括号.大括号进行垂直对齐,或者缩进对齐. 制表符还是空格? 永远不要将制表符与空格混合使用.Python最常用 ...
随机推荐
- MUI - 关于百度定位
关于百度定位 这是官方定位的解释:geolocation 地图插件配置 我在问答里面找到了这位童鞋的百度定位,地址变更提醒 *** 不过,童鞋倒是给具体的示例啊,木有~~~~(>_<)~~ ...
- HSV转换
HSV中H为色调(Hue).S为饱和度(Saturation).V为亮度(Value)三个分量构成 RGB和HSV颜色空间中进行图像处理的案例,HSV颜色空间分离图像中每一个像素的值或V分量.这个分量 ...
- JIRA管理员、用户密码重置
-- Jira数据库中,用户信息都存放在表 cwd_user中 -- 切换到jiar数据库 use jiradb; -- 更改密码为sphere update cwd_user set credent ...
- iptables SNAT与伪装
Source NAT(SNAT)的主要應用,是让同一內部網路上的多部主机,可共用同一条Internet实体连線.直接与Internet相连的闸道器,可使用SNAT(搭配连線追蹤)来来改写內部网络与In ...
- H3C 单播与广播
- Example-09-01
#define _CRT_SECURE_NO_WARNINGS #include <cstdio> #include <cstring> int min(int a, int ...
- JS精度问题,解决方案 math.js
JS精度问题 Vue中使用 解决方案 math.js npm install mathjs import { create, all } from 'mathjs' const config = ...
- 2018-8-3-WPF-读取硬件序列号
title author date CreateTime categories WPF 读取硬件序列号 lindexi 2018-8-3 11:8:2 +0800 2018-8-2 19:28:6 + ...
- PHP开源框架Laravel的安装与配置
编将带领大家一步步在Windows 7平台下搭建该框架: 工具/原料 windows 7 Composer Laravel最新框架 方法/步骤 1 安装composer.安装之前要确保目录:w ...
- Capistrano:自动完成多台服务器上新版本的同步更新,包括数据库的改变
https://baike.baidu.com/item/Capistrano/6844928?fr=aladdin Capistrano是一种在多台服务器上运行脚本的开源工具,它主要用于部署we ...