当前位置: 首页 > news >正文

基于LabVIEW的BeamGage自动化接口应用

设置

National Instruments LabVIEW可执行程序需要被配置为使用.NET 4框架。.NET允许自定义可执行程序的运行方式。可通过以下方式实现:

在LabVIEW安装目录中创建一个名为LabVIEW.exe.config的文本文件(例如:C:\Program Files\National Instruments\LabVIEW 2012\LabVIEW.exe.config)。使用文本编辑器(如记事本)编辑该文件,插入以下内容:

 

xml

<configuration><startupuseLegacyV2RuntimeActivationPolicy="true"><supportedRuntimeversion="v4.0.30319"/></startup></configuration>


启动与关闭(LabVIEW)

本示例基于LabVIEW 2013开发(可能需要根据您的环境进行调整)。示例假设您已经安装了BeamGage Professional。

  1. 在LabVIEW中新建一个空白VI,进入框图

  2. 右键打开功能面板,选择Connectivity->.NET->Constructor Node

  3. 放置Constructor Node后,LabVIEW会弹出选择.NET构造器的对话框。

  4. 指向BeamGage安装目录并选择Spiricon.Automation.dll程序集。

  5. 使用Spiricon.BeamGage.Automation.dll中的AutomatedBeamGage对象创建.NET构造器节点。

注意:

  • 默认构造器无需参数,将以"AutomationClient"为默认实例名启动BeamGage,且显示GUI。

  • 如果需要自定义实例名或禁用GUI,可以使用AutomationLabViewInjector类并传递两个参数:实例名(字符串)和GUI显示选项(布尔值)。

关闭自动化服务端需通过客户端完成。使用IAutomationInstance接口关闭服务端。以下是获取该接口并关闭服务端的LabVIEW代码片段:


控制BeamGage接口(LabVIEW)

以下示例展示如何通过自动化客户端调用BeamGage的Ultracal功能。

  1. 在LabVIEW的框图中创建事件结构并包裹在循环中。

  2. 在Ultracal事件中,获取IACalibration接口并调用其功能。

  3. 如果调用失败,会显示对话框,同时释放IACalibration对象,但程序继续执行直到停止事件被触发。


事件注册(LabVIEW)

大多数情况下,BeamGage数据的提取依赖于新帧数据的可用性。以下是注册事件的步骤:

  1. 构建AutomationFrameEvents对象,并传递所需的IAFrame接口(如FramePriorityFrameResultsPriorityFrame)。

  2. 使用Reg Event Callback元素为OnNewFrame事件注册回调VI。

  3. 创建并连接回调VI以响应新帧事件。


提取BeamGage结果(LabVIEW)

以下示例展示如何在回调VI中提取计算结果。

  • 在回调函数中,获取所需的数据并将工作推送到其他线程以避免阻塞BeamGage。

  • 关闭IAResultsPowerEnergy接口的引用,确保资源被及时释放。


提取BeamGage数据(LabVIEW)

以下示例展示如何在回调VI中提取帧数据:

  1. 使用ResultsPriorityFrame接口获取帧数据。

    • DoubleData属性:以摄像头的原始位深度显示数据,适合导出或显示。

    • FrameData属性:以32位格式存储数据,适合进一步计算。

  2. 获取SpatialResults接口中的PeakLocationXPeakLocationY数据,以及FrameInfoResults中的宽度和高度结果。

  3. 在主框图中,将数据与2D强度图和1D光束轮廓图相连接,并调整前面板以仿真BeamGage显示窗口。


部署

按照"设置"部分的说明,为客户端可执行程序创建.exe.config文件(例如,应用程序名为HelloWorld.exe时,配置文件名为HelloWorld.exe.config)。

注意:
LabVIEW应用程序生成器的技术限制要求应用程序文件(.exe和.exe.config)必须放置在BeamGage安装目录中。


生成于2024年2月20日,基于AutomationInterfaceAPI,使用Doxygen 1.8.18

http://www.lryc.cn/news/515420.html

相关文章:

  • 【AI编辑器】Cursor与DeepSeek模型的集成:提升开发效率的新选择
  • vue2实现excel文件预览
  • STM32 和 ESP32
  • R语言中的时间序列分析·
  • QML学习(六) anchors锚点和坐标,以及anchors锚点的使用
  • BFS广度优先搜索详解
  • vue项目利用webpack进行优化案例
  • 如何单独安装 MATLAB 工具箱
  • 组网实训实现
  • openbmc sdk09.03 适配(一)
  • SQL使用存储过程
  • C语言----函数、指针、数组
  • 基于Java的敬老院管理系统的设计和实现【源码+文档+部署讲解】
  • 12306分流抢票软件 bypass v1.16.43 绿色版(春节自动抢票工具)
  • 【数据仓库】hadoop3.3.6 安装配置
  • 小试牛刀-SpringBoot集成SOL链
  • 批量插入报错: No value specified for parameter
  • VSCode设置ctrl或alt+mouse(left)跳转
  • Crosslink-NX应用连载(12):如何复用特殊功能管脚
  • ‘元素.style.样式名‘获取不到样式,应该使用Window.getComputedStyle()获取正真的样式
  • 双目视觉:reprojectImageTo3D函数
  • Arduino Uno简介与使用方法
  • 深入了解 StarRocks 表类型:解锁高效数据分析的密码
  • L27.【LeetCode笔记】2 的幂(五种解法)
  • Pentaho Kettle迁移至Oracle的空字符串和NULL的问题处理,大坑!
  • 「Mac畅玩鸿蒙与硬件50」UI互动应用篇27 - 水果掉落小游戏
  • 2.C语言基础:语句、表达式、注释与标准库简介
  • Python 基于 opencv 的人脸识别监控打卡系统(源码+部署)
  • Maven的依赖管理
  • 数据结构考前一天