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