ID : 402
Pallet.CalcPos
功能
指定托板的条件,通过该条件指定从第几层的开头起的第几号,可获取该位置。
格式
Pallet.CalcPos(P1_P3分割数,P1_P2分割数,1层的高度,托板四角位置P1,托板四角位置P2,托板四角位置P3,托板四角位置P4,托板目标位置编号[, 层叠位置][, 机器人编号])
指定项目

- P1_P3分割数
- 使用整数型数据指定从托板的P1到P3方向的分割数(N)。
- P1_P2分割数
- 使用整数型数据指定从托板的P1到P2方向的分割数(M)。
- 1层的高度
- 使用单精度实数型数据指定1层的高度。使用[1层的高度]*([层叠位置]-1)计算托板的高度位置。逐渐堆高时输入正值。逐渐减少时输入负值。
如果用1固定使用[层叠位置],该值不使用。输入0。 - 托板四角位置P1
- 使用位置型数据指定托盘四角中的开头位置。
- 托板四角位置P2
- 使用位置型数据指定托盘四角中的第2号的位置。
- 托板四角位置P3
- 使用位置型数据指定托盘四角中的第3号的位置。
- 托板四角位置P4
- 使用位置型数据指定托盘四角中的最后位置。
- 托板目标位置编号
- 使用整数型数据指定从该层开头开始数的第几号。
- 层叠位置
- 使用整数型数据指定从开头开始数的第几层。
省略时为“1”。 - 机器人编号
- 该项目对Ver.1.9.*及更高版本有效。
使用协调功能时,通过整数型数据指定机器人编号。范围为“0”(Robot0)或“1”(Robot1)。可省略。省略时变为指定“0”(Robot0)。
返回值
使用位置型数据返回目标位置。
解说
指定托板的条件,通过该条件指定从第几层的开头起的第几号,可获取该位置。
使用P1_P3分割数(N)、P1_P2分割数(M)、托板高度、托板四角位置(P1~P4)指定托板的条件。
托板的位置编号如图所示:从P1开始向P2排列,到达P2后,沿P1到P3方向从+1的位置横向排列。

1层的高度在托板的四角位置(P1~P4)的趋近矢量(以下 “四角位置的趋近矢量”)的负方向上加算。
例如,四角位置的趋近矢量与基础坐标系的XY平面垂直向着正下方时,1层的高度在与基础坐标系的XY平面垂直的上方向加算(例1)。
此外,四角位置的趋近矢量与基础坐标系的XY平面向下方倾斜时,1层的高度在与基础坐标系的XY平面倾斜的上方向加算(例2)。
示教托板的四角位置(P1~P4)时,还要考虑层叠的高度方向。
在下图的动画中,移动至Pallet.CalcPos指令的返回值后,该位置上会显示球体的对象。
例1
例2
注意事项
- 用4轴机器人(HM机器人、HSR机器人、HS机器人、HSA1机器人、XR机器人等)执行时,由于未包含优化手腕形态的处理,因此有时4轴算出的位置可能是旋转了1周以上的位置。使用4轴机器人时,推荐使用能够以最佳的手腕形态获取位置的 Pallet.CalcPosTurning 指令。
- 在4轴机器人中,该指令和 Pallet.CalcPosTurning 指令的获取结果有可能不同。将该指令变更为Pallet.CalcPosTurning 指令时,请注意。
应用示例
'!TITLE "获取托板目标位置编号的坐标位置"
' 获取通过托板目标位置编号指定的坐标位置并显示在讯息输出视窗中
Sub Sample_PalletCalcPos
Dim aaa As Position
Dim bbb As Position
Dim ccc As Position
Dim ddd As Position
Dim eee As Position
Dim fff As Position
Dim ggg As Position
' 在aaa中代入表示托板四角位置P1的位置
aaa = P( 600, -100, 50, -180, 0, 180, 5 )
' 在bbb中代入表示托板四角位置P2的位置
bbb = P( 600, 100, 50, -180, 0, 180, 5 )
' 在ccc中代入表示托板四角位置P3的位置
ccc = P( 400, -100, 50, -180, 0, 180, 5 )
' 在ddd中代入表示托板四角位置P4的位置
ddd = P( 400, 100, 50, -180, 0, 180, 5 )
' 在eee中代入托板目标位置编号1的坐标位置
eee = Pallet.CalcPos( 3, 5, 20, aaa, bbb, ccc, ddd, 1, 1 )
' 在讯息输出视窗中显示托板目标位置编号1的坐标位置
PrintDbg eee
' 在fff中代入托板目标位置编号8的坐标位置
fff = Pallet.CalcPos( 3, 5, 20, aaa, bbb, ccc, ddd, 8, 1 )
' 在讯息输出视窗中显示托板目标位置编号8的坐标位置
PrintDbg fff
' 在ggg中代入托板目标位置编号15的坐标位置
ggg = Pallet.CalcPos( 3, 5, 20, aaa, bbb, ccc, ddd, 15, 1 )
' 在讯息输出视窗中显示托板目标位置编号15的坐标位置
PrintDbg ggg
End Sub
ID : 402