利用LabVIEW的CIN接口实现数值积分运算|数值积分

  摘要:该文主要介绍如何通过LabVIEW中的CIN接口来实现在工程应用领域被广泛用到的数值积分算法。关键词:CIN接口;LabVIEW;数值积分   中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)03-0691-02
  LabVIEW是由美国NI公司研制的以框图形式产生程序的虚拟开发平台,简明、直观、易学易用,在虚拟仪器技术得到广泛利用的今天有着重要地位。但它的不足之处是修改程序比较麻烦,不如文本语言方便。然而,C语言具有功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好的特点。
  本文中,作者就通过LabVIEW的CIN接口来调用C语言程序,结合两种软件的长处,实现工程领域中得到广泛应用的数值积分的运算。
   1 LabVIEW与C语言的接口――CIN
  1.1 CIN概述
  CIN即“Code Interface Node”的简称,是LabVIEW与C语言的接口,在遇到一些LabVIEW软件难以实现的功能或者调试过程中可能需要大量修改的程序时,就可以通过CIN图标来将C语言编写的源代码引入LabVIEW,从而提高LabVIEW数据处理功能和程序修改的便捷性。
  工作原理:通过输入、输出端口实现两种语言之间的数据传输,当LabVIEW的程序运行到CIN节点时,数据就会从CIN的输入端口传递给C语言源代码,程序就会去执行C源代码,执行完毕后得到的数据结果再由CIN的输出端口返回给LabVIEW显示。1.2 CIN图标调用路径
  在程序框图面板,点击鼠标右键,执行函数>>互连接口>>库与可执行程序>>代码接口节点(如图1)。1.3 CIN图标的端口参数设置
  将初始CIN图标根据所需的具体情况设置,在本文中,将它设置为如图2所示,有四个输入和输出端口,其中最后一个输入端口设置为无效。CIN的输入、输出端口的参数类型由连接在该端口上的空间的数据类型所决定。
  
  图1 CIN图标对话框
  
   2 LabVIEW调用C语言实现数值积分运算的设计步骤
  本论文是在WindowsXP下,运用LabVIEW 8.5通过CIN接口来调用Visual C++6.0为平台编写的C语言代码来实现数值积分的运算的。2.1生成C源代码框架
  首先在LabVIEW 8.5中设计出如图3所示的前面板,同时在它的程序框图(图4)中添加CIN端口,并做如图的设置和连接,命名为jifen.vi并且保存。
  接着,鼠标右键点击程序框图中的CIN图标,在菜单中选择“创建.c文件”
  项,在弹出的储存对话框中,将该文件存为“jifen.c”,则会有C的文件源代码如下:
  /* CIN source file */#include "extcode.h"
  
   MgErr CINRun(LStrHandle fX, float64 *b, float64 *a, float64 *result); MgErr CINRun(LStrHandle fX, float64 *b, float64 *a, float64 *result)
  {/* Insert code here */ return noErr; }
  2.2源代码添加
  在上述中的“/* Insert code here */”位置添加已经编写好的数值积分运算的C源代码。这里用最常见的复化梯形公式:
  {/* Insert code here */t=h*(f(a)+f(b));
  #include do
  #include { t0=t;#define e 1e-5g=0;
  #define a 0//积分下限afor (i=1;ie); n=1;printf("%.8lf",t); h=(double)(b-a)/2;return 0; }
  2.3 C源代码文件的编译
  启动VC++6.0,进行如下步骤的编译:
  1)新建一个DLL工程文件,命名为jifen,并保存;
  2)在工程文件中执行Project>>Add to Project>>Files操作,找到LabVIEW 8.5安装文件cintools文件夹中的中的cin.obj,labview. lib,lvsb.lib,lvsbmain.def四个文件和源代码文件jifen.c;
  3)执行Project>>Setting对源代码文件进行编译前的设置。
  a.将Setting for设置为All Configuration;
  b.打开C/C++标签,在Category下选择Preprocessor,在Addition Include Directories中添加LabVIEW的cintools文件夹路径,例如在这里是“:D:\LabVIEW 8.5\cintools”。
  c.同样在C/C++标签,在Category下选择Code Generation,将Struct Merber Alignment设置为1Byte;将Use Run-time Zibrary设置为
  Multithreaded DLL。
  d.打开Custom Build标签,在Commands中输入命令D:\LabVIEW 8.5\cintools\lvsbutil$(TargetName)-d"$(WkspDir)\$(OutDir)";在Output中输入命令$(OutDir)$(TargetName).lsb。
  4)打开jifen.c源文件,进行编译,如有错误,按给出的提示修改程序,再次编译,直至没有错误。最后对原文件进行组建,即生成可执行文件jifen.lvb。2.4装载、程序运行
  在LabVIEW8.5的程序框图窗口中,鼠标右键CIN图标,选择“加载代码资源”,选择jifen工程文件中Debug文件夹下的jifen.lsb文件。最后,即可运行程序,改变上下限b、a的值或者被积函数(fx)的表达式,观察输出显示。
   3结束语
  LabVIEW虽是功能强大的图形编程工具,但也存在一定缺陷,遇到一些需要大量修改,或是LabVIEW难以实现的功能时,就可
  以通过它的CIN接口来调用C的源代码来更方便的解决问题。本文就以复化梯形公式求解数值积分为例,叙述通过CIN图标在LabVIEW中引入C语言源代码,从而增强其整体功能。
  参考文献:
  [1]刘君华.基于LabVIEW的虚拟仪器设计[M].北京:电子工业出版社,2003.
  [2]谭浩强.C++程序设计[M].北京:清华大学出版社,2004.
  [3]崔胜民,李建如.数值为分积分算法及LabVIEW实现[J].机床与液压,2005(4).
  [4]蔡共宣.虚拟仪器技术引入测试技术教学的研究与实践[J].装备制造技术, 2009(2).
  [5]王武礼,杨华.基于虚拟仪器技术的计算机测控实验平台[J].实验技术与管理,2010(1).

推荐访问:运算 数值 接口 积分