扭矩限制功能

扭矩限制功能碰撞偵測功能與類似,可減少碰撞時的損壞。

碰撞偵測功能 (機器人運動錯誤的偵測功能)

在程式中使用的上限扭矩值上增加餘裕,規範用於此功能的扭矩限制值,從而避免發生故障。使用扭矩限制功能,可以減小衝壓力。

例如,如果將扭矩限制在30%,則衝壓力也可以減少到30%。另外,當扭矩達到上限值時,機器人會立即停止。立即停止機器人可以獲得進一步的20-30%降低效果。

當扭矩限制為30%並立即停止機器人時,總共可獲得小於25%或等效的降低效果。

對於SCARA機器人,延伸軸的末端可能會被卡住並彎曲。為了減少彎曲軸的發生,建議使用此功能以獲得衝壓力之最大程度的減少。

如果發生故障,請對故障軸採取以下任何措施。

  • 將LimitTorqueStop或LimitTorqueStopLp設定為關閉
  • 增加LimitTorque或LimitTorqueLp的閾值

要將扭矩限制功能用於步進運動,請執行以下步驟。

  1. 執行PTCLR並開始扭矩測量。
  2. 執行步進運動。
  3. 以PTRQ測量最大扭矩值,然後在其上增加餘裕。
  4. 設定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