528:Halcon图像控件 启动轴状态实时监控

Halcon图像控件

Halcon 图像控件是德国 MVTec 公司为C#/.NET 平台提供的专用图像显示容器,本质是封装了 Halcon 底层渲染引擎的 UI 控件,能在 WPF/WinForms 界面中直接显示和操作 Halcon 处理后的图像。

二、核心作用:5 大工业级能力

1. 🖼️ 图像显示:工业视觉的 "眼睛"

核心功能:显示 Halcon 处理后的图像(灰度图、彩色图、深度图等)

项目应用:

csharp 复制代码
_halconWinFormsControl.HalconWindow.DispObj(enhanceImage); // 显示增强后的X光图像

为什么必须用它:普通 WPF 控件无法直接显示 Halcon 的HImage对象,这是官方唯一的图像显示通道。

2. 🎨 图形绘制:检测结果的 "标注器"

核心功能:在图像上绘制矩形、圆形、文字、区域等,直观展示检测结果

项目应用:

csharp 复制代码
_halconWinFormsControl.HalconWindow.SetColor("green"); // 设置颜色
_halconWinFormsControl.HalconWindow.DispRectangle1(120, 120, 380, 680); // 绘制检测框

工业价值:缺陷位置、ROI 区域、测量结果可视化,方便操作员判断。

3. ⚙️ 图像处理联动:算法与显示的 "桥梁"

核心功能:无缝衔接 Halcon 算法(去噪、增强、阈值分割等),实时显示处理结果

项目应用:

csharp 复制代码
smoothImage = rawImage.MeanImage(3, 3); // 去噪算法
enhanceImage = smoothImage.ScaleImage(1.5, 0); // 对比度增强
_halconWinFormsControl.HalconWindow.DispObj(enhanceImage); // 显示处理后图像

关键优势:无需手动转换图像格式,算法输出直接显示,效率极高。

4. 📊 状态反馈:操作过程的 "可视化日志"

核心功能:实时显示处理进度、状态信息,辅助操作决策

项目应用:

点位扫描到位后显示图像

连续扫描时每 200ms 刷新一次图像

限位报警时显示报警信息

工业价值:操作员能直观看到设备状态,及时发现异常。

5. 🛡️ 资源管理:内存安全的 "守护者"

核心功能:自动管理 Halcon 窗口资源,避免内存泄漏

项目应用:控件销毁时自动释放HalconWindow,无需手动调用CloseWindow

关键提醒:绝对不要手动调用OpenWindow(控件已自动初始化),否则会报参数错误。

三、在你的 X 光检测系统中:不可替代的核心地位

1. 程序启动时的初始化

csharp 复制代码
public MainViewModel(HWindowControl halconControl)
{
    _halconWinFormsControl = halconControl; // 绑定控件,必须传入
    Loading(); // 初始化完成后显示"已就绪"
}

作用:没有这个控件,整个视觉系统就是 "瞎子",无法显示任何 X 光图像。

2. 核心功能的唯一出口

你的ShowXrayImage()方法是所有图像显示的唯一入口,而它的核心就是:

csharp 复制代码
_halconWinFormsControl.HalconWindow.ClearWindow(); // 清屏
_halconWinFormsControl.HalconWindow.DispObj(enhanceImage); // 显示图像

覆盖场景:

测试图像按钮 → 直接调用

点位扫描到位 → 自动调用

连续扫描移动中 → 循环调用

3. 安全机制的可视化保障

急停、限位报警时,通过控件显示报警状态,让操作员一眼看到问题:

csharp 复制代码
_halconWinFormsControl.HalconWindow.ClearWindow();
_halconWinFormsControl.HalconWindow.DispText("限位报警", "window", 12, 12, "red");

启动轴状态实时监控

3 个核心作用

1. 实时 UI 显示(仪表盘功能)

你界面上的这行文字:

轴状态:运行中|X:50.0 Y:0.0

就是这个方法每 200ms 刷新出来的。

没有它,界面上的轴坐标 / 状态永远不会变。

2. 安全保护(保镖功能)→ 工业设备最重要

轴如果一直往前走,会撞坏机械结构!

这个方法实时盯着限位开关:

一旦触发 LimitAlarm(超范围)

自动调用急停 EmergencyStop()

立刻停机,保护设备

3. 联动业务逻辑

点位扫描:判断轴是否到位 → 触发采图

连续扫描:实时获取轴位置 → 计算进度条

报警 / 复位:联动界面状态切换

相关推荐
samble1 个月前
从零搭建灌装监控系统(十九):单元测试实战,xUnit + 内存SQLite + 反射测试私有方法
c#·wpf·mvvm·modbus·工业控制
mmsx1 个月前
Android 架构分层:MVVM 与 MVP 共存,网络层怎么切
android·策略模式·mvvm·mvp
samble1 个月前
从零搭建灌装监控系统(十八):自定义控件,三色灯与状态指示
c#·wpf·mvvm·modbus·工业控制
samble1 个月前
从零搭建灌装监控系统(十七):LiveCharts 实时温度曲线
c#·wpf·mvvm·modbus·工业控制
samble1 个月前
从零搭建灌装监控系统(十三):报警系统设计,生命周期与通知
c#·wpf·mvvm·modbus·工业控制
青山科技分享1 个月前
视觉检测设备品牌有哪些?主流厂商怎么选
视觉·检测·选
samble1 个月前
从零搭建灌装监控系统(十二):配置系统,原子写入与容错
c#·wpf·mvvm·modbus·工业控制
程序猿编码1 个月前
工业视觉多任务方案:可编程梯度信息视觉框架,训练评估 + C++ 部署完整实战
开发语言·c++·视觉·推理引擎
samble1 个月前
从零搭建灌装监控系统(十):生产追溯,条码触发自动记录
c#·wpf·mvvm·modbus·工业控制
换元不配限1 个月前
Android 架构演进实战:MVC → MVP → MVVM → MVI
android·架构·mvc·mvvm·mvp·mvi