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