2

GPIB計測器の1つに問題があります。かなり古いもので、IEEE-488-1978と記載されています。そのバージョンのIEEE-488のリファレンスマニュアルを入手しようとしましたが、成功しませんでした。

この問題は、機器のステータスレジスタを読み取るために、シリアルポーリング機能が必要であるという事実に関するものです(リファレンスマニュアルに記載されています)。PyVISAを使用してPythonでこれを行う方法がわかりません。

たとえば、デバイスから読み取るために使用しているのは_instrument.ask("RV")_、です。ここで、は_RV_を意味し_Read Version_ます。また、温度のようなパラメータを書くために、私はそうします_instrument.write("ST20.00")_、ここで、は_ST20.00_を意味し_Set Temperature to 20.00 Celcius_ます。

_ask_Python / VISAコマンドを使用して機器に送信するASCIIコマンドを見つけて、その代わりに取得しようとしていますが、_Status Register Byte_実行可能なものは何もないようです。

Python / VISAでシリアルポーリング関数を渡す方法について誰かが提案を持っている場合、それは私の問題を解決する可能性があります。

4

1 に答える 1

2

1975年、IEEEはIEEE-488-1975規格を作成し、GPIBと呼ばれることもあるデジタル通信バスについて説明しました。1978年に改訂されました。ハードウェアインターフェイスについては説明されていますが、コマンドとデータの形式については説明されていません。1987年に、彼らは標準コード、フォーマット、プロトコル、および共通コマンドを記述したIEEE-488.2-1987標準を導入しました。

ここで問題に戻ります。

pyvisasクラスには、ステータスバイトにアクセスするために使用できるvisa.GpibInstrumentというプロパティがあります。stbソースから:

@property
def stb(self):
    """Service request status register."""

    return vpp43.read_stb(self.vi)

だからあなたは簡単に行うことができます

instrument = visa.instrument('GPIB::01')  # Assuming a GPIB device on channel 1
print instrument.stb  # Print status register

デバイスがIEEE-488.2に準拠している場合は、もう1つのオプションがあります。共通コマンドを送信できます*STB?

instrument = visa.instrument('GPIB::01')  # Assuming a GPIB device on channel 1
print instrument.ask('*STB?')  # Print status register
于 2013-02-08T14:02:46.120 に答える