Labview调用库函数节点方法讲解.docx

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Labview调用库函数节点(调用DLL) 相对于CIN来讲,NI更推荐用户使用DLL来共享基于文本编程语言开发的代码。除了共享和重复利用代码,开发人员还能利用DLL封装软件的功能模块,以便这些模块能被不同开发工具利用。在labview中,使用DLL一般有以下几种途径: ????(1)使用自己开发DLL中的函数。 ????(2)调用操作系统或硬件驱动供应商提供的API。 ????对于前一种方法来说,又可以通过以下几步实现: ????(a)在labview中定义DLL原型; ????(b)生成.C或.C++文件,完成实现函数功能的代码并为函数添加DLL导出声明; ????(c)通过外部IDE(如VC++)创建DLL项目并编译生成.dll文件。 下面的内容将具体讲解: 配置Call library function node (CFN) ????无论在labview中使用自己开发的DLL,或者硬件驱动供应商(操作系统)提供的API,都可以通过配置CFN来完成。如下图 在CFN图标的右键菜单选择“配置”,打开配置对话框,通过该对话框,可以指定动态库存放路径、调用函数名以及传递给函数的参数类型和函数返回值的类型。在配置完成后,CFN节点会根据用户的配置自动更新其显示。 通过browse按钮或者直接在library name or path输入框中指定调用函数多在.dll文件的路径。 通过browse按钮下的控件用户可以指定多个线程同时调用DLL。默认情况下,labview以run in UI Thread方式调用DLL,调用的函数将直接在用户线程中运行。另外一种方式是递归方式reentrant,在这种情况下可以允许多个线程同时调用DLL中的函数。但要确保正常调用,必须使dll中的代码线程安全。 ????在“Function Name”输入框中指定要调用函数的函数名。 ????通过“Call Conventions”下拉列表框指定调用DLL 中函数的方式。可以指定调用方式为“C”(默认方式)或Windows 标准调用方式“stdcall”。一般来说用“C”方式调用开发人员自己写的DLL 函数,而 “stdcall”一般做为标准调用方式来调用windows 的API ????通过Parameter 域可以指定所调用函数的返回值类型。默认情况下CFN 节点没有输入参数而且只有一个void 类型的返回参数。该参数由CFN 节点第一对连接点的右端返回,代表CFN 执行结果。如果返回参数的类型是void 类型,则CFN 连接点为未启用状态(保持为灰色)。CFN 的每一对连接点代表一个输入或输出参数,若要传递参数给CFN 则将参数连接至相应连接点的左端,若要读取返回值,则将相应连接点的右端连接到Indicator。CFN 返回参数的类型可以是Void,Numeric 或String。只能为返回参数指定Void 类型,输入参数不能指定为Void 类型。调用的函数没有返回值时,指定CFN 的返回参数类型为void 类型。即使参数有确定类型的返回值,也可以指定CFN 的返回类型为Void,但是此时,函数的返回值将被忽略。有些时候,调用的函数返回值不是以上三种类型,可以使用与以上三种类中有相同大小的一个来代替。例如如果调用的函数返回一个Char 类型数据,则可以用一个8-bit unsigned integer Numeric 类型来代替。此外,由于LabVIEW 中没有指针,因此调用DLL 中的返回指针的函数似乎不可能。但是可以设定返回值类型为一个与指针有相同大小的Integer 类型,LabVIEW 将把地址以整型值来看待,并且用户可以在以后的调用中直接使用它。 ????通过Parameter 域和其右边的“Add a Parameter Before”,“Add a Parameter After” 和“Delete thisParameter”三个按钮可以增加、删除以及修改CFN 的输入参数和类型。当用户选择某参数的类型后,其详细的数据类型列表和参数传递方式列表将显示出来,以方便进行详细设定。下表列出了可以设定的输入参数类型及其详细数据类型信息。 ????有时可能在CFN 配置对话框中并不能找到要传递给它的参数类型,在这种情况下可以通过下面方法来解决。如果参数不含指针,则可以通过Flatten to String 函数将参数转换为字符串,并将此字符串指针传递给函数。还有其它一些技巧请参见NI 手册。设定后的最终结果显示在“Function Prototype”文本框中,在确认前,可以在此检查设定是否正确。如果不正确可以在此修改设定。 调用自己开发DLL中的函数 ????开发人员可以在LabVIEW 中指定DLL 函数的原型,然后在外部ID

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档