基于C#的通用框架开发源码,应用于多个项目的上位机联合Visionpro,实现自动九点标定与旋...

张开发
2026/4/10 5:44:50 15 分钟阅读

分享文章

基于C#的通用框架开发源码,应用于多个项目的上位机联合Visionpro,实现自动九点标定与旋...
C#源码 上位机 联合Visionpro 通用框架开发源码已应用于多个项目整套设备程序可以根据需求编出来具体Vpp功能自己编 程序包含功能 1.自动设置界面窗体个数及分布 2.照方式以命令触发 3.自动九点标定 4.自动旋转标定有两种算法3点拟合园和2点加角度两者相互验证通过对比可计算旋转方向 5.程序以客户机服务器模式开发预留编程接口可扩展 6.包含光源控制接口可扩展光源控制 7.整个窗口以dll方式载入可以内嵌到界面上 8.含有dll嵌入实例 9.该程序可用于快速开发视觉接口 10.该程序除了视觉Vpp程序本身很小一、框架概述CognexPlusDll 是基于 C# 开发的上位机视觉检测通用框架深度集成 Cognex VisionPro 视觉处理库专为工业视觉检测场景设计。该框架采用模块化架构支持多相机管理、视觉标定、图像检测、参数配置、用户管理等核心功能已在多个实际工业项目中落地应用。框架兼容 .NET Framework 4.5.2 及以上版本通过灵活的配置机制和可扩展的工具链设计能够快速适配不同类型的视觉检测需求。二、核心技术栈与依赖一开发环境与框架开发语言C#目标框架.NET Framework 4.6.1主项目、.NET Framework 4.5.2工具类库开发工具Visual Studio 2017 及以上支持 MSBuild 15.0二核心依赖库依赖类别关键库名称版本用途视觉处理Cognex.VisionPro59.2.0.0核心视觉处理引擎提供图像采集、分析、标定等基础能力视觉扩展Cognex.VisionPro.CalibFix59.2.0.0视觉标定工具集支持九点标定、旋转标定等控件库Cognex.VisionPro.Controls59.2.0.0视觉专用控件含图像显示、参数编辑控件数据处理Newtonsoft.Json4.5.0.0JSON 序列化与反序列化用于参数配置存储数据库System.Data.SQLite1.0.86.0本地数据库存储用户信息、检测日志、项目参数界面组件WeifenLuo.WinFormsUI.Docking2.4.0.16114停靠窗口组件支持灵活的界面布局管理三、项目结构与模块划分项目整体分为 8 大核心模块各模块通过分层设计实现低耦合、高内聚具体结构如下CognexPlusDll/ ├─ 核心接口层CognexPlusIUntility ├─ 界面交互层Forms/Controls ├─ 视觉处理层VisionCtl/FrameClass ├─ 数据存储层SqliteFunCls/Log ├─ 参数配置层SystemSetClass/ViewFunClass ├─ 标定工具层CalibSet 相关类 ├─ 任务管理层TaskSetLibrary └─ 通用工具层GlobalClass/PhotoClass一核心接口层CognexPlusIUntility定义框架核心接口IIUntility统一封装视觉检测、光源控制、标定管理等核心能力为上层模块提供标准化调用入口。关键接口方法说明方法名功能描述参数说明返回值Init初始化框架加载配置文件_fileDictory配置文件目录路径初始化后的视觉控制对象CCDTrig触发相机拍照并获取检测数据TrigCmd触发命令prmInput参数输入cmdInput命令输入dataString输出数据retMsg返回消息执行结果0 成功-1 失败LightCtrl控制光源开关/模式mType控制类型Chl光源通道retMsg返回消息无LightUpdate更新光源亮度Chl光源通道Value亮度值无InitCalib初始化标定模块无无二界面交互层Forms/Controls提供丰富的可视化交互界面涵盖主控制窗口、参数配置窗口、图像显示窗口、标定工具窗口等基于 WeifenLuo 停靠组件实现灵活的界面布局。核心界面组件停靠窗口FormDock1~FormDock7支持多窗口并行显示可配置显示/隐藏状态用于展示不同相机的实时图像或检测结果。系统设置窗口FormSystemSetting提供图像存储路径、保存格式、窗口数量等全局参数配置支持路径浏览和参数持久化。视觉参数编辑窗口FormToolBlockEdit集成 Cognex VisionPro 工具块编辑控件支持相机参数、检测算法、标定参数的可视化编辑。实时显示窗口FormLiveDisplay展示相机实时图像支持光源亮度调节、图像缩放、十字准星叠加等功能。用户管理窗口FormUserManager/FormUserLogin实现用户登录、权限分配、密码修改等用户管理功能。三视觉处理层VisionCtl/FrameClass框架核心业务层封装视觉检测全流程逻辑包括相机管理、图像采集、算法运行、结果分析等核心能力。1. 核心类 FrameClass功能管理视觉框架核心对象相机、标定、检测模块提供配置加载、任务执行、结果反馈等能力。关键方法GetPathList加载项目配置获取相机、标定、检测模块的文件路径和参数。RunObjCamera执行相机拍照与检测任务返回检测结果并更新显示。CreateCross在图像上叠加十字准星辅助视觉定位。2. 视觉控制类 VisionCtl作为界面与业务逻辑的中间层协调界面操作与视觉处理模块的交互管理窗口布局、事件响应、参数传递。四数据存储层SqliteFunCls/Log负责数据持久化存储包括用户信息、检测日志、项目参数、标定结果等数据的读写操作。1. SQLite 数据库操作类 SqliteFunCls封装 SQLite 数据库的增删改查操作支持用户管理、检测数据查询、参数存储等场景。关键功能InsertTestData插入产品检测数据时间、项目名、SN、检测结果。ReadImageDataView查询图像检测日志支持分页和条件筛选。UpdateUserPassword更新用户密码。2. 日志工具类 Log按日期生成日志文件记录系统运行状态、错误信息、用户操作等支持日志目录自定义。五参数配置层SystemSetClass/ViewFunClass负责框架全局参数和界面配置的管理支持参数的序列化存储与反序列化加载。1. 系统配置类 SystemSetClass存储全局配置参数包括项目选择、图像存储规则格式、路径、保存天数、窗口数量等。支持 JSON 格式的参数持久化通过ReadPrm/WritePrm方法实现参数读写。2. 界面配置类 ViewFunClass管理界面布局配置包括窗口名称、显示顺序、停靠位置等支持配置文件的导入导出。六标定工具层CalibSet 相关类提供多种视觉标定工具满足不同场景的标定需求确保检测精度。核心标定类型标定类型对应类/窗口功能描述应用场景九点标定FormNineCalibRun通过九个标定点建立像素坐标与物理坐标的映射平面检测场景需要较高定位精度旋转标定FormFitCircleRun/FormFitCircleRun2基于圆形特征的旋转中心与半径标定旋转工件检测、圆弧特征定位点胶标定FormGlueCalibRun点胶路径标定支持九点胶点坐标映射点胶设备视觉引导CCD 中心标定FormCCDCenter标定相机成像中心修正图像偏移高精度视觉定位场景标定流程选择标定类型配置标定点参数或导入标定文件。触发相机采集标定点图像提取标定点像素坐标。建立像素坐标与物理坐标的映射关系计算标定参数旋转角度、缩放比例、偏移量。保存标定结果用于后续检测的坐标转换。七任务管理层TaskSetLibrary管理视觉检测任务包括相机参数配置、检测流程定义、任务调度等支持多任务并行执行。核心类 TaskFunClass加载项目任务配置解析相机、标定、检测模块的关联关系。提供任务执行状态监控、结果汇总等能力。八通用工具层GlobalClass/PhotoClass提供框架通用工具函数包括图像处理、进程管理、文件操作等辅助功能。1. 图像处理工具 PhotoClass支持图像文件的读取、批量检测、重命名等操作可加载本地图像进行离线检测。2. 全局工具 GlobalClass提供进程杀死、文件路径处理等系统级辅助功能。四、核心工作流程一框架初始化流程调用IIUntility.Init方法传入配置文件目录。加载系统全局配置SystemSetClass.ReadPrm和项目任务配置TaskFunClass.ReadPrm。初始化 SQLite 数据库创建用户表、检测日志表等基础表结构。加载相机、标定、检测模块的配置文件初始化视觉处理引擎。初始化界面布局加载停靠窗口配置thisDockClass.LoadXml。二视觉检测流程用户通过界面触发检测手动触发或外部信号触发。框架调用CCDTrig方法触发相机拍照。相机采集图像后自动执行标定转换基于预存标定参数。调用视觉检测算法Cognex VisionPro 工具块分析图像特征如尺寸、缺陷、位置等。保存检测结果数据库存储日志记录并在界面实时展示。若配置图像保存规则自动将检测图像原始图/OK图/NG图保存到指定路径。三参数配置流程用户通过FormSystemSetting窗口修改配置参数如图像格式、存储路径。点击“确定”按钮调用SystemSetClass.SavePrm方法序列化参数到本地文件。框架实时加载新配置更新运行时参数无需重启。五、关键技术亮点一模块化与可扩展性基于接口设计核心功能模块化封装支持自定义算法模块接入如新增检测工具、标定类型。支持多相机、多任务并行处理可通过配置文件扩展相机数量和检测流程。二高精度视觉标定提供多种标定工具支持九点标定、旋转标定等复杂场景标定结果自动持久化确保检测精度稳定性。支持标定参数可视化编辑和验证便于调试优化。三灵活的界面布局基于停靠窗口组件支持用户自定义界面布局窗口显示/隐藏、位置调整等操作实时保存。图像显示窗口支持缩放、十字准星、结果叠加等增强功能提升操作体验。四完善的数据管理本地 SQLite 数据库存储支持检测数据、用户信息、日志的持久化可查询历史数据和统计分析。日志系统按日期分类存储便于问题排查和系统维护。六、应用场景与适配范围该框架适用于各类工业视觉检测场景包括但不限于电子元器件尺寸检测、缺陷检测如芯片引脚检测、PCB 板缺陷检测。机械零件定位、装配引导如轴承安装引导、齿轮齿形检测。包装检测如标签位置检测、包装完整性检测。点胶、焊接等工艺的视觉引导。框架支持 Cognex 全系列工业相机可通过配置文件适配不同分辨率、帧率的相机设备同时支持自定义算法工具块开发满足特定检测需求。七、部署与使用说明一环境依赖安装 .NET Framework 4.6.1 及以上版本。安装 Cognex VisionPro 59.2 及以上版本需配置环境变量。安装 SQLite 运行时框架已包含相关依赖库。二部署步骤解压框架文件到指定目录。配置PrmConfig.dll中的全局参数项目路径、相机参数等。启动可执行文件通过登录窗口进入系统默认管理员账号Administrator密码默认空。在系统设置中配置图像存储路径、标定参数等完成项目初始化。三基本操作流程选择项目在系统设置窗口的“项目”下拉框中选择目标项目。启动相机点击“拍照”按钮触发相机实时显示。执行检测手动点击“检测”按钮或通过外部信号触发查看检测结果。查看数据在“运行状态”标签页查看检测日志和历史数据。八、扩展与二次开发建议一新增检测算法基于 Cognex VisionPro 开发自定义检测工具块.vpp 文件。在TaskSet目录下新增任务配置关联自定义工具块。实现IIUntility接口的扩展方法集成新算法的调用逻辑。二扩展相机支持在FrameClass中新增相机驱动配置支持非 Cognex 相机需适配图像采集接口。扩展CogCameraMoudle类添加新相机的参数配置和采集方法。三优化界面功能基于现有界面组件新增自定义显示控件如检测结果统计图表。扩展用户权限管理新增角色和权限细分如操作员、管理员、开发人员。九、总结CognexPlusDll 框架是一款功能完善、扩展性强的工业视觉检测通用框架通过模块化设计、高精度标定、灵活的界面布局和完善的数据管理能够快速适配各类工业视觉检测需求。框架已在实际项目中验证稳定性和可靠性较高同时提供丰富的二次开发接口便于用户根据具体场景进行定制化开发。C#源码 上位机 联合Visionpro 通用框架开发源码已应用于多个项目整套设备程序可以根据需求编出来具体Vpp功能自己编 程序包含功能 1.自动设置界面窗体个数及分布 2.照方式以命令触发 3.自动九点标定 4.自动旋转标定有两种算法3点拟合园和2点加角度两者相互验证通过对比可计算旋转方向 5.程序以客户机服务器模式开发预留编程接口可扩展 6.包含光源控制接口可扩展光源控制 7.整个窗口以dll方式载入可以内嵌到界面上 8.含有dll嵌入实例 9.该程序可用于快速开发视觉接口 10.该程序除了视觉Vpp程序本身很小

更多文章