我和LabVIEWword版——一个NI工程师十年的编程经验1-5027.在 LabVIEW 中使用常量定义.doc

我和LabVIEWword版——一个NI工程师十年的编程经验1-5027.在 LabVIEW 中使用常量定义.doc

ID:36002433

大小:161.50 KB

页数:3页

时间:2019-05-02

我和LabVIEWword版——一个NI工程师十年的编程经验1-5027.在 LabVIEW 中使用常量定义.doc_第1页
我和LabVIEWword版——一个NI工程师十年的编程经验1-5027.在 LabVIEW 中使用常量定义.doc_第2页
我和LabVIEWword版——一个NI工程师十年的编程经验1-5027.在 LabVIEW 中使用常量定义.doc_第3页
资源描述:

《我和LabVIEWword版——一个NI工程师十年的编程经验1-5027.在 LabVIEW 中使用常量定义.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、在LabVIEW中使用常量定义如下图所示,在C语言里,使用#define来定义一个常数是非常基本的用法。直接使用数字,时间一长,就不只到这个数字是哪来的了。而且,这种方法也便于修改在程序中多处使用的常量的值。在C++一般是用const来达到同样的目的。图1:C语言中的常量定义我以前在LabVIEW中编程,还从没注意过这个问题。一般哪里要用一个常数,直接就放一个constant在那里。如图2。图2:在LabVIEW中使用常量的最普遍方法以前编写的LabVIEW程序都比较小,一般是一个人开发的,所以这样写,也没有太大的麻烦。现在编写的程序规模越来越大,最近做的一个项目,VI数量已经上千了

2、,有4个人参与编程。程序规模大了,不规范就很难维护。所以开始考虑这个问题。但是LabVIEW里面没有类似的功能,不知道为什么以前没人提意见?下面提出几种不算太完美,但有所进步的解决方案。一种简单的替代方法是使用typedefinecontrol,自定义一个Ringcontrol。关于TypeDef的详细信息,可以参考《用户自定义控件中Control,TypeDef.和StrictTypeDef.的区别》。把要使用的常数作为Ring的值,给他个有意义的文字标签。在需要时用常数的地方,把这个带typedefine的ring常数放上去,而不是直接放数值常量。这样就解决了上面提到的一个问题:

3、可以有自带的文字说明。如图3所示。图3:利用TypeDefRing的解决方案但是这样做还是有很多缺陷。首先是统一修改数值的问题。在自定义Ring中修改某一项的值,相关的常量不会跟着一起更新;还有一个缺陷是Ringcontrol不支持多个标签是用同一数值;另外Ringcontrol也没办法像C语言中一样使用表达式定义值。一个改进版的解决方案是使用EnumTypeDef把所有常量名字列出来,再写一个VI用于得到常量的真实值,如图4所示。这样解决了不同标签可以返回相同值的问题,也可以自动更新常量值,但是使用表达式还是不方便。图4:利用EnumTypeDef和subVI我目前在程序中使用的方

4、法是,把所有要用到的常量,全部做成全局变量。全局变量可以用Global,但我喜欢用VI全局变量。就是把变量记载shiftregisiter中。然后,用一个初始化的VI负责在程序运行开始时初始化所有的全局变量。这样,以后如果需要更改某一常数值,就只需改这一个VI就可以了。不过,现在回想,还是用Global好一些。我以前测试过,Global读写的速度比VI要慢很多,所以我不喜欢Global。但是,常量值在程序中用的并不频繁,所以速度不是个问题。但是数量很多,用VI表示就不太合适了,每个常数都要创建一个VI非常费事。另一个缺点是如果在后面板换用一个常量,还要再拖另一个VI上来,很麻烦。用G

5、lobal会好一些,但还不是让我太满意。要想有一个完美的解决办法,只能再造一个新东西了。@#$%^&*(此处属公司机密,删去256字)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。