02-19-2007 12:40 AM
02-19-2007 10:19 PM - 編集済み 02-19-2007 10:19 PM
このメッセージは 02-20-2007 12:35 AMに M.Osawa が編集しています。
02-20-2007 02:52 AM
*OPC
このコマンドを送ったあと、計測器側のコマンド実行動作が全て完了すると、IEEE488.2 Standard Event Register (*ESR?で照会可能)のOPCビット(0x01)が立ちます。Standard Event Enable Register (*ESE)の設定とStatus Byte Enable Register (*SRE)の設定を上手く併用すれば、完了イベントをSRQに割り付けることも可能です。完了待ち中に、*CLS又はデバイスクリアをホストから送る事で待ち動作をキャンセルできます。
*OPC?
このクエリを送ったあと、計測器側のコマンド実行動作が全て完了すると、レスポンス「1」が<NR1>形式で返ってきます。動作が完了するまで応答はありません。(応答がないからといって「0」が返答されることはない)。「1」レスポンスを受信する前にホストから任意のコマンドを送ると待ち動作をキャンセルできます。
*WAI
このコマンドを送ったあと、計測器側のコマンド実行動作が全て完了まで、他のコマンドを一切受け付けなくなります。唯一受け付けるのはデバイスクリアです。従ってデバイスクリアをホストから送る以外に完了待ち動作をキャンセルする方法はありません。
というのが、これらをリアルに実装している計測器の一般的動作です。但し計測器のモデルによっては、内部のコマンドパーサーエンジンや処理実行ブロックの都合上、「シーケンシャル、或いは同期的なコマンド処理」を行なっている場合があります。このような場合、
*OPC - 即座に*ESRのOPCビット(0x01)を立てる
*OPC? - 単に「1」を返答する
*WAI - 何もしない
というダミー実装になっていることがあります。
それと、「コマンドの実行が完了する」という部分をどのように解釈しているかが機種によってまちまちです。例えば、60sかかる一連の処理を、「処理を開始した時点でSTARtコマンドの仕事は完了した」と見なす機種もあれば、「60sの処理が全て完了した事で動作完了とする」とする機種も有ります。
Kikusui Electronics Corp.
Makoto Kondo
02-20-2007 07:07 PM
Kondo 様
平素より弊社ディスカッションフォーラムにご参加いただき誠にありがとうございます。
また、お忙しい中、詳細にわたるご説明ありがとうございます。
今後ともディスカッションフォーラムのご利用よろしくお願いいたします。
ご質問されたお客様へ
Kondo様のご投稿をご参照いただければと思います。
また、お持ちの計測器のマニュアルもあわせてご覧になってください。
日本ナショナルインスツルメンツ技術部
大澤