LJM函数
用于返回为确保参照点相对于指定点的关节移动量最小而转换姿势标志的点数据。
格式
LJM (指定点 [, 指定参照点 [, 选择姿势标志]])
参数
- 点指定
- 指定对象点数据。
- 指定参照点
- 指定作为基准的点数据。省略参照点指定时,以当前位置(Here)为参照点。
- 选择姿势标志
- 垂直6轴型
-
- 1:通过手腕姿势(Wrist标志)、J4Flag、J6Flag与J1Flag进行转换,以使J4轴的移动量为最短。是省略“选择姿势标志”时的默认设置。
- 2:通过J4Flag与J6Flag进行转换。
- 3:通过手腕姿势(Wrist标志)、J4Flag、J6Flag与J1Flag进行转换,以使J5轴的移动量最短。
- 4:通过手腕姿势(Wrist标志)、J4Flag、J6Flag与J1Flag进行转换,以使J6轴的移动量最短。
“选择姿势标志” 腕部姿势 肘姿势 手腕姿势 J1Flag J4Flag J6Flag 移动量最短轴的优先顺序 1 - - 〇 〇 〇 〇 J4 2 - - - 〇 〇 〇 - 3 - - 〇 〇 〇 〇 J5 4 - - 〇 〇 〇 〇 J6 - Note:“-”表示与“指定参照点”中指定的姿势相同的姿势。
- RS系列
1:通过手腕姿势(Hand标志)、J1Flag与J2Flag进行转换。是省略“选择姿势标志”时的默认设置。
2:通过手腕姿势(Hand标志)、J1Flag与J2Flag进行转换。用于防止在转换“选择姿势标志”时,发生U轴超出动作范围的错误。
- N2系列
-
1:按照J1、J5轴的优先顺序转换为关节移动量减小的姿势。作为转换对象的姿势包括腕部姿势(Hand标志)、肘姿势(Elbow标志)、手腕姿势(Wrist标志)、J4Flag与J6Flag。肘姿势(Elbow标志)必须为上肘姿势。是省略“选择姿势标志”时的默认设置。
2:按照J1、J4轴的优先顺序转换为关节移动量减小的姿势。作为转换对象的姿势包括腕部姿势(Hand标志)、肘姿势(Elbow标志)、手腕姿势(Wrist标志)、J4Flag与J6Flag。肘姿势(Elbow标志)必须为上肘姿势。
3:通过手腕姿势(Wrist标志)、J4Flag与J6Flag进行转换,以使J4轴的移动量为最短。
4:通过J4Flag与J6Flag进行转换。
5:变更为与“指定参照点”中指定的姿势不同的腕部姿势(Hand标志),并通过手腕姿势(Wrist标志)、J4Flag与J6Flag进行转换,使J5轴的移动量为最短。作为转换对象的姿势包括腕部姿势(Hand标志)、肘姿势(Elbow标志)、手腕姿势(Wrist标志)、J4Flag与J6Flag。另外,肘姿势(Elbow标志)必须为上肘姿势。
6:变更为与“指定参照点”中指定的姿势不同的腕部姿势(Hand标志),并通过手腕姿势(Wrist标志)、J4Flag与J6Flag进行转换,使J4轴的移动量为最短。作为转换对象的姿势包括腕部姿势(Hand标志)、肘姿势(Elbow标志)、手腕姿势(Wrist标志)、J4Flag与J6Flag。另外,肘姿势(Elbow标志)必须为上肘姿势。
7:将肘姿势(Elbow标志)变更为下肘姿势,并通过手腕姿势(Wrist标志)、J4Flag与J6Flag进行转换,以按J1、J5轴的优先顺序适用最短移动量。作为转换对象的姿势包括腕部姿势(Hand标志)、肘姿势(Elbow标志)、手腕姿势(Wrist标志)、J4Flag与J6Flag。
8:将肘姿势(Elbow标志)变更为下肘姿势,并通过手腕姿势(Wrist标志)、J4Flag与J6Flag进行转换,以按J1、J4轴的优先顺序适用最短移动量。作为转换对象的姿势包括腕部姿势(Hand标志)、肘姿势(Elbow标志)、手腕姿势(Wrist标志)、J4Flag与J6Flag。
“选择姿势标志” 腕部姿势 肘姿势 手腕姿势 J4Flag J6Flag 移动量最短轴的优先顺序 1 〇 *1 〇 〇 〇 J1>J5 2 〇 *1 〇 〇 〇 J1>J4 3 - - 〇 〇 〇 J4 4 - - - 〇 〇 - 5 *2 *1 〇 〇 〇 J5 6 *2 *1 〇 〇 〇 J4 7 〇 *3 〇 〇 〇 J1>J5 8 〇 *3 〇 〇 〇 J1>J4 - Note:“-”表示与“指定参照点”中指定的姿势相同的姿势。
*1:上肘姿势
*2:腕部姿势与“指定参照点”中指定的姿势不同。
*下肘姿势
- N6系列
-
1:通过手腕姿势(Wrist标志)、J4Flag与J6Flag进行转换,以使J4轴的移动量为最短。是省略“选择姿势标志”时的默认设置。
2:通过J4Flag与J6Flag进行转换。
3:通过手腕姿势(Wrist标志)、J4Flag与J6Flag进行转换,以使J5轴的移动量为最短。
4:通过手腕姿势(Wrist标志)、J4Flag与J6Flag进行转换,以使J6轴的移动量为最短。
“选择姿势标志” 腕部姿势 肘姿势 手腕姿势 J1Flag J4Flag J6Flag 移动量最短轴的优先顺序 1 - - 〇 〇 〇 〇 J4 2 - - - 〇 〇 〇 - 3 - - 〇 〇 〇 〇 J5 4 - - 〇 〇 〇 〇 J6 - Note:“-”表示与“指定点”中指定的姿势相同的姿势。
说明
对于垂直6轴型机器人和N系列来说,要动作到托盘或通过相对偏移等的点运算获得的点时,手腕部分可能会转向意想不到的方向。这是因为上述点运算包含不取决于机器人机型的命令,直接进行动作而未转换必要的姿势标志的缘故。
为了防止手腕部分进行这种意想不到的旋转,LJM函数用于适当地转换点数据的姿势标志。
另外,为N系列时,通过变更腕部姿势标志或肘姿势标志,也可以缩短节拍时间,以及省略垂直6轴型机器人所需的回避点示教。
同样,就RS系列而言,要动作到托盘或通过相对偏移等的点运算获得的点时,第1机械臂可能会转向意想不到的方向。为了防止第1机械臂进行这种意想不到的旋转,LJM函数用于适当地转换点数据的姿势标志。
另外,在RS系列中,如果U轴在转换了姿势标志却要进行超出动作范围的动作,则可能会发生错误。为了防止U轴发生这种超出动作范围的错误,LJM函数用于将U轴的目标角度修正为动作范围内的目标角度。可通过在选择姿势标志中指定2的方式加以运用。
为垂直6轴型、N系列、RS系列以外的机器人时,直接返回指定点。
注意
参照点的省略和并行处理
不能将参照点的省略与并行处理同时放在一个动作命令内。
Go LJM(P10) !D10; MemOn 1 !
无法实现上述使用方法。
P999 = Here Go LJM(P10,P999) !D10; MemOn 1 !
请变更为上述程序。
关于N2系列的选择姿势标志
选择姿势标志1、2:
要缩短机器人的节拍时间时,请选择姿势标志1或2。
由于采取第1关节移动量最小的姿势,因此,几乎可按最短的节拍时间进行所有动作。要在减小第5关节移动量的状态下进行动作时,请选择姿势标志1;要在减小第4关节移动量的状态下进行动作时,请选择姿势标志2。
选择姿势标志3、4:
要以与垂直6轴型相同的方式使用时,请进行选择。
姿势标志3与垂直6轴型的姿势标志1相同。
姿势标志4与垂直6轴型的姿势标志2相同。
选择姿势标志5、6:
在机器人动作期间,夹具末端接触到机器人周围的墙壁等情况下,请选择姿势标志5或6。 由于夹具末端会通过机器人的原点附近位置,因此,机器人进行动作时不易接触到周围的障碍物。要在减小第5关节移动量的状态下进行动作时,请选择姿势标志5;要在减小第4关节移动量的状态下进行动作时,请选择姿势标志6。
选择姿势标志7、8:
如要适用下肘姿势,请选择姿势标志7或8。 执行部分动作时,机器人可能会像姿势选择标志5或6那样进行通过原点附近的动作,因此,即使其周边有障碍物,也可进行动作而不易接触到障碍物。要在减小第5关节移动量的状态下进行动作时,请选择姿势标志7;要在减小第4关节移动量的状态下进行动作时,请选择姿势标志8。
本地编号
利用LJM函数返回的点的本地编号是与“指定点”相同的本地编号。
参阅
Pallet
LJM函数使用示例
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