一、代码核心信息总览表
| 项目 | 详情 |
|---|---|
| 开发场景 | C# Windows 窗体应用集成 Cognex VisionPro 机器视觉库 |
| 核心功能 | 加载预配置的相机采集工具(.vpp 文件),实现工具与界面控件的关联 |
| 关键类 / 控件 | CogAcqFifoTool(相机采集工具)、cogAcqFifoEditV21(参数编辑控件) |
| 配置文件 | .vpp格式(VisionPro 工具配置文件,存储相机参数、采集设置等) |
| 依赖库 | Cognex.VisionPro.dll(康耐视 VisionPro 核心库) |
二、变量与方法解析表
| 类型 | 名称 | 作用说明 |
|---|---|---|
| 属性 | cogAcqFifoTool |
VisionPro 相机采集工具对象,用于控制相机初始化、图像采集、参数配置 |
| 属性 | VppPath |
存储.vpp配置文件路径,示例中指向程序目录下的VPP/acqTool.vpp |
| 构造函数 | Form1() |
初始化窗体控件(包括 VisionPro 专用控件) |
| 事件方法 | Form1_Load |
窗体加载时执行:调用LoadVPP()加载配置,将工具绑定到界面控件 |
| 自定义方法 | LoadVPP |
通过CogSerializer加载.vpp文件,反序列化为CogAcqFifoTool对象 |
三、核心逻辑流程图
窗体初始化(Form1())
↓
窗体加载(Form1_Load)
├─ 调用LoadVPP()加载.vpp配置文件
│ └─ 通过CogSerializer.LoadObjectFromFile()生成cogAcqFifoTool对象
└─ 将cogAcqFifoTool绑定到cogAcqFifoEditV21控件(通过Subject属性)
↓
界面控件显示相机参数,支持可视化编辑
四、使用案例(工业相机采集场景)
场景描述
在电子元件检测生产线中,需要通过工业相机采集 PCB 板图像,用于后续的缺陷检测。使用本代码框架可快速实现相机参数配置与图像采集功能。
操作步骤
-
准备工作
-
用 VisionPro 软件配置相机参数(如分辨率、曝光时间、触发方式),保存为
acqTool.vpp文件,放置在程序目录的VPP文件夹下。 -
在 VS 窗体中添加
cogAcqFifoEditV21控件(用于编辑相机参数)和CogImageDisplay控件(用于显示采集的图像)。
-
-
代码扩展(实现图像采集)
在原代码基础上添加按钮事件,实现启动 / 停止采集功能:
// 启动采集按钮 private void btnStartAcq_Click(object sender, EventArgs e) { if (cogAcqFifoTool != null) { cogAcqFifoTool.Run(); // 启动相机采集 // 定时刷新图像到显示控件 timer1.Interval = 100; // 100ms刷新一次 timer1.Start(); } } // 定时器事件:更新图像显示 private void timer1_Tick(object sender, EventArgs e) { if (cogAcqFifoTool.OutputImage != null) { cogImageDisplay1.Image = cogAcqFifoTool.OutputImage; // 显示采集的图像 } } // 停止采集按钮 private void btnStopAcq_Click(object sender, EventArgs e) { if (cogAcqFifoTool != null) { cogAcqFifoTool.Stop(); // 停止采集 timer1.Stop(); } } -
运行效果
-
程序启动后,
cogAcqFifoEditV21控件自动加载acqTool.vpp中的相机参数(如相机型号、IP 地址、曝光值)。 -
点击 "启动采集" 按钮,相机开始采集图像,
CogImageDisplay控件实时显示 PCB 板图像。 -
可在
cogAcqFifoEditV21控件中直接修改参数(如调整曝光时间),修改后即时生效。
-
五、注意事项
-
文件路径校验 :建议在
LoadVPP方法中添加文件存在性判断,避免路径错误导致程序崩溃:if (!File.Exists(VppPath)) { MessageBox.Show($"未找到配置文件:{VppPath}"); return; } -
相机连接 :确保相机已正确连接到电脑,且
.vpp文件中的相机参数(如 IP 地址)与实际设备匹配。 -
异常处理 :加载
.vpp文件或运行相机工具时可能出现格式错误、权限问题等,需添加 try-catch 块捕获异常。 -
控件关联 :
Subject属性是 VisionPro 控件与工具对象绑定的核心,若绑定失败,控件将无法显示参数。