一台机床内存在两种不同的数据源
运行 Siemens 控制系统的加工中心并非单一数据源,而是两个,且行为不同。PLC 侧负责机床:门联锁、切削液、换刀装置、液压压力、主轴使能。CNC 侧负责运动:轴位置、进给速度、主轴转速、程序号、刀具偏置、报警代码。
工程师常把两者当作一条数据流,因为最终都写入同一个数据库。直到有人发现加工节拍读数与零件计数器相差两秒,问题才暴露。PLC 与 NC 内核的扫描速率不同,对加工循环起始时刻的定义也不同。
这种区分还有另一个原因。PLC 变量通常以扁平列表发布,可直接订阅。NC 变量位于结构化命名空间中,且随控制代际变化。两者都能读取,但需分别配置、分别诊断。
因此首要设计决策不是选哪种协议,而是每个数值归哪一侧所有。这一点弄错,再多的网关调优也无法弥补不匹配。
- 1PLC 侧离散与模拟机床状态,每几毫秒扫描一次
- 2CNC 侧来自 NC 内核的运动与程序数据,按请求或事件读取
- 3共享时钟没有统一时钟,两侧时间戳会逐渐漂移
读取 PLC 变量:扫描周期决定实际读取上限
PLC 程序按扫描周期运行:读取输入、执行逻辑、写入输出,然后重新开始。在典型机床控制器上,该周期为 1 ms 至 20 ms,取决于程序大小和处理器负载。读取的任何变量反映的是上一扫描边界的值,而非请求瞬间的值。
这是 PLC 侧数据的硬上限。若网关每 100 ms 轮询一个变量,你已经丢失了控制器中存在的细节。若每 10 ms 轮询,只会增加网络和 CPU 负载,收益不大,因为其间扫描本身只更新了几次。
对多数生产监控而言,100 ms 至 1 s 足够。你跟踪的是持续数秒或数分钟的状态:门打开、循环运行、报警激活。亚毫秒级 PLC 采样属于运动控制或安全逻辑,不用于报表数据管道。
实用规则是:轮询慢于扫描周期,快于你关心的最短事件。若换刀耗时 4 s 且需要捕捉,500 ms 轮询有足够余量;5 s 轮询可能完全漏掉。
- 1扫描周期多数机床 PLC 为 1–20 ms,决定数据新鲜度下限
- 2轮询间隔保持在扫描周期之上,避免无效流量
- 3事件持续时间轮询速度至少比必须捕捉的最短事件快 4 倍
NC 变量:按请求读取及其开销
NC 内核不像 PLC 那样发布变量列表。你按标识符请求特定变量,控制器返回数值。每次请求都消耗控制器处理时间,因此每 50 ms 请求 200 个变量的简单循环会拖慢操作面板,并可能触发看门狗限制。
良好做法是将变量分组为少量批量读取,而非大量单次读取。按所需间隔请求所需数据块,并保持总请求速率适中。许多集成商将 NC 侧数据定为 200 ms 至 1 s,对 OEE 足够快,对操作员又不可见。
有些数值更适合推送而非轮询。刀具寿命、程序结束和报警事件可在变化时由控制器发送,无需轮询每班只发生两次的事件。这降低负载并提高时间戳精度。
NC 变量的准确性还取决于请求的是哪个变量。指令位置与实际位置是不同变量。进给倍率与编程进给不同。选错变量,加工节拍分析会持续偏差。
- 1批量读取请求更少、更大,保持控制器负载低
- 2事件驱动推送刀具寿命和报警,而非轮询
- 3指令值与实际值两个独立变量,需明确选择
通过 OPC UA 从机床取出数值
OPC UA 是将数据从 Siemens 控制器传输到上层系统的常用方式。它提供可浏览的地址空间、带类型的数值,以及能在短暂网络中断后存活的会话模型。较新控制器原生支持;较旧控制器需中间加网关或通信处理器。
单个 OPC UA 服务器可以同时暴露 PLC 标签和 NC 变量,这很方便,但也容易出问题。把 20 ms 的 PLC 订阅和 2 s 的 NC 读取放在同一会话里,技术上没问题,但时间戳的质量差别很大。存储数值时,要一并存下来源和采样间隔。
网络设计比协议选择更重要。尽量把数据链路放在与控制网络分离的 VLAN 上。一个报表任务把机床的 PROFINET 流量所在的交换机占满,就是等着出生产事故。
对于没有原生 OPC UA 的老机床,标准做法是用一个小型边缘网关,它支持旧协议并以 OPC UA 重新发布。每台机床一个盒子,原有控制系统不动。
- 1原生 vs 网关新控制系统直接发布 OPC UA;老系统需要边缘盒子
- 2独立 VLAN控制网络绝不与批量报表流量共用
- 3存下采样间隔没有采样率的数值事后很难解读
边界:这套架构不适合的情况
数据采集不是免费的。每个订阅都消耗控制 CPU 时间和网络带宽。在处理器负载已接近上限的机床上,增加 50 个标签、100 ms 的订阅会把加工节拍推高并触发报警。上线前先测控制负载。
它也不适合高频波形采集。如果需要千赫兹级的振动或伺服电流波形,PLC 和 OPC UA 这条路是错的。用专用数据采集卡或驱动级 trace 功能,事后再导出缓冲区。
还有维护成本。NC 变量标识在不同代控制系统之间会变,有时固件版本之间也会变。基于硬编码地址的管道下次升级就会断。把映射放在配置表里,不要写进代码。
最后,先想清楚数据用来做什么。实时闭环控制需要确定性时序,应该留在机床上。报表、OEE 和可追溯性可以容忍秒级延迟,应该放在服务器上。把两个目标混在一条管道里,通常两个都做不好。
- 1检查 CPU 余量增加订阅前先测控制负载
- 2不用于波形kHz 级 trace 需要专用硬件,不是 OPC UA
- 3用配置,不用代码变量映射放在应用之外
当零件本身成为数据
数据采集通常止步于控制柜。但多数团队做它的原因,是想了解一个实体零件发生了什么。只有零件按足够紧的公差加工,工艺数据才有意义,这条链路才成立。
钜亮五金(GreatLight)在 127 台高精度 CNC 机床上加工生产零件,公差 ±0.005 mm(±0.0002 in),其中包括 16 台五轴联动加工中心和 16 台车铣复合中心。最大加工尺寸达 4,000 mm。表面粗糙度视工序在 Ra 0.2 μm 到 Ra 3.2 μm 之间。
对于运行可追溯性项目的团队,我们在 12 小时内报价并返回免费 DFM 分析,24 小时内可开始生产。零件 3–5 天发货。没有最小起订量,单个原型和 10,000 件批量走同一套流程。
我们加工 6061 和 7075 铝、304 和 17-4PH 不锈钢、Ti-6Al-4V 钛、Inconel,以及 PEEK、POM 等工程塑料。发货前 100% 检测,可按要求提供检测报告。上传资料保密,可签 NDA。
- 1公差±0.005 mm,可按要求提供检测报告
- 2规模一个原型到 10,000+ 件,无 MOQ
- 3周期12 小时报价,3–5 天发货
哪种采集路径适合你的需求
把需求匹配到它需要的来源和采样间隔。
| 要求 | 最佳来源 | 典型周期 | 注意事项 |
|---|---|---|---|
| 机床状态和报警 | PLC 标签 | 100 ms – 1 s | 扫描周期决定新鲜度下限 |
| 加工节拍和 OEE | NC 变量 | 200 ms – 1 s | 定义加工循环何时开始 |
| 刀具寿命跟踪 | NC 事件 | 变化时 | 轮询浪费控制负载 |
| 主轴负载趋势 | PLC 模拟量或驱动 | 500 ms – 2 s | 量程换算和滤波设置 |
| 振动或伺服轨迹 | 专用 DAQ 卡 | 1 – 50 kHz | 不要走 OPC UA |
| 零件可追溯性 | MES 加 NC 程序 ID | 按零件 | 跨来源时间戳对齐 |
工程师在确定链路前会问的问题
一个 OPC UA 服务器能同时暴露 PLC 标签和 NC 变量吗?
在多数当前西门子控制系统上可以。服务器提供可浏览的地址空间,同时包含 PLC 符号表和 NC 变量命名空间。
问题在采样率。PLC 订阅可能以 100 ms 运行,而 NC 读取以 1 s 运行。每个数值都要存下来源和采样间隔,下游分析才知道自己在看什么。
NC 变量实际能读多快?
比多数报表需求快,但不是免费的。每个请求都消耗控制处理时间,激进轮询会拖慢操作面板,还可能触发看门狗限制。
实用范围是 200 ms 到 1 s,采用分组批量读取。刀具寿命和报警这类事件型数据用推送,不要轮询。
老机床需要网关吗?
通常需要。没有原生 OPC UA 的控制系统需要边缘网关,它支持旧协议并把数值以 OPC UA 重新发布。
一般每台机床一个盒子。原有控制系统不动,避免把验证和质保问题带进项目。
时间戳不一致的最大原因是什么?
两个时钟。PLC、控制系统、网关和服务器各自维护自己的时间,而且会漂移。
让它们全部指向同一时间源,并把采集时间戳与控制时间戳分开记录。两者不一致时,你能看到,而不是靠猜。
采集流量是否应与机床网络共用?
不应共用。将报表和采集流量放在与 PROFINET 及其他控制流量分离的 VLAN 上。
一次大批量历史数据上传若占满共享交换机,会延迟控制帧。这会把报表任务变成生产事故。
下一次控制升级时哪里会出问题?
硬编码的 NC 变量地址。标识符在不同代控制系统之间会变,有时同一固件的不同版本之间也会变。
把映射保存在配置表中,无需重新构建应用即可编辑。上线前先在备用控制系统上测试映射。
