一个非常优秀的项目源码范例,C#+Visionpro9.0,三相机定位,PLC, 逻辑及代码都非常好,使用过的项目,是学习及项目参考的极佳范例。 注:主界面未放出来。
系统概述
FitLed视觉检测系统是一个专业的工业自动化解决方案,集成了三相机定位、PLC通信、数据管理和远程服务等功能。该系统主要用于LED产品的视觉检测、定位和组装过程,具备完整的配置管理、日志记录和数据上传能力。
核心架构设计
1. 配置管理系统
系统采用INI文件进行配置管理,通过IniBase和IniFitLed类实现配置的读写操作:
class IniBase { [DllImport("kernel32.dll")] private extern static long WritePrivateProfileString(string strSectionNameParam, string strKeyNameParm, string strValueParam, string strFilePathParam); [DllImport("kernel32.dll")] private extern static long GetPrivateProfileString(string strSectionNameParam, string strKeyNameParm, string strValueDefaultParm, StringBuilder strbldValueParam, int nSizeParam, string strFilePathParam); }配置项涵盖用户登录、PLC参数、视觉参数、相机设置、数据服务等多个方面,支持登录信息、PLC逻辑号、相机曝光值、角度限制、补偿值等关键参数的动态配置。
2. 数据模型设计
系统建立了完整的产品数据模型体系:
- DataVisionBase: 视觉基础数据类,包含拍照时间、角度、结果等核心信息
- DataVisionDetection: 视觉检测数据,扩展坐标信息和补偿值处理
- DataVisionCheck: 视觉核查数据,支持角度上下限验证
- ProductLED: LED产品数据模型
- ProductRCAM: RCAM产品数据模型
- ProductAssemble: 产品组装数据模型
3. 产品收集与管理
ProductAssembleCollection类实现了产品的集中管理和状态跟踪:
class ProductAssembleCollection { private ProductAssemble[] m_productAssembleArr; private ProductAssemble[] m_productAssembleArrPaste; private ProductAssemble[] m_productAssembleArrCheck; public void TurntableData() { /* 工位数据旋转 */ } public bool CalculateCountPast(bool bIsFirstPhotoParam) { /* 计算贴合条件 */ } }支持RCAM目标抓取计数、贴合索引管理、检测流程控制等功能,确保生产流程的精确控制。
视觉检测核心功能
1. 多相机协同工作
系统集成三台工业相机(RCAM、LED、CHECK),分别负责不同阶段的检测任务:
- RCAM相机: 主要产品定位和角度检测
- LED相机: LED组件检测和定位
- CHECK相机: 最终质量核查
每台相机支持独立的曝光参数配置和补偿值设置。
2. 坐标转换与补偿
系统实现了精密的坐标转换机制:
class DataVisionDetection { public static int GetPlcPointX(double dblXParam) { return (int)(dblXParam * m_nValueCoefficient); } public static void SetOffset(double dblPointOffsetXParam, double dblPointOffsetYParam, double dblOffsetAngleParam, int nIndexParam) { // 设置补偿值 } }支持X、Y坐标和角度的补偿值配置,确保定位精度。
3. 角度检测与验证
系统具备完善的角度检测能力:
class DataVisionCheck { public override void SetAngle(double dblAngleParam, bool bIsAddOffsetParam, int nIndexParam) { base.SetAngle(dblAngleParam, bIsAddOffsetParam, nIndexParam); if (m_dblAngle >= m_dblAngleLimitDown && m_dblAngle <= m_dblAngleLimitUp) { m_bIsPass = true; } else { m_bIsPass = false; } } }数据服务集成
1. 苹果PDCA数据服务
系统集成了苹果公司的PDCA数据上传服务:
class DataUpLoadPcdaApple { public int UpdateDataStart(string strSnParam) { /* 开始上传流程 */ } public int UploadDataAttributeMiddle(string strAttributeNameParam, string strAttributeValueParam) { /* 上传属性 */ } public int UploadDataPdataMiddle(string testName, float testValue, float lowerLimit, float upperLimit, string measurementUnit) { /* 上传测试数据 */ } public int UploadDataEnd() { /* 结束上传 */ } }支持完整的设备信息、测试数据、时间记录等参数上传,符合苹果供应链的数据标准。
2. 捷普(JBIL)OEE系统集成
通过HttpWebJBIL类实现与捷普OEE系统的深度集成:
- 客户信息管理
- 站点和机器配置
- 条码验证
- 测试数据上传
- 机器状态监控
- 停机时间记录
支持自动和手动两种报警模式,具备完善的错误处理机制。
用户界面组件
1. 数据表格控件
系统自定义了专业的数据显示组件:
class DataGridViewLog : DataGridViewBase { public void SetData(DateTime dateTimeParam, string strEditorParam, string strContentParam, LogMsg.LogStatus logStatusParam) { // 支持多线程安全的数据更新 } }支持实时日志显示、颜色编码(正常、报警、错误)和自动滚动等功能。
2. 配置对话框
提供专业的数据服务配置界面:
- 苹果数据服务参数配置
- 网络连接测试
- 数据上传测试
- 捷普OEE系统配置
日志与错误处理
系统具备完善的日志记录机制:
class Log { public int SetLog(string strEditorParam, string strContentParam, LogMsg.LogStatus logStatusParam) { // 记录日志到文件和界面 } }支持不同级别的日志记录(正常、报警、错误),确保系统运行状态的可追溯性。
系统特色
1. 高精度视觉定位
- 多相机协同定位
- 实时补偿值调整
- 亚像素级精度控制
2. 灵活的配置管理
- 动态参数调整
- 多工位支持
- 实时配置更新
3. 完整的质量管理
- 全过程质量追踪
- 实时数据上传
- 完善的报表功能
4. 工业级可靠性
- 异常处理机制
- 数据完整性保证
- 网络通信容错
FitLed视觉检测系统通过精密的算法设计、稳定的架构实现和完善的业务功能,为工业自动化生产提供了可靠的视觉检测解决方案,特别适用于高精度要求的电子组装行业。
一个非常优秀的项目源码范例,C#+Visionpro9.0,三相机定位,PLC, 逻辑及代码都非常好,使用过的项目,是学习及项目参考的极佳范例。 注:主界面未放出来。