4. 数控系统与产线通信基础

在数控产线联调中,通信不是“把网线插上”这么简单。CNC、PLC、机器人、上位机四类设备各自承担不同职责:CNC负责轨迹插补与伺服控制,PLC负责逻辑联锁与安全信号,机器人负责搬运、上下料或焊接等动作,上位机负责订单下发、状态监控与数据归档。它们之间的通信必须解决三个层面的问题:物理接口是否匹配、协议是否互通、数据语义是否一致。任何一层不匹配,联调时都会表现为“连不上”“读不到”“动作不触发”或“状态不同步”。

一、四类设备的通信角色与数据交互需求

从数据流角度看,上位机通常是产线的“指挥层”,向下发送工单、程序号、配方参数和启动指令;CNC和机器人是“执行层”,接收指令并回传运行状态、报警、坐标和完成信号;PLC则常作为“联锁与中转层”,既直接采集按钮、安全门、气缸等I/O信号,又通过总线与CNC、机器人交换握手信号。典型的数据交互需求可归纳为:

  • 控制类数据:启动、停止、复位、模式切换、程序选择,要求实时性高、时序明确。
  • 状态类数据:运行中、暂停、报警、到位、完成,要求周期刷新且不能丢帧。
  • 参数类数据:刀具补偿、工件坐标、速度倍率、机器人目标点位,要求写入后能回读确认。
  • 过程类数据:主轴负载、进给速度、关节角度、节拍时间,用于监控与追溯,实时性可稍低。

这些数据并非都走同一条通道。安全信号必须走硬线或安全总线,实时控制信号走现场总线,而工单和追溯数据可以走以太网。联调前先画清“谁给谁什么数据、多久一次、丢了会怎样”,比盲目接线更有效。

CNC / PLC / 机器人 / 上位机 通信拓扑与数据交互 上位机(MES / SCADA) 工单下发 · 状态监控 · 数据归档 OPC UA / TCP FOCAS / MTConnect Socket / 以太网 PLC 逻辑联锁 · 安全信号 · I/O采集 PROFINET / EtherCAT / Modbus TCP CNC 数控系统 轨迹插补 · 伺服控制 · 报警 PROFINET / EtherCAT / FOCAS 工业机器人 搬运 · 上下料 · 焊接 EtherCAT / PROFINET / Socket 握手 联锁 现场设备层:伺服驱动器 · 变频器 · 气缸阀岛 · 安全门 · 光栅 · 接近开关 硬线 I/O 或现场总线从站,由 PLC / CNC 直接控制 图例: 上位机管理数据流 控制/握手信号 状态/反馈信号 注:安全信号(急停、安全门)必须走硬线或安全总线,不依赖普通以太网。

二、接口类型与协议选择

物理接口决定了“能不能接”,协议决定了“能不能懂”。产线上常见的接口与协议组合如下:

接口类型 典型协议 常用设备 实时性 适用数据
以太网 RJ45 TCP/IP、OPC UA、Modbus TCP 上位机、PLC、机器人控制器 10~100 ms 工单、状态、追溯数据
工业以太网 PROFINET、EtherCAT、EtherNet/IP PLC、CNC、机器人、远程I/O 1~10 ms 实时控制、联锁、I/O
现场总线 Modbus RTU、CANopen、CC-Link 变频器、阀岛、传感器 5~50 ms 参数读写、状态采集
硬线 I/O 24V DC 数字量/模拟量 安全门、急停、指示灯 <1 ms 安全信号、关键联锁
串口 RS-232 / RS-485 老式CNC、条码枪、称重仪 50~200 ms 程序传输、简单数据采集

选择协议时,先看设备支持什么,再看数据需求。例如,CNC与PLC之间做“加工完成—允许下料”的握手,用PROFINET或EtherCAT的周期I/O最稳妥;上位机采集CNC的刀具寿命和报警历史,用FOCAS或MTConnect更合适;机器人接收上位机的目标点位,若机器人支持EtherNet/IP,可直接与PLC交换,不必绕道上位机。

三、数据交互的时序与握手逻辑

通信协议只保证“报文能到”,不保证“动作按顺序发生”。联调中最常见的问题是:上位机发了启动,CNC还没准备好,机器人已经开始取件,结果撞机。因此必须设计明确的握手时序。以“CNC加工完成→机器人下料→CNC允许下一件”为例,典型握手逻辑如下:

  1. CNC加工完成后,将“加工完成”标志位置1,并保持。
  2. PLC周期读取该标志,确认机器人处于“等待下料”状态且安全门关闭。
  3. PLC向机器人发送“允许下料”信号,机器人启动取件程序。
  4. 机器人取件完成,向PLC回送“下料完成”信号。
  5. PLC确认“下料完成”后,向CNC发送“允许下一件”信号,CNC复位“加工完成”标志,开始下一循环。

这个过程中,每个信号都必须有“置位—确认—复位”的完整闭环。如果只用脉冲信号而不做确认,网络抖动或PLC扫描周期错位就会导致丢步。实际配置时,建议在PLC中为每个握手信号分配独立的DB块或M区地址,并在上位机画面上显示每个信号的状态,便于联调时逐位排查。

联调提示:握手信号建议采用“电平保持+上升沿触发”的方式,而不是窄脉冲。PLC扫描周期通常为1~10 ms,若脉冲宽度小于扫描周期,信号可能被漏读。对于安全相关信号,必须独立于普通通信,走硬线或安全PLC。

四、通信参数配置示例

以下以一台西门子828D CNC、一台S7-1500 PLC、一台FANUC机器人、一台上位机为例,给出联调时常用的通信参数配置片段。这些参数属于教学示例,实际项目中需根据设备手册和现场网络规划调整。

# PLC侧 PROFINET 设备名称与IP规划(示例)
PLC_1:    192.168.10.1   /24   设备名: plc-line1
CNC_828D: 192.168.10.11  /24   设备名: cnc-828d
ROBOT:    192.168.10.21  /24   设备名: robot-fanuc
HMI:      192.168.10.31  /24   设备名: hmi-line1

# CNC与PLC握手信号地址映射(示例)
DB100.DBX0.0  CNC_加工完成
DB100.DBX0.1  CNC_允许下一件
DB100.DBX0.2  CNC_报警
DB100.DBX0.3  CNC_运行中

# 机器人侧 EtherNet/IP 输入输出字节(示例)
Input  Byte0: PLC_允许下料
Input  Byte1: PLC_急停复位
Output Byte0: 机器人_下料完成
Output Byte1: 机器人_报警
Output Byte2: 机器人_当前程序号

配置完成后,不要直接跑自动流程。先用手动模式逐位强制信号,观察对方设备是否收到、画面是否变化、动作是否触发。例如,在PLC中强制“CNC_允许下一件”为1,观察CNC是否复位“加工完成”标志;在机器人示教器上查看输入字节是否变为1。这种“逐位对点”的方法能快速定位是网络问题、地址映射问题还是逻辑问题。

五、常见通信故障与排查方向

联调现场通信故障大致分三类:物理层不通(网线、交换机、IP冲突)、协议层不匹配(波特率、数据位、站号、GSD文件版本)、数据层不一致(字节序、地址偏移、信号极性)。排查时按“先物理、再协议、后数据”的顺序,避免一上来就改程序。例如,PLC能ping通CNC但读不到数据,先检查PROFINET设备名是否一致、GSD文件是否匹配;若字节序反了,32位整数会变成高位在前,表现为数值巨大或为负,此时需在PLC或上位机中做字节交换。

注意:不同厂商对“急停”“安全门”等安全信号的处理方式不同。安全信号不得仅依赖普通以太网或上位机软件逻辑,必须由安全继电器、安全PLC或硬线回路直接实现。通信只用于状态显示和报警记录,不能替代安全回路。

掌握以上通信基础后,联调时就能从“凭感觉试”转向“按数据流查”。先明确每台设备发什么、收什么、多久一次、丢了怎么办,再选择匹配的接口和协议,最后用逐位对点的方法验证。这样,CNC、PLC、机器人、上位机之间的通信才能从“能连上”走到“能稳定协同”。