Files
bj_power/需求规格与开发规划.md
T
SunYF a2afd2f6dc feat: 五项目业务实现并对接完成
- MES(B): 工单/BOM/备料/工序字典/PLC下发/拧紧/扫码报工/半成品/AGV/追溯逻辑,WMS与海康RCS客户端,看板Redis缓存API(概览/设备/进度/报警/趋势)+SSE
- WMS(C): JWT滑动续签、Excel导入、盘点、内部API、种子数据、独立Postgres配置
- WMS客户端(E): Go网关8891反向代理+内嵌Vue3十页
- 工位终端(D): SQLite本地缓存+模拟拧紧源+内嵌Vue3页面
- Dashboard(A): 看板数据改接MES内部缓存API,SSE实时刷新+vite代理
- 清理各项目球形磨遗留代码,新增部署手册.md
2026-08-27 19:50:57 +08:00

19 KiB
Raw Blame History

北京电力智能产线系统 — 需求规格与开发规划

本文档综合《项目说明.md》《头脑风暴.md》及甲方(孙工/韩总)通话录音纪要整理,作为 5 个软件项目的开发总纲。逻辑闭环,尽量不遗漏文档/录音中提到的需求点。


一、项目背景

为北京电力设备总厂建设一条自动化智能产线(传送带流水线,12 道工序)。软件侧规划:

  • 精确对接西门子 S7-1214 PLC:下发工序组合(如 135 → 只做 1、3、5 序;234 → 做 2、3、4 序)。
  • 对接海康 AGV 调度系统(RCS-2000):指挥 2 台 AGV 在 21 个接驳台之间搬运物料。
  • 库房记账与追溯(WMS):管到区域 + 数量 / 序列号,无智能立库、无传感器货架坐标。
  • 产线控制 (MES) + 库房 (WMS) + 看板 (Dashboard) + 工位终端 + 库房客户端。

结论性判断:无需独立 MIS 系统。甲方 5 个系统,我方开发 3 类后台(MES/WMS/工位终端)与 2 类前端(看板/库房客户端),AGV 调度系统与拧紧工具系统为外部既有系统(仅对接)。

业务可追溯:入库、出库、加工、页面操作、触发agv ,等等,都需要记录清楚,在工件、工单、审核、等场景标记清楚。所以,登录权限必须完善、菜单权限,token失效时间要短。


二、业务全貌与核心流程

2.1 生产模式

  • 工单驱动、按日批量备料:一个合同 = 一个工单(如 100 台设备),按日排产(今天 20 台)。开工前用 AGV 将当日所需全部物料(芯片=器件、螺丝=结构件、屏幕等)一次性配送到各工位(新建工单时,可以选择都是哪个工位送料,分别是什么料。仓库管理后台可以把多个料打包成一个概念,即套件。工单支持混合选择【工件(独立物料)】与【套件(虚拟物料组合)】),软件层面中途没有停线补料逻辑(返修/报废才走补料申请,主管审批)。
  • 出库强约束:累计出库 ≤ 工单 BOM 需求量,超发需补料流程。

2.2 两类物料差异化管理

类型 管理粒度 入库方式 出库方式
精密件 芯片/器件/成品 序列号 SN,逐件 扫码逐件录入,单件追溯,支持连续扫码。(先选择模版,再扫描,否则大量其他信息需要填入)。可人工修改工件,再保存提交。 同入库
结构件 机加工件/螺丝 图号+批次 按批次/图号录入,支持 Excel 批量导入,分多批到货 同入库
  • 物料总状态:原材料 / 半成品(记录已完成工序)/ 成品。
  • 检验三状态:未检 → 合格 / 不合格,需批量翻转;分来料检、过程检、成品检;部分检验项需录实测值。
  • 为保证通用性,两种物料,都用同样的表结构,结构件不写 sn即可,也可以手动选择物料类型。
  • 物料,必须有 code唯一码(物料模版里面有,新建物料时必须选择物料模版,也是物料种类,比例螺丝、剪刀,等分类),真实名称、简称、描述、等等,包含不限于上面字段。

2.3 完整业务流程(闭环)

1. 库房入库     WMS 记账(精密件逐扫 SN / 结构件 Excel 批次)。为保证一致性,不做特殊区分,都可以批量、或者扫码、或者手动输入sn。功能越全越好,仅仅类型区分,和sn码有或无。
2. 创建工单     MES:工单 + BOM + 日排产
3. 锁库存       MES 调 WMS:按 BOM 校验并锁定库存(批次/SN)
4. 生成备料单   系统按日排产自动算料 → 备料单 。
5. AGV 配送     MES 调海康 RCS:库房接驳台 DOCK21 → 产线 DOCK01~20
6. 到货上料     主线扫码枪识别托盘 → 分流决策 → 送往目标支线
7. 支线装配     12 工位,拧紧枪采集数据,工位终端实时显示
8. 工序报工     支线扫码枪扫码报工 → MES 更新工单进度
9. 完工         全部工序完成 → 半成品/成品回库 WMS
10. 追溯/打印    流程卡:工序操作人/检验人/检验结果汇总 PDF

补充

# 整体业务方案 补充
1、日排产:可编排当日以及未来多天的生产计划,作为仓库的前瞻参考信息;日排产仅做计划预告,**不直接触发出库、不下发领料指令**。
2、MES向下游WMS下发生产工单,工单为仓库出库唯一挂靠载体;工单携带产品、BOM、物料总需求量。
3、工单只管控物料总的需求数量,**不管理出库节奏,不做拉动式叫料控制**;每次出库何时出、出多少、分几趟AGV送货,决策权交由仓库/WMS自主决定。
4、仓库配送拥有两种自由选择:可早上一次性将工单所需物料全部出库配送完毕;也可拆分为多批次,分次出库、分批AGV送货。
5、WMS实时维护工单物料台账:物料总需求数量、累计已出库数量、剩余待出库数量;系统强制校验,累计出库数量不可超过工单总需求量;当累计出库等于总需求,工单领料完结,禁止再出库。
6、后期如需升级为MES拉动叫料补料模式,现有工单‑出库架构可无缝叠加,无需推翻改造。

三、五个项目职责、技术栈与页面

项目构成以《项目说明.md》为准,共 5 个,均可单独编译、单独部署。

项目 Abj_power_dashboard(看板,H5 前端)

  • 技术栈:Vue/React + ECharts + SSE。只展示,不读写业务。数据来源于项目 B(MES),经 Redis 缓存。
  • 部署:厂房大门口大显示器(联想 ECI-521 主机 + 100 吋屏)。
  • 页面:
    1. 生产数据看板(产线运行状态、产量、进度、合格率)
    2. 仓储数据看板(库存总量、物料种类、出入库动态)
    3. 物流设备看板(AGV 位置/状态/电量/任务执行)
    4. 异常报警(设备故障、物料短缺、AGV 异常)
    5. 三维产线模型(可选,展示各工位/AGV 状态,数据须准确)【录音:面子+里子】

项目 Bbj_power_mesMES 产线控制,Go + Vue

  • 技术栈:Go 后端(go-zero 或 gin+ Vue 前端;前端需自适应 平板/iPad/手机/台式机
  • 部署:库房/业务服务器(联想 ECI-521),PostgreSQLMES 独立库)。
  • 职责:工单/排产/BOM/备料、调 WMS 锁库扣库、调海康 RCS 下发 AGV、写 PLC 工序码+读完成信号、收拧紧数据、工序扫码报工、半成品流转、追溯、看板缓存接口。
  • 页面:
    1. 登录/个人中心(自适应)
    2. 工单管理(创建/查询/排产)/ BOM / 备料单
    3. 工位监控(12 工位状态实时)
    4. PLC / AGV 状态页
    5. 半成品流转
    6. 工序扫码报工记录 / 进度
    7. 拧紧数据查询 / 追溯报表 / 流程卡生成打印
    8. 看板数据接口(Redis 缓存,供项目 A)

项目 Cbj_power_wmsWMS 仓库,纯 Go,无前端)

  • 技术栈:Go 后端。不包含前端代码
  • 部署:库房/业务服务器,PostgreSQLWMS 独立库)。
  • 职责:物料/批次/SN、出入库、库存锁定/扣减、检验、半成品/成品、包装追溯;对外提供 API。
  • 无页面(前端由项目 E 提供)。

项目 Dbj_power_workstation12 个工位终端,Go + Vue

  • 技术栈:Go + Vue Web 应用(独立项目,因为有扫码枪和拧紧枪)。运行于 12 台触控一体机(浏览器访问)。
  • 数据来源:项目 B(MES) API。本地 SQLite 缓存待上报的拧紧数据,点"完成"才上报 MES,失败保留重试(断点续传);不存储历史数据,历史数据来自 MES。
  • 页面/功能:
    1. 登录(账号自动记录操作人)
    2. 当前工单 + 当前工序导航(完成一步点"下一步")
    3. 工艺文件 PDF 预览(预缓存,工位配置"工序文件"上传)
    4. 拧紧结果实时显示(扭矩/角度/OK·NG,进度如 8/10 颗,NG 红色闪烁)
    5. 扫码报工(主线/支线)
    6. 完成上报 / 返修重置(记录历史操作日志)/ 暂存退回库房(半成品)

项目 Ebj_power_wms_client(库房客户端,Go + Vue

  • 技术栈:Go + Vue Web 应用(独立项目,因为有扫码枪)。
  • 部署:库房 2 台台式机(各一显示屏,分出入库),浏览器输入 WMS(项目 C) 地址。
  • 页面/功能:
    1. 登录
    2. 入库:精密件逐件扫码(连续扫码、实时已扫数量)、结构件 Excel 批量导入 / 手动单条,多批到货追加
    3. 出库:按备料单/工单领料、扫码复核(校验物料+批次)、先进先出、异常出库实时报警、自动扣减库存
    4. 库存查询、盘点(动态/静态/抽盘、扫码快速盘点)
    5. 质量检验:未检/合格/不合格管理、批量翻转、实测值录入
    6. 半成品/成品入库、包装绑定(箱号 ↔ SN)

四、系统交互与 API 契约(跨项目)

4.1 拓扑

工位终端D ──HTTP──► MES(B) API ──┬──► [MES库 PostgreSQL]
PAD ───浏览器──► MES(B) 前端     ├──► Redis(看板缓存)
看板A ───SSE/HTTP──► MES 读缓存   │
库房客户端E ──HTTP──► WMS(C) API ─┴──► [WMS库 PostgreSQL]
     WMS(C) ◄══API══► MES(B)     (独立库,联动)
外部:海康RCS(AGV)、西门子PLC、丹尼科尔拧紧工具

4.2 关键 API(B ↔ C,独立数据库通过 API 互通)

方向 接口 说明
C 提供 POST /api/stock/lock 工单锁定库存(批次/SN),带 order_no
C 提供 POST /api/stock/deduct 出库扣减,order_no+qtyWMS 校验累计≤BOM
C 提供 GET /api/stock/query 库存查询(MES 查料)
C 提供 POST /api/semi/inbound / outbound 半成品入库/出库,携带"已完成工序"
B 提供 GET /api/order/query 工单/工序进度(WMS 取工单)

4.3 对接外部

  • 海康 RCSHTTPHMAC-SHA256 签名 + X-LR-REQUEST-ID 防重放。封装独立 HikRcsClientSubmitTask(fromDock,toDock,carrier)QueryTask。DOCK01~20 产线,DOCK21 库房;路径规划 RCS 自理。
  • 西门子 PLC (S7-1214):用整型寄存器写工序码(如 MW100=135),读完成信号位(M100.0);未收到完成信号不下发下一条
  • 拧紧工具(丹尼科尔):实时采集扭矩/角度/时间/结果/操作人/工单号,异常报警;数据对接 MES 质量追溯。

4.4 看板缓存方案(已采纳)

  • 看板读 Redis,不直查 MES 业务库。TTL=60s;业务变更主动刷新/删 key,未刷新也会过期回源 DB 重查。
  • 防击穿:同一 key 同一时刻仅允许一个查询打到 DB(SETNX 加锁),其他等待后重试读缓存。
  • 看板局部刷新用 SSE 推送;工位/库房客户端走普通 HTTP(强一致性)。

4.5 拧紧数据两段式(已采纳)

  • 工位终端 D:实时显示 + SQLite 缓存每把数据 → 点"完成"才上报 MES → 成功后标记同步;失败保留本地重试。历史数据只存 MES。

4.6 半成品流转(已采纳)

  • 工位"暂存/退回库房" → D 上报 MES 记录已完成工序 → MES 调 WMS 半成品入库 → 重上线 WMS 出库 → MES 从下一工序继续。

五、数据模型(核心表,逻辑闭环)

5.1 WMS(C) 库

关键字段 说明
material code,name,spec,unit,manage_mode(1批次/2序列号),is_batch_managed,is_serial_managed 物料档案
zone zone_code,zone_name 待检/合格/不合格/退货区
inventory_batch material_code,batch_no,quantity,locked_qty,production_date,supplier,quality_status,zone_code 结构件批次台账
serial_number sn_code,material_code,batch_no,status(在库/锁定/出库/使用/报废),current_zone,last_in/out 精密件/成品单件
inventory_lock batch_id,order_no,locked_qty,status,expired_at 批量锁定、防超卖
inbound_order / inbound_detail 类型、批次/SN、数量、操作人、台账 入库(含半成品/成品)
outbound_order / outbound_detail order_no,qty,批次/SN、复核人 出库,关联工单,BOM 校验
inspection_record target(批次/SN),status(未检/合格/不合格),inspector,time,result_value 来料/过程/成品检
semi_finished sn,completed_process,quantity,zone 半成品库存
package_box box_no,sn_list 包装箱 ↔ SN 关联

5.2 MES(B) 库

关键字段 说明
work_order order_no,product_code,total_qty,daily_qty,plan_start,status 工单
work_order_bom product_code,material_code,unit_qty,loss_rate BOM
daily_plan order_no,plan_date,qty 日排产
material_request order_no,material_code,qty,status,target_dock 备料单
dock_station dock_code(DOCK01~21),dock_type 21 接驳台
plan_process / work_order_process order_no,process_code(135),status 工序 / 流转
torque_result sn,strain,angle,result,operator,work_order,time 拧紧数据
scan_record station,sn,order_no,type,operator,time 扫码报工
association_trace sn → 工序/检验/物料批次 关联链 追溯
RBAC user/role/permission/dept 登录与权限

字段以开发时逐表 DDL 为准,此表为设计基线。


六、设备/硬件部署对应

设备 数量 运行 数据来源
库房台式机 2 项目 E(出入库) WMS(C)
看板大屏 + 主机 1 项目 A MES 缓存
工位触控一体机 12 项目 D MES(B)
PAD(iData P1) 3 浏览器访问 B/C 前端 MES/WMS
WMS 显示器(55 吋) 1 展示库存总览 WMS
扫码枪 主线2+支线12+库房 / 上报 MES/WMS
AGV 2 海康 RCS(对接) /
PLC 1 西门子 MES 写工序
拧紧工具 / 丹尼科尔(对接) MES 收数据

七、分阶段开发路线(先怎么开始,再怎么开始)

阶段 0 — 工程地基

  • 建 5 个工程骨架(Go 后端 + Vue 前端),改 module/包名,各自 go build / pnpm build 可运行;统一配置、日志、鉴权骨架。

阶段 1 — C WMS 核心 + E 库房客户端

  • WMS 建表(物料/批次/SN/锁定/检验)→ 入库(扫码+Excel)→ 出库(锁定→扣减→BOM 校验)→ 检验批量翻转 → 追溯查询。
  • E 库房客户端界面对接,最快出可演示成果。

阶段 2 — B MES 工单/排产/备料 + 联动

  • MES 建表 → 工单+BOM+日排产 → 备料单生成 → 调 WMS 查库/锁库/扣库;前端自适应页面(web/pad)。

阶段 3 — 外部对接

  • 海康 RCS 客户端(签名+下发+查状态)→ AGV 闭环;PLC 工序码下发+完成信号轮询;丹尼科尔拧紧工具对接。

阶段 4 — D 工位终端 + E 深化

  • D:工序导航/工艺PDF/拧紧实时/SQLite缓存/完成上报/扫码报工/暂存;E:出库复核、盘点、批量翻转、包装绑定。

阶段 5 — A 看板 + SSE + Redis

  • 看板页 + MES dashboard 缓存接口(Redis1 分钟+防击穿)+ SSE 局部刷新 + 3D 模型(可选)。

阶段 6 — 闭环与验收

  • 全链路联调(创建工单→备料→AGV→装配→拧紧→报工→完工入库)、流程卡打印、半成品流转、容错/断点续传、数据备份(保留≥1 年)。

八、验收相关指标(软件需支撑,不越硬件职责)

  • 扫码识别率一次成功率 ≥92%(记录扫码成功/失败,为验收提供数据证据)。
  • 看板刷新延迟 ≤4s(99%),WMS↔MES 同步 ≤2s,AGV 任务成功率 ≥99%(软件侧记录与重试)。
  • 数据保留 ≥1 年,每日自动备份。
  • 知识产权归甲方,支持二次开发(模块解耦、独立升级)。

九、待甲方确认清单(遗留)

  1. 结构件批次号规则:甲方定义 or 系统自动生成?   答:自动生产,按日期 + 自增数量
  2. 拧紧工具对接数据字段与协议(丹尼科尔是否提供 API)。 答:暂放
  3. AGV 位置/电量实时推送 or 轮询。 答:见文档:AGV海康.md
  4. PAD 网络与离线需求。  答:什么需求,离线不可工作,因为要登录授权
  5. 看板 3D 模型精度需求。 答:暂放

已采纳的甲方明确结论(来自对话/录音): ① 库房 2 台台式机  ② 看板走 Redis、1 分钟过期、防击穿 ③ WMS 与 MES 独立库、API 互通  ④ 拧紧数据本地缓存、点完成上报 MES  ⑤ 半成品流转记录已完成工序