ID : 5112
プログラム用例
プログラム用例を以下に示します。
用例の内容解説
-
衝突検出機能は、複数のテーブルを設定することができます。
下記の例では、設定した複数のテーブルを使用し、全体に衝突検出機能を有効にし、ある特定の部分のみ検出感度を上げて使用しています。
-
「SetCollisionDetection」コマンドで、全体動作用と特定動作用のテーブルを設定します。
全体動作の開始前に、全体動作用のテーブルを「CollisionDetection」コマンドで有効にします。
特定動作前に、特定動作用のテーブルを有効にしています。特定動作終了後、特定動作用のテーブルを「CollisionDetection」コマンドで無効にしています。
最後に衝突検出状態を「GetCollisionStatus」コマンドで確認し、衝突がある場合は退避させています。 - ただし、実際に使用する場合は、特権タスクもしくは、別タスクにて「GetCollisionStatus」を使用して衝突状態を監視し、その都度、退避動作やロボット停止といった回避動作を行なう必要があります。
用例
Sub Main 'プログラムを開始します。
'全体動作用衝突検出(テーブル1,ロボット軸,エラー出力なし)
SetCollisionDetection 1, &h3f, J(100,100,100,100,100,100), 1
'ピック用衝突検出(テーブル2,ロボット軸,エラー出力あり)
SetCollisionDetection 2, &h3f, J(100,50,50,100,50,100), 0
TakeArm 0
Extspeed 80
Speedmode 3
Motor ON
Move P,@0 P1
'全体動作用のテーブルを有効にします
CollisionDetection True, 1
'ピック&プレース動作
'目標点上空位置
Approach L, P2, 100
'ピック動作
'特定動作用のテーブルを有効にし検出感度を上げる
CollisionDetection True, 2
Move L,@0 P2, Speed = 10
Depart L, 100
'特定動作用の衝突検出を終了
CollisionDetection False, 2
:
:
'全体動作用の衝突検出を終了
CollisionDetection False, 1
'衝突状態確認
I1 = GetCollisionStatus(1)
If Not I1 = 0 Then Goto ErrProc
ExitProc:
Exit Sub
ErrProc:
'エラー処理
S0 = "衝突検出しました。ワークを確認してください"
End Sub 'プログラムを終了します。
ID : 5112