cvi教程

合集下载

cvi config 使用手册

cvi config 使用手册

CVI Config 使用手册一、介绍CVI Config 是一款用于配置 CVI (Centralized Video Insight) 视瓶监控系统的软件。

通过CVI Config,用户可以对监控摄像头、录像存储、报警设置等进行灵活的配置,从而实现对视瓶监控系统的完全控制。

二、安装与启动1. 下载 CVI Config 安装程序并运行。

2. 按照安装程序的指引完成安装过程。

3. 在安装完成后,双击桌面图标或在开始菜单中找到 CVI Config 并运行。

三、登入与权限设置1. 输入正确的用户名和密码登入系统。

2. 登入后,根据用户的权限设置,可以进行不同的操作。

3. 如果需要更改权限设置,可以通联管理员进行调整。

四、实时监控配置1. 进入实时监控配置界面。

2. 选择要配置的监控摄像头,对其进行参数调整和布局设置。

3. 可以设置监控画面的分屏显示、画面切换间隔等。

五、录像存储设置1. 进入录像存储设置界面。

2. 配置录像存储的位置、格式、清晰度等参数。

3. 可以设置录像的循环覆盖、报警录像等功能。

六、报警设置1. 进入报警设置界面。

2. 配置报警触发的条件和响应措施。

3. 可以设置报警短信通知、联动视瓶录像等功能。

七、系统管理1. 进入系统管理界面。

2. 对系统进行设置、维护和管理。

3. 可以进行用户管理、日志查看、系统升级等操作。

八、数据导出与备份1. 进入数据导出与备份界面。

2. 对系统中的重要数据进行导出和备份。

3. 可以导出监控录像、报警日志等数据,进行长期存储和归档。

九、使用注意事项1. 在进行配置时,请确保输入的参数准确无误。

2. 对于重要操作,如录像存储和报警设置,建议提前做好充分的计划和测试。

3. 如遇到问题或需要帮助,请通联系统管理员或技术支持人员。

结语:通过本手册的学习与实践,相信您已经对 CVI Config 的使用有了初步的了解,并能够熟练地配置视瓶监控系统。

希望本手册能够为您的工作带来便利与效率,祝您使用愉快!对CVI Config的功能使用进行扩展一、智能分析配置1. 进入智能分析配置界面。

LabWindowsCVI教程(1)PPT课件

LabWindowsCVI教程(1)PPT课件
LabVIEW, VEE
LabWindows/CVI
19.08.2020
4/18
2. LabWindows/CVI的历史
19.08.2020
5/18
3. LabWindows/CVI的特点
(1)针对测试测量领域的ANSI C语言开发环境
C compiler for Virtual Instruments (CVI)
变量命名 程序的格式和注释 复杂的程序要事先规划设计
19.08.2020
7/18
4. 程序结构
测控软件一般包括:用户界面、程序控制、数 据采集和数据分析4部分
19.08.2020
8/18
5. 开发环境
(1)主要窗口
LabWindows/CVI开发环境的三个主要窗口是工程窗口 (.prj)、源代码窗口(.c)和用户界面编辑器窗口(.uir)。
19.08.2020
15/18
LabWindows/CVI的函数库
19.08.2020
16/18
(4)交互式代码生成 C文件中生成程序结构:Main, Switch, If, For Loop… … UIR文件中生成代码框架: Main Function, Callback Functions (panel, control, menu) 函数面板中函数的自动插入
20/18
C源代码文件
.uir 用户界面资源文件
.h
用户界面资源头文件
.lib 外部静态库模块文件
.obj 目标文件
.h
外部模块头文件
.dll 动态链接库文件
.lib 动态链接库导入库文件
.fp 函数库(函数数和函数面板)文件
19.08.2020

LabWindows CVI教程

LabWindows CVI教程

第一章 : LabWindows/CVI1.1 LabWindows/CVI1.1.1 LabWindows/CVI概述LabWindows/CVI是美国NI(National Instruments)公司开发的面向计算机测控领域的虚拟仪器软件开发平台,可以在多种操作系统(WindowsXP/Vista/7、Mac OS和Unix)下运行。

LabWindows/CVI 是为C 语言程序员提供的集成开发环境(IDE),在此开发环境中可以利用C语言及其提供的库函数来实现程序的设计、编辑、编译、链接、调试。

使用LabWindows/CVI 可以完成以下但不限于以下工作:·交互式的程序开发;·具有功能强大的函数库,用来创建数据采集和仪器控制的应用程序;·充分利用完备的软件工具进行数据采集、分析和显示;·利用向导开发IVI 仪器驱动程序和创建ActiveX 服务器;·为其它程序开发C 目标模块、动态连接库(DLL)、C 语言库。

图 1‐1 LabWindows/CVI界面LabWindows/CVI 的功能强大在于它提供了丰富的函数库。

利用这些库函数除可实现常规的程序设计外,还可实现更加复杂的数据采集和仪器控制系统的开发。

数据采集。

IVI库、GPIB/GPIB 488.2库、NI-DAQmx库、传统的NI-DAQ库、RS-232库、VISA库、VXI库以及NI-CAN库。

数据分析。

格式化IO库、分析库以及可选的高级分析库。

GUI库。

使用LabWindows/CVI 的用户界面编辑器可以创建并编辑图形用户界面(GUI),而使用LabWindows/CVI 的用户界面库函数可以在程序中创建并控制GUI。

此外,LabWindows/CVI为GUI 面板的设计,准备了许多专业控件,如:曲线图控件、带状图控件、表头、旋钮和指示灯等,以适应测控系统软件开发的需求,利用这些控件可以设计出专业的测控程序界面。

CVI数据库操作方法

CVI数据库操作方法
dBHandle = DBConnect (DBConStr);//建立数据源连接
在获取到数据源的路径后,即通过调用DBConnect()函数就可以与数据源建立连接。
2、在与数据源建立连接后,则需要与数据源中所建立的数据表进行连接,这样才能完成对于数据表的读或者是写操作。代码如下:
if(fileHandle<=0) return(err_report(1));
3、代码运行到此,如果能顺利执行,则说明已经与数据源中的数据表成功建立了连接,下面要做的就是与数据表中的相应字段进行绑定,这样我们才能在相应字段下面添加内容,比如数据表中建立了“username”,“password”以及“score”三个字段,我们想在这三个字段下添加类容,那么就需要对于这三个字段进行绑定,代码如下:
if((DBBindColInt (fileHandle, 3, &score,&dbstatus[3]))!=DB_SUCCESS)
return(err_report(1));
4、成功与相应字段进行绑定后,则可以读取或者是添加我们所需要的内容。我们可以通过DBFetchNext(fileHandle)函数来查找指定的记录;同时可以调用DBCreateRecord (fileHandle)函数和DBPutRecord (fileHandle)函数的同时使用来创建新的记录。在这里需要注意的是,如果单独使用DBPutRecord (fileHandle)函数会将原有的记录覆盖,而DBCreateRecord (fileHandle)函数和DBPutRecord (fileHandle)函数的同时使用则是在原有记录的后面创建新的记录。
GetProjectDir (dirTemp);//获取工程目录路径

CVI驱动程序编写入门

CVI驱动程序编写入门

CVI驱动程序编写入门仪器驱动程序有一个VPP规范(VXI即插即用),这个VPP规范中介绍仪器驱动的架构,使用的接口及前面板规范,函数原形规范等等。

看过这个规范的朋友可能知道,VPP就是对CVI开发仪器驱动的规范。

在开始编写驱动之前,请先安装NI-Visa、labwindows8.0下面介绍如何用CVI编写仪器驱动•生成仪器驱动程序工程文件(.prj)•设计函数树和函数面板(.fp, .c, .h)•完成驱动程序每个函数的代码(.c)•编译调试,生成动态链接库1 新建工程文件双击labWindows/CVI程序文件,打开CVI。

在“File”下拉菜单中选择“New”,再选择“Project”创建工程,弹出如图1-1对话框图1-1 创建工程在对话框中有两个单选项,前一个指在当前工作区创建工程,后一个指新建一个工作区创建工程。

通常选则后一个,这样在一个工作区对应一个工程,简单明了。

其他保持默认。

单击确定,创建工程完成。

2 设计函数树和函数面板这是最关键的一步,创建.fp、.c、.h等文件是仪器驱动中必不可少的文件,其中.fp 是仪器驱动的核心。

先介绍.fp创建过程。

在“File”下拉菜单中选择“New”,再选“Function Tree”,如图1-2图1-2 创建fp文件在右边白色区域,单击右键并点击”create Instrument”,弹出如下对话框,如图1-3图1-3 仪器节点“Name”指当前函数树的名字,”prefix”指函数名的前趋,在后面创建的.h文件中每一个函数名以zyosc开头,后面再跟实际函数名。

填写完后单击ok,如图1-4图1-4 函数树创建蓝色阴影部分的有这样的提示“create class or function panel window”,意思是在此可以创建类和函数前面板。

这里的类指用户如何划分函数,根据用户的需要将某些函数规为一类。

通常情况我们将错误消息、错误查询、复位,自检和版本查询等函数规为通用函数,具体操作硬件的部分的函数规为功能函数。

LabWindows-CVI安装教程

LabWindows-CVI安装教程

1.启动setup.exe.
2.打开LabWindows-CVI 9-0 Evaluation\Crack下keygen.exe。

点击Generate,随后copy生成
的serial number到上图对应的位置。

最后点击Create license file,将生成的文件保存到你知道的位置。

(此处默认文件名为1.lic,后续有用)
3.接下来选择文件的安装位置。

(安装路径上不要有中文),点击Next。

4.再次选择安装路径。

点Next。

5.之后会出现软件安装接受协议。

一直点击Next即可。

(因为我电脑里面已经安装,不会
出现后续的画面,所以没有图片展示)最终安装开始。

6.安装完成后,点击Finish,出现安装完成的祝贺信息。

7.点击Next,在出现的方面中选择重新启动Restart。

完成安装过程。

8.重启电脑后,选择National Instruments下的NI License Manager。

9.在选项中点击安装许可证文件。

然后找到1.lic文件。

软件激活完成。

cvi教程汇总

cvi教程汇总
2019/4/21
5/38
HidePanel 隐藏面板 int HidePanel (int Panel_Handle); HidePanel (testPanelHandle); GetPanelAttribute 获取面板属性 int GetPanelAttribute (int Panel_Handle, int Panel_Attribute, void *Attribute_Value); GetPanelAttribute (testPanelHandle, ATTR_BACKCOLOR, &color); SetPanelAttribute 设置面板属性 int SetPanelAttribute (int Panel_Handle, int Panel_Attribute, ...); SetPanelAttribute (testPanelHandle, ATTR_BACKCOLOR, VAL_RED); SavePanelState RacallPanelState …

int PromptPopup (char Title[], char Message[], char Response_Buffer[], int Max_Response_Length); PromptPopup ("输入信息", "请输入姓名", &name, 20); 9/38
2019/4/21

RemovePopup

删除弹出式面板
int RemovePopup (int Remove_Popup); RemovePopup (0);

MessagePopup

输出信息对话框

CVI数据库操作方法

CVI数据库操作方法

CVI数据库操作方法在CVI中,数据库操作一般需要以下步骤:1. 引入数据库头文件:根据要使用的数据库类型,引入对应的头文件。

例如,对于Oracle数据库,可以使用`#include <ocilib.h>`引入OCI库的头文件。

2.建立数据库连接:使用数据库提供的接口,建立与数据库的连接。

连接参数包括数据库地址、用户名、密码等。

3.执行SQL语句:使用数据库提供的接口,执行SQL语句。

SQL语句可以是查询语句(SELECT)、插入语句(INSERT)、更新语句(UPDATE)或删除语句(DELETE)等。

4.处理执行结果:根据执行结果,进行相应的处理。

对于查询语句,可以使用数据库提供的接口获取查询结果并进行相关处理;对于更新、插入和删除语句,可以根据返回值判断操作是否成功。

5.关闭数据库连接:释放数据库资源,关闭与数据库的连接。

下面以Oracle数据库为例,给出CVI中数据库操作的示例代码:```#include <ocilib.h>int mainOCI_Connection* cn;OCI_Statement* st;OCI_Resultset* rs;if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT))printf("Failed to initialize OCI.\n");return -1;}cn = OCI_ConnectionCreate(CONN_STR, "", "",OCI_SESSION_DEFAULT);if (cn == NULL)printf("Failed to connect to Oracle.\n");return -1;}st = OCI_StatementCreate(cn);OCI_ExecuteStmt(st, "SELECT * FROM Employee");rs = OCI_GetResultset(st);while (OCI_FetchNext(rs))printf("Employee ID: %d\n", OCI_GetInt(rs, 1));printf("Employee Name: %s\n", OCI_GetString(rs, 2));printf("Employee Age: %d\n", OCI_GetInt(rs, 3));}OCI_Cleanup(;return 0;```以上代码演示了CVI连接Oracle数据库,并执行查询语句的操作。

CVI教程

CVI教程

EVENT_KEYPRESS EVENT_TIMER_TICK EVENT_LEFT_CLICK EVENT_VAL_CHANGED
2012-7-15
3/9
4. 回调函数

回调函数的模式:


基于对象的回调:把程序分成若干小的、易于 管理的部分,每一部分完成特定的工作 主回调:使用InstallMainCallback安装单一的回 调函数处理所有事件。 控件操作事件:控件回调-面板回调-主回调 面板事件:面板回调-主回调 菜单确认事件:菜单项回调-主回调 定时器控件事件:定时器控件回调 主回调事件:主回调
int GetUserEvent (int Wait_Mode, int Panel_or_Menu_Bar_Handle, int Control_or_Menu_Item_ID); event = GetUserEvent (1, &panelHandle, &controlID); int ProcessSystemEvents (void); int ProcessDrawEvents (void);
自动化测试与控制研究所
1. 用户事件的概念
LabWindows/CVI中的用户事件就是Windows 操作系统的消息,LabWindows/CVI通过回调函数 的方式处理用户事件,这种基于事件的编程方式简 化了对应用程序流程的控制。
2. 控件的模式
模式决定了用户可以以何种方式操作控件,控件 可以产生哪些用户界面事件。
4/9

事件触发回调函数的顺序



2012-7-15
5. 使用回调函数响应用户事件

回调函数的声明 CVICALLBACK

LabWindowsCVI基础指导教程

LabWindowsCVI基础指导教程

LabWindows/CVI基础指导教程1. 简介LabWindows/CVI是一种基于C语言的集成开发环境(IDE),广泛应用于数据采集、实验控制和测试自动化等领域。

本教程旨在为初学者提供关于LabWindows/CVI的基础指导,包括环境安装、项目创建、界面设计和编程等方面的内容。

2. 环境安装在开始使用LabWindows/CVI之前,我们首先需要安装LabWindows/CVI的运行环境。

按照以下步骤进行安装:1.下载LabWindows/CVI安装程序,并运行安装程序。

2.在安装程序中选择安装路径,并点击“下一步”进行安装。

3.根据提示完成安装过程。

安装完成后,我们就可以开始创建LabWindows/CVI项目了。

3. 项目创建LabWindows/CVI使用项目(Project)的方式来组织和管理代码。

下面是创建新项目的步骤:1.打开LabWindows/CVI IDE。

2.点击“文件”菜单,并选择“新建项目”。

3.在弹出的对话框中选择项目类型和保存路径,然后点击“确定”。

4.在新建项目的基础上,可以添加文件、配置编译选项等。

4. 界面设计LabWindows/CVI提供了UI工具箱,可以通过拖拽控件来设计界面。

下面是界面设计的基本步骤:1.打开项目。

2.点击“窗体”菜单,并选择“添加窗体”。

3.在窗体设计器中,可以拖拽控件到窗体中,并调整位置和大小。

4.可以通过属性编辑器来设置控件的属性和事件。

界面设计完成后,我们可以进行程序的编程。

5. 编程LabWindows/CVI使用C语言进行编程。

下面是编程的基本步骤:1.打开窗体设计器,选择需要编写代码的控件。

2.双击控件,进入控件的事件处理函数。

3.在事件处理函数中编写代码,实现相应的功能。

4.可以使用LabWindows/CVI提供的函数库来完成各种操作,如数据采集、图形绘制等。

除了事件处理函数,我们还可以创建其他类型的函数来实现更复杂的功能。

第五讲CVI高级编程

第五讲CVI高级编程
3
• 对于RS-232、GPIB、 VXI总线还提供了一 I/O控制函数;
• 利用CVI的开发环境还可以方便的实现各种 仪器的功能,而不必再去仔细的研究仪器 控制的细节,这是任何其他开发工具所无 法比拟的优越性;
• 本讲主要讲串口通信(RS-232)控制的I/O库 函数的使用;
• 由于仪器I/O控制函数的测试需要特定的仪 器和接口等硬件设备的支持,介绍时主要 侧重于各种仪器控制的I/O使用步骤和注意 事项,而不在于对仪器的编程使用。
• 实例一: • 假定选用ActiveX控件就是CVI本身,演示
如何利用CVI提供的开发向导建立ActiveX 控件的驱动器。
11
六、 Windows SDK编程
• 1. Windows SDK(Software Development Kit 软件开发工具包)简介
• 1)是windows应用程序开发的API函数集, 包含了所有Windows编程实现的功能;
第五讲 CVI的高级编程
• 一 菜单
• 菜单的设计及其回调函数; • 具体的实验例程分析; • 具体见CVI的菜单设置和使用P96; • 菜单回调函库(P66)
• CVI已经用函数面板的形式封装了主要的数 字分析算法的功能函数,用户可以直接调 用这些函数而不必花力气再进行算法程序 的编写,但它涉及到数值分析、数理统计 等概念;(P67有具体的函数说明)
9
• COM、自动化和ActiveX是非常复杂的高级 编程技术。相关的原理和实现可以参看有 关windows的书籍。
10
五、 CVI对ActiveX控件的支持
• CVI开发环境提供了使用ActiveX控件的标 准函数库和开发工具,ActiveX Automation 函数库提供了使用、控制ActiveX控件的各 种功能函数,可以使用这些函数调用 ActiveX服务器。

CVI入门教程

CVI入门教程

目录LabWindows/CVI入门培训教程 (2)1 LabWindows/CVI编程环境介绍 (2)LabWindows/CVI的开发窗口 (2)LabWindows/CVI的菜单与工具条 (6)函数面板与交互运行窗口 (7)LabWindows/CVI的调试工具 (16)2 LabWindows/CVI图形用户界面编辑 (22)2.1 LabWindows/CVI的图形用户界面的创建 (22)2.2 事件驱动与回调函数 (24)LabWindows/CVI的自动代码生成 (24)常用的GUI控件操作函数以及典型控件的使用 (24)3 基本的数据采集与仪器控制演示 (33)数据采集 (33)仪器控制 (39)LabWindows/CVI入门培训教程本课程要达到的目标:一、了解LabWindows/CVI编程环境的基本操作;二、可以编写简单的数据采集以及仪器控制程序。

本课程由以下三部分构成:一、LabWindows/CVI编程环境介绍;二、图形用户界面的编辑方法;三、基本的数据采集以及仪器控制演示。

1 LabWindows/CVI编程环境介绍LabWindows/CVI是一个ANSI C的集成开发环境。

它包含了32位的编译、链接器,以及先进的编辑与调试工具。

在这里,将简要介绍CVI的集成开发环境,包括它的开发窗口、菜单、工具栏、函数面板以及调试工具等。

1.1LabWindows/CVI的开发窗口工作区窗口在启动CVI并载入工程文件之后,可以看到类似图1的工作区窗口:图1. 工作区窗口工作区窗口包含了LabWindows/CVI开发环境的多个组件。

在工作区窗口的窗口限制区可以查看代码编辑窗口、用户界面编辑器以及函数树编辑器。

输出窗口区则包含了错误、调试以及结果窗口。

在工作区窗口,还可以看到项目结构树以及库函数结构树。

通过项目结构树可以访问工作区中每个项目中的文件。

通过库函数结构树可以访问LabWindows/CVI的库函数以及载入的设备驱动的函数面板。

cvi教程

cvi教程

第十讲 数据库应用程序设计
2. 结构化查询语言(Structured Query Language, SQL)
• • 利用SQL即可实现对数据库的各种交互操作,SQL是关 系型数据库管理系统的标准语言。 一些经常用到的SQL命令:


2015/12/11
CREATE TABLE—创建一个新的表,指定每列的名字和数据类 型。 SELECT—回收表中符合特定条件的所有行。 INSERT—将一个新的记录添加到表中,接着可以对行赋值。 UPDATE—改变指定行里符合特定条件的所有列的值。 DELETE—删除符合特定条件的所有行。
2015/12/11 12/15
第十讲 数据库应用程序设计
• 步骤4. 断开SQL连接
SQL操作结束后,应断开SQL连接来释放系统资源。 这个步骤在任何方向上取值时都是特别重要的,它可 保证工具包适当地关闭并删除临时登记文件。
• 步骤5. 断开数据库
全部数据库操作结束时,应断开通过SQL建立的数据 库连接,以适时地释放系统资源。
• 必须对使用的ODBC驱动器进行注册。 • 用控制面板上的ODBC管理器图标注册并配置驱 动器使其成为对应用可用的数据源。 • 举例
2015/12/11
7/15
第十讲 数据库应用程序设计
5. Table控件
• 利用表格控件可以输入或浏览数据。表格中每 个单元格均可显示数字型数据、文本型数据或 图形数据。
1. 数据库的基础知识
• 数据库由组织好的数据集组成。虽内在细节有 所不同,但最新的数据库管理系统(DBMS)都将 数据存为表的形式。 • 表的结构通过记录和字段构成的二维形式来实 现(其中,记录又称为行,字段又称为列)。 • 数据库中每个表必须有一个唯一的名字。类似 地,表中每个字段必须有一个唯一的名字。

LabWindowsCVI教程

LabWindowsCVI教程

LabWindowsCVI教程第⼀章 : LabWindows/CVI1.1 LabWindows/CVI1.1.1 LabWindows/CVI概述LabWindows/CVI是美国NI(National Instruments)公司开发的⾯向计算机测控领域的虚拟仪器软件开发平台,可以在多种操作系统(WindowsXP/Vista/7、Mac OS和Unix)下运⾏。

LabWindows/CVI 是为C 语⾔程序员提供的集成开发环境(IDE),在此开发环境中可以利⽤C语⾔及其提供的库函数来实现程序的设计、编辑、编译、链接、调试。

使⽤LabWindows/CVI 可以完成以下但不限于以下⼯作:·交互式的程序开发;·具有功能强⼤的函数库,⽤来创建数据采集和仪器控制的应⽤程序;·充分利⽤完备的软件⼯具进⾏数据采集、分析和显⽰;·利⽤向导开发IVI 仪器驱动程序和创建ActiveX 服务器;·为其它程序开发C ⽬标模块、动态连接库(DLL)、C 语⾔库。

图 1‐1 LabWindows/CVI界⾯LabWindows/CVI 的功能强⼤在于它提供了丰富的函数库。

利⽤这些库函数除可实现常规的程序设计外,还可实现更加复杂的数据采集和仪器控制系统的开发。

数据采集。

IVI库、GPIB/GPIB 488.2库、NI-DAQmx库、传统的NI-DAQ库、RS-232库、VISA库、VXI库以及NI-CAN库。

数据分析。

格式化IO库、分析库以及可选的⾼级分析库。

GUI库。

使⽤LabWindows/CVI 的⽤户界⾯编辑器可以创建并编辑图形⽤户界⾯(GUI),⽽使⽤LabWindows/CVI 的⽤户界⾯库函数可以在程序中创建并控制GUI。

此外,LabWindows/CVI为GUI ⾯板的设计,准备了许多专业控件,如:曲线图控件、带状图控件、表头、旋钮和指⽰灯等,以适应测控系统软件开发的需求,利⽤这些控件可以设计出专业的测控程序界⾯。

cvi教程

cvi教程

5. 多线程间的数据保护
1. 为什么要保护数据
• 如果一个变量被多个线程访问,必须保护它以确保它的 数值不被破坏 在程序中只有多个线程访问的变量才必须需要保护。全 局变量、静态局部变量和动态分配的内存位于公共内存 区域,可以被程序中的所有线程访问,存放在这类内存 区域中的数据必须保护以免多个线程同时访问。 函数参数和非静态局部变量位于堆栈中,操作系统为每 个线程分配了单独的堆栈,每个线程因此获得自己的参 数和非静态局部变量的拷贝,所以参数和非静态局部变 量不需要保护。
int NewAsyncTimer (double Interval, int Count, int Initial_State, void *Event_Function, void *Callback_Data); int CVICALLBACK FunctionName (int reserved, int timerId, int event,void *callbackData, int eventData1, int eventData2);
6. 线程的优先级
1. Windows允许定义每个进程和线程中的工作 的相对重要性,也就是优先级。 2. 如果设定一个进程或进程中的线程一个较高 的优先级,这个进程或线程就比其它较低优 先级的线程获得更大的优先权。这意味着当 有多个线程准备运行时,允许最高优先级的 线程先运行。 3. Windows把优先级分成若干等级,所有在同 一个进程中的线程拥有相同的优先等级。进 程中的每一个线程都有一个相对于这个进程 11/13 的优先等级的优先级。 2015/12/11
LabWindows/CVI教程(8)
多线程程序设计
主讲:乔立岩
Email: qiaoliyan@ (交作业) MSN: qiaoliyan@(在线交流) Tel: 86413532 ext. 8611 (逸夫楼611)

cvi培训讲义

cvi培训讲义

37/78
5、常用函数
7、数据格式化(Libraries->ANSI C->String Handling->..) (Libraries->ANSI C->General Utilities>..) (Libraries->Formatting and I/O Library->Data Formatting->..)
8/78
4、构建一个简单程序
1、建立工程文件 2、创建用户界面文件,设置面板 3、向面板添加控件,设置控件属性 4、生成源代码文件 ,生成Main函数及各控件回 调函数,编写代码 5、运行和调试程序 6、生成可执行文件和发布文件
(演示:创建一个工程文件,演示各项操作)
9/78
二、基础篇

36/78
5、常用函数
6、字符串操作(Libraries->ANSI C->String Handling->..)

strlen 获取字符串的长度 strcpy, strncpy 字符串拷贝(全部,前n个字符) strcmp, strncmp, stricmp字符串比较(全部,前n个字 符,不区分大小写比较) strcat, strncat 字符串连接(全部,前n个字符) strchr 在字符串中查询某个字符 strstr 在字符串中查询字符串 ……
21/78
1、基本控件的使用及编程

数字图控件(Digital Chart)
22/78
1、基本控件的使用及编程

定时器控件(Timer)

画布控件(Canvas)
23/78
1、基本控件的使用及编程

cvi培训讲义资料

cvi培训讲义资料

21/78
1、基本控件的使用及编程

数字图控件(Digital Chart)
22/78
1、基本控件的使用及编程

定时器控件(Timer)

画布控件(Canvas)
23/78
1、基本控件的使用及编程

分隔栏控件(Splitter)
24/78
1、基本控件的使用及编程

分页控件(Tab)
25/78
1、基本控件的使用及编程 2、弹出式面板 3、创建菜单 4、文件的读写操作 5、常用函数
10/78
1、基本控件的使用及编程

数值型(Numeric):数值控件、颜色选择控件、 数值滑动条等。
11/78
1、基本控件的使用及编程

文本型(Text):字符串控件,文本信息,文本 框。
12/78
1、基本控件的使用及编程
3、CVI的开发环境
工作空间窗口: 工程目录区:左上角,显示工程架构 函数目录区:左下角,显示函数库和仪器库目录。双击 函数名,即可打开对应的函数面板。 窗口区:右半部分,编辑用户界面、源代码及函数面板。 输出区:右半部下方,显示编译、运行及源代码等的错误 信息。 运行区:右半部下方,显示变量、监视、内存等信息。

表格控件(Table)
18/78
1、基本控件的使用及编程

图形控件(Graph):曲线图控件、带状图控件、 数字图控件
曲线图控件(Graph)
(演示: ..\LabWindows\3\graph)

19/78
1、基本控件的使用及编程

带状图控件(Strip Chart)
20/78
1、基本控件的使用及编程

LabWindowsCVI基础教程-授课用

LabWindowsCVI基础教程-授课用

LabWindows/CVI基础教程第一部分CVI快速入门第一章初步认识CVI程序设计——从一个例子开始第一步:分析方案要求,提出预想界面与所需函数我们的第一个示例将很简单,我们所要做的是创建一个如下的图形用户界面(User Interface)。

当我们按下Acquire按扭,计算机会自动产生一个正弦波形并画在图形显示区中;当按下Clear按扭后则清除正弦波形;当按下Quit按扭后退出该程序。

现在我们就开使创建该程序。

首先按下面步骤起动CVI:开始>>程序>>National Instrument CVI>>CVI IDE或者直接从桌面起动CVI 的快捷方式,双击桌面National Instrument CVI 图标当LabWindows/CVI打开后你就会见到如下所示的一个空的项目(Project)窗:第二步:创建用户界面1、创建控件元素:从Project窗中选择:File>>New>>User Interface(*.uir)…创建一个用户接口文件(*.uir),CVI会自动弹出如下所示的窗口:在该窗中Untitled Panel的灰色区域中单击鼠标右键,变会弹出一个快捷菜单如下所示:从该菜单中选择:Command Button>>Square Command Button点击左键后便会创建一个方形的按扭。

由于本程序总共需要三个按扭,所以按照上面的步骤再创建两个方形按扭。

从该菜单中选择:Graph>>Graph ,创建一个用于图形显示的Graph。

现在我们已经建好了用户界面所需的控件元素,请使用鼠标把它们拖到如下图所示的位置。

2、修改用户界面中各控件元素的属性:1)修改Panel的属性:在Untitled Panel中双击一下,便会弹出Panel的一个Edit Panel窗,如下图所示:a.将Panel Title项中的Untitled Panel改为Demo Panel.说明:通过这种方式你可以修改Panel顶端所显示的名字。

cvi定时器的用法

cvi定时器的用法

cvi定时器的用法
CVI(C for Virtual Instrumentation)中的定时器可以用于在特定的时间间隔内执行特定的任务。

下面是使用CVI定时器的一般步骤:
1. 包含头文件:在CVI程序中,需要包含CVI定时器的头文件。

通常情况下,该头文件名为“cvi_timer.h”。

2. 创建定时器:使用CVI提供的函数创建定时器。

例如,可以使用
“Cvi_Timer_Create”函数创建一个定时器。

该函数需要指定定时器的名称、回调函数、参数等参数。

3. 启动定时器:使用CVI提供的函数启动定时器。

例如,可以使用
“Cvi_Timer_Start”函数启动定时器。

该函数需要指定定时器的名称和时间间隔等参数。

4. 编写回调函数:当定时器时间间隔到达时,CVI将调用回调函数。

回调函数由用户提供,用于在定时器触发时执行特定的任务。

在回调函数中,可以通过访问传递给定时器的参数来获取所需的信息。

5. 停止定时器:当不再需要定时器时,可以使用CVI提供的函数停止定时器。

例如,可以使用“Cvi_Timer_Stop”函数停止定时器。

6. 销毁定时器:在程序结束之前,需要使用CVI提供的函数销毁定时器。

例如,可以使用“Cvi_Timer_Destroy”函数销毁定时器。

总之,使用CVI定时器需要了解CVI的API,并按照上述步骤进行操作。

通过创建、启动、编写回调函数、停止和销毁定时器,可以在CVI程序中实现定时任务。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2/34
仪器驱动程序的概念
仪器驱动程序是一套可被用户调用的子程序 库,利用它就不必了解每个仪器的编程协议 和具体编程步骤,只需调用相应的一些函数 就可以完成对仪器各种功能的操作。 仪器驱动程序一般是控制物理仪器的,但也 有的是纯软件工具。
3/34
一、 VXIplug&play 规范
1993年NI、Tektronics、Racal等著名仪器 公司成立了VXIplug&play 联盟并制定了 VXIplug&play 规范,简称VPP规范。 VPP联盟目标:提高VXI技术最终用户的使 用简易性。 VPP规范目的:解决多生产厂家的VXI系统 的易操作性和互操作性问题,并提供给用户 进行系统维护、再开发的能力。 VPP联盟网址:
初始化 函数
子程序接口
VTL或 VISA I/O接 口
9/34
3. 函数树
函数树就是驱动程序为仪器提供的所有 仪器函数的列表及分组关系。
10/34
按照VPP仪器驱动程序内部设计模型的 要求,对于任何仪器,都应有最小函数 树。 最小函数树包括初始化、关闭、错误消 息、错误查询、复位,自检和版本查询, 还应包括至少一个功能函数。
25/34
2. VPP规范对软面板的要求
VPP规范规定每一个VXIplug&play仪器都在 其安装盘上提供软面板。它使用户不必编写测试 程序就可以检验仪器的通信和操作,这样能够大 大减少组建和检验一个VXI系统的时间。 1、VPP软面板必须作为一个独立的应用程序运 行,仅使用计算机、操作系统及驱动程序库,不 应依赖于任何特定的应用程序开发环境。
15/34
1. VISA的作用
a. 为整个工业界提供统一的软件基础 b. 对驱动程序、应用程序不必考虑接口类型 c. 仅规定为用户提供的标准函数,不对具体实 现作任何说明 d. 用于编写符合VPP规范的仪器驱动程序,完 成计算机与仪器之间的命令和数据传输,实 现对仪器的控制。 e. VISA库作为低层 I/O 接口软件,运行于计 算机系统中。
18/34
② 资源操作类函数
• 寄存器基仪器通讯


viIn8, viIn16, viIn32
viIn16 (dmmHandle, VI_A16_SPACE, 0, &manufactureID);

viOut8, viOut16, viOut32 viOut16 (dmmHandle, VI_A16_SPACE, 4, 0); viRead, viWrite viRead (dmmHandle, readbuf, 100, &count); viWrite (dmmHandle, writebuf, 100, &count); viPrintf, viScanf viPrintf (dmmHandle, "*IDN?\n"); viScanf (dmmHandle, "%t", result);
13/34
5. 函数面板和函数树设计
LabWindows/CVI提供函数面板的设计工具 设计步骤: • 了解仪器功能,根据功能规划编辑函数面板树。 • 规划函数树,在最小树基础上扩充。 • 生成仪器驱动程序工程文件(.prj) • 设计函数树和函数面板(.fp, .c, .h) • 完成驱动程序每个函数的代码(.c) •-4)
VISA:Virtual Instrumentation Software Architecture,即虚拟仪器软件结构,是 VPP系统联盟制定的I/O接口软件标准及其 相关规范的总称。 VISA为虚拟仪器提供了标准化的I/O接口软 件规范。VISA是整个工业界的统一的软件 基础。 虚拟仪器软件结构中的标准 I/O 接口软件称 为VISA库。
4/34
1. VPP 规范的特点
a. b. c. d. e. 由仪器生产厂家提供 提供程序源代码 程序结构化与模块化 设计与实现的一致性 兼容性与开放性 VPP规范对仪器驱动程序的要求不仅适用于 VXI仪器,也同样适用于GPIB仪器、PXI仪 器、串行口仪器、网络仪器、USB仪器等。 已经成为了虚拟仪器驱动程序设计的事实标 准。 5/34
23/34
传统仪器面板
虚拟仪器软面板
24/34
1. 软面板的作用
a. 利用软面板检验仪器的通信和功能,同时也 可利用它作为学习工具,演示仪器的控制和 功能。 b. 软面板采用图形用户接口(GUI)技术来显 示等效的旋钮、按键及控制器。用户通过鼠 标或计算机键盘操纵这些控制器。图形显示 提供同传统前面板方式相似的测量结果和仪 器状态,从而让用户以熟悉的方法控制仪器。
21/34
⑤ VISA函数应用举例
void main(void)
{
error=viOpenDefaultRM (&rsrcManager); /*打开VISA资源管理器*/ //rsrcManager为得到的VISA资源管理器句柄 if(error!=VI_SUCCESS) /*如果出错,弹出错误信息对话框,返回*/ { MessagePopup("Error","Open VISA Resource Manager Error!"); return; } error = viOpen (rsrcManager, "VXI0::16::INSTR", VI_NULL, VI_NULL, &instHandle); //instHandle为得到的仪器句柄 if(error!=VI_SUCCESS){ MessagePopup("Error","Open Instrument Error!"); return; } else{ /*获取仪器模块代码,设置仪器操作超时时间为2000毫秒*/ viGetAttribute (instHandle, VI_ATTR_MODEL_CODE, &moduleID); viSetAttribute (instHandle, VI_ATTR_TMO_VALUE, 2000); } viClose(instHandle); /*关闭仪器句柄和VISA资源管理器*/ viClose(rsrcManager);
}
22/34
四、 软面板 Soft Panel(VPP-7)


虚拟仪器一般没有了操作面板,必须借助 PC机作为其数据分析与显示的工具,利 用PC机强大的图形显示和在线帮助功能, 建立图形化的虚拟仪器面板,完成对仪器 控制、数据分析与显示。 VPP软面板是一个特殊的测试应用程序, 它为仪器模块提供一个替代前面板的控制 接口。该控制接口不是在仪器前面板上, 而是在计算机显示器上。
2. VPP规范的内容
标准代号 VPP-1 VPP-2 VPP-3 仪器驱动程序 规范 VPP-4.3 虚拟仪器软件 结构规范 VPP-6 VPP-7 VPP-8 VPP-9 VPP-3.1 VPP-3.2 VPP-3.3 VPP-3.4 VPP-4.3 VPP-4.3.2 VPP-4.3.3 标准名称 VPP系统联盟章程 VPP系统框架规范 VPP仪器驱动程序结构和设计规范 VPP仪器驱动程序函数体规范 VPP仪器驱动程序交互式开发接口规范 VPP仪器驱动程序编程式开发接口规范 VISA库 文本语言VISA实现规范 G语言VISA实现规范 安装和包装规范 软面板规范 VXI模块/机箱和接收器互连 仪器制造商缩写规则

消息基仪器通讯


格式化I/O

19/34
③ 资源模板 • 事件处理
viEnableEvent, viDisableEvent viInstallHandler, viUninstallHandler viWaitOnEvent
viGetAttribute, viSetAttribute
11/34
4. 函数面板
函数树中的每一个函数都应具有函数面板,它是 对仪器驱动程序函数的图形化描述。
12/34
函数面板的帮助
• 函数帮助:描述面板上的函数功能和相关的辅 助函数。 • 控件帮助:对应函数的输入和输出参数,列举 参数名,并描述参数,变量类型,有效范围和错误 值。 • 返回帮助:描述返回值变量类型和可能的错误 值。

资源属性

20/34
④ 用VISA函数操作仪器的步骤
打开VISA资源管理器句柄,用到的函数: viOpenDefaultRM; 打开仪器句柄,用到的函数:viFindRsrc、 viFindNext、viOpen等; 设置仪器状态、控制仪器操作、读取测量数据、处 理仪器事件,用到的函数: viGetAttribute、 viSetAttribute、viIn16、viOut16、viPrintf、 viScanf、viInstallHandler、viUninstallHandler、 viEnableEvent、viDisableEvent、viWaitOnEvent 等; 释放仪器句柄,用到的函数:viClose; 释放VISA资源管理器句柄,用到的函数:viClose。
16/34
2. VISA的特点
a. 适用于各类仪器:VXI, PXI, GPIB, RS-232, TCP, USB… … b. 与硬件接口无关 c. 既适用于单处理器结构又适用于多处理器或 分布式结构 d. 适用于多种网络机制
17/34
3. VISA库函数
① 资源管理类函数
• viOpenDefaultRM (ViPSession Rsrc_Manager_Handle); viOpenDefaultRM(&defaultRMHandle); • ViStatus viOpen (ViSession Rsrc_Manager_Handle, ViRsrc Instrument_Descriptor, ViAccessMode Access_Mode, ViUInt32 Open_Timeout, ViPSession Instrument_Handle); viOpen (defaultRMHandle, "VXI0::24::INSTR", VI_NULL, VI_NULL, &dmmHandle); • ViStatus viClose (ViSession Session_Handle); viClose(dmmHandle);
相关文档
最新文档