程序指令

可以通过右键单击程序或从程序菜单中添加新的指令,如上一节所示。

Tip:选择特定指令,可在所选指令后添加新指令。

Tip:可以在程序内部或不同程序之间拖放指令,以重新排序。

本节介绍RoboDK图形用户界面支持的指令,用于机器人离线编程。

关节运动

选择程序➔Robot Programs - 图片 4 关节运动指令,即可添加新的关节运动指令。或者,选择工具栏上的相应按钮。

如果在添加指令时没有选取目标点,该运动指令会自动创建新的目标点并与之关联。当目标点位置发生改变时,运动轨迹也会相应调整。

如果这是添加到该程序中的第一条指令,系统会在运动指令前自动插入两条额外指令:设置参考坐标系设置工具坐标系。这将确保机器人执行到运动指令时,使用的参考坐标系和工具坐标系与创建该目标点时保持一致。

Note:右键单击运动指令并选择目标点选项… (F3)即可打开目标选项菜单。可从该窗口或直接于3D视图中修改该目标位置等信息。

Robot Programs - 图片 5

线性运动

选择程序➔Robot Programs - 图片 6 直线运动指令,即可添加新的直线运动指令。或者,选择工具栏上的相应按钮。

如果在添加指令时没有选取目标点,该运动指令会自动创建新的目标点并与之关联。当目标点位置发生改变时,运动轨迹也会相应调整。

关节运动和直线运动的移动方式一样,可以从一种类型切换到另一种类型。

与关节移动指令相同,如果这是添加到该程序中的第一条指令,系统会在运动指令前自动插入两条额外指令:设置参考坐标系设置工具坐标系

Important:建议将每个程序的第一条运动指令保持为使用关节目标的关节运动。这将确保机器人在此后的运动中使用正确的位姿配置,并确保真实机器人的移动方式与仿真相同。

与关节运动不同,线性运动对机器人奇异点和轴限位非常敏感。例如,六轴机器人无法以直线轨迹穿越奇异点。下图所示案例中,由于关节5过于接近奇异点(0度位置),导致运动失败。[...] 此时建议改用关节运动方案,如下图所示。

Robot Programs - 图片 7

如果不是必要的线性运动,可以右键单击指令将其改为关节运动。

Robot Programs - 图片 8

或者通过修改目标、TCP或参考坐标系的位置来避免奇点。

设置参考坐标系

选择程序 ➔Robot Programs - 图片 9设置工件坐标系指令,即可设置参考坐标系。这将为接下来的运动指令更新控制器上的参考坐标系,并在RoboDK仿真中改变当前参考坐标系。这意味着,执行特定目标(笛卡尔目标)的运动指令将会以最后设定的参考坐标系为基准。

参考坐标系是一个变量名称,在ABB机器人中被称为Work Object,在发那科(Fanuc)机器人中称为UFRAME,在安川(Motoman)机器人中称为FRAME,在库卡(KUKA)机器人中则称为$BASE。

Robot Programs - 图片 10

Note:特定控制器(比如Fanuc和Motoman控制器)支持使用编号设置参考坐标系。这表示参考坐标系的名称可以用数字结尾(例如Frame 4代表第4个参考坐标系)。

设置工具坐标系

选择程序➔Robot Programs - 图片 11 设置工具坐标系指令,即可设置工具坐标系(TCP)。这将为程序中接下来的运动指令更新工具坐标系,并在RoboDK仿真中改变当前工具坐标系。这意味着,执行特定目标(笛卡尔目标)的运动指令将会以最后设定的工具坐标系为基准。

工具坐标系的变量名有ToolData (ABB机器人),UTOOL(Fanuc机器人), TOOL(Motoman机器人)或者$TOOL(针对KUKA机器人)。

Robot Programs - 图片 12

Note:特定控制器(比如Fanuc和Motoman控制器)支持使用编号设置工具坐标系。这表示工具坐标系的名称可以用数字结尾(例如Tool 4代表第4个工具)。

圆弧运动

选择程序➔Robot Programs - 图片 13 圆弧运动指令,即可添加新的圆弧运动指令。或者,选择工具栏上的相应按钮。

添加圆弧运动指令时需要选取两个目标点,否则该运动指令不会自动创建新的目标点。该指令需要分别关联两个目标点,如下图所示。

Robot Programs - 图片 14

圆弧运动是从机器人所在的点出发,经过第一个环路点(目标点 1),并以终点(目标点 2)结束而形成的弧线。

Important:仅用一条圆弧运动指令不可能完成一个完整的圆周运动。一个完整的圆必须被分为两条独立的圆弧运动完成。

设置速度

选择程序➔Robot Programs - 图片 15 设置速度指令即可添加速度和/或加速度指令。可以在关节空间和笛卡尔空间中指定速度和加速度。

根据情况,在程序中相应的位置设置速度或者加速度。机器人速度从执行该指令时开始生效。

也可在机器人参数菜单中更改机器人速度:双击机器人,然后选择参数。

Note:并非所有机器人控制器都支持精确设置加速度。

Important:设置正确的速度对准确计算程序时间(循环时间)非常重要。更多信息请参考循环时间

Robot Programs - 图片 16

显示信息

选择程序➔Robot Programs - 图片 17 显示信息指令,添加一条新指令,在示教器上显示一条信息。

Robot Programs - 图片 18

Note:并不是所有机器人控制器都支持在示教器上显示信息。对于不支持的设备,这条指令将不起作用。

暂停

选择程序➔Robot Programs - 图片 19 暂停指令,添加一条新指令,暂停程序执行一段时间或停止程序,直到操作员恢复程序。

Robot Programs - 图片 20

Note:将暂停延迟值设置为-1即可暂停程序,直到操作员希望恢复程序。该指令将自动被改名为停止Important:当仿真时采用默认的速度比率 5时,则5秒钟的暂停需要1秒钟的模拟时间。更多信息请参考仿真部分

程序调用

选择程序➔Robot Programs - 图片 21 程序调用指令即可在当前程序中添加一条子程序调用指令。

默认情况下,这是对特定程序的阻塞调用。也可以切换到插入代码模式,在该指令的位置插入一些代码。此功能可能对特定应用和特定控制器具有实用价值。

Tip:通过选择程序可自动填充该文本框。或者,直接键入子程序名同样有效。只要所输入文本匹配到子程序名称,该子程序将会被RoboDK仿真调用。

Tip:输入多行文本可自动连续调用多个程序。

Robot Programs - 图片 22Robot Programs - 图片 23

项目调用切换到启动线程,可触发对子程序的非阻塞调用。在这种情况下,控制器将启动一个新的线程。该选项仅适用于某些控制器,且仅对特定操作有效。

Tip:仅用于仿真目的时,主程序可利用启动线程选项同时启动多个子程序(例如同时模拟两个或多个机器人)。

设置/等待 IO

选择程序➔Robot Programs - 图片 24 设置信号输出/等待信号指令,以改变数字输出(DO)的状态。默认情况下,该指令为"设置数字输出"。该指令还允许等待数字输入(DI)以切换到特定状态。

如果是命名变量,IO名称可以是数字或文本值。如果是命名状态,IO值可以是数字(0表示"假",1表示"真")或文本值。

Note: 该指令还支持在某些机器人控制器上设置模拟输出(AO)或等待模拟输入(AI)。在这种情况下,可以用十进制数字或特定文本代替数字。

Robot Programs - 图片 25

可设置等待数字输入,此时程序停止执行,直到该输入变为特定值。此外,大多数机器人控制器都支持超时延迟功能,即当等待时间超过特定值时报错。勾选超时(毫秒)选项可激活此功能。

Robot Programs - 图片 26

Tip:如果机器人单元上有特定的硬件(如夹爪或铣削钻头),使用数字输出(DO)激活该硬件,然后等待特定的数字输入(DI)切换到特定状态,是一种标准做法。

更改仿真的数字输入数字输出将创建新的工作站变量。要检查这些变量的状态,可以右键单击工作站并选择工作站参数。也可以通过API读取或修改这些变量。

设置轨迹精度

选择程序➔Robot Programs - 图片 27 设置轨迹精度,即可修改轨迹的舍入精度。该舍入值用于平滑连续运动之间的边缘。此更改在程序内执行后立即生效(与其他所有指令相同),因此通常在程序开始时设置该值。

如果没有轨迹舍入,机器人在每条运动指令结束时速度都会将为 0(除非下一个运动与上一个运动相切)。这将引发机器人的高加速度和快速速度变化,以确保每次运动的准确性。

该值也被称为Blending radius(优傲UR机器人),ZoneData(ABB机器人),CNT/FINE(Fanuc机器人),Cornering(Mecademic机器人)或者$APO.CDIS/$APO.CPTP/Advance(KUKA机器人)。

Note轨迹舍入精度设置为-1,可实现精细运动。这意味着机器人不会绕过路点边缘。

Robot Programs - 图片 28

Tip:高舍入值可确保机器人路径上的速度恒定,以换取路径边缘上的精度损失。根据不同的应用,通常可以在精度和平稳速度之间找到一个很好的折衷方案。

有些控制器要求将该值设置为百分比,例如在发那科(Fanuc)控制器上,如果要提供CNT5命令,则应输入5。

如果你生成的程序用于机器人加工、3D打印或曲线/点追踪,还可以在程序事件窗口中指定舍入参数。

Robot Programs - 图片 29

通过RoboDK的路径精准度测试,可以更好地了解不同舍入策略的效果。

仿真事件

选择程序➔Robot Programs - 图片 30 仿真指令,即可添加一个新的仿真事件。仿真事件对生成的真机代码没有影响,仅用于为仿真目的触发特定事件。

通过图形用户界面可以实现:

机器人工具抓取或放置物体

显示或者隐藏物体或者工具

改变物体和参考坐标系的位置

Robot Programs - 图片 31

例如,如果机器人移动到指定位置去抓取物体,我们可以设置一个Attach object事件,让该物体与机器人一起移动。之后,在机器人完成移动准备放置物体时,可以设置一个Detach object事件,让工具脱离抓取到的任何物体。

 

Robot Programs - 图片 32

Note:也可以使用宏(Macro)来模拟特定事件(需要编程经验)。例如,使用API可以使物体随机出现在特定位置,进行取放仿真。

Note:抓取物体时,在距离设置内最近的物体将会被附着到工具上。默认距离为200毫米并可在以下页面更改:工具➔选项➔工作站➔将物体固定到机器人工具上的最大距离(mm)。默认情况下,系统会检测从TCP位置到物体参考点的距离,你也可以勾选检查TCP和物体形状之间的最短距离,使其检测TCP与物体之间的最短距离。