做视觉检测上位机,从相机采集到 OK/NG 判定,自己写一套,几百行代码只是起步。
PLC 通讯、状态机、历史追溯、权限管理等功能也要自己搭建。
整个流程跑通一般要两三天的时间。
很多项目每次都要重新开发Modbus寄存器、心跳重连、NG图片保存、检测记录查询等功能。
最近在 GitHub 上看到了一个 C# 项目,把所有的模块都整合在一起了。
IndustrialVisionHost 是一个从图像采集到生产追溯的视觉检测上位机。
可以看作是工控上位机的“全家桶”,常用的功能基本上不用再自己造轮子了。
代码开源,每个模块都能看、能改、能复用。
从相机采集到OK/NG判定,视觉处理全给你串通了。
用ICamera来抽象出相机的功能,内置FakeCamera模拟工业相机。
连续采集、异常处理、取消、自动重连等容易出错的地方都已经做好了。
用OpenCvSharp做视觉处理,从ROI到轮廓筛选,一条流水线下来。
灰度化、高斯滤波、阈值分割、开闭运算等都有。
只需要实现ICamera接口就可以接上真实的相机,不需要修改业务逻辑。
测量目标的数量、尺寸、圆形度、中心点、宽度和高度,将像素坐标自动转换为毫米坐标。
按照规格来输出OK/NG判定代码,支持五种调试视图。
原图、灰度图、二值图、形态学图、标注图,在调试的时候一目了然。
做表面缺陷检测的老哥,这套视觉流水线拿过去改改参数就能用。
以前自己用OpenCV来处理,一遍遍调阈值、换滤波,要折腾半天。
现在配方用的是JSON格式存储的,更换产品只需要切换配方就可以了,并不需要修改代码再重新编译。
PLC通信和Modbus TCP不用自己从头写了。
支持完整的设备状态管理:Idle、Ready、Running、Completed、Fault、Emergency,急停和异常状态都有处理。
有PLC模拟器,TCP通信、心跳、超时、断线重连都已做好。
支持Modbus TCP读写,线圈、寄存器都可以直接调试。
支持界面、PLC、Modbus 三种触发方式,启动、完成、OK/NG、故障等状态都可以和PLC全流程同步。
调试 Modbus 时,不用再靠工具手动改寄存器,直接就能完成测试。
没有工业相机和PLC也能开发调试。
做上位机开发最烦心的事情就是没有设备在手边,接口写好了不能跑。
FakeCamera内含6种模拟场景,单目标、噪声、移动目标、采集失败等等。
想测试采集异常,只需要切一个场景就可以了,不需要拔相机线。
内置PLC模拟器和Modbus服务端,一开机器就可以跑完整个流程。
不需要硬件,也不需要借用设备,全部的开发和调试都在本地进行。
代码预留了ICamera接口和独立通信层,接真实设备只需实现接口。
目前只支持Windows桌面,Linux下需要自己想办法。
检测历史、报警、审计、权限管理全有。
用SQLite存储检测历史、报警以及操作审计,可以按照时间、批次、OK/NG来查询,还可以导出为CSV文件。
NG证据图只保存NG的,并且按照天数和容量自动清理,不会把磁盘撑满。
三级角色权限,密码修改、用户管理、报警生命周期全都有。
报警从产生到被确认再到消失的全过程都被记录下来了。
视觉配方用JSON来保存,换产品只改一个配方就可以了,不需要改代码。
系统设置为JSON格式,浅色和深色主题都可以使用,并且窗口状态会自动恢复。
跑起来也简单
git clone https://github.com/Riverbirds1/IndustrialVisionHost.gitcd IndustrialVisionHostdotnet restore IndustrialVisionHost.slndotnet run --project IndustrialVisionHost.csproj也能生成免安装目录,目标电脑不用预装.NET。
双击exe文件就可以运行了:
powershell -ExecutionPolicy Bypass -File scripts\publish-release.ps1双击IndustrialVisionHost.exe,模拟相机和PLC自动启动。
说实话,在工控上位机里把采集、视觉、通信、追溯全串好的项目,还真不多见。
有兴趣的朋友可以抓紧时间试一试。
开源地址:https://github.com/Riverbirds1/IndustrialVisionHost 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!