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