2. KUKA机器人系统架构与接口

在产线协同控制工程中,PLC 与 KUKA 机器人之间的配合并不是“两个设备互相发几个信号”这么简单。真正决定协同是否稳定的,是机器人控制系统的内部结构、程序组织方式、I/O 映射路径以及外部自动运行模式是否被正确配置。理解这一层架构,才能在后续处理“PLC 发启动、机器人不动作”“机器人到位信号延迟”“安全门打开后无法恢复自动”等问题时,快速定位到具体环节。

控制器结构:从 KRC 到现场总线的分层

KUKA 机器人控制系统以 KRC(KUKA Robot Controller)为核心,典型如 KRC4、KRC5。其结构可以理解为三层:控制核心层负责运动规划、轨迹插补、伺服驱动与安全监控;逻辑与程序层运行 KRL 程序、管理 I/O 状态与外部自动运行逻辑;通信接口层通过现场总线(PROFINET、EtherNet/IP、EtherCAT 等)与 PLC 交换数据。控制柜内部,KPC 负责 PC 侧运算与人机交互,ESC 或安全控制器负责安全信号处理,驱动模块直接连接各轴伺服电机。

对产线协同而言,最关键的是“外部信号进入机器人后,经过哪些环节才能影响运动”。以 PROFINET 为例,PLC 输出的控制字先写入机器人总线接口模块,再映射到 KRL 可访问的输入变量;机器人输出的状态字同样从 KRL 变量映射到总线输出区,最终被 PLC 读取。这条路径上的任何一环配置错误,都会表现为“信号发了但机器人没反应”。

KUKA 机器人系统架构与 PLC 协同信号路径 PLC 侧 控制字输出区 状态字输入区 安全信号 / 使能 PROFINET 主站 现场总线 PROFINET / EtherNet/IP KRC 控制柜 总线接口模块 输入/输出映射 KRL 程序层 CELL / SPS 逻辑 运动控制 插补 / 伺服 安全控制器 / ESC 急停、安全门、使能、模式选择 输出 映射 指令 状态反馈 外部自动运行模式(EXT)信号链 PLC 请求 $EXT_START 驱动使能 模式确认 EXT 模式 安全回路闭合 程序启动 CELL.SRC 调用作业程序 运动执行 轨迹运动 I/O 动作 完成 信号 关键条件:EXT 模式已选、安全回路闭合、驱动使能有效、$EXT_START 上升沿触发 任一条件不满足 → 机器人保持等待,PLC 侧应收到“未就绪”状态字

KRL 程序组织:CELL 与作业程序的分工

KRL 程序通常分为两层:CELL.SRC 作为外部自动运行的入口程序,负责模式判断、调用具体作业程序、处理中断与恢复;作业程序(如 PICK.SRC、WELD.SRC)负责具体运动轨迹与工艺动作。CELL 程序不直接写死运动点,而是通过 CASE 或 IF 分支根据 PLC 传来的程序号选择对应作业。这种组织方式的好处是:PLC 只需改变程序号,就能切换机器人任务,而不需要修改机器人程序结构。

一个典型的 CELL 程序结构如下:

DEF CELL ( )
  ; 外部自动运行入口
  IF $MODE_OP == #EX THEN
    ; 等待 PLC 程序号
    WAIT FOR $IN[1] == TRUE
    SWITCH $IN[2] ; 程序选择位
      CASE 1
        PICK()   ; 调用抓取程序
      CASE 2
        PLACE()  ; 调用放置程序
      DEFAULT
        ; 无有效程序号,保持等待
    ENDSWITCH
  ENDIF
END

这里需要注意:$IN[1]、$IN[2] 是机器人输入变量,它们必须与总线接口模块的输入映射一致。如果 PLC 侧发送的是 I0.0、I0.1,而机器人侧映射到了 $IN[10]、$IN[11],程序就会等待错误的信号。因此,I/O 映射表是协同调试的第一份核对文件。

I/O 系统与现场总线接口

KUKA 的 I/O 系统分为本地 I/O 和总线 I/O。本地 I/O 通常用于控制柜内的安全信号、使能信号;总线 I/O 用于与 PLC 交换产线级信号。以 PROFINET 为例,配置时需要确定:设备名称、IP 地址、输入/输出字节长度、映射起始地址。假设 PLC 侧分配机器人输入区为 IB100~IB107(8 字节),输出区为 QB100~QB107,那么机器人侧对应的 $IN[1]~$IN[64] 和 $OUT[1]~$OUT[64] 就应与这 8 字节一一对应。

实际调试中,建议先做“位对位”验证:PLC 强制输出 Q100.0 为 1,观察机器人 $IN[1] 是否变为 TRUE;机器人强制 $OUT[1] 为 TRUE,观察 PLC I100.0 是否变为 1。这一步能排除地址偏移、字节序、映射表错误等常见问题。

外部自动运行模式的关键条件

EXT 模式不是“选了就能动”。它需要同时满足:模式选择开关在 EXT 位置、安全回路闭合(急停释放、安全门关闭)、驱动使能有效、$EXT_START 收到上升沿。PLC 侧通常通过控制字发送启动请求,机器人侧在 CELL 程序中等待该信号。若机器人未进入 EXT 模式,PLC 发送启动信号后机器人不会响应,此时应检查机器人示教器上的模式显示和 $MODE_OP 变量。

调试提示:当 PLC 发启动但机器人不动作时,按以下顺序排查:① 机器人是否处于 EXT 模式;② 安全回路是否闭合;③ 驱动使能是否有效;④ $EXT_START 是否收到上升沿;⑤ CELL 程序是否在等待正确的程序号;⑥ I/O 映射地址是否一致。这六步覆盖了从 PLC 到机器人运动的大部分断点。

协同控制中的信号约定示例

以下是一份简化的 PLC 与 KUKA 机器人信号约定表,用于说明实际工程中常见的信号分配方式。表中地址为示例,实际项目需根据总线配置调整。

信号名称 方向 PLC 地址 机器人变量 说明
启动请求 PLC → 机器人 Q100.0 $IN[1] 上升沿触发 EXT 启动
程序号 bit0 PLC → 机器人 Q100.1 $IN[2] 选择作业程序
程序号 bit1 PLC → 机器人 Q100.2 $IN[3] 选择作业程序
机器人就绪 机器人 → PLC I100.0 $OUT[1] EXT 模式且无故障
循环完成 机器人 → PLC I100.1 $OUT[2] 一个作业周期结束
故障报警 机器人 → PLC I100.2 $OUT[3] 机器人侧故障汇总

这张表的价值在于:它把 PLC 编程、机器人编程和现场接线三方的依据统一到同一份文档上。产线协同调试时,任何一方修改地址,都必须同步更新这张表,否则就会出现“程序都对、信号不通”的典型问题。

从架构到调试:一个可复用的检查顺序

综合以上内容,当面对一台新接入产线的 KUKA 机器人时,建议按以下顺序建立协同能力:先确认控制器与总线接口模块的物理连接和 IP 配置;再核对 I/O 映射表,确保 PLC 地址与机器人变量一一对应;然后编写并加载 CELL 程序,确认 EXT 模式下的程序调用逻辑;最后进行单信号强制测试和完整循环测试。每一步都应有明确的观察点:物理连接看指示灯,映射看变量状态,程序看示教器输出,循环看 PLC 侧完成信号。这样,机器人系统架构就不再是抽象概念,而是可逐层验证的工程对象。