logo资料库

我和labview.pdf

第1页 / 共219页
第2页 / 共219页
第3页 / 共219页
第4页 / 共219页
第5页 / 共219页
第6页 / 共219页
第7页 / 共219页
第8页 / 共219页
资料共219页,剩余部分请下载后查看
1
组合 1
1.我和 LabVIEW 序言
2.如何学习 LabVIEW
3.工程资源管理器
4.如何创建和使用 LabVIEW 中的 LLB 文件
5.如何使用 VI 的重入属性(Reentrant)
6.用户自定义控件中 Control Type Def 和 Strict Type Def 的区别
7.调整控件和函数面板的首选项
8.在文件夹下直接创建新的 VI
9.图标编辑器上的鼠标双击技巧
10顺序结构
11.选择结构
12.事件结构
13.循环结构
14.定时结构
15.缓存重用结构
16.LabVIEW 中的泛型容器
17.循环运行某个时间后退出
18.循环结构的反馈节点
19.LabVIEW 中的数字型数据 1 - 控件和常量
20.LabVIEW 中的数字型数据 2 - 运算
21.LabVIEW 中的数字型数据 3 - 数值的单位
22.在字符串中显示多种字体
23.几种简单的测试程序流程模型
24.用 LabVIEW 编写 Wizard 类型的应用程序 1 (LabVIEW 6.1 之前)
25.用 LabVIEW 编写 Wizard 类型的应用程序 2 (LabVIEW 6.1 ~ 7.1)
26.用 LabVIEW 编写 Wizard 类型的应用程序 3 (LabVIEW 8.0)
27.在 LabVIEW 中使用常量定义
28.多态VI
29.全局变量
30.传引用
31.利用循环条件结构控制几个任务的执行顺序
32.LabVIEW 的调试环境
33.断点和探针
34.其它常用调试工具和方法
35.LabVIEW 代码中常见的错误
36.查看一段代码的运行时间
37.如何调试 LabVIEW 调用的DLL
38.怎样根据错误代码得到错误信息
39.G 语言
40.LabVIEW 是编译型语言还是解释型语言
41.数据流驱动的编程语言
42.传值和传引用
43.VI 中的数据空间
44.用户界面设计 1
45.用户界面设计 2 - 界面的一致性
46.用户界面设计 3 - 界面元素的关联
47.用户界面设计 4 - 帮助和反馈信息
48.用户界面设计 5 - 限制
49.Caption 和 Label 的书写规范
50.美化程序 - 隐藏程序框图上的大个 Cluster
51.制作不规则图形的子VI图标
52.界面设计技巧 1 - 利用 LabVIEW 自带控件
53.界面设计技巧 2 - 装饰和背景图片
54.界面设计技巧 4 - 改进界面实现方法
55.界面编程技巧 5 - 使用绘图控件
56.LabVIEW 程序的内存优化 1
57.LabVIEW 程序的内存优化 2 - 子 VI 的优化
58.LabVIEW 程序中的线程 1 - LabVIEW 是自动多线程语言
59.LabVIEW 程序中的线程 2 - LabVIEW 的执行系统
60.LabVIEW 程序中的线程 3 - 线程的优先级
61.LabVIEW 程序中的线程 4 - 动态连接库函数的线程
62.LabVIEW 的运行效率 1 - 找到程序运行速度的瓶颈
63.LabVIEW 的运行效率 2 - 程序慢在哪里
64.LabVIEW 对多核 CPU 的支持
65.VI Server (VI 服务器)
66.后台任务
67.在 LabVIEW 中实现 VI 的递归调用
68.VB Script 打开一个VI
69.调用动态链接库 1 - 动态链接库导入工具
70.调用动态链接库 2 - CLN 的配置选项
71.调用动态链接库 3 - 简单数据类型参数的设置
72.调用动态链接库 4 - 结构型参数的设置
73.调用动态链接库 5 - 作为函数返回值的字符串为什么不用在 VI 中先分配内存
74.调用动态链接库 6 - LabVIEW 中对 C 语言指针的处理
75.如何调试 LabVIEW 调用的DLL
76.为什么在CLN节点中,会自动配置某些DLL函数的参数信息
77.利用LabVIEW工程库实现面向对象编程
78.模块接口 API 的两种设计方案
79.LabVIEW 面向对象程序设计的简介
80.面向对象与数据流驱动的结合
81.LabVIEW 中的类
82.一个 XControl 的实例
83.用 XControl 实现面向组件的编程
84.开发 XControl 1 - 设计
85.开发 XControl 2 - 创建
86.开发 XControl 3 - 实现功能控件
87.开发 XControl 4 - 外观功能VI
88.开发 XControl 5 - 其他功能 VI
89.开发 XControl 6 - 属性
90.开发 XControl 7 - 方法
91.开发 XControl 8 - 事件
92.开发 XControl 9 - 使用 XControl
93.估算项目工时
94.Palette API
我和 LabVIEW:一个 NI 工程师的十年编程经验 阮奇桢 著 第〇章:序 我和 LabVIEW 序言----------------------------------------------------------------------------------------------------------5 如何学习 LabVIEW -----------------------------------------------------------------------------------------------------------7 第一章: LabVIEW 的编程环境 工程资源管理器---------------------------------------------------------------------------------------------------------------9 如何创建和使用 LabVIEW 中的 LLB 文件 -------------------------------------------------------------------------12 如何使用 VI 的重入属性(Reentrant)---------------------------------------------------------------------------------13 用户自定义控件中 Control, Type Def. 和 Strict Type Def. 的区别 ----------------------------------------------16 调整控件和函数面板的首选项 -------------------------------------------------------------------------------------------17 在文件夹下直接创建新的 VI ---------------------------------------------------------------------------------------------19 图标编辑器上的鼠标双击技巧--------------------------------------------------------------------------------------------20 第二章:简单程序结构 顺序结构 ----------------------------------------------------------------------------------------------------------------------21 选择结构 ----------------------------------------------------------------------------------------------------------------------24 事件结构 ----------------------------------------------------------------------------------------------------------------------26 循环结构 ----------------------------------------------------------------------------------------------------------------------30 定时结构 ----------------------------------------------------------------------------------------------------------------------33 缓存重用结构 ----------------------------------------------------------------------------------------------------------------34 LabVIEW 中的泛型容器 --------------------------------------------------------------------------------------------------37 循环运行某段时间后退出 -------------------------------------------------------------------------------------------------39 循环结构的反馈节点 -------------------------------------------------------------------------------------------------------41 第三章:控件、常量和运算 LabVIEW 中的数字型数据 1 - 控件和常量 --------------------------------------------------------------------------43 LabVIEW 中的数字型数据 2 - 运算 -----------------------------------------------------------------------------------45 LabVIEW 中的数字型数据 3 - 数值的单位 --------------------------------------------------------------------------49 在字符串中显示多种字体 -------------------------------------------------------------------------------------------------52 电子菜鸟园www.dzcny.com整理
第四章:常用的程序结构 几种简单的测试程序流程模型 -------------------------------------------------------------------------------------------53 用 LabVIEW 编写 Wizard 类型的应用程序 1 (LabVIEW 6.1 之前) -------------------------------------------55 用 LabVIEW 编写 Wizard 类型的应用程序 2 (LabVIEW 6.1 ~ 7.1) --------------------------------------------57 用 LabVIEW 编写 Wizard 类型的应用程序 3 (LabVIEW 8.0) ---------------------------------------------------59 用 LabVIEW 编写 Wizard 类型的应用程序 4 (LabVIEW 8.2 之后) --------------------------------------------- 在 LabVIEW 中使用常量定义-------------------------------------------------------------------------------------------62 多态 VI -----------------------------------------------------------------------------------------------------------------------66 全局变量----------------------------------------------------------------------------------------------------------------------69 传引用-------------------------------------------------------------------------------------------------------------------------73 利用循环条件结构控制几个任务的执行顺序 ------------------------------------------------------------------------77 第五章:调试 LabVIEW 的调试环境 ----------------------------------------------------------------------------------------------------78 断点和探针 ------------------------------------------------------------------------------------------------------------------81 其它常用调试工具和方法 ------------------------------------------------------------------------------------------------84 LabVIEW 代码中常见的错误 -------------------------------------------------------------------------------------------87 查看一段代码的运行时间 ------------------------------------------------------------------------------------------------91 如何调试 LabVIEW 调用的 DLL---------------------------------------------------------------------------------------92 根据错误代码得到错误信息----------------------------------------------------------------------------------------------93 第六章:深入理解 LabVIEW G 语言------------------------------------------------------------------------------------------------------------------------94 LabVIEW 是编译型语言还是解释型语言-----------------------------------------------------------------------------96 数据流驱动的编程语言----------------------------------------------------------------------------------------------------98 传值和传引用----------------------------------------------------------------------------------------------------------------99 VI 中的数据空间-----------------------------------------------------------------------------------------------------------101 第七章:编写优美的代码 用户界面设计 1 -----------------------------------------------------------------------------------------------------------103 用户界面设计 2 - 界面的一致性--------------------------------------------------------------------------------------104 用户界面设计 3 - 界面元素的关联-----------------------------------------------------------------------------------107 用户界面设计 4 - 帮助和反馈信息-----------------------------------------------------------------------------------110 电子菜鸟园www.dzcny.com整理
用户界面设计 5 - 限制--------------------------------------------------------------------------------------------------112 Caption 和 Label 的书写规范------------------------------------------------------------------------------------------114 隐藏程序框图上的大个 Cluster-----------------------------------------------------------------------------------------115 制作不规则图形的子 VI 图标--------------------------------------------------------------------------------------------119 界面设计技巧 1 - 利用自带控件---------------------------------------------------------------------------------------121 界面设计技巧 2 - 装饰和背景------------------------------------------------------------------------------------------125 界面设计技巧 3 - 用户自定义控件------------------------------------------------------------------------------------ 界面设计技巧 4 - 改进方案---------------------------------------------------------------------------------------------128 界面设计技巧 5 - 绘图控件---------------------------------------------------------------------------------------------131 第八章:编写高效率的代码 LabVIEW 程序的内存优化 1-------------------------------------------------------------------------------------------134 LabVIEW 程序的内存优化 2 - 子 VI 的优化----------------------------------------------------------------------139 LabVIEW 程序中的线程 1 - LabVIEW 是自动多线程语言------------------------------------------------------145 LabVIEW 程序中的线程 2 - LabVIEW 的执行系统---------------------------------------------------------------148 LabVIEW 程序中的线程 3 - 线程的优先级-------------------------------------------------------------------------150 LabVIEW 程序中的线程 4 - 动态连接库函数的线程-------------------------------------------------------------151 LabVIEW 的运行效率 1 - 找到程序运行速度的瓶颈-------------------------------------------------------------154 LabVIEW 的运行效率 2 - 程序慢在哪里----------------------------------------------------------------------------156 LabVIEW 对多核 CPU 的支持----------------------------------------------------------------------------------------158 第九章:VI 服务 VI Server (VI 服务)---------------------------------------------------------------------------------------------------162 后台任务---------------------------------------------------------------------------------------------------------------------163 在 LabVIEW 中实现 VI 的递归调用--------------------------------------------------------------------------------165 VB Script 打开一个 VI---------------------------------------------------------------------------------------------------167 第十章:调用动态链接库 动态链接库导入工具------------------------------------------------------------------------------------------------------168 CLN 的配置选项----------------------------------------------------------------------------------------------------------169 简单数据类型参数的设置------------------------------------------------------------------------------------------------172 结构型参数的设置---------------------------------------------------------------------------------------------------------174 作为函数返回值的字符串为什么不用在 VI 中先分配内存------------------------------------------------------176 电子菜鸟园www.dzcny.com整理
LabVIEW 中对 C 语言指针的处理-----------------------------------------------------------------------------------177 调试 LabVIEW 调用的 DLL-------------------------------------------------------------------------------------------179 为什么在 CLN 节点中,会自动配置某些 DLL 函数的参数信息------------------------------------------------180 第十一章:面向对象编程(LVOOP) 利用 LabVIEW 工程库实现面向对象编程---------------------------------------------------------------------------181 模块接口 API 的两种设计方案-----------------------------------------------------------------------------------------186 LabVIEW 对面向对象的支持--------------------------------------------------------------------------------------------188 面向对象与数据流驱动的结合-------------------------------------------------------------------------------------------190 LabVIEW 中的类-----------------------------------------------------------------------------------------------------------192 第十二章:XControl 一个 XControl 的实例----------------------------------------------------------------------------------------------------197 用 XControl 实现面向组件的编程------------------------------------------------------------------------------------- 开发 XControl 1 - 设计---------------------------------------------------------------------------------------------------202 开发 XControl 2 - 创建---------------------------------------------------------------------------------------------------203 开发 XControl 3 - 实现功能控件---------------------------------------------------------------------------------------205 开发 XControl 4 - 外观功能 VI-----------------------------------------------------------------------------------------209 开发 XControl 5 - 其他功能 VI-----------------------------------------------------------------------------------------211 开发 XControl 6 - 属性---------------------------------------------------------------------------------------------------213 开发 XControl 7 - 方法---------------------------------------------------------------------------------------------------214 开发 XControl 8 - 事件---------------------------------------------------------------------------------------------------215 开发 XControl 9 - 使用 XControl--------------------------------------------------------------------------------------216 第十三章:项目管理 估算项目工时---------------------------------------------------------------------------------------------------------------217 Palette API--------------------------------------------------------------------------------------------------------------------219 电子菜鸟园www.dzcny.com整理
我和 LabVIEW 序言 当我开始在键盘上敲打出这句话的时候,我已经使用 LabVIEW 7 年了。7 年的时间,就算天赋平平 也可以积攒下一箩筐可供参考的经验了。所以我打算利用今后的闲暇时间写一些这方面的东西,既可以同 大家交流,也是作为自己这七年工作的总结。 还是在上大学的时候,有一次老师让编写一段软件,用来模拟一个控制系统:给它一个激励信号,然 后显示出它的输出信号。那时我就想过,可以把每一个简单的传递函数都做成一个个小方块,使用的时候 可以选择需要的函数模块,用线把它们连起来,这样就可以方便地搭建出各种复杂系统。 后来,我第一次看到别人给我演示的 LabVIEW 编程,就是把一些小方块用线连起来,完成了一段程 序。我当时就感觉到,这和我曾经有过的想法多么相似啊。一种亲切感油然而生,从此我对 LabVIEW 的 喜爱就一直胜过其他的编程语言。 LabVIEW 的第一个版本发布于1986年,是在 Macintosh 机上实现的,后来才移植到了 PC 机上,并且 LabVIEW 从未放弃过对跨平台的支持。这也给 LabVIEW 带来了一些麻烦。最明显的就是 LabVIEW 开发 环境的界面风格。它总是与一般的 Windows 应用程序有些格格不入:面板是深灰色的,按键钮是看起来 别别扭扭的 3D 模样。还有一些可能不太容易发现:比如对于整数的存储,LabVIEW 即便是运行在 x86系 统上,采用的也是高地址位存高位数据(big-ending)。这与我们习惯了的 x86 CPU 使用的格式正相反,这往 往给编写存取二进制文件带来了不多不少的麻烦。 我接触过的最早的 LabVIEW 版本是4.0版,发布包是一个装有十几张三寸软盘的大盒子。安装的时候 要按顺序把软盘一个一个塞到计算机里。尽管当时 LabVIEW 的界面不是很好看,但我还是非常喜欢它。 真方便呐!比如说要画一个开关,用 LabVIEW 一拖就行了。如果要自己动手用 C 语言设计一个好看的开 关,,那得费多少时间啊!我尤其喜欢它通过连线来编程的方式,尽管很多熟悉了文本编程语言的人刚开始 时会对这种图形化编程方式非常不适应。 从 4.0 到现在的 8.2,LabVIEW 的一些技术革新给我留下了非常深的印象。比如说 LabVIEW 5 中实 现了多线程运行; LabVIEW 6 里漂亮的 3D 控件,和对事件响应的支持;LabVIEW 7 中的 Express VI 以及 LabVIEW 8 中的工程库。这些新特性都已成为了现在 LabVIEW 版本中富有特色并不可缺少的一部分了。 我对使用 LabVIEW 编程的认识在这些年里经历了不少转变。刚开始接触 LabVIEW 的时候,第一印 象就是觉得这东西编程序比 C 语言简单多了,尤其在设计界面时确实方便简易。LabVIEW 是一种真正意 义上的图形化编程语言。与文本编程语言,如 C、Basic 等相比,它在编程过程中有更详细的提示信息, 如函数的功能、参数类型等等,程序员再不需要去记忆这些枯燥的信息了。编写风格良好的图形程序代码 要比文本代码更加清晰直观,便于阅读。 刚开始用 LabVIEW 编程时,我连一本相关的书籍都没读过,差不多完全靠自己摸索。当时,市面上 几乎没有有关 LabVIEW 的中文书籍,而阅读英文资料又感觉得太累。但是,靠自己摸索的方法也有好处, 最明显的就是有成就感:自己琢磨着解决了一个问题,比模仿别人的方法做更令人兴奋。再者,他人的方 案并不一定是最佳的,自己独自思索就不至于被他人的方案局限住思路。 当然,我不会满足于只用 LabVIEW 编写一些简单的程序。我还希望能够用它来编写大型的软件,并 且提高自己的开发效率。这时,自己的编程水平有一个质的提高,不阅读相关的书籍资料就不行了。有些
问题,不读书,自己可能永远都得不到最佳的答案。同样,有些 LabVIEW 的功能,如果不阅读原始资料, 自己也许永远都掌握不了。于是,我把能得到的 LabVIEW 的中高级教程都看了一遍。因为自己有了一定 的基础,我就可以在读书的过程中反思自己以前的编程方法是否合理,高效。我觉得最好的 LabVIEW 教 程还是 NI 自己编写的 LabVIEW 中高级教程。但书本中一般原理讲得多,具体的编程技巧涉及得少,所 以还必须大量阅读别人的代码,才能学习到更多更好的编程方法。 随着时间的流逝,我慢慢地产生了 LabVIEW 应当进一步改善的想法。作为一名忠实的 LabVIEW 语 言的使用者,我衷心地期望着 LabVIEW 在日后也可以成为一种被广为使用的通用编程语言,能够在更广 泛的领域与 C,Java 等争得一席之地。LabVIEW 虽然有它独特的优势,但其不足之处也很明显。我在编 程过程中就曾感觉到它很多的使用不方便之处。下一步,我追求的目标就是能尽自己所能,对 LabVIEW 作 一些改进和完善,使它更适应于通用编程之用。
如何学习 LabVIEW 根据我自己的观察,学习 LabVIEW 一般有以下三种方式:系统型学习方法、探索型学习方法和目标 驱动型学习方法。这三种方法之间并不矛盾,可以在不同的时段使用不同的方法。每个人可以根据自己的 个性特点和所处环境选择一个适合自己的学习方案。 系统型学习方案是传统的学习方法,学生学习多是按此方法。它是指按照别人制定好的学习方案一步 一步学习掌握一门知识。学习效果如何,主要取决于教师和教材的水平。若选此方案学习 LabVIEW,最高 效的方法莫过于参加 NI 公司的 LabVIEW 培训课程。基本上,完全没接触过 LabVIEW 的学员可以在一星 期的时间内达到编写简单程序的程度。此外,现在很多大学都开有 LabVIEW 课程,方便了在校生学习。 自学也可以采用此方案。找一本教程类的书籍,按照书中指导一步一步学习。教程类的书籍应当侧重 于解释 LabVIEW 的编程思想以及原理;有些书仅偏重于罗列 LabVIEW 中每个函数或 VI 的功能,则不适合 用于此种学习方案。 探索型学习方法适合喜好自己钻研的人。同样一个技巧,如果是自己发现的,比从他人那里的来会更 有成就感。任何一个教程都不可能覆盖到 LabVIEW 的全部功能,有心得学员不妨自己打开书中未曾介绍 到的那些菜单或者函数选板,尝试一下它们都是做什么用的。在真正动手摆弄每个新东西之前,打开 LabVIEW 的即时帮助窗口,阅读一下相关说明可以大大加快学习过程。 比如,打开“应用程序控制”函数选板,发现这里有一项“选板编辑”。好像没有任何一本书里介绍过这 个功能嘛,这是干啥用的呢?如果没任何提示,也是无从下手去尝试的。打开 LabVIEW 的及时帮助,可以 看到它对这个功能的简单介绍。进入“详细帮助信息”,会得到更全面的说明。再自己动手实践一下,就基 本可以掌握此功能了。 阅读他人代码也是一个很好的学习方法。自己的探索总是有思维局限性的,他人解决问题的方法可以 大大拓宽自己思路。我介绍过的编程经验中,很大一部分都不是我自己凭空想出来的,而是借鉴与别人的 LabVIEW 代码。 目标驱动型学习方法是公司员工中最常见的学习方式了。工作后,如果不是个人有兴趣,多数人不会 浪费时间去学习工作中用不到的知识。等老板布置了具体项目或者工作任务后再学习相关知识,效率更高。
学也只要够解决眼前问题就行了。针对这种情况,请教身边牛人或者公司前辈是最好的学习方法。如果周 围的人不能解决问题,到论坛上发贴,寻求更广泛的帮助。 推荐一个论坛。首先是 NI 的官方论坛,这里会有 NI 的技术支持和研发工程师来回答问题。如果英文 够好,最好是到它的英文版面去提问,英文讨论区人气更旺,容易找到答案。LAVA 是官方之外最大的 LabVIEW 社 区 , 也 是 寻 求 帮 助 的 好 地 方 。 如 果 平 时 用 Windows Live Messenger , 可 以 加 入 http://labview.groups.live.com/,这是个 msn 讨论 LabVIEW 的群。在它上面讨论问题最大的好处是可以及时 得到回应。 我见过几个工程师在项目中遇到了难题,于是来报名参加 LabVIEW 的培训课程,以为上完课可以解 决自己的问题。但实际上完全误解了培训课程的意义,培训课程是为了帮助那些想要系统学习 LabVIEW 知 识的人,而不专注于任何一个具体问题。
分享到:
收藏