問題タブ [gpib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - チャネルを簡単に切り替えて、GPIB 経由で Kiethley DMM からデータを取得するにはどうすればよいですか?
さまざまなソースからデータを記録し、ライブ プロットを提供しながら csv ファイルに保存する簡単な DAQ プログラムを作成中です。私の尻を蹴っている1つの問題は別として、それはうまくいきました。
私がデータを引き出さなければならない場所の 1 つは、scan-2001 10 チャネル スキャン カードを搭載した古い Kiethley 2001 DMM です。Pymeasure と Prologix USB to GPIB アダプタを使用すると、ユニットと簡単に通信できますが、単に特定のチャネルに変更し、ディスプレイに値を記録してから、どの GPIB コマンドの文字列を使用する必要があるのか わかりません。 DMM の現在の設定に干渉することなく、次のチャネルに移動します。さまざまなチャネルには、このプロジェクトの前にメーターに既に設定されている電圧の読み取り値、アンペア数、温度、および抵抗が含まれます。
プロジェクトは Python3.7 で作成され、Raspberry Pi 3B+ に実装されています。
IDN を送信できるので、通信が正常に機能していることを確認できますか? ユニット情報と ROUT:SCAN:INT? を取得します。10 チャネルすべてが使用可能であることが示されます。
python - Python で PyVISA を使用して GPIB 経由で計測器に接続する
私は、ケースレー 2400 ソースメータとケースレー 2182a ナノボルトメータを使用して、電気接触抵抗の取得に取り組んでいます。どちらの機器も、Keithley KUSB-488b アダプタを使用して USB 経由で Windows コンピュータに接続されています。
Python、Pyvisa モジュール、National Instruments バックエンド (NI VISA) を使用して、必要な測定を実行できるスクリプトを作成しています。しかし、楽器との通信に問題があります。Pyvisa の開発者が提供する公式ドキュメントに基づいていくつかの簡単なスクリプトを実行しましたが、どちらの機器にも接続できません。次の簡単なコード ブロックは、私の説明に役立つかもしれません。
4 行目の結果から、計測器のアドレスのリストが得られるはずです。しかし、これらはどれも正しくないためVI_ERROR_TMO
、4 行目で提供される 4 つのアドレスを試すと、タイムアウト エラー ( ) が発生します。この単純なコード ブロックの 4 行目で期待される出力は、ドキュメンテーション。KI-488 診断ツールを使用して、両方のデバイスと通信してみました。どちらともうまく通信できました。SMU のアドレスは GPIB::24 で、ナノボルトメータは GPIB::7 です。
また、診断ツールから取得した GPIB アドレスを、より複雑なスクリプト (現在のスイープ) で渡そうとしました。しかし、これは
pyvisa.errors.VisaIOError: VI_ERROR_LIBRARY_NFOUND (-1073807202)
同様のエラーをオンラインで検索しましたが、そのほとんどは、dll がないか、ビット数が正しくないことが原因です。python -m visa info
ただし、実装されたバックエンドが正しいことを単純に証明するため、これは私の場合ではありません。も渡そうとしましたresourcemanager( path )
が、それも失敗しました。
さらに、Keithley I/O Layer をインストールしようとしましたが、それでもうまくいきませんでした。また、ケースレーのコミュニケータでは、両方のデバイスが実際に対応する GPIB アドレスで表示されます。この問題は、Python と適切なアドレスで動作しています。