4. 数控系统与产线通信基础
在数控产线联调中,通信不是“把网线插上”这么简单。CNC、PLC、机器人、上位机四类设备各自承担不同职责:CNC负责轨迹插补与伺服控制,PLC负责逻辑联锁与安全信号,机器人负责搬运、上下料或焊接等动作,上位机负责订单下发、状态监控与数据归档。它们之间的通信必须解决三个层面的问题:物理接口是否匹配、协议是否互通、数据语义是否一致。任何一层不匹配,联调时都会表现为“连不上”“读不到”“动作不触发”或“状态不同步”。
一、四类设备的通信角色与数据交互需求
从数据流角度看,上位机通常是产线的“指挥层”,向下发送工单、程序号、配方参数和启动指令;CNC和机器人是“执行层”,接收指令并回传运行状态、报警、坐标和完成信号;PLC则常作为“联锁与中转层”,既直接采集按钮、安全门、气缸等I/O信号,又通过总线与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允许下一件”为例,典型握手逻辑如下:
- CNC加工完成后,将“加工完成”标志位置1,并保持。
- PLC周期读取该标志,确认机器人处于“等待下料”状态且安全门关闭。
- PLC向机器人发送“允许下料”信号,机器人启动取件程序。
- 机器人取件完成,向PLC回送“下料完成”信号。
- PLC确认“下料完成”后,向CNC发送“允许下一件”信号,CNC复位“加工完成”标志,开始下一循环。
这个过程中,每个信号都必须有“置位—确认—复位”的完整闭环。如果只用脉冲信号而不做确认,网络抖动或PLC扫描周期错位就会导致丢步。实际配置时,建议在PLC中为每个握手信号分配独立的DB块或M区地址,并在上位机画面上显示每个信号的状态,便于联调时逐位排查。
四、通信参数配置示例
以下以一台西门子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或上位机中做字节交换。
掌握以上通信基础后,联调时就能从“凭感觉试”转向“按数据流查”。先明确每台设备发什么、收什么、多久一次、丢了怎么办,再选择匹配的接口和协议,最后用逐位对点的方法验证。这样,CNC、PLC、机器人、上位机之间的通信才能从“能连上”走到“能稳定协同”。