# 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小时运行履历:部分满足,需要历史落库** - **程序一致性:部分满足,需要目标程序或映射表** 因此,当前数据可以支撑看板进入联调,但在正式交付前,需要重点确认“产量、报警事件、运行履历、关机状态、程序一致性”这五类数据口径。