labviewDAQ学习总结.docx
- 文档编号:23519727
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:19
- 大小:27.60KB
labviewDAQ学习总结.docx
《labviewDAQ学习总结.docx》由会员分享,可在线阅读,更多相关《labviewDAQ学习总结.docx(19页珍藏版)》请在冰豆网上搜索。
labviewDAQ学习总结
使用LabVIEW创建应用程序
如在LabVIEW中对NI-DAQmx支持的设备进行编程,可在MAX或LabVIEW中打开DAQ助手,交互式地创建全局或局部虚拟通道和任务。
详细信息,见DAQ助手帮助。
也可使用NI-DAQmxAPI创建局部虚拟通道和任务,并编写应用程序。
完成下列步骤,在LabVIEW中创建应用程序:
1.打开现有或新建一个LabVIEWVI。
2.使用NI-DAQmxVI和属性构建VI。
关于NI-DAQmxVI的帮助信息,见NI-DAQmxCFunctionReferenceHelp。
关于LabVIEW编程的详细信息,见LabVIEW帮助。
在LabVIEWSignalExpress中创建应用程序
如要在LabVIEWSignalExpress中使用NI-DAQmx支持的设备,可创建一个包含NI-DAQmx步骤的项目。
LabVIEWSignalExpress用于记录和分析数据。
在LabVIEWSignalExpress中,可将在MAX中创建的全局虚拟通道添加至NI-DAQmx步骤。
详细信息见DAQ助手帮助。
完成下列步骤,开始使用LabVIEWSignalExpress:
1.单击AddStep,然后选择AcquireSignals»AcquireDAQmx»AnalogInput»Voltage,放置DAQmx采集步骤。
2.单击+按钮,将通道添加至NI-DAQmx步骤。
关于将DAQ助手与LabVIEWSignalExpress配合使用的帮助信息,见TakinganNI-DAQmxMeasurementinLabVIEWSignalExpress。
关于在LabVIEWSignalExpress中编程的常规帮助信息,见LabVIEWSignalExpressHelp。
疑难解答
安装和配置
关于安装和配置的一般说明,请参考DAQ入门指南和SCXI快速入门手册。
如安装DAQ硬件或软件时有任何问题,请使用下列资源:
∙关于疑难解答指导,请登录
∙关于常见安装和编程问题的疑难解答和NI产品的常见问题解答,请参考
∙如设备已损坏需送回NationalInstruments修理或校准,请访问
对于LabWindows/CVI用户,如DataAcquisition选板不可用,可能要卸载NI-DAQmx然后重新安装,确保NI-DAQmx支持LabWindows/CVI。
如已安装LabWindows/CVI支持,DataAcquisition仍不可用,请选择Library»Customize。
在CustomizeLibraryMenu对话框中勾选DataAcquisition,然后重新启动LabWindows/CVI。
还需要确认dataacq.lib在bin目录下。
编程
可参考随附的相关ADE范例,了解在ADE中编程的入门知识。
也可访问
使用DAQ助手可交互式地配置全局虚拟通道和任务。
在LabVIEW等NI应用软件中,DAQ助手可自动生成代码。
可使用NISpy分析使用NI应用软件在API中调用的函数。
NISpy用于查看应用程序的执行顺序,并在发生错误时定位错误。
NI-DAQmx帮助中提供了各种常见测量的编程流程图,例如,测量温度、电流、应变、位置和加速度。
外部连接
除该帮助文件中的信号连接之外,MAX中DAQ助手的连线图选项卡也提供连接信号的信息。
校准
∙关于设备外部校准的信息,包括分步校准流程,请访问
∙关于校准概述,包括自校准和外部校准的区别,请参考校准。
∙关于NI-DAQmx设备特定的校准信息,见Device-SpecificCalibration。
∙关于通道校准的信息,见WhatIsChannelCalibration?
CPU占用
如没有其它程序运行,NI-DAQmx将占用100%的CPU资源。
但是,一旦有其它程序请求CPU资源,NI-DAQmx任务将把CPU资源让给请求方。
SCXI系统故障排查
以下是SCXI系统故障排查的一些技巧:
∙MAX是否能建立与机箱的通信?
如不能,尝试下列方法:
将DAQ设备连接至机箱的其它模块。
试用其它电缆装置。
试用其它机箱。
试用其它DAQ设备。
如有多个机箱,先断开连接。
然后按个重新连接,找出故障所在的机箱。
∙确保每个连接到单一DAQ设备的SCXI机箱都有唯一地址。
∙如有多个SCXI模块,请删除所有模块,然后逐一测试各个模块。
∙如某个机箱运行不正常,尝试其它机箱。
∙如得到信号源的错误读数,断开连接信号源并将输入通道接地。
此时应显示为0V。
∙或者,将电池或其它已知信号源连接至输入通道。
∙运行一个范例程序,查看得到的结果是否仍有错误。
部分安装NI-DAQmx
用户可选择部分安装NI-DAQmx。
例如,可选择只安装NI-DAQmx驱动,不安装MAX配置支持。
部分安装的优点在于安装程序更小、安装速度更快、占用磁盘空间更少。
NI-DAQmx的安装分为两个部分:
∙NI-MAX配置支持(也称“NI-DAQmxMAX配置运行引擎”)-该部分包括MAX、LabVIEWRT支持、DAQ助手,以及NI-DAQmx驱动程序。
∙NI-DAQmx(也称“NI-DAQmx核心运行引擎”)-该部分是较小的安装单元,只包括NI-DAQmx驱动程序。
注:
NI-DAQmx的完整安装称为应用程序开发支持(也称为“NI-DAQmx应用程序开发支持”)。
完整安装包括对LabVIEW项目、ADE、MAX、LabVIEWReal-Time、DAQ助手、帮助文档以及NI-DAQmx驱动程序的完整支持。
如要进行部分安装,在安装NI-DAQmx时选择自定义安装选项。
如要安装完整版NI-DAQmx,在安装NI-DAQmx时选择典型安装选项。
注:
在NI-DAQmx9.0之前的版本中,升级部分NI-DAQmx会完全卸载上一个版本。
例如,如在安装了NI-DAQmx8.x的计算机上部分安装NI-DAQmx,NI-DAQmx将被部分安装。
但是未安装部分相关的帮助文档、ADE支持和LabVIEW项目支持将被删除。
如从NI-DAQmx9.0或更高版本进行更新,只有选择安装的部分会被替换。
例如,如在完整安装了NI-DAQmx9.0(包括应用程序开发支持)的计算机上安装NI-DAQmx9.1的NI-MAX配置支持,只有NI-MAX配置支持和NI-DAQmx部分会有改动。
应用程序开发支持部分(例如,LaVIEW项目支持)保持不变。
用户可通过LabVIEW项目使用部分NI-DAQmx生成安装程序。
驱动程序的选择需避免与其它驱动程序产生冲突,减少安装后应用程序的大小,以及缩短安装时间。
关于创建安装程序的详细信息,请参考LabVIEW帮助。
根据所用的NI-DAQmx功能,生成应用程序时需用到特定的程序部分。
如应用程序使用网络变量或使用TDMS直接将数据写入文件,需安装NI-MAX配置支持或应用程序开发支持。
NI-DAQmx通道和任务
虚拟通道和任务是NI-DAQmx中的两个重要概念。
虚拟通道,有时简称为通道,是将实体通道和通道相关信息(范围、接线端配置、自定义换算等格式化数据信息)组合在一起的软件实体。
任务是具有定时、触发等属性的一个或多个虚拟通道。
物理通道和虚拟通道、局部通道和全局通道
实体通道是测量和发生模拟信号或数字信号的接线端或管脚。
信号实体通道可包括一个以上接线端,例如,差分模拟输入通道或8线数字端口。
设备上的每个实体通道都有唯一的符合NI-DAQmx实体通道命名规范的名称(例如,SC1Mod4/ai0、Dev2/ao5、Dev6/ctr3)。
虚拟通道是将实体通道和通道相关信息(范围、接线端配置、自定义换算等格式化数据信息)组合在一起的软件实体。
使用“DAQmx创建虚拟通道”函数/VI或DAQ助手创建虚拟通道。
局部虚拟通道和全局虚拟通道
通过“DAQmx创建虚拟通道”函数/VI创建的虚拟通道是局部虚拟通道,只能在任务中使用。
使用该函数,可选择虚拟通道的名称。
该名称将用于NI-DAQmx的其他位置,用于指代该虚拟通道。
如使用DAQ助手创建虚拟通道,可在其他任务中使用这些虚拟通道,并在任务之外引用虚拟通道。
因为这些虚拟通道是全局虚拟通道,可用于多个任务。
可使用NI-DAQmxAPI或DAQ助手选择全局虚拟通道,并将其加入至任务。
如将一条全局虚拟通道添加至若干个任务,然后使用DAQ助手修改这个全局虚拟通道,改动将应用于所有使用该全局虚拟通道的任务。
全局虚拟通道的改动生效前必须先保存改动。
也见
使用API创建虚拟通道
使用DAQ助手创建虚拟通道
特定设备的实体通道
特定设备的内部通道
使用API创建虚拟通道
下列范例显示了实体通道和虚拟通道的区别以及如何使用API创建虚拟通道。
问题
创建一个NI-DAQmx虚拟通道,测量50°C-200°C之间的温度。
将M系列设备配置为Dev1,将J型热电偶连接至设备上的通道0。
使用LabVIEW或LabWindows™/CVI™写一个应用程序。
解决方案
1.调用LabVIEW中的“DAQmx创建虚拟通道”VI的AI温度TC实例(在LabWindows/CVI中是DAQmxCreateAIThrmcplChan函数)。
2.使用设备上的Dev1/ai0作为连接热电偶信号的实体通道。
3.指定虚拟通道的名称为myThermocoupleChannel。
4.选择相应的热电偶类型和范围输入值。
NI-DAQmx将把这些属性应用至虚拟通道。
至此,虚拟通道已创建完毕。
也见
选择使用API或DAQ助手
特定设备的实体通道
特定设备的内部通道
虚拟通道的类型
根据信号的类型(模拟、数字、计数器)和方向(输入、输出),可创建不同类型的虚拟通道。
虚拟通道可以是全局虚拟通道或局部虚拟通道。
关于函数/VI的详细信息,请参考ADE的相关帮助。
模拟输入通道
模拟输入通道使用各种传感器测量不同的物理现象。
创建的通道类型取决于传感器以及测量现象的类型。
例如,可创建热电偶测量温度的通道、测量电流电压的通道、测量带激励电压的通道,等等。
模拟输出通道
NI-DAQmx支持两种类型的信号,电流信号和电压信号。
如设备测量的是其他信号,可将测得的信号进行转换得到电压或电流信号。
数字输入/输出通道
对于数字通道,可创建基于线和基于端口的数字通道。
基于线的通道可包含设备一个或多个端口的一条或多条数字线。
读取护哦些如基于数字线的通道不会影响硬件上的其他数字线。
可将一个端口中的数字线在多条通道中使用,并在一个或多个任务中同时使用这些通道,但是某条通道中的线必须全是输入线或输出线。
另外,任务中的所有通道必须是输入通道或输出通道。
有些设备还规定端口中的线必须都是输入线或输出线。
关于设备的详细信息,请查阅设备文档。
基于端口的通道表示设备上的一组数字线。
读取或写入端口将影响端口中的所有数字线。
端口中所有线的数量(端口宽度)是一个硬件参数,通常从8线(MIO设备)到32线(SCXI数字模块)不等。
计数器输入/输出通道
NI-DAQmx支持不同计数器测量和生成类型的输入和输出。
关于计数器测量的常见应用,见NI-DAQmx中计数器的组成。
物理通道语法
该语法用于指代NI-DAQmx中的物理通道和物理通道组。
物理通道名称
物理通道的名称有设备标识符、斜杠(/)和通道标识符组成。
例如,如物理通道是Dev1/ai1,设备标识符是Dev1,通道标识符是ai1。
MAX根据设备在系统中安装顺序的前后为设备分配标识符,例如,Dev0、Dev1等等。
也可在MAX中为设备分配设备标识符。
对于模拟I/O和计数器I/O,通道标识符由通道类型(模拟输入ai,模拟输出ao,计数器ctr)和通道编号组成,如下所示:
ai1
ctr0
对于数字I/O,通道标识符指定了一个端口,包括了端口中的所有线:
port0
通道标识符可指定端口中的线:
port0/line1
所有线都具有唯一的标识符。
所以,不用说明线归属的端口即可指定一条数字线。
例如,在有4个8位端口的设备上,line31等同于port3/line7。
物理通道范围
如要指定一个物理通道的范围,在两个通道编号或物理通道名称的编号之间使用冒号分隔:
Dev1/ai0:
4
Dev1/ai0:
Dev1/ai4
对于数字I/O,在两个端口编号之间用冒号分隔,指定一个端口范围。
Dev1/port0:
1
可指定一个数字线的范围:
Dev1/port0/line0:
4
Dev1/line0:
31
可反向指定通道范围:
Dev1/ai4:
0
Dev1/ai4:
Dev1/ai0
Dev1/port1/line3:
0
物理通道列表
使用逗号在列表中分隔物理通道名称和范围,如下所示:
Dev1/ai0,Dev1/ai3:
6
Dev1/port0,Dev1/port1/line0:
2
也见
特定设备的物理通道
特定设备的内部通道
多设备任务
数字线、端口和端口宽度
数字线和端口是数字输入/输出系统的重要部分。
线-一条线就是一个独立的信号。
线表示一个实体的接线端。
线上的数据叫做“位”,是二进制的0或1。
线和位基本上是可以互换的术语。
例如,8位端口与8线端口含义相同。
端口-端口是数字线的集合。
通常情况下,数据线都被组合为8位或32位端口。
端口宽度-端口宽度指端口中线的数量。
例如,一个8线端口的端口宽度为8。
生成通道名称
通过NI-DAQmxAPI创建局部虚拟通道时,如用户不提供局部虚拟通道的名称,NI-DAQmx将会为通道自动分配名称。
物理通道名称
分配的名称
生成的局部虚拟通道名称
Dev1/ai0:
1
—
Dev1/ai0,Dev1/ai1
Dev1/ai0:
7
"foo"
foo0,foo1,...,foo7
Dev1/ai0:
7
"foo31"
foo31,foo32,...,foo38
Dev1/ai0:
7
"foo123"
foo123,foo124,...,foo130
Dev1/ai0:
7
"a0:
3,b"
a0,a1,a2,a3,b0,b1,b2,b3
为通道、任务和换算命名
通道、任务和换算的命名需符合下列要求:
∙仅使用字母和数字字符。
∙不要使用非字母数字字符,下列特例除外:
oNI-DAQmx7.4及更高版本允许在通道、任务和换算的名称中使用连字符。
o允许使用空格。
o可在通道、任务或换算名称中使用下划线,但是下划线不能作为名称的首字符,如_Dev1。
注:
创建通道、任务和换算时,可使用其他非数字字母类字符。
但是将配置导入其他系统,尤其是其他语言的系统时,配置可能失效。
∙名称不能多于256个字符。
开关通道字符串和开关继电器字符串
开关通道字符串和开关继电器字符串用于标识开关上的一个通道或继电器。
在开关上进行操作或查询(连接、断开、查找路径,等等)时,通常会用到这些字符串。
字符串的组成非常类似。
开关通道或继电器字符串可以是:
∙开关设备/通道名称或开关设备/继电器名称的组合,例如,Dev1/ch0。
∙开关继电器名称,不带开关通道名称(例如,ch0)。
只有当开关设备/通道名称字或开关设备/继电器名称(如上所示)字符串之前已被用于指定一个设备,该用于快速指定通道和继电器的语法才有效。
可在LabVIEW和LabWindows/CVI的开关I/O名称控件中找到这些开关通道。
名称控件中有当前开关硬件配置下的有效通道/继电器名称。
连接和断开列表语法
连接列表和断开连接列表分别与“DAQmx开关连接(多个)”和“DAQmx开关断开(多个)”配合使用。
这些函数/VI列表参数使用丰富且多样化的语法用来描述函数/VI进行的操作。
因为这些列表使用相同的语法,所以统称为连接列表。
除一些很小的差别外,连接列表语法与开关扫描列表语法基本相同。
连接/断开连接列表是包含一个或多个开关操作的字符串。
如列表中包含多个操作,操作名称之间用逗号分隔。
Operation1,Operation2,Operation3
开关操作可按照下列方法连接/断开连接通道:
∙指定端点。
指定端点时,NI-DAQmx在两个端点之间搜索可连接/断开连接的路径。
指定端点的语法如下:
channel1->channel2
开关的通道名称之间用箭头(->)分隔。
指定的两条通道必须在同一台设备上,二者中间必须存在一条可能的路径。
如两条通道间的路径包含一条或多条通道,这些直接通道必须将其使用模式标识为“连线预留”。
例如,在channel0、com0和AB0之间存在一条路径,将com0的使用模式标识为“连线预留”,可连接channel0至AB0。
操作在字符串中如下所示:
channel0->AB0
当存在多条直接通道,并且其用途都标识为“连线预留”时,NI-DAQmx将从中选择直接通道。
∙指定一条特定路径。
指定特定路径时,不仅定义了端点,也定义了路径上的直接通道。
在特定路径的基础上已校准完毕的系统需使用指定特定路径。
指定特定路径的语法如下:
[channel1->channel2->channel3]
流入,如要连接矩阵的第1列和第5列,并使用第2行完成连接,需使用下列字符串将第2行的用法标记为“连线预留”:
[c1->r2->c5]
下列是关于连接和断开连接列表的更多信息:
∙连接和断开连接列表可包含不同开关模块上的开关操作。
在动作前加上开关名称和斜杠/。
如下例所示。
Switch1/ch1->com0,[switch2/c0->r2->c5],switch3/r0->c4
∙执行之前,NI-DAQmx先验证连接/断开连接列表。
如有错误,NI-DAQmx将中止列表执行。
∙连接/断开连接列表中的动作顺序不是这些动作被执行的顺序。
如要按特定顺序执行,使用多个连接/断开连接列表。
∙NI-DAQmx将忽略任何空白,输入的大小写不敏感。
请使用空白和回车符,增强文本的可读性。
扫描列表
扫描列表是由设备名称、通道名称和其他字符组成的字符串,定义了扫描的连接、断开连接、触发和定时属性。
NI-DAQmx中的开关模块
MAX提供默认设备名称(或资源名称),可在扫描列表中使用。
打开MAX,找到设备和接口»NI-DAQmx设备,可查找到默认名称。
例如,SCXI-1130:
"SC1Mod1"。
半角引号中的内容(例如,SC1Mod1、Dev1)是要在扫描列表中使用的名称。
扫描列表字符
扫描列表中可使用下列字符。
字符
定义
->
在连接中使用(/Dev1/channel1->channel2)。
例如,/SC1Mod1/ch0->com0表示将CH0连接至COM0。
~
与'->'配合使用,表示断开连接(~/Dev1/channel1->channel2)。
仅在不执行任何操作模式下有效。
例如,~/Dev1/ch0->com0表示断开连接CH0和COM0。
;
等待回复信号,发送扫描前置输出信号,然后等待触发输入。
&
区分连接和断开操作。
例如,/Dev1/ch0->com0&/Dev1/ch9->com1表示连接CH0至COM0,CH9至COM1(无先后顺序)。
&&
等待回复。
例如,/Dev1/ch0->com0&&/Dev1/ch9->com1表示连接CH0至COM0,等待回复信号,然后连接CH9至COM1。
:
表示一个通道范围(channelX:
Y,其中,X和Y是整数)。
包含通道范围的文本表示多个扫描列表项。
例如,/SC1Mod4/ch0:
7->com0;表示8个扫描列表项。
在连接时,通道范围之后必须有一个冒号。
提示 NI-DAQmx忽略空白和换行符。
如扫描列表较长,可使用空白和换行符使文本更具有可读性。
扫描列表项
分号隔开的文本称为扫描列表项。
扫描列表由一个或多个扫描列表项组成。
例如,下列扫描列表包含两个扫描列表项:
/Dev1/ch0->com0;/Dev1/ch1->com0;
扫描模式
扫描模式决定了NI-DAQmx解析扫描列表字符串的方式。
典型的扫描应用程序使用“接通前断开”模式。
模式
说明
接通前断开(默认)
执行当前扫描列表项之前上一个扫描列表项的连接自动断开。
断开操作(~/Dev1/channel1->channel2)在该模式下无效。
无操作
除非被断开,否则连接保持现有状态。
接通后断开
当前不支持。
扫描列表范例
范例1
扫描模式:
无操作
扫描列表:
/Dev1/ch0->com0;~/Dev1/ch0->com0&&/Dev1/ch1->com0;~/Dev1/ch1->com0&&
含义:
1.连接ch0至com0。
2.等待回复信号,发送扫描前置信号,然后等待触发输入。
3.断开ch0至com0的连接,然后等待回复信号。
4.连接ch1至com0。
5.等待回复信号,发送扫描前置信号,然后等待触发输入。
6.断开ch1至com0的连接,然后等待回复信号。
7.如设置扫描为连续,返回步骤1,否则停止。
范例2
扫描模式:
接通前断开
扫描列表:
/Dev1/ch0->com0;/Dev1/ch1->com0;
含义:
该扫描列表等同于范例1。
请注意,不再需要范例1中的断开操作。
范例3
扫描模式:
接通前断开
扫描列表:
/Dev1/ch0:
1->/Dev1/com0;
含义:
该扫描列表等同与范例1和范例2。
该范例列表使用通道范围以减少输入内容。
开关扫描
在开关模块中操作继电器的另一个方法是扫描。
当需要与其他测量设备的事件保持同步时,通常会使用扫描。
在直接操作不同中,调用“DAQmx开关连接”或“DAQmx开关断开”函数/VI后继电器即被激发。
与此不同,扫描就是指设置某个事件发生后连接的列表。
连接操作在扫描列表中,扫描列表会被下载至开关模块的内存。
当使用“DAQmx开始任务”函数/VI初始化开关模块后,即会执行扫描列表中的第一项。
触发设置决定了开关如何在列表中移动到下一项。
扫描列表可被连续执行有限次。
每次连接后,开关模块会生成一个数字脉冲,叫做“前移完成”。
这个脉冲通常用于触发另一个设备,例如,触发DMM进行测量。
有三个扫描选项:
软件触发扫描、同步扫描和握手。
扫描选项最终确定触发机制。
软件触发扫描
在软件触发扫描中,调用“DAQmx开始任务”函数/VI时即开始执行扫描列表。
每次调用“DAQmx发送软件触发”函数/VI后,即执行一个扫描项。
按照下列步骤编写一个软件触发扫描定时程序:
1.使用“DAQmx开关设置拓扑结构并重置”函数/VI,设置开关模块的拓扑名称。
2.使用“DAQmx开关创建扫描列表”函数/VI设置连接列表。
3.将“DAQ
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- labviewDAQ 学习 总结