Pallet函数
用作引用托盘上位置的点数据函数。
格式
(1) Pallet (托盘编号, 托盘位置编号)
(2) Pallet (托盘编号, 分区横坐标, 分区竖坐标)
参数
- 托盘编号
- 以数值指定托盘编号(0~15的整数)。
- 托盘位置编号
- 以表达式或数值(1~32767)指定分区点的指定编号(整数)。
- 分区横坐标
- 以数值(-32768~32767)指定由托盘定义指定的横坐标。
- 分区纵坐标
- 以数值(-32768~32767)指定由托盘定义指定的竖坐标。
说明
Pallet用于返回事先由Pallet语句定义的托盘上1点位置。通过同时使用该函数与动作命令(Go或Jump命名等),可将机械臂移动到托盘上的指定位置。
可利用表达式或整数值定义托盘位置编号。
注意
垂直6轴型机器人(包括N系列)的托盘动作
对于垂直6轴型机器人(包括N系列)来说,要动作到托盘或通过相对偏移等的点运算获得的点时,手腕部分可能会转向意想不到的方向。这是因为上述点运算包含不取决于机器人机型的命令,直接进行动作而未转换必要的姿势标志的缘故。
LJM函数可用于防止手腕部分进行这种意想不到的旋转。
RS系列的托盘动作
同样,就RS系列而言,要动作到托盘或通过相对偏移等的点运算获得的点时,第1机械臂可能会转向意想不到的方向。为了防止第1机械臂进行这种意想不到的旋转,LJM函数用于适当地转换点数据的姿势标志。
另外,在RS系列中,如果U轴在转换了姿势标志却要进行超出动作范围的动作,则可能会发生错误。为了防止U轴发生这种超出动作范围的错误,LJM函数用于将U轴的目标角度修正为动作范围内的目标角度。可通过在选择姿势标志中指定2的方式加以运用。
UVW坐标值
Pallet命令中指定的3点(4点)UVW坐标值不同时,使用点编号1与坐标系数据1的UVW坐标值。
点编号2~4与坐标系数据2~4的UVW坐标值会被无视。
附加轴坐标值
Pallet命令指定的3点(4点)坐标值保持附加轴坐标值(ST轴值)时,即使是附加轴坐标值也进行均等分配。也就是说,由于将附加轴用作移动轴时,托盘定义也要考虑移动轴动作来进行计算,因此,可定义大于顾及移动轴位置的机器人动作范围的较大托盘。相反,即使定义对托盘定义没有影响的附加轴,托盘定义时也需要注意附加轴位置。
参阅
LJM、Pallet
Pallet函数使用示例
如下所示为将工件从托盘1移动到托盘2的程序示例。
Function main
Integer index
Pallet 1, P1, P2, P3, 3, 5 '定义托盘1
Pallet 2, P12, P13, P11, 5, 3 '定义托盘2
For index = 1 To 15
Jump Pallet(1, index) '移动到托盘1的点索引处
On 1 '拾取工件
Wait 0.5
Jump Pallet(2, index) '移动到托盘2的点索引处
Off 1 '释放工件
Wait 0.5
Next I
Fend
Function main
Integer i, j
P0 = XY(300, 300, 300, 90, 0, 180)
P1 = XY(200, 280, 150, 90, 0, 180)
P2 = XY(200, 330, 150, 90, 0, 180)
P3 = XY(-200, 280, 150, 90, 0, 180)
Pallet 1, P1, P2, P3, 10, 10
Motor On
Power High
Speed 50; Accel 50, 50
SpeedS 1000; AccelS 5000
Go P0
P11 = P0 -TLZ(50)
For i = 1 To 10
For j = 1 To 10
'点的指定
P10 = P11 '转移点
P12 = Pallet(1, i, j) '目标点
P11 = P12 -TLZ(50) '接近起点
'各点的LJM转换
P10 = LJM(P10)
P11 = LJM(P11, P10)
P12 = LJM(P12, P11)
'执行动作
Jump3 P10, P11, P12 C0
Next
Next
Fend
Function main2
P0 = XY(300, 300, 300, 90, 0, 180)
P1 = XY(400, 0, 150, 90, 0, 180)
P2 = XY(400, 500, 150, 90, 0, 180)
P3 = XY(-400, 0, 150, 90, 0, 180)
Pallet 1, P1, P2, P3, 10, 10
Motor On
Power High
Speed 50; Accel 50, 50
SpeedS 1000; AccelS 5000
Go P0
Do
'点的指定
P10 = Here -TLZ(50) '转移点
P12 = Pallet(1, Int(Rnd(9)) + 1, Int(Rnd(9)) + 1) '目标点
P11 = P12 -TLZ(50) '接近起点
If TargetOK(P11) And TargetOK(P12) Then '点的检查
'各点的LJM转换
P10 = LJM(P10)
P11 = LJM(P11, P10)
P12 = LJM(P12, P11)
'执行动作
Jump3 P10, P11, P12 C0
EndIf
Loop
Fend