3. 台达设备产能数据采集体系

节拍与产能优化的第一步不是调机,而是让数据可信。台达设备的数据采集体系通常由四层构成:最底层是PLC中的运行状态与计数寄存器,中间层是SCADA或DIAView的采集与归档,工程侧由DIADesigner完成PLC程序与标签定义,最终汇入节拍与产量数据库。四层之间任何一处定义不一致,都会在数据库里表现为“数据缺失”或“数据异常”,而不是设备故障。

一、采集对象:先定义“什么算一个节拍、什么算一件产量”

在台达PLC中,与节拍和产量直接相关的对象通常包括:设备运行状态位(运行/待机/报警/停机)、循环启动信号、循环完成信号、OK/NG计数、当前节拍计时器、累计产量寄存器。以一台台达AS系列或DVP系列PLC控制的装配机为例,常见做法是:用M0表示“自动运行中”,用M10表示“本循环完成”,用D100存放本循环节拍(单位0.01s),用D200存放当班累计产量,用D201存放NG数。

这里必须先明确两个定义,否则后续所有统计都会漂移:节拍定义为“相邻两次循环完成信号上升沿之间的时间”,而不是“电机转动时间”;产量定义为“循环完成且判定为OK的计数”,而不是“循环完成次数”。这两个定义要在PLC程序、SCADA点表和数据库字段中保持一致。

二、DIADesigner中的标签与采集点规划

DIADesigner是台达PLC的编程与变量管理工具。采集体系能否稳定,很大程度取决于变量命名是否规范。建议按“设备_对象_类型”命名,例如:ASM01_RunStatus、ASM01_CycleDone、ASM01_CycleTime、ASM01_Output_OK、ASM01_Output_NG。在DIADesigner中把这些变量与PLC地址绑定,并确认数据类型:状态位用BOOL,节拍用DINT或REAL,产量用DINT。

需要特别注意的是采样周期与信号宽度的关系。若循环完成信号M10只保持一个扫描周期(约10ms),而SCADA轮询周期为200ms,则必然漏采。工程上的处理方式有两种:一是让PLC把M10锁存到M11,由SCADA读取后再由SCADA写复位;二是让PLC在每次循环完成时把节拍和产量写入数据缓冲区,SCADA按块读取。前者适合单点采集,后者适合高频节拍。

三、SCADA与DIAView的采集与归档

DIAView是台达的SCADA/HMI组态软件,适合做现场画面与实时采集;SCADA侧则负责历史归档与对外接口。典型配置是:DIAView通过Modbus TCP或台达专用驱动连接PLC,采集周期设为100~200ms;对节拍、产量这类累计量,采用“变化记录”而非“定时记录”,即只有当CycleDone上升沿到来时才写一条记录,避免数据库被无效重复值淹没。

归档表建议至少包含以下字段:时间戳、设备编号、工单号、产品型号、节拍值、OK计数、NG计数、运行状态、采集质量标志。其中“采集质量标志”用于标记该条记录是正常采集、补采、还是插值,这是后续识别数据缺失的关键依据。

台达设备产能数据采集链路与异常识别 台达 PLC M0 运行状态 M10 循环完成 D100 节拍(0.01s) D200 OK计数 D201 NG计数 扫描周期约10ms DIADesigner 变量命名与地址绑定 ASM01_CycleDone ASM01_CycleTime ASM01_Output_OK 数据类型校验 BOOL / DINT / REAL DIAView / SCADA Modbus TCP 采集 周期 100~200ms 变化记录触发 实时画面与报警 采集质量标志 正常/补采/插值 节拍产量 数据库 时间戳 设备/工单 节拍/产量 质量标志 异常标记 数据缺失与异常识别规则 缺失类 连续3个采集周期无新值 CycleDone有上升沿 但节拍字段为空 异常类 节拍 < 0.3×标准节拍 节拍 > 3×标准节拍 产量计数回跳或跳变 一致性类 OK+NG ≠ 循环完成次数 运行状态为停机 但产量仍在增加

四、建立节拍与产量数据库

数据库表结构不必复杂,但字段语义必须固定。以下是一个可直接参考的建表示例(以MySQL为例,字段名与前述变量命名对应):

CREATE TABLE eq_cycle_output (
  id            BIGINT AUTO_INCREMENT PRIMARY KEY,
  ts            DATETIME(3)  NOT NULL COMMENT '采集时间戳',
  eq_code       VARCHAR(20)  NOT NULL COMMENT '设备编号',
  work_order    VARCHAR(30)           COMMENT '工单号',
  product_model VARCHAR(30)           COMMENT '产品型号',
  cycle_time_s  DECIMAL(8,3)          COMMENT '节拍,单位秒',
  output_ok     INT                   COMMENT 'OK累计',
  output_ng     INT                   COMMENT 'NG累计',
  run_status    TINYINT               COMMENT '0停机 1待机 2运行 3报警',
  quality_flag  TINYINT               COMMENT '0正常 1补采 2插值 3异常',
  INDEX idx_eq_ts (eq_code, ts)
);

写入策略上,建议采用“边沿触发写入”:SCADA检测到CycleDone由0变1时,读取当前节拍、OK、NG、状态,插入一条记录。这样一条记录对应一个真实节拍,后续做节拍分布、产能爬坡、瓶颈分析时不需要再做去重。

五、数据缺失与异常的识别方法

数据缺失通常有三种表现:一是时间戳断档,例如某设备连续5分钟没有新记录;二是节拍字段为空或为0;三是CycleDone有上升沿但数据库没有对应记录。第一种可用SQL按时间窗口统计记录数发现,第二种在写入时做非空校验,第三种需要在SCADA侧增加“采集失败计数器”,当PLC有完成信号而写入失败时累加,超过阈值触发报警。

数据异常则更多与工艺和信号质量有关。常见的判断规则包括:节拍小于标准节拍的30%(可能是信号抖动或重复触发)、节拍大于标准节拍的300%(可能是停机后恢复、卡料或人工干预)、OK+NG不等于循环完成次数(可能是计数寄存器被复位或地址错位)、运行状态为停机但产量仍在增加(可能是状态位定义错误或采集到了错误地址)。这些规则不需要复杂算法,用SQL或SCADA脚本即可实现。

注意:识别出异常后不要直接删除记录。应保留原始记录并打上quality_flag,否则会丢失设备真实行为。例如“节拍突然变短”有时不是干扰,而是设备实际在空跑,这恰恰是产能分析的重要线索。

六、一个可执行的最小验证闭环

体系搭好后,建议用以下方式做一次闭环验证:在DIADesigner中强制M10置位一次,观察DIAView画面是否出现新节拍;在数据库中查询最近1分钟该设备的记录数,确认与强制次数一致;再把D100人为改为0,确认quality_flag被标记为异常。若三步都能对应,说明从PLC到数据库的链路是通的,且异常识别规则生效。这个验证不需要真实生产,适合在设备停机或调试阶段完成。

采集体系的价值不在于“采了多少点”,而在于“每一条记录都能回答一个产能问题”。当节拍、产量、状态、质量标志四类字段稳定落库后,后续的节拍分布分析、产能瓶颈定位、OEE计算才有可靠的数据基础。