short RobSetServoPower ( short idx, long mask, long control );
0が返却されます。
idx:ロボットを指定するインデックス。
mask:制御の対象となる軸を指定するためのデータをビットイメージで指定します。1で制御対象、0で制御対象外です。
control:サーボON/OFFを指定するためのデータをビットイメージで指定します。1がON、0がOFFです。
指定ロボット各軸のサーボON/OFFを指定します。
引数のmaskおよびcontrolのデータ形式は次に示すようなビットイメージです。
LSB(ビット0)…論理軸の1軸目に該当するビット
ビット1…論理軸の2軸目に該当するビット
ビット2…論理軸の3軸目に該当するビット
・・・
ビット7…論理軸の8軸目に該当するビット
ビット8以降のビットは意味がありません。
maskの該当ビットに1を指定するとサーボON/OFFの制御対象となります。該当ビットに0を指定すると制御対象外となります。
controlの該当ビットに1を指定するとサーボONを指示し、0を指定するとサーボOFFを指示します。ただし、maskで制御対象となっている軸のみに影響し、制御対象外の軸には影響しません。
例)mask=0x3とcontrol=0x5が指定された場合は、1軸目と2軸目が制御対象なので、本関数の実行により1軸目がサーボON、2軸目がサーボOFFととなり、それ以外の軸は制御対象外なので以前のサーボ状態を維持します。
論理軸はコンフィギュレーションファイルのAxisパラメータの「Axis=」に続くの8つの数字の並び順で定義されます。左から順に論理1軸目、同2軸目、…、同8軸目のように並んでいます。
ロボットと軸(モータ軸)リソースにも説明がありますので参照してください。
〇PCベースコントローラ
〇InterMotion
次の例では、Robot1が3軸で構成されているとして説明しています。
void main() {
・・・・
RobSetServoPower(1, 0x7, 0x7); // Robot1の1,2,3軸目をサーボオンします
・・・・
RobSetServoPower(1, 0x3, 0); // Robot1の3軸目はオンのまま、1,2軸目をサーボオフします
・・・・
}