chore: checkpoint before scada visual polish

This commit is contained in:
Cui Hongwei
2026-06-25 08:45:26 +08:00
parent 01b5e7b5ef
commit 0ddf23a160
17 changed files with 1691 additions and 2514 deletions

View File

@@ -0,0 +1,274 @@
# PLC数据与看板内容匹配分析
分析对象:
- 客户PLC点位文档`07-功能确认.md`
- 当前看板页面:`src/views/DaLuJiaTV1.vue`
- 当前看板模块:线体任务联动状态、加工设备状态、辅助设备状态、物料库位矩阵、报警与异常事件、设备运行履历、顶部视角按钮
## 1. 总体结论
客户目前提供的PLC点位能够支撑看板中大部分“实时状态类”内容包括线体是否在线、是否允许接任务、自动模式、急停、机器人任务号、起止位置、配方号、托盘类型、零件类型、机器人握手反馈、库位有无料、设备忙碌/报警/上下料就绪等。
但当前看板中有几类内容不能直接由现有PLC点位一次性满足需要数据库、采集服务或客户补充字段
1. **产量**现有点位没有直接的设备产量计数器。加工设备状态里的“产量”需要通过任务完成、下料完成、COMPLETE上升沿等事件计算并落库。
2. **报警事件文本**:现有点位只有 `ALARM``ERROR``EMG` 等布尔信号,没有报警代码、报警文本、报警发生时间。报警与异常事件模块需要采集服务根据点位变化生成事件。
3. **24小时设备运行履历**PLC能提供当前状态但24小时履历必须由采集服务按分钟或按状态变化记录到数据库再由页面读取。
4. **关机状态**:目前多数加工设备只有 `BUSY``ALARM`、上下料信号,没有明确的“开机/在线/心跳”信号。若要区分“关机”和“待机”,需要客户补充设备在线/开机/心跳点位,或由通讯中断推断。
5. **程序一致性**PLC提供实际程序号 `A_PROG_NO`,但页面若要判断“目标程序与实际程序不一致”,还需要目标程序号或配方号到程序号的映射关系。
## 2. 模块匹配矩阵
| 看板模块 | 当前显示内容 | 07文档可用数据 | 满足度 | 说明 |
| --- | --- | --- | --- | --- |
| 线体任务联动状态 | 长地轨、短地轨、关节机器人状态;当前任务;起止工位;接任务条件;当前阶段 | `PCS_RUN``ALLOW_TASK``AUTO_ACTIVE``EMG``TASK_NO``START_POS``END_POS``RECIPE_CODE``PALLET_TYPE``PART_KIND``FLAG``READY``BUSY``ERROR``COMPLETE` | 高 | 能支撑当前模块。需要补充工位编号字典、托盘类型字典、零件类型字典。长地轨任务中未看到 `PART_KIND`,若需要显示长轴/短轴,需要确认来源。 |
| 加工设备状态 | 设备名称、产量、运行条件、状态 | F500、L2000LSY、L2100SY、新日、MAZAK、YKD5132H 的 `A_PROG_NO`、上下料完成/就绪、`BUSY``ALARM` | 中 | 状态和运行条件可支撑;产量没有直接点位,需要计算;程序一致性需要目标程序来源。 |
| 辅助设备状态 | 长地轨打标机、短地轨打标机、关节打标机、清洗机、测量仪状态 | 打标机 `NORMAL``START``BUSY``IDLE`;清洗机 `BUSY``ERROR`、上下料就绪;测量仪 `BUSY``ERROR`、上下料就绪 | 中高 | 可支撑状态显示。长地轨打标机文档中 `NORMAL``BUSY` 地址为空,需要客户确认。 |
| 物料库位矩阵 | 长地轨库区9个库位、短地轨库区9个库位、关节库区6个库位有料/无料 | `S1_YES``S9_YES`,关节 `S1_YES``S6_YES` | 高 | 可直接支撑。需要确认长地轨和短地轨是否真的共用 `DB50.DBX101.0``DB50.DBX109.0`还是不同PLC/不同上下文。还需要库位编号到现场位置的映射。 |
| 报警与异常事件 | 时间、设备、级别、事件内容 | 设备 `ALARM`,辅助设备 `ERROR`,机器人 `ERROR`,线体 `EMG` | 中低 | 可判断是否报警,但缺报警代码、报警文本、报警等级、开始/结束时间。建议采集服务在信号上升沿生成报警事件。 |
| 设备运行履历 | 24小时设备状态甘特图关机、运行、待机、报警 | `BUSY``ALARM``ERROR``NORMAL``IDLE``PCS_RUN` 等当前状态信号 | 中 | 当前状态可判断24小时履历必须落库。关机状态需要明确开机/在线/心跳点位,否则只能按通讯状态或 `NORMAL=0` 推断。 |
| 顶部视角按钮 | 长地轨视角、短地轨视角、关节视角 | 无PLC点位要求 | 不依赖PLC | 属于前端/DMT相机视角控制不需要PLC数据。 |
## 3. 当前看板字段逐项判断
### 3.1 线体任务联动状态
可满足:
- PCS在线`PCS_RUN`
- 自动模式:`AUTO_ACTIVE`
- 允许接任务:`ALLOW_TASK`
- 急停/安全异常:`EMG`
- 当前任务编号:`TASK_NO`
- 任务流向:`START_POS``END_POS`
- 配方号:`RECIPE_CODE`
- 托盘类型:`PALLET_TYPE`
- 零件类型:`PART_KIND`,短地轨和关节已有,长地轨需要确认
- 当前阶段:可由 `FLAG``READY``BUSY``ERROR``COMPLETE` 推导
建议规则:
- `ERROR=1``EMG=1`:异常中断
- `BUSY=1`:执行中
- `READY=1``BUSY=0`:准备就绪
- `ALLOW_TASK=1``AUTO_ACTIVE=1``PCS_RUN=1``EMG=0`:可接任务
- `COMPLETE=1`:任务完成,可显示完成保持或等待下一任务
需要补充确认:
- `START_POS``END_POS` 对应的工位名称字典
- `PALLET_TYPE` 对应的托盘名称字典
- `PART_KIND` 的字典是否全线统一
- 长地轨是否需要 `PART_KIND`,如果需要,从哪里取
### 3.2 加工设备状态
可满足:
- F500实际程序号、上料完成、下料完成、运行中、报警
- L2000LSY实际程序号、上料完成、下料完成、运行中、报警
- L2100SY实际程序号、上料完成、下料完成、运行中、报警
- 新日:实际程序号、上料就绪、下料就绪、运行中、报警
- MAZAK上料就绪、下料就绪、运行中、报警实际程序号标注为不需要
- YKD5132H实际程序号、上料就绪、下料就绪、运行中、报警
不能直接满足:
- 产量:未看到直接产量计数器
- 目标程序号:未看到目标程序号点位
- 程序一致性:只有实际程序号,不足以独立判断
建议处理:
- 页面保留“产量”可以,但数据来源应由采集服务计算:
- 方案A设备 `UNLOAD_COMPLETE``UNLOAD_READY` 上升沿计数
- 方案B机器人任务 `COMPLETE` 上升沿按目标设备归属计数
- 方案C客户补充每台设备的产量计数器页面直接读取
- 程序一致性建议由 `RECIPE_CODE` 或生产任务中的目标程序号,与设备 `A_PROG_NO` 比对。
- 若客户暂时不能提供产量,建议把“产量”暂时改为“程序号”,或在接口层返回计算产量。
### 3.3 辅助设备状态
可满足:
- 短地轨打标机:`NORMAL``START``BUSY``IDLE`
- 关节打标机:`NORMAL``START``BUSY``IDLE`
- 清洗机:`BUSY``ERROR``UPLOAD_READY``UNLOAD_READY`
- 测量仪:`BUSY``ERROR``UPLOAD_READY``UNLOAD_READY`
部分缺口:
- 长地轨打标机 `NORMAL``BUSY` 地址为空,需要客户补齐或确认是否不采集。
- 打标机 `START` 可能是短脉冲,不能直接作为状态长期显示,需要采集服务捕获边沿或只用于事件记录。
建议状态规则:
- 打标机:`BUSY=1` 显示运行中;`IDLE=1` 显示待机;`NORMAL=0` 显示关机或离线;如后续有错误点位,优先显示报警。
- 清洗机/测量仪:`ERROR=1` 显示报警;`BUSY=1` 显示运行中;`UPLOAD_READY``UNLOAD_READY` 显示等待上下料;否则显示待机。
### 3.4 物料库位矩阵
可满足:
- 长地轨库区9个库位 `S1_YES``S9_YES`
- 短地轨库区9个库位 `S1_YES``S9_YES`
- 关节库区6个库位 `S1_YES``S6_YES`
需要确认:
- 长地轨和短地轨库区在文档中使用相同地址 `DB50.DBX101.0``DB50.DBX109.0`。需要确认是否为同一个PLC地址空间下的重复还是Excel转换时上下文丢失。
- 每个 `S1``S9` 对应现场哪个实际库位、工位、料框位置。
建议:
- 页面可以继续显示库位矩阵。
- 可以增加库位统计:占用数、空位数、占用率。
- 若客户能提供物料类型或托盘号,可进一步显示“有料但类型未知/长轴/短轴”等状态。
### 3.5 报警与异常事件
现有点位可作为报警源:
- 线体:`EMG`
- 机器人:`ERROR`
- 加工设备:`ALARM`
- 清洗机/测量仪:`ERROR`
- 打标机:目前未看到明确错误点位
当前缺口:
- 没有报警代码
- 没有报警文本
- 没有报警等级
- 没有报警开始时间、恢复时间
建议实现:
- 采集服务保存报警事件表,而不是页面直接读当前布尔值。
- 每个报警布尔点从 `0 -> 1` 时生成一条事件,记录:时间、设备、点位、事件名称、等级、是否恢复。
-`1 -> 0` 时记录恢复时间。
建议报警等级:
- 严重:急停 `EMG`、机器人 `ERROR`、设备 `ALARM`、清洗机/测量仪 `ERROR`
- 警告:程序不一致、上下料等待超时、允许接任务条件不满足
- 提示:任务完成、等待上游/下游放行
### 3.6 设备运行履历
可用当前PLC信号生成实时状态
- 报警:`ALARM=1``ERROR=1`
- 运行:`BUSY=1`
- 待机:`IDLE=1``READY=1`、或无报警且无运行
- 关机:需要 `NORMAL=0``PCS_RUN=0`、通讯断开、或客户补充开机/在线信号
当前缺口:
- 现有PLC只提供当前状态不提供历史。
- 页面要显示24小时履历必须由后端或采集服务按分钟存储状态。
建议数据库表:
| 字段 | 说明 |
| --- | --- |
| device_code | 设备编码 |
| device_name | 设备名称 |
| state | off/run/standby/alarm |
| start_time | 状态开始时间 |
| end_time | 状态结束时间 |
| source_tags | 参与判断的PLC点位 |
建议状态优先级:
`报警 > 运行 > 待机 > 关机/离线`
## 4. 建议新增或优化的看板内容
基于客户目前PLC点位建议优先考虑以下内容
1. **线体接任务条件指示**
- 展示 `PCS_RUN``ALLOW_TASK``AUTO_ACTIVE``EMG` 四个条件。
- 适合放在线体任务联动状态中,能快速判断为什么不能发任务。
2. **机器人握手信号诊断**
- 展示 `FLAG``READY``BUSY``ERROR``COMPLETE`
- 当前页面已经精简过,如果现场调试需要,可以做成点击详情或悬浮面板,不一定常驻主屏。
3. **程序号核对**
- 设备侧 `A_PROG_NO` 已有。
- 如果能拿到目标程序号,可新增“程序一致/不一致”提示。
- 如果拿不到目标程序号,页面不建议直接写“程序不一致”,避免误导。
4. **库位占用统计**
- 当前库位矩阵已具备点位基础。
- 可增加每个库区的占用数、空位数、占用率。
5. **报警事件列表**
- 当前布尔点足够做基础报警事件。
- 需要采集服务生成事件文本例如“MAZAK 报警信号触发”“关节机器人 ERROR=1”“长地轨急停激活”。
6. **设备运行履历**
- 当前页面已有模块。
- 必须配套状态落库否则只能显示当前状态不能显示24小时历史。
7. **生产/产量统计**
- 现有PLC文档不直接提供产量。
- 建议客户补充产量计数器,或确认用哪个完成信号作为计数依据。
- 没有确认前看板上“产量”应标注为接口计算值而不是PLC直采值。
## 5. 需要客户补充确认的问题清单
1. 是否有每台加工设备的**产量计数器**?如果没有,是否允许用 `UNLOAD_COMPLETE``UNLOAD_READY` 或机器人 `COMPLETE` 上升沿计算产量?
2. 是否有每台设备的**开机/在线/心跳**信号?用于区分“关机”和“待机”。
3. 是否有**报警代码、报警文本、报警等级**?如果没有,是否接受由点位名称生成简化报警事件?
4. 是否有**目标程序号**或 `RECIPE_CODE -> A_PROG_NO` 的映射表?用于判断程序一致性。
5. 长地轨打标机的 `NORMAL``BUSY` 地址为空,是否需要补充?
6. 长地轨任务是否有 `PART_KIND`?如果没有,长轴/短轴从哪里判断?
7. 长地轨和短地轨物料库位是否共用 `DB50.DBX101.0``DB50.DBX109.0`?如果不是,需要提供真实地址。
8. `START_POS``END_POS` 的工位编号字典是什么?
9. `PALLET_TYPE` 的托盘类型字典是什么?
10. PLC点位虽然标注 `RW`看板是否只读建议看板侧默认只读不向PLC写入。
11. 数据采集周期要求是多少状态看板建议1秒级刷新运行履历可按状态变化或1分钟粒度落库。
## 6. 对当前看板的落地建议
### 建议保留
- 线体任务联动状态
- 加工设备状态
- 辅助设备状态
- 物料库位矩阵
- 报警与异常事件
- 设备运行履历
- 顶部视角按钮
### 建议调整数据口径
- 加工设备状态中的“产量”应明确为“接口计算产量”当前PLC文档不能直接支撑。
- 报警与异常事件应由采集服务生成事件,不应只读当前报警位。
- 设备运行履历应由数据库提供24小时历史不应只依赖页面前端模拟。
### 建议新增后端/数据库能力
1. PLC当前快照表保存每个点位当前值。
2. 状态变化事件表:保存报警、任务阶段、设备运行状态变化。
3. 设备分钟状态表或状态区间表支撑24小时运行履历。
4. 产量统计表:按设备、班次、日期统计产量。
5. 字典表:工位、托盘类型、零件类型、设备编码、点位含义、报警等级。
## 7. 数据满足度结论
当前PLC点位对看板的支撑度可以概括为
- **实时状态显示:基本满足**
- **任务联动显示:基本满足**
- **库位矩阵显示:满足**
- **设备运行/报警当前状态:基本满足**
- **产量显示:不直接满足,需要计算或补点**
- **报警事件列表:部分满足,需要事件化**
- **24小时运行履历部分满足需要历史落库**
- **程序一致性:部分满足,需要目标程序或映射表**
因此,当前数据可以支撑看板进入联调,但在正式交付前,需要重点确认“产量、报警事件、运行履历、关机状态、程序一致性”这五类数据口径。