十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

从零打造 C# 工业视觉检测系统(十五):项目打包部署与进阶展望

从零打造 C# 工业视觉检测系统(十五):项目打包部署与进阶展望 从零打造 C# 工业视觉检测系统十五项目打包部署与进阶展望系列标签C#部署Inno SetupMES工业 4.0架构升级本文目标掌握 WinForms 项目打包发布了解工业视觉的进阶方向一、前言历时 15 篇文章我们从零搭建了一套完整的 C# 工业视觉检测系统。本文作为系列收官将讲解如何将项目打包为可安装的软件代码架构的复盘与重构建议工业视觉技术的进阶方向二、项目打包发布2.1 Visual Studio 发布右键项目 →发布选择发布目标文件夹配置部署模式框架依赖目标机器需安装 .NET Framework 4.7.2或独立部署体积大但无需安装运行时2.2 依赖项整理确保输出目录包含输出目录/ ├── 在线相机检测模板.exe ├── Algorithm.dll # 算法库 ├── MvCamCtrl.Net.dll # 海康 SDK ├── config.json # 配置文件 ├── SunnyUI.dll # UI 库 ├── EPPlus.dll # Excel 库 ├── NModbus4.dll # Modbus 库 ├── Newtonsoft.Json.dll # JSON 库 ├── MySql.Data.dll # MySQL 驱动 ├── System.Data.SQLite.dll # SQLite 驱动 └── ... 其他依赖2.3 Inno Setup 安装包制作Inno Setup 是免费的安装包制作工具脚本示例[Setup] AppName检测系统 AppVersion1.0 DefaultDirName{pf}\视觉检测系统 OutputDir. OutputBaseFilenameDetectSystem_Setup [Files] Source: bin\Release\*; DestDir: {app}; Flags: ignoreversion recursesubdirs [Icons] Name: {group}\检测系统; Filename: {app}\检测系统.exe Name: {commondesktop}\检测系统; Filename: {app}\检测系统.exe [Run] Filename: {app}\检测系统.exe; Description: 立即运行; Flags: nowait postinstall三、架构复盘与重构建议3.1 当前架构的优点模块化各功能独立成 Form职责清晰可扩展工厂模式支持多数据库切换配置化JSON 配置文件便于现场调整3.2 可改进之处当前实现改进方案收益SqlHelper静态类依赖注入 接口便于单元测试全局Config静态字段强类型配置类编译期检查直接在 UI 中调用算法引入 Service 层便于算法替换单线程检测循环生产者-消费者队列提升吞吐量3.3 分层架构建议┌─────────────────────────────────────┐ │ Presentation 层 │ │ MainForm / RunningForm / ... │ ├─────────────────────────────────────┤ │ Service 层 │ │ DetectService / ConfigService │ ├─────────────────────────────────────┤ │ Repository 层 │ │ IDatabaseProvider / SqlHelper │ ├─────────────────────────────────────┤ │ Infrastructure 层 │ │ CameraSDK / SerialPort / Algorithm │ └─────────────────────────────────────┘四、进阶方向4.1 MES 系统对接将检测数据实时上传至 MES制造执行系统// 检测完成后上报 MESpublicvoidReportToMES(SlugStructresult){varmesDatanew{stationIdSTATION_01,productIdConfig.name,lengthresult.length,widthresult.width,isOkresult.is_qualified,timestampDateTime.Now};// HTTP POST 到 MES 接口// var json JsonConvert.SerializeObject(mesData);// httpClient.PostAsync(mesUrl, new StringContent(json));}4.2 数据上云使用 MQTT 协议将数据推送至阿里云 IoT / 华为云 IoT云端大屏实时展示产线状态大数据分析预测设备故障4.3 深度学习升级从传统图像处理升级到 YOLO / Faster R-CNN 目标检测缺陷检测划痕、凹坑、脏污的 AI 识别OCR 识别产品编号、日期码的自动读取4.4 双机热备关键产线不能停可部署主备两套检测系统主机故障时备机自动接管共享触发信号和剔除控制数据同步至同一数据库五、系列知识图谱工业视觉检测系统 ├── UI 层 │ ├── WinForms SunnyUI │ ├── TabControl 子窗体嵌入 │ └── 窗体自适应布局 ├── 视觉层 │ ├── 海康 MVS SDK │ ├── 相机枚举/连接/取流 │ ├── IntPtr → Bitmap 转换 │ └── 比例尺标定 ├── 算法层 │ ├── P/Invoke 调用 C DLL │ ├── SlugStruct 数据传递 │ └── ONNX Runtime 部署 ├── 通信层 │ ├── SerialPort 串口编程 │ ├── Modbus RTU 协议 │ └── PLC/继电器控制 ├── 数据层 │ ├── 工厂模式三库切换 │ ├── ADO.NET 数据访问 │ └── EPPlus Excel 导出 └── 架构层 ├── 单例/工厂模式 ├── Task 异步编程 ├── JSON 配置系统 └── 异常处理与性能优化六、学习资源推荐方向推荐资源C# WinForms《Windows Forms Programming》工业相机海康机器人官方文档、MVS SDK 示例OpenCV《学习 OpenCV 3》、官方文档深度学习李沐《动手学深度学习》、YOLO 官方仓库ModbusModbus 协议标准文档、NModbus 示例工业 4.0《工业 4.0 驱动制造业数字化转型》七、总结15 篇文章从零到一我们完成了一套完整的 C# WinForms 工业视觉检测系统涵盖 UI、相机、算法、通信、数据库五大模块掌握 10 个工业软件开发核心技术点感谢一路相伴如果在实践过程中遇到问题欢迎在评论区留言交流。欢迎点赞、收藏、关注你的支持是我持续输出的动力系列完结
返回列表