Sense
Jump, Jump3, Jump3CPでSenseを指定したときに、目標座標上空で停止させるための条件の設定と表示をします。
書式
Sense [ イベント条件式 ]
パラメーター
- イベント条件式
- トリガーとする入力状態を指定します。
- [イベント] 比較演算子(=, <>, >=, >, <, <=) [整数式]
- 次の関数や変数をイベントに使うことができます。
関数: Sw, In, InW, Oport, Out, OutW, MemSw, MemIn, MemInW, Ctr, GetRobotInsideBox, GetRobotInsidePlane, AIO_In, AIO_InW, AIO_Out, AIO_OutW, Hand_On, Hand_Off, SF_GetStatus
変数: Byte, Int32, Integer, Long, Short, UByte, UInt32, UShort 型のバックアップ変数, グローバル変数, モジュール変数
- また、以下の演算子で複数のイベント条件式にマスクを掛けることや、複合的に組み合わせることができます。
演算子: And, Or, Xor
- [例]
Sense Sw(5) = On Sense Sw(5) = On And Sw(6) = Off
解説
Senseは、Jumpコマンド実行中に第3関節の下降開始直前のタイミングで入力条件をチェックします。
また、Jump3, Jump3CPコマンド実行中に接近動作開始直前のタイミングで入力条件をチェックします。
Sense条件式には、上記の関数を1つ以上含んでいなくてはいけません。
Sense条件式に変数が含まれた場合、その値は、Sense条件設定時に演算されます。意図しない条件になる場合があるので、条件式には変数を使用しないことを推奨します。Senseステートメントは複数使うこともできます。次のSenseステートメントに移るまで最後に実行された入力条件が有効です。
JumpとSense修飾子
現在のSense条件が成立するかチェックします。成立すれば、Jumpコマンドは、ロボットが目標座標の上空で停止した状態で完了したことになります。つまり、Sense条件が"True"のときは、ロボットは目標座標の上空で第3関節が下降開始直前の状態で止まります。Sense条件が"False"のときは、ロボットは目標座標でJump命令の動作を完了します。
Jump3, Jump3CPとSense修飾子
現在のSense条件が成立するかチェックします。成立すれば、Jump3, Jump3CPコマンドは、ロボットが接近開始位置で停止した状態で完了したことになります。
パラメーターを省略すると、現在のSense設定を表示します。
注意
コントローラー電源オン時のSense 設定
コントローラー電源オン時のSense条件は未設定です。電源オン後は、条件を設定してから使用してください。
Sense 条件成立をチェックするJS関数とState関数
Sense修飾子を用いた動作コマンドを実行した後で、Sense条件が成立したかどうかを、JS関数やState関数を用いてチェックすることができます。
イベント条件式で変数を使用する場合
- 使用できる変数型は整数型 (Byte, Int32, Integer, Long, Short, UByte, UInt32, UShort)です。
- 配列変数は、使用できません。
- ローカル変数は、使用できません。
- 変数値が0.01秒以上の間、イベント条件を満足していない場合、変数の変化をシステムが検出できない場合があります。
- システム内で使用できる変数待ちの数に制限があります。1システム内で使用できる変数待ちの個数は最大64個です (Waitなどのイベント条件式で使用された変数待ちも含みます)。最大数を超えた場合には、プロジェクトビルド時にエラーになります。
- 変数待ちを行う変数をByrefで参照渡しするとエラーになります。
- イベント条件式の右辺の整数式に変数が含まれたときは、その値は動作命令開始時に演算されます。意図しない条件になる場合があるので、整数式には変数を使用しないことを推奨します。
参照
In関数, JS関数, Jump, Jump3, Jump3CP, MemIn関数, MemSw関数, Stat関数, Sw関数, SF_GetStatus関数
Sense使用例
Sense命令の簡単な使用例です。
Function test
.
.
TrySense:
Sense Sw(1) = Off '入力ビット1がOffのとき目標座標上空で停止するように設定
Jump P1 C2 Sense
If JS = True Then
GoSub ERRPRC 'アームが目標座標上空で停止している場合は
GoTo TrySense 'ERRPRCを実行しTrySenseに移動
EndIf
On 1; Wait 0.2; Off 1
.
.
Fend
[その他の書式例]
> Sense Sw(1)=1 And MemSw(1)=1
> Sense Sw(0) Or (Sw(1) And MemSw(1))
← SelectDB関数 SetCom →