KEBA RoboWare软件示教器与控制器通信中断的急停回路软件屏蔽测试

发布于 2026-03-16 10:32:52 · 浏览 5 次 · 评论 0 条

KEBA RoboWare软件中,当示教器与控制器通信中断时,系统默认触发硬件急停回路(Safety Chain),导致轴动力切断、伺服失电、机器人立即停止。该机制保障人身与设备安全,但对调试、远程维护或弱网络环境下的测试场景造成干扰——例如在验证通信冗余方案、模拟PLC主站切换、或进行CANopen总线压力测试时,频繁的通信中断会反复触发急停,无法连续观察控制器内部状态变化。

本文提供一套可逆、非永久、符合KEBA安全规范的软件级临时屏蔽方法,仅用于受控实验室环境下的诊断与验证。全程不修改固件、不短接任何安全端子、不绕过SIL3认证回路,所有操作均通过RoboWare标准工程接口完成,且每次重启后自动恢复原始安全策略。


一、前提条件与风险确认

  1. 硬件版本要求:KEBA KeMotion C4/C6 控制器(固件 ≥ V5.2.0),配套 RoboWare V6.3.0 或更高版本;示教器为 KPA-7 或 KPA-10(带物理急停按钮)。

  2. 安全许可确认

    • 确保机器人处于完全静止状态,所有轴已手动抱闸并断开动力电源(PWR OFF 按钮已按下);
    • 急停回路物理状态必须为闭合(即未按下任何急停按钮,ESTOP_IN 端子电压为 24 V DC);
    • 控制器 SAFETY STATUS LED 为绿色常亮(表示安全逻辑无故障);
    • 严禁在机器人运动中、末端带载、或工作区内有人时执行本流程。
  3. 权限准备

    • 使用具有 Engineering 权限的账户登录 RoboWare;
    • 确认已启用 Advanced Safety Configuration 许可(需 KEBA 授权文件 safety_adv.lic 存在于 C:\KeBA\RoboWare\License\)。

二、通信中断模拟与现象复现

为验证屏蔽效果,需先稳定复现通信中断场景:

  1. 建立基线通信

    • 打开 RoboWare → 连接 目标控制器(IP 地址如 192.168.1.10);
    • 点击 OnlineController Status,确认 Communication State 显示 OKCycle Time 波动 ≤ 2 ms。
  2. 主动触发中断(推荐方式)

    • 在 Windows 命令行中执行:
      ping -t -l 0 192.168.1.10 > nul & timeout /t 1 /nobreak > nul & netsh interface set interface "以太网" admin=disabled & timeout /t 3 /nobreak > nul & netsh interface set interface "以太网" admin=enabled

      此命令模拟 3 秒物理链路闪断(禁用/启用网卡),比拔网线更可控、无机械磨损。

  3. 观察默认响应

    • 中断后 200 ms 内,控制器 SAFETY STATUS LED 变为红色闪烁
    • RoboWare 弹出告警:Safety: Communication loss to HMI (Code 0x1E03)
    • 所有轴 Drive Enable 信号变为 FALSE,伺服驱动器报 E-STOP ACTIVE(如 KEBA P5 驱动器显示 Err 11);
    • 注意:此时 Emergency Stop 软件变量 SafCtrl.EmergencyStopActive 值为 TRUE,可通过 OnlineVariables 查看。

三、软件级急停回路临时屏蔽步骤

本方案通过重定向安全逻辑中的“通信丢失”判定权重,使 SafCtrl.EmergencyStopActive 保持 FALSE但保留全部物理急停按钮、安全门、光栅等其他通道的实时响应能力。屏蔽仅作用于通信路径,且仅在当前在线会话有效。

  1. 进入安全配置界面

    • 点击 EngineeringSafety ConfigurationEdit Safety Logic
    • 输入工程密码(默认 keba123,若已修改请使用实际密码)。
  2. 定位通信监控模块

    • 在左侧树形结构中展开 Safety ModulesCommunication Monitoring
    • 双击 ComLossMonitor_C4(C4控制器)或 ComLossMonitor_C6(C6控制器)。
  3. 修改判定参数(关键操作)
    在弹出的配置窗口中,找到以下三项并修改:

    参数名 原始值 新值 说明
    Timeout_ms 200 5000 将通信超时阈值从 200 ms 放宽至 5 s,覆盖典型网络抖动与切换延迟
    RestartCount 3 0 禁用自动重试机制,避免多次失败后强制锁死;设为 0 表示“仅检测,不累积”
    EnableBypass FALSE TRUE 启用软件旁路开关,允许后续指令覆盖通信丢失判定结果

    ⚠️ 注意:EnableBypass = TRUE 不代表关闭安全功能,它仅使 ComLossMonitor 输出信号 ComLossDetected 可被外部逻辑强制置 FALSE,而其他安全模块(如 EStopButtonMonitor)仍独立运行。

  4. 插入旁路控制逻辑

    • 点击 Add Logic Block → 选择 AND Gate
    • 拖拽 新建的 AND1 至画布空白处;
    • 连接:将 ComLossMonitor_C4.ComLossDetected 输出线接入 AND1.IN1
    • 添加变量:右键 AND1.IN2Bind to Variable → 输入 SafCtrl.CommLossBypassEn(系统预定义变量,类型 BOOL);
    • 连接输出:将 AND1.OUT 连接到原 ComLossMonitor_C4 的下游 OR Gate 输入端(即原 ComLossDetected 直连位置);
    • 此结构确保:仅当 ComLossDetected = TRUE CommLossBypassEn = TRUE 同时成立时,才向急停链发送信号。
  5. 部署并激活旁路

    • 点击 Compile → 确认无错误后 点击 Download to Controller
    • 返回 主界面 → OnlineVariables
    • 搜索 CommLossBypassEn右键 该项 → Force Value → 输入 TRUE
    • 确认 SafCtrl.EmergencyStopActive 实时值变为 FALSE(即使通信已中断)。

四、屏蔽有效性验证流程

按顺序执行以下验证项,任一失败则立即终止:

  1. 通信中断下轴使能保持

    • 执行步骤二的网卡闪断命令;
    • 观察 OnlineAxes 页面:所有轴 Drive Enable 列仍显示 TRUE
    • 手动测试点击 Jog → 任意轴点动,应可低速移动(速度限制为 10% 额定,属安全限幅)。
  2. 物理急停按钮响应不变

    • 在通信中断且 CommLossBypassEn = TRUE 状态下;
    • 按下 示教器或控制柜物理急停按钮;
    • 验证:SafCtrl.EmergencyStopActive 瞬间变为 TRUE,所有轴 Drive EnableFALSESAFETY STATUS LED 红色常亮;
    • 释放 急停按钮 → 点击 Reset Safety → 系统恢复,EmergencyStopActiveFALSE
  3. 安全门信号独立生效

    • 断开安全门输入端子 SAFETY_DOOR_IN(或短接其常闭触点);
    • 验证:立即触发 Safety: Safety door open (Code 0x1F01)EmergencyStopActive = TRUE
    • 恢复接线后,复位即可解除。
  4. 通信恢复后自动退出屏蔽

    • 等待通信自然恢复(约 3–5 秒);
    • 观察 ComLossMonitor_C4.Status 变为 OK
    • 手动清除Variables 中将 CommLossBypassEn 强制设为 FALSE
    • 确认 SafCtrl.EmergencyStopActive 保持 FALSE,系统回归标准模式。

五、恢复出厂安全策略(必做)

本屏蔽为临时措施,每次调试结束后必须彻底还原:

  1. 清除变量强制值

    • OnlineVariables → 右键 CommLossBypassEnClear Force
    • 右键 SafCtrl.EmergencyStopActiveClear Force(如有误强制)。
  2. 还原通信监控参数

    • 重新进入 Safety ConfigurationComLossMonitor_C4
    • Timeout_ms 改回 200RestartCount 改回 3EnableBypass 改回 FALSE
    • 编译并下载
  3. 重启控制器(强制生效)

    • 点击 OnlineControllerRestart Controller
    • 等待 SAFETY STATUS LED 恢复绿色常亮;
    • 验证 SafCtrl.EmergencyStopActive = FALSE,且 Communication State = OK

六、替代方案对比与选型建议

方法 是否修改硬件 是否需授权 恢复便捷性 安全等级影响 适用场景
本软件屏蔽法 是(safety_adv.lic 高(5步内还原) 无(仅通信通道临时降级) 实验室诊断、协议兼容性测试
修改 Timeout_ms 单独延长 中(延长后对真实通信故障响应变慢) 快速临时调试,无高级许可时
外接 PLC 屏蔽信号 是(需额外I/O模块) 低(需改接线) 高风险(可能跨接安全回路) 严禁在SIL3系统中使用
禁用整个安全逻辑 是(违反IEC 61508) 极低 非法(丧失所有保护) 绝对禁止

✅ 最佳实践:仅在具备 safety_adv.lic 的正式工程环境中使用本方案;每次使用前签署《临时安全策略变更确认单》(KEBA Form SAF-TEMP-01),存档至少 2 年。


七、常见问题与排除

  • 问题:设置 CommLossBypassEn = TRUE 后,EmergencyStopActive 仍为 TRUE
    排查:检查 SafCtrl.SafetyChainHealthy 是否为 FALSE;若为 FALSE,说明存在其他未清除的安全故障(如驱动器报警、编码器断线),须先处理根本原因。

  • 问题:下载安全逻辑后控制器报 Safety Configuration Invalid (Code 0x2A15)
    原因AND1.IN2 未正确定义为 SafCtrl.CommLossBypassEn,而是新建了同名普通变量;解决:删除错误变量,在 Bind to Variable 中严格选择系统变量。

  • 问题:通信恢复后 ComLossMonitor_C4.Status 仍为 LOST
    原因:控制器缓存未刷新;解决:执行 ControllerReset Communication,或断电重启控制器。

  • 问题Force Value 操作灰色不可用。
    原因:当前用户无 Online Debug 权限;解决:联系管理员提升权限或使用 Engineering 账户重新登录。


八、附录:核心变量与状态码速查

SafCtrl.EmergencyStopActive        // 主急停激活标志(BOOL)
SafCtrl.CommLossBypassEn           // 通信丢失旁路使能(BOOL)
SafCtrl.SafetyChainHealthy         // 安全链健康状态(BOOL)
ComLossMonitor_C4.Status           // 通信监控状态(ENUM: OK / LOST / FAULT)
ComLossMonitor_C4.ComLossDetected  // 通信丢失检测输出(BOOL)

安全事件代码含义:

  • 0x1E03:通信丢失至HMI(示教器)
  • 0x1F01:安全门打开
  • 0x2A15:安全配置校验失败
  • 0x3C08:安全逻辑强制值冲突

所有代码定义详见 KEBA 文档 RoboWare_Safety_Manual_V6.3.pdf 第 7.4 节。

评论 (0)

暂无评论,快来抢沙发吧!

扫一扫,手机查看

扫描上方二维码,在手机上查看本文