18621383605

上海市宝山区富联一路98号6栋

侧边悬浮
主页 > 新闻动态 > 企业动态

库卡机器人干货分享:如何利用KRL编程?

2018-03-02 17:34:40

第十章 在 KRL 中成功编程

库卡机器人干货——如何利用 KRL 编程

10.1 机器人的程序结构和组成


程序流程控制

除了纯运动指令和通讯指令(切换和等待功能)之外,在机器人程序中还有大量用于控制程序流程的程序。 其中包括:

循环 | 循环是控制结构。 它不断重复执行指令块指令,直至出现终止条件。

分支 | 使用分支后,便可以只在特定的条件下执行程序段。

无限循环 :在无限循环中无止境地重复指令段。 然而,却可通过一个提前出现的中断(含 EXIT 功能)退出循环语句。

库卡机器人干货——如何利用 KRL 编程

程序流程图: 无限循环

LOOP 指令举例:

库卡机器人干货——如何利用 KRL 编程

库卡机器人干货——如何利用 KRL 编程

计数循环 :用计数循环 (FOR 循环语句)可使指令重复定义的次数。 循环的次数借助于一个计数变量控制。

库卡机器人干货——如何利用 KRL 编程

程序流程图: FOR 循环语句

一个 FOR 循环语句举例: 将输出端 1 至 5 依次切换到 TRUE。 用整数(Integer) 变量 “i” 来对一个循环语句内的循环进行计数。

库卡机器人干货——如何利用 KRL 编程

当型循环: WHILE 循环是一种当型或者先判断型循环,这种循环会在执行循环的指令部分前先判断终止条件是否成立。

库卡机器人干货——如何利用 KRL 编程

WHILE 程序流程图

WHILE 循环示例: 输出端 17 被切换为 TRUE,而输出端 18 被切换为FALSE,并且机器人移入 Home 位置,但仅当循环开始时就已满足条件 (输入端 22 为 TRUE)时才成立。

库卡机器人干货——如何利用 KRL 编程

直到型循环: REPEAT 循环是一种直到型或者检验循环,这种循环会在第一次执行完循环指令部分后才会检测终止条件。

库卡机器人干货——如何利用 KRL 编程

程序流程图 REPEAT

REPEAT 循环示例:输出端 17 被切换为 TRUE,而输出端 18 被切换为FALSE,并且机器人移入 Home 位置。 这时才会检测条件。

库卡机器人干货——如何利用 KRL 编程

条件性分支 :条件性分支 (IF 语句)由一个条件和两个指令部分组成。 如果满足条件,则可处理第一个指令。 如果未满足条件,则执行第二个指令。

但是,对 IF 语句也有替代方案:

库卡机器人干货——如何利用 KRL 编程

程序流程图: IF 分支

IF 语句举例: 如果满足条件 (输入端 30 必须为 TRUE),则机器人运动到点P3,否则到点 P4。

库卡机器人干货——如何利用 KRL 编程

分配器: 一个 SWITCH 分支语句是一个分配器或多路分支。 此处首先分析一个表达式。然后,该表达式的值与一个案例段 (CASE) 的值进行比较。 值一致时执行相应案例的指令。

库卡机器人干货——如何利用 KRL 编程

程序流程图: 分配模块 SWITCH - CASE

对带有名称 “ 状态 ” 的整数变量 (Integer),首先要检查其值。 如果变量的值为1,则执行案例 1 (CASE 1): 机器人运动到点 P5。 如果变量的值为 2,则执行案例 2 (CASE 2): 机器人运动到点 P6。 如果变量的值未在任何案例中列出(在该例中为 1 和 2 以外的值),则将执行默认分支: 故障信息。

库卡机器人干货——如何利用 KRL 编程

10.2 结构化机器人程序

机器人程序结构化设计的方法:

机器人程序的结构是体现其使用价值的一个十分重要的因数。 程序结构化越规范,程序就越易于理解、执行效果越好、越便于读取、越经济。 为了使程序得到结构化设计,可以使用以下技巧:

注释和印章 :添加注释为在机器人程序中存储仅针对程序读者的文本提供了可能性。 即机器人解释器不读入该文本。 该文本只是为了提高程序的可读性。

在机器人程序中可以在许多地方使用注释:

库卡机器人干货——如何利用 KRL 编程

注释示例: 信息

库卡机器人干货——如何利用 KRL 编程

注释示例: 分层目录

添加注释 :(专家层面) | 通过在程序行的起始位置添加分号来使该程序行 “变成注释 ”,即该文本作为注释来识别,而不进入程序执行。

库卡机器人干货——如何利用 KRL 编程

注释示例: 添加注释

以及对需执行的工作的说明 | 标识未完成的程序段

库卡机器人干货——如何利用 KRL 编程

注释示例: 说明

注意:只有不断更新,注释才有意义。 如果之后更改过指令,则也必须更新注释!

可以使用三种不同的注释方式:

库卡机器人干货——如何利用 KRL 编程

注释的联机表单

库卡机器人干货——如何利用 KRL 编程

库卡机器人干货——如何利用 KRL 编程

印章的联机表格

库卡机器人干货——如何利用 KRL 编程

插入注释和印章的操作步骤:

1. 标定其后应插入注释或印章的那一行。

2. 选择菜单序列指令 > 注释 > 正常或印章。

3. 输入所希望的数据。 如果事先已经插入了注释或印章,则联机表格中还保留着相同数据。

4. 用指令 OK 存储。

程序行的缩进 提高机器人程序可读性的一个有效手段是缩进程序行。 由此可提高程序单元之间关联的清晰度。

库卡机器人干货——如何利用 KRL 编程

程序行缩进

注意:缩进效应只是视觉上的。 缩进的程序行在程序运行时与未缩进的程序行一样得到处理。

通过 Fold 隐藏程序行:

KUKA 机器人编程语言可将程序行折叠和隐藏到 Fold 中。 用户因此而看不到这些程序行。这使程序的阅读变得更加简洁方便。 以后可在专家用户组中打开和编辑 Fold。

库卡机器人干货——如何利用 KRL 编程

关闭的 Fold

库卡机器人干货——如何利用 KRL 编程

打开的 Fold

Fold 的颜色:

库卡机器人干货——如何利用 KRL 编程

10.3 链接机器人程序

子程序技术: 利用子程序技术可将机器人程序模块化,因而可以有效结构设计程序。 目的是不将所有指令写入一个程序,而是将特定的流程、计算或过程转移到单独的程序中。

通过使用子程序产生了一系列的优点:

原则上可将子程序分为两种不同的类型

库卡机器人干货——如何利用 KRL 编程

全局子程序示意图


一个全局子程序是一个独立的机器人程序,可从另一个机器人程序调用。可根据具体要求对程序进行分支,即某一程序可在某次应用中用作主程序,而在另一次则用作子程序。

库卡机器人干货——如何利用 KRL 编程

示意图: 局部子程序

局部子程序是集成在一个主程序中的程序,即指令包含在同一个 SRC 文件中。 子程序的点坐标相应存放在同一个 DAT 文件中。

调用子程序的过程: 每个程序都以 DEF 行开始并以 END 行结束。 如果要在主程序中调用子程序,则正常情况下子程序会从 DEF 运行至 END。 到达 END 行后,程序运行指针重新跳入发出调用指令的程序 (主程序)。

库卡机器人干货——如何利用 KRL 编程

调用子程序的过程

注意:为了能提早退出子程序 (即在 END 行之前),可以在子程序中编入 RETURN 指令。 程序读到该程序行时,即可提前终止子程序的运行。

调用子程序的操作步骤:

为了对子程序调用进行编程,必须已选择用户组 “ 专家 ”。 子程序调用的句法为:

??( )

1. 在主菜单中选择 配置 > 用户组。 将显示出当前用户组。

2. 若欲切换至其它用户组,则: 按下登录 …。 选定用户组专家。

3. 输入密码 kuka,然后用登录确认。

4. 用打开将所需的主程序载入编辑器

库卡机器人干货——如何利用 KRL 编程

5. 将光标定位在所需的行内

6. 输入子程序名称和括号,例如:myprog( )

库卡机器人干货——如何利用 KRL 编程

7. 用关闭图标关闭编辑器并保存修改