首页 新闻 工控搜 论坛 厂商论坛 产品 方案 厂商 人才 文摘 下载 展览
中华工控网首页
  P L C | 变频器与传动 | 传感器 | 现场检测仪表 | 工控软件 | 人机界面 | 运动控制
  D C S | 工业以太网 | 现场总线 | 显示调节仪表 | 数据采集 | 数传测控 | 工业安全
  电 源 | 嵌入式系统 | PC based | 机柜箱体壳体 | 低压电器 | 机器视觉
LabVIEW与外部程序间DLL文件的调用
北京泛华恒兴科技有限公司
收藏本文     查看收藏

20 Parameters页面

点击“OK”,将生成的CLN的输入段连接到DAQmx Read.vireturn type输出连接到波形图表上,即可实现采集值放大10倍的功能。

21 完成后的程序

方法二

LabVIEW中还有一种方法可以调用DLL文件,在VI的选项栏,依次选择Tools——Import——Shared Library.dll),弹出Import Shared Library对话框。

22 生成Import Shared Library对话框

选择Create VIs for a shared library,点击Next,在Shared Library.dll Files中输入Scale.dll文件的路径,Head.h File里填写头文件的路径。

23 选择DLL文件路径和头文件路径

点击Next,如果DLL文件中依赖其他的一些DLL文件,需要在Include Paths中填写这些文件的路径。其他选项可以根据客户需求设置,一般默认即可。这样一直点击Next到最后,选择Open the generated library,点击Finish。这样可以生成一个.lvlib格式的库文件,里面包含了Scale.vi,这是将调用该DLL文件的方法封装好的VI,只留下输入和输出接口,方便运用到LabVIEW的程序中。直接将Scale.vi拖放到刚才的连续采集中即可完成方法一的功能。

 

 

24 完成的程序

 

VC调用LabVIEW生成的DLL文件

刚才介绍了LabVIEW调用DLL文件的方法,使用VC调用LabVIEW生成的DLL文件也很简单。还是以之前生成Scale DLL文件为例,不同的是采集电压程序使用的是C语言的例程,但和LavVIEW实现的功能相同。

首先将先前生成Scale DLL文件时,路径下所有的文件全部复制粘帖到C语言例程的文件夹下。打开连续采集程序,点击状态栏的Project——Settings,在Project Settings对话框中加载入Scale.lib的静态链接库。

在程序中键入#include "Scale.h",以便引入该DLL函数。下面是C程序的代码,功能是有限点采集电压,通过Scale.dll文件实现采样值放大10倍的功能。加粗部分是因为调用DLL文件所做的改动。

#include <stdio.h>

#include "NIDAQmx.h"

 

#include "Scale.h"

 

#define DAQmxErrChk(functionCall) if( DAQmxFailed(error=(functionCall)) ) goto Error; else

 

int main(void)

{

       int32       error=0;

       TaskHandle  taskHandle=0;

       int32       read;

       float64     data[1000];

       char        errBuff[2048]={'\0'};

    int i=0;

       double  x10=0;

 

 

       /*********************************************/

       // DAQmx Configure Code

       /*********************************************/

       DAQmxErrChk (DAQmxCreateTask("",&taskHandle));

       DAQmxErrChk (DAQmxCreateAIVoltageChan(taskHandle,"Dev1/ai0"/*Config correct device*/,"",DAQmx_Val_Cfg_Default,-10.0,10.0,DAQmx_Val_Volts,NULL));//

       DAQmxErrChk (DAQmxCfgSampClkTiming(taskHandle,"",10000.0,DAQmx_Val_Rising,DAQmx_Val_FiniteSamps,1000));

 

       /*********************************************/

       // DAQmx Start Code

       /*********************************************/

       DAQmxErrChk (DAQmxStartTask(taskHandle));

 

       /*********************************************/

       // DAQmx Read Code

       /*********************************************/

       DAQmxErrChk (DAQmxReadAnalogF64(taskHandle,1000,10.0,DAQmx_Val_GroupByChannel,data,1000,&read,NULL));

 

       printf("Acquired %d points\n",read);

   

       for(i=0;i<1000;i++){

        Scale(data[i], &x10);

           printf("the %d Value is : %f \n",i,x10);

 

       }

Error:

       if( DAQmxFailed(error) )

              DAQmxGetExtendedErrorInfo(errBuff,2048);

       if( taskHandle!=0 )  {

              /*********************************************/

              // DAQmx Stop Code

              /*********************************************/

              DAQmxStopTask(taskHandle);

              DAQmxClearTask(taskHandle);

       }

       if( DAQmxFailed(error) )

              printf("DAQmx Error: %s\n",errBuff);

       printf("End of program, press Enter key to quit\n");

       getchar();

       return 0;

}

    所以,使用LabVIEW不仅可以方便地调用各种编译软件生成的DLL文件,自己也能生成DLL文件供其他编译软件调用。这样,用户在编写大型项目时更加灵活,也为熟悉C语言的工程师提供了巨大的方便。本文只对LabVIEWVC相互调用DLL文件做了简单的介绍,很多高级功能和技巧,用户可以在实际运用中逐渐掌握。

 

 


 

状 态: 离线

公司简介
产品目录

公司名称: 北京泛华恒兴科技有限公司
联 系 人: 市场部
电  话: 010-82156688
传  真: 010-82156006
地  址: 北京市海淀区西小口路66号东升科技园·北领地 A-4楼
邮  编: 100192
主  页:
 
该厂商相关技术文摘:
基于XML的模块化分布式软件系统架构设计
电动助力转向系统(EPS)耐久性试验台
基于1553B总线和PXI总线的某型航天动力控制系统关键技术研究
效率与成本是数据采集迎接挑战的关键
基于柔性测试技术的通用卫星电源变换器测试设备设计与实现
X-Designer 3.1,构建型软件平台助力测试测量
自动测试设备(ATE)中的技术融合与应用
引领测试系统创新性思维
基于柔性测试技术的节气门反应时间测试系统设计
基于柔性测试技术的车窗按钮老化测试系统
基于柔性测试技术的位置传感器标定与检测系统平台的设计
基于柔性测试技术在噪声定位分析方面的应用
更多文摘...
立即发送询问信息在线联系该技术文摘厂商:
用户名: 密码: 免费注册为中华工控网会员
请留下您的有效联系方式,以方便我们及时与您联络

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 不良信息举报
工控网客服热线:0755-86369299
版权所有 中华工控网 Copyright©2022 Gkong.com, All Rights Reserved