扭矩限制功能
与碰撞检测功能相同,扭矩限制功能可降低碰撞时的损害。
此功能使用的扭矩限制值通过将程序中使用的上限扭矩值加上避免误动作的差值的方式定义。通过使用扭矩限制功能,可以减小压紧力。
例如,如果将扭矩限制在30%,压紧力也可以减小至30%。此外,扭矩达到上限值时,机器人立即停止。通过立即停止机器人,可以获得再减小20至30%的效果。
扭矩限制在30%且机器人立即停止时,可以获得合计25%以下或同等的减少效果。
对于SCARA机器人,伸长的轴末端可能会被勾住并弯曲。为减少轴弯曲的发生,建议使用此功能最大程度减少压紧力。
如果发生误操作,对发生误操作的轴采取以下任意措施。
- 将LimitTorqueStop或LimitTorqueStopLp设为关
- 增大LimitTorque或LimitTorqueLp的阈值
要在步进动作中使用扭矩限制功能,执行以下步骤。
- 在命令窗口中执行PTCLR后,开始测量扭矩。
- 执行步进动作。
- 通过PTRQ测量最大扭矩,然后加上差值。
- 设置LimitTorqeLP和LimitTorqeLPStop。
如果机器人在低功率动作中暂停,可能得到大于通常程序操作或步进动作的值。在这种情况下,在PTRQ测量过程中执行暂停,将其包含在测量中。
有关命令和函数的详细信息,请参阅以下手册。
《SPEL+语言参考》
- LimitTorque命令、LimitTorque函数
- LimitTorqueLP命令、LimitTorqueLP函数
- LimitTorqueStop命令、LimitTorqueStop函数
- LimitTorqueStopLP命令、LimitTorqueStopLP函数
以下是一个自动配置碰撞检测功能和扭矩限制功能的样本程序。
程序重复称为“all_ax_move”的动作。
程序启用碰撞检测功能,在最开始的五次移动中测量最大扭矩后,在测量值加上差值(HighPower时1.2倍, LowPower时1.4倍),并设置上限扭矩值,在上限扭矩停止机器人。
这是自动设置为从第六次开始以上述设置重复动作的示例。
上限扭矩值更改时,更改值将在之后的PTRQ测量中被视为“1.0”。如果设置了1.2倍的差值,PTRQ将略大于0.8,如果设置了1.4倍,PTRQ将略小于0.7。
设置示例:
Function main
Integer icnt
Real rtrq(6)
Motor On
Power High
' Power Low
Weight 2
Speed 50
Accel 80, 80
icnt = 1
PTCLR
LimitTorque 100 'init HighPower limit torque
LimitTorqueLP 100 'init LowPower limit torque
CollisionDetect On
Do
Call all_ax_move
Print PTRQ(1), PTRQ(2), PTRQ(3), PTRQ(4), PTRQ(5), PTRQ(6)
icnt = icnt + 1
If icnt = 5 Then
If Power = 1 Then 'High power case
Print "LimitTorque set"
rtrq(1) = PTRQ(1) * 1.2 * LimitTorque(1) + 1.0
rtrq(2) = PTRQ(2) * 1.2 * LimitTorque(2) + 1.0
rtrq(3) = PTRQ(3) * 1.2 * LimitTorque(3) + 1.0
rtrq(4) = PTRQ(4) * 1.2 * LimitTorque(4) + 1.0
rtrq(5) = PTRQ(5) * 1.2 * LimitTorque(5) + 1.0
rtrq(6) = PTRQ(6) * 1.2 * LimitTorque(6) + 1.0
Print LimitTorque(1), LimitTorque(2), LimitTorque(3), LimitTorque(4), LimitTorque(5), LimitTorque(6)
LimitTorque rtrq(1), rtrq(2), rtrq(3), rtrq(4), rtrq(5), rtrq(6)
Print LimitTorque(1), LimitTorque(2), LimitTorque(3), LimitTorque(4), LimitTorque(5), LimitTorque(6)
LimitTorqueStop On
Else 'Low poser case
Print "LimitTorqueLP set"
rtrq(1) = PTRQ(1) * 1.4 * LimitTorqueLP(1) + 1.0
rtrq(2) = PTRQ(2) * 1.4 * LimitTorqueLP(2) + 1.0
rtrq(3) = PTRQ(3) * 1.4 * LimitTorqueLP(3) + 1.0
rtrq(4) = PTRQ(4) * 1.4 * LimitTorqueLP(4) + 1.0
rtrq(5) = PTRQ(5) * 1.4 * LimitTorqueLP(5) + 1.0
rtrq(6) = PTRQ(6) * 1.4 * LimitTorqueLP(6) + 1.0
Print LimitTorqueLP(1), LimitTorqueLP(2), LimitTorqueLP(3), LimitTorqueLP(4), LimitTorqueLP(5), LimitTorqueLP(6)
LimitTorqueLP rtrq(1), rtrq(2), rtrq(3), rtrq(4), rtrq(5), rtrq(6)
Print LimitTorqueLP(1), LimitTorqueLP(2), LimitTorqueLP(3), LimitTorqueLP(4), LimitTorqueLP(5), LimitTorqueLP(6)
LimitTorqueStopLP On
EndIf
EndIf
If icnt > 5 Then
icnt = 6
Endif
Loop While icnt > 0
Fend
Function all_ax_move
Integer icount
Go JA(10, 10, 10, 10, 10, 10)
Go JA(-10, -10, -10, -10, -10, -10)
Fend