在 cRIO-9010 系列控制器上调用外部代码



主要软件:
主要软件版本: 8.2
主要软件修正版本: N/A
次要软件: N/A

问题:
我有外部代码(比如共享库),并且希望在 cRIO-9010 系列控制器上从我的 LabVIEW 实时应用中进行调用。我应该如何做?

解答:
您可以利用 Wind River VxWorks 提供的 GNU 工具链为 cRIO-9010 控制器创建共享库,并在 LabVIEW 中使用 Call Library Function 进行调用。在开发您的代码时您要留意以下内容: 共享库可以在 VxWorks 中利用与其他 LabVIEW 实时(PharLap)目标类似的调用方式进行调用。但是,这是有限制的:VxWorks 目标使用 *.out 文件,而不是 *.dll 文件。因此,LabVIEW 开发环境不能在 VxWorks 的共享库中读取库信息,并且 Call Library Function 的配置必须利用一个终端 DLL。遵循下列步骤配置您的外部代码:
  1. 编译并将您的 *.out 共享库上传到实时目标。
  2. 编译一个 终端 DLL,该 DLL 与输出的 *.out 共享库使用相同的函数原型。终端 DLL 只包含函数原型而没有实现(比如,空的函数)。这个终端 DLL 只使用在 Windows 主机中,而且必须与原始的 *.out 共享库有 相同名字 -- 比如:foo.dll 以及 foo.out
  3. 放置 Call Library Function Node 在您的程序框图中并指定 foo.* 做为 库名或路径。在主机中,LabVIEW 将查找 foo.dll,但是在实时目标中可执行代码/VI 将查找 foo.out
  4. 注意:Calling Convention 配置参数被忽略。
  5. 终端 DLL 与主机开发环境中 VI 的相对路径必须与实时目标上可执行程序/VI 的相对路径保持一致。
关于调用共享库代码的更多信息,请参考 在 LabVIEW 中使用外部代码 以及 从 LabVIEW 访问 DLL 或者共享库概览

相关链接:
Product Manuals: Using External Code in LabVIEW
Developer Zone: An Overview of Accessing DLLs or Shared Libraries from LabVIEW
Product Page: NI cRIO-9012

附件:





报告日期: 12/05/2006
最近更新: 12/06/2006
文档编号: 43QD6TS9