<< 前へ        次へ >>

ID : 2271

ExclusiveControlStatus

機能

排他制御状態を取得します。

このコマンドはVer.1.12.*から有効です。

構文

ExclusiveControlStatus (モード[, 排他コントローラ番号])

指定項目

モード
取得したい状態を整数型データで指定します。
指定値 意味 状態
0 排他制御有効状態 ON:有効
OFF:無効
1 排他制御侵入状態 ON:侵入中
OFF:侵入無
2 排他制御待機状態 ON:待機中
OFF:待機無
排他コントローラ番号
排他コントローラ番号を整数型データで指定します。 省略時は自コントローラのロボットが対象になります。
0:排他制御IP(0)
1:排他制御IP(1)
2:排他制御IP(2)
3:排他制御IP(3)

戻り値

指定モードの状態を、32ビットのビット列の該当ビットにセットし、整数型データで返します。

モードの状態がONの場合は"1"、OFFの場合は"0"を返します。

    I0 = ExclusiveControlStatus( 1, 1 ) 'ロボット1の排他制御侵入状態を取得

戻り値が"I0 = 5(&B101)"の場合は、排他エリアの0番と2番にロボット1が侵入していることを表しています。

解説

指定した排他制御ロボットの排他制御状態を取得します。

協調機能と排他制御機能を併用する場合、ロボット名(Robot0やRobot1など)を使用して、状態を取得するロボットを指定することができます。下記のように記述すると、Robot1の状態を取得できます。

 I0 = Robot1.ExclusiveControlStatus( 1 )

ただし、ロボット名と排他コントローラ番号を両方とも使用した場合は、排他コントローラ番号が有効になります。例えば下記のように記述したとします。

 I0 = Robot1.ExclusiveControlStatus( 1, 0 )

"Robot1"(スレーブ)は無視され、排他コントローラ番号の"0"(マスターコントローラ)の状態が取得されます。

ロボット名は、ロボットコントローラのソフトウェアバージョンが2.5.*以上から使用できます。それより古いバージョンの場合、ロボット名を指定しても無効となります。
例えば、下記のように記述したとします。

 I0 = Robot1.ExclusiveControlStatus( 1 )

"Robot1"(スレーブコントローラ)は無視され、自コントローラにつながっているロボットの状態が取得されます。協調機能の場合、ロボットプログラムを実行するのはマスターコントローラだけなので、マスターコントローラにつながっているロボットの状態が取得されることになります。

注意事項

-

用例

機能ガイドの排他制御機能の「プログラミング」を参照してください。

ID : 2271

<< 前へ        次へ >>