0

こんにちは、LabView 2012、Delphi XE7 と GPIB (488.2 だと思います)、Win7 SP1 と Agilent 53131A を使用しています。

与えられたNIの例を使用しました。

NI Labview の例 - LabVIEW のヘルプ - GPIB.vi にあります。

2 つのチャネルから周波数を照会するために書き込みと読み取りを試みましたが、成功しました。それらは送信され、連続して読み取られます。

  1. *IDN?
  2. :FUNC 'FREQ 1'
  3. :READ:FREQ?

成功した場合は、Agilent および NI MAX 用の GPIB とドライバが正常にインストールおよび構成されたことを意味します。

また、KeySight Connection Expert を使用して書き込みと読み取りを行うこともできます。これも成功しています。

ただし、指定されたNI の例を Delphi で使用した場合。元々は Delphi 3 または 4 として保存されていました。

ユニバーサル カウンターの Scope Simple の例を使用しました。私は主に簡単な方法で書いたり読んだりするためにそれを使用しました。初期化、読み取り/書き込み、およびクリーンアップが必要なすべて

SimpleForm.pas で、次のコードを次のように変更しました

検出されたデバイスはGPIB0::3::INSTR32 行目で、

PRIMARY_ADDR_OF_COUNTER = 3;  

読み書きする文字列なので、132行目で、

CommandBox.Text := '*IDN?';

その後、エラーなしでコンパイルされ、実行されました。

文字列の書き込みに成功しました

しかし、読んでみると、うまくいきませんでした。文字列出力は と想定されます' HEWLETT-PACKARD,53131A,0,4806'

プログラムの最後のエラーは次のとおりです。

Unable to read from device
ibsta = SC000 <ERR TMO>
iberr = 6 <EABO>
ibcntl = 0

これらの読みから、私は次のように理解しました:-

EABOは中止を意味します

私は GPIB の操作に慣れていません。親切なアドバイス。

4

1 に答える 1

1

EABOそれがアボートの識別子であることは正しいです。ibsta = SC000 <ERR TMO>また、アボートの原因が GPIB タイムアウト エラーであることがわかります。私は Keysight Connection Expert やあなたの測定器に詳しくありませんが、エラーは GPIB タイムアウトによるものだったので、最も可能性の高い原因は次のとおりです。

  1. クエリの形式が不適切であり、計測器はそれが応答を必要としない単なる書き込みステートメントであると認識しました。(これがおそらく、書き込み関数にはエラーが発生しなかったのに、読み取り関数がタイムアウトになった理由です。)
  2. クエリの形式が不適切で、計測器がエラーを返しました。
  3. 計測器は、データを送信するために「トーカー」機能を有効にする必要があります。(ほとんどの計測器は、クエリを使用してこれを自動的に行います。)

一般的な GPIB コマンドの詳細については、ナショナル インスツルメンツの関係者によるこのリファレンスを参照してください。

于 2015-08-27T20:26:48.293 に答える