KUKA机器人通过EthernetKRL控制

图片

KUKA.EthernetKRL软件包提供了通过网络和机器人控制器进行双向通信的功能。使用TCP/IP协议,通过服务器端和客户端方式进行通信,网络传输通过xml进行配置,传输内容也是xml格式。通信延迟在2ms以下。因此可以做一些实时性比较高的任务,比如在线分拣等。

软件包安装
确保KUKA控制器安装了EthernetKRL软件包。如果没有安装,查看机器人D盘的kuka_option文件夹下是否有,如果有,点击setup安装,如果没有,需要联系机器人厂家购买该软件包。

网线连接与IP地址配置
使用网线把KUKA控制器的x66或者x67接口和pc的网口直接连接到一起。设置KUKA控制器的IP地址和PC端的IP地址,两个IP地址需要在同一个网段,比如192.168.1.100和192.168.1.101。

下载官方例程
库卡官方提供了几个例程:目录结构如下

图片

首先当然是TCP/IP的基础部分,服务器和客户端。这里将库卡机器人作为客户端,上位机作为服务器进行通讯。

图片

图片

图片

图片

通过按钮事件,创建后台线程用于TCP服务端,创建服务端并开启监听后,就可以等待机器人客户端发来的消息了。

库卡机器人TCP通讯存在三种数据发送格式:固定长度字节,任意长度字节,和xml格式。个人感觉xml格式比较好用,这里介绍xml的通讯。

xml的通讯,其实可以分解为几个步骤:

机器人发送到上位机:机器人程序将变量或者数值写入xml的元素中→机器人将xml发送通过服务端发送到上位机的服务端→服务端接受到数据,按照xml的格式解析其中元素。

图片

上位机服务端获取到的数据是:

<Robot><Data><LastPos X="483.980011" Y="7.210000" Z="239.869995" A="0.000000" B="0.000000" C="0.000000"></LastPos><ActPos X="1000.119995"></ActPos></Data><Status>12345678</Status><Mode>ConnectSensor</Mode><RobotLamp><GrenLamp><LightOn>1</LightOn></GrenLamp></RobotLamp></Robot>

然后对数据进行逐个元素的解析就可以了。要增加变量,只要对应在mxl文件,机器人程序和上位机解析过程中添加就可以了。

上位机发送到机器人:上位机将变量写成xml格式,利用客户端发送到机器人中的xml文件→机器人读取xml文件中的元素值到程序中的变量

写成xml格式:

sendstr = sendstr + "<Sensor><Status><IsActive>FALSE</IsActive></Status></Sensor>";
sendstr = sendstr + "<Sensor><Read><xyzabc X='10.0' Y='20.0' Z='30.0' A='40.0' B='50.0' C='60.0'></xyzabc></Read</Sensor>";

然后是tcp发送

图片

图片

等发送完成之后,机器人再读取

机器人从xml元素中读取值或者属性并赋予创建的变量

RET=EKI_GetString("XmlCallBack","Sensor/Message",valueChar[])
RET=EKI_GetInt("XmlCallBack","Sensor/Nmb",valueInt)
RET=EKI_GetBool("XmlCallBack","Sensor/Status/IsActive" ,valueBOOL)
RET=EKI_GetFrame("XmlCallBack","Sensor/Read/xyzabc",valueFrame)

然后就可以在机器人程序中使用,或者通过查看变量值检测是否正确

本例中的xml文件和机器人程序文件src由ETHERNETKRL软件中自带的测试例子修改而来。不用原例子的原因是,原例子只有程序文件src而没有数据文件dat,程序里的变量都是临时变量,无法在示教器上查询变量的值。所以新建了一个程序,将原例子的变量定义放在dat数据文件中,处理过程放在src程序文件中。另外,对上位机发送到机器人的元素有做一些删改。

参考文献:

https://zhuanlan.zhihu.com/p/154135593

公众号:机器人视觉

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值