基于研华数据采集卡的LabVIEW程序设计
- 格式:doc
- 大小:2.66 MB
- 文档页数:21
基于研华DAQNavi的LabVIEW虚拟仪器设计孙卓辉;章大海;王振波;李传【摘要】研华新一代数据采集程序包DAQNavi具有缩短开发时间,支持多种编程语言,方便操作的接口和高可靠性的优点.归纳了基于DAQNavi多功能数据采集卡PCI-1710在LabVIEW平台上设计虚拟仪器的整体思路,并给出了基于Assistant 和Polymorphic Ⅵ两种开发模式的具体实现方法.这两种方式均能快速、高效地完成数据采集过程.【期刊名称】《实验室研究与探索》【年(卷),期】2016(035)006【总页数】4页(P71-73,130)【关键词】PCI-1710;DAQNavi;LabVIEW;虚拟仪器【作者】孙卓辉;章大海;王振波;李传【作者单位】中国石油大学(华东)化学工程学院,山东青岛266555;中国石油大学(华东)化学工程学院,山东青岛266555;中国石油大学(华东)化学工程学院,山东青岛266555;中国石油大学(华东)化学工程学院,山东青岛266555【正文语种】中文【中图分类】TP274.2台湾研华公司(ADVANTECH,简称研华)是台湾和中国大陆工业电脑产品最大的供应厂商,其数据采集和控制产品更是以优良的性价比获得了众多客户的青睐。
DAQNavi是研华发布的新一代数据采集驱动程序包,可以比以前的版本更容易更快速地进行测量与获取有价值的信息[1]。
本文针对多功能数据采集卡PCI-1710U,介绍如何使用DAQNavi在LabVIEW环境下开发数据采集系统。
传统仪器和虚拟仪器(Virtual Instrument,VI)的功能基本上都是由三部分组成:信号的采集与控制、信号的分析与处理、信号的表达与输出[2]。
对于传统仪器,这几部分功能是以硬件或固化在仪器内部的软件来完成的,仪器的功能不易更改。
VI的杰出贡献在于突破了这种取决于仪器制造商的“硬件固定”的模式,强调了“软件即仪器”的概念,软件成为测试系统的核心[3]。
如何在labview下使用研华板卡?(适用于所有 ISA 和PCI 系列模拟量和数字量采集卡)答:研华所有das卡都可以在labview下使用。
Labview驱动是建立在32bitDLL驱动基础之上的,见下图。
所以要安装labview驱动先要安装32bitDLL驱动。
包括devicemanager和对应板卡的DLL 驱动,然后再安装对应的labview驱动。
具体步骤如下:2.3.1.1 安装Device Manager和32bitDLL驱动注意:测试板卡和使用研华驱动编程必须首先安装安装Device Manager和32bitDLL 驱动。
第一步:将启动光盘插入光驱;第二步:安装执行程序将会自动启动安装,这时您会看到下面的安装界面:图2-1注意:如果您的计算机没有启用自动安装,可在光盘文件中点击autorun.exe文件启动安装程第三步: 点击CONTINUE,出现下图界面(见图2-2)首先安装Device Manager。
也可以在光盘中执行\tools\DevMgr.exe直接安装。
图2-2第四步:点击IndividualDriver,然后选择您所安装的板卡的类型和型号,然后按照提示就可一步一步完成驱动程序的安装。
图2-32.3.1.4 labview驱动程序安装使用说明研华提供labview驱动程序。
注意:安装完前面步骤的Device Manager和32bitDLL 驱动后labview驱动程序才可以正常工作。
光盘自动运行点击Installation再点击Advance Options 出现以下界面(见图2-6)。
点击:LavView Drivers来安装labview驱动程序和labview驱动手册和示例程序。
图2-6安装完后labview驱动帮助手册快捷方式为:开始/ 程序/ Advantech Automation/LabView/XXXX.chm。
默认安装下也可以在C:\Program Files\National Instruments\LabVIEW 7.0\help\Advantech 中直接打开labview驱动帮助手册。
研华板卡编程实例摘要:1.研华板卡概述2.研华板卡与NI LabVIEW编程对比3.研华板卡ASSISTANT方式编程比较4.研华板卡型号PCI-1761功能介绍5.总结正文:研华板卡作为测试测量领域的重要硬件设备,广泛应用于各种实验和工程项目中。
本文将围绕研华板卡的编程实例,详细介绍其与NI LabVIEW编程的对比,以及研华板卡的ASSISTANT方式编程方法。
同时,将对研华板卡型号PCI-1761的功能进行具体解析,帮助大家更好地理解和应用研华板卡。
一、研华板卡概述研华板卡作为一款数据采集与控制设备,凭借其高质量、稳定性能和丰富的功能,赢得了广大用户的认可。
研华公司提供的DAQ、Navi驱动支持LabVIEW 8.6及以上版本,开发方式与NI原生的DAQmax编程方式基本相同,使得硬件互换更加简单和高效。
二、研华板卡与NI LabVIEW编程对比LabVIEW作为测试测量领域应用最广泛的软件,提供了丰富的计算分析工具和例程。
研华板卡驱动完全支持LabVIEW 8.6及以上版本,开发方式与NI 原生的DAQmax编程方式基本相同。
两者都采用标准架构,提供Assistant方式和Polymorphic方式,使得硬件互换非常简单和高效。
三、研华板卡ASSISTANT方式编程比较1.NI和研华的Assistant方式编程:两者在编程思想上基本一致,都采用图形化编程界面,易于上手。
不过,研华板卡的Assistant方式编程在某些功能上更为强大,例如支持多种数据类型、同步操作等。
2.编程效率:研华板卡的Assistant方式编程效率较高,通过预先编写好的例程和模块,可以快速地进行数据采集、处理和控制。
此外,研华板卡还提供了丰富的库函数,方便用户进行二次开发。
四、研华板卡型号PCI-1761功能介绍PCI-1761是研华的一款8路继电器输出卡和8路隔离数字量输入卡,主要用于DI/O控制。
这款板卡具有以下特点:1.8路隔离数字量输入:可以满足多种信号输入需求,如数字信号、模拟信号等。
引言现代技术的进步,特别是以计算机技术为代表的不断革新的计算机技术,正从各个层面上影响并引导着各行各业的技术革新,基于计算机技术的虚拟仪器系统技术也正以不可逆转的力量推动着测量控制技术、数据采集和分析等技术的发展。
传统仪器主要由信号采集与控制模块、分析与处理模块、以及测量结果的表达与输出模块这三大功能模块组成。
传统仪器的这些功能都是以硬件(或固化的软件)形式存在的。
而虚拟仪器则是将这些功能移植到计算机上完成。
它在计算机上插上数据采集卡,然后利用软件在屏幕上生成仪器面板,并利用软件进行信号的分析与处理。
相对于传统仪器,虚拟仪器具有性能高、扩展性强、开发时间少、完美的集成功能等特点。
LabVIEW是一款优秀的虚拟仪器软件开发平台。
LabVIEW以其直观、简便的编程方式,众多的源码级设备驱动程序,多种多样的分析和表达支持功能,可为用户快捷地构建实际生产中所需要的仪器系统创造有力的基础条件。
其中数据采集与仪器控制是LabVIEW最具竞争力的核心技术。
1 系统整体方案设计一个完整的LabVIEW程序主要包括前面板、程序框图、连接器三部分。
前面板是一种交互式图形化用户界面,用于设置输入数值和观察输出:框图是定义VI功能的图形化源代码,可利用图形语言对前面板的控制量和指示量进行控制;图标和连接器窗格用于把程序定义成一个子程序,以便在其他程序中加以调用。
本系统包括波形信号采集、保存标准信号、信号处理和分析、采集数据回放四个部分。
图1是信号采集与分析系统框图。
1.1 波形信号的采集该部分主要利用外部触发方式发出触发信号,以使发出信号和通道的采集达到同步。
以信号发生器发出信号为例;为了分析有限个波形的数据,必须保证采集卡采集的数据是发出的全部信号并且只有一个发出信号。
本系统通过采集卡输出一个脉冲信号来触发信号发生器,以使采集卡的输入通道和脉冲输出通道同步。
实际上,正是基于这一点,其发出的任意信号才必须被无遗漏的同步采集过来。
2020年中国工程机械工业协会工程起重机分会年会论文集基于LabVIEW的试验台数据采集系统设计■刘思佳 李亚朋 朱加升 李怀洋 王振 庄文亮徐州重型机械有限公司,江苏 徐州,221004摘要:本文以研华数据采集板卡PCI-1747U为硬件支撑,以LabVIEW 为软件平台,开发了一套试验台数据采集系统,实现了现场数据的实时显示、数据存储、历史数据查询及简单的分析功能。
关键词:数据采集;LabVIEW;研华板卡Abstract:A data acquisiton system which based on LabVIEW2012 and Advantech card PCI-1747U is introduced. The data display, storage, playback and analysis can be realized by the system.Key words:Data Acquisition;LabVIEW;Advantech card0 引言LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是美国国家仪器公司(简称NI)开发的创新软件产品,是目前应用最广泛的虚拟仪器软件平台之一[1]。
LabVIEW采用G语言,最佳地实现了模块化的编程思想[2]。
在本案例中,LabVIEW的应用主要集中在数据采集方面。
某试验台数据采集系统选用研华PCI-1747U板卡作为硬件支撑,以LabVIEW为软件开发平台,实现了数据采集、实时数据显示、数据存储及历史数据查询、分析等功能。
在工程机械行业中,LabVIEW的应用主要集中在数据采集方面。
某试验台数据采集系统选用研华PCI-1747U 板卡作为硬件支撑,以LabVIEW为软件开发平台,实现了数据采集、实时数据显示、数据存储及历史数据查询、分析等功能。
1 数据采集系统组成本系统采用的PCI-1747U是一款高分辨率高通道计数模拟量输入PCI总显卡,用此板卡实现了工业控制现场压力信号的实时采集。
基于LabVIEW的数据采集与处理技术教学设计介绍数据采集与处理是科学研究、工程技术、医学诊断以及环境监测等领域必不可少的技术手段。
LabVIEW是一种基于图形化编程的软件开发环境,以其友好的界面和强大的数据处理能力,被广泛应用于数据采集与处理领域中。
本文主要介绍基于LabVIEW的数据采集与处理技术的教学设计。
实验内容实验一:基本数据采集和处理本实验旨在熟悉LabVIEW的界面编辑和基本的数据采集与处理技术,包括:1.使用LabVIEW绘制模拟信号,并进行数据采集;2.对采集到的数据进行处理和分析。
实验二:基于传感器的数据采集和处理本实验基于传感器,介绍了传感器的分类及其使用,包括:1.掌握不同类型传感器的使用方法和数据采集特点;2.编写程序从传感器中获取数据,并进行处理。
实验三:基于通信协议的数据采集和处理本实验以RS-485通信协议为例,介绍了使用LabVIEW进行串口通信的方法,包括:1.了解串口通信协议的原理和特点;2.使用LabVIEW编写与串口通信的程序,进行数据采集和处理。
实验四:基于网络的数据采集和处理本实验以TCP/IP协议为例,介绍了使用LabVIEW进行网络通信的方法,包括:1.了解TCP/IP协议的基本原理和特点;2.使用LabVIEW编写与远程服务器进行通信的程序,进行数据采集和处理。
实验教学方式实验课堂中,可以采用以下教学方式:1.演示实验操作步骤和原理;2.实验操作示范;3.学生独立或小组合作完成实验操作,遇到问题及时进行指导;4.实验完成后,进行数据分析和结果展示。
实验评估和考核要点为了保证学生学有所获,教学设计应明确实验评估和考核要点,包括以下几个方面:1.实验操作是否合格、方法是否正确;2.数据采集是否准确;3.实验数据处理结果是否正确;4.实验报告是否规范、完整。
总结基于LabVIEW的数据采集和处理技术教学设计,既提高了学生的理论水平,也增强了学生的实际操作能力。
用户登录模块的程序设计关键点在于各界面的自动切换、各操作按钮的关联以及数据流的传递。
在该程序框图设计部分,用到了LabVIEW中的循环结构,事件结构,条件结构,顺序结构以及状态机模式。
(1)用户登录模块程序框图设计在程序开始运行时,首先将特定的输入控件初始化,以防对用户输入造成干扰。
只有当用户输入正确的登录名及密码,并且点击了登录按钮后,用户才能进入测试项目选择模块;若登录名或密码错误,界面会自动跳出提示框并且自动清除上次输入的错误登录名和密码,用户可以选择继续输入登录名和密码或者选择退出系统或者点击帮助按钮查阅帮助文档或者点击修改密码按钮,进入密码修改模块。
该部分功能是利用while循环,事件结构、VI引用和执行系统命令函数实现,登录名及密码比较程序被封装成子VI。
while循环能保证程序连续运行,事件结构能实现用户不同的动作产生不同的响应,VI引用和执行系统命令函数实现完成操作界面的自动转换。
需要说明的是,在事件结构中内嵌条件结构,只有当按钮值为新值才进行条件为真的程序,能有效避免用户在程序运行未运行时已点击了按钮值,从而出现错误响应。
图4.5为用户登录模块部分程序框图。
图1 用户登录模块部分程序框图(2)修改密码模块程序框图设计同样在程序运行初始,会首先将特定的输入控件进行初始化。
考虑到修改密码子模块存在回答问题,修改密码,关闭程序三个步骤,故采用状态机模式和事件结构来实现该功能,用户若是能正确回答所设置好的问题,能进入下一步,修改好密码后,自动退出程序,回到用户登录模块;若是用户无法正确回答所设置好的问题,用户可以选择继续回答问题或者退出系统。
该部分功能利用顺序结构,while循环,事件结构和VI引用实现。
需要注意的是,在事件结构的超时事件框中也要给移位寄存器赋状态值,否则在执行事件结构中的超时事件时,会默认回到初始状态,从而实现不了状态机应有的功能。
图4.6为修改密码模块部分程序框图。
基于Labview的研华数据采集卡的安装和使用数据采集卡型号:USB 4704,要求用labview采集研华的采集卡上的数据第一节研华设备管理器DAQNavi SDK安装安装前的准备:要求先安装好labview, 然后再进行以下安装第一步: 安装研华的DAQ设备管理程序DAQNavi SDK包1. 双击文件,弹出安装对话框,选择第1项“Update and DAQNavi”并点击“Next”:点击“Next”:如左上所示勾选,并点击“Next”:点击“Next”,得如下图所示对话框,表示正在安装,请耐心等待。
耐心等待安装结束。
安装结束后,选择操作系统上的“程序”,在程序列表中应该有“Advantech Automation”选项,点击该选项展开应有“DAQNavi”,如下图所示:单击上图中的“Advantech Nagigator”选项,即可打开研华的设备管理器对话框,如下图所示,在这里,左侧的“Device”栏中列出了本机上连接的所有采集卡,可以对这些卡进行管理和测试,具体如何测试,请参照帮助文档。
第三二步.usb4704采集卡驱动安装1. 双击“”进行安装;2. 安装完毕后,将采集卡与PC机相连(将usb数据线一端连上采集卡,另外一端连到计算机的USB口上),系统将自动安装采集卡的驱动,并识别采集卡。
3. 检查采集卡安装成功否首先查看插在PC机上的采集卡上的灯是否呈绿色;其次,打开“DAQNavi”,如下图所示,观察设备列表中是否显示出了“USB-4704”第三步:在研华的设备列表中添加模拟卡(Demo Device)若没有实际的采集卡,可以添加模拟卡进行模拟测试和数据采集编程练习那么如何添加模拟卡呢?如下图所示,点击“Advantech Automation”——〉DAQNavi ——〉Add Demo Device模拟卡添加好后,在“Advantech Navigator”的设备列表中就能看到该卡信息,如下图所示,没有实际采集卡的同学,可以用这张模拟卡进行相关的采集卡测试及编程练习:第四步: 安装Labview Driver经过以上三步,研华的采集卡就安装完毕了,那么如果要用Labview对采集卡编程,实现数据采集,则还需要安装labview针对研华的数据采集卡的驱动。
第10章基于研华数据采集卡的L a b V I E W程序设计本章利用研华公司的PCI-1710HG数据采集卡编写LabVIEW程序,包括:模拟量输入、模拟量输出、开关量输入以及开关量输出等。
10.1 模拟量输入(AI)10.1.1 基于研华数据采集卡的LabVIEW程序硬件线路在图10-1中,通过电位器产生一个模拟变化电压(X围是0V~5V),送入板卡模拟量输入0通道(管脚68),同时在电位器电压输出端接一信号指示灯,用来显示电压变化情况。
图10-1 计算机模拟电压输入线路本设计用到的硬件为:PCI-1710HG数据采集卡、PCL-10168数据线缆、ADAM-3968接线端子(使用模拟量输入AI0通道)、电位器(10K)、指示灯(DC5V)、直流电源(输出:DC5V)等。
10.1.2 基于研华数据采集卡的LabVIEW程序设计任务利用LabVIEW编写应用程序实现PCI-1710HG数据采集卡模拟量输入。
任务要求:(1)以连续方式读取电压测量值,并以数值或曲线形式显示电压测量变化值;(2)当测量电压小于或大于设定下限或上限值时,程序画面中相应指示灯变换颜色。
209 / 2110.1.3 基于研华数据采集卡的LabVIEW程序任务实现1.建立新VI程序启动NI LabVIEW程序,选择新建(New)选项中的VI项,建立一个新VI程序。
在进行LabVIEW编程之前,必须首先安装研华设备管理程序Device Manager、32bitDLL驱动程序以及研华板卡LabVIEW驱动程序。
2.设计程序前面板在前面板设计区空白处单击鼠标右键,显示控件选板(Controls)。
(1)添加一个实时图形显示控件:控件(Controls)→新式(Modern)→图形(Graph)→波形图形(Waveform Chart),标签改为“实时电压曲线”,将Y轴标尺X围改为0.0-5.0。
(2)添加一个数字显示控件:控件(Controls)→新式(Modern)→数值(Numeric)→数值显示控件(Numeric Indicator),标签改为“当前电压值:”。
(3)添加两个指示灯控件:控件(Controls)→新式(Modern)→布尔(Boolean)→圆形指示灯(Round LED),将标签分别改为“上限指示灯:”、“下限指示灯:”。
(4)添加一个停止按钮控件:控件(Controls)→新式(Modern)→布尔(Boolean)→停止按钮(Stop Button)。
设计的程序前面板如图10-2所示。
图10-2 程序前面板3.框图程序设计——添加函数进入框图程序设计界面,在设计区空白处单击鼠标右键,显示函数选板(Functions)。
在函数选板(Functions)下添加需要的函数。
(1)添加选择设备函数:用户库→ AdvantechDA&C(研华公司的LabVIEW函数库)→EASYIO→SelectPOP→Sel ectDevicePop.vi,如图10-3 SelectPop函数库图10-3所示。
(2)添加打开设备函数:用户库→ Advantech DA&C→ADV ANCE→DeviceManager→DeviceOpen.vi,如图10-4所示。
(3)添加选择通道函数:用户库→Advantech DA&C→EASYIO→SelectPOP→SelectChannelPop.vi,如图10-3所示。
(4)添加选择增益函数:用户库→Advantech DA&C→EASYIO→SelectGainPop.vi,如图10-3所示。
(5)添加Unbundle By Name函数:编程(Programming)→簇、类与变体(Cluster & Variant)→按名称解除捆绑(Unbundle By Name)。
(6)添加Bundle函数:编程(Programming)→簇、类与变体(Cluster & Variant)→捆绑(Bundle)。
(7)添加关闭设备函数:用户库→ Advantech DA&C→ADV ANCE→DeviceManager→ DeviceClose.vi,如图10-4所示。
(8)添加模拟量配置函数:用户库→ Advant ech DA&C→ADV ANCE→SlowAI→AIConfig.vi ,如图10-5所示。
图10-4 DeviceManager函数库图10-5 SlowAI函数库(9)添加一个While循环结构:编程(Programming)→结构(Structures)→While 循环(While Loop)。
以下添加的函数或结构放置在While循环结构框架中。
(10)添加模拟量电压输入函数:用户库→ Advantech DA&C →ADV ANCE→SlowAI→ AIV oltageIn.vi,如图10-5所示。
(11)添加一个比较符号函数“≤”:编程(Programming)→比较(parison)→小于等于?(Less Or Equal?)。
(12)添加数值常量:编程(Programming)→数值(Numeric)→数值常量(Numeric Constant),将值改为0.5(下限电压值)。
(13)添加一个比较符号函数“≥”:编程(Programming)→比较(parison)→大于等于?(Greater Or Equal?)。
(14)添加数值常量:编程(Programming)→数值(Numeric)→数值常量(Numeric Constant),将值改为3.5(上限电压值)。
(15)添加一个时钟函数:编程(Programming)→定时(Time & Dialog)→等待下一个整数倍毫秒(Wait Until Next ms Multiple)。
211 / 21(16)添加数值常量:编程(Programming)→数值(Numeric)→数值常量(Numeric Constant),将值改为500(采样频率)。
(17)添加Not函数:编程(Programming)→布尔(Boolean)→非(Not)。
(18)添加两个条件结构:编程(Programming)→结构(Structures)→条件结构(Case Structure)。
(19)分别在两个条件结构的真(True)选项中各添加一个比较函数:编程(Programming)→比较(parison)→不等于0?(Not Equal To 0 ?)。
(20)分别在两个条件结构的真(True)选项各添加一个数值常量:编程(Programming)→数值(Numeric)→数值常量(Numeric Constant),值分别为0、0。
(21)将数字显示控件(标签为“当前电压值:”)、波形显示控件(标签为“实时电压曲线”)、停止按钮控件从外拖入循环结构中。
(22)将指示灯控件“下限指示灯:”、“上限指示灯:”分别拖入两个条件结构的真(True)选项中。
添加的函数如图10-6所示。
(23)分别在两个条件结构的假(False)选项中各添加一个局部变量:编程(Programming)→结构(Structures)→局部变量(Local Variable)。
分别选择局部变量,单击鼠标右键,在弹出的快捷菜单的选项(Select Item)选项下,为局部变量选择控件:“下限指示灯:”、“上限指示灯:”,将其读写属性设置为“写”。
(24)分别在两个条件结构的假(False)选项中各添加一个比较函数:编程(Programming)→比较(parison)→不等于0?(Not Equal To 0 ?)。
(25)分别在两个条件结构的假(False)选项中各添加一个数值常量:编程(Programming)→数值(Numeric)→数值常量(Numeric Constant),值分别为1、1。
添加的函数如图10-7所示。
图10-6节点布置图1图10-7节点布置图24.框图程序设计——连线使用工具箱中的连线工具,将所有函数连接起来。
(1)将SelectDevicePop.vi函数的输出端口DevNum与DeviceOpen.vi函数的输入端口DevNum相连。
(2)将DeviceOpen.vi函数的输出端口DevHandle与SelectChannelPop.vi函数的输入端口DevHandle相连。
(3)将SelectChannelPop.vi函数的输出端口DevHandle与AIConfig.vi函数的输入端口DevHandle相连。
将SelectChannelPop.vi函数的输出端口Gain List与SelectGainPop.vi函数的输入端口Gain List相连。
将SelectChannelPop.vi函数的输出端口ChanInfo与按名称解除捆绑(Unbundle By Name)函数的输入端口输入簇(Input Cluster)相连。
(4)将按名称解除捆绑(Unbundle By Name)函数的输出端口通道(Channel)与捆绑(Bundle)函数的一个输入端口簇元素(Cluster Element)相连。
(5)将SelectGainPop.vi函数的输出端口GainCode与捆绑(Bundle)函数的一个输入端口簇元素(Cluster Element)相连。
(6)将捆绑(Bundle)函数的输出端口输出簇(OutCluster)与AIConfig.vi函数的输入端口Chan & Gain相连。
(7)将AIConfig.vi函数的输出端口DevHandle与AIVoltageIn.vi函数的输入端口DevHandle相连。
(8)将AIV oltageIn.vi函数的输出端口DevHandle与DeviceClose.vi函数的输入端口DevHandle相连。
将AIV oltageIn.vi函数的输出端口V oltage与数字显示控件(标签为“当前电压值:”)相连。
将AIV oltageIn.vi函数的输出端口V oltage与波形显示控件(标签为“Waveform Chart”)相连。
将AIV oltageIn.vi函数的输出端口Voltage与小于等于?(Less Or Equal)函数的输入端口x相连。
将AIV oltageIn.vi函数的输出端口V oltage与Greater Or Equal函数的输入端口x相连。
(9)将数值常量(值为0.5,下限电压值)与小于等于?(Less Or Equal)函数的输入端口y相连。
(10)将数值常量(值为3.5,上限电压值)与大于等于?(Greater Or Equal?)函数的输入端口y相连。