Q11(質問) スレーブのSTATUSのCMDRDYが「0」のとき、マスタはCMMDRDYが「1」になるタイミングを知る為に何か別のコマンド(例えば、NOP等)を送ってくるのでしょうか? なにかコマンドが送られてきた場合、スレーブはどのような処理をすればいいのでしょうか?

A(回答)

MECHATROLINKでは常にマスタとスレーブ間でデータをやり取りし、スレーブは常にステータスエリア、ALARMエリア、その他のレスポンスデータを更新しつづけます。このため、マスタはCMDRDYが「1」になったかを確認するためのコマンドを送信することはなく、どのコマンドが流れていてもCMDRDYは確認できます。ただし、通常は、送信したコマンドの応答中のCMDRDYが「0」であれば、コマンドを変更せずにそのままのコマンドでCMDRDYが「1」になるのを待ちます。また、スレーブはCMDRDYが「0」の時に新しいコマンドが来た場合には、新しいコマンドを受け付けません。(スレーブは新しいコマンドの応答を返さず、実行中のコマンドへの応答を返しつづける) ちなみに、モーション系コマンド(POSING、INTERPOLATE等)では目標位置変更が常に可能になるようにCMDRDYは「1」となります。