找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

4487

积分

0

好友

587

主题
发表于 2 小时前 | 查看: 3| 回复: 0

做过上位机开发的人,一般都被视觉检测项目“磨”过。

项目前期跑得好好的,后面加功能就开始难受。海康的千兆网相机接进来了,条码识别要加上去,尺寸测量也得安排,主程序里的 case 越堆越多,改一处,别处就炸,测试全跑一遍,越往后越不敢动手。耦合一高,每次新增需求都是一边拆东墙、一边补西墙。

最近在 GitHub 上翻到一个 C# 视觉框架,名字叫 InsightFactory,恰好就是冲着这类问题去的。

工业零件视觉检测上位机主界面

从一个检测流程开始

它把图片、参数、检测结果和设备连接都放进了同一个上位机框架里,不只是几个孤立的算法示例。没有工业相机的时候,可以先用本地图片或者模拟模式调试,等相机和现场设备都到位了再切到实时采集,前期开发不必一直干等硬件。

视觉检测实时画面与参数设置界面

目前能直接跑的是灰度处理和轮廓提取这类基础功能,适合先做流程验证。系统会按照设定好的阈值,计算数量、面积、圆度、长宽比等结果,最后给出 OKNG 的判断。

检测结果OK与系统日志界面

检测参数不需要硬编码在代码里。灰度阈值、最小面积、圆度这些都可以在界面上直接改,生产批次、产品型号和操作员信息也能一并保存。现场调试时,算法人员不用为了改一个阈值反复改程序、编译、再整套重新部署——这在实际产线上能省不少事。

产品换了,先切配方

工业现场很少只生产一种产品,不同型号对应的检测区域和判定标准完全不同。InsightFactory 提供了配方管理,支持创建、保存和另存检测方案。

配方管理与相机配置绑定界面

配方可以和相机配置绑定,参数保存在 SQLite 中。换产品时切换对应配方就行,用不着一堆散落的配置文件。如果当前配置跟产品不匹配,系统会直接拒绝加载,避免误用。

检测过程中,底部日志栏会实时显示异常,历史检测记录也能查询。再配合系统自检,数据目录、SQLite、视觉库、相机 SDK 以及默认配方统统可以一次性检查。

检测历史记录筛选界面

PLC 连接也留好了位置

视觉检测最终要跟产线动作配合起来,结果出来后一般得通知 PLC。项目目前支持欧姆龙 FINS 协议,可以连接、断开并测试 PLC。

PLC管理功能模块(OmronFins协议)

PLC 地址支持集中管理,配置也能导入导出。当前支持的协议还不多,但这层连接已经预设了扩展位置,作为后续接入其他协议的基础。

真正有意思的是插件架构

InsightFactory 把检测业务拆成了插件,主程序只负责加载、调度和运行。比如后续要加条码识别,可以单独做一个插件;更换算法也不必再动主体工程。

插件由 InsightFactory.Contracts 约束,生命周期、视觉任务、参数配置和日志回调接口都在这一层定义。插件不直接依赖主程序,可以独立编译、更新和动态加载,后续维护会轻松很多。

IVisionProcessor插件接口代码

这才是它解耦的关键——不是简单把代码拆成几个 DLL,而是让主程序和具体检测逻辑之间有一份稳定的契约。项目里还带了一个 SamplePlugin 模板,注册、初始化、执行、配置和释放都给出了参考示例。第一次照着模板改,比从空项目开始摸索快得多。

本地跑起来不复杂

环境要求是 Visual Studio 2022 及以上、.NET 6/7/8 和 Windows 10/11。项目本身没有第三方依赖,配置起来比较省心,可以先在本地跑起来。

git clone https://github.com/agentthink/insight-factory

打开解决方案,还原 NuGet 包并生成,主程序会自动扫描插件目录,加载符合要求的插件,然后启动检测服务。

需要提前说明的是,这个项目目前还只是基础框架,刚刚创建不久,没有正式发行版和许可证。如果要学习 C# 工业视觉上位机,或者做检测原型验证,它值得拿来研究。但如果准备直接接管一条稳定运行的产线,暂时还不合适,更适合前期验证。

有需要的朋友可以下载试一试。更多工业视觉与 C# 上位机开发的实战内容,云栈社区也有不少同行在持续分享。


开源地址:https://github.com/agentthink/insight-factory



上一篇:K8s Service 偶发超时排查:IPVS 同步周期与 endpoint 错位修复
下一篇:Linux 目录结构快速上手:运维定位文件、配置与日志的路径指南
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-8-31 07:13 , Processed in 0.832319 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表