
LabVIEW 和 VisionPro 这对组合在工业视觉领域算是经典搭档了。最近在给产线升级检测
系统时,突然发现有些老设备上的 VisionPro 算法需要和新版 LabVIEW 2020 对接,这中
间踩的坑够写本手册了。今天就聊聊怎么让这两玩意儿顺畅对话,特别是针对刚入坑的兄
弟们容易栽跟头的地方。
首先得把环境配明白了。VisionPro 安装时记得勾选.NET 支持,否则 LabVIEW 那边调用
会直接哑火。装好后打开 LabVIEW,在函数面板里找到.NET 构造器节点(位置在互联接
口→.NET 里),这时候如果 VisionPro 的 COM 组件没注册成功,这里就会像死机的 ATM
机一样显示空白。遇到这情况别慌,直接到 VisionPro 安装目录下找到 Bin 文件夹,用管
理员权限运行 regsvr32 Cognex.VisionPro.dll 手动注册。
```labview
// LabVIEW 调用 VisionPro 核心代码结构
VisionProApp := .NET 构造器节点(Assembly 路径选 VisionPro 的 Cognex.VisionPro.dll)
CogToolBlock :=
VisionProApp.CreateInstance("Cognex.VisionPro.ToolBlock.CogToolBlock")
ImageFileTool := VisionProApp.CreateInstance("Cognex.VisionPro.CogImageFileTool")
```
这段代码初始化了 VisionPro 的运行容器,重点注意 CreateInstance 的参数必须是完整的
命名空间路径。有次现场调试死活加载不了工具块,最后发现是参数写成"CogToolBlock"
漏了前面 Cognex.VisionPro 的命名空间,这种低级错误真能让人在客户现场尬到脚趾抠地
。
图像采集环节有个巨坑:VisionPro 的像素格式和 LabVIEW 的 IMAQ 图像格式不直接兼容
。必须用中间层转换,这里推荐用 Vision 自带的 CogConvertTool 做桥接。在 LabVIEW 里
调用时记得设置 ConvertMode 属性为 0(对应像素值直接映射),否则灰度图传过来可能
变成迷幻彩色。
```labview
// 图像格式转换处理
CogConvert := VisionProApp.CreateInstance("Cognex.VisionPro.CogConvertTool")
CogConvert.OperatorName = "CogConvert8To16Grey"
CogConvert.InputImage = IMAQ 图像控件.Image
CogConvert.Run() // 这里要手动触发转换
ResultImage := CogConvert.OutputImage
```
跑算法的时候最怕内存泄漏,特别是连续处理几百张图时。LabVIEW 的.NET 节点有个隐