产品详情
项目概述
选矿厂收发货系统是一套面向矿山选矿厂的无人值守称重收发货管理系统。系统通过地磅、RFID 读卡器、摄像头、道闸、LED 屏等硬件设备的协同工作,实现矿石收货(进厂称重)与成品发货(出厂称重)的全流程自动化管理,同时提供基础数据维护、票据打印、报表统计与 ERP 对接等企业级能力。
收货流程:重车上磅 → RFID 识别车牌 → 摄像头 OCR 验证 → 语音播报 → NFC 刷卡确认物料 → 记录毛重 → 开道闸放行 → 卸货后空车回磅去皮,计算净重
发货流程:空车上磅记皮重 → 装货 → 重车回磅记毛重 → 操作员选物料 → 计算净重 → 打印四联出库单 → 开道闸放行
混合模式:自动流程与手动补录并行,硬件故障时业务不中断
核心功能
⚖️
自动称重流程
双地磅独立采集线程并行工作,重量稳定判定、零位判定、毛皮重自动计算,支持自动/手动混合模式。
🚗
车辆与 RFID 管理
车辆档案 + RFID/NFC 标签绑定,支持从远程 MySQL 服务器同步车辆信息(可选"以服务器为准"删除本地多余车辆)。
📷
车牌 OCR 与拍照存档
PaddleOCR 车牌识别(引擎类级缓存,避免重复加载),称重过程自动抓拍照片并归档。
🖨️
票据打印与模板
四联出库单打印,可视化模板编辑器,支持自动打印、批量 PDF 导出,Excel/PDF 报表导出。
📊
报表与数据查询
称重记录多条件查询(企业-物料级联过滤),按日/月汇总统计,报表导出。
🔗
ERP 对接
ERP 适配器支持 HTTP/数据库/文件三种对接方式,字段映射可配置,同步日志可追溯。
👥
用户与权限
bcrypt 密码哈希,管理员/主管/操作员/驾驶员四级角色权限控制,操作审计日志。
⚙️
可视化系统配置
硬件参数、称重阈值、车辆同步服务器等全部可在「系统设置」界面配置,config.json 统一存储,密码加密落盘。
🔊
语音与 LED 提示
pyttsx3 离线语音播报车牌与称重结果,LED 显示屏实时展示指引信息。
称重业务流程
📥 收货流程(Inbound)
1. 重车上磅1→2. 地磅读数稳定→3. RFID 读车牌→4. 摄像头验证→5. 语音播报→6. NFC 刷卡确认物料→7. 记录毛重/开闸1→8. 卸矿后空车上磅2→9. 去皮得净重→10. 开闸2完成
📤 发货流程(Outbound)
1. 空车上磅1→2. 记录皮重→3. 装货→4. 重车上磅2→5. RFID 读车牌→6. 记录毛重→7. 选择物料/算净重→8. 打印四联单→9. 开闸放行
技术架构
| 层次 | 技术选型 | 说明 |
|---|---|---|
| GUI 框架 |
| Qt6 跨平台桌面 UI,主窗口 + 多标签页架构 |
| 数据库 |
| mysql-connector-python,连接池 + 延迟初始化代理,SQL 参数化防注入 |
| 串口通信 |
| 地磅 RS232、RFID 串口、NFC、道闸、LED 屏 |
| TCP/IP 通信 |
| 网口 UHF RFID 物料读写器 |
| OCR 识别 |
| 车牌识别与拍照(独立 requirements-ocr.txt 安装) |
| 图像处理 |
| 摄像头采集与图像预处理 |
| 语音播报 |
| 离线 TTS 语音合成(SAPI5 引擎),独立播报线程 |
| 报表生成 |
| PDF 票据 / Excel 报表导出 |
| 加密安全 |
| 数据库密码 Fernet 加密存储,用户密码 bcrypt 哈希 |
| 打包部署 |
| exe 打包 + Windows 安装包(requirements-dev.txt) |
硬件设备支持
| 设备类型 | 通信方式 | 协议/型号 | 用途 |
|---|---|---|---|
地磅 | RS232 串口 | Maiwei/Toledo(二进制帧)、XK3190/A12(ASCII)、Generic(文本兜底),可自定义协议 | 毛重/皮重自动采集,每磅独立读取线程并行工作 |
RFID 车牌读卡器 | RS232 串口 | 自定义命令协议(EPC/TID 双区读取) | 远距离车牌识别,支持 verify_plate_number 校验 |
UHF RFID 物料读写器 | TCP/UDP 网口 | ISO 18000-6C / EPC Gen2 | 物料标签远距离识别 |
NFC 读卡器 | USB 串口 | ACR122U / ISO 14443A | 驾驶员刷卡确认物料 |
摄像头 | USB / IP | OpenCV + PaddleOCR | 车牌 OCR 识别 + 称重拍照存档 |
道闸 / LED 屏 / 语音 | RS232 / SAPI5 | 自定义文本协议 / pyttsx3 | 放行控制、信息显示、语音播报 |
打印机 | 系统驱动 / 串口 | A4 四联单 / 热敏 | 出库单打印、自动批量 PDF |
数据库设计
核心数据表
| 表名 | 说明 |
|---|---|
| 称重记录(核心业务表,毛/皮/净重、状态流转) |
| 供货商信息 |
| 车辆信息(车牌 UNIQUE + RFID/NFC 绑定) |
| 物料信息(品类 + NFC 码 + 品位 grade) |
辅助数据表
| 表名 | 说明 |
|---|---|
| 用户账户与角色权限(bcrypt 哈希) |
| 称重拍照存档 |
| 操作审计日志 |
| 本厂基本信息 |
| ERP 同步日志 |
特色功能:车辆远程同步
支持从指定服务器的 MySQL 数据库拉取车辆信息更新本地车辆表(「车辆管理 → 🌐 从服务器更新」),服务器地址/端口/数据库名/表名在「系统设置 → 参数设置 → 车辆同步服务器」中统一配置:
按车牌号匹配:本地已存在则比对差异字段更新,不存在则新增
远程空值不覆盖本地已有数据,重量字段容差比较
可选「以服务器为准」模式:删除远程不存在的本地多余车辆(远程列表为空时自动跳过,防止误删;同步前二次确认)
远程密码 Fernet 加密存储,表名/库名白名单校验防 SQL 注入
字段自适应 后台线程同步 测试连接 防误删保护 密码加密
用户角色与权限
👑 管理员全部功能权限 | 💼 主管报表查看/导出 | 💻 操作员日常称重操作 | 🚚 驾驶员查看称重结果 |
架构设计亮点
| 设计要点 | 应用场景 | 收益 |
|---|---|---|
策略模式 | 地磅协议解析(hardware/protocols/) | 新增协议只需添加一个文件,无需修改控制器代码 |
延迟初始化代理 |
| 导入即秒开,运行时按需创建连接池/硬件,避免启动阻塞 |
每设备独立线程 | 每台地磅独立 ScaleReader 读取线程 | 双磅并行不互相阻塞,单磅故障不影响另一磅 |
OCR 类级缓存 | PaddleOCR 引擎双重检查锁单例 | 模型只加载一次,识别响应大幅提升 |
三层架构 | UI → Services → Hardware/Database | 各层职责分离,便于独立测试和维护 |
参数化 SQL | 全部数据库操作使用 %s 占位符 | 杜绝 SQL 注入风险;远程同步表名白名单校验 |
混合模式 | 称重流程自动 + 手动混合 | 硬件故障时可手动补录,不中断业务 |
按天切分日志 | DailyFileHandler 五通道日志 | 日志按日期命名、7 天自动清理,跨天无缝切换 |