赞
踩
KUKA.EthernetKRL软件包提供了通过网络和机器人控制器进行双向通信的功能。使用TCP/IP协议,通过服务器端和客户端方式进行通信,网络传输通过xml进行配置,传输内容也是xml格式。通信延迟在2ms以下。因此可以做一些实时性比较高的任务,比如在线分拣等。
确保KUKA控制器安装了EthernetKRL软件包。如果没有安装,查看机器人D盘的kuka_option文件夹下是否有,如果有,点击setup安装,如果没有,需要联系机器人厂家购买该软件包。
使用网线把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文件下的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为例。
在PC端打开Application目录下的EthernetKRL_Server.exe软件(一定要关闭防火墙)
如下图:
打开配置界面,下拉选择BinaryFixed,端口设置为60000,网卡编号设为0或者1。然后点击绿色三角形按钮。
如果出现下面内容,则代表连接成功
如果出现下面的问题,修改网卡编号。如果0和1都出现这个问题,需要在网络配置中禁用网卡的ipv6功能。
把ipv6前面的对勾去掉。
在kuka控制器中执行BinaryFixed.src文件。
该文件顺利执行完毕后可以在下方窗口中看到内容,则说明硬件连接和通信配置等没有问题,可以进行后续自定义通信的开发。
如果执行过程中报错:连接到外部系统失败。则需要检查网线连接和ip,端口配置是否正确。
本文自定义的通信发送内容包括7个数,分别是指令类型1个数,位姿6个数。接收内容包括12个数,分别是KUKA各关节角度6个和位姿6个数。
<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个数,分别是各关节角度和末端位姿。
&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,%VWAIT,%
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。