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

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

时间:01-09 来源:互联网 点击:

sttype.h”必须紧跟着#i nclude “extcode.h”语句,然后才能用#i nclude语句包含系统头文件。

当CIN节点执行时,LabVIEW将调用CINRun函数。CINRun函数将CIN节点的输入输出作为参数看待。此外,还可以添加一些其它的后台例行程序(Routines):CINLoad,CINSave,CINUnload,CINAbort,CINInit,CINDispose和CINProperties。它们分别在不同的时刻执行。例如CINLoad在第一次载入VI时执行。缺省情况下是不执行任何内容的,如果你需要在VI载入时执行某段程序,则可以把该段程序添加在CINLoad例程中。编写CINLoad例程的代码如下:

CIN MgErr CINLoad(RsrcFile reserved) {

Unused (reserved);

return noErr;

}

通常情况下,我们只需要编写CINRun函数。本例中,只需要将.c源文件中的CINRun函数改写如下:

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

{

*c=*a+*b;

return noErr;

}

改写后保存该文件就完成了.c源文件的编写,下面我们通过Visual C++ 6.0集成开发环境来编译该源文件。

第四步:编译.c源文件为.lsb文件

1.打开VC++ 6.0,在主窗口菜单中选择File->New...,在弹出的对话框选择Win32Dynamic-Link Library,设置Project Name为CINExample_add,并在Location栏设置该Project所在路径,如图4所示。点击OK按钮后,在接下来的对话框中选择Finish按钮,在接着弹出的信息提示对话框中点击OK,就成功创建了一个空的DLL Project。

图4VC中创建新DLL Project对话框

2.将前面创建的CINExample_add.c源文件与...LabVIEW 8.2cintools目录下的cin.obj, labview.lib, lvsb.lib, lvsbmain.def添加到Project中。添加方法是在VC++主菜单中选择Project->Add To Project->Files...。

3.选择Project->Settings...,在弹出对话框的Settings for栏中选择All Configurations,然后选择C/C++tab页,选择Category栏为Preprocessor,将...LabVIEW 8.2cintools目录添加到Additional include directories中,如图5所示。


图5将cintools目录添加到搜索目录中

4.仍然在上面的对话框中选择Category为Code Generation,设置Struct member alignment为1 byte。设置Use run-time library为Multithreaded DLL。

5.选择Custom Buildtab页,在Commands栏中输入:”cintools所在目录lvsbutil” $(TargetName) –d “$(WkspDir)$(OutDir)”,在Outputs栏中输入:” $(OutDir)$(TargetName).lsb”,如图6所示。这一步就是利用LabVIEW的CINTools工具包中的lvsbutil工具将VC++生成的DLL文件转换为CIN节点能够使用的.lsb文件。



图6设置Custom Build为lvsbutil

6.点击OK按钮完成配置后,点击VC++工具栏中的Build按钮,编译工程。编译过程中,VC++首先创建一个DLL文件,然后调用lvsbutil工具将这个DLL文件转换为.lsb文件。编译完成后,打开工程目录下的Debug文件夹,我们可以看到新生成的.lsb文件:CINExample_add.lsb。下面就可以将该文件加载到CIN节点中了。

第五步:加载.lsb文件到CIN节点

回到LabVIEW程序中,右击第二步中创建的CIN节点,选择Load Code Resource...,在弹出的文件选择对话框中双击选择刚才创建好的CINExample_add.lsb文件,这就完成了.lsb文件的加载过程。这时候VI窗口工具栏中的Run按钮也变为可执行状态。运行VI可以得到预期结果,如图7所示。


图7利用CIN节点进行加法运算

到此为止,我们就完成了一个CIN节点的创建过程。其实LabVIEW提供了大量的外部函数供CIN节点调用,这些函数涵盖了从底层字节操作到数据排序、内存管理等各个方面。这些函数都在一个称为Managers的库中管理。在C代码中通过调用这些函数可以方便的实现非常强大的功能。限于篇幅,这里就不详细介绍了,有兴趣的读者可以参考NI公司的Using External Code in LabVIEW.pdf文档。在...LabVIEW 8.2examplescins目录下也可以看到LabVIEW提供的不少CIN节点实例。

3、调用Matlab脚本节点

Matlab脚本节点的介绍

Matlab脚本节点位于函数面板的“数学→脚本与公式→脚本节点→Matlab脚本节点”。由于Matlab脚本节点中的脚本完全是Matlab中的M文件,运行Matla脚本节点时会启动Matlab,并在Matlab中执行脚本内容,其支持的函数由Matlab来提供。

Matlab脚本节点可以通过增加输入输出端子来实现LabVIEW和Matlab 脚本节点交互数据。方法为:右击节点边框,选择Add Input或者Add Output选项;可以手动输入M文件,也可以导入或者导出M文件。方法为:右击节点边框,选择Import或者E

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

网站地图

Top