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