labwindows使用基础教学教材.doc

上传人:小** 文档编号:630278 上传时间:2019-04-22 格式:DOC 页数:35 大小:81KB
返回 下载 相关 举报
labwindows使用基础教学教材.doc_第1页
第1页 / 共35页
labwindows使用基础教学教材.doc_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《labwindows使用基础教学教材.doc》由会员分享,可在线阅读,更多相关《labwindows使用基础教学教材.doc(35页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、#*LabWindows/CVI 基础教程基础教程 1 LabWindows/CVI 是 National Instruments 公司推出的一套面向测控领域的软件开发平台.它以 ANSI C 为核心,将功能强大,使用灵活的C 语言平台与数据采集,分析和表达的测控专业工具有机地接和起来.它的集成化开发平台,交互式编程方法,丰富的控件和库函数大大增强了 C 语言的功能,为熟悉 C 语言的开发人员建立检测系统,自动测量环境,数据采集系统,过程监控系统等提供了一个理想的软件开发环境.本教程面向的是那些从未使用过 LabWindows/CVI 的读者,但是假设读者以有了 C 语言的基础并且熟悉 Win

2、dows 2000/9x/NT 操作系统.在每一章节的学习中,作者都是通过一个具体的实例让读者迅速的掌握本章的知识点;而不是长篇大论,述及边枝细叶,反而使读者望而却步,只见树木,不见森林. 想信通过对本教程的学习,读者可迅速掌握 LabWindows/CVI 编程思想及步骤,为读者日后进一步学习打下基础. 本书约定: “FilePage SetupOptions“ File 这一种黑色斜体字是指多级菜单名,按扭名,窗口名或者是关键性词汇. “ 是指打开一个多级菜单或对话框.如:FilePage SetupOptions 是指你首先打开 File 菜单,然后选择 Page Setup 项,最后从

3、弹出的对话#*框中选择 Options 项. “说明:通过这种方式你可以修改 Panel 顶端所显示的名字.“ 该种字体所写的文字是值得读者注意并记忆的内容. “ “ 该椭圆形框所框住的内容是读者需修改的地方. 第一部分 CVI 快速入门 本部分通过编制一个简单的 LabWindows/CVI 程序,使读者对 CVI 编程环境,思想及步骤有一初步的认识. 第一章 初步认识 CVI 程序设计 从一个例子开始 我们的第一个示例将很简单,我们所要做的是创建一个如下的图形用户界面(User Interface). 当我们按下 Acquire 按扭,计算机会自动产生一个正弦波形并画在图形显示区中;当按下

4、 Clear 按扭后则清除正弦波形;当按下 Quit 按扭后退出该程序. 现在我们就开使创建该程序.首先按下面步骤起动 CVI: 开始程序National Instrument CVICVI IDE 或者直接从桌面起动 CVI 的快捷方式,双击桌面 National Instrument CVI 图标 当 LabWindows/CVI 打开后你就会见到如下所示的一个空的项目(Project)窗: 第一步:创建用户界面 #*创建控件元素: 从 Project 窗中选择:FileNewUser Interface(*.uir)创建一个用户接口文件(*.uir),CVI 会自动弹出如下所示的窗口:

5、在该窗中 Untitled Panel 的灰色区域中单击鼠标右键,变会弹出一个快捷菜单如下所示: 从该菜单中选择:Command ButtonSquare Command Button 点击左键后便会创建一个方形的按扭. 由于本程序总共需要三个按扭,所以按照上面的步骤再创建两个方形按扭.从该菜单中选择:GraphGraph ,创建一个用于图形显示的Graph. 现在我们已经建好了用户界面所需的控件元素,请使用鼠标把它们拖到如下图所示的位置. 修改用户界面中各控件元素的属性: 修改 Panel 的属性: 在 Untitled Panel 中双击一下,便会弹出 Panel 的一个 Edit Pan

6、el 窗,如下图所示: 将 Panel Title 项中的 Untitled Panel 改为 Demo Panel. 说明:通过这种方式你可以修改 Panel 顶端所显示的名字. 将 Auto-Center Vertically(when loaded)项 与 Auto-Center Horizontally(when loaded)项前的矩形框选中. 说明:当选中后,程序运行时,面板会自动居中. 修改后的 Edit Panel 应如下图所示: #*点击 OK 按扭,完成对 Panel 属性的修改. 修改 Graph 的属性: 在 Untitled Control 的蓝色区域中双击一下,便会

7、弹出 Graph 的一个Edit Graph 窗,如下图所示: 将 Label 项中的 Untitled Control 改为 ShowWave. 说明:通过这种方法可以修改 Graph 的标签名. 点击 OK 按扭,完成对 Graph 属性的修改. 3.修改 Command 按扭的属性: (1)Acquire 按扭: 双击左上方的 OK 按扭,便会弹出 Command 的一个 Edit Command窗,如下图所示: 将 Constant Name 项改为 ACQUIRE 说明:Constant Name 是程序中用来标识该控件元素的常量,在后面的编程中会用到. 将 Callback Fun

8、ction 项改为 AcquireCallback 说明:Callback Function(回调函数)是程序中用来响应界面中的Windows 消息, 也就是说:当 该按扭被点击之后,程序会调用 AcquireCallback 函数来作为 对按扭被按下这一消息的响应. 将 Label 项改为 Acquire #*说明:通过这种方法可以修改按扭名字,Acquire 中 A 字母前有下画线,是指可 以通过 Alt + A 即可达到按下该按扭的效果(即热键). 修改后的 Edit Command Button 窗应如下图所示: 点击 OK 按扭,完成对 Command Button 属性的修改. (

9、2)Clear 按扭: 与以上步骤相同,双击左下方的 OK 按扭,弹出 Command 的一个 Edit Command 窗. 将其 Constant Name 改为 CLEAR 将 Callback Function 项改为 ClearCallback 将 Label 项改为 Clear 修改后的 Edit Command Button 窗应如下图所示: 点击 OK 按扭,完成 Command Button 属性的修改. (3)Quit 按扭: 与以上步骤相同,双击右方的 OK 按扭,弹出 Command 的一个 Edit Command 窗. a. 将其 Constant Name 改为

10、QUIT b. 将 Callback Function 项改为 QuitCallback c. 将 Label 项改为 Quit 修改后的 Edit Command Button 窗应如下图所示: 点击 OK 按扭,完成 Command Button 属性的修改. 当完成以上工作后,Panel 应该如下图所示: #*选择:FileSave 保存 UIR 文件,命名为 FirstSample.uir. 到目前为止我们已经完成了用户界面(user interface)的设计,当程序运行时所显示的界面就是我们刚才上图看到的那样. 下面我们要做的就是真正的程序编制工作,其实 CVI 可以自动生成许多的

11、代码以及缺省消息的处理函数,你只需添加一些你自己所需的一些代码. 第二步:完成程序的编制 产生程序代码: 现在请你让图形用户界面窗口为当前响应状态,如下图所示: 从用户图形界面窗口中选择:CodeGenerateAll Code 然后会显示出如下的界面: 请用你的鼠标点击 Select QuituserInterface Callback 中的QuitCallk 项,确保其前面出现一个小钩. 说明:1.当你想让你的程序的主函数为 Win Main 而不是 Main 时你可以选择 Generate WinMian( ) instead of Main( )项前的矩形框. 2.Select pan

12、els to load and display at startup 项是指你选择那一个Panel 作为最初 装入并显示的 Panel,当你创建多个 Panel 时你就需要选择一个Panel 作为最初显 示的面板.由于本程序只有一个 Panel 所以该 Panel 就被缺省的作为最初显示 #*的面板而不再需要你去选择. 3.Select QuituserInterface Callback 项是指你选择那一个函数作为退出程序的终 止函数.本程序是让 QuitCallback 作为退出函数的. 点击 OK 按扭,便会弹出如下图所示的源代码(Code)窗: 其窗中的程序代码如下所示: #inclu

13、de #include #include “FirstSample.h“ static int panelHandle; int main (int argc, char *argv ) if (InitCVIRTE (0, argv, 0) = 0) return -1; /* out of memory */ if (panelHandle = LoadPanel (0, “FirstSample.uir“, PANEL) Advanced Analysis 在弹出的对话框中选择: Signal GenerationSine Pattern 便会弹出如下图所示的一个函数面板: 请在 Num

14、ber of Elements 项中填上 512;把 Number of Cycles 项改为 3;Sine Pattern 项中填上用来装正弦信号的数组 Wave,由于#*Wave 是一个数组变量,故我门需要声明该变量: 选择 CodeDeclare Variable 会弹出一个如下图所示的对话框: 请在 Number of Elements 项中填上 512,并选择了最下面的矩形框, 然后点击 OK 按扭完成. 返回到函数面板后,选择 CodeInsert Function Call 完成函数的插入,这时 Code 窗中的 AcquireCallback( )函数应如下所示: int CV

15、ICALLBACK AcquireCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) double Wave512; switch (event) case EVENT_COMMIT: SinePattern (512, 1.0, 0.0, 3.0, Wave); break; return 0; 我们已经的得到了正弦信号,现在需要将该信号画到 Graph 上去: 1).请将鼠标放在 SinePattern( )函数下面的空白行上,如上面所示那样. .

16、请选择: #*LibraryUser Interface 在弹出的对话框中选择: Controls/Graph/Strip ChartGraph and Strip ChartGraph Plotting and DeletingPlot Waveform 把函数面板中的对应各项填写成如下所示: PanelHandle: panelHandele Control ID : PANEL_GRAPH Y Array: Wave Number of Points: 512 选择 CodeInsert Function Call 完成函数的插入,这时 Code 窗中的 AcquireCallback(

17、 )函数应如下所示: CVICALLBACK AcquireCallback (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) double Wave512; switch (event) case EVENT_COMMIT: SinePattern (512, 1.0, 0.0, 3.0, Wave); PlotWaveform (panelHandle, PANEL_GRAPH, Wave, 512, VAL_DOUBLE, 1.0, 0.0, 0.0, 1.0,

18、VAL_THIN_LINE, VAL_EMPTY_SQUARE, #*VAL_SOLID, 1, VAL_RED); break; return 0; 到现在为止我们已经完成了 AcquireCallback( )函数的的程序代码. 添加 ClearCallback( )函数的程序代码: ClearCallback( )函数完成以下功能:当 Clear 按扭按下后,计算机会清除 Graph 上所画的正弦图形. 现在请将鼠标放在 ClearCallback( )函数 Event_Commit: 下面的空白行上,如下图所示: 请选择: LibraryUser Interface 在弹出的对话框中选

19、择: Control/Graph/Strip ChartGraph and Strip ChartGraph Plotting and DeletingDelete Graph Plot 把函数面板中的对应各项填写成如下所示: PanelHandle: panelHandele Control ID : PANEL_GRAPH PlotHandle: -1 选择 CodeInsert Function Call 完成函数的插入,这时 Code 窗中的 ClearCallback( )函数应如下所示: int CVICALLBACK ClearCallback (int panel, int c

20、ontrol, int event, #*void *callbackData, int eventData1, int eventData2) switch (event) case EVENT_COMMIT: DeleteGraphPlot (panelHandle, PANEL_GRAPH, -1, VAL_IMMEDIATE_DRAW); break; return 0; 到目前为止我们已经完成了程序的编制任务.这一个看起来不算简单的程序,我们编起来并没有写多少源代码,这正是体现了LabWindows/CVI 的强大功能所在. 第四步 运行程序完成项目文件 现在请你让源代码(Code)

21、窗为当前响应状态,选择: RunDebug FirstSample_dbg.exe 便会弹出一个对话框,询问你是否在编译前为该文件命名并添加到工程文件中去.点击 yes 按扭,把该文件命名为 FirstSample.c.然后计算机询问你是否把 “analysis.h“包含到 FirstSample.c 中去(因为,我们的程序中用到了高级分析库),点击 yes 按扭,同意该选项. 运行后的程序正如我们预期要求的那样.退出程序后,从源代码(Code)#*窗中选择: WindowProject 现在项目 (Project)窗为当前响应状态,请选择: EditAdd Files to ProjectA

22、ll Files(*.*) 便会弹出如下图所示的对话框: 请你按住键,点击 FirstSample.h ,FirstSample.c , FirstSample.uir.然后点击 Add 按扭把这些文件方到 Selected Files框中. 点击 OK 按扭,把以上文件添加到工程文件中去. 至此为止我们已经完成了第一个程序的编制工作,想必大家对 LabWindows/CVI 编程已经有了一个初步的了解,头脑里已建起程序编制的基本框架. 通过本部分的学习,你是否已经掌握 LabWindows/CVI 程序编制的基本步骤. 简单的用户图形界面(*.uir)的创建. 能使用函数面板完成函数的插入,

23、构建源代码程序. 项目工程文件的基本构成. 第二部分 CVI 环境下程序设计 通过编制第一章的 FirstSample 程序,读者已对 LabWindows/CVI 编程有一定了解.本部分就是在第一部分的基础上进一步讲述LabWindows/CVI 程序设计及其编程环境等细节问题.这一章所讲内容请大家都务必动手实际操作一下,只有这样才能使你真正的掌握本#*章的内容.看完本章后请大家结合第一章把 FirstSample 重新编制一遍,以巩固本章所讲的加速 LabWindows/CVI 编程的技巧. 第二章 LabWindows/CVI 程序剖析 通过例程 FirstSample 的编制,大家已对

24、 LabWindows/CVI 编程有了初步的认识.本章是作者从总体上来谈谈自己对 LabWindows/CVI 程序的理解与认识. LabWindos/CVI 编程的步骤基本如下: 制定程序设计的基本方案 第一步 根据任务确定程序的基本框架如: 程序界面,程序中所需的函数等. 创建用户图形界面 第二步 根据第一步制定的方案 创建用户图形界面及回 调函数名. 程序源代码的编制 第三步 让计算机生成程序代码及回调函数 的基本框架.添加函数代码,完成 源代码的编制工作. 工程项目的完成 第四步 编译,调试程序.把头文件,用户图 形界面文件,源代码文件添加到项目 文件中去,完成整个程序的编制 #*程

25、序框架及文件间的相互关系如下图所示(以 FirstSample.prj 为例): 项目工程文件 (FirstSample.prj) 用户图形界面文件 源代码文件 头文件 (FirstSample.uir) (FirstSample.c) (FirstSample.h) panel include “FirstSample.h“ 定义了程序中所需的常 事件消息 量以及函数原形. Acquire 按扭 AcquireCallback( ) 事件消息 Wave512 Clear 按扭 ClearCallback( ) 事件消息 Quit 按扭 QuitCallback( ) ShowWave 上图所

26、画的构成一项目工程文件的各文件之间的关系是非常重要的.如果你能理解上图所示的内容,那么你就基本理解了 LabWindos/CVI 程序的运作过程. 请读者仔细阅读以上内容并理解,这些都有助于读者从整体上去把握LabWindows/CVI 程序设计的核心思想,有益于读者进一步学习LabWindows/CVI. 第三章 LabWindows/CVI 编程环境 LabWindows/CVI 开发环境有以下三个最主要的窗(window)与函数面板(Function Panel): #*项目工程窗(Project Window) 用户接口编辑窗(User Interface Editor window)

27、 源代码窗(Source window) 下面就会对以上三个窗及函数面板作详细的介绍. 项目工程窗(Project Window) 一个项目工程窗(Project Window)如下图所示: 在项目工程窗中列出了组成该项目工程所有的文件,项目工程窗中的个菜单项功能如下: File : 创建,保存或打开文件.可以打开以下文件:项目工程文 件(*.Prj)源代码文件(*.c),头文件(*.h)以及用户接口 文件(*.uir). Edit: 在项目工程中添加或移去文件. Build: 使用 LabWindows/CVI 编译链接器. Run: 运行一个项目工程. Windows: 用来访问某个已经打

28、开的窗,例如:用户接口编辑窗, 源代码窗 . Tools: 运行向导(wizard)或者你添加到 Tools 菜单中的一些 工具. Options: 设置 LabWindows/CVI 的编程环境. Help: LabWindows/CVI 在线帮助及 Windows SDK 的函数帮 助. 工程项目文件显示了所列文件的状态,其各项的含义如下图所示: #*文件名 这个标志是指源代码 最后修改该文件 文件是否是打开的 的日期时间 S 是指该文件已经修 C 是指运行该文件之 O 是指你可以让该文件 I 是指这是一个 改过了,请保存该文件 前必须先经过编译 编译而无需 debugging 仪器驱动程

29、序 如果你想进一步了解项目工程窗(Project window)细节请使用在线帮助. 请选择:HelpCVI LibraryRelated HelpOnline Manuals For LabWindows/CVI 请查阅 LabWindows/CVI User Manual Chapter 3 Project window. 第二节 用户接口编辑窗(User Interface Edit window) 图形用户接口编辑窗是用来创建,编辑 GUI(Graph Uer Interface)的.一个用户接口至少要有一个面板(Panel)以及在面板上的各种控件元素(Control Element)

30、.图形用户接口编辑窗为你提供了非常快捷的创建,编辑这些面板和控件元素的方法,可以让你在短时间里创建出符合你要求的图形界面. 一个图形用户接口编辑窗就如下图所示,下面我们就详细讲讲图形用户接口编辑窗各菜单项的功能: File: 创建,保存或打开文件. Edit: 可用来编辑面板或控件元素. 说明:其实我们直接用鼠标双击我们想要编辑对象即可(就象编制中修#*改面板和四个按扭那样). Creat: 可用来创建面板和各种控件元素. 说明:其实我们只需在 Panel 上点击鼠标右键,便会弹出一个快捷菜单,选择 你所想创建的对象即可(就象编制 FisrtSample 时创建 Graph 和四个 Butto

31、n 那样). View: 当创建多个面板后就可用该项来查看想要看的面板. Arrange: 用来调节各个控件元素的位置与大小. Code: 产生源代码,以及选择你所需的事件消息类型. Run: 运行程序. Library: 函数库. 说明:我们将在后面详细的介绍 LabWindows/CVI 的函数库. Tools: 一些你可使用的工具项. Windows: 用来访问某个已经打开的窗,例如:项目工程窗,用户 接口编辑窗,源代码窗 . Options: 设置用接口编辑窗的编辑环境. Help: LabWindows/CVI 在线帮助及 Windows SDK 的函数帮 助. 说明:在用户接口编辑

32、窗中有一快捷菜单是非常有用的,当你把鼠标指在某一控 件元素上点击右键后便弹出一快捷菜单,通过该菜单你可以生成回调#*函数 以及查看回调函数,而无须你再切换到源代码窗后再查看.这是一个大家 以后在编程中要常用到的技巧,请掌握. 图形用户接口编辑窗中还有四个模式选择按扭,现介绍如下: 当该按扭被按下后,你可以操作面板上的控件,同时在图形用户接口编辑窗的右上角上来观察面板上的事件消息. 在这种模式下你可以创建,编辑面板和控件元素以及修改它们的属性. 在这种模式下你可以直接修改控件元素的名字,标签等文字相关方面的东西. 在这种模式下你可以直接修改面板,控件元素的颜色.先把鼠标方在你所想修改颜色的对象上

33、,点击右键便会弹出一个 选色对话框,选择你所想要的颜色后点击后即可. 在图形用户接口编辑窗中 Panel 的灰色区域中单击鼠标右键,便会弹出一个快捷菜单如下所示: 说明:请读者用鼠标点击各项自己看一看,在这里就无须作者多言. 如果你想进一步了解用户接口编辑窗(User Interface Edit window)细节请使用在线帮助. 请选择:HelpCVI LibraryRelated HelpOnline Manuals For LabWindows/CVI 请查阅 LabWindows/CVI User Manual Chapter 4 User Interface Edit window

34、 #*源代码编辑窗(Sourse window) 你可以在源代码编辑窗中开发你的 C 语言代码文件.例如:添加,删除,插入函数等编程所需的基本编辑操作.但是 LabWindows/CVI 又有其独特的简捷快速的开发,编辑工具,可以让你在短时间内完成一个较复杂的 C 程序代码的开发. 一个源代码编辑窗(Source window)就如下图所示,下面我们就详细讲讲源代码编辑窗中各菜单项的功能: File: 创建,保存或打开文件. Edit: 可用来编辑源代码文件. View: 设置源代码编辑窗的风格等功能. Build: 编译文件以及编译设置. Run: 运行程序. Instrument: 装入仪

35、器驱动程序. Library: 函数库. Tools: 一些你可使用的工具项. Windows: 用来访问某个已经打开的窗,例如:项目工程窗,用接 口编辑窗,源代码窗 . Options: 设置用接口编辑窗的编辑环境. Help: LabWindows/CVI 在线帮助及 Windows SDK 的函数帮 助. 说明:在编程中有一快捷菜单是非常有用的,当你把鼠标指在某一函数上点击右键后便弹出一快捷菜单,通过该菜单你可以查看回调函数以#*及与该函数对应控件元素.这是一个大家以后在编程中要常用到的技巧,请掌握. 第四节 函数面板(Fuction Panel) 在 LabWindows/CVI 编程

36、环境下,当你想在源程序某处插入函数时,你只需从函数所在的库中选择该函数后便会弹出一个与之对应的函数面板,你所做的就是:填入该函数所需的参数后完成插入即可.而且更为方便的是:若参数是一你以有的常量或变量,你只需点击常量或变量工具按扭后选择你所需的量即可;若参数是一变量,你直接可声明该变量而无须再切换至源代码窗. 下面我们就谈谈这些在 LabWindows/CVI 中可以加快你编程的技巧. 一个函数面板如下图所示: 这是 FirstSample 中产生一个正弦波的函数其中 SinePattern 项是用来装正弦波的数组,我们在程序中使用数组 Wave512 来装正弦波的.当我们在 SinePatt

37、ern 项填入 Wave 后,由于 Wave 是一变量,所以我们需要声明该变量:让鼠标指在 Wave 上然后点击工具条中的声明变量按扭 后, 便弹出一个声明变量对话框即可声明该变量为局域变量或为全局变量.当你所填参数是一以有的常量或变量,你只需点击选择常量或变量工具按扭后选择你所需的量即可,下面就介绍该技巧: 上图是 FirstSample 中把数组 Wave 中的正弦波画到 Graph 上去的PlotWaveform 函数.其中,Control ID 项所填的是程序中用来标识GUI 中控件元素的常量,该常量是由 LabWindows/CVI 自动在头文件#*中预定义的(你可以打开头文件看看)

38、.故当我们填入该常量时只需将鼠标放在 Control ID 项的文本框中然后用鼠标点击工具条中的选择属性或 UIR 常量按扭 后, 便弹出一个选择属性或 UIR 常量对话框,选择你所需的常量或属性即可.Panel Handle 是程序运行开始时UIR 的句柄,是由 LabWindows/CVI 自动生成的是一变量;Number of Points 项需填的是 512,这正是我们在声明 Wave 时已用过的;Y Array 项所填的是我们已经声明过的变量 数组 Wave;故当我们填入以上各项时只需将鼠标放在对应项下文本框中,然后用鼠标点击工具条中的选择变量按扭 后, 便弹出一个选择变量对话框,选

39、择你所需的变量 Wave 即可. 当你填完函数的参数后,点击插入按扭后即可完成函数的插入,而无须再选择菜单中的插入命令. 以上这些都是加快你编程的技巧,这些技巧你以后编程时是会非常频繁使用的.而这些也正是 LabWindows/CVI 开发环境所独具的加快你编程速度的特色. 说明:当你的鼠标落在工具条按扭上时,计算机会自动的显示该工具按扭的功能. 请你使用上面所讲技巧重新编制 FirstSample,我相信你将会有新的收获. 当你对函数中的某个参数有不明白的时候,你只须将鼠标置于该项的文本框中点击鼠标右键后便会出现对此参数说明的在线帮助,这一技巧在编程中是非常有帮助的. #*如果你想进一步了函

40、数面板(Function Panel )细节请使用在线帮助. 请选择:HelpCVI LibraryRelated HelpOnline Manuals For LabWindows/CVI 请查阅 LabWindows/CVI User Manual Chapter 6 Using Function Panels 第四章 LabWindows/CVI 的函数库(Library) LabWindows/CVI 其强大功能的所在就是基于其非常丰富的库函数.LabWindows/CVI 所提供的库函数从用户图形界面,数据采集,数据分析,仪器控制 到现在 Internet 时代的 TCP.所以说La

41、bWindows/CVI 在测量领域成为先锋的同时又与当前时代的新科技保持了同步. 下面我们就来谈谈 LabWindows/CVI 的函数库,我们把LabWindows/CVI 的函数库分为了五个大的方面,各个方面又分成了不同的小类: 数据采集方面(Data Acquisition),7 个库: Instrument Library: 仪器驱动库 GPIB/GPIB 488.2 Library: 仪器控制函数库 Data Acquisition Library: 数据采集函数库 Easy I/O for DAQ : 易用的数据采集函数库 RS 232 Library : RS 232 库 VI

42、SA Library : VISA 库 VXI Library : VXI 库 #*数据分析方面,两个库: Formatting and I/O Library : 格式化以及输入输出库 Analysis Library: 分析库 或者 Advanced Analysis Library: 高级分析库 数据显示方面: User Interface Library : 用户接口库 说明: 用户接口库中提供了许多用于与面板上各种控件元素打交道的函数,通 过这些函数你可以非常容易的把一个采集来的波形画到 Panel 的Graph 上或删除 Graph 上已画的图形;得到 Panel 上某个控件元素的

43、数值以及 把某个数值写到 Panel 上的某个控件元素上去(亦就是改变该控件元素的 值);修该 Panel 上控件元素的属性.总之,你只有熟练掌握了用户接口 库函数后才能使你创建的用户图形界面正正的动起来,该库是初学者应迅 速熟悉的库. 网络,通信与数据交换方面,四个库: DDE Library : 动态数据交换库 TCP Library: TCP 库 Active X Automation Library: Active X 自动化库 #*DataSocket Library: DataSocket 库 其它方面: ANSI C Library: 标准 C 库 如果你想进一步了解 LabWi

44、ndows/CVI 函数库(Library)细节请使用在线帮助. 请选择:HelpCVI Library Library Help 中你感兴趣的库 通过本部分的学习,你是否已经掌握 LabWindows/CVI 程序设计步骤及程序的运行机制. 三个主要窗的基本操作. 在用户接口编辑窗中用快捷方式生成或查看回调函数,在源代码窗中用快捷方式返回到函数面板或对应控件元素等编程中所需的快捷操作. 在函数面板上声明变量,选择变量或常量,插入函数等快捷操作. LabWindows/CVI 库的构成及其在编程中适用的方向. 第四部分 CVI 中数据采集的应用 通过前两部分的学习,读者应该已掌握了 LabWi

45、ndows/CVI 程序设计的基本步骤,思路以及编程环境.本部分将在前两部分的基础上讲解LabWindows/CVI 中的数据采集,并在讲解的过程中编制一个程序:EeasyIOSample .请读者确保自己已经安装了 Daq 驱动,否则你会找不到例子中要用到的函数. Easy IO 库中数采函数的应用 本章我们将使用 Easy IO 库中的数采函数来编制一个真正能用于实#*际工作中的数据采集程序 EasyIOSample. 我们程序运行时的界面如下图所示: 其中各控件元素的功能说明如下: ChannelSrting 项是一字符串控件,我们通过该项来设置采集数据的 通道(数采路径).我们把该项缺

46、省设置为:daq:1!(0) 其意思是指:采集设备(device)1 的 0 通道(channel). 其中设备号正是你在 Measurement static long AiTask; int main (int argc, char *argv) if (InitCVIRTE (0, argv, 0) = 0) return -1; /* out of memory */ if (panelHandle = LoadPanel (0, “EasyIOSample.uir“, PANEL) User InterfaceControls/Graph/Strip ChartGeneral Fun

47、ctionsGet Control Value. GetCtrlVal (panelHandle, PANEL_CHANNEL_STRING, ChanString) 使用该函数我们可以得到字符串 ChannelString 的值(请在该函数面板中声明局部字符串变量 ChanString).插入该函数时请选择:LibraryUser Interface Controls/Graph/Strip ChartGeneral FunctionsGet Control Value. GetCtrlVal (panelHandle, PANEL_SCANRATE, 通过返回AcqBacklog 参数的值

48、可得知所采样以放在缓冲中的有多少个点我们未读取(请在该函数面板中声明局部长整型变量 AcqState 与AcqBacklog).插入该函数时请选择:LibraryEasyIO For DAQAnalog Input Intermediate Analog InputAI Destroy Task(Required) nidaqAIRead (AiTask, ChanString, AcqBacklog, -1.0, AcqData) 使用该函数我们可以将缓冲中未读的数据读到数组 AcqData 中(请在该函数面板中声明局部双精度数组变量 AcqData10000).插入该函数时请选择:Libr

49、aryEasyIO For DAQAnalog Input Intermediate Analog InputAI Read (Required) DeleteGraphPlot(panelHandle,PANEL_GRAPH,-1, VAL_IMMEDIATE_DRAW)使用该函数我们可以清除 Graph 控件上所画的图形.插入该函数时请选择:LibraryUser InterfaceControl/Graph/Strip ChartGraph and Strip ChartGraph Plotting and DeletingDelete Graph Plot PlotWaveform(panelHandle,PANEL_GRAPH,AcqData,AcqBacklog,VAL_DOUBLE, 1.0, 0.0, 0.0, 1.0, VAL_THIN_LINE, VAL_EMPTY

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com