一、自动线数据采集的痛点与目标
在柔性线、刀具线或自动线项目中,节拍与报警是最基础也最关键的实时数据。节拍直接反映产线效率,报警则关联设备健康与质量追溯。然而,许多车间仍依赖人工秒表计时和纸质报警记录,数据滞后且不准确。采集的目标是:从PLC/数控系统中自动获取每个工位的循环时间、停机时长、报警代码与发生时间,并实时推送至MES或边缘平台。
二、节拍采集的三种主流方式
1. 基于PLC信号采集
对于由PLC(如西门子S7-1200/1500、三菱FX5U、欧姆龙NJ系列)控制的自动线,最直接的方式是读取PLC内部的节拍计时器或工位完成信号。具体步骤:
- 确定信号点:与电气工程师确认每个工位的“循环开始”和“循环结束”信号地址(通常为M或DB块中的位)。
- 配置OPC UA服务器:在PLC侧启用OPC UA服务(如西门子S7-1200固件V4.2以上支持),并开放所需变量的读取权限。注意:IP地址、端口号、安全策略需以现场网络规划为准,不可使用默认配置。
- 边缘网关采集:部署支持OPC UA Client的工业网关(如树莓派加Codesys、或专用边缘盒子),按固定周期(如100ms)轮询信号状态,计算相邻两次“结束”信号的时间差即为节拍。
- 异常处理:若信号长时间未翻转,需判断设备停机或信号丢失,并触发报警。
2. 基于数控系统宏变量
对于含数控机床(如FANUC、Siemens 840D、三菱M80)的自动线,可通过读取系统宏变量获取加工时间。例如:FANUC的#3001为毫秒计时器,#3011为当前日期。采集方式:
- 使用FOCAS/Ethernet库(FANUC)或Sinumerik Operate接口(Siemens)通过TCP/IP读取。
- 注意:宏变量地址因系统版本而异,需查阅对应机床手册,且部分变量为只读或受写保护。
- 建议在CNC侧设置一个M代码在程序开始和结束处触发标志位,配合PLC信号实现更精准的节拍。
3. 基于视觉或传感器
当无法从控制系统直接获取信号时(如老旧设备或第三方机械手),可在关键工位安装光电传感器或视觉相机,通过检测工件通过来推算节拍。此方式需注意传感器安装位置、抗干扰(如粉尘、油雾)以及信号滤波。
三、报警采集的分层策略
报警数据比节拍更复杂,因为报警来源多样:PLC程序内报警、驱动器报警、数控系统报警、第三方设备报警等。建议分层采集:
1. PLC报警(最基础)
PLC程序中通常有报警字(如DB100.DBX0.0~DB100.DBX31.7),每个位对应一条报警。采集步骤:
- 从电气图纸或PLC程序中导出报警地址与文本对应表(如“DB100.DBX0.0=液压站油温过高”)。
- 通过OPC UA或Modbus TCP读取报警字,按位解析。
- 记录报警发生时间、恢复时间(位从1变0),形成报警履历。
2. 驱动器/变频器报警
如西门子G120、S120等驱动器可通过PROFINET或现场总线将报警代码发送至PLC,再由PLC转发。也可直接通过驱动器自带的Web服务器或参数通道读取。注意:不同驱动器的报警码含义不同,需建立统一映射表。
3. 数控系统报警
数控系统报警通常通过OPC UA或专用SDK获取。例如:Siemens 840D的报警变量位于NC变量“/Channel/Spindle/ActAlarm”等。采集时注意报警类型(如“报警”、“警告”、“信息”)的区分,避免信息过载。
四、数据清洗与MES对接
原始数据不能直接入库,需进行以下处理:
- 节拍有效性过滤:剔除因换刀、首件检验、人工干预导致的异常节拍(如超过设定上限3倍的数据)。
- 报警分级:按严重程度分为停机报警、警告、信息,并设定不同的推送策略(如停机报警立即通知维护人员)。
- 时间同步:所有设备与采集服务器需通过NTP同步时间,确保报警时间准确。
- MES接口:采用RESTful API或MQTT将清洗后的数据发送至MES系统的设备绩效模块(OEE)或质量追溯模块。数据格式建议JSON,包含:设备ID、工位ID、节拍值(ms)、报警代码、报警文本、开始时间、结束时间。
五、实施注意事项
- 网络安全:OPC UA建议启用证书加密,避免在车间网络中使用明文通信。PLC的IP地址应规划在独立网段,并通过防火墙与办公网隔离。
- 性能影响:轮询频率不宜过高(建议200ms以上),避免加重PLC CPU负载。对于老旧PLC,可考虑增加一台数据采集专用PLC。
- 冗余设计:关键产线建议部署双网关或边缘服务器,避免单点故障导致数据丢失。
- 文档化:所有信号地址、变量映射、报警对照表必须形成文档并随设备变更同步更新。
六、总结
自动线节拍与报警采集不是简单的“读变量”,而是需要结合电气、工艺、IT知识的系统工程。从信号确认到数据上云,每一步都需严谨测试。Bit Factory 提供的智能车间方案,正是帮助工程师将代码与车间无缝连接,让数据真正驱动效率提升。



