kuka机器人通过EthernetKRL控制

本文详细介绍了如何通过EthernetKRL控制KUKA机器人,包括软件包安装、IP地址配置、XML通信配置、控制器编程以及PC端程序开发。通过TCP/IP协议实现2ms以下延迟的高效通信,可用于实时性高的任务如在线分拣。
摘要由CSDN通过智能技术生成

一.简介

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。后面例子假设KUKA控制器IP地址为192.168.1.101,PC端IP地址为192.168.1.100。

下载官方例程

库卡官方提供了几个例程:目录结构如下
在这里插入图片描述
如果找不到,可以在笔者提供的资源中下载。(资源还在审核中,后续在评论区上传)。

Config文件复制与修改

把Config文件下的xml文件拷贝到kuka控制器的C:\KRC\ROBOTER\Config\User\Common\EthernetKRL路径下,把Program文件夹下的src文件拷贝到kuka编程路径下。
接下来以BinaryFixed为例说明如何进行kuka和PC的通信。
修改BinaryFixed.xml中的

<IP>x.x.x.x</IP>
<PORT>49152</PORT>

<IP>192.168.1.100</IP>
<PORT>60000</PORT>

IP修改为PC端IP地址,PORT随意,范围5001-63335,这里以60000为例。

操作EthernetKRL_Server.exe软件

在PC端打开Application目录下的EthernetKRL_Server.exe软件(一定要关闭防火墙)
如下图:
在这里插入图片描述
打开配置界面,下拉选择BinaryFixed,端口设置为60000,网卡编号设为0或者1。然后点击绿色三角形按钮。

如果出现下面内容,则代表连接成功
在这里插入图片描述
如果出现下面的问题,修改网卡编号。如果0和1都出现这个问题,需要在网络配置中禁用网卡的ipv6功能。
在这里插入图片描述

如何禁用ipv6功能

在这里插入图片描述
把ipv6前面的对勾去掉。

在kuka中执行BinaryFixed.src

在kuka控制器中执行BinaryFixed.src文件。
该文件顺利执行完毕后可以在下方窗口中看到内容,则说明硬件连接和通信配置等没有问题,可以进行后续自定义通信的开发。
在这里插入图片描述
如果执行过程中报错:连接到外部系统失败。则需要检查网线连接和ip,端口配置是否正确。

三.自定义通信内容

本文自定义的通信发送内容包括7个数,分别是指令类型1个数,位姿6个数。接收内容包括12个数,分别是KUKA各关节角度6个和位姿6个数。

通信配置xml文件

<ETHERNETKRL>
    <CONFIGURATION>
		<EXTERNAL>
			<IP>192.168.1.100</IP>
			<PORT>60000</PORT>
			<TYPE>Server</TYPE>
		</EXTERNAL>
    </CONFIGURATION>
    <RECEIVE>
		<XML>
			<ELEMENT Tag="Robots/Command" Type="INT" /> 
			<ELEMENT Tag="Robots/Pos/@X" Type="REAL" /> 
			<ELEMENT Tag="Robots/Pos/@Y" Type="REAL" /> 
			<ELEMENT Tag="Robots/Pos/@Z" Type="REAL" /> 
			<ELEMENT Tag="Robots/Pos/@A" Type="REAL" /> 
			<ELEMENT Tag="Robots/Pos/@B" Type="REAL" /> 
			<ELEMENT Tag="Robots/Pos/@C" Type="REAL" Set_Flag="1"/> 
		</XML>
    </RECEIVE>
    <SEND>
      <XML>
		  <ELEMENT Tag="Robots/mA1" Type="REAL"/>
		  <ELEMENT Tag="Robots/mA2" Type="REAL"/>
		  <ELEMENT Tag="Robots/mA3" Type="REAL"/>
		  <ELEMENT Tag="Robots/mA4" Type="REAL"/>
		  <ELEMENT Tag="Robots/mA5" Type="REAL"/>
		  <ELEMENT Tag="Robots/mA6" Type="REAL"/>

		  <ELEMENT Tag="Robots/mx" Type="REAL"/>
		  <ELEMENT Tag="Robots/my" Type="REAL"/>
		  <ELEMENT Tag="Robots/mz" Type="REAL"/>
		  <ELEMENT Tag="Robots/ma" Type="REAL"/>
		  <ELEMENT Tag="Robots/mb" Type="REAL"/>
		  <ELEMENT Tag="Robots/mc" Type="REAL"/>
      </XML>
    </SEND>
</ETHERNETKRL>

该文件定义了PC端IP地址为192.168.1.100,使用端口是60000,并且规定PC端是服务器。KUKA控制器接收7个数,运动完成后返回12个数,分别是各关节角度和末端位姿。

KUKA控制器编程

&ACCESS RV1
&REL 12
DEF connect1()
DECL POS Posv
DECL POS Cent
DECL EKI_STATUS RET
DECL INT F
DECL INT RobStatus

EXT BAS (BAS_COMMAND:IN,REAL:IN)
DECL AXIS HOME
BAS(#INITMOV,0)
HOME={
   AXIS:A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0}

$BASE=BASE_DATA[8]
$TOOL=TOOL_DATA[8]

;$IPO_MODE=#BASE
;$ORI_TYPE=#CONSTANT
;$CIRC_TYPE=#PATH

$VEL.CP=0.02
$VEL.ORI1=15.000
$VEL.ORI2=15.000
$ACC.CP=2.300
$ACC.ORI1=5.000
$ACC.ORI2=5.000

Posv = {
   X 0.0, Y 0.0, Z 0.0, A 0.0, B 0.0, C 0.0}
Cent = {
   X 0.0, Y 0.0, Z 0.0, A 0.0, B 0.0, C 0.0}
F =0
$FLAG[1] = FALSE
RobStatus = 0
;PTP HOME

RET=EKI_Init("connect1")
RET=EKI_Open("connect1")
EKI_CHECK(RET,#QUIT)



WHILE (F <> 1)

;WAIT FOR 2
;WAIT SEC 1
;FOLD WAIT Time=1 sec;%{
   PE}%R 8.3.31,%MKUKATPBASIS,%CWAIT,%VW
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仟人斩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值