ID : 5901
GetAreaDetected
機能
現在のエリア検知状態を取得します。
このコマンドはVer.1.8.*から有効です。
構文
GetAreaDetected(エリア番号[, 条件])
指定項目
- エリア番号
- 検知エリア番号(0~31)または"-1"を整数型データで指定します。 "-1"を指定すると全エリアが対象になります。
- 条件
- 下記に示す検知条件を整数型データで指定します。省略可能です。省略時は"0"です。
"-1"の場合は「0:エリアに入った」、「1:エリアから出た」の両方の状態を検知したときに、該当ビットが"1"になります。指定値 検知条件 -1 「エリアに入ってから出た」または「エリアを出てから入った」 0 エリアに入った 1 エリアから出た
戻り値
指定エリアの検知状態を、32ビットのビット列の該当ビットにセットし、整数型データで返します。条件を満たす場合は、指定エリアのビットが"1"になります。該当ビット以外は"0"になります。エリア番号で"-1"を指定した場合は、全エリアの状況を各ビットにセットして返します。
解説
指定エリアの現在の検知状態を取得します。Ver.1.8.*から使用可能なコマンドです。
32ビットのビット列で値を返します。最下位ビットがエリア番号0、最上位ビットがエリア番号31の状態を表します。
例1
エリア番号1を指定し、エリア番号1が検知条件を満たす場合は、2桁目のビットが"1"になるので、"0x00000002"が返ります。
例2
エリア番号で"-1"を指定し、エリア番号0とエリア番号1のみが検知条件を満たす場合は、最下位ビットと2桁目のビットが"1"になるので、"0x00000003"が返ります。
注意事項
ClearAreaDetectedコマンドが発行されるまで、コントローラ内部では検知状態を保持しています。用例のように、状態変化を監視するような場合は、GetAreaDetectedコマンドの使用前にClearAreaDetectedコマンドを使用してください。
用例
'!TITLE "Pro1.pcs"
Sub Main
TakeArm Keep = 0
ResetArea 0
Move P, P( 300, -100, 200, 180, 0, 0, 5 )
Area 0, P( 300, 0, 200, 0, 0, 0 ), V( 50, 50, 50 ), 128, -1, 0, Tar_Time( 2 )
SetArea 0
Move L, P( 300, 100, 200, 180, 0, 0, 5 ), Next
'エリア0に入るまで待機し外部機器に通知
ClearAreaDetected -1, -1
Wait GetAreaDetected( 0, 0 )
Set IO24
'エリア0から出るまで待機し外部機器に通知
ClearAreaDetected -1, -1
Wait GetAreaDetected( 0, 1 )
Reset IO24
End Sub
ID : 5901