微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > Labview与其他应用程序的接口设计

Labview与其他应用程序的接口设计

时间:01-09 来源:互联网 点击:
labview固然强大,但是有些功能实现起来也是比较麻烦的。我们想使用其他语言或者平台下的现成的程序,怎么办呢?

可以通过下面的集中办法来实现:

1、调用公式节点 functions- All fuctions-structures

2、调用C语言代码(code interface node)functions- All fuctions-structures代码接口节点

3、调用matlab脚本节点functions- All fuctions-analyze-mathematics-formula

4、调用windows API函数(call library function node) 调用库函数节点 .dll

5、调用ActiveX控件(微软的)使用ActiveX容器,具体的实例可参见labview帮助文件里面的事件回调的浏览器的例子。

6、调用.dll程序集或者共享库,通过.net容器来实现。

labview前面板有两种容器:.net容器和activeX容器。.net是使用应用程序集。而ActiveX是使用微软的对象模型(如浏览器,ms播放器等,比较直观的交互技术集)

具体调用细节实际摸索后逐步添加:

1、调用公式节点的例子

图1公式节点实例

其公式与C语言具有类似的表达式,具体看帮助文件。

2、调用C语言代码

这个内容从网络上找到一篇介绍的比较好的文章,现收录进来。在此注明原文地址(为使文章更可读,将图号进行修改):

http://www.eefocus.com/bbs/article_10_6482.html
CIN(Code Interface Node)节点是LabVIEW中用来调用C/C++代码的功能节点。它与动态链接库的不同之处在于,它能够将代码集成在VI中作为单独的一个VI发布,而不需要多余的文件。另外,它提供了函数入口,它可以根据用户提供的输入输出自动生成函数入口代码,从而使用户专心关注代码功能而不用为函数声明、定义等语句费心。因此CIN节点与DLL在不同的场合有不同的优势,但是CIN节点的使用比调用DLL要复杂得多。

由于LabVIEW中数据的存储格式遵循了C语言中数据的存储格式,并且二者完全相同,所以用户可以向CIN传递任意复合的数据结构。另外,CIN比图形化语言可获得更高的执行效率。

注意:对于完全相同的代码,CIN和DLL的执行效率是完全一样的。

如果要使用CIN节点,你必须安装了C编译器。在Windows下,CIN支持以下编译器:

  • Microsoft Visual C++
  • Symantec C

CIN节点必须调用.lsb文件。.lsb文件是通过外部编译器与CINTools工具结合将C代码编译生成的。

下面我们通过一个Step by Step的实例来看如何在LabVIEW中实现CIN节点调用,本例所用外部编译器为Microsoft Visual C++ 6.0。

第一步:在程序框图放置一个空CIN节点;

CIN节点位于Functions Palette的Connectivity->Libraries & Executables->Code Interface Node。

第二步:创建CIN节点的输入输出端口;

初始情况下,CIN只有一对端口:一个输入端口和一个输出端口。向下拉大节点边框或右击节点端口选择Add Parameter,可以为节点增加输入输出端口。CIN节点的端口都是成对出现的,因为CIN节点端口传递的是指针,所以该参数既可以作为输入又可以作为输出。如果不需要输入,则可以右击该输入端口选择Output Only,这时候该对端口的左侧端口变为灰色,表明这对端口仅用作输出。

本例实现的功能为c=a+b,因此需要两个输入端口:a,b;一个输出端口c。如图18.8所示。

设置好端口后,在前面板窗口创建两个Numeric Control(分别命名为a和b)和一个Numeric Indicator(命名为c)。分别将a,b与输入端口连接,c与输出端口连接,如图3所示。可以看到,端口会自动根据输入参量的类型与之匹配。

图2设置CIN节点端口



图3 CIN节点端口与控件连接

虽然控件与端口已经连接,但是此时的CIN节点并不具备任何功能,因为它还没有装载.lsb文件。因此此时VI是不可运行的,即Run按钮处于Broken状态。下面的任务就是创建.c源文件,并编译为.lsb文件,最后加载到节点上。

第三步:创建.c源文件

右击CIN节点选择Create .c File...,在弹出的对话框中保存文件,这里文件名命名为CINExample_add.c。打开该文件可以看到LabVIEW已经自动添加了一些代码用于包含库以及函数声明等,内容如下:

#i nclude "extcode.h"

MgErr CINRun(float64 *a, float64 *b, float64 *c);

MgErr CINRun(float64 *a, float64 *b, float64 *c)

{

return noErr;

}

用户可以在“”处添加函数所需的C代码。头文件“extcode.h”是LabVIEW自带的一个头文件,位于... LabVIEW 8.2cintools目录下。它定义了CIN和外部程序所用到的基本数据类型和许多函数等。其中定义的某些常量和数据类型可能会与系统头文件相冲突,因此在使用系统头文件并进行系统调用时,需要将cintools目录下的hosttype.h文件也包含进来。#i nclude “ho

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top