一、立项背景和目标
传统激光打标设备缺乏条码校验与MES集成,生产过程中易出现重码、错码、漏码,且数据无法实时追溯。本项目旨在构建一套集视觉定位、激光打标、扫码校验、MES通讯于一体的智能工作站,实现从工单下发、条码校验、打标执行到结果上报的全流程闭环管控,提升产线自动化水平与产品质量追溯能力。
二、软件功能与核心模块
视觉激光打标:基于模板匹配定位,控制激光打标机完成精密打标。
扫码枪驱动:支持基恩士等TCP扫码枪,实现条码读取、等级识别、重码/错码检测。
条码规则引擎:支持头尾常量校验、长度/正则校验、流水号生成、批次数量配置。
MES通讯客户端:支持工单查询、结果上报、断网重传,兼容标准HTTP/JSON及多品牌MES。
产品模板管理:维护产品号、名称、打标文件及条码规则。
PLC与IO控制:通过串口/网口与PLC交互,实现自动触发、结果反馈。
系统管理:用户权限、日志、参数配置、报警显示。
三、业务流程与功能路径
业务流程:操作员登录 → 选择产品模板 → MES获取工单 → PLC触发扫码 → 条码规则校验/重码检测 → 合格后激光打标 → 结果上报MES → 数据存档。
功能路径:主界面 → 模板管理(产品/规则配置) → 参数设置(扫码枪/MES/PLC) → 自动运行/单次运行 → 运行日志/报表查询。
系统支持手动调试与自动流水线两种模式,满足工业现场灵活部署需求。
1、整体架构和设计思路,不同模块使用的技术栈
项目采用分层架构:设备层、通讯层、业务层、UI层。核心类库拆分为:Infrastructure.Devices.Scanner(TCP扫码枪抽象,支持基恩士,基于Socket)、Infrastructure.MES(MES契约与多品牌实现,基于HTTP/JSON、Newtonsoft.Json)、Infrastructure.Imaging(图像解码契约)、Infrastructure.Common(日志、INI配置)。UI层为WinForms+Sunny.UI;PLC通过串口/网口RTU协议;条码规则引擎独立为可复用类库,支持头尾常量、长度、正则、流水号生成。
2、我的负责模块和结果
我负责扫码枪与MES类库的抽象与实现、条码规则引擎抽离、以及将扫码防重功能整合到视觉激光打标项目。具体成果:完成KeyenceScanner驱动,支持LON/LOFF触发、心跳保活、超时重连,扫码成功率>99.5%;完成MES客户端,支持工单查询、结果上报、断网重传队列,上报成功率提升至99.9%;抽离条码规则引擎,减少约40%维护成本;整合后项目通过72小时连续运行测试,无内存泄漏。
3、我遇到的难点、坑和解决方案
难点1:条码规则与UI耦合。解决方案:抽离为独立的规则服务和存储(JSON/INI),UI仅调用服务。
难点2:扫码枪TCP连接不稳定,断线后需自动恢复。解决方案:增加心跳线程、读写超时、重连重试机制,并处理LOFF/LON时序。
难点3:MES多品牌兼容。解决方案:定义IMesClient契约,标准实现+客户定制项目,工厂反射加载。
难点4:断网数据丢失。解决方案:实现基于文件/内存的上报队列,网络恢复后自动重传。