Kemro
KeMotion 应用及编程手册 应用及编程手册 应用及编程手册 应用及编程手册 V 2.3
KEBA CN,上海市闵行区浦江高科技园区新骏环路188号15幢101室 Phone: +86 21 34637166, Fax: +86 21 34637155, [email protected], www.keba.com
修改记录
版本 日期 修改章节 描述 修改者
2.0 2014-04-11 所有 手册的编写
hzf,zhzg, zhxh,lijx, wangp 2.2 2014-05-12 所有 章节校验 KeMotion 2.3 2014-06-30 附录7 添加附录文档详解 Luphy
本操作手册最终解释权归科控工业自动化设备(上海)有限公司所有 如有疑问,请致电科控工业自动化设备(上海)有限公司KeMotion技术部咨询
目 录
1 KeTop 简介 简介 简介 简介 ... 1
1.1 KeTop界面简介界面简介界面简介界面简介... 1
1.2 配置管理配置管理配置管理配置管理... 2
1.2.1 维护维护维护维护...2
1.2.2 输入输出口监控输入输出口监控输入输出口监控输入输出口监控...6
1.3 变量管理变量管理变量管理变量管理... 8
1.4 项目管理项目管理项目管理项目管理... 9
1.4.1 项目管理项目管理项目管理项目管理...9
1.4.2 程序执行管理程序执行管理程序执行管理程序执行管理...9
1.5 程序管理程序管理程序管理程序管理... 10
1.5.1 程序界面程序界面程序界面程序界面...10
1.5.2 程序指令与编辑程序指令与编辑程序指令与编辑程序指令与编辑...11
1.6 位置管理位置管理位置管理位置管理... 11
1.7 报警报告处理报警报告处理报警报告处理报警报告处理... 13
2 运动指令组 运动指令组 运动指令组 运动指令组 ... 15
2.1 PTP ... 15
2.1.1 pos参数参数参数参数...15
2.1.2 dyn参数参数参数参数...16
2.1.3 ovl参数参数参数参数...18
2.1.4 PTP指令配置不同参数指令配置不同参数指令配置不同参数指令配置不同参数...21
2.2 Lin... 22
2.2.1 pos参数参数参数参数...22
2.2.2 dyn参数参数参数参数...23
2.2.3 ovl参数参数参数参数...23
2.2.4 Lin指令配置不同的参数指令配置不同的参数指令配置不同的参数指令配置不同的参数...23
2.3 Circ ... 24
2.4 PTPRel... 25
2.5 LinRel ... 26
2.6 StopRobot... 26
2.7 WaitIsFinished... 26
2.8 WaitJustInTime... 27
2.9 回零指令组回零指令组回零指令组回零指令组... 27
2.9.1 RefRobotAxis...27
2.9.2 RefRobotAxisAsync ...27
2.9.3 WaitRefFinished...27
3 设置指令组 设置指令组 设置指令组 设置指令组 ... 28
3.1 Dyn... 28
3.2 Dynovr ... 28
3.3 Ovl... 29
3.3.1相对逼近参数相对逼近参数相对逼近参数相对逼近参数... 29
3.3.2 绝对绝对绝对绝对逼近参数逼近参数逼近参数逼近参数... 29
3.4 Ramp ...30
3.5 Refsys ...32
3.5.1 三点三点三点三点(((含原点(含原点含原点含原点)))示教法)示教法示教法示教法... 33
3.5.2 三点三点三点三点(((无原点(无原点无原点无原点)))示教法)示教法示教法示教法... 36
3.5.3 一点一点一点一点(((保持姿态(保持姿态保持姿态保持姿态))))示教法示教法示教法示教法... 38
3.6 Tool...39
3.6.1 工具坐标系的示教工具坐标系的示教工具坐标系的示教工具坐标系的示教... 39
3.7 OriMode...45
4 系统功能指令组 系统功能指令组 系统功能指令组 系统功能指令组 ... 46
4.1 …:=…(赋值赋值赋值赋值) ...46
4.2 //…(注解注解注解注解) ...46
4.3 WaitTime ...46
4.4 Stop...46
4.5 Info ...46
4.6 Warning ...47
4.7 Error ...47
4.8 Random...47
4.9 时间计量命令时间计量命令时间计量命令时间计量命令...48
4.9.1 CLOCK.Stop... 48
4.9.2 CLOCK.Read... 48
4.9.3 CLOCK.Reset ... 48
4.9.4 CLOCK.Start... 48
4.9.5 CLOCK.ToString ... 48
4.9.6 TIMER.Start ... 48
4.9.7 TIMER.Stop... 48
4.9.8 SysTime ... 48
4.9.9 SysTimeToString ... 48
4.10 数学运算指令数学运算指令数学运算指令数学运算指令...49
4.10.1 SIN ... 49
4.10.2 COS... 49
4.10.3 TAN... 49
4.10.4 COT ... 49
4.10.5 ASIN... 49
4.10.6 ACOS ... 49
4.10.7 ATAN... 49
4.10.8 ACOT... 49
4.10.10 ATAN2... 49
4.10.11 LN... 49
4.10.12 EXP ... 49
4.10.13 ABS ... 49
4.10.14 SQRT ... 49
4.11位运算及转换指令位运算及转换指令位运算及转换指令位运算及转换指令...50
4.11.1 SHR... 50
4.11.2 SHL ... 50
4.11.3 ROR ... 50
4.11.4 ROL ...50
4.11.5 SetBit ...50
4.11.6 SetBit ...50
4.11.7 ResetBit ...50
4.11.8 CheckBit...50
4.11.9 STR ...50
5 流程控制指令组 流程控制指令组 流程控制指令组 流程控制指令组 ... 51
5.1 CALL…... 51
5.2 WAIT…... 51
5.3 IF…THEN…END_IF,,,,ELSIF…THEN,,,,ELSE... 51
5.4 WHILE…DO…END_WHILE ... 51
5.5 LOOP…DO…END_LOOP... 52
5.6 RUN,,,,KILL ... 52
5.7 RETURN ... 52
5.8 GOTO…,,,,IF…GOTO…,,,,LABEL… ... 52
6 输入输出指令组 输入输出指令组 输入输出指令组 输入输出指令组 ... 53
6.1 数字量输入输出指令组数字量输入输出指令组数字量输入输出指令组数字量输入输出指令组... 53
6.1.1 DIN.Wait ...53
6.1.2 DOUT.Pulse ...53
6.1.3 DOUT.Set ...53
6.1.4 DINW.Wait ...54
6.1.5 DINW.WaitBit ...54
6.1.6 DOUTW.Set ...54
6.2 模拟量输入输出指令组模拟量输入输出指令组模拟量输入输出指令组模拟量输入输出指令组... 55
6.2.1 AIN.WaitLess,,,,AIN.WaitGreater ...55
6.2.2 AIN.WaitInside,,,,AIN.WaitOutside...55
6.2.3 AOUT.Set ...56
6.3 RC、、、、IEC和外部和外部和外部和外部IO设备之间的关联设备之间的关联设备之间的关联设备之间的关联... 56
7 触发指令组 触发指令组 触发指令组 触发指令组 ... 61
7.1.OnDistance... 61
7.2 OnParameter ... 62
7.3.OnPlane ... 63
7.4.OnPosition... 64
8 区域监控 区域监控 区域监控 区域监控 ... 65
8.1新建新建新建新建Area... 65
8.2 配置配置配置配置Area ... 66
8.3 Scope模型中区域的监控模型中区域的监控模型中区域的监控模型中区域的监控... 72
8.4 共享工作空间共享工作空间共享工作空间共享工作空间... 76
8.5 区域监控指令集区域监控指令集区域监控指令集区域监控指令集... 78
8.5.1 Activate/Deactivate...78
8.5.2 IsPosInArea... 78
8.5.3 PosHasSpaceViolation... 78
8.5.4 Connect/Disconnect ... 78
8.5.5 ActivateSmoothMove ... 78
8.5.6 WaitRobInside ... 79
8.5.7 SetTransformation... 79
8.5.8 SetBoxSize ... 79
8.5.9 SetCylinderSize... 79
9 视觉 视觉 视觉 视觉与跟踪 与跟踪 与跟踪 与跟踪 ... 80
9.1 PLC配置配置配置配置...80
9.2传送带跟踪功能的实现传送带跟踪功能的实现传送带跟踪功能的实现传送带跟踪功能的实现...81
9.3 视觉功能的实现视觉功能的实现视觉功能的实现视觉功能的实现...82
9.4 RC的配置的配置的配置的配置...84
10 码垛 码垛 码垛 码垛 ... 93
10.1 简单码垛简单码垛简单码垛简单码垛...93
10.1.1 准备工作准备工作准备工作准备工作... 93
10.1.2 码垛配置向导码垛配置向导码垛配置向导码垛配置向导... 95
10.1.3 工艺程序和最终效果工艺程序和最终效果工艺程序和最终效果工艺程序和最终效果... 101
10.2 高级码垛高级码垛高级码垛高级码垛...103
10.2.1高级码垛应用组成高级码垛应用组成高级码垛应用组成高级码垛应用组成... 103
10.2.2高级码垛高级码垛高级码垛高级码垛的配置的配置的配置的配置... 105
10.2.3工艺程序及效果工艺程序及效果工艺程序及效果工艺程序及效果... 110
附录 附录 附录 附录 ... 114
附录一 附录一 附录一 附录一软件光盘介绍软件光盘介绍软件光盘介绍软件光盘介绍...114
附录二 附录二 附录二 附录二制作制作制作制作CF卡卡卡卡...117
附录三附录三 附录三附录三安装示教器程序安装示教器程序安装示教器程序安装示教器程序...错误!未定义书签。 附录四 附录四 附录四 附录四打开打开打开打开KeStudio程序并写入控制器程序并写入控制器程序并写入控制器程序并写入控制器((((以模板程序为例以模板程序为例以模板程序为例以模板程序为例))))...125
附录五附录五 附录五附录五关于示教器的连接关于示教器的连接关于示教器的连接关于示教器的连接...128
附录六 附录六 附录六 附录六利用利用利用利用Scope程序来查看机器人的运动程序来查看机器人的运动程序来查看机器人的运动程序来查看机器人的运动...130
附录七 附录七 附录七 附录七 KeMotion文档介绍文档介绍文档介绍文档介绍...133
1 KeTop 简介
1.1 KeTop 界面简介
KeTop 是 KEBA 公司专门为工业机器人手持终端提供的硬件解决方案,该手持终 端运行 KEBA 公司自主研发的人机界面软件 TeachView。该人机界面具有易操作、人 性化,符合人机工程学。
图 图 图
图1111 --- 1 -1 1 1 TeachView TeachView TeachView TeachView 登录界面
图左侧的 灯与 按钮分 别为状态 与配 置管理 部分,而 右侧 按钮为 机器人动 作操 作按 钮,底部的按钮则是调节部分。除了上述三部分,还有急停按钮、USB 接口、手动/自 动开关。左侧4 个灯表示了系统运行状态。系统正常启动为RUN 灯亮,绿色。发生错 误Error 灯会亮,红色。机器人上电时Motion 灯亮,绿色。
左 侧 7 个 图 标 , 分 别 为 自 定 义 界 面 、 配 置 管 理 、 变 量 管 理 、 项 目 管 理 、 程 序 管 理、坐 标显 示、 信息 报告管 理。 右侧 机器 人动作 操作 部分 ,通 过按“+”与 “-”按键 可以在编程或者点动时调节机器人的坐标位置,点击“2nd”按键可以翻到下一页(附 加轴页)。Start 和Stop 按钮与程序运行和停止有关。
底部 F1、F2、Rob、F/B 为闲置未定义按钮,Mot 按钮用于机器人上电或下电,
Jog 用于切换机器人坐标系(轴坐标系、世界坐标系、工具手坐标系),Step 用于切换程 序进入单步模式还是连续模式。V+和V-用于调节机器人运动速度。
在 主 界 面 顶 部 , 有 一 个 状 态 栏 , 它 包 含 了 机 器 人 的 操 作 模 式 、 机 器 人 状 态 及 名 称 、 坐 标 系 、 运 动 调 节 速 度 、 项 目 程 序 名 称 、 程 序 状 态 及 执 行 模 式 、 急 停 开 关 的 状 态、使用者等级等有关机器人系统状态方面的信息。
1.2 配置管理
1.2.1 维护维护维护维护
以下简要介绍一下维护界面底部的配置按钮:
(1)设置界面
设置界面 主要 完成用 户的登入 、登 出和系 统设置。 登录 界面可 以选择要 登录 的用 户,以及是否 具有写权 限和控制权。 系统设置 包括界面语言 选择以及 日期、时间的设 置,如下图。
还有一个显示设置,该指令作用是锁屏,系统默认锁屏时间为 10s。在锁屏期间所 有按钮失效,主要作用是在锁屏期间进行触摸屏清洁工作,防止误操作。
(2)用户界面
用户为当前连接的使用者,包括其IP 地址,等级以及是否有写入权限,如下图。
(3)管理界面
只有登录 用户 为管理 员用户时 才可 以打开 管理界面 ,可 以管理 用户组, 对他 们创 建、编辑及删除等操作,如下图所示:
(4)版本界面
版本界面显示控制器、手持设备和工具使用的版本信息。
(5)信息界面
HMI 重启按键的主要作用是重新启动手持设备,重启按键的主要作用是重新启动 控制系统。如图:
创建按钮 ,按 下该按 钮时,打 开一 个选择 对话框, 通过 该对话 框可以选 择是 否创 建状态报告,该状态报告保存在控制器的CF 卡上。
输出可以将用户选择的状态报告保存到插在控制器或者 KeTop上的USB 存储设备 上。
(6)网络界面
1.2.2 输入输出口监控输入输出口监控输入输出口监控输入输出口监控
输入输出 监测 该界面 显示系统 的硬 件配置 ,详细显 示勾 选的硬 件的具体 内容 ,而 信息则显示当前选中项的具体信息。
概览与详 细可 以相互 切换。进 入详 细模式 后,通过 点击 概览可 以切换到 输入 输出 监测页面。
过滤条件 通过 这个按 钮可以设 置过 滤器开 启或者关 闭。 如果过 滤条件开 启, 那么 安装按钮可用,如果过滤条件关闭,那么安装按钮不可用。
安装打开过滤器设置的对话框(选择要被显示的模式),如下图:
察看打开一个子菜单的如下图规格:紧凑、正常、列表。
Unforce all 该按钮用于取消所有强制的IO 状态。
1.3 变量管理
变量监测 点击 该选项 进入变量 监测 的界面 ,界面中 分布 着已经 存在的系 统变 量、
全局变 量以 及项 目变 量,“+”可 以展开 显 示,“-”可以 收缩 显 示。并 有变 量类 型过 滤器可选择,点击选择“ALL”,则显示所有变量。
点击变量 按钮 会展开 删除、粘 贴、 复制、 剪切、重 命名 、新建 选项,用 以对 某项 或子目录下的变量进行操作。
点击教导 按钮 ,用于 示教保存 在程 序运行 过程中需 要的 位置。 清除未用 可以 删除 所有没有使用的变量,而检查则用于检查所选变量是否被使用。
1.4 项目管理
1.4.1 项目管理项目管理项目管理项目管理
点击项目 后显 示项目 管理界面 ,该 界面显 示当前已 经被 加载的 项目或者 程序 ,点 击“+”可展开子目录下程序名称列表。
项目打开 后, 可以通 过终止按 钮关 闭,而 程序可以 通过 加载或 打开按钮 打开 ,在 加载的情况下 ,程序可 以示教、编程 和运行; 而在打开的情 况下,程 序只允许编程。
而 且 在 加 载 的 情 况 下 , 需 按 终 止 按 钮 才 能 将 程 序 关 闭 , 而 在 打 开 的 情 况 不 需 要 。 注 意:不同项目的程序不能同时打开,需关闭暂时不用的项目及其下的程序。
信息按钮 显示 当前选 中程序的 名称 ,生成 日期和修 改日 期。按 钮刷新可 对项 目和 程序进行相关 的更新。 按钮文件可对 项目或程 序进行新建、 删除、重 命名、剪切复制 等操作。
1.4.2 程序执行管理程序执行管理程序执行管理程序执行管理
按执行进 入后 ,该界 面显示为 正在 执行过 程中的项 目和 程序, 具体内容 显示 为执 行程序的类型、状态等。
按钮显示可以显示选中程序的具体内容,单步/连续设置执行程序的运行为单步或 连续。结束则可关闭当前执行的程序。
1.5 程序管理
1.5.1 程序界面程序界面程序界面程序界面
点击 进入后,打开被加载程序的编程或者运行界面。
在加载的 情况 下,编 辑界面背 景为 白色, 而在打开 的情 况下, 背景则为 灰色 。界 面边框说明如图所示:
程序界面底部按钮说明:
更改用来修改已经生成的指令;
新建用以调用指令库,并生成程序所需指令;
设置PC 将程序指针指向某个光标,并且下一个开始指令从光标处开始。该指令按 钮只有在程序加载的时候激活。
单步/连续通过该按钮用户可以使程序在单步模式或连续模式之间切换。
该按钮为翻页按钮;
编 辑 按 钮 打 开 后 包 括 了 键 盘 、 子 程 序 、 关 闭 子 程 序 、 格 式 、 查 找 、 注 释/取 消 注 释,不激活/激活的按钮;
选择打开后,包括全部选取、剪切、复制、粘贴等按钮;
删除将程序中光标选取的行删除;
撤销用以取消上一步的操作,插入,替代,删除等操作。另外,在 KeTop 右侧操 作部分,有两个按钮在程序中经常使用到:开始键Start 和停止键Stop。
1.5.2 程序指令与编辑程序指令与编辑程序指令与编辑程序指令与编辑
点击新建按钮,弹出指令选择界面,当前指令库包括:
除了上述指令外,应用开发人员可以通过TeachEdit 等软件将编辑的扩展指令导入 进来。特别注 意的是, 收藏夹是一个 指令收藏 夹,可以将重 复使用或 喜欢用的指令添 加进去。
1.6 位置管理
点击位置选项后进入位置界面。
点动按钮 可以 在实际 操作或编 程时 改变机 器人点动 的坐 标系, 其中有轴 坐标 系,
世界坐标系,工具坐标系三个坐标系。如图:
点动速度按钮可以调节当前机器人运动速度,如图:
界面底部有 3 个按钮伺服、关节、世界,点击它们可以更换坐标系显示界面。如 下图:
1.7 报警报告处理
进入报警 或者 报告界 面后,用 户可 以查看 报警信息 或者 日志。 在界面中 可以 选择 要查看的组,过滤无用信息。
报警界面如下图所示:
报告界面如下图所示:
2 运动指令组
2.1 PTP
该指令表示机器人TCP末端将进行点到点的运动(point to point),执行这条指令 时所有的轴会同时插补运动到目标点。在程序中新建指令 PTP,确认后弹出窗口,具 体如下图:
共有三个参数可配置,分别是 pos,dyn,ovl(在整个 PTP 指令中,其中 dyn 和 ovl参数是可选的,根据实际工艺进行选择)。
2.1.1 pos参数参数参数参数
pos表示 TCP点的位置,即执行 PTP这条指令之后,TCP点会走到 ap0点,其内 部参数如下图所示(表示轴的位置,6 轴机器人有 6 个轴的位置,如果只有三个轴的 话,只显示到 a3,其他的以此类推。后面的值表示轴相对于零点的位置,如果是旋转 轴的话,单位是度,如果直线轴的话,单位是mm):
2.1.2 dyn参数参数参数参数
dyn 表 示 执 行 这 条 指 令 过 程 中 机 器 人 的 动 态 参 数 , 其 中 包 括 12 个 参 数 , 具 体 如 下:
(1)其中 velAxis,accAxis,decAxis,jerkAxis 分别表示在自动运行模式下运动 时 的 轴 速 度 , 轴 加 速 度 和 减 速 度 , 轴 的 加 加 速 度 , 其 值 是 一 个 相 对 于 最 大 值 的 百 分 比,值得范围是 0-100.系统的默认值如上所示,在 PLC 配置中可以设置,但是有时候 默认值和PLC配置值会有略微偏差,具体如下所示:
(2)另外4个参数 vel,acc,dec,jerk分别表示在自动运行模式下运动时 TCP点 的速度,加速度,减速度和加加速度,在PLC配置里面可以设置,具体如下所示:
(3)还有4个参数velOri,accOri,decOri,jerkOri分别表示在自动运行模式下运 动时 TCP姿态变化的速度,加速度,减速度和加加速度。在 PLC配置里面可以设置,
如下图所示:
2.1.3 ovl参数参数参数参数
ovl表示机器人运动逼近参数,有三种类型的逼近参数,如下所示:
(1)其中 OVLABS 表示绝对逼近参数,定义了机器人运动逼近可以允许的最大 偏差,如下所示:
posDist 表示当 TCP 点的位置距离目标位置的最大值,即当 TCP 点距离目标位置 的值等于posDist时,机器人轨迹开始动态逼近。
oriDist表示当 TCP点的姿态距离目标位置的姿态的最大值,即当 TCP点的姿态与 目标位置的姿态相差的大小等于oriDist时,机器人轨迹开始动态逼近。
linAxDist与rotAxDist表示的是附加轴的动态逼近参数。
例子中使用的是绝对逼近参数,走出来的效果如下所示:
图形靠内部较圆滑的轨迹的绝对逼近参数设置如下:
靠外部的轨迹的参数设置如下:
(2)另外 OVLREL 表示相对逼近参数,定义了机器人运动逼近的百分比,如下 所示(其值是百分比,值范围是 0-200,当等于 0的时候,相当于没有使用逼近参数,
默认值是100):
例子中使用的是相对逼近参数,走出来的效果如下所示:
图形靠内部较圆滑的轨迹的相对逼近参数值是 50,外面的轨迹的参数值是 0(如 果值越大,其效果就会越明显,具体数值根据工艺需求而定)。
(3)还有 OVLSUPPOS,如下所示(其值是百分比,值范围是 0-200,默认值为 200):
具体详见3.3.
2.1.4 PTP指令指令指令指令 配置不同参数配置不同参数配置不同参数配置不同参数
(1)PTP指令中只配置了pos,没有配置dyn和ovl参数,如下所示:
(2)PTP指令中只配置了pos和dyn参数,没有配置ovl参数,如下所示:
(3)PTP指令中只配置了pos和ovl参数,没有配置dyn参数,如下所示:
(4)PTP指令中配置了pos、ovl和dyn参数,如下所示:
综上所述四种情况配置出的指令如下所示:
2.2 Lin
Lin 指令为一种线性的运动命令,通过该指令可以使机器人 TCP 末端以恒定的速 度直线移动到目标位置。假如直线运动的起点与目标点的 TCP姿态不同,那么 TCP从 起点位置直线运动到目标位置的同时,TCP 姿态会通过姿态连续插补的方式从起点姿 态过渡到目标点的姿态。
2.2.1 pos参数参数参数参数
LIN指令中的 pos参数是 TCP点在空间坐标系中的位置,即执行 LIN这条指令之 后,TCP 点会走到 cp0 点,其内部参数如下图所示(x,y,z 分别表示 TCP 点在参考 坐标系三个轴上的位置,a,b,c表示 TCP 点姿态,mode表示机器人运行工程中的插 补模式,在指令执行过程中,轨迹姿态插补过程中插补模式不能更改):
2.2.2 dyn参数参数参数参数
dyn参数与1.1.2中dyn参数一致,具体介绍详见2.1.2。 2.2.3 ovl参数参数参数参数
ovl参数与1.1.3中ovl参数一致,具体介绍详见2.1.3与3.3。 2.2.4 Lin指令配置不同的参数指令配置不同的参数指令配置不同的参数指令配置不同的参数
(1)Lin指令中只配置了pos,没有配置dyn和ovl参数,如下所示:
(2)Lin指令中只配置了pos和dyn参数,没有配置ovl参数,如下所示:
(3)Lin指令中只配置了pos和ovl参数,没有配置dyn参数,如下所示:
(4)Lin指令中配置了pos、ovl和dyn参数,如下所示:
综上所述四种情况配置出的指令如下所示:
2.3 Circ
圆弧指令使机器人TCP末端从起点,经过辅助点到目标点做圆弧运动。
该指令必须遵循以下规定:
1、机器人TCP末端做整圆运动,必须执行两个圆弧运动指令。
2、圆弧指令中,起始位置、辅助位置以及目标位置必须能够明显的被区分开。
注意:起始位置是上一个运动指令的目标位置或者当前机器人TCP位置。
另外两个参数动态与动态逼近参数与PTP中的一样。
2.4 PTPRel
该指令为 PTP 插补相对偏移指令,该指令的相对偏移可以是位移也可以是角度。
该指令总是以 当前机器 人位置或者上 一步运动 指令的目标位 置为起点 位置,然后机器 人相对移动位移偏移或者角度偏移。运动还可以设置Dyn和Ovl参数。如图所示:
例如生成指令PTP (ap0)和PTPRel (ad0),机器人首先执行PTP(ap0)指令,然后 执行PTPRel(ad0)指令。当执行PTPRel时则相对于PTP 指令的目标点 ap0做偏移运 动,假如在 PTPRel中设置了 da1:real的值为 30,那么 PTPRel运行时相对于 ap0点向 A1的正方向转动了30度,其它轴无转动。
参数 dist 中的 da1,da2,da3,da4,da5,da6 表示的是每个轴相对的偏移量,如 果是旋转轴的话,单位 是度,如果是直线轴的 话,单位是 mm。该 例使用的是六轴关 节机器人,所 以这里有 六个参数,单 位都是度 ,如果是三轴 的直线坐 标系的话,则只 有三个参数,单位是mm。其他的以此类推。
另外两个参数动态与动态逼近参数与PTP中的一样。
2.5 LinRel
该 指 令 为 线 性 插 补 相 对 运 动 指 令 , 该 指 令 的 相 对 偏 移 是 位 移 , 还 有 机 器 人 的 姿 态。该指令总 是以当前 机器人位置或 者上一步 运动指令的目 标位置为 起点位置,然后 机器人相对移动位移偏移或者姿态偏移。运动还可以设置 Dyn和 Ovl参数,与 PTPRel 类似,其设置如图:
参数 dist中的 dx,dy,dz表示的是在空间坐标系下在 x,y,z三个方向上的相对 偏移量,单位是mm;da,db,dc表示的是机器人的姿态相对偏移量,单位是度、
另外两个参数动态与动态逼近参数与PTP中的一样。
2.6 StopRobot
该指令是用来停止机器人运动并且丢弃已经计算好的插补路径。
StopRobot 停止的是机器人运动,而不是程序,因此机器人执行该指令后将以机器 人停止的位置做为运动起点位置,然后重新计算插补路径以及执行后续的运动指令。
2.7 WaitIsFinished
该命令用 于同 步机器 人的运动 以及 程序执 行。因为 在程 序当中 ,有的是 多线 程多 任务,有的标 志位高, 无法控制一些 命令运行 的先后进程。 使用该命 令可以控制进程
的先后顺序, 使一些进 程在指定等待 参数之前 被中断,直到 该参数被 激活后进程再持 续执行。
2.8 WaitJustInTime
该命令类似于同步指令,但是执行该指令时不会影响到机器人的动态参数。
2.9 回零指令组
2.9.1 RefRobotAxis
该指令用 于标 定回零 位置,可 以单 步运行 ,执行后 机器 人根据 配置中的 回零 方式 运动,当机器人到达零点后,保存当前机器人轴位置做为该轴的零位。
轴在回零后要走到的一个设定的目标值,如果该值没有的话,则只回零到零点。
2.9.2 RefRobotAxisAsync
该指令允 许多 轴同时 回零。这 个指 令等待 机器人回 零动 作结束 。为了能 够知 道是 否完成回零,要配合使用WaitRefFinished.
2.9.3 WaitRefFinished
该指令等 待所 有异步 回零运动 完成 或在某 回零程序 中出 现错误 。假如回 零已 经成 功完成,那么就会返回TRUE,否则就会返回FALSE。
3 设置指令组
3.1 Dyn
该指令配置机器人运动的动态参数。在 PTP 运动中配置轴速度的百分比,笛卡尔 动态参数使用 绝对值参 数,执行该指 令后,在 自动模式下机 器人以设 定的动态参数运 动知道动态参数被需改。
上述两个程序走出来的效果是一样的。
具体详见2.1.2。
3.2 Dynovr
配置机器 人运 动的动 态倍率参 数。 执行该 指令后可 以按 照配置 的百分比 降低 机器 人动态参数。示教器上的V+、V-按钮是设置倍率参数。
动态倍率变量参数命令会对移动速度参数整体产生影响。
此命令不 仅同 重叠命 令一样可 以变 更移动 速度,同 时该 命令中 设置的比 率还 会对 加速度、减速度进行限制。
如上图所示,机器人在运行的时候,机器人是按照倍率参数 50%乘以动态倍率参 数50%的速度来走轨迹的(25%)。
3.3 Ovl
该指令用 于配 置机器 人运动逼 近参 数,参 数分为相 对逼 近参数 和绝对逼 近参 数。
相 对 逼 近 参 数 (OVLREL) 定 义 了 机 器 人 运 动 逼 近 的 百 分 比 , 而 绝 对 逼 近 参 数 (OVLABS)定义了机器人运动逼近可以允许的最大偏差。
3.3.1相对逼近参数相对逼近参数相对逼近参数相对逼近参数
重叠的指 定是 指对由 上一移动 命令 向下一 移动命令 过渡 时的切 换时间所 进行 的设 置。
相对指定能够将上一移动命令从开始减速到运行结束的时间进行重叠。
在相对指定中,规定上一移动命令从开始减速到停止运行的时间为 100%,若无重 叠则为0%。
3.3.2 绝对绝对绝对绝对
逼近参数 逼近参数 逼近参数 逼近参数
绝对指定 中重 叠的指 定是指, 由上 一移动 命令向下 一移 动命令 过渡时的 切换 时间 通过距目标位置的长度进行指定。
可指定范围即为配置中的允许范围。
具体详见2.1.3.
3.4 Ramp
设置加速 度的 加速类 型。可设 置的 类型有 :梯形倾 斜、 正弦波 倾斜、正 弦波 平方 倾斜、最小加加速度倾斜,分别如下图所示,另外还有一个时间最优化方式倾斜。
在PLC中可以进行配置,如下图所示:
在示教器上设置如下所示:
倾斜设置 用于 设置已 指定的加 速度 参数, 是一种加 速度 曲线类 型。可通 过此 命令 对倾斜类型进行设置。
目前只可 对左 右对称 的梯形倾 斜类 型进行 倾斜参数 的设 置,梯 形的加减 速曲 线类 型的倾斜可通过(0< param <= 0.5)进行设置。
加减速 曲线 类型 SINE 及 SINEQUARE 的 倾斜设 置的 初始 值已 设定为 (param= 0.5)。
若未对本 项进行 设置, 在倾斜曲 线、梯 形的倾 斜设置中 ,作为 预设初 始值 Param
=0.5,若未对本项进行设置,则可选择使用该初始值。
当执行上述程序时,轴1的加速度波形如上图左边图形所示,为正弦波。
当执行上述程序时,轴1的加速度波形如上图左边图形所示,为梯形波。
上述两条指令都是轴1绕Z轴往复旋转。其他类型的加速度波形可自行学习。
3.5 Refsys
设置参考 系统 指令。 通过该指 令可 以为后 续运行的 位置 指令设 定一个新 的参 考坐 标系。如果程序中没有设定参考坐标系,系统默认参考坐标系为世界坐标系。
参考坐标系有三种类型,分别是 CARTREFSYS、CARTREFSYSEXT、 CARTREFSYSVAR。
其中CARTREFSYS类型的主要参数有参考坐标系的基坐标系baseRefSys,即所要 建立的参考坐标系是参考哪个坐标系建立的,x,y,z 分别是相对于基坐标系的位置偏 移量,a,b,c是相对于基坐标系的姿态。如下所示:
CARTREFSYSEXT 类 型的参考 坐标系是 外 部 PLC 功 能块通 过端 口映射赋 给 RC 的,所以主要参数有基坐标系和映射端口。该功能块的使用需要在 IEC 程序中调用功 能块RCE_SetFrame.
CARTREFSYSVAR 类型的参考坐标系是外部 PLC 功能块通过端口映射赋给 RC 的,所以主要参数有基坐标系和映射端口,在做 Tracking 功能时用的比较多。该功能 块的使用需要在IEC程序中调用功能块RCTC_UpdateFrameInterface。
.
3.5.1 三点三点三点三点((((含原点含原点含原点含原点)))示教法)示教法示教法示教法
点击X=按钮进入Reference Systems
(1)选择3点法带原点的示教方法
(2)首先示教原点的坐标
(3)将机器人沿着X轴方向运动记录下当前的坐标
(4)再将机器人沿着XY平面运动,记录下坐标
(5)这样就生成了新的坐标系crs0
3.5.2 三点三点(三点三点((无原点(无原点无原点)无原点)))示教法示教法示教法示教法
(1)选择第二种方法3点法(无原点)
(2)首先在X轴方向示教一个点
(3)接着我们在X轴上示教第二个点
(4)接着我们在Y轴或者Z轴上示教一个点(下图Y方向)
这样一个新的坐标系就建好了
当我们将坐标系切换到我们新建的坐标系下面的时候,我们可以看到当我们 走原点的时候它将会走到我们示教的X轴方向的第二个点。
3.5.3 一点一点(一点一点((保持姿态(保持姿态保持姿态)保持姿态)))示教法示教法示教法示教法
最后还有一种方法就是1点法(保持方向)。
(1)我们只要示教一个原点就可以了,且base坐标需与示教界面一致。
(2)将机器人开到你想要的坐标系的原点。
(3)这就得到新的坐标系,相对于base坐标系移动了原点。
3.6 Tool
工具坐标 指令 为机器 人设置一 个新 工具坐 标。通过 该指 令可以 修改机器 人末 端工 作点。
3.6.1 工具坐标系的示教工具坐标系的示教工具坐标系的示教工具坐标系的示教
Tool 命令为机器人的工具(抓手)设置新的位置。设置后将变更机器人的作业范 围。通过该指令可以修改机器人末端工作点。
首先我们打开 teachview,我们加载一个程序,点击 New,选择 Settings,Tool 指 令,然后新建一个坐标系t0。
(1)然后点击X=选择Tools进到下图。
(2)我们选择四点法示教方法,找到示教物体,将机器人的TCP末端示教到示教 物体处以不同的姿态。
(3)示教完之后我们得到了 t0 的坐标系,以及运行 Tool(t0)后机器人末端坐标 的变化
(4)接着我们选择 1POINT 6D方法。
我们将工件与地面垂直,然后示教。
(5)最后我们得出了 t0 完整的的坐标系,以及运行 Tool(t0)之后坐标系的变 化。
3.7 OriMode
该指令用于设置机器人 TCP 姿态插补,如果程序中没有指定姿态插补方式,系统 默认机器人配置文件中指定的姿态插补方式。
4 系统功能指令组
4.1 …:=…( 赋值 )
给 某 变 量 赋 值 , 左侧为 变 量 , “:=” 为 赋值操 作 , 右 侧 为 表 达式。 表 达 式 的 类 型 必须符合变量的数据类型。例如:
4.2 //…( 注解 )
用于说明程序的用途,使用户容易读懂程序。
4.3 WaitTime
用于设置机器人等待时间,时间单位为ms,假如设置等待1s,生成命令为:
4.4 Stop
该命令用于停止所有激活程序的执行。如果指令不带参数,等同于按下了 KeTop 终端上的停止按钮。
4.5 Info
发出一个信息通知。信息显示在信息协议和报告协议的 Message 和 Message-Log 栏中。
此外,有可能显示两个附加参数的任何类型信息,第一个参数使用“%1”做为占 位符,第二个参数使用“%2”做为占位符。若在程序中生成指令,生成的指令为:
如图例所示:
单步执行该指令后在信息栏显示:
又如指令:
单步执行该指令后在信息栏显示:
4.6 Warning
发出一条警告信息。信息描述参照 Info 命令。设置基本相同,在程序中若生成指 令为:
单步执行后,显示为:
4.7 Error
发出一条 错误 信息。 错误信息 会导 致程序 停止,错 误必 须被确 认后程序 才可 以继 续执行。信息描述参照Info命令。Error基本与前两者一样,暂不详细介绍。
4.8 Random
产生一个随机数。使用方法如下所示:(生成的随机数赋值给了r0)
4.9 时间计量命令
4.9.1 CLOCK.Stop
停止时钟。时钟只有先前已经被启用后才能被停止。
4.9.2 CLOCK.Read 读取被测时间。
4.9.3 CLOCK.Reset
重置时钟。时钟会被重置即使时钟当前还在运行。
4.9.4 CLOCK.Start 启动时钟。
4.9.5 CLOCK.ToString
同CLOCK.Read 测量时间类似。只是它将时间转变为文本格式 tt :mm:ss.ms。 4.9.6 TIMER.Start
启动定时器。
4.9.7 TIMER.Stop
停止定时器。定时器只有在先前已经启动了以后才能被停止。
4.9.8 SysTime
该指令从控制系统中读取当前系统时间,返回DINT类型数值。
4.9.9 SysTimeToString
该指令将系统时间转变为文本格式“DDD mon dd hh:mm:ss yyy”。当调用没有参数 的SysTimeToString时,该指令返回当前格式化的系统时间。
4.10 数学运算指令
4.10.1 SIN
正弦三角函数 4.10.2 COS
余弦三角函数 4.10.3 TAN
正切三角函数 4.10.4 COT
余切三角函数 4.10.5 ASIN
反正弦三角函数 4.10.6 ACOS
反余弦三角函数 4.10.7 ATAN
反正切三角函数 4.10.8 ACOT
反余切三角函数 4.10.10 ATAN2
返回由X 轴到(y,x)点的角度。
4.10.11 LN
自然对数函数。
4.10.12 EXP
以e为底的指数函数。
4.10.13 ABS
绝对值函数,返回数字的绝对值。
4.10.14 SQRT 开平方根函数。
4.11 位运算及转换指令
4.11.1 SHR
向右移位运算函数。
4.11.2 SHL
向左移位运算函数。
4.11.3 ROR
循环向右移位运算函数。
4.11.4 ROL
循环向左移位运算函数。
4.11.5 SetBit
将某位置1函数。
4.11.6 SetBit
将某位置1函数。
4.11.7 ResetBit
将某位置0函数。
4.11.8 CheckBit
判断某位是否为1函数。
4.11.9 STR
返回与指定数值表达式对应的字符串函数。
5 流程控制指令组
5.1 CALL…
调用指令 ,能 够调用 其它程序 作为 子程序 ,且调用 的程 序必须 在编写程 序的 项目 中。假如需要调用的程序为test,在程序中生成命令为:
5.2 WAIT…
等待指令。当 WAIT 表达式的值为 TRUE,下一步指令就会执行,否则的话,程 序等待直到表达式为TRUE 为止。
5.3 IF…THEN…END_IF , ELSIF…THEN , ELSE
IF 指令用于条件跳转控制。类似于 c++中的 IF 语句。IF 条件判断表达式必须是 BOOL类型。每一个IF指令必须以关键字END_IF做为条件控制结束。
5.4 WHILE…DO…END_WHILE
WHILE指令在满足条件的时候循环执行子语句。循环控制表达式必须是 BOOL类 型。该指令必须以关键字END_WHILE做为循环控制结束。例如:
该指令执行两点之间的循环运动。
5.5 LOOP…DO…END_LOOP
循环次数控制指令。如:
该指令执行两点之间的循环运动,且循环次数为10.
5.6 RUN , KILL
RUN指令调用一个用户程序,该程序与主程序平行运行。RUN调用的程序必须用 KILL指令终止。RUN调用的程序必须是该项目中的程序。(//in test1.tip)
5.7 RETURN
该指令用于终止正在运行的程序。
5.8 GOTO… , IF…GOTO… , LABEL…
GOTO指令用于跳转到程序不同部分。跳转目标通过 LABEL指令定义。不允许从 外部跳转进入内部程序块。内部程序块可能是WHILE循环程序块或者IF 程序块。
IF-GOTO 指令相当于一个缩减的 IF 程序块。IF 条件判断表达式必须是 BOOL 类 型 。 假 如 条 件 满 足 , 程 序 执 行 GOTO 跳 转 命 令 , 其 跳 转 目 标 必 须 由 LABEL 指 令 定 义。
LABEL指令用于定义GOTO跳转目标。
6 输入输出指令组
6.1 数字量输入输出指令组
6.1.1 DIN.Wait
等待直到数字输入端口被设置或重置,或者直到可选的时间终止,例如:
6.1.2 DOUT.Pulse
将数字输出端口设置为 TRUE或者 FALSE持续一段时间,可选参数设置脉冲是否 在程序停止时 能够被中 断,如果可选 参数没有 被设置,那么 该指令自 动默认可选参数 为FALSE。例如:
该程序表示数字输出端口 dout0 将被设置为 TRUE,如果程序没有被中断,那么 2 秒后数字输出端口 dout0 被设置为 FALSE。如果在 2 秒内程序被中断,那么数字输出 端口 dout0 输出 FALSE,程序重新运行后数字输出端口 dout0 重新被设置为 TRUE 直 到剩余的时间结束。
6.1.3 DOUT.Set
对数字输出端口进行设置,设置输出为TRUE或FLASE,例如:
6.1.4 DINW.Wait
这 个 指 令 会 一 直 等 待 直 到 输 入 字 适 合 设 定 值 , 或 者 直 到 可 选 的 时 间 超 时 了 。 例 如:
6.1.5 DINW.WaitBit
等待直到一个输入字指定位被设置或重置。例如:
6.1.6 DOUTW.Set
设置输出字为指定的值。例如:
6.2 模拟量输入输出指令组
6.2.1 AIN.WaitLess,,,,AIN.WaitGreater
该两种指 令功 能是等 待直到模 拟量 输入值 小于或大 于指 定的值 ,或者直 至可 选的 时间超时。例如:
6.2.2 AIN.WaitInside,,,,AIN.WaitOutside
这两种指 令功 能是等 待直到模 拟量 输入值 在一个数 值区 间内或 者外,或 者直 至可 选的时间超时。例如:
6.2.3 AOUT.Set
设置模拟量输出为指定的值。例如:
6.3 RC 、 IEC 和外部 IO 设备之间的关联
下面介绍 RC 中用到 Dout.Set与 IEC 的 RCOutputs 如何关联起来的,如下图所示
(在Kestudio中我们可以POUS一栏中找到如图所示RcOutputs(PRG)):
双击打开看到里面的 doBlock 功能块,与其他的功能块调用一样,需先将 Enable 端置True。
右端的 DO0,DO1 中的数字应与 RC 中的 port 口的选择对应。如下图所示可 将在 IEC中命名为 gDoConnectTool 的端口与 Rc关联,此时就可直接在 RC 中进行操 作。(注:在RC中对此变量的命名可随意只要端口号对应即可)
下面在RC中直接将关联的变量置TRUE,可以看到IEC中同样有效。
上面是RC与IEC之间的关联,下面我们来说一下,如何将RC通过 IEC关联到外 部IO。
首先先进行上面的操作,将 RC 与 IEC 进行关联,其次如下图所示(这里我们选 用DM272进行演示)。
可以看到在 DM272中的端口分为两部分,8 入 8出,这里我们用的是输出,选择 DO0这个端口,切记此端口的命名应与 RcOutputs(PRG)中 doblock功能块中变量名 为同一个,端 口号不用 一样。(注: 由于外部 设备中命名的 变量自定 义为全局变量所 以不需重新命名。)
下面我们在RC中进行操作,效果如下图所示。
综上所述我们知道了如何将 IO从 RC关联到 IEC再到外部设备。其实我们也就学 会了如何将我们编程时在IEC中自定义的变量在RC中进行调用。
其实最主要的是了解 IEC中的 doBlock(类似的还有 diBlock等)这个功能块,我 们可以将它看成 RC与 IEC之间桥梁,只有桥梁搭建好,RC与 IEC之间的 IO才能联 系起来。
7 触发指令组
7.1.OnDistance
触发器可 以在 从起点 运动一定 距离 或者距 离终点一 定距 离时触 发。时间 可选 项表 示机器人在运行到触发点前一定时间触发或者经过触发点后一定时间触发。
在程序中的指令为:
该程序中OnDistance (FROMBEGIN,20)针对的是LIN (CP0), OnDistance (FROMEND,20)针对的是LIN (CP1)。
图中的dist和timeMs为距离和时间选项,可自行更改。
7.2 OnParameter
在下一个 运动 段的某 点触发。 时间 可选项 表示在触 发点 的时间 偏移,如 果时 间数 值为负,表示 机器人在 到达触发点前 的某一时 间触发,如果 时间数值 为正,表示机器 人到达触发点 后某一时 间触发。如果 没有指定 时间偏移,那 么机器人 到达触发点就会 触发。时间偏移限制在-300ms~1000ms。
在程序中的指令为:
该程序中OnParameter是的百分值是直线路径的百分值。
7.3.OnPlane
在笛卡尔空间里定义机器人在某一触发平面上触发。例如:
OnPlane(XYPLANE,200)表示机器人末端在距离XY平面200毫米时触发。如图:
该程序中参考坐标系为 crs0,机器人从 CP3到 CP2作直线运动时,在距离 XY 平 面200毫米处提前触发。
7.4.OnPosition
该指令用于同步触发,当机器人经过指定位置时触发。例如:
该程序中 LOOP 指令执行到第三次 Lin (ap4)时,OnPosition 指令触发,然后执行 dout0.Set等指令。
此处percent为直线路径的百分值。
8 区域监控
8.1 新建 Area
(1)点击X=按钮,选择Variabe Monitor选项。
(2)选择Varible中的New,新建一个新的area。
8.2 配置 Area
(1)点击X=按钮,选择Areas选项。
(2)点击Steup按钮,进入配置界面。
(3)在 1 中选择好需要配置的区域名字,在此处是不可以更改的,2 是区域的状 态,判断区域是否激活,3是在区域激活后判断TCP点是否在区域内部或者外部。
(4)选择区域的形状,有盒状和圆柱状两种。
(5)选择区域类型,有工作区域,禁止区域等。如果是两个机器人的话,还有共 享区域。
(6)配置区域的参考坐标系。默认是世界坐标系。
(7)配置区域的起点坐标,姿态以及区域的大小。在起点坐标是相对于你的参考 坐标系的。
(8)在 1中可以通过一个 IO变量状态来激活区域,2中可以根据区域的状态对一 个IO变量进行赋值。
(9)激活后可以看到区域的激活状态,TCP点和区域之间的位置关系。
(10)如 果是 圆柱形 区域的话 ,在 配置尺 寸的时候 是配 置底圆 半径和圆 柱体 的高 度。
8.3 Scope 模型中区域的监控
(1)工作区域区域激活状态。
(2)工作区域监控关闭状态。
(3)禁止区域激活状态。
(4)禁止区域关闭状态。
(5)当TCP点在禁止区域内的时候,系统会报错。
(6)当TCP点工作区域外部的时候,系统会出现警告。
8.4 共享工作空间
两个机器 人工 作的时 候新建共 享区 域,共 享区域在 同一 时间只 能有一个 机器 人在 内部工作。
(1)一般配置和工作区域都类似。
(2)由于共享区域的工作特性,如果一个机器人在该区域内工作的话,其他的机 器人就需要有一个运动平稳性的设置,尽量减少急加速急减速的情况。
8.5 区域监控指令集
8.5.1 Activate/Deactivate
可以通过这些指令来激活或者冻结区域。
8.5.2 IsPosInArea
这条指令 用于 检查位 置是否在 当前 的区域 内,也能 用于 发信号 区域,只 可以 提过 几何位置(x,y,z)来检查。
8.5.3 PosHasSpaceViolation
这条指令 用于 检查位 置是否违 反工 作区域 或者禁止 区域 的准备 ,不用于 发信 号区 域,只可以提过几何位置(x,y,z)来检查。
8.5.4 Connect/Disconnect
通过两条指令可以建立或者切断一个 BOOL 变量和区域之间的连接,当这个变量 被置为的时候 ,区域被 激活,当变量 被复位的 时候,区域被 冻结,当 一个新的变量连 接被建立了,区域的激活变量根据变量实际状态立即设置。
8.5.5 ActivateSmoothMove
当共享区域被占用的时候,可以在通过该指令的帮助激活动态参数自动调整。
8.5.6 WaitRobInside
通过该指令的帮助可以等待机器人进入区域。
8.5.7 SetTransformation
通过该指令可以根据参考坐标系设置区域的位置和姿态。
8.5.8 SetBoxSize
通过该指令可以设置盒状区域的尺寸大小。
8.5.9 SetCylinderSize
通过该指令可以设置圆柱状区域的大小。
9 视觉与跟踪
视觉跟踪功能是两个独立功能的结合:视觉处理功能(Vision)和传送带跟踪功能
(Tracking)。
在 KEBA 的 系 统 光 盘 中 , 有 关 于 这 两 个 方 面 的 功 能 介 绍 , 具 体 详 情 可 以 参 考
《KeMotion Vision》和《KeMotion Tracking》两个文档。
另外,如果传送带需要用到外部编码器,则需要用到 MM240模块,关于该模块的 功能介绍,请参考《MM 240/A Encoder Interface Module》文档。
9.1 PLC 配置
以标准三轴Delta机器人模板程序为例,首先要进行PLC程序的配置。
(1)首先,我们需要对视觉摄像头进行配置:
在 KeStudio 中我们添加一个视觉模块和摄像头,摄像头分为通用摄像头和康耐视 摄像头,根据实际情况进行选择并将IP地址和端口配好:
(2)传送带如果用到了外置编码器,那么我们还需对其进行配置。
编码器的位置反馈值通过 Count 口进入系统,其在程序中会被用来更新传送带的 位置。
(3)完善机器人的其他配置,并让机器人World坐标的 X方向和传送带的转动方 向一致。
9.2 传送带跟踪功能的实现
(1) 在 PLC 中 对 相 应 功 能 进 行 编 写 之 前 , 先 在 Library Manager 中 添 加 RcTracking.lib和KVision.lib两个库文件
(2)可以在 UserPreUpdate 中添加功能块——RCTR_UpdateConvInterface 并根据 实际情况和手册的介绍完善。
(3)至此,传送带的跟踪功能在PLC端的配置即算完成。
9.3 视觉功能的实现
(1)在 POU 中新建一个子程序 Vision,可以在其他地方(例如 UserPreUpdate) 来调用它。
(2) 在 Vision 程 序 中 , 首 先 添 加 ( 康 耐 视 ) 视 觉 的 功 能 块 — —KVIS_CgxClient
(如果是通用摄像头,则需添加KVIS_TCPClient功能块),并完善。
(3)物件在通过视觉拍照范围的时候,会被视觉拍到多次,所依我们需要把多次 拍摄到的同一物件剔除出去。于是,我们需要用到RCTR_FilterObjectsExtEnc功能块,
将其完善并同之前的视觉功能块衔接起来。
其中“传 送带 编码器 的精度” 可以 有两种 方式得到 ,一 种是直 接在机械 中直 接换 算得到传送带每走 1mm的距离,编码器的位置会有多少变化;另一种是通过在 RC上 通过向导示教操作,由系统自动算出精度的汇率。
如果采用第二种方式,该引脚则应该由传送带的ConvRes输入。
(4) 经 过 上 面 的 过 滤 功 能 块 剔 除 了 重 复 的 物 件 后 , 就 可 以 通 过 功 能 块 — — RCTR_AddObjectList将新的物件交给RC,让机器人完成物件的跟踪抓取。
其中‘0’是指传送带跟踪功能在 RC 中对应的端口号,需要根据之前在第二节第 二点(Pg4)中提到的端口号对应起来,或者根据需要用变量代替。
(5)到此,我们的视觉处理功能也完成了,我们可以在程序编译无误后将其下载 进PLC并运行。
9.4 RC 的配置
(1)首先我们需要建立一个程序,在其中编写工艺程序的框架,工艺程序可以参 考下图。
新建一些 指令 的时候 ,我们建 立了 传送带 、物件、 坐标 系等一 系列变量 ,在 完成 了工艺程序框架的编写后,我们就可以对刚刚新建的变量进行配置了。
(2)完成工艺程序之后,我们需要对新建的一些变量进行配置,首先我们先配置 传送带跟踪功能,并将视觉坐标系偏移到传送带上。如上指令的第 11 行,我们新建了 一个trackingbase的坐标系。
进入Conveyor的配置画面
选择第一个选项——含有视觉的2个工件对角摆放的示教方式。
点击下一步后会出现第一个物件的拍照、示教页面:
在页面中 ,根 据提示 ,在视觉 范围 的某一 个顶点, 放置 物件, 然后点击 “工 件抓 取”按钮,此时物件的坐标值应该会出现在上方的坐标框中,然后点击下一步。
新 的 页 面 中 , 同 样 根 据 提 示 , 启 动 传 送 带 , 将 工 件 移 动 到 机 器 人 的 工 作 空 间 内
( 刚 好 进 入 工 作 空 间 ) , 然 后 停 下 传 送 带 手 动 将 机 器 人 JOG 到 工 件 上 方 的 抓 取 位 置
(即图中所示 P1 点),点击示教按钮,此时机器人的位置和编码器位置都会被记录下 来。
完成后继续点击下一页。
同样,再 起启 动传送 带移动工 件, 这次将 工件往后 移, 尽量靠 近机器人 工作 空间 的末端(但仍需要保证机器人能抓取到工件),停下传送带并手动 JOG 机器人到工件 上方的抓取位置(即图中所示 P2 点),点击示教按钮,再次记下机器人和编码器的位 置。完成后点击下一步。
此时第一 个工 件的示 教工作已 经完 成,下 面就是第 二个 工件的 示教工作 了。 同示 教第一个工件 类似,但 此时应将第二 个工件放 在视觉范围内 的第一个 工件的对角点上
(为了提高精度,与工件 1 在 Y 方向上,要有一个尽量大的偏差)。然后点击“工件 抓取”,完成后点击下一步。
同第一个工件的操作一样,开启传送带,移动工件 2 到机器人的工作空间内,然 后JOG机器人到工件2的抓取位置P3点,点击示教按钮,记录下机器人和编码器的位 置。
最后,将机器人抬高一定距离,再次示教P4点,随后点击下一步即算完成。
此时,我 们就 通过示 教功能, 自动 计算出 了视觉坐 标相 对于机 器人坐标 的偏 移,
并可以使用该坐标系进行实际工艺的应用。
在将坐标 系切 换到视 觉拍到的 工件 坐标系 时,实际 抓取 工件的 位置也基 本上 可以 直接设为(X:0,Y:0,Z:0,A:0)了。
(3) 点 击 完 成 按 钮 之 后 , 我 们 还 需 要 对 机 器 人 的 抓 取 范 围 、 运 动 平 滑 度 进 行 设 置,在配置页面选择设置页面
进入设置 页面 后,首 先我们可 以根 据右上 角的图示 看出 ,这是 要我们设 置机 器人 在传送带上的抓取区域(绿色部分),我们需要通过示教 a、b 两点来告诉机器人抓取 范围。a——最近工作点(靠近传送带前端) b——最远工作点(靠近传送带末端)
随后的页 面需 要我们 示教出机 器人 对工件 的最后接 受范 围,同 样如右上 角的 图片 所示,c是机器人的抓取区域,在设置了随后接受范围之后抓取区域就被分为 f和 g两 段,当机器人去抓取工件的时候,如果工件已经进入 g 区域,机器人会忽略掉而不再 去抓取。
接下来的 页面 ,是设 置机器人 在最 小、最 大工作区 域时 的平滑 度设置, 可以 采用 默认值。
下一步后,可以设置抓取动作的平滑度。
点击完成后,就算完成了传送带的一系列配置。
(4)至此,视觉跟踪功能也算基本完成,可以配合实际工艺来运行机器人并优化 工艺程序。
10 码垛
10.1 简单码垛
10.1.1 准备工作准备工作准备工作准备工作
我们这里通过 Bigbox这个实例来演示。来看一下 Bigbox 模型的组成,图 10-1所 示是个全图,我们可以看到这里包括 1.-关节机器人,2-吸盘,3-喷枪,4 喷漆台,5-传 送带,6-跺板,7-教枪辅助物。
我们只需要1,2,3,5,6即可。
图 图图 图1010 -1010--1-111
在进行码垛之前,我们需要拿起吸盘,这里我们给出吸盘的坐标 Gripper-pos:
CARTPOS := (x := 400, y := -333, z := 295, a := -90, b := 180, c := 0, mode := 1) 此坐标可以让机器人走到图10-2的位置。
图 图 图
图10101010 ----2222 ---- 1111
我 们 继 续 向 下 看 , 通 过 图 10-2-2 我 们 看 到 机 器 人 的 工 件 坐 标 还 是 在 机 器 人 轴 末 端,这里就要 用到如何 建立工件坐标 系的内容 ,此处可以看 工件坐标 系如何建立的内 容,这里给出工件坐标系坐标
‘ToolGripper’:
TOOL := (x := 0, y := 0, z := 30, a := 0, b := 0, c := 0) 加上工件坐标系后,呈现出如图10-2-3所示。
图 图 图
图10101010 ----2222 ---- 2222
图图
图图10101010 ----222 -2--- 333 3
10.1.2 码垛配置向导码垛配置向导码垛配置向导码垛配置向导
准备工作之后,我们在传送带上吸起一个物块,进入我们的码垛建立向导部分。
图 图图 图1010 -1010--3-333
点击X=,在Variable Monitor中建立新的Pallet(码垛)如图如图10-3,10-4,10- 5所示。点击图10-5中的Name可以自定义码垛的名称,如图10-6所示。
图图 图图10101010 ----4444
图 图 图 图10101010 ----5555
图 图图 图1010 -1010--6-666
图图图 图1010 -1010--7-777
码垛建好 之后 会在变 量监控中 看到 此码垛 ,这里可 以看 到当前 已码物块 的数 量,
方便在之后进行码垛时查看。
图图 图图10101010 ----8888
继续看图 10-8,点击 X=中的 Palletiz,进入码垛向导部分。图 10-9中 1是参考坐 标系的选择,一般默认选择 World坐标系,2是码物体的顺序和方向,图中所示的顺序 为 XYZ,而其中Placement direction的作用和图 10-12配合使用的,如果图10-12中的 功能不用,这里的选择将不会有影响。确定好按Setup。
图 图 图 图10101010 ----9999
图 图 图 图1010 -1010---10101010
图10-10的设置需要给出码垛的第一个码块的位置,示教好按Next。
图 图 图 图1010 -1010---11111111
图10-11中1为物块在X方向上的长度和个数, 2为Y方向上的长度和个数,3为 Z方向上的长度和个数。一般我们在设置3个方向上长度的时候会加几mm的余量,防 止物块大小有少许差异产生碰撞。输入好按Next。
图图 图图10101010 ----121212 12
图10-12所示为放之前放置后的两个辅助点,一般可以不勾选,如果因为产品放置 和放置后机器人容易干涉而要勾选此功能,其值设定参考如下:
Pre-place position,放置前位置:
s的值:码放物件宽度的1/4到1/2之间。
h的值:码放物件高度的1/2到3/2之间。
Post-place postion,放置后位置:
s的值:该值通常为0。
h的值:码放物件高度的1/2到3/2之间。