TC
トルク制御モードの設定および現在のモードを表示します。
書式
(1) TC { On | Off }
(2) TC
パラメーター
- On | Off
-
- On : トルク制御モードを有効にします。
- Off : トルク制御モードを無効にします。
戻り値
パラメーター省略時、現在のトルク制御モードを表示します。
解説
TC On/Offでトルク制御モードを有効、無効にします。
トルク制御モードは、モーター出力の制限値を設定することで一定の力を発生させるためのモードで、ハンドを対象物に一定の力で押しつける、ハンドと対象物の接触を保ちながら対象物の動きに合わせてならい動作をさせる場合などに利用します。
トルク制御を有効にする前に、TCLimでトルク制限値を設定してください。
トルク制御モード中も、動作コマンド実行時には、目標位置に位置決めするようにロボットが動作します。ロボットが対象物に接触して、モーター出力がトルク制限値に達したところで、ロボットは停止し、一定トルクを保持します。
下記のいずれかの場合、トルク制御モードを無効にします。
- コントローラー起動時
- Motor On実行
- SFree, SLock, Brake 実行
- Reset, Reset Error実行
- 停止ボタン, Quit All実行などによるタスクの終了
TC使用例1
Speed 5
Go ApproachPoint
'Z軸トルク制限値を20に設定します。
TCLim -1, -1, 20, -1
TC On
Go TargetPoint
Wait 3
Go ApproachPoint
TC Off
注意
Safety基板を搭載したコントローラーで位置異常が検出される場合
「ロボットの現在位置」と、「ロボットの現在の動作目標位置」が大きく離れないよう、プログラムを修正してください。
大きく離れてしまうと、Safety基板が故障と判断し、「エラーNo.9801 Safety基板が位置異常を検出した」エラーが出ます。(Safety基板を搭載したコントローラー)
ロボットの現在位置はRealPos関数で取得できます。
ロボットの現在の動作目標位置はCurPos関数で取得できます。
スカラの場合、RealPosの差とCurPosの差はJ1:10度, J2:10度, J3:40mm, J4:90度程度以下で使用することを奨励します。
エラーが発生する値は機種ごとに異なります。エラーにならない範囲で機種ごとに大きく設定が可能です。
TCSPeedで速度制限すると、対象物に接触する前にRealPosとCurPosに差が生じます。TCSpeedを利用しないか、利用する場合はSpeedと同じ値にしてください。
| 1. 対象部に接触していない場合 | 2. 対象部に接触している場合 |
| 記号 | 説明 |
|---|---|
| a | ハンド |
| b | 対象物 |
ロボットの現在位置 (RealPos)と、ロボットの現在の動作目標位置 (CurPos)は近い位置です。
ロボットの現在位置 (RealPos)は、対象物に接触した位置を維持します。
ロボットの現在の動作目標位置 (CurPos)は、TagetPointに向かって進行します。
この距離が一定以上開くとエラーNo.9801が発生します。
Safety基板の位置異常を発生させずに利用するサンプルプログラムを以下に示します。
Tillコマンドを使い、「ロボットの現在位置」と、「ロボットの現在の動作目標位置」の差が一定以上で次の処理に進むことによりエラーを回避できます。
差をなるべく小さい値にすることで、早期に次の処理に移るため、タクトタイム向上につながります。
TC使用例2
Speed 5
Go ApproachPoint
'Z軸トルク制限値を20%に設定します。
TCLim -1, -1, 20, -1
Xqt posDiffChk(10.0) '位置差分チェックタスク起動。J3軸10.0mm以上の差で、フラグを立てる
TC On
Go TargetPoint Till MemSw(0)
Wait 3
Go ApproachPoint
TC Off
Function posDiffChk(Zth As Double)
Do
If (Abs(CZ(RealPos) - CZ(CurPos)) > Zth) Then
'「ロボットの現在位置」と、「ロボットの現在の目標位置」の差が閾値を超過したか?
MemOn (0) ' 位置偏差大フラグ ON
Else
MemOff (0) ' 位置偏差大フラグ クリア
EndIf
Wait 0.01
Loop
Fend