chore: checkpoint before scada visual polish
This commit is contained in:
274
work/working1/08-PLC数据与看板内容匹配分析.md
Normal file
274
work/working1/08-PLC数据与看板内容匹配分析.md
Normal 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小时运行履历:部分满足,需要历史落库**
|
||||
- **程序一致性:部分满足,需要目标程序或映射表**
|
||||
|
||||
因此,当前数据可以支撑看板进入联调,但在正式交付前,需要重点确认“产量、报警事件、运行履历、关机状态、程序一致性”这五类数据口径。
|
||||
Reference in New Issue
Block a user