工业视觉工程师课程大纲

C# 编程基础 · Winform · VisionPro · VisionMaster · 从入门到工业实战

🏠 住宿:四人间 ¥150/月 · 两人间 ¥330/月 · 单人间 ¥720/月
4课程模块
320总课时
2个月

C# 编程基础

8 天

1. 变量

4h
  • 用于存储数据的容器
  • 上位机及视觉数据接收、计算
  • 数据交互类型如何选用及注意事项

2. 运算符

4h
  • 算术运算符、关系运算符、逻辑运算符、赋值运算符
  • 视觉图像坐标转换(九点标定、像素转机械手实际坐标)数学计算
  • 视觉形位公差、函数封装计算

3. 控制语句

4h
  • if、else、switch 等流程控制
  • 上位机工艺流程控制
  • 产品 OK/NG 视觉判定
  • 多工位逻辑分流及多产品型号无缝切换

4. 数组

2h
  • 存储相同类型数据的集合
  • 数组大小声明时确定,不可改变
  • 存储固定点位的标定数据、多组数据变量存储

5. List / 泛型

4h
  • List 是 .NET 框架中的动态数组,可动态调整大小
  • 泛型允许在定义类、接口和方法时指定类型参数
  • 动态缓存生产历史条码、视觉检测结果队列
  • 编写通用的 PLC/串口数据报文解析模板

6. 循环 for / foreach / while

4h
  • for 循环:循环固定次数
  • foreach 循环:遍历集合
  • while 循环:条件满足时循环
  • 遍历处理图像 ROI(感兴趣区域)像素
  • 遍历当前在线相机/通信客户端
  • 后台线程持续轮询 PLC 状态或等待视觉处理完成信号

7. 值类型 / 引用类型

4h
  • 值类型存储实际数据,赋值时复制数据
  • 引用类型存储对象的引用,赋值时复制引用
  • 深入解析坐标点(Struct)与大图/算法对象(Class)的内存机制
  • 避免大循环中频繁创建对象导致内存泄漏与 GC 卡顿,保障工业实时性

8. 方法

4h
  • 封装代码块,实现特定功能
  • 方法可以有参数和返回值
  • 将相机初始化、图像特征提取、PLC 读写数据等封装为标准化模块,提高代码复用性

9. 类 / Class

4h
  • 对象的蓝图,定义对象的属性和行为
  • 抽象工业现场具体硬件:Camera 类、Plc 类、Robot 类
  • 将设备状态(是否连接)和动作(触发拍照)进行结构化封装

10. 封装

2h
  • 将类的成员变量和方法封装在一起,隐藏内部细节
  • 屏蔽海康、巴斯勒等相机 SDK 底层复杂的 C++ 指针与内存管理
  • 对外仅暴露安全的 Open、Grab、Close 等简洁接口

11. 继承

4h
  • 允许一个类继承另一个类的属性和方法
  • 派生类可扩展或修改基类的行为
  • 构建通用"相机基类"或"通信基类",不同品牌硬件子类继承复用核心底层逻辑

12. 多态

4h
  • 子类对象替换父类对象,方法根据实际类型动态决定
  • "换相机/换 PLC 不换代码",主程序仅面向基类编程
  • 通过配置文件动态加载具体硬件,极大提高系统可扩展性

13. 接口

4h
  • 定义一组方法和属性的契约
  • 实现接口时必须实现所有成员
  • 规范通信标准(如定义 ICommunication 接口)
  • 网口(TCP/IP)与串口(Modbus)自由切换无需改动上层业务逻辑

14. 单例模式

2h
  • 确保一个类只有一个实例,提供全局访问点
  • 单例模式的线程安全问题
  • 用于单机采集、全局配置管理(Config)、日志记录(Log)
  • PLC 通信核心对象的独占式管理

15. 单步调试 / 异常处理

4h
  • 单步调试:逐行执行代码以查找问题
  • 异常处理:处理运行时错误
  • 排查 PLC 断线、相机掉线、算法超时等现场故障
  • 通过 try-catch 捕获异常,防止上位机因单次通信失败或算法崩溃导致整线闪退停机

16. 命名规范

2h
  • 规定变量、方法、类的命名规则,提高代码可读性
  • 严格执行工业级代码规范(类名方法名首字母大写,局部变量首字母小写)
  • 相机对象(如 camLeft)、PLC 标志位规范化命名
  • 确保团队协作与后期现场维护的高效性

C# Winform 桌面应用开发

10 天

1. 常规控件介绍

4h
  • 常用控件:Button(手动触发)、Label(显示 OK/NG)、TextBox、ComboBox
  • 在设计器中添加和配置控件
  • 控件的基本属性和事件
  • PictureBox 或 CogRecordDisplay 图像显示控件

2. 控件布局

4h
  • 布局控件:Panel、FlowLayoutPanel、TableLayoutPanel
  • 严格划分图像区与控制区
  • 控件的对齐、锚定和停靠属性
  • 工业主站屏幕的响应式布局设计,图像等比例缩放不失真

3. 高级控件

6h
  • ListView:生产数据看板,动态添加、删除、编辑项(流水号、测量值、判定结果)
  • ListView 视图模式(详细信息)
  • Chart 控件:绘制良率与产能图表
  • 添加实时数据点,设置图表类型(柱状图、折线图、波动趋势图)
  • 配置图表的标题、图例和坐标轴

4. 线程 / Task

4h
  • 线程的基本概念和在视觉处理(防界面卡死)中的用途
  • 创建和启动线程
  • Task 类实现异步取图与算法并行计算
  • 线程的基本操作:启动、暂停、终止
  • 通讯等数据处理时异步执行防止界面假死

5. 事件 / 委托 / 匿名委托 / 回调

6h
  • 事件的概念和用途
  • 委托的定义和使用
  • 匿名委托的使用方法
  • 工业相机 SDK 采集完成后的回调函数实现和应用
  • BeginInvoke 解决跨线程更新 UI 控件(显示图像与测量结果)引起的线程冲突

6. 线程同步

4h
  • 高速流水线中多线程同步的概念和重要性
  • lock、Monitor、线程安全队列(ConcurrentQueue)
  • 图像队列缓存与生产计数同步
  • 快速拍照队列存图处理

7. DLL 动态链接库

4h
  • DLL 的概念和用途
  • 视觉算法 VisionPro 二次开发类库调用
  • PLC 通讯类库调用
  • 光源控制器类库调用及使用

8. 多窗体应用 · 模态/非模态对话框

4h
  • 创建和管理多个窗体(主界面、参数设置界面、标定配置界面)
  • 模态对话框(ShowDialog)和非模态对话框(Show)的使用场景

9. INI 配置文件

2h
  • INI 文件的格式和用途
  • 存储全局视觉参数:相机 IP、SN、曝光
  • 视觉输出基准、旋转中心等参数
  • 读取和写入 INI 文件

10. 文件夹操作

2h
  • System.IO 命名空间中的文件夹操作
  • 创建、删除、移动文件夹
  • 动态按日期创建图片保存路径
  • 遍历文件夹中的文件,历史 OK/NG 图片定时后台自动清理,防止硬盘存满

11. 串口通信

4h
  • 串口通信的基本概念
  • SerialPort 类进行串口通信
  • 与光源控制器的协议数据发送和接收

12. TCP/IP 通信

6h
  • TCP/IP 协议的基本概念
  • Socket 或 TcpClient 类进行 TCP/IP 通信
  • 视觉软件与爱普生、库卡、发那科、安川、ABB 等机械手、PLC 之间的对位坐标数据和触发信号通信
  • 处理网络粘包断包

13. Log4net 日志

2h
  • 日志的重要性:记录错误信息(相机断线、算法报错)、用户操作行为、系统运行节拍
  • log4net 基本架构:日志记录器(Logger)、输出位置(Appender)、格式化器(Layout)

14. 自定义控件

4h
  • 用户控件:组合现有控件创建新控件(图像+指示灯+按钮 → 单相机控制组件)
  • 自定义控件:继承自现有控件类,重写 OnPaint 方法
  • 图像上自定义 ROI、十字线、边缘检测点的绘制和外观调整

15. 光源控制器

2h
  • 常亮/频闪光源控制器的基本功能和通信协议(ASCII/Hex)
  • 通过串口或其他通信方式控制光源
  • 光源的开关、通道亮度调节
  • 多波次分时步进打光触发功能

16. 相机 SDK 二次开发

8h
  • 工业相机常用参数:曝光、增益、软硬触发模式、触发源、像素格式
  • 相机二次开发全流程:枚举设备、打开相机、注册图像采集回调函数、启动抓拍
  • SDK 底层指针(IntPtr/Byte 数组)安全转换为 VisionPro/VisionMaster 图像对象
  • 多相机并行架构与断线自动重连

C# VisionPro 视觉算法

12 天

1. 软件基本认知

8h
  • QuickBuild、Job、通讯管理器、保存、打开文件等基本功能介绍
  • 基本程序流程,第一个程序创建及命名规范
  • CogCalibCheckerboardTool 标定工具:不同类型标定板、基准符号、畸变校正
  • 像素和相机标定参数讲解

2. 测量类工具

8h
  • 卡尺工具、区域、计分、极性、空间、模式、结果查找
  • 两圆的距离测量、直线和圆距离测量、直线和椭圆距离测量
  • 点到圆距离测量、点到椭圆距离测量、线到直线距离测量
  • 点到点距离测量、点到线段距离测量、线段到圆距离测量
  • 线段到椭圆距离测量、线段直线距离测量、线段线段距离测量
  • 参数使用配合实操讲解及练习

3. 识别类工具

8h
  • CogIDTool(解码工具):解码格式、解码区域、解码形式
  • CogOCRMaxTool(字符识别):字符提取、区段划分、分割参数、训练字符库、分割区域、空间坐标引用
  • CogOCVMaxTool(彩色字符识别):彩色相机字符分割提取
  • CogColorMatchTool(颜色匹配):建立颜色信息、提取区域、匹配区域

4. 检测类工具

8h
  • CogBlobTool(斑点工具):分段模式、极性、连通性、形态学操作、结果限制
  • CogHistogramTool(灰度直方图统计):区域形状设定、结果数据分析
  • CogIPOneImageTool(基本图像处理):图像加减、卷积、高斯等处理
  • 深度学习在检测类项目中的概念导入

5. 定位类工具

8h
  • CogCalibNPointToNPointTool(N点标定):像素坐标与实际坐标,像素坐标系与机械坐标系绑定
  • CogFindCircleTool(找圆工具):ROI位置、卡尺数量、搜索长度、投影长度、搜索方向、边缘极性
  • 找角工具、找椭圆工具、找线段工具:线段空间、卡尺设置、卡尺计分、结果
  • 拟合圆工具、拟合椭圆工具、拟合直线:输入参数设置、结果数据分析

6. 综合常用类工具

8h
  • 两圆相交、直线与圆相交、直线与椭圆相交、直线与直线相交
  • 线段与圆相交、线段与椭圆相交、线段与直线相交、线段与线段相交
  • CogPMAlignTool(模板匹配):不同算法应用、接受阈值、建模器、掩模、角度、缩放
  • CogPMAlignMultiTool(多模板匹配):组管理、模板分类
  • CogFixtureTool(定位空间):工具坐标系的建立及应用
  • CogImageConvertTool(转换工具):图像格式转换、通道提取
  • CogCopyRegionTool(区域复制工具):复制、填充、区域、配对
  • CogPolarUnwrapTool(图像拉伸工具)
  • CogAcqFifoTool(取图工具):白平衡、曝光等参数设置

7. 数据类型与脚本基础

4h
  • Int、double、bool、string 类型定义、作用、命名规范
  • 数组类型、集合、泛型集合的定义与使用
  • 黑白、彩色图像类型使用
  • 图形标签绘制脚本:声明、命名空间、标签集合遍历、图层显示

8. 图像与数据管理

4h
  • 图像保存:创建本地文件夹、保存图像格式分类、程序流控制保存位置及命名
  • 数据保存:创建本地数据库、数据分割与保留
  • 数据传递:脚本控制工具输入输出参数、脚本计算处理工具结果数据

9. 高级脚本编写

8h
  • VisionPro C# 控件库调用及引用
  • 相机类接口调用、单例模式封装相机类
  • Socket 通讯原理、服务器客户端作用、通讯封装及异步通讯收发
  • cogRecordDisplay 控件库使用、实现显示图像
  • 相机实时/单张采集图像,设置曝光、亮度、对比度等属性
  • cogToolBlockEditV21 控件库使用:实例、保存、修改
  • CogCalibNPointToNPointTool / CogPMAlignTool 控件库实例与调用
  • 基于 VisionPro 控件库进行九点标定程序封装

VisionMaster 视觉平台

8 天

1. VM 软件概述与多方案架构

4h
  • 海康 VM 软件的基本功能和模块化界面布局
  • 安装、加密狗配置与软件激活
  • 千兆网/USB3.0 相机、采集卡等硬件设备驱动安装
  • 多方案切换、子流程控制及全局变量的管理与配置

2. 图像采集与图像预处理

6h
  • 配置相机参数(曝光、增益、触发模式),单张或连续图像采集
  • 图像预处理组合工具:灰度变换、滤波去噪、边缘增强、图像二值化
  • 使用图像处理算子为后续算法提供高质量 ROI 源

3. 区域、轮廓分析与 Blob 定位

6h
  • 区域(Region)和轮廓(Contour)的概念
  • 通过阈值分割、特征筛选创建和操作区域
  • 目标与背景的图像分割
  • 连通域分析、形态筛选提取特征实现精确定位

4. 形态学操作与图像擦除

4h
  • 数学形态学基本概念:膨胀、腐蚀、开运算、闭运算
  • 图像去噪、粘连特征断开、孔洞填充和形状分析
  • 应用形态学算子提取特征干扰严重的工业工件边缘

5. 几何特征提取与卡尺测量

6h
  • 提取高级几何特征:面积、周长、形状因子、圆度
  • 一维和二维测量工具(卡尺工具、几何查找工具)
  • 长度、宽度、两线距离、圆心坐标、夹角等高精度测量实操

6. 模板匹配与打标对位目标定位

6h
  • 基于灰度与形状特征的模板匹配算法
  • 掩膜擦除、多模板创建、金字塔层数和匹配算法的选择
  • 获取 X, Y, θ 坐标,实现机器人的目标定位与对位识别

7. 缺陷检测与 OK/NG 逻辑判定

6h
  • 工业缺陷检测基本方法:划伤、脏污、漏块、断线
  • 污点检测、边缘缺陷检测、圆缺陷检测工具
  • 缺陷大小、对比度、灰度差等核心参数设置
  • 结合逻辑工具输出 OK/NG 结果判定

8. 高精度相机标定与坐标转换

6h
  • 相机畸变校正和坐标映射的基本概念
  • 棋盘格标定板标定、九点标定、十二点标定
  • 标定转换工具
  • 单点抓取、单点纠偏、对位贴合具体实现及程序逻辑搭建

9. 条码与二维码读取识别

4h
  • 一维条码和二维码(QR、DataMatrix)识别的基本原理
  • VM 条码识别工具进行多码并发检测和高速解码

10. OCR 字符识别与模型训练

4h
  • OCR(光学字符识别)的基本原理
  • OCR 字符检测和识别工具
  • 字符掩膜、段分割、字符字典管理