第7章外部应用接口.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第7章外部应用接口主要学习内容1.学习CIN的概念和调用;2.学习Matlab节点的使用;3.学习DLL的概念和调用。7.1CINCIN的概念CIN是CodeInterfaceNode的缩写,是LabVIEW开发平台的G语言环境与C语言的接口CIN与LabVIEW中的其他节点类似,是通过输入、输出端口来实现两种语言之间的数据和参数的传递的。CIN的调用步骤在后面板框图程序设计窗口中,选择AllFunctions→Advanced子模板下的CodeInterfaceNode节点,放置在框图程序设计窗口中。CIN图标中的一个小格表示一个参数端口,左侧为输入端口,右侧为输出端口,而且左右端口是一一对应的,代表一个参数的一对输入输出端口。CIN节点的输入、输出端口的数据类型由连接在该端口上的控件的数据类型来决定。2.在节点图标上单击右键弹出快捷菜单,选择Addparameter命令项添加参数。如果需要增加参数,可以通过两种方法:1.用鼠标定位工具拖动节点一角改变节点图标的尺寸;设计CIN模块的步骤利用LabVIEW提供的框架设计CIN模块的步骤:1.生成C源代码框架2.添加C源代码3.编译生成lsb文件4.加载编译成功的lsb文件7.2MatlabLabVIEW中的公式节点可以实现一些基本的数学运算,如果涉及到比较复杂的数学运算,则可以调用Matlab的脚本文件(m文件)来实现。注意:要使用Matlab节点,必须首先安装Matlab,因为Matlab节点要调用Matlab脚本服务器。7.2.1Matlab节点Matlab节点位于功能面板的AllFunctions→Analyze→Mathematics→Formula子模板内,添加Matlab节点的方式和前面章节中添加公式节点的方式类似。创建Matlab节点在Formula子模板选择Matlab节点向Matlab节点输入Matlab文件的方法有两种:一种是直接在框内写入文件代码;另一种是在Matlab节点的边框上单击鼠标右键,在弹出的快捷菜单中选择Import…命令选项,在弹出的对话框中输入Matlab脚本文件即可。输入Matlab文件的菜单操作输入/输出变量的添加和公式节点类似,分别用AddInput和AddOutput来实现。和公式节点一样,用户可以为Matlab节点的每个输入/输出变量添加指示器或者控制器。为Matlab节点的输入/输出变量添加指示器或控制器7.2.2LabVIEW和Matlab数据类型在Matlab中,用户一般不用指定数据类型,所有输入变量会有缺省的类型,而在LabVIEW里面,Matlab节点并不能够判断数据类型,因此用户必须要为每个数据变量指定一个类型。在脚本节点上,可以改变输入或输出端子的数据类型,应该经常检查脚本节点的输入、输出数据类型。在Matlab中,对于任何新的输入或输出,其默认类型为Real。改变脚本节点上输入输出端子的数据类型首先在变量上面单击鼠标右键,在弹出的快捷菜单中选择ChooseDataType命令选项,就会出现Matlab中的各种数据类型名称,然后按照事先在Matlab中定义的类型给每个变量选择合适的数据类型,则系统就会把变量变成相应的LabVIEW内的类型。定义数据类型的菜单操作数据类型图标LabVIEW数据类型Matlab数据类型带符号32位整数不适用双精度浮点数Real字符串不适用带符号32位整数一维数组不适用带符号32位整数多维数组不适用双精度浮点数一维数组RealVector双精度浮点数多维数组RealMatrix多精度复数Complex双精度复数一维数组ComplexVector双精度复数多维数组ComplexMatrix表7-1LabVIEW和Matlab数据类型7.2.3Matlab节点应用[例7.1]画一段正弦函数图像。在Matlab节点内写入如下代码:x=-5:1/10:5;y=sin(x);plot(x,y);框图程序-5-4-3-2-1012345-1-0.8-0.6-0.4-0.200.20.40.60.81Matlab中画出的正弦函数图LabVIEW中画出的正弦函数图7.3DLLLabVIEW提供了C语言接口及直接调用动态链接库(DLL)函数的功能。DLL是建立在客户端/服务器通信的概念上,包含若干个函数、类或资源的库文件,函数和数据被存储在一个DLL服务器上,并由一个或多个客户导出使用,这些客户可以是应用程序,或者是其他的DLL。在动态链接的情况下,有两个文件,一个是引入库(.Lib)文件,一个是DLL文件。引入库文件包含从DLL导出的函数的名称和位置,DLL包含实际的函数和数据。应用程序使用Lib文件链接到所需要使用的DLL文件,库中的函数和数据并不复制到可执行文件中,因此,在应用程序的可执行文件中,存放的不是被调用的函数代码,而是在DLL中所要调用的函数的内存地址,这样当一个或多个应用程序运行时,再把程序代码和被调用的函数代码链接起来,从而节省了内存资源。7.3.2调用DLL在LabVIEW中,可通过CallLibraryFunction函数模块调用动态链接库。在框图程序设计窗口,选择功能模板中的Advanced→CallLibraryFunctionNode,放置在框图程序设计窗口中。图7-11CallLibraryFunctionNode的图标双击此函数模块,将弹出CallLibraryFunctionNode对话框,可以对要调用的动态链接库及其函数进行设定。CallLibraryFunctionNode对话框LibraryNameOrPath为要调用的动态链接库文件名和路径,用户也可以通过Browse…按钮查找该动态链接库文件;FunctionName为即将调用的函数名,它必须与动态链接库中函数创建时的函数名相同,并且注意大小写;AddaParameterBefore或AddaParameterAfter可以添加函数的参数,也可用DeletethisParameter删除当前参数;Parameter选项用于指定任一参数的类型,也可指定该函数返回值的类型。函数的参数名任意,但其顺序和类型必须与动态链接库中函数创建时的顺序和类型一致。需要注意的是,上图所示对话框中CallingConventions项的设置应与创建动态链接库时的编译模式相一致,否则会发生不可预见的错误而退出程序。单击OK按钮后,就可以将该CallLibraryFunction节点当作一个具有该动态链接库中被调函数功能的节点来使用。LabVIEW还提供了编写动态链接库的C源代码框架,利用此框架编写动态链接库的步骤如下:1.生成C源代码框架在后面板框图程序设计窗口创建CallLibraryFunctionNode,在其图标上单击右键弹出快捷菜单,选择Create.cFile命令选项,这时弹出一个文件对话框,在其中键入文件名(例如:labview_DLL.c),然后用文本编辑器打开保存的文件,LabVIEW在文件中已经生成了如下的框架:/*CallLibrarysourcefile*/#includeextcode.hvoidfuncName(void);voidfuncName(void){/*Insertcodehere*/}2.添加源代码在生成的C源代码框架中/*Insertcodehere*/处加入用户需要的函数体,框架中的函数名和返回类型应与用户在图7-12所示的CallLibraryFunction对话框中设置的一致。添加完源代码后保存文件即可。3.编译生成DLL将保存的C源代码文件(LabVIEW_DLL.c)放到VC++集成环境下进行编译,将生成DLL文件,这样就可以在LabVIEW中直接调用LabVIEW_DLL.DLL中的函数了。

1 / 25
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功