1. 工业视觉项目概述
在自动化生产线上,视觉检测系统扮演着"质检员"的角色。我最近完成的一个项目,使用C#作为系统框架,搭配Halcon 17.12视觉库,实现了从图像采集到结果反馈的全流程自动化检测。这个系统就像给生产线装上了"智能眼睛",能够24小时不间断地进行产品外观检测、尺寸测量等任务。
系统架构分为三个主要部分:前端采用海康威视的工业相机作为"眼睛",中间层是运行Halcon算法的"大脑",后端则通过以太网与三菱FX5U PLC通信,形成完整的检测闭环。这种架构在电子元器件、汽车零部件等行业的缺陷检测中表现尤为出色,检测精度可达±0.02mm,远超人工检测的±0.1mm标准。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 开发环境搭建
2.1 软件环境配置
工欲善其事,必先利其器。在开始编码前,需要准备以下软件环境:
- Visual Studio 2019/2022(建议使用企业版)
- Halcon 17.12 Runtime和Development版本
- 海康威视相机SDK(MVS或iDS系列)
- 三菱MELSEC通信库(MX Component)
安装Halcon时有个关键细节:必须确保安装路径不含中文和空格。我遇到过因为路径问题导致HDevEngine初始化失败的案例。建议使用默认路径"C:\Program Files\MVTec[HAL](https://taotoken.net/?utm_source=hardware)CON-17.12"。
注意:Halcon版本必须与Runtime严格匹配,17.12.0.0和17.12.0.1之间也存在兼容性问题。
2.2 项目引用配置
在VS中创建C# Windows窗体项目后,需要添加以下关键引用:
csharp复制// Halcon基础库
using HalconDotNet;
// 海康相机SDK
using HikVision;
// PLC通信
using MelsecFx5u;
NuGet包管理器中还需要安装:
- HikVision.MachineVision (2.1.3+)
- MelsecFxProtocol (1.3.0+)
3. 相机集成与图像采集
3.1 海康相机SDK集成
海康相机通过GigE接口连接,SDK初始化时需要特别注意以下几点:
csharp复制public class HikCamera
{
private IntPtr m_hDevice = IntPtr.Zero;
private int m_nWidth = 2448;
private int m_nHeight = 2048;
public bool Connect(string ip)
{
NET_DVR_DEVICEINFO_V30 devInfo = new NET_DVR_DEVICEINFO_V30();
m_hDevice = NET_DVR_Login_V30(ip, 8000, "admin", "password", ref devInfo);
return m_hDevice != IntPtr.Zero;
}
public HObject GrabImage()
{
NET_DVR_CAMERAPARAM cfg = new NET_DVR_CAMERAPARAM();
NET
