搜档网
当前位置:搜档网 › LabVIEW调用库函数节点技术

LabVIEW调用库函数节点技术

LabVIEW调用库函数节点技术
LabVIEW调用库函数节点技术

LabVIEW调用库函数节点技术

LabVIEW提供了调用库函数节点(Call Library Function node,简称CLF),利用CLF,可以在LabVIEW中实现DLL和API函数的调用。在LabVIEW中使用CLF 需要了解动态链接库里被调用的函数名称、功能及其输入输出参数等,下面将

详细介绍在LabVIEW 8.6下利用CLF调用6050运动控制卡基于C语言编写的驱动

程序[41]。首先在框图程序中创建一个空的CLF,CLF位于“函数模板→互连接口→库与可执行程序子模板”,如图1-1所示,下面给出其详细的配置过程:

图1-1 CLF节点图标

(1)双击CLF图标弹出配置对话框,如图1-2所示,首先要指定6050控制卡动态链接库的库名或路径。点击其右边的文件夹图标,打开一个文件对话框,找

到6050运动控制卡的动态链接库文件“dfjzh6050dll.dll”所在位置。

(2) LabVIEW装载了DLL文件后会自动检测其所包含的函数,但不能检测函数中的参数及其数据类型,因此接下来的要参照DLL说明文件“dfjzh6050dll.h”及控制卡使用手册选择所要配置的函数名,设置函数参数。

(3)在调用规范中有“stdcall(WINAPI)”和“C”两个选项,它们的区别是,若调用函数为Windows标准共享库函数则选择“stdcall(WINAPI)”选项,若调

用函数为VC环境下编译的库函数则选择“C”选项,本文选择“C”选项。

(4)在“线程”选项中选择“在UI线程中运行”。

至此,完成了所有配置选项,在CLF配置图最下方可以看到函数原型。下

面阐述配置CLF过程中需注意的两个问题:

图1-2 CLF节点配置图

Figure1-2 CLF Node Setting Chart

(1) LabVIEW线程调用方式

节点配置中,有两种线程调用方式,“在UI线程中运行”和“在任意线程

中运行”。“在UI线程中运行”表示在用户接口线程中调用,DLL的执行期将

等到用户接口线程(在此即LabVIEW环境下的VI应用程序)执行DLL的导出函

数调用时才开始;“在任意线程中运行”表示允许多个线程同时调用这个DLL。当DLL仅由一个线程调用,两种调用方式都可选择,若出现多个线程调用情况

且不确定DLL是否为线程安全,选“在UI线程中运行”。

(2)函数参数的配置

对于所调用的DLL库函数的参数类型,如果在配置框中找不到匹配的,可

以在类型下拉列表中选择“匹配至类型”,在数据格式下拉列表中选择“按值

处理”,表示将编程时指定的LabVIEW数据类型与该参数数据类型自动匹配。

下表5-1为常见的LabVIEW和32位系统C语言数据类型对照表[42]

表1-1 两种变量类型的对应关系

Table1-1 Correspondence between the two Types of Variables

LabVIEW调用动态链接库dll

/DE9,(:) W ??GOO &/1 ??- &/1 &DOO /LEUDU\ )XQFWLRQ 1RGH ?? ? ?? ?? ) - ) ? ) ? /LEUDU\ QDPH RU SDWK '// <+? "+? '// ??? γ I+? -/ '// ?? ?? ?) -- '// 9, ??p '//? ??p /DE9,(: ? W ??'// 1 6SHFLI\ SDWK RQ GLDJUDP - ? - - -- - /LEUDU QDPH RU SDWK ??? ?v? - # ) &/1 ?? ??? ǎ ? ? '// +? - ?9, ? '// ??p ?- ? ? - '//? ?1J ??p )XQFWLRQ QDPH c ) /DE9,(: 1'//?? . ′ ? ?- γ 7KUHDG ǎ?t ? /- ) ? J? ) ?# /DE9,(: ?? ? W -?? ? &DOOLQJ FRQYHQWLRQ ǎ ) ) ?t -/ ?t VWGFDOO < & FDOO ? ) Z ǎ VWGFDOO ) #** & FDOO ) # - ?? ) $ ? /DE9,(: ? ? t ? ? ) 8 /DE9,(: ) '// ? G? # - ?? ? :LQGRZV $3, ?? . VWGFDOO O& ? ? & FDOO 8 ? ń?BBVWGFDOO - ? p ?? VWGFDOO

?? ? ?? - . ? )? ? ǎ('//?? . ) ? -. ) ?t ?? ? ??? ? 8 (5HVHUYH - - ) ?)? ? ) - '// - ) G ) - ( ? ? ? ?> ? 8 ? ? -- '// ? " ? b) 8QUHVHUYH ? t ) $ERUW ? t 9, ? " ) 8 $ERUW ? 9,?? # ? - ? -/ ) ? '// # ??t ?? ? ? ? 3URWRW\SH IRU WKHVH SURFHGXUHV ? ? 8 ?? '// ( /DE9,(: ?? ? - )

LabVIEW 属性节点初级课程

可以选择真时继续()。 计数接线端:表示已经完成的循环次数,该计数从0开始。在本例中,如果当产生的第13个点值超过0.9时,计数器值为12。 结构隧道: 当需要将循环中的数据传入或者传出时,我们使用隧道的方式(这一点将在后面详细介绍)。 2. For 循环 For 循环常用于已知代码循环次数的情况,比如数组的操作。下面是For 循环的流程图: 2.1 For 循环的流程图 我们通过以下的例子来具体介绍以下For 循环: 如图 2.2,使用For 循环产生一个3×4的二维随机数组。(该程序见附件Generate array.vi ) 图2.2 For 循环产生3×4的二维随机数组 属性节点初级课程 控件的大部分属性都可以通过属性对话框ā行设置,对于未包括的属性则需要通过属性节点来编程操作了。属性节点用于访问对象的属性。在某些应用程序中,可能需要通过编程使前面板对象对特定的输入作出响应,使其显示不同的外观。 例如,当用户输入一个无效的密码时,红色指示灯开始闪烁。 又如,改变图表上线条的颜色, 当数据点高于某一特定的值时,希望显示的线条是红色而不是绿色。 使用属性节点可通过编程来完成这些修改。 也可使用属性节点通过编程来调整前面板对象的大小、隐藏前面板的部分内容、向图形中添加光标等。 LabVIEW 的属性节点功能强大、用途多样,不同控件对象有不同的属性。 本课程将介绍一些特别的属性的范例,这些属性可用于改变前面板对象的外观和功能。 关于属性节点的更多信息见LabVIEW 帮助。1. 创建属性节点 右键单击前面板对象,从快捷菜单中选择创建? 属性节点,再从弹出的菜单中选择一个属性,这样就创建了该前面板对象的一个属性节点。同时,LabVIEW 会在程序框图上创建一个与该前面板对象隐含链接的属性节点。 如果对象自带标签,属性节点将有同样的标签。 创建节点之后可以修改该标签。 同一个对象可以创建多个属性节点。2. 使用属性节点 属性节点创建后,节点最初有一个代表某个属性的接线端,您可以通过对其进行修改来更改对应的前面板对象的属性。 属性节点上的这个接线端既可用于设置(写入)属性,也可用于获取(读取)该属性的当前状态。(某些属性节点是只读/只写的除外)。 例如,如果为一个数字数值控件创建了属性节点,则该节点将在程序框图上显示,其可见属性默认为选中。 接线端右侧出现的小箭头表示正在读取属性值。右键单击接线端并从快捷菜单中选择转换为写入则改为写入操作。 将布尔假值连接到可见属性接线端,则属性节点接受数据时前面板上不出现该数值控件。将布尔真值连 接到可见属性接线端,则前面板上将出现该控件。见图1:

LabVIEW调用WindowsAPI函数实现VI窗口置顶

LabVIEW调用Windows API实现VI窗口置顶 前些天同事用LabVIEW开发了个常用的小工具软件,碍于电脑屏幕太小,想让这小工具一直保持在所有窗口的最顶端(置顶),几个人讨论研究发现通过LabVIEW的属性节点只能实现VI程序在LabVIEW软件中保持最前,而在其他窗口没能置顶,未能达到想要的效果。 通过上网查找资料,软件置顶是与操作平台的控制相关,需要调用Windows API去实现这功能,研究了一下,调用Windows API能很好的实现了VI置顶。百度上用LabVIEW调用Windows API的教程LabVIEW版本比较旧,为方便大家更好的学习,现将自己研究的方法分享出来。 一.什么是Windows API W indows 这个多作业系统除了协调应用程序的执行、分配内存、管理资源…之外,它同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程序达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是应用程序(Application),所以便称之为Application Programming Interface,简称API 函数。WIN32 API也就是Microsoft Windows 32位平台的应用程序编程接口。 W indows API包括几千个可调用的函数,它们大致可分为以下几类:基本服务、组件服务、用户界面服务、图形多媒体服务、消息和协作、网络、Web服务。 二.Windows API的发展现状 当WINDOWS操作系统开始占据主导地位的时候,开发WINDOWS平台下的应用程序成为人们的需要。而在WINDOWS程序设计领域处于发展的初期,WINDOWS程序员所能使用的编程工具唯有API函数,这些函数是WINDOWS提供给应用程序与操作系统的接口,他们犹如“积木块”一样,可以搭建出各种界面丰富,功能灵活的应用程序。所以可以认为API函数是构筑整个WINDOWS框架的基石,在它的下面是WINDOWS的操作系统核心,而它的上面则是所有的华丽的WINDOWS应用程序。 程序员想编写具有Windows风格的软件,必须借助API,API也因此被赋予至高无上的地位。但是,如若没有合适的Windows编程平台,那么Windows开发是一项很复杂的工作。在可视化编程IDE出来之前,那时的WINDOWS程序开发还是比较复杂的工作,程序员必须熟记一大堆常用的API函数,而且还得对WINDOWS操作系统有深入的了解。然而随着软件技术的不断发展,在WINDOWS平台上出现了很多优秀的可视化编程环境,程序员可以采用“所见即所得”的编程方式来开发具有精美用户界面和功能强大的应用程序。 这些优秀可视化编程环境操作简单、界面友好(诸如VB、VC++、DELPHI等),在这些工具中提供了大量的类库和各种控件,它们替代了API的神秘功能,事实上这些类库和控件都是构架在WIN32 API函数基础之上的,是封装了的API函数的集合。它们把常用的API函数的组合在一起成为一个控件或类库,并赋予其方便的使用方法,所以极大的加速了WINDOWS 应用程序开发的过程。有了这些控件和类库,程序员便可以把主要精力放在程序整体功能的设计上,而不必过于关注技术细节。 实际上如果我们要开发出更灵活、更实用、更具效率的应用程序,必然要涉及到直接使用API函数,虽然类库和控件使应用程序的开发简单的多,但它们只提供WINDOWS的一般功能,对于比较复杂和特殊的功能来说,使用类库和控件是非常难以实现的,这时就需要采用API函数来实现。 这也是API函数使用的场合,所以我们对待API函数不必刻意去研究每一个函数的用法, 1

LABVIEW的DLL与API调用

LABVIEW的DLL与API调用 一.实验目的 1.熟悉LabVIEW调用动态链接库的过程 2.学会编写用LabVIEW调用WINDOWS的API函数 二.实验器材 1.计算机(带有声卡) 2.LABVIEW8.20软件 三.实验原理 在开发自动测量系统时,经常遇到计算机与仪器的通信问题,涉及仪器控制及数据处理问题,LabVIEW语言在这一领域的应用有着独到的优势。为了在LabVIEW中能够充分利用其他编程语言的优势,LabVIEW提供了外部程序接口能力,包括动态链接库(DLL)、C语言接口(CIN)、ActiveX和Matlab等。 动态链接库是基于Windows程序设计的一个非常重要的组成部分。LabVIEW 开发中使用DLL,可以使代码更简洁,内存资源的使用更经济,而且可以便捷地利用仪器厂商或第三方提供的仪器控制子程序加速开发进程。而windows平台包含有大量的API函数,这些API函数提供了大量在Windows环境下可操作的功能,它们位于Windows系统目录下的多个DLL文件中,因此在LabView中调用API 函数和DLL的方法是一致的。 在LabVIEW中,利用库函数节点可以较容易地实现对DLL的调用,从而提高了程序的开发效率。使用调用库函数节点,可以调用Windows标准的动态连接库,也可以调用用户自己编制的DLL。LabView中动态链接库的调用可在程序框图的函数选板中选取“调用库函数节点”来完成,该节点位于:互连接口->库和可执行程序->调用库函数节点。

将选择好的调用库函数节点图标放在程序框图中,然后通过对它的节点图标进行配置,可以指定DLL模块中与LabVIEW数据交换的相应的驱动函数。 在调用DLL时,首先要找到找到头文件(*.h)或者函数原型声明,确定你需要调用的函数,注意函数的参数是否包含了原始数据类型参数比如int,char, double,等等或者是否包含了复杂数据类型比如clusters。如果函数没有包含复杂数据类型并且你有头文件(*.h),该DLL在数据类型的定义上与LabView一致,那么LabVIEW中一个很好的工具可以帮你简单地导入DLL(并且会帮助你创建DLL的整个库)。你可以在工具—>导入—>共享库(.dll)...中找到该工具,按照向导进行下去。 如果函数不含有复杂数据类型但是没有头文件(*.h),或者由于DLL编写不够规范,在数据类型的定义上与LabView并不完全一致,你需要确定那些在DLL 中被调用的函数的参数,一旦参数被确定,使调用库函数节点中的函数手动调用该函数。这是你需要对调用的函数进行手工配置。 在调用DLL库中函数时,必须知道以下信息:函数返回的数据类型、函数调用的方式、函数的参数及类型、DLL库文件的位置等。右键单击调用库函数图标,在弹出的菜单选项中选择配置...选项,可得到下图所示的配置对话框。

LabVIEW与外部程序间DLL文件的调用

LabVIEW与外部程序间DLL文件的调用 什么是DLL文件 DLL(动态链接库)文件是Dynamic Link Library的缩写形式,是一种允许程序共享执行特殊任务所必需的代码和其他资源的可执行文件。其多数情况下是带有DLL扩展名的文件,但也可能是EXE或其他扩展名。Windows提供的DLL文件中包含了允许基于Windows 的程序在Windows环境下操作的许多函数和资源。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。这些函数的可执行代码位于一个DLL中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL还有助于共享数据和资源,多个应用程序可同时访问内存中单DLL副本的内容。总之,DLL是一个包含可由多个程序同时使用的代码和数据的库。动态链接是相对于静态链接而言的。所谓静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分。换句话说,函数和过程的代码就在程序的exe文件中,该文件包含了运行时所需的全部代码。当多个程序都调用相同函数时,内存中就会存在这个函数的多个拷贝,这样就浪费了宝贵的内存资源。而动态链接所调用的函数代码并没有被拷贝到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息(往往是一些重定位信息)。仅当应用程序被装入内存开始运行时,在Windows的管理下,才在应用程序与相应的DLL之间建立链接关系。当要执行所调用DLL中的函数时,根据链接产生的重定位信息,Windows才转去执行DLL中相应的函数代码。 由于向运行于Windows操作系统下的程序提供代码、数据或函数,程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。在Windows操作系统中,DLL对于程序执行是非常重要的, 因为程序在执行的时候, 必须链接到DLL文件, 才能够正确地运行。而有些DLL文件可以被许多程序共用,因此程序设计人员可以利用DLL文件, 使程序不至于太过巨大。但是当安装的程序越来越多,DLL文件也就会越来越多, 如果当删除程序的时候, 没有用的DLL文件没有被删除的话, 久而久之就造成系统的负担了。 通过使用DLL,程序可以实现模块化,由相对独立的组件组成。因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。此外,可以更为容易地将更新应用于各个模块,而不会影响该程序的其他部分。例如,可能有一个工资计算程序,税率每年都会更改,当这些更改被隔离到DLL中以后,我们无需重新生成或安装整个程序就可以应用更新。 总的来说,使用DLL文件有以下好处:1、多个应用程序可以共享代码和数据。比如Office软件的各个组成部分有相似的外观和功能,这就是通过共享动态链接库实现的。2、在钩子程序过滤系统消息时必须使用动态链接库。3、动态链接库以一种自然的方式将一个大的应用程序划分为几个小的模块,有利于小组内部成员的分工与合作,而且各个模块可以独立升级。如果小组中的一个成员开发了一组实用例程,他就可以把这些例程放在一个动态链接库中,供其他成员使用。4、实现应用程序的国际化,往往需要使用动态链接库。使用动态链接库可以将针对某一国家、语言的信息存放在其中。例如,在使用AppWizard生成应用程序时,我们可以指定资源文件使用的语言,这就是通过提供不同的动态链接库实现的。对于不同的版本,使用不同的动态链接库,常用的一些编程软件均可以编写DLL文件。DLL 不是独立运行的程序,而是某个程序的一个部分,它只能由所属的程序调用,用户不能,也不需要打开它。 LabVIEW调用DLL文件

labview控制程序流程——labview事件结构

labview控制程序流程——labview事件结构 1 事件结构及它的图形化表示法事件被用来通知用户有异步活动发生。图 形化语言的事件响应包括:用户界面事件、外部I/O 事件和程序其它部分的事件。对事件的处理程序也被称为:事件驱动程序。事件驱动程序可以分为若干 个分支,每个分支处理不同的事件响应。所以对事件的响应结果也可以控制程 序的流程。事件驱动机制来自于可视化的操系统,可视化操作系统对用户事件 提供了简洁、有效的响应方式,最常见的事件来自于鼠标和键盘。虚拟仪器借 助于操作系统的事件处理机制实现了图形化语言的事件响应能力。在没有引入 事件结构之前,LabVIEW 是借助于轮询的方式来查询用户操作,由于轮询的方 式会占用一定的CPU 资源,甚至可能遗漏事件,所以这种处理方式并非理想。事件结构的出现避免了对CPU 资源的占用,同时也避免了事件的遗漏。事件 结构在函数选板》编程》结构子选板中可以找到,并可以将其直接拖拽到程序 框图中,图形化表示的事件结构,参见下图。图 1 图形化的事件结构与Case 结构和循环结构类似,事件结构也包含了一个主框架,这个框架内将用来放置 事件处理的事件驱动程序代码。如果事件处理任务众多,会有众多事件分支存在,在结构上类似Case 的多帧结构(选择器标签)。当在程序框图上拖放一个 事件结构时,我们只能看到上图所示的一帧已经预先注册的超时事件(Timeout),超时事件分支。它具有定时延迟的基本功能(不包括While 循环),参见下图。图 2 具有定时延迟的基本功能当然也可以采用另一种表示方法,参 见下图。图 3 利用事件结构内部节点获得中止时间通过这个例子也好理解内部 节点中时间的含义(是事件响应的停止时间)。超时事件超时事件是一种特殊 的事件,当然也可以看成是默认的事件分支。如果存在其它事件源时,超时事 件完全可以被忽略或取消。看下面一个例子。图 4 仅有的两个事件之一超时事

LabVIEW的高级编程技巧

LabVIEW的编程技巧 本章介绍局部变量、全局变量、属性节点和其他一些有助于提高编程技巧的问题,恰当地运用这些技巧可以提高程序的质量。 8.1局部变量 严格的语法尽管可以保证程序语言的严密性,但有时它也会带来一些使用上的不便。在LabVIEW这样的数据流式的语言中,将变量严格地分为控制器(Control)和指示器(Indicator),前者只能向外流出数据,后者只能接受流入的数据,反过来不行。在一般的代码式语言中,情况不是这样的。例如我们有变量a、b和c,只要需要我们可以将a的值赋给b,将b的值赋给c等等。前面所介绍的LabVIEW内容中,只有移位积存器即可输入又可输出。 另外,一个变量在程序中可能要在多处用到,在图形语言中势必带来过多连线,这也是一件烦人的事。还有其他需要,因此LabVIEW引入了局部变量。 8.1.1局部变量的创建 我们在框图上设置三个变量,两个控制器分别为Numeric和Numeric 2,现在增加局部变量。选择Function→Structures→Local Variable 然后将其拖到框图上,就可得到一个代“?”的图标,下一步将其与框图中已有的变量建立关联,有鼠标右键单击图标,进入Select Item 选择“input1” ,最后框图就变成了图7-1右边的样子。 图7-1局部变量的创建 局部变量只是原变量的一个数据拷贝,但是它的属性可以修改,并且这种改变不会影响原变量。例如上图中的这个局部变量可以利用快捷菜单中的Change To Read 变成一个指示器。这样的一对变量的组合,就使它既可读又可写了。局部变量有三种基本的用途:控制初始化、协调控制功能、临时保存数据和传递数据。下面我们通过练习来说明。

LabVIEW编程调用DLL时遇见的问题

LabVIEW编程调用DLL时遇见的问题 对于使用LabVIEW编程的人来说,都知道LabVIEW功能强大,但也会发现似乎缺少某些功能,而像其他编程语言的DLL、ActiveX组件则能提供。 在使用DLL(动态链接库)时,最大的困难就是把函数参数的数据类型映射为相应的LabVIEW中的数据类型。LabVIEW 提示: 未定义符号可能会造成函数和参数无法被识别。如要解决该问题,检查头文件并确定是否必须添加预定义符号。单击上一步按钮返回至向导的前一页并添加预定义符号(例如,"NIAPI_stdcall = __stdcall"或"NIAPIDefined = 1")在一次进行串口调试软件的编写过程中,要求使用动态链接库(其实使用VISA同样可以实现),使用导入共享库工具以自动生成配置CLN(Call Library Function)节点,工具在“工具—导入—共享库(.dll)”菜单项下,专门用于将DLL 中函数包装成VI。 下一步下一步点击解析头文件后,依然遇见(如下图) extern UINT Recv(UCHAR *pRecvBytes,UINT unRecvLength);(函数原型) 未定义符号可能会造成函数和参数无法被识别。如要解决该问题,检查头文件并确定是否必须添加预定义符号。单击上一步按钮返回至向导的前一页并添加预定义符号(例如,"NIAPI_stdcall = __stdcall"或"NIAPIDefined = 1")

归咎原因就是头文件中的一些类型定义不符合标准C语法,而使解析器无法获得正确的的mPWIN32_COMMAND定义。DLL函数的头文件中可能使用了某个系统定义的数据类型,数据类型的定义在windows.h中,(windows.h是Windows SDK的一个文件,VC等开发环境中常常带有Windows SDK),要正确解析必须得到这些数据类型,也就是找到windows.h 这个头文件,用户须把windows.h文件的全路径加在“包括路径”中。例如Visual C++6.0编译环境中头文件位于安装目录下VC98文件夹下的Include文件中。 而“预处理定义”中,当用户需要写一些宏定义,那么就写在这个位置。 在网络上看到在预处理定义中添加了如下代码 ULONG = unsigned long; VOID = void; LONG = long; UCHAR = unsigned char; PUCHAR = unsigned char*; PULONG = unsigned long*; WINAPI; BOOL = bool; USHORT = unsigned short; PUSHORT = unsigned short*; 点击下一步也不会遇到上述问题,导入工具会帮助你解析出全部导出函数并自动生成VI。

labview串口属性节点帮助

长名称 说明 Serial Settings:Parity 指定传输或接收每一帧所使用的奇偶校验。有效值 为:(0)无校验(1)奇校验(2)偶校验(3)标记校验(4)空校验。标记表示存在奇偶位且为1。空表示存在奇 偶位且为0。 详细信息 Serial Settings:Number of Bytes at Serial Port 返回会话句柄使用的串口上当前可用的字节数。 详细信息 Serial Settings:Data Bits 指定每一帧使用的数据位数。有效值为5-8。 详细信息 Serial Settings:Modem Line Settings:Line DCD State 指定数据载波检测(DCD)输入信号的当前状态。调制 解调器使用该属性表明在电话线上检测到载波(调制解调器)。也被称为接收线信号检测(RLSD)。该属性为只读,除非Wire Mode 属性为RS232/DCE 或 RS232/AUTO ,且硬件的当前状态为DCE 。 详细信息 Serial Settings:Modem Line Settings:Break State 设置串口中断状态的手动控制。如属性被置有效, 它将挂起字符传输并将传输线置于中断状态,直至 属性被置无效。 如需VISA 在每个写操作后自动发送中断信号,可用Break Length(Break Len)和End Mode for Writes(ASRL End Out) 属性。默认值为 Unasserted 。 详细信息 Serial Settings:Error Replacement Character 指定字符,用于替换带有错误(例如,奇偶校验错误)的输入字符。默认值为0。 详细信息 Serial Settings:Wire Mode 指定当前的连线/转发器模式。对于RS485硬件,该 属性仅对NI 开发的RS485串行驱动程序有效。对于 RS232硬件,值RS232/DCE 和RS232/AUTO 仅对NI 开发的RS232串行驱动程序有效,相应的NI 硬件中 也支持该功能。不支持该功能 时,RS232/DTE 是唯 一有效的值。 详细信息 Serial Settings:Discard NUL Characters 指定是否忽略值为0的数据字节。如属性为TRUE , 读取操作将忽略NUL 字符。如该属性为FALSE ,读取操作将NUL 字符视为正常字符。对于二进制传递,应将该属性设置为FALSE 。默认值为FALSE 。 详细信息 Serial Settings:Stop Bits 指定用于表示帧结束的停止位的数量。有效值为:(10)停止1,(15)停止1.5,(20)停止2。 详细信息 Serial Settings:Flow Control 指定传输和接收数据使用的流控制方法。有效值是: (0)无流控制,(1)XON/XOFF 流控制, (2)RTS/CTS 流控制,(3)XON/XOFF 和RTS/CTS 流控制, (4)DTR/DSR 流控制,(5)XON/XOFF 和DTR/DSR 流控 制。某些值或组合值只适用于特定的串行端口和/或 操作系统。 详细信息 Message Based 指定是否在出现END 条件时终止读取操作。属性仅

labview调用MATLAB的m文件

使用 NI LabVIEW,不论您是在开发算法、分析结果、处理信号,还是在探索 DSP 概念,您都可以自由选择用于工程计算的语法规则。您可以将直观的 LabVIEW 图形化数据流编程与MathScript 相结合,MathScript 是一款面向数学、基于文本的编程语言,包括 600 多种常用的数学、信号处理和分析函数。 什么是 MathScript LabVIEWMathScript 将面向数学的文本编程加入到了LabVIEW 中。MathScript 提供了除图形化数据流编程以外的另一种自定义开发应用系统的方法。现在使用 LabVIEW,您可以选择文本编程方式、图形化方式或是两者的组合。不论您是在开发算法、探索信号处理概念或是分析结果,您都可以选择用于工程计算最有效的语法规则。该技术白皮书为我们阐述了 LabVIEW 和 MathScript 的重要性就在于两者的结合为用户提供的最佳方案。 MathScript 的核心是一种高级文本编程语言,它包含用于信号处理、分析和数学相关任务复杂性的语法和功能。MathScript 为这些功能提供了 600 多种内置函数,您也可以自己创建新的自定义函数。 MathScript 与 m 文件脚本语法基本兼容——这种语法被广泛用于其他工程计算软件,例如 MathWorks公司的 MATLAB 砑、Comsol 公司的 COMSOL Script 软件和其他。这种兼容性意

味着您可以使用大量以前开发的 m 文件脚本,例如在工程教科书中现成的或是在因特网站点上发布的开源 m 文件脚本。 MathScript 如何工作 您可以通过交互式界面或编程界面使用LabVIEWMathScript。如果您需要在一个交互式的界面中加载、保存、设计和执行 m 文件脚本,您可以使用 MathScript 交互式窗口;如要把您的 m 文件脚本作为LabVIEW 应用程序的一部分发布,并结合图形和文本编程,您可以使用 MathScript 节点。 使用 MathScript 交互式窗口 LabVIEWMathScript 窗口提供了一个交互式界面,您可以在上面输入 m 文件脚本命令,并即时查看结果、变量和命令历史。窗口包含了一个命令行界面,您可以在此逐条输入命令以进行快速计算、脚本调试或学习。或者,您也可以通过一个脚本编辑器窗口输入并执行一组命令。在您操作的同时,会有一个变量显示图形化/文本结果,一个历史窗口追踪您的命令。历史视图可以方便算法开发,因为您可以使用剪贴板重复使用您以前执行过的命令。 使用 MathScript 节点 MathScript 节点为在 LabVIEW 中结合图形和文本代码提供了

LabVIEW Tree Control使用说明

LabVIEW Tree Control 使用说明 一.控件简介 (1) 二.控件的常用属性、方法、事件 (2) 三.常见操作的实现方法 (2) 3.1 增加节点 (2) 3.2 删除节点 (2) 3.3 节点的移动 (3) 3.4 获取当前用户选中的节点 (3) 3.5 节点的查找 (3) 3.6 节点的遍历 (4) 3.7 Tree Control界面显示内容操作 (4) 3.7.1 读取left Cell String 或Child Text的值 (4) 3.7.2 修给某Item的值 (4) 3.8 控件内容运行时修改 (4) 一.控件简介 LabVIEW的Tree Control 控件以树型结构显示信息,每个节点带细节描述列。可以显示该节点的其它信息。如下图所示 图 1 . 控件外观

二.控件的常用属性、方法、事件 控件的常用属性、方法、事件可以很方便的从LabVIEW的帮助或者编写简单的Demo 获取,这里就不再赘述。 只是有一点需要注意,控件属性结构上显示的字符是控件的Left Cell String,可以重复,再控件内部管理这些节点是用Tag属性,该属性为字符串类型,不可重复,如果增加节点时不设置该属性,LabVIEW会默认将Left Cell String作为Tag,遇到重复的情况以”下划线加数字”区分。如“张三_1”。在控件的方法、事件中获取到节点值都是控件的Tag。 三.常见操作的实现方法 3.1 增加节点 使用控件的Add Item 方法,如图所示: 如果只是增加一个节点作为树的最后一个节点,可以使用Add Item To End 方法。3.2 删除节点 使用控件的delete Item 方法 Delete children 代表删除父节点是否要删除子节点。如果不删除子节点,子节点将往上移动一层替代原父节点的位置。如果该节点没有子节点而要求删除,将会产生错误。所以删除时最好先检测是否有子节点

基于调用DLL的LabVIEW数据采集的实现

万方数据

陋的论文得到两院院士关注l 数采与监测 卡,此卡为12/16位A/D转换分辨率,最高采样频率町达lOOK 3.3基于调用DLL的应用实例 Hz。PCI--911 1数据采集卡自带了Windows下的驱动程序库 本例子通过调用凌华数据采集卡的PCI—Dask.dll实现简单PCI—Dask.d11.库内包含了数据采集用的所有函数,下面就将要的单通道的旋转机械转子不平衡时振动速度信号的监测,主要调用的有关甬数作个简要的说明。 目的在于说明在LabVIEW中调用DLL的具体应用。在速度传在说明函数之前,有必要对DLL中的数据类型作个介绍。感器检测的信号输入数据采集卡之前,经过了凋理模块,实行116表示有符号16位整型,对应C语言中的。holt;U16表示无了放大、隔离和滤波等,最后显示的波形接近转子不平衡时振符号16位整型,对应c语言中的unsignedshort;1"64表示双精动的正弦波形。 度浮点数,对应c语言中的double。 程序设计采用顺序结构,设置i个调用动态链接库节点。 116Regkter Card(U16CanIType.U16card ):该函数的 第一帧调用ese函 数进行数据采集卡的初始化,输入_numRgitr_Card 功能是初始化数据采集卡,使其做好输入输出操作的准备,返数据采集卡的型号和卡号;第:二帧调用AI—VreadChannel函数回值为数据采集卡的卡号,此卡号数为数据采集卡插在PCI插 读取通道的电压,并用波形图表显示I叶J来;第i帧调用Re一槽中的序列号,在下文例子中为0。CardType和card_num为函lea.se_Card函数释放数据采集卡所占资源,程序结束。具体各个数的参数,CardType为数据采集卡的型号,凌华公司对不同的节点的配置依照上文介绍的步骤设置好即可。程序的前面板如型号有对应的代码,在下文例子中,其代码为2l。在调用其它函图2所示,程序框图如图3所示。 数之前,必须先调用此函数。 116Release Card(U16card):该函数用来释放由 一_humReg ister_Card函数分配的存储参数值以关闭装载的数据采集卡。在程序的最后要调用此函数。 116 AI—VreadChannel(U16CardNumber,U16Channel,U16 AdRange.F64*voltagel:该函数的功能读取指定通道的电压值。参数Channel为指定的通道数,AdRange为输f“的电压的显示范围,也有相应的代码,vohage为输l叶』的电压值。 3.2在LabVIEW中调用DLL的步骤 下面具体的介绍在LabVlEW‘中调用DLL的步骤和应用。软件为LabVIEW8.2中文版。 首先从程序框图中的函数面板中依次选择:互联接 口一库与呵执行程序一调用库函数节点,即可调出调用库 函数节点图标。右键单击,在弹出的菜单中选择“配置…”,弹出调用库函数对话框(图1所示)。这时就町根据需要,对其中的各项进行设置, 图1调用库函数的设置对话框 “库名或路径”选项为要载入的被调用的DLL文件,本文例子中调用的是PCI—Dask.du。“函数名”选项为要调用的函数名称,线程一般默认即町。“调用规范”选项选择对库函数的调用规则,在此选择stdcall。在调用自己用C语言编写的程序而后编译成动态链接库的DLL文件时,“调用规范”选c。 接下来是对“参数”选项的设置,选择网l中的参数项。根据调用的函数,在此项设置下添加和设置相应的参数,参数名称、类型和数据类型都要与被调用函数中的参数名相同。 设置好这两项后.调用库函数节点的配置就完成了,接下来就是外部的编程和连线了。 旋转机械振动监测 图2程序的前面板 图3程序的程序框图 当数据获取后,要进一步对数据进行各种分析处理,就可 在此基础上进行了。 PCI—Dask.dU中提供了丰富的函数,对于模拟量的输入除了调用上文介绍的函数进行数据采集外。同样可以调用其它的相关函数来实现同样的功能,如可调用AI—ReadChannel,AI_ContReadChannel.M_Volts(:ale等。 4结束语 在LabVIEW中通过调用动态链接库来驱动数据采集卡,能使LIl'VIEW和普通的数据采集卡结合进行数据采集.扩大了LabVIEW的应用范罔。节约开发R寸问,同时可以充分利用LabVlEW图形化编程的方便快捷和强大的虚拟仪器开发功能,来实现高效、低成本的应用开发。 (下转第250页) @啪罔邮局订阅号:82娟360元/-q-一79—   万方数据

labview程序结构的使用 (1)

百度文库- 让每个人平等地提升自我! 西安文理学院 机械与材料工程学院实验报告课程名称:虚拟仪器 实验项目:程序结构的使用(一)专业:测控技术与仪器 班级:2012级02班 姓名:罗蒙 学号:0703110217

一、程序设计思路 本次实验通过四个程序设计,来完成labview的熟悉以及子基本程序结构的创建和使用方法 1.题目要求: 认识和熟悉while循环:创建一个while循环,每隔一秒产生一个随机数,并用波形图表显示随机数历史值 设计思路: 创建while循环,随机数产生控件,波形图表,连线。 2.题目要求 认识和熟悉 For循环以及移位寄存器:创建一个For循环,产生100个10-100随机数,将数据在博兴图中显示,并求出最小值,最大值,平均值。 设计思路: 创建For循环,设定循环次数,产生随机数,使用移位寄存器存储生成数据,并对其进行比较,输出。 3.题目要求: 认识和熟悉条件结构:创建一个条件vi,要求用户输入口令,口令正确时,显示密码匹配,否则程序立即停止。 设计思路: 创建条件结构,真分支下密码匹配,显示字符串“密码匹配”,假分支下,添加程序跳出指令,程序停止 4.题目要求 创建一个虚拟温度计VI,用0~100的随机数模拟采集实际温度。要求允许用户控制温度采集的开始停止;温度控件显示模式(摄氏温度或华氏温度)有摇杆控制,用户可设置温度报警上限,如果超过报警上限,则点亮报警灯(红色)设计思路: 使用多种语言结构,实现vi的创建,实现虚拟温度计的设计。

二、前面板设计 图1-1-1 图1-2-1 图1-3-1 图1-4-1 三、程序框图设计 图1—1—2 图1—2—2

Labview中引用,属性节点,局部变量之间的区别

Labview中引用,属性节点,局部变量之间的区别 在Labview 中我们经常会碰到这样几个概念,那就是控件的引用,属 性节点以及局部变量,他们之间到底有哪些区别呢?首先谈引用,在Labview 中长称为引用句柄,在Windows 编程中,引用句柄指的是指向指针的指针,换句话说,引用句柄保存的是其他一些数据类型的地址,例如窗口句柄。在Labview 中,控件的引用句柄指的也是指向特定数据类型的指针,在Labview 中,控件的引用句柄是长度为四个字节,引用句柄不但能够表示控件的类型,还与空间一一对应,这是通过句柄的编号来实现的,引用句柄自身未代表任何空间,但是通过引用句柄指向特定的实例后,就可以操作具体的控件了,简单的理解就是通过对引用句柄的操作,可以改变控件的属性参数。 接下来说属性节点,属性节点在Labview 中是一个很重要的概念,属性节点用于访问控件的属性,例如需要改变控件在前面板的大小,运行时候的状态等都需要通过属性节点来进行操作,与引用结合起来讲就是属性节点可以设置引用的属性。Labview 的属性节点功能强大,不同的控件有不同的引用,这些不同的引用都可以通过各自的属性节点来进行设置,但需要注意的是,属性节点的执行效率比较低,甚至比全局变量的效率还要低,所以NI 一般建议少用属性 节点。最后说局部变量,局部变量相当于C 语言中的局部变量一样,通过局部变量可以在一个VI 中访问或者存储数据,通常这些数据都是存储在不同 的显示或者输入控件当中,所以说局部变量不是单独存在的,每一个局部变量都是与特定的控件相对应的,一个控件可以生成许多局部变量,就相当于在一个函数中定义了一个变量,在函数的任何地方都可以使用这个变量一样,每一个局部变量都要复制对应控件中的数据,因此这将消耗更多的内存,因此在labview 中一些大的数组中不建议使用局部变量。tips:感谢大家的阅读,本文由

关于LabVIEW产生的DLL被C调用的问题

关于LabVIEW产生的DLL被C调用的问题1 LabVIEW的工作 1.1 工程项目 从LV8.0开始,想要生成exe、安装程序或DLL就必须首先创建1个工程,然后把所有有关的VI全部添加到工程中,如图1: 图1 LV项目 为了使目录结构清晰,最好把最后需要输出的VI放置在一起,把子VI放置在一起,如图1中,虚拟目录Top Level Vis用来存放3个输出的VI(可以把它想像成DLL中的函数)、虚拟目录Dynamic Vis存放子VI、虚拟目录Support Files存放支持文件(位图、光标等)。 1.2 VI设置 如同在LV中一样,有些VI完全是作为计算模块使用的(调用时不会弹出界面,如图1中的acquire.vi、analyze.vi),而有些是用来显示界面的(调用时弹出对话框,如图1中的present.vi)。那么如何设置1个输出VI是否显示界面呢?想要产生界面调用的函数,请配置Window Appearance(如图2),然后确保红线圈住的地方必须被选中:

图2 VI界面设置 1.3 输出配置(Build Specification) 右击Build Specification选择New->DLL,弹出DLL输出配置对话框,其有以下对话框需要配置: 1.3.1 基本信息(Information) 图3

?Build specification name—指定唯一的生成模板名称(出现在项目管理页面中),用以和其他模板相区别 ?Target filename—指定输出的DLL名称 ?Destination directory—指定生成文件的输出路径 ?Build specification description—描述该生成模板的相关信息。 1.3.2 输出源指定(Source Files) 图4 ?Project Files窗口—显示项目窗口My Computer下列举的项目(如图1),使用图4中的左/右箭头可将My Computer下列举的项目移入/移出Exported VIs和Always Included窗口。 ?Exported Vis窗口—指定DLL的输出函数(VI),至少要指定1个输出VI。选定移入的VI,Define VI Prototype按钮可使用,并且在点击后弹出如图5所示对话框: 图5 接口原型定义对话框

labview属性节点

很多朋友对于属性节点的使用表示有些不明白,但是其作用又是相当强大的,所以必须明白怎么使用属性节点以及如何调用的问题,下面就来为大家解迷。 在获得对象的reference之后,就可以使用属性节点(Property Node)和调用节点(Invoke Node)来设定对象属性和调用对象提供的固有方法(Method)。 属性节点的一般形式如图1所示: 图1 属性节点 属性节点的最上面有两个输入参数和两个输出参数,输入参数reference用于接入对象的reference,输入的reference参数在被复制之后从reference out输出,可以再接入下一个使用reference作为输入参数的节点或函数。其他两个输入、输出参数用于错误处理。当接入某一个reference后,在class的位置会出现与该reference对应对象类别名称,比如App(Application)表示接入的是应用程序的reference,VI表示接入的是VI的reference等。reference输入参数一般有默认值,例如当类别(class)为Application时,其默认值为当前运行的应用程序的reference;当类别为VI时,其默认值为节点所在VI的reference。name1,name2等端子为属性端子,name1和name2代表属性名。 在属性端子上单击鼠标右键会弹出快捷菜单,在这个菜单里含有名为Properties的属性列表子菜单,在同样的快捷菜单里Change to Read和Change to Write选项将把端口在写端口和读端口之间转换,各个端子之间的读写状态互不影响。某些属性只能读不能写。在默认情况下类型名class和属性名name 1等采用的是“短名称”的表示方法,在属性节点上弹出右键快捷菜单,选择Name Format->Long Names将打开“长名称”的显示方式。如图2 所示: 图2 新放置的属性节点 作为一个例子,为第一个端子选择Operation https://www.sodocs.net/doc/7016872821.html,属性,该属性表示运行程序的操作系统名称。运行程序后,在字符串指示器里返回所选择属性的值Windows NT,如图3所示。Operation https://www.sodocs.net/doc/7016872821.html,为只读属性。reference参数使用了默认值,即当前运行的应用程序的reference,这同使用空的machine name参数调用Open Application Reference 参数返回的结果完全相同。

相关主题