NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

GPIBコマンド


計測器の制御をしているのですが
計測器間の同期を取るために
GPIB共通コマンドの*OPC、*OPC?、*WAIを使用しようと思っているのですが、
各コマンドの違いをわかる方がいらっしゃいましたら、
教えていただけますか?

以上、宜しくお願いします。
0 件の賞賛
メッセージ1/4
13,083件の閲覧回数
平素より弊社製品をご使用いただき誠に有難うございます。
日本ナショナルインスツルメンツ技術部の大澤と申します。
 
ご質問いただいた件ですが以下のように解答させていただきます。

まず、一般的なIEEE標準コードを参照いたしますと、各コマンドの動作は以下のようになります。
*OPC, Operation Complete Command (動作完了)
*OPC?, Operation Complete Query (動作完了)
*WAI, Wait-to-Continue Command (続行待ち)
 
しかしながら、各コマンドの詳細は計測器メーカーによって異なる、もしくはカスタマイズされている場合があります。
詳細につきましては、必ず機器のマニュアル、もしくはメーカ様にお問い合わせいただきご確認願えますでしょうか。

よろしくお願い申し上げます。
 
日本ナショナルインスツルメンツ技術部
大澤

このメッセージは 02-20-2007 12:35 AMに M.Osawa が編集しています。

0 件の賞賛
メッセージ2/4
13,042件の閲覧回数

*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

メッセージ3/4
13,014件の閲覧回数

Kondo 様

平素より弊社ディスカッションフォーラムにご参加いただき誠にありがとうございます。
また、お忙しい中、詳細にわたるご説明ありがとうございます。
今後ともディスカッションフォーラムのご利用よろしくお願いいたします。


ご質問されたお客様へ

Kondo様のご投稿をご参照いただければと思います。
また、お持ちの計測器のマニュアルもあわせてご覧になってください。

日本ナショナルインスツルメンツ技術部
大澤

0 件の賞賛
メッセージ4/4
12,988件の閲覧回数