1. EKI通信入门
EKI(Ethernet KRL Interface,以太网 KRL 接口)是 KUKA 机器人控制器中用于在 KRL 程序与外部以太网设备之间交换数据的通信接口。它不是一个独立的硬件模块,而是集成在 KUKA 控制器(如 KR C4、KR C5)中的软件功能,通过机器人控制器的以太网端口与上位机、视觉系统、PLC、测量设备等建立 TCP/IP 或 UDP 连接。理解 EKI 的关键在于:它让机器人程序能够像"读写变量"一样,直接收发网络数据,而不需要经过现场总线映射或额外的网关设备。
在 KUKA 机器人系统的通信版图中,EKI 处于"应用层通信"的位置。底层是控制器操作系统与网络协议栈,中间是 KUKA 提供的通信接口层,上层则是用户的 KRL 程序。与 EKI 并列的还有 RSI(Robot Sensor Interface)和 Fieldbus(现场总线)两类通信方式,它们各自解决不同层面的问题。EKI 的定位可以概括为:面向"点对点、结构化、可编程"的以太网数据交换,适合与一台或少数几台外部设备进行灵活的数据交互。
以太网通信的基本概念
在深入 EKI 之前,需要先建立几个以太网通信的基础概念。首先是 IP 地址与端口:每台设备在网络中需要一个唯一的 IP 地址,端口号则用于区分同一台设备上的不同服务。EKI 通信中,机器人控制器作为客户端或服务端,需要与外部设备约定好 IP 和端口。例如,机器人作为客户端连接上位机的 59152 端口,或者机器人作为服务端监听 54600 端口等待连接。
其次是 TCP 与 UDP 的区别。TCP 是面向连接的可靠传输,数据按顺序到达,适合对完整性要求高的场景,如发送坐标数据、接收指令。UDP 是无连接的快速传输,不保证到达顺序,适合对实时性要求高但能容忍少量丢包的场景。EKI 同时支持这两种协议,用户根据实际需求选择。
第三是 数据格式。EKI 支持两种主要的数据组织方式:一种是纯字符串/字节流,用户自行定义分隔符和解析规则;另一种是 XML 格式,EKI 内置了 XML 解析能力,可以通过元素名称直接读取字段值。XML 方式在结构化数据交换中更为清晰,例如视觉系统发送的坐标、角度、置信度等字段。
EKI 与 RSI、Fieldbus 的差异
这三者常被混淆,但它们的定位截然不同。RSI 是实时传感器接口,主要用于需要高频周期修正机器人运动的场景,如力控、视觉伺服。RSI 的数据更新周期通常在 4ms 到 12ms 之间,直接参与运动插补,对实时性要求极高。Fieldbus(如 PROFINET、EtherCAT)是工业现场总线,用于连接 PLC、远程 IO、伺服驱动器等,强调确定性、周期性和设备互操作性,配置通常依赖硬件组态工具。EKI 则是应用层的以太网通信接口,不参与运动实时控制,而是让 KRL 程序能够灵活地与外部系统交换数据。它的优势在于编程简单、协议开放、无需额外硬件,适合非实时或软实时的数据交互。
| 对比维度 | EKI | RSI | Fieldbus |
|---|---|---|---|
| 通信层次 | 应用层(KRL 可编程) | 运动控制层(实时) | 现场设备层 |
| 实时性 | 非实时 / 软实时 | 硬实时(4~12ms) | 确定性周期 |
| 典型协议 | TCP/IP、UDP | 专用以太网协议 | PROFINET、EtherCAT |
| 编程方式 | KRL 函数调用 | RSI 对象配置 | 硬件组态 + PLC 编程 |
| 典型用途 | 视觉引导、数据采集、MES 交互 | 力控、视觉伺服、动态修正 | IO 控制、驱动器通信 |
典型应用场景
EKI 在实际工程中应用广泛。最常见的场景是视觉引导抓取:相机拍摄工件后,通过以太网将坐标和角度发送给机器人,机器人 KRL 程序用 EKI_Receive 读取数据,解析后修正抓取点。另一个场景是与上位机 MES 系统交互:机器人完成一个工件后,通过 EKI 发送完成信号和工件序列号,MES 返回下一个任务指令。此外,EKI 还常用于测量数据回传、远程监控、多机器人协同等场景。这些场景的共同特点是:数据交换不是硬实时运动控制,但需要灵活、可编程、易于集成的通信方式。
学习路线建议
掌握 EKI 通信工程,建议按以下路径推进:第一步,理解以太网基础,包括 IP、端口、TCP/UDP 差异,能够用网络调试工具(如 TCP 调试助手)手动收发数据。第二步,熟悉 EKI 的 KRL 函数体系,包括 EKI_Init、EKI_Open、EKI_Send、EKI_Receive、EKI_Close 等,理解每个函数的参数含义和调用时机。第三步,从纯字符串通信入手,完成一个简单的"发送-接收"闭环,例如机器人发送 "Hello" 给上位机,上位机回复 "OK"。第四步,进阶到 XML 格式通信,定义结构化的数据字段,实现视觉坐标的解析。第五步,结合真实项目,处理异常情况,如连接断开、数据超时、格式错误等,并设计重连机制。第六步,优化通信性能,调整缓冲区大小、超时参数,评估通信周期对节拍的影响。
在整个学习过程中,建议始终配合实际控制器或仿真环境进行验证。KUKA 的 OfficeLite 仿真软件可以运行 KRL 程序,配合本机网络回环测试,能够在不依赖真实机器人的情况下完成大部分 EKI 逻辑的开发和调试。当程序在仿真中稳定运行后,再部署到真实控制器上,可以显著降低调试风险。