如何用Labview调用C语言.doc

如何用Labview调用C语言.doc

ID:48439050

大小:78.77 KB

页数:7页

时间:2020-01-28

如何用Labview调用C语言.doc_第1页
如何用Labview调用C语言.doc_第2页
如何用Labview调用C语言.doc_第3页
如何用Labview调用C语言.doc_第4页
如何用Labview调用C语言.doc_第5页
资源描述:

《如何用Labview调用C语言.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Labview调用C语言的方法CIN(CodeInterfaceNode)节点是LabVIEW中用来调用C/C++代码的功能节点。它与动态链接库的不同之处在于,它能够将代码集成在VI中作为单独的一个VI发布,而不需要多余的文件。另外,它提供了函数入口,它可以根据用户提供的输入输出自动生成函数入口代码,从而使用户专心关注代码功能而不用为函数声明、定义等语句费心。因此CIN节点与DLL在不同的场合有不同的优势,但是CIN节点的使用比调用DLL要复杂得多。由于LabVIEW中数据的存储格式遵循了C语言中数据的存储格式,并且二者完全相同,所以用户可以向CIN传递任

2、意复合的数据结构。另外,CIN比图形化语言可获得更高的执行效率。注意:对于完全相同的代码,CIN和DLL的执行效率是完全一样的。如果要使用CIN节点,你必须安装了C编译器。在Windows下,CIN支持以下编译器:MicrosoftVisualC++SymantecCCIN节点必须调用.lsb文件。.lsb文件是通过外部编译器与CINTools工具结合将C代码编译生成的。 下面我们通过一个StepbyStep的实例来看如何在LabVIEW中实现CIN节点调用,本例所用外部编译器为MicrosoftVisualC++6.0。第一步:在程序框图放置一个空CIN

3、节点;CIN节点位于FunctionsPalette的Connectivity->Libraries&Executables->CodeInterfaceNode。第二步:创建CIN节点的输入输出端口;初始情况下,CIN只有一对端口:一个输入端口和一个输出端口。向下拉大节点边框或右击节点端口选择AddParameter,可以为节点增加输入输出端口。CIN节点的端口都是成对出现的,因为CIN节点端口传递的是指针,所以该参数既可以作为输入又可以作为输出。如果不需要输入,则可以右击该输入端口选择OutputOnly,这时候该对端口的左侧端口变为灰色,表明这对端口

4、仅用作输出。本例实现的功能为c=a+b,因此需要两个输入端口:a,b;一个输出端口c。设置好端口后,在前面板窗口创建两个NumericControl(分别命名为a和b)和一个NumericIndicator(命名为c)。分别将a,b与输入端口连接,c与输出端口连接,如图3所示。可以看到,端口会自动根据输入参量的类型与之匹配。图2 设置CIN节点端口图3CIN节点端口与控件连接虽然控件与端口已经连接,但是此时的CIN节点并不具备任何功能,因为它还没有装载.lsb文件。因此此时VI是不可运行的,即Run按钮处于Broken状态。下面的任务就是创建.c源文件,并

5、编译为.lsb文件,最后加载到节点上。第三步:创建.c源文件右击CIN节点选择Create.cFile...,在弹出的对话框中保存文件,这里文件名命名为CINExample_add.c。打开该文件可以看到LabVIEW已经自动添加了一些代码用于包含库以及函数声明等,内容如下:#include"extcode.h" MgErrCINRun(float64*a,float64*b,float64*c);MgErrCINRun(float64*a,float64*b,float64*c)      {            returnnoErr;      }

6、 用户可以在“”处添加函数所需的C代码。头文件“extcode.h”是LabVIEW自带的一个头文件,位于...LabVIEW8.2cintools目录下。它定义了CIN和外部程序所用到的基本数据类型和许多函数等。其中定义的某些常量和数据类型可能会与系统头文件相冲突,因此在使用系统头文件并进行系统调用时,需要将cintools目录下的hosttype.h文件也包含进来。#include“hosttype.h”必须紧跟着#include“extcode.h”语句,然后才能用#include语句包含系统头文件。当CIN节点执行时,LabVIEW将调用CINRu

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

8、ved); returnnoErr;} 通常情况下,我们只需要编写

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。