4 Motion coordination
4.1 Machine Synchronization [607-1], [607-2]
4.1.9 同步编程
4.1.9.1 用同步选项编程时的一般问题
激活传感器
必须先激活该传感器,然后该传感器才能像其它所有机械单元那样用于工件协调。用 平常的ActUnit指令来激活该传感器,用DeactUnit来停用该传感器。
安装该传感器时默认启动时不激活该传感器。若有需要,也可将该传感器配置成“始终 在启动时激活”。具体请参见第204页的机械单元。
自动连接
仅用于Sensor Synchronization:
在激活一个传感器机械单元时,首先检查相应编码器接口单元的状态(以便查看之前 是否连接过该传感器)。如果相应编码器接口单元通过I/O信号c1已连接来显示连 接,则系统将在激活时自动连接该传感器。这种特性的作用是在上电失败时用相应编 码器接口单元上的后备电源自动重连。
通过WaitSensor指令相连
除非已用一条WaitSensor指令将一个对象与该传感器相连,否则无法编写那些将与 外部装置同步的运动。
如果上一条WaitSensor指令已连接了该对象,或曾在激活时建立了连接,那么执行 第二条WaitSensor指令将会导致一项错误。
在用一条WaitSensor指令与一个对象相连后,便用SyncToSensor\On指令来启动 已同步的相关运动。
指令WaitSensor和SyncToSensor\On方面的更多细节请参见技术参考手册 - RAPID 指令、函数和数据类型。
编写Sensor Synchronization
以下指令引用了一些编程示例。
Information 操作
用下列指令创建一段程序:
ActUnit SSYNC1;
1
MoveL waitp, v1000, fine, tool;
WaitSensor SSYNC1;
如果对象队列中有一个对象,
那么就会返回该指令;如果没 有对象,那么就会停止执行并 等候一个对象(比如一个同步 信号)。
单步执行越过了WaitSensor指令的该程序。
2
该程序理应退出了
WaitSensor,并在此时与该 对象“相关联”。
用一条SyncToSensor SSYNC1\On指令启动同步运动。
具体请参见第173页的编程示例。
5
下一页继续
应用手册 - 控制器软件IRC5 171
4.1.9.1 用同步选项编程时的一般问题
Information 操作
使用相关移动指令的角区。具 体请参见第177页的精确点编 程。
程序移动指令。
每当您修改了一个位置时,就请将相关外部装置执行到机 器人目标点所理应对应的位置处。
6
用一条SyncToSensor SSYNC1\Off指令结束同步运 动。具体请参见第173页的编程示例。
7
仅用于Sensor Synchronization:
8
编写一条DropSensor SSYNC1;指令。具体请参见第173 页的编程示例。
如果这是程序末尾,或如果不再需要相关传感器,那么就 编写一条DeactUnit SSYNC1;指令。具体请参见第173 页的编程示例。
9
使传感器同步
如果无法将相关外部装置移动到所需位置,那么就先修改该位置,然后编辑机器人目 标点中的相应传感器数值(就像任何附加轴那样)。
172 应用手册 - 控制器软件IRC5
4.1.9.1 用同步选项编程时的一般问题 续前页
4.1.9.2 编程示例
Sensor Synchronization程序
MoveJ p0, vmax, fine, tool1;
!Activate sensor ActUnit SSYNC1;
!Connect to the object WaitSensor SSYNC1;
!Start the Synchronized motion SyncToSensor SSYNC1\On;
!Instructions with coordinated robot targets MoveL p10, v1000, z20, tool1;
MoveL p20, v1000, z20, tool1;
MoveL p30, v1000, z20, tool1;
!Stop the synchronized motion SyncToSensor SSYNC1\Off;
!Exit coordinated motion MoveL p40, v1000, fine, tool1;
!Disconnect from current object DropSensor SSYNC1;
MoveL p0, v1000, fine;
!Deactivate sensor DeactUnit SSYNC1;
Analog Synchronization程序
VAR num startdist := 600;
MoveJ p0, vmax, fine, tool1;
!Activate sensor ActUnit SSYNC1;
WaitSensor SSYNC1 \RelDist:=startdist;
!Start the Synchronized motion SyncToSensor SSYNC1\On;
!Instructions with coordinated robot targets MoveL p10, v1000, z20, tool1;
MoveL p20, v1000, z20, tool1;
MoveL p30, v1000, z20, tool1;
下一页继续
应用手册 - 控制器软件IRC5 173
4.1.9.2 编程示例
!Exit coordinated motion MoveL p40, v1000, fine, tool1;
!Stop the synchronized motion SyncToSensor SSYNC1\Off;
MoveL p0, v1000, fine;
!Deactivate sensor DeactUnit SSYNC1;
174 应用手册 - 控制器软件IRC5
4.1.9.2 编程示例 续前页
4.1.9.3 进入和退出角区中的协调运动
可以使用角区
一旦将WaitSensor指令与一个对象关联起来,就或可通过角区进入和退出与传感器 相互同步的运动。
丢弃角区后的对象
如果使用一条采用角区的指令来退出协调运动,那么就无法直接续接DropSensor指 令,从而导致系统就在机器人离开角区前就丢弃了相关对象,而此时的相关运动却仍 需这一传送器协调工件。
如果在相关运动仍需要工件位置时丢弃了该工件,那么就会发生停止。
为避免发生这种情况,请要么调用一条精确点指令,要么在丢弃相关工件前至少使用 两条角区指令。
正确示例
此例展示了如何通过角区来进入和退出协调运动。
MoveL p10, v1000, fine, tool1;
WaitSensor SSYNC1;
MoveL p20, v500, z50, tool1;
!start synchronization after zone around p20 SyncToSensor SSYNC1\On
MoveL p30, v500, z20, tool1;
MoveL p40, v500, z20, tool1;
MoveL p50, v500, z20, tool1;
MoveL p60, v500, z50, tool1;
!Exit synchronization after zone around p60 SyncToSensor SSYNC1\Off;
MoveL p70, v500, fine, tool1;
DropSensor SSYNC1;
MoveL p10, v500, fine, tool1;
错误示例
这是退出角区协调的错误示例,所示做法将导致相关程序随着一项错误而停止。
MoveL p50, v500, z20, tool1;
MoveL p60, v500, z50, tool1;
!Exit coordination in zone SyncToSensor SSYNC1\Off;
DropSensor SSYNC1;
如果角区中的协调运动结束,那么就必须在丢弃传感器前执行令一条移动指令。
应用手册 - 控制器软件IRC5 175
4.1.9.3 进入和退出角区中的协调运动
4.1.9.4 使用若干传感器
概述
若使用了若干个传感器,相关程序就必须至少有一条移动指令,且与两个不同传感器 同步的路径各部分之间不得形成任何同步。
程序示例
!Connect to the object
WaitSensor SSYNC1\RelDist:=Pickdist;
!Start the Synchronized motion
SyncToSensor SSYNC1\MaxSync:=1653\On;
!Instructions with coordinated robot targets MoveL p30, v400, z20, currtool;
!Stop the synchronized motion SyncToSensor SSYNC1\Off;
!Instructions with coordinated robot targets MoveL p31, v400, z20, currtool;
!Connect to the object
WaitSensor SSYNC2\RelDist:=1720;
!Instructions with coordinated robot targets MoveL p32, v400, z50, currtool;
!Start the Synchronized motion
SyncToSensor SSYNC2\MaxSync:=2090\On;
!Instructions with coordinated robot targets MoveL p33, v400, z20, currtool;
!Stop the synchronized motion SyncToSensor SSYNC2\Off;
176 应用手册 - 控制器软件IRC5
4.1.9.4 使用若干传感器
4.1.9.5 精确点编程
概述
若采用了同步运动,则避免使用精确点。相关机器人将会停止,并与相关传感器丧失 为期100毫秒的同步。随后系统会继续执行RAPID。
如果最后一个目标点不需要准确的同步,那么就可以对最后一条同步移动指令进行精 确点编程。
程序示例
以下程序示例展示了可能出现的同步运动停止方式。
WaitSensor SSYNC1;
SyncToSensor SSYNC1 \On;
MoveL p1, v500, z20, tool1;
MoveL p2, v500, fine, tool1;
SyncToSensor SSYNC1 \Off;
MoveL p3, v500, z20, tool1;
MoveL p4, v500, fine, tool1;
DropSensor SSYNC1;
p4处的机器人不再与相关外部装置同步,也没有使用精确点方面的限制。
相关同步会在p2处结束——此处可以使用一个精确点,但同步准确度将会降低。
应用手册 - 控制器软件IRC5 177
4.1.9.5 精确点编程
4.1.9.6 丢弃传感器对象
概述
对Sensor Synchronization而言,一旦结束了同步运动,便可用DropSensor指令丢 弃一个已关联的对象。
示例:DropSensor SSYNC1;
对于Analog Synchronization而言,用户不得使用指令DropSensor。
考虑因素
丢弃一个对象时必须考虑到下列因素:
• 很重要的一点就是确保当丢弃该对象时,相关机器人运动已不再使用相应的传 感器位置。如果机器人运动仍需要该传感器位置,那么就会在丢弃该对象时发 生一次停止。
• 只要还未发出SyncToSensor \Off指令,机器人运动就会与相关的传感器保 持同步。
• 不必为了执行一条DropSensor指令而进行关联。即使没有已关联的对象,也 不会返回任何错误。
178 应用手册 - 控制器软件IRC5
4.1.9.6 丢弃传感器对象
4.1.9.7 FlexPendant示教器上的信息
概述
用户有权通过FlexPendant示教器访问相关传感器的位置和速度
点动窗口
点动窗口展示了相关传感器对象的位置(以毫米为单位)。如果定义了Queue Tracking Distance,那么其将为负值。在触发同步开关时,系统会自动更新点动窗口中的这一 位置。
I/O窗口
Sensor Synchronization
用户有权从I/O窗口访问编码器接口单元上定义的所有信号,并或可在该窗口中查看 相应的传感器对象位置(以米为单位)和传感器对象速度(以米/秒为单位)。在相 关同步开关登记一个传感器对象前,该速度将始终为0米/秒。
Analog Synchronization
对Analog Synchronization而言,I/O窗口只会显示相关的传感器位置。
应用手册 - 控制器软件IRC5 179
4.1.9.7 FlexPendant示教器上的信息
4.1.9.8 编写考虑因素
效果限值
如果达到了关节速度限制(尤其是在奇点中),则会丧失同步。程序员有责任确保同 步移动期间的路径不会超出相关机器人的速度与运动能力。
运动命令
同步期间允许使用任何运动指令。
手动模式
手动模式下的同步处于未激活状态。
速度减少%按钮
该同步仅会在100%的速度下发挥作用。如果按传感器的移动来调节相关的机器人速 度,那么系统就会对已定义的机器人速度百分数进行超驰。
编程速度
接近真实执行速度的编程速度能带来效果最好的同步。宜把最适当的执行速度选为编 程速度。两条移动指令的速度不宜相差太大。
精确点
同步移动期间允许使用精确点,但机器人会在精确点处停止。若相关外部装置仍在移 动,则会丧失相应同步。具体请参见第177页的精确点编程。
位置警告
如果robot_to_sensor位置比大于10或小于0.1,则会出现一条警告。用户宜按其警 告文本来修改robtarget位置或robtarget中的传感器数值。
速度警告
如果编写的sensor_speed快于:
• (max_sync_speed*sensor_nominal_speed)/robot_tcp_speed 之后会出现一条速度警告,而用户则宜按其警告文本来修改机器人速度、
sensor_nominal_speed或max_sync_speed。
如果编写的sensor_speed慢于:
• (min_sync_speed*sensor_nominal_speed)/robot_tcp_speed 将出现一条类似的警告:
• Programmed_sensor_speed equals
sensor_distance/robot_interpolation_time。
更换工具
如果使用了corvec,则不允许在同步期间更换工具。
下一页继续
180 应用手册 - 控制器软件IRC5
4.1.9.8 编写考虑因素
将停用相关同步的各条指令
指令ActUnit、DeactUnit和ClearPath将停用任何SyncToSensor或
SupSyncSensorOn指令。所以不宜在SyncToSensor或SupSyncSensorOn指令与 涉及同步路径或监控路径的移动指令之间使用指令ActUnit、DeactUnit和
ClearPath。
正确的顺序为:
ActUnit SSYNC1;
WaitSensor SSYNC1;
SyncToSensor SSYNC1\On;
! move instructions ...
SyncToSensor SSYNC1\Off;
其它RAPID限制
• 命令StorePath、RestoPath在同步期间不起作用。
• EoffsSet、EoffsOn和EoffsOff会影响传感器示教位置。
• 无法用同步选项实现上电失败重启。
应用手册 - 控制器软件IRC5 181
4.1.9.8 编写考虑因素 续前页
4.1.9.9 运行模式
手动减速模式下的运行(<250毫米/秒)
可用前进和后退硬按钮来对相关程序进行单步调试。用户既可以添加新指令,也可以 用MODPOS来修改编程位置。
如果在运动期间放开了启用装置,相关机器人则会恢复如常。
当处于手动减速模式时,机器人会执行针对相关传感器的同步运动。
自动模式下的运行
一旦执行了一条SyncToSensor指令,就再也无法在传感器移动期间用前进和后退按 钮来对相关程序进行单步调试。
启动/停止
如果按下了“停止”按钮,或在SyncToSensor与DropSensor指令之间执行了RAPID
如果按下了“停止”按钮,或在SyncToSensor与DropSensor指令之间执行了RAPID