RoboDK 支持 KRC2 之后的所有库卡机器人控制器,包括库卡 KRC3 和 KRC4 控制器。本帮助文档基于 KRC4 控制器。KRC4 机器人控制器运行 Microsoft Embedded Windows 7 操作系统。以前的控制器(如 KRC2)运行的是 Windows 95 操作系统。机器人示教器显示的是 "HMI",它是库卡(Kuka)开发的在 Windows 上运行的程序,是机器人用户操纵机器人必须使用的界面。
以下章节演示了使用库卡机器人示教器在 RoboDK 中编制新程序并将其传输到机器人上的典型操作。
请按照以下步骤将程序从 USB 盘加载到库卡(Kuka)KRC4 机器人控制器。
1.在机器人控制器上插入 USB 盘(比使用示教器连接快得多)
2.如果看不到 USB 盘,我们必须进入管理员模式
3.从 USB 盘中选择文件
4.选择编辑➔ 复制
5.选择 KRC 设备中的文件夹
6.选择编辑 粘贴➔
在为库卡(Kuka)机器人控制器生成机器人程序时,您可以定义坐标系($BASE)和工具($TOOL),这些坐标系和工具可以与您在RoboDK中输入的坐标相同,也可以分别定义编号坐标系和编号工具。
默认情况下,RoboDK 会按照您在 RoboDK 中输入的方式,导出工具和坐标系的完整位姿(XYZABC 值)。以下代码显示了 RoboDK 为库卡(Kuka) SRC 机器人程序生成的示例:
; ---- 设置工具 (TCP) ----------
; tool_data[3]={frame:x 116.058,y 0.0,z 219.481,a 0.0,b 60.0,c 0.0}
$tool = {frame:x 116.058,y 0.0,z 219.481,a 0.0,b 60.0,c 0.0}
; $tool=tool_data[3]
; ----------------------------------
---- 设置参考(基准) ----
; base_data[1]={frame:x 640.289,y -290.0,z 0.0,a 90.0,b 0.0,c 0.0}
$base = {frame:x 640.289,y -290.0,z 0.0,a 90.0,b 0.0,c 0.0}
; $base = base_data[1]
; ----------------------------------
另一方面,如果您喜欢将工具($TOOL 变量)和坐标系($BASE 变量)与编号工具和参考坐标系相连接,可以在后处理器中更换以下变量:
●FRAME_INDEX:将此变量设为 True,可将坐标系与有编号的基准框架连接起来。您应确保您的参考坐标系在 RoboDK 工作站中有编号,如下图所示。
●TOOL_INDEX:将此变量设为 True,可将您的工具链接到一个有编号的工具。您应确保您的工具在 RoboDK 工作站中有编号,如下图所示。
注:在后处理器部分了解更多有关如何编辑后处理器的信息。
提示:在使用外轴时,建议使用编号坐标系。在程序中使用编号坐标系后,您就不必完全匹配 RoboDK 中外轴的运动学。
请按照以下步骤在库卡KRC4 控制器上启动机器人程序。
1.从 KRC 存储单元中选择程序
2.在屏幕上选择选择
3.选择按钮 "R"(顶部)并重置程序
4.选择示教器上的绿色 "播放 "按钮启动程序
通过以下步骤,您可以从机器人控制器创建或修改机器人工具(TCP,在库卡(Kuka)KRC 机器人程序中也称为$ TOOL):
1.选择
2.选择工具并编辑或检索 TCP 的 X、Y、Z 位置。
通过以下步骤,您可以从机器人中提取机器人关节:
1.选择
2.选择"关节 "模式,使用左侧栏选择机器人关节
提示:通过监控 $AXIS_ACT 变量或使用库卡(Kuka)的 RoboDK 机器人驱动器并选择 "获取机器人关节 "按钮,可以更精确地获取机器人关节(小数点后 5 位精度)。
某些菜单部分需要 "专家 "或 "管理员 "权限。以下步骤允许进入 "专家 "模式:
1.选择
2.选择专家(或管理员)。
3.如果需要,请输入密码(默认密码为 "库卡(Kuka)")。
机器人驱动器是离线编程(生成程序,然后传输到机器人并执行)的替代方案。使用机器人驱动器,可以直接在机器人上运行模拟程序(在线编程)。更多信息,请参阅机器人驱动器部分。
您可以在 RoboDK 和库卡(Kuka)控制器之间建立连接,以便在电脑上自动移动机器人。这样就可以使用 RoboDK 运行于机器人选项,进行在线编程和调试。连接可通过标准以太网连接(TCP/IP)建立。
如果您使用的不是最新版本的RoboDK,则可能使用的是传统驱动器(apikuka,基于 KUKAVARPROXY 项目)。要使用当前驱动器,请确保在 "连接至机器人 "窗口的 "更多选项 "部分选择了kukabridge 驱动程序。
请按照以下步骤为库卡(Kuka)设置 RoboDK 驱动程序:
1.从该链接获取 C3 Bridge 安装程序文件(c3setup 可执行文件)。
2.使用库卡(Kuka)人机界面,将 c3setup.exe 安装程序文件复制到控制器桌面或控制系统文件夹中。
3.连接鼠标(可选,但建议使用)。
可以将 USB 设备插件插入示教器或控制器(无需重启)。
或者,也可以建立远程桌面连接。
也可以使用示教器的触摸屏和虚拟键盘完成这些步骤。
4.使用库卡(Kuka)HMI 应用程序可以通过屏幕左上角的库卡按钮
a.
b.
5.找到之前复制的 c3setup-1.6.1.exe 文件并运行。按照安装程序的提示进行操作。
6.允许端口 7000(如果端口7000 忙碌,则允许其他端口,见下文注释)用于 TCP/UDP 通信(库卡(Kuka)KRC2 控制器不需要此步骤):
a.恢复HMI。
b.
c.NAT➔ 添加插件➔端口号7000
d.设置允许的协议:TCP/UDP
7.通过桌面快捷方式或 "开始 "菜单项启动 C3 Bridge 服务器(如果在最后一个安装步骤中选择了 "运行 C3 Bridge 服务器",则可以跳过此步骤)。
8.要在系统启动时自动启动 C3 Bridge Server,请将桌面上的应用程序快捷方式复制到 "开始 "菜单的 "启动 "文件夹中。
注意:自 2020 年起,新的库卡控制器使用 Windows 10 IOT。如果控制器使用 Windows 10,端口7000 可能被nginx 进程占用。在这种情况下,请按照更改端口号一节中的说明操作。
C3 Bridge 服务器现已准备就绪。您可以让该程序继续运行。通过该服务器,您可以在库卡控制系统和远程 PC 之间交换全局变量值、下载和上传 KRL 程序、控制 KRL 程序的执行等。
控制系统的进一步配置可通过两种方式完成:使用kukabridge 驱动器的交互模式自动配置(仅限 KRC4),以及在库卡(Kuka)HMI 中手动编辑机器人控制系统文件。让我们来看看这两种方法。
C3 Bridge 服务器将其设置保存在 Windows 注册表中。请按照以下步骤更改网络端口:
1.终止 C3 桥接服务器。
2.打开注册表编辑器并导航至 HKEY_CURRENT_USER\SOFTWARE\C3 Bridge Interface。
3.将 NetworkTcpPort 键的值改为 7000 以外的值(例如 7001)。
4.再次启动 C3 Bridge 服务器,重复上一节的步骤 6(打开相应端口的访问权限)。
较新版本的 C3 Bridge 服务器(1.7.1 及更高版本)支持命令行选项。特别是,通过使用-tcpPort 参数运行应用程序,可以更改服务器端口。例如
c3bridge.exe -tcpPort 7001
C:\RoboDK\Library\Scripts 文件夹中的脚本KUKA_Auto_Configuration.py 可用于执行库卡控制系统的自动配置。在这种情况下,当前的 RoboDK 工作站必须至少包含一个库卡机器人,并在连接机器人窗口中输入正确的 IP 地址和端口。脚本可通过菜单 "工具"➔ "运行脚本 "或Shift+S 热键调用。
前提条件RoboDK 版本 5.5.2 或更高,Windows 操作系统,安装路径C:\RoboDK。
1.用START➔ 所有程序➔ 附件➔ 命令提示符打开命令外壳
或START➔ 运行➔ cmd。
2.将目录更改为 C:\RoboDK\bin,然后执行以下命令启动 kukabridge.exe:
c:
cd C:\RoboDK\bin
.API\Robot\kukabridge.exe
3.现在,库卡(Kuka)桥接驱动器以交互模式运行。
4.输入 CONNECT <机器人 IP 地址> <端口> <机器人轴数>,建立与控制系统的连接,例如
连接 172.1.1.10 7000 6
5.如果成功,您将看到以下输出:
短信:连接
已连接
短信:工作...
短信:准备就绪
6.输入 CJNT 命令,请求当前机器人关节位置:
CJNT
短信:工作...
JNTS 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
短信:准备就绪
7.使用CONFIGURE FORCE 命令执行自动配置:
配置强制力
短信:工作...
请求机器人程序状态
当前机器人程序状态为 #P_FREE
读取当前配置 ($config.dat)
完整读取,更新配置
添加 COM_ACTION 变量的定义
添加 COM_ACTCNT 变量的定义
添加变量 COM_ROUNDM 的定义
添加变量 COM_VALUE1 的定义
添加变量 COM_VALUE2 的定义
添加变量 COM_VALUE3 的定义
添加变量 COM_VALUE4 的定义
添加变量 COM_E6AXIS 的定义
添加 COM_FRAME 变量的定义
添加 COM_POS 变量的定义
添加变量 COM_E6POS 的定义
配置行已更新:新增 11 项,删除 0 项,更新 0 项,共计 659 项
检查旧备份文件 ($config.bak) 是否存在
存在旧的备份文件,正在删除
创建新的备份文件($config.bak)
备份已完成,正在写入新配置
新配置已成功写入
检查程序文件 (RoboDKsync543.src) 是否存在
程序文件不存在
将程序文件写入机器人系统
配置完成
短信:准备就绪
8.现在,您的机器人已准备就绪,只需选择并运行程序 RoboDKsync543.src。
接下来的步骤是手动设置处理机器人动作的主程序:
1.添加以下全局变量的声明:
为此,请通过库卡(HMI)找到并修改文件 "KRC:\R1\SYSTEM\$CONFIG.DAT"。KRC:(R1)"文件夹也可以通过以下 Windows 路径从C:\ 驱动器访问:"c:\krc\roboter\krc\".
int com_action=0
int com_actcnt=0
real com_roundm=0
real com_value1=0
real com_value2=0
real com_value3=0
real com_value4=0
decl e6axis com_e6axis
坐标系 com_frame
decl pos com_pos
decl e6pos com_e6pos
2.将库卡SRC 程序RoboDKsyncVER.src 复制到文件夹KRC\R1\PROGRAM 中。文件名中的后缀VER 表示程序的版本(例如RoboDKsync543.src)。
3.手动启动RoboDKsyncVER.src 程序,让机器人监听来自电脑的指令。
如果RoboDKsyncVER.src 程序未运行,但机器人控制器中的C3 Bridge Server 正在运行,RoboDK 仍能读取机器人关节。
传统的库卡驱动器名为 apikuka(库卡),与 KUKAVARPROXY 结合使用。该解决方案现已过时,RoboDK 将停止使用。如果要使用该驱动器,请确保在 "连接至机器人 "窗口的 "更多选项 "部分选择了该驱动器。
请按照以下步骤为库卡(Kuka)设置传统驱动器:
1.连接鼠标(可选,但强烈建议)。
可以将 USB 设备插件插入示教器或控制器(无需重启)。
或者,也可以建立远程桌面连接。
也可以使用示教器的触摸屏和虚拟键盘完成这些步骤。
9.使用库卡(Kuka)HMI 应用程序可以通过屏幕左上角的库卡按钮
a.
b.
10.将 KUKAVARPROXY 文件夹复制到桌面(或控制器 PC 中的某个位置)
11.允许端口 7000 用于 TCP/UDP 通信(库卡(Kuka)KRC2 控制器不需要此步骤):
a.选择 HMI。
b.
c.NAT➔ 添加插件➔端口号 7000
d.设置允许的协议:TCP/UDP
12.启动机器人控制器上的 KUKAVARPROXY.EXE 程序(在 Windows 上运行)。
注意:自 2020 年起,新的库卡 KRC4 控制器使用 Windows 10 IOT。如果控制器使用 Windows 10,则应在启动 KUKAVARPROXY 应用程序前停止进程 nginx.exe,以允许使用端口 7000。
13.以下步骤允许重启时在控制器上自动启动驱动器(推荐):
a.创建KUKAVARPROXY.EXE 文件的快捷方式
b.选择 Windows START➔ 所有程序➔ 右键单击启动➔ 打开
c.将快捷方式粘贴到启动文件夹中
KUKAVARPROXY 服务器现已准备就绪。您可以让该程序继续运行。该服务器可将全局变量从库卡(Kuka)控制器交换到远程 PC。
接下来的步骤是设置处理机器人动作的主程序:
1.添加以下全局变量的声明:
为此,请通过库卡(HMI)找到并修改文件 "KRC:\R1\SYSTEM\$CONFIG.DAT"。KRC:(R1)"文件夹也可以通过以下 Windows 路径从C:\ 驱动器访问:"c:\krc\roboter\krc\".
int com_action=0
int com_actcnt=0
real com_roundm=0
real com_value1=0
real com_value2=0
real com_value3=0
real com_value4=0
decl e6axis com_e6axis
坐标系 com_frame
decl pos com_pos
decl e6pos com_e6pos
2.将库卡SRC 程序RoboDKsyncVER.src 复制到文件夹KRC\R1\PROGRAM 中。文件名中的后缀VER 表示程序的版本(例如RoboDKsync543.src)。
3.手动启动RoboDKsyncVER.src 程序,让机器人监听来自电脑的指令。
如果RoboDKsyncVER.src 程序未运行,但机器人控制器中的 KUKAVARPROXY 程序正在运行,则 RoboDK 仍能读取机器人关节。
本节介绍了如何确定、诊断和修复在RoboDK 中使用库卡(Kuka)机器人驱动器时可能遇到的问题。
您应进入库卡控制器上的专家用户组,以排除 7000 端口的故障问题。
1.
2.
3.用START➔ 所有程序➔ 附件➔ 命令提示符打开命令外壳
或START➔ 运行➔ cmd
4.使用该命令请求查看所有连接和监听端口的列表:
netstat -a -b -n -o -p TCP | findstr :7000
5.如果响应不包含任何字符串,则端口7000 空闲,可用于驱动器操作。可以跳过后续步骤。
6.如果对第 4 步命令的响应是这样的
TCP 0.0.0.0:7000 0.0.0.0:0 监听 1840
7.上面一行的最后一个数字是进程标识符(PID)。可以使用以下命令获取有关进程名称的信息(应使用自己的编号而不是 1840):
tasklist /fi "PID eq 1840"
8.任务列表命令的结果包含正在监听端口7000 的进程信息。输出示例
图像名称 PID 会话名称 会话# 内存使用量
========================= ======== ================ =========== ============
c3bridge.exe 1840 控制台 1 5,912 K
9.如果端口被KukavarProxy.exe 或c3bridge.exe 进程占用,则系统可以使用所选驱动器。如果端口被其他程序占用,则必须终止该程序或更改 端口号。C3 Bridge Server 的
如果您一直在使用 KUKAVARPROXY,并希望升级到 C3 Bridge Server,则无需特殊的卸载程序。将库卡(HMI)最小化,关闭 KUKAVARPROXY 并确保系统启动时不会自动加载(START➔ All programs➔ Startup 中没有快捷方式)。无需删除 KUKAVARPROXY 可执行文件。
自动或手动配置控制系统的程序可能会失败。最常见的原因是无法覆盖$config.dat 文件。该文件只能由具有高级权限(专家)的用户编辑。另一个条件是停止所有解释器:机器人和提交。要停止机器人解释器,只需取消任何选定的程序,如果控制系统刚刚加载,则不选择任何程序。要取消提交解释器,请使用HMI,如下图所示,分别用于 KRC2 和 KRC4 系统:
如果在停止所有解释器后$config.dat 文件仍被锁定,则可以完全停止机器人控制系统软件部分的执行。在 KRC2 系统中,点击状态指示器(S I R)旁边的矩形区域,然后点击退出按钮:
在 KRC4 系统中,点击托盘区的绿色机器人图标,然后选择 "停止 KRC":
停止控制软件后,可以使用任何文本编辑器修改文件C:\KRC\ROBOTER\KRC\R1\System\$config.dat。重新启动操作系统以应用更改。
即使有转台等外轴,您也可以在库卡机器人控制器上使用驱动器和后处理器。我们建议您使用编号坐标系或已在机器人控制器上定义了正确机器定义的坐标系。
重要: 如果您有转台,请确保已正确测量了根点。否则,请按照程序正确定义转台根点。您可以在帮助文档的一般提示部分找到更多信息。
库卡机器人控制器的下列文件将帮助您了解库卡系统的构建过程:
●KRC\R1\System\$config.dat
●KRC\R1\System\bas.src
●KRC\R1\Mada\$machine.dat
如果有转盘,则应在 config.dat 文件的MACHINE_DEF 变量中定义转盘的原点位置。安装系统的人应该会提供一个示例,根据 BAS 功能使用同步转盘生成程序。
例如,当您在 SRC 文件中使用ex_BASE 标志和某个索引(如索引 9)调用 BAS 函数时:
base_data[9] = {坐标系:x 0, y 0, z 0, a 0, b 0, c 0}
BAS(#ex_BASE,9)
您的意思是要使用 MACHINE_FRAME_DAT 中的索引 9。您还应该查看 BAS 和 EX_BASE 定义,了解您的控制器默认引用的机器索引 (MACH_IDX)。在调用SRC 文件中的BAS 函数之前定义的BASE_DATA 数组可能只是安装在转盘上的夹具的偏移量。
注:查看后处理器自定义示例,了解更多有关设置坐标系时如何自定义程序输出的信息。您可以在论坛中关于如何配置外轴的对话中找到更多信息。
如果转台与机械臂同步,您可能需要通过后处理器或驱动器手动更改 $BASE 变量,使其成为转台的原点。
例如,如果有可用的 BASE_DATA 索引 9,则应在驱动器中使用以下代码。
;--------
用以下两行替换 $BASE 定义
使库卡 RoboDKSynch 驱动器与外轴一起工作:
; $base = {frame:X 0, Y 0, Z 0, A 0, B 0, C 0} ; 注释此行
base_data[9] = {坐标系:x 0, y 0, z 0, a 0, b 0, c 0}
BAS(#ex_BASE,9
; BAS ex_BASE 函数链接到固定的 MACHINE_DEF
在 BAS 功能中可见
前面两行相当于下面一行、
; 如果 BAS 函数使用索引 2 来定义机器加工
; base_data[9] = {坐标系:x 0, y 0, z 0, a 0, b 0, c 0}
; $base=ek(machine_def[2].root,machine_def[2].mech_type,base_data[9])
;--------
注:您也可以使用 EK 功能自行构建机器人加轨道和/或转盘系统,而无需依赖BAS 功能。
重要提示: 当您为库卡机器人生成程序,并拥有额外的同步轴(如直线轴或转台)时,您可能会在库卡 SRC 程序中看到以下一行定义基础坐标系的代码。
$base=ek(ex_ax_data[1].root,ex_ax_data[1].ex_kin,ex_ax_data[1].offset)
对于后处理器,如果您想考虑转盘和夹具之间的偏移,可以替换后处理器 setFrame 功能中的前一行,使用 $BASE 定义:
$BASE=EK(MACHINE_DEF[2].ROOT, MACHINE_DEF[2].MECH_TYPE, {%s})' % self.pose_2_str(pose)
另外,在使用驱动器时,您也可以按照下面描述的步骤隔离坐标系(这样就不需要在 RoboDK 中完全匹配外轴的运动学)。
例如,为了能够默认使用 RoboDK 驱动程序,机器人控制器中定义的外轴运动学应该与 RoboDK 中创建的运动学相匹配。此外,如果您有一个转盘,转盘的根点应与 RoboDK 中定义的转盘位置一致。
请按照以下步骤使用已知坐标系使用驱动器:
1.选择工具➔ 选项➔ 驱动器选项卡。
2.选中 "提供相对于参照物的笛卡尔坐标 "选项。
3.将 RoboDKsync.src 程序文件中的 $BASE 变量替换为您要使用的坐标系。
例如,如果您想使用编号为 5 的基准参考坐标系,RoboDKsync.src 文件应该是这样的(第一行有注释,您应该在第 25 行左右找到它):
; $base = {frame:x 0,y 0,z 0,a 0,b 0,c 0}
$base = base_data[5]
该坐标系必须已在库卡(Kuka)机器人控制器中定义,RoboDK 不会覆盖该值。
注意:应确保 RoboDK 中的程序使用与 $BASE 变量(活动参考)中定义的坐标系相同的坐标系。
您可以使用 RoboDK 来校准已由库卡公司使用绝对精度选项校准过的库卡机器人。不过,您应确保在库卡机器人控制器中停用该选项。当您校准已由库卡(Kuka)使用绝对精度选项校准过的库卡机器人时,必须停用此选项,以便使用RoboDK进行校准。
要停用库卡的绝对精度,应将变量DEACTIVATE_ABS_ACCUR 设为 "true"。您可以在文件KRC:\STEU\MADA\$custom.dat 中找到该变量(约第 73 行)。
您可以通过将机器人移动到已知位置(例如,将真实机器人和 RoboDK 中的机器人轴移动到原点位置),并确保机器人控制器显示的笛卡尔位置与 RoboDK 显示的笛卡尔位置一致,从而确保库卡的绝对精度选项已正确停用。