LabWindow-CVI教程(6)串行口和络通讯主讲:乔立岩-文档资料

合集下载

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 面板的设计,准备了许多专业控件,如:曲线图控件、带状图控件、表头、旋钮和指示灯等,以适应测控系统软件开发的需求,利用这些控件可以设计出专业的测控程序界面。

基于Lab Windows/CVI的PC与 DSP的串行通信.

基于Lab Windows/CVI的PC与 DSP的串行通信.

基于Lab Windows/CVI的PC与 DSP的串行通信摘要:实现了一种全集成可变带宽中频宽带低通滤波器,讨论分析了跨导放大器-电容(OTA—C)连续时间型滤波器的结构、设计和具体实现,使用外部可编程电路对所设计滤波器带宽进行控制,并利用ADS软件进行电路设计和仿真验证。

仿真结果表明,该滤波器带宽的可调范围为1~26 MHz,阻带抑制率大于35 dB,带内波纹小于0.5 dB,采用1.8 V电源,TSMC 0.18μm CMOS工艺库仿真,功耗小于21 mW,频响曲线接近理想状态。

关键词:Butte0 引言随着数字信号处理理论及微电子技术的高速发展,数字信号处理器(DSP)已广泛应用于各个控制领域。

而在控制系统中,通常会利用PC机与DSP之间的通信来对系统各个状态/参数进行监控。

这种方法既利用了DSP功耗低、价格相对便宜、功能强大、抗干扰能力强、适宜于分布现场等优点,同时又结合了PC机的软硬件资源丰富、管理功能强大、人机界面友好、操控平台稳定可靠、数据通信方便快捷等系统功能优势。

为此,本文拟通过使用比较广泛的RS-232-C接口标准来研究PC与TMS320F2812 DSP之间的异步串行通信。

1 硬件设计这里采用最简单的三线连接方法,即PC机与DSP的发送、接收端彼此交叉连接,地线对应连接的方法。

另外,由于DSP的串行通信接口SCI的两个外部引脚SCITXD和SCIRXD的信号为TTL电平,与RS-232-C标准逻辑电平不一致,因此,要进行信号电平转换后才能连接到PC机的串口接头DB9,图1所示是其硬件连接电路,其中电平转换选用MAX3232芯片和若干电容来实现,使用时只用其中的一对收/发单元。

2 软件设计2.1 通信协议本设计将通信的帧格式设置为1个起始位,8个数据位,无奇偶校验位,1个停止位。

图2所示为其数据帧格式,其传输波特率为9600 bps,采用全双工通信方法。

PC机发送数据包的格式是:包头+功能码+参数码+数据内容+校验和,本设计分别设置它们占1、2、2、4、4个字节。

基于Lab Windows/CVI技术虚拟特征信号提取仪的设计

基于Lab Windows/CVI技术虚拟特征信号提取仪的设计

基于Lab Windows/CVI技术虚拟特征信号提取仪的设计【摘要】基于MATLAB的强大科学计算功能,研究了其与Lab Windows/CVI 接口技术,并利用该技术对复杂混合信号进行特征信号分析提取处理。

在实验室采用信号发生器模拟外部现场信号对所设计的测试系统进行测试,证明该系统能够较得到预期的效果。

【关键词】特征信号;提取仪;虚拟仪器;Lab Windows/CVI;MATLAB特征信号的提取是许多工程中重要的识别手段。

通常情况下,特征信号淹没在含噪声的其他信号之中,单纯从原始信号来看,是很难区分出来的。

由于小波多分辨分析是与时频分析同时进行的,且有波形各异的小波可供选择,因此,在特征信号的提取方面,显示出了其独特的功能。

MATLAB是目前功能最为齐全的仿真软件,Lab Windows/CVI是以ANSI C为核心,将功能强大、使用灵活的C语言平台与数据采集和分析等测控专业工具有机结合起来,为熟悉C语言的开发人员开发检测、数据采集、过程监控等系统提供了一个理想的软件开发环境[1-3]。

bWindows/CVI和MATLAB的接口原理与方法建立LabWindows/CVI和Matlab之间的接口是为了能在LabWindows/CVI 环境下调用Matlab的功能函数,运行Matlab环境下的程序,以实现LabWindows/CVI环境下的混合编程。

实质就是要在LabWindows/CVI环境下建立一个数据交换ActiveX的服务控件。

实现LabWindows/CVI和Matlab结合的关键是其数据和命令的交换,即软接口技术。

Matlab系统和LabWindows/CVI都有提供与外部程序接口的组件,因此,技术的核心是采用正确的方法建立它们之间的联系。

在这里提出了两种方式[2-3,5]。

1)用引擎程序实现软接口LabWindows/CVI环境的引擎程序是采用ANSI C编写的,它通过在程序中调用引擎函数完成与Matlab之间的数据交换和命令传送。

labwindows CVI 教程

labwindows CVI 教程

LabWindows/CVI基础教程序言LabWindows/CVI是National Instruments公司推出的一套面向测控领域的软件开发平台。

它以ANSI C为核心,将功能强大,使用灵活的C语言平台与数据采集,分析和表达的测控专业工具有机地接和起来。

它的集成化开发平台,交互式编程方法,丰富的控件和库函数大大增强了C语言的功能,为熟悉C语言的开发人员建立检测系统,自动测量环境,数据采集系统,过程监控系统等提供了一个理想的软件开发环境。

本教程面向的是那些从未使用过LabWindows/CVI的读者,但是假设读者以有了C语言的基础并且熟悉Windows 2000/9x/NT操作系统。

在每一章节的学习中,作者都是通过一个具体的实例让读者迅速的掌握本章的知识点;而不是长篇大论,述及边枝细叶,反而使读者望而却步,只见树木,不见森林。

想信通过对本教程的学习,读者可迅速掌握LabWindows/CVI编程思想及步骤,为读者日后进一步学习打下基础。

本书约定:“File>>Page Setup>>Opti ons”File 这一种黑色斜体字是指多级菜单名,按扭名,窗口名或者是关键性词汇。

“>>”是指打开一个多级菜单或对话框。

如:File>>Page Setup>>Options是指你首先打开File 菜单,然后选择Page Setup项,最后从弹出的对话框中选择Options 项。

“说明:通过这种方式你可以修改Panel顶端所显示的名字。

”该种字体所写的文字是值得读者注意并记忆的内容。

“”该椭圆形框所框住的内容是读者需修改的地方。

第一部分CVI快速入门本部分通过编制一个简单的LabWindows/CVI程序,使读者对CVI编程环境,思想及步骤有一初步的认识。

第一章初步认识CVI程序设计——从一个例子开始我们的第一个示例将很简单,我们所要做的是创建一个如下的图形用户界面(User Interface)。

LabWindowsCVI教程(2)用户图形界面设计乔立岩

LabWindowsCVI教程(2)用户图形界面设计乔立岩

28/38

分页控件(Tab)
2012-10-23淘花/专用29/38定制控件(Custom Control)
2012-10-23淘花/专用30/38 通用控件操作函数: GetCtrlVal


int GetCtrlVal (int Panel_Handle, int Control_ID, void *Value); GetCtrlVal (testPanelHandle, NUMERIC_VOL, &voltage);

NewSubMenu




DiscardMenu DiscardSubMenu DiscardMenuItem ……
2012-10-23淘花/专用14/384. 控件设计

控件种类:

数值型(Numeric):数值控件,颜色选择控件,数值滑动条
2012-10-23淘花/专用15/38图形用户界面设计
1.
图形用户界面(Graphical User Interface)

面板(panel) 菜单条(menu bar) 控件(control) LabWindows/CVI自定义的资源格式 其它资源的容器 面板属性编辑器 使用用户界面设计p

等待输入字符信息对话框

int PromptPopup (char Title[], char Message[], char Response_Buffer[], int Max_Response_Length); PromptPopup ("输入信息", "请输入姓名", &name, 20anel 隐藏面板 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 …

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

cvi教程解析

cvi教程解析
2018/10/16
21/34
4. 虚拟仪器软件标准
VXIplug&play

(VPP);
Virtual Instrument Software Architecture (VISA)
Interchangeable
Virtual Instruments (IVI) A Broad-Based Environment for Test (ABBET) IEEE1226
虚拟仪器技术
Technique of Virtual Instruments
乔立岩
/531net/instrument Email: qiaoliyan@ MSN: qiaoliyan@ Tel: 86413532/33 ext. 526 Office: 科学园2A栋526
2018/10/16
28/34
9. 与传统仪器比较
项目
仪器定义 中心环节 功能设定 开放性
传统仪器
仪器厂商 硬件是关键 用户
虚拟仪器
软件是关键
仪器的功能、规模均 系统功能和规模可通过软件修 已固定 改和增减 封闭的系统,与其它 基于计算机的开放系统,可方 设备连接受限 便地同外设、网络及其它设备 连接 价格昂贵 慢(5~10年) 价格低,可重复使用 快(1~2年)
早期的仪器命令标准:
Standard
Commands for Programmable Instrument (SCPI) IEEE488.2
2018/10/16
22/34
5. 虚拟仪器的组成
按照虚拟仪器的组成划分,它可以分为计 算机、应用软件和仪器硬件三个部分。
计算机:提供虚拟仪器通用平台,数据存储,

基于Labwindows_CVI的USB与PC机的通信

基于Labwindows_CVI的USB与PC机的通信

2 通信软件设计
将 USB 设备与 PC 机连接之后, 首先打开 VISA 资源管理器, 用函数 V i O penDefaultRM 得到 V ISA 资源 管理器句柄, 然后用函数 V i O pen打开 USB 设备句柄。要与 USB 设备进行通信, 就得遵守 USB 的通信协 议。端点是主机和设备之间的一个逻辑通道, 每一个 USB 设备都支持几个确定的端点, 而每一个端点仅与 [ 3] 一个方面的数据传输相对应 , 所以在主机和 USB 设备之间的双向传输就要有两个端点相对应 。因此, 我们要利用 V iS etA ttribute函数设置发送和接收端点。为了检查端点是否设置正确, 可以用 V iG et A ttribute 函数查看结果。 VISA 系统已经对一些属性进行了设置, 对于 USB 我们可以使用默认值。 上述工作做完后我们 就可以使用函数 V iR ead 和 VW i rite 进行读写数据。其它任 务使用 L abw in dow s/CV I和 C 语言编程相结合很容易完成。 最后, 用函数 V iC lose 释放仪器和资源管理器句柄。 [ 2] 程序的主要函数代码 如下 : S tatus= v i O penDefau ltRM (& de faultRM ) ; S tatus= v i O pen( defau ltRM, USB 设备描述符 , V I_NULL, V I_NULL, & usb H and le) ; v iSe t A ttribute( usbH andle , V I_ATTR _ USB_BULK _ OUT _P IPE, 1) ; vW i rite( usb H and le , bu,f 32 , V I_NULL ); vi R ead( usbH andle , bu, f 32 , V I_ NULL ) ; vi C lo se( defaultRM ); vi C lo se( usb H andle)

LabwindowsCVI学习技巧与资料

LabwindowsCVI学习技巧与资料

LabwindowsCVI学习技巧与资料测控软件一般包括:用户界面、程序控制、数据采集和数据分析4部分。

CVI文件一般包括:工程文件(Pr)、源文件(.C)、头文件(h)和用户界面文件(.uir).Labwindows技巧学习必看(摘录)CVICVI是基于ANSI C的快速开发环境,适用于有C,C++基础。

使用VB,VC,BC运用控件式组织用户界面的工程师Build--Target Type--Dynamic Link LibraryCVI 是事件驱动式的运行方法,排除响应各个事件,造成显示滞后。

需要强制在函数中加入“Process system event()CVI对多线程的支持(1)概念篇每个进程至少有一人上基本线程(主线程)线程与数据一起隔离在某一物理区域,在进程中声明的数据可通过该线程进行访问。

如何实现CVI窗体的全屏?GetMonitorFromPanel(Main,&montior);//获得显示器IDGetMonitorAttribute(monitor,ATTR_HEIGHT,&height);//得到高度GetMonitorAttribute(monitor,ATTR)WIDTH,&width);//得到宽度SetPanelSize(Main,height-25,width);//设置窗口高宽度(高度需要去除任务栏的部分)SetPanelPos(Main,25,0);//设置窗口位置如何在LABWINDOWS中调用MATLAB程序?CVI和Matlab混合编程,必须要行安装Matlab在CVI中,建立ActiveX控制服务器,选择MatlabAutomatin Server type Library(Matlab必须在CVI之前安装才能看到这个选项),创建后将生成三个文件,XXX.FPxxx.C和XXX.h,将.C和.H文件包含在CVI工程中就可以了。

.C文件中包含着CVI和 Matlab的接口函数。

LabWindowCVI安装方法

LabWindowCVI安装方法

LabWindows/CVI 2009你下载完成后,你看到的下载文件,如下图所示!需要解压缩这个文件,在该文件上点击右键,选择加“压缩到NILWCVI2009SP1”,这样你在你的电脑上多了一个叫“NILWCVI2009SP1”的文件夹!如下图所示打开“NILWCVI2009SP1”文件夹,选择文件夹下的setup.exe,双击打开该文件,这个时候会出现LabWindows的安装界面!如下图所示点击next按钮,进行下一步安装!这是会出现让你输入软件的序列号,这个没有怎么获取呢?如下图所示关于序列号的获取方法可以参看我的另外一篇经验文章!里面有详细的描述,这里就不在赘述了!文章链接为:/article/597035521808e98fc0074031.html根据上一步的操作获取到序列号之后,将序列号粘贴到对应的框中,点击next按钮,会出现亲切的选择安装路径的界面了!注意:这时候不要关闭序列号生成器,因为后边的激活操作还需要它生成Lic文件!一直点击next按钮,直到出现下图所示的界面,这个时候注意:你需要取消掉这个勾,取消更新检测!因为更新检测的时间挺长的,没有必要检测!!然后点击next按钮执行安装下一步,这个时候就可以真正的进行安装了,这时你会看到如下图的安装进度条,看到这个,说明你的软件正在安装过程中了,这个时候你可以去喝口茶,等安装完之后,只差最后的一步就可以完美激活你的软件了!O(∩_∩)O哈哈~END注意事项序列号生成之后,这时不要关闭序列号生成器,因为后边的激活操作还需要它生成Lic文件!如果你已经关闭了序列号生成器,那也不要紧,这时候你执行激活的时候,就要非常认真的看我写的经验了哦!要不接下来的激活会很费劲!LabWindows/CVI2009 激活1浏览:3842|3更新:2013-04-12 15:291),安装CVI_FDS_2009 ,到需要注册号时暂停。

2),运行注册机,选择“Full Development System”,点击“生成”得到系列号。

nilabwindowscvi串口编程rs232教程

nilabwindowscvi串口编程rs232教程

nilabwindowscvi串口编程rs232教程在介绍具体的RS-232 函数库之前,本节先简要介绍RS-232C 接口。

美国电子工业协会(EIA)公布的RS-232C 是用的最多的一种串行通信标准,它是从CCITT 远程通信标准中导出的,用于数据终端设备(DTE)和数据通信设备(DEC)之间的接口。

该标准包括按位串行传输的电气和机械方面的规定。

一、接口信号RS-232C 的机械指标规定:RS-232C 接口通向外部的连接器(插针插座)是一种“D”型25 针插头。

由于25 芯中有许多是不常用的,IBM-PC 对其进行了简化,取了其中的常用的9 芯,构成了9 芯RS-232C 串行接口,使其成为一种事实上的串行接口标准配置。

RS-232C 的“D”型9 针插头引脚定义如图4-13 所示。

RS-232C 标准接口中的主要信号是“发送数据”和“接收数据”,它们用来在两个系统或设备之间传送串行信息。

对于异步通信,传输的串行位数据信息的单位是字符。

二、数据传送格式和电气特性图 4-14 示出了RS-232C 以位串行方式传输数据的格式,这是微机系统中最通用的格式。

7 位ASCII 码数据的连续传送由最低有效数字位开始,而以奇偶校验位结束。

应当指出,RS-232C 标准接口并不限于ASCII 数据,事实上还可有5 到8 个数据位,后加一奇偶校验位,并有1 或2 位停止位。

在电性能方面,这一标准使用负逻辑。

逻辑1 电平是在-15V 到-5V 范围内,逻辑0电平则在+5V 到+15V 范围内。

它要求RS-232C 接收器必须能识别低至+3V 的信号作为逻辑0,而识别高至-3V 的信号作为逻辑1,这意味着有2V 的噪声容限。

RS-232C 进行数据传输的最高速率为20KB/S,通信距离最长为15m。

RS-232 函数库概述LabWindows/CVI 提供的RS-232 函数库主要包括以下几类函数:串行口打开/关闭(Open/Close)函数,串行口输入/输出(Input/Output)函数,串行口控制(Control)函数,串行口状态查询(Status)函数,串行口事件处理(Callbacks)函数。

labWindows_CVI 串行口通信和网络数据传输

labWindows_CVI 串行口通信和网络数据传输
▪ i = OpenComConfig (1, “”, 14400, 0, 7, 1, 512, 512); ▪ int CloseCom (int COM_Port); ▪ i = CloseCom (1);
• 读写
▪ int ComRd (int COM_Port, char Buffer[], int Count); ▪ i = ComRd (1, buf, 128); ▪ int ComWrt (int COM_Port, char Buffer[], int Count); ▪ i = ComWrt (1, buf, 128); ▪ int ComRdByte (int COM_Port); ▪ int ComWrtByte (int COM_Port, int Byte);
▪ int RegisterTCPServer (unsigned int Port_Number, tcpFuncPtr Callback_Function, void *Callback_Data);
▪ i=RegisterTCPServer (200, ServerTCPCB, 0) ; ▪ 回调函数:int (*tcpFuncPtr) (unsigned handle, int xType,
▪ int CVICALLBACK ClientTCPCB (unsigned handle, int event, int error, void *callbackData);
• TCP_DISCONNECT • TCP_DATAREADY
2020/5/11
8/11
▪ int DisconnectFromTCPServer (unsigned int Conversation_Handle);

labwindowscvi6串行口通信和网络数据传输

labwindowscvi6串行口通信和网络数据传输
▪ i=ServerTCPWrite (g_hconversation, transmitBuf, strlen (transmitBuf) + 1, 1000) ;
▪ int DisconnectTCPClient (unsigned int Conversation_Handle);
• 客户机函数
▪ notifyCount = 50; // Wait for at least 50 bytes in queue eventChar = 13; // Wait for LF eventMask = LWRS_RXFLAG | LWRS_RECEIVE; InstallComCallback (comport, eventMask, notifyCount, eventChar, ComCallbackFunction, NULL);
• 控制
▪ int FlushInQ (int COM_Port); ▪ int FlushOutQ (int COM_Port);
2020/2/26
3/11
• 状态查询
▪ int GetInQLen (int COM_Port); ▪ i = GetInQLen (1); ▪ int GetOutQLen (int COM_Port); ▪ i = GetOutQLen (1);
▪ int ConnectToTCPServer (unsigned int *Conversation_Handle, unsigned int Port_Number, char Server_Host_Name[], tcpFuncPtr Callback_Function, void *Callback_Data, unsigned int Time_Out);

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文件。

软件激活完成。

LabWindowsCVI教程数据库应用程序的设计主讲乔立岩18页PPT

LabWindowsCVI教程数据库应用程序的设计主讲乔立岩18页PPT
• 步骤2. 激活SQL连接
用LabWindows/CVI SQL工具包可以按几个方式激活SQL语句, 如自动SQL和显式SQL。 ▪ 自动SQL为用户构造SQL语句。自动SQL只能构造简单的 SELECT和CREATE TABLE语句。 ▪ 显式SQL必须将SQL语句传递到函数中。对更复杂的SELECT 语句或其它类型的语句,应采用显式SQL。 ▪ 更多操作控制由相关高级函数执行。
• LabWindows/CVI SQL是一个用来访问数据库的软件工 具包。工具包里包含了一个用来完成一般数据库任务的 高级函数集。
7. 主要特点:
• 可以同任何符合Microsoft Active Data Object (ADO)标 准的产品一起工作。
• 可以同任何符合ODBC的数据库驱动器一起工作。
19.07.2021
14/15
第十讲 数据库应用程序设计
数据库连接
数据库 字段断开 数据库连接
15/15
第十讲 数据库应用程序设计
练习: 1. 编写一个LabWindows/CVI程序,要求能够
产生一个周期的正弦波,并把波形数据存放 到一个数据库文件中,程序能够读取这个数 据库文件,并把波形显示出来。
LabWindowsCVI教程数据库应用程序 的设计主讲乔立岩
16、人民应该为法律而战斗,就像为 了城墙 而战斗 一样。 ——赫 拉克利 特 17、人类对于不公正的行为加以指责 ,并非 因为他 们愿意 做出这 种行为 ,而是 惟恐自 己会成 为这种 行为的 牺牲者 。—— 柏拉图 18、制定法律法令,就是为了不让强 者做什 么事都 横行霸 道。— —奥维 德 19、法律是社会的习惯和思想的结晶 。—— 托·伍·威尔逊 20、人们嘴上挂着的法律,其真实含 义是财 富。— —爱献 生

Lab windowsCVI平台上实现带有握手机制的串行通信精品文档4页

Lab windowsCVI平台上实现带有握手机制的串行通信精品文档4页

Lab windowsCVI平台上实现带有握手机制的串行通信1 系统总体设计单片机和PC机的串行通信采用RS-232接口,系统工作时,单片机上电完成初始化设置后,等待PC机发送询问信号“?”(ASCII码是3FH),单片机接收到3FH后,就通过串口向PC机发送回答信号“.”(ASCII码是2EH),PC机收到回答信号“.”后,发送确认信号“!”(ASCII码是21H),到此就完成了软件握手,下面单片机开始发送数据,PC机接收并显示数据。

2 硬件设计系统中PC机作为上位机,单片机为下位机。

单片机的时钟振荡频率选择11.059MHz。

通过常用电平转换芯片MAX232实现PC机串口和单片机串口的连接,如图1所示。

单片机P2口接8位拨?a开关,通过拨码开关可以设置不同的波特率,如表1所示。

在单片机上电前将拨码开关打到相应位置完成单片机串口波特率的设定。

3 软件设计3.1 通信协议通信协议设定帧格式为:1位起始位,8位数据位,1位停止位,不设奇偶校验位。

有效的通信传输字节只是中间的8位数据位。

单片机的波特率设置由P2口内容设定,PC机的波特率由界面中的波特率选择控件决定,二者的波特率必须保持一致。

3.2 PC机程序设计PC机程序设计部分利用Lab windows/CVI平台进行,使用 Lab windows/CVI首先需建立一个项目文件,包含有用户界面文件(.uir)、C 源码文件(.c)、头文件(.h)、3个部分。

接下来调试好系统软件以后,使用Lab windows/CVI的Distribution Kit工具将项目文件生成应用文件(.EXE)。

3.2.1 用户界面设计创建一个新的工程文件,在工程文件中添加一个新的用户界面文件(.uir),在.uir文件中创建一个面板(panel)和若干控件。

面板和主要控件的属性设置则如表2所示。

设置好以后,还需要按照下面步骤修改设置一些控件属性:设置COMPORT控件的Label/Value属性:向控件Label中添加COM1、COM2、COM3、COM4,相应的Value值设为1、2、3、4,数据类型为int型;设置BAUDRATE 控件的Label/Value值:2400、4800、9600、19200,数据类型同样设为int型;设置CLEAR、READ、TEXTBOX、QUIT、FLUSHOUTQ、FLUSHINQ控件的Dimmed属性的初始值为TRUE[2]。

LabWindowsCVI串口通信函数

LabWindowsCVI串口通信函数

LabWindowsCVI串口通信函数LabWindows/CVI串口通信函数LabWindows/CVI提供的RS-232函数库主要包括以下几类函数:串行口打开/关闭(Open/Close)函数,串行口输入/输出(Input/Output)函数,串行口控制(Control)函数,串行口状态查询(Status)函数和串行口事件处理(Callbacks)函数。

下面分别予以介绍。

1.串行口打开/关闭函数1)OpenCom函数功能:表示以默认的参数设置方式打开一个串口。

该函数原型为:int OpenCom (int COM_Port,char Device_Name[ ] )其中,参数COM_Port为整型变量,用于指定串口号,有效范围为1~1000;Device_Name[]为字符型数组,是用ASCⅡ码字符串表示的串口名。

2)OpenComConfig函数功能:用来打开一个串行口并进行相关的参数设置。

该函数原型为:int OpenComConfig(int COM_Port,char Device_Name[],long Baud_Rate,int Parity,int Data_Bits,int Stop_Bits,int Input_Queue_Size,int Output_Queue_Size)其中,参数COM_Port为整型变量,用于指定串口号,有效范围为1~1000;Device_Name[]为字符型数组,是用ASCⅡ码字符串表示的串口名。

例如,以“COM1”来代替端口1,如果输入值为NULL或一个空字符串,则以COM_Port号作为指定端口号。

Baud_Rate为长整型变量,用来设置串行口的传输速率,标准的传输速率有110、300、600、1200、2400、4800、9600、19200b/s等;默认值为9600。

Parity为整型变量,用来指定奇偶校验模式。

0表示无奇偶校验,1表示奇校验,2表示偶校验;Data_Bits为整型变量,用来指定每帧信息中数据位的个数,可选5、6、7、8;Stop_Bits为整型变量,用来指定每帧信息中停止位的个数,可选1、1.5或2;Input_Queue_Size为整型变量,用来指定串行口输入队列的大小;Output_Queue_Size为整型变量,用来指定串行口输出队列的大小。

labcvi文件和端口编程

labcvi文件和端口编程

• fwrite • size_t fwrite (const void *Buffer, size_t Element_Size,
Number_of_Elements, FILE *Stream); num = fread (data, 4096, 1024, fp);

• ftell • long ftell (FILE *Stream); • pos = ftell (fp); fseek • int fseek (FILE *Stream, long Offset, int Origin); • i = fseek (fp, 256, SEEK_SET);
2019/3/9
6/11
5. 文件应用
• Utilities-File Utilities
DeleteFile • int DeleteFile (char File_Name[]); • i = DeleteFile ("*.doc"); RenameFile • int RenameFile (char Existing_File_Name[], char
2/11
• Programmer’s Toolbox-String Handling
AppendString • int AppendString (char
**Pointer_To_String_To_Append_To, const char String_To_Append[], int Num_Characters_To_Append); • AppendString (str1, str2, -1);
Scan(string,"%s>%s[t#]%f",str1,&value);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档