<< 前へ        次へ >>

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

<< 前へ        次へ >>