フォース動作制限機能のSPEL+プログラミング

概要

フォース動作制限機能とは、ロボットの位置または姿勢が、設定された条件になったことを検出する機能です。
結果を用いて、処理の開始, 終了, 分岐などが行えます。
フォース動作制限機能のプログラミングは、次の手順で実行します。

  1. パラメーターを設定する
  2. フォース動作制限機能を実行する
  3. 結果を取得する

フォース動作制限機能のパラメーター

フォース動作制限機能のパラメーターは、フォース動作制限オブジェクトの各プロパティーで設定します。
設定はプログラム実行前にGUIで設定します。GUIの設定の詳細は、次の項を参照してください。
ソフトウェア編 [ロボットマネージャー] - [ツール]メニュー
- [ツール]-[ロボットマネージャー]-[フォースデータ]パネル

また、プログラム実行中、動的に変化させたい場合は、FSetステートメントを使用して設定します。

  • ForceSensorプロパティー
    フォース動作制限機能の条件達成時に記録する力とトルクの対象となる力覚センサー番号を指定します。
  • CoordinateSystemプロパティー
    フォース動作制限機能の条件達成時に記録する力とトルクのフォース座標系を指定するフォース座標系オブジェクトを指定します。
  • Operatorプロパティー
    フォース動作制限機能としての条件達成を、各軸の条件全てを達成したときか、どの軸の条件を達成したときかを指定します。
  • RobotLocalプロパティー
    フォース動作制限機能が監視する位置の基準とするローカル座標系を指定します。
  • RobotToolプロパティー
    フォース動作制限機能が監視する位置の基準とするツール座標系を指定します。
  • TriggerModeプロパティー
    監視対象とする位置を指定します。
    各モードの詳細は次のマニュアルを参照してください
    "Epson RC+ 8.0 オプション Force Guide 8.0 SPEL+ランゲージリファレンス"
  • DatumPointプロパティー
    TriggerModeにRelativePointを指定した場合に基準とするポイントを指定します
  • Dist_Axesプロパティー
    X, Y, Z のどの軸を用いて距離を計算するかを指定します。
  • Rot_Axesプロパティー
    X, Y, Zのどの軸を用いて角度を計算するかを指定します。
  • Enabledプロパティー
    フォース動作制限機能を実行する軸をPosX~J6について指定します。
    アプリケーションで必要な軸のみフォース動作制限機能を有効にすることができます。
  • Polarityプロパティー
    各位置、角度、間接位置が、上下限値の範囲内になったときか、範囲外になったときかの、どちらを条件達成とするかを指定します。
    規定外の位置や姿勢に移動したことを検出する場合などは、範囲外を指定します。
    位置や姿勢が予定する範囲内に収まったことを検出する場合などは、範囲内を指定します。
  • UpperLevelプロパティー
    フォース動作制限機能の上限値を設定します。
    設定値以下か、設定値を超えるかを監視します。
  • LowerLevelプロパティー
    フォース動作制限機能の下限値を設定します。
    設定値以上か、設定値未満かを監視します。

フォース動作制限機能の実行

フォース動作制限機能は、Till, Wait, Trap, Findで指定します。
各命令の基本的な機能は、次のマニュアルを参照してください。
Epson RC+ 8.0 SPEL+ ランゲージリファレンス
ここでは、フォース動作制限機能について説明します。フォース動作制限の監視は各ロボットについて同時に15個まで監視できます。1台のロボットについて、同時に16個以上使用できません。

  • Till
    Tillステートメントのイベント式にフォース動作制限オブジェクトを指定することでフォース動作制限機能を動作の終了条件に設定することができます。これにより、指定された条件の位置になったとき、動作を終了することができます。

    使用例:

    Till FMR1
    Move P1 FC1 Till
    

TillステートメントによってTill条件にフォース動作制限が設定され、Move動作中にフォース動作制限オブジェクトFMR1に設定した条件を達成したとき、Move動作は動作途中であっても停止し次のステートメントを実行します。

  • Trap
    Trapステートメントのイベント式にフォース動作制限オブジェクトを指定することで、フォース動作制限機能を割り込み処理の開始条件に設定します。これにより、常に位置姿勢を監視して、指定された条件の位置姿勢になったとき、割り込みを開始することができます。

    使用例:

    Trap 1, FMR1 Goto TrapLabel
    

Trapステートメントによってフォース動作制限機能が実行され、条件の監視が開始されます。フォース動作制限オブジェクトFMR1に設定した条件を達成したとき、指定したラベルに移行します。

  • Wait
    Waitステートメントのイベント式にフォース動作制限オブジェクトを指定することで、フォース動作制限機能を待機の終了条件に設定します。これにより、指定された条件の位置姿勢になるまで待機します。

    使用例:

    Wait FMR1
    

Waitステートメントによってフォース動作制限機能が実行され、条件の監視が開始されます。フォース動作制限オブジェクトFMR1に設定された条件が達成されるまでプログラムを一時停止させ、条件が達成したときそのプログラムを再開します。

  • Find
    Findステートメントのイベント式にフォース動作制限オブジェクトを指定することで、フォース動作制限機能を動作中に座標を保存する条件に設定します。これにより、指定された位置姿勢になった位置を記録できます。

    使用例:

    Find FMR1
    Move P1 FC1 Find
    P0=FindPos
    

    FindステートメントによってFind条件にフォース動作制限が設定され、Move動作中にフォース動作制限オブジェクトFMR1に設定した条件を達成したとき、条件が達成された位置をコントローラーは記憶し、FindPos関数で、その位置を取得します。

    フォース動作制限機能は、TriggeredPosステータスで条件達成時の位置が取得できます。そのため、Findは複数の条件を組み合わせたイベント式を指定する場合に有効です。TriggeredPosステータスでは、そのフォース動作制限オブジェクトに設定された条件を達成した位置を取得できます。FindPos関数では、条件を組み合わせたイベント式が達成された位置を取得できます。

監視を開始したフォース動作制限オブジェクトは、FDelステートメントで削除しないでください。またマルチタスクでは、フォース動作制限オブジェクトを指定したTill, Wait, Trap, Findを同時に実行しないようにプログラムを作成してください。

フォース動作制限機能の結果取得

フォース動作制限機能の実行後、FGetステートメントでフォース動作制限オブジェクトのステータスを指定することで、その結果を取得できます。取得した結果を使用して、作業の成否判定や、条件分岐が行えます。
ステータスは、フォース動作制限機能の実行時に初期化され、フォース動作制限機能の終了時に結果が設定されます。設定された結果は、フォース動作制限機能を再度実行するか、プロジェクトをロードするまで保持されます。

  • Triggeredステータス
    フォース動作制限条件の達成状態を返します。
    直前のフォース動作制限機能で条件が達成されている場合は、“True”を返します。これを用いて、位置姿勢が指定条件になったかどうかを判定し、処理を分岐できます。

  • TriggeredAxesステータス
    フォース動作制限条件の達成状態を軸ごとに返します。
    どの軸の力が指定範囲外になったかどうかなど、より詳細な条件を判定し、処理を分岐できます。

  • TriggeredPosステータス
    フォース動作制限条件を達成した座標を返します。
    条件を達成した位置が指定の範囲内かなどを判定し、位置によって処理を詳細に分岐できます。

  • TriggeredForcesステータス
    フォース動作制限条件を達成したときの力とトルクを返します。
    条件を達成したときの力が指定の範囲内かなどを判定し、力によって処理を分岐できます。