1. Sysmac平台与生产数据采集概述
在智能制造体系中,设备层的数据能否被稳定、实时、结构化地采集上来,直接决定了上层MES、SCADA、质量追溯与OEE分析的可信度。欧姆龙Sysmac自动化平台正是围绕这一需求构建的一体化控制与信息平台:它把控制器、运动控制、视觉、机器人、安全、I/O与网络通信统一在同一工程环境Sysmac Studio中,使"控制"与"数据"不再是两套割裂的系统。理解Sysmac的架构分层、NJ/NX控制器的数据能力、EtherCAT与EtherNet/IP的分工,是后续所有采集方案设计的基础。
一、Sysmac平台的架构分层
Sysmac平台可以按"工程层—控制层—设备层—信息层"四个层次来理解。工程层是Sysmac Studio,一个工程文件同时管理NJ/NX控制器、EtherCAT从站、HMI、运动轴与安全单元,变量、数据类型、网络配置共享同一套定义,这是数据可采集的前提——变量名与数据类型在控制器内是"已知"的,而不是靠地址猜测。
控制层是NJ/NX系列控制器,承担逻辑运算、运动控制与数据加工。设备层由EtherCAT从站构成,包括伺服驱动器、远程I/O、视觉传感器、编码器等,负责毫秒级的实时同步。信息层则通过EtherNet/IP、OPC UA或数据库通信,把控制器内的变量送往MES、数据库或上位机。四层之间不是简单串联:EtherCAT保证设备层实时性,EtherNet/IP保证信息层通用性,控制器是两者的交汇点,也是数据采集的"源头"。
二、NJ与NX控制器的定位差异
NJ系列与NX系列都运行相同的Sysmac控制引擎,指令系统、运动控制功能块、变量规范基本一致,差异主要在"信息处理能力"与"扩展形态"上。NJ系列以"机器控制"为核心,适合单机设备、包装机、机床等以逻辑与运动为主的场景,通过内置EtherNet/IP端口与上位机交换数据。NX系列(如NX102、NX1P2)在控制之外强化了信息处理与安全控制,支持更丰富的数据记录、数据库连接指令(如DbConnection)与OPC UA服务器功能,更适合需要直接与数据库、MES交互的产线级节点。
对数据采集而言,两者最关键的共同点是:所有需要被采集的量,都应以"全局变量"的形式在控制器内定义,并赋予明确的数据类型(BOOL、INT、REAL、STRING、结构体、数组)。例如定义一个结构体 ST_StationData,包含 iGoodCount、iNgCount、rCycleTime、sRecipeNo、tUpdateTime 五个成员,采集端只需按结构体整体读取,就能一次拿到一个工位的完整生产数据,避免逐点拼凑带来的错位与丢点。
三、EtherCAT与EtherNet/IP的分工
这是初学者最容易混淆的一点:两者都基于以太网物理层,但服务的目标完全不同。
| 对比项 | EtherCAT | EtherNet/IP |
|---|---|---|
| 主要用途 | 设备层实时控制 | 信息层数据交换 |
| 典型周期 | 125 μs ~ 1 ms | 1 ms ~ 100 ms(依RPI设定) |
| 数据对象 | PDO:位置、速度、I/O状态 | 标签/变量:计数、节拍、配方号 |
| 采集角色 | 提供实时过程量 | 把结果送往MES/数据库 |
实际工程中,EtherCAT负责"把设备状态实时收进控制器",EtherNet/IP负责"把控制器里的生产结果送出去"。采集方案设计时,不应让EtherNet/IP去承担高频过程量的传输,也不应让EtherCAT去承载大块的历史数据,否则会破坏实时性或造成带宽浪费。
四、生产数据采集在智能制造中的定位与典型场景
生产数据采集处在"设备自动化"与"生产信息化"的接缝处。它的价值不是把数据搬走,而是把设备内部的状态、计数、节拍、质量、报警、配方六类信息,转化为带时间戳、可追溯、可统计的结构化记录。典型场景包括:
- 产量与OEE统计:采集每台设备的合格数、不良数、运行/停机时间,按班次汇总,计算可用率、性能率、合格率。
- 质量追溯:把工位号、配方号、关键工艺参数(如拧紧扭矩、压装力)与产品序列号绑定,实现单件追溯。
- 设备状态监控与预测维护:采集伺服负载率、报警代码、运行小时数,用于趋势分析与预警。
- 配方下发与防错:由MES下发配方号,控制器校验后切换参数,采集端回传实际生效配方,防止用错料、装错件。
五、一个最小可用的采集示例
假设一台NX102控制的装配工位,需要把每件产品的生产记录上传。可在控制器内定义如下结构体变量并映射到EtherNet/IP标签:
TYPE ST_ProductRecord :
STRUCT
sSerialNo : STRING[20]; // 产品序列号
sRecipeNo : STRING[10]; // 配方号
iTorque : INT; // 拧紧扭矩 0.01N·m
iResult : BOOL; // TRUE=合格
tFinishTime : DATE_AND_TIME;// 完成时间戳
END_STRUCT
END_TYPE
VAR_GLOBAL
stRecord : ST_ProductRecord;
iGoodCnt : UINT := 0;
iNgCnt : UINT := 0;
END_VAR
当产品完成装配,程序把当前扭矩、结果、时间写入 stRecord,并按结果累加 iGoodCnt 或 iNgCnt。上位机通过EtherNet/IP按周期读取该结构体,即可获得逐件记录与累计计数。判断采集是否正常,可观察三个现象:序列号不重复、时间戳单调递增、合格数与不良数之和等于实际过站数。若出现时间戳跳变或计数不连续,通常说明采集周期设置过长或存在丢包,需要检查RPI与网络负载。