收藏 分享(赏)

LabWindowsCVI基础教程.pdf

上传人:HR专家 文档编号:6225824 上传时间:2019-04-03 格式:PDF 页数:63 大小:1.41MB
下载 相关 举报
LabWindowsCVI基础教程.pdf_第1页
第1页 / 共63页
LabWindowsCVI基础教程.pdf_第2页
第2页 / 共63页
LabWindowsCVI基础教程.pdf_第3页
第3页 / 共63页
LabWindowsCVI基础教程.pdf_第4页
第4页 / 共63页
LabWindowsCVI基础教程.pdf_第5页
第5页 / 共63页
点击查看更多>>
资源描述

1、LabWi ndows / CVI 基础教程L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 2 页序 言LabWindows / CVI 是 Nati onal I ns t r ume nt s 公司推出的一套面向测控领域的软件开发平台。它以ANSI C 为核心,将功能强大,使用灵活的C 语言平台与数据采集,分析和表达的测控专业工具有机地接和起来。它的集成化开发平台,交互式编程方法,丰富的控件和库函数大大增强了C 语言的功能,为熟悉C 语言的开发人员建立检测系统,自动测量环境,数据采集系统,过程监控系统等提供了一个理想的软件开发环境。

2、本教程面向的是那些从未使用过LabWindows / CVI 的读者,但是假设读者以有了C语言的基础并且熟悉Wi ndows 2000/9x/NT 操作系统。在每一章节的学习中,作者都是通过一个具体的实例让读者迅速的掌握本章的知识点;而不是长篇大论,述及边枝细叶,反而使读者望而却步,只见树木,不见森林。想信通过对本教程的学习,读者可迅速掌握LabWindows / CVI 编程思想及步骤,为读者日后进一步学习打下基础。本书约定:“Fi l e PageSe t upOpti ons ”Fi l e 这一种黑色斜体字是指多级菜单名,按扭名,窗口名或者是关键性词汇。“”是指打开一个多级菜单或对话框

3、。如:Fi l e PageSe t upOpti ons 是指你首先打开Fi l e 菜单,然后选择PageSe t up 项,最后从弹出的对话框中选择Opti ons 项。“ 说明:通过这种方式你可以修改Panel 顶端所显示的名字。”该种字体所写的文字是值得读者注意并记忆的内容。“ ”该椭圆形框所框住的内容是读者需修改的地方。L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 3 页第一部分 CVI 快速入门本部分通过编制一个简单的L a bWi ndows / C V I 程序,使读者对C V I 编程环境,思想及步骤有一初步的认识

4、。L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 4 页第一章 初步认识CVI 程序设计 从一个例子开始我们的第一个示例将很简单,我们所要做的是创建一个如下的图形用户界面(U s e r I n t e r f a c e )。当我们按下Acqui re 按扭,计算机会自动产生一个正弦波形并画在图形显示区中;当按下Cl ear 按扭后则清除正弦波形;当按下Qui t 按扭后退出该程序。L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 5 页现在我们就开使创建该程序。首先按下面步骤起

5、动C V I :开始程序Nat i onal I ns t r ument CVI CVI I DE或者直接从桌面起动C V I 的快捷方式,双击桌面Nat i onal I ns t r ument CVI 图标当 LabWi ndows / CVI 打开后你就会见到如下所示的一个空的项目(Proj ect )窗:第一步:创建用户界面创建控件元素:从 Proj ect 窗中选择:Fi l eNewUs er I nt er f ace( *. ui r ) 创建一个用户接口文件(*. ui r ),C V I 会自动弹出如下所示的窗口:L a b W i n d o w s / C V I

6、基 础 教 程z nyq. j l u .e 第 6 页在该窗中Unt i t l ed Panel 的灰色区域中单击鼠标右键,变会弹出一个快捷菜单如下所示:从该菜单中选择:Command But t onSquar e Command But t onL a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 7 页点击左键后便会创建一个方形的按扭。由于本程序总共需要三个按扭,所以按照上面的步骤再创建两个方形按扭。从该菜单中选择:Gr aphGr aph , 创建一个用于图形显示的Graph 。现在我们已经建好了用户界面所需的控件元素,请使用鼠标

7、把它们拖到如下图所示的位置。修改用户界面中各控件元素的属性:1修改Panel 的属性:在 Unt i t l ed Panel 中双击一下,便会弹出Panel 的一个Edi t Panel 窗,如下图所示:L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 8 页a . 将 Panel Ti t l e 项中的Unt i t l ed Panel 改为 D e m o P a n e l .说明:通过这种方式你可以修改Panel 顶端所显示的名字。b . 将 Aut o Cent er Vert i cal l y( when l oade

8、d) 项与 Aut o Cent er Hori zont al l y (when l oaded )项前的矩形框选中。说明:当选中后,程序运行时,面板会自动居中。修改后的Edi t Panel 应如下图所示:L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 9 页点击OK 按扭,完成对Panel 属性的修改。2修改Graph 的属性:在 Unt i t l ed Cont rol 的蓝色区域中双击一下,便会弹出G r a p h 的一个Edi t Graph 窗,如下图所示:L a b W i n d o w s / C V I 基

9、础 教 程z nyq. j l u .e 第 10 页a . 将 Label 项中的Unt i t l ed Cont rol 改为S h o w Wa v e .说明:通过这种方法可以修改Graph的标签名。点击OK 按扭,完成对Graph 属性的修改。3 . 修改Command 按扭的属性:( 1 ) Acqui re 按扭:双击左上方的OK 按扭,便会弹出Command 的一个Edi t Command窗,如下图所示:L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 11 页a . 将 Cons t ant Name 项改为A C

10、Q U I R E说明:Const ant Name 是程序中用来标识该控件元素的常量,在后面的编程中会用到。b . 将 Cal l back Funct i on 项改为A c q u i r e C a l l b a c k说明:Call back Funct i on(回调函数)是程序中用来响应界面中的Wi ndows 消息,也就是说:当该按扭被点击之后,程序会调用Acqui reCall back 函数来作为对按扭被按下这一消息的响应。c. 将 Label 项改为 A c q u i r e说明:通过这种方法可以修改按扭名字,Acqui re 中 A 字母前有下画线,是指可以通过Al

11、 t + A 即可达到按下该按扭的效果( 即热键) 。修改后的Edi t Command But t on 窗应如下图所示:L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 12 页点击OK 按扭,完成对Command But t on 属性的修改。(2 )Cl ear 按扭:与以上步骤相同,双击左下方的OK 按扭,弹出Command 的一个Edi t Command 窗。a . 将其Cons t ant Name 改为C L E A Rb . 将 Cal l back Funct i on 项改为C l e a r C a l l b

12、a c kc . 将 Label 项改为 C l e a r修改后的Edi t Command But t on 窗应如下图所示:L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 13 页点击OK 按扭,完成Command But t on 属性的修改。( 3)Qui t 按扭:与以上步骤相同,双击右方的OK 按扭,弹出Command 的一个Edi tCommand 窗。a . 将其Cons t ant Name 改为Q U I Tb . 将 Cal l back Funct i on 项改为Q u i t C a l l b a c k

13、c . 将 Label 项改为 Q u i t修改后的Edi t Command But t on 窗应如下图所示:L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 14 页点击OK 按扭,完成Command But t on 属性的修改。当完成以上工作后,Panel 应该如下图所示:L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 15 页选择:Fi l eSave 保存U I R 文件,命名为F i r s t S a m p l e . u i r 。到目前为止我们已经完成了用

14、户界面(u s e r i n t e r f a c e )的设计,当程序运行时所显示的界面就是我们刚才上图看到的那样。下面我们要做的就是真正的程序编制工作,其实C V I 可以自动生成许多的代码以及缺省消息的处理函数,你只需添加一些你自己所需的一些代码。第二步:完成程序的编制产生程序代码:现在请你让图形用户界面窗口为当前响应状态,如下图所示:从用户图形界面窗口中选择:CodeGener at eAl l Code 然后会显示出如下的界面:L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 16 页请用你的鼠标点击S e l e c t

15、Qu i t u s e r I n t e r f a c e C a l l b a c k 中的Q u i t C a l l k 项,确保其前面出现一个小钩。说明:1。当你想让你的程序的主函数为Wi n Main 而不是Main 时你可以选择Generate Wi nMi an( ) i nst ead of Main( ) 项前的矩形框。2Sel ect panel s t o l oadand display at st art up 项是指你选择那一个Panel 作为最初装入并显示的Panel , 当你创建多个Panel 时你就需要选择一个Panel 作为最初显示的面板。由于本程

16、序只有一个Panel 所以该Panel 就被缺省的作为最初显示的面板而不再需要你去选择。3Sel ect Qui t userInt erf ace Call back 项是指你选择那一个函数作为退出程序的终止函数。本程序是让Quit Call back 作为退出函数的。L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 17 页点击O K 按扭,便会弹出如下图所示的源代码( C o d e ) 窗:其窗中的程序代码如下所示:#i ncl ude#i ncl ude#i ncl ude“ F i r s t S a m pl e . h“s

17、 t a t i c i nt panel H a ndle i nt m a i n ( i nt a r gc, c har *ar gv )i f ( I ni t C V I RT E ( 0, a r gv, 0) = = 0)r e t ur n 1 / * out of m e m or y */i f ( ( panel H a ndle = L oadPa nel ( 0, “ F i r s t S a m pl e . ui r “ , PA N E L ) ) Advanced Anal ys i s 在弹出的对话框中选择:Si gnal Gener at i onSi

18、 ne Pat t er n便会弹出如下图所示的一个函数面板:L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 21 页请在N u m b e r o f E l e m e n t s 项中填上5 1 2 ;把 N u m b e r o f C y c l e s 项改为3 ;S i n e P a t t e r n 项中填上用来装正弦信号的数组Wa v e ,由于Wa v e 是一个数组变量,故我门需要声明该变量:选择C o d e D e c l a r e Va r i a b l e 会弹出一个如下图所示的对话框:请在N u

19、 m b e r o f E l e m e n t s 项中填上5 1 2 ,并选择了最下面的矩形框,然后点击O K 按扭完成。返回到函数面板后,选择C o d e I n s e r t F u n c t i o n C a l l 完成函数的插入,这时C o d e 窗中的A c q u i r e C a l l b a c k ( )函数应如下所示:i nt C V I C A L L B A C K Ac quir e C a l l bac k ( i nt panel , i nt c ontr ol , i nt e vent ,void *ca l l bac kDa t

20、 a , i nt e vent D a t a 1, i nt e vent D a t a 2)double Wa ve 512s w i t c h ( e vent )c a s e E V E N T _CO MMI T :S i neP a t t e r n ( 512,1. 0, 0. 0, 3. 0, Wa ve) |br e a kr e t ur n 0我们已经的得到了正弦信号,现在需要将该信号画到G r a p h 上去:1 )请将鼠标放在S i n e P a t t e r n ( ) 函数下面的空白行上,如上面所示那L a b W i n d o w s / C

21、V I 基 础 教 程z nyq. j l u .e 第 22 页样。2). 请选择:Li br ar yUs er I nt er f ace在弹出的对话框中选择:Cont r ol s / Gr aph/ St r i p Char t Gr aph and St r i p Char t Gr aph Pl ot t i ng andDel et i ngPl ot Wavef or m把函数面板中的对应各项填写成如下所示:P a n e l H a n d l e : p a n e l H a n d e l eC o n t r o l I D : P A N E L _ G R

22、A P HY A r r a y : Wa v eN u m b e r o f P o i n t s : 5 1 2L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 23 页选择 C o d e I n s e r t F u n c t i o n C a l l 完成函数的插入,这时 C o d e 窗中的A c q u i r e C a l l b a c k ( )函数应如下所示:C V I C A L L B A C K Ac quir e C a l l bac k ( i nt panel , i nt c ontr

23、ol , i nt e vent ,void *ca l l bac kDa t a , i nt e vent D a t a 1, i nt e vent D a t a 2)double Wa ve 512s w i t c h ( e vent )c a s e E V E N T _CO MMI T :S i neP a t t e r n ( 512,1. 0, 0. 0, 3. 0, Wa ve) P l ot Wa vef or m ( panel H a ndle , PA N E L _GR A P H , Wa ve, 512,VA L _DO U B L E , 1.

24、0,0. 0, 0. 0, 1. 0, VA L _TH I N _LI N E , VA L _EMP T Y _SQ U A R E ,VA L _SO L I D , 1, VA L _RE D ) br e a kr e t ur n 0到现在为止我们已经完成了Ac q u i r e C a l l b a c k ( ) 函数的的程序代码。3添加C l e a r C a l l b a c k ( ) 函数的程序代码:C l e a r C a l l b a c k ( ) 函数完成以下功能:当C l e a r 按扭按下后,计算机会清除 G r a p h 上所画的正弦图形。

25、现在请将鼠标放在C l e a r C a l l b a c k ( ) 函数E v e n t _ C o m m i t :下面的空白行上,如下图所示:L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 24 页请选择:Li br ar yUs er I nt er f ace在弹出的对话框中选择:Cont r ol / Gr aph/ St r i p Char t Gr aph and St r i p Char t Gr aph Pl ot t i ng andDel et i ngDel et e Gr aph Pl ot把函

26、数面板中的对应各项填写成如下所示:P a n e l H a n d l e : p a n e l H a n d e l eC o n t r o l I D : P A N E L _ G R A P HP l o t H a n d l e : 1L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 25 页选择 C o d e I n s e r t F u n c t i o n C a l l 完成函数的插入,这时 C o d e 窗中的C l e a r C a l l b a c k ( )函数应如下所示:i nt C V

27、I C A L L B A C K C l e a r C a l l bac k ( i nt panel , i nt c ontr ol , i nt e vent ,void *ca l l bac kDa t a , i nt e vent D a t a 1, i nt e vent D a t a 2)s w i t c h ( e vent )c a s e E V E N T _CO MMI T :D e l e t e G r a phPl ot ( panel H a ndle , PA N E L _GR A P H , 1, VA L _I MME D I AT E

28、_DR AW) br e a kr e t ur n 0到目前为止我们已经完成了程序的编制任务。这一个看起来不算简单的程序,我们编起来并没有写多少源代码,这正是体现了L a b Wi n d o w s / C V I 的强大功能所在。第四步运行程序完成项目文件现在请你让源代码( C o d e ) 窗为当前响应状态,选择:RunDebug Fi r s t Sampl e_dbg. exe便会弹出一个对话框,询问你是否在编译前为该文件命名并添加到工程文件中去。点击y e s 按扭,把该文件命名为F i r s t S a m p l e . c 。然后计算机询问你是否把“ a n a l y

29、 s i s . h ”包含到F i r s t S a m p l e . c 中去(因为,我们的程序中用到了高级分析库),点击y e s 按扭,同意该选项。运行后的程序正如我们预期要求的那样。退出程序后,从源代码( C o d e )窗中选择:Wi ndowPr oj ectL a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 26 页现在项目( P r o j e c t ) 窗为当前响应状态,请选择:Edi t Add Fi l es t o Pr oj ect Al l Fi l es ( *. *)便会弹出如下图所示的对话框:请你

30、按住键,点击F i r s t S a m p l e . h , F i r s t S a m p l e . c ,F i r s t S a m p l e . u i r 。然后点击A d d 按扭把这些文件方到S e l e c t e d F i l e s 框中。点击O K 按扭,把以上文件添加到工程文件中去。L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 27 页至此为止我们已经完成了第一个程序的编制工作,想必大家对L a b Wi n d o w s / C V I 编程已经有了一个初步的了解,头脑里已建起程序编制的

31、基本框架。通过本部分的学习,你是否已经掌握? LabWindows/CVI程序编制的基本步骤。 简单的用户图形界面(*.uir)的创建。 能使用函数面板完成函数的插入,构建源代码程序。 项目工程文件的基本构成。L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 28 页第二部分CVI 环境下程序设计通过编制第一章的F i r s t S a m p l e 程序,读者已对L a b Wi n d o w s / C V I 编程有一定了解。本部分就是在第一部分的基础上进一步讲述L a b Wi n d o w s / C V I 程序设计及

32、其编程环境等细节问题。这一章所讲内容请大家都务必动手实际操作一下,只有这样才能使你真正的掌握本章的内容。看完本章后请大家结合第 一 章 把 F i r s t S a m p l e 重 新 编 制 一 遍 , 以 巩 固 本 章 所 讲 的 加 速L a b Wi n d o w s / C V I 编程的技巧。L a b W i n d o w s / C V I 基 础 教 程z nyq. j l u .e 第 29 页第二章La bWindo ws / CVI 程序剖析通过例程F i r s t S a m p l e 的编制,大家已对L a b Wi n d o w s / C V

33、I 编程有了初步的认识。本章是作者从总体上来谈谈自己对L a b Wi n d o w s / C V I 程序的理解与认识。L a b Wi n d o s / C V I 编程的步骤基本如下:制定程序设计的基本方案第一步 根据任务确定程序的基本框架如:程序界面,程序中所需的函数等。创建用户图形界面第二步 根据第一步制定的方案创建用户图形界面及回调函数名。程序源代码的编制第三步 让计算机生成程序代码及回调函数的基本框架。添加函数代码,完成源代码的编制工作。工程项目的完成第四步 编译,调试程序。把头文件,用户图L a b W i n d o w s / C V I 基 础 教 程z nyq.

34、j l u .e 第 30 页形界面文件,源代码文件添加到项目文件中去,完成整个程序的编制程序框架及文件间的相互关系如下图所示(以F i r s t S a m p l e . p r j 为例):项目工程文件(F i r s t S a m p l e . p r j )用户图形界面文件 源代码文件 头文件(Fi rs t S amp l e.ui r ) (Fi rs t S amp l e.c) (Fi rs t S amp l e.h)panel i ncl ude “ F i r s t S a m pl e . h ” 定义了程序中所需的常事件消息 量以及函数原形。A c quir

35、 e 按扭 Ac quir e C a l l bac k( )事件消息 Wa ve 512C l e a r 按扭 C l e a r C a l l bac k( )事件消息Q uit 按扭 Q uit C a l l bac k( )S howWa ve上图所画的构成一项目工程文件的各文件之间的关系是非常重要的。如果你能理解上图所示的内容,那么你就基本理解了L a b Wi n d o s / C V I 程序的运作过程。请读者仔细阅读以上内容并理解,这些都有助于读者从整体上去把握L a b Wi n d o w s / C V I 程 序 设 计 的 核 心 思 想 , 有 益 于 读 者 进 一 步 学 习L a b Wi n d o w s / C V I 。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报