这几天研究上位机如何与kuka机器人EthernetKRL通讯,成功地通过TCP/IP协议与机器人通信,在此分享下使用的过程
EthernetKRL通讯说明
EhternetKRL是KUKA提供的一个以太网通信功能的可选软件包,支持TCP/IP和UDP/IP协议.
1-通过EKI(Ethernet KRL Interface),可以将KUKA机器人配置为服务器或者客户端,与外围设备(相机、上位机,PLC,三维扫描仪等)进行以太网通讯
2-外部系统通过EKI交换数据,机器人系统接收外部发送来的XML配置文件,进行处理以后,将信息通过XML形式再发送给外部设备,从而实现稳定高效的数据通信。
3-通讯数据默认以TCP/IP协议传输,从而保证了数据的完整高效。也可以使用UDP/IP协议,因为UDP/IP协议无法保证识别数据丢失(俗称丢包),所以库卡官方并不推荐使用UDP协议。
4-在一些对数据包完整性不敏感的特殊应用场合,因为UDP协议的响应速度等特性,UDP同样得到了广泛的应用(例如,通过UDP协议,机器人在运动过程中不断将自身位置信息发送给上位机系统,并向三维扫描仪发送同步信号,这样,上位机系统就可以拟合出三维扫描仪检测到的工件模型,为三维表面检测提供了一种可行的方案)。
5-EthernetKRL和外围数据交互原理:外围发给机器人的数据时,先暂存在通道(XML文件)里,机器人需要数据时再从相应的buffer里获取数据,解析数据。数据传输过程:外部发送数据→存进通道相应的缓冲 → 机器人读取数据 → 建立数据解析 → 得到最终的数据。由于机器人读取数据时建立解析是耗时的,所以EthernetKRL 最好是传输数据量小点的数据包。
今天我们使用kuka虚拟机进行仿真通讯,实际机器人也是同样的步骤
如果要进行EthernetKRL通讯首先机器人端安装KUKA.EthernetKRL软件包,该软件包提供了通过网络和机器人控制器进行双向通信的功能。使用TCP/IP协议,通过服务器端和客户端方式进行通信,网络传输通过xml进行配置,传输内容也是xml格式。通信延迟在2ms以下。因此可以做一些实时性比较高的任务,比如在线分拣,视觉检测,视觉引导,上位机采集等。
通讯软件包安装
一、用U盘把 KRC4 EthernetKRL 安装包拷贝到机器人PC上
1 -登陆“专家”用户组
2-投入运行---售后服务---HMI最小化
3-复制软件到D:KUKA_OPT
4-返回到Smartpad示教器界面
点击菜单:投入运行---辅助软件---新软件---选择软件
(EthernetKRL)---安装---冷启动机器人。
通过在控制器安装界面安装软件包
配置XML通讯文件
1- 针对每个连接,必须在机器人控制系统的目录
C:KRCROBOTERConfigUserCommonEthernetKRL 中定义一个配置文件
将通讯包里面的案例通讯文件拷贝到当前文件夹,进行修改。
2- XML 文件都是“ 区分大小写” 的。必须注意区分大小写。XML 文件的名称同时也是 KRL 的访问密钥。
连接属性的 XML 结构
用于数据接收的 XML 结构
配置取决于是接收 XML 数据还是二进制数据。
如果是接收 XML 数据,必须定义 XML 结构:<XML> … </XML>
如果是接收二进制数据,必须定义原始数据:<RAW> … </RAW>
BYTE:有固定长度的二进制数据组
STREAM:有可变末尾字符串和可变长度的二进制数据组
如果通过Officelite虚拟机通讯,此时IP必须设置成192.168.0.1
配置虚拟机通讯建立
设置虚拟机网卡ip地址
我们要在Officelite虚拟机里建立通讯就要使用一个KUKA Router软件进行网络搭个桥。
打开软件,ip地址和虚拟机网卡ip相同,端口号要和xml配置文件的端口相同。
机器人程序编写
用于数据交换的函数
此时使用的机器人大众版本的kuka机器人
我们在vwuser文件夹中,添加一个程序
编写机器人程序,程序放在sps.sub程序中循环调用
本机Node-red建立服务器
本机的Node-Red建立一个服务器用来监听端口的数据
通过调试我们接收到了机器人发来的数据
我们将字符串数据转换成xml结构数据
接下来对结构数据进行解析
将解析之后的数据展示在前端界面或者存储到数据库
274