2017-11-17 57 views
0

私はPyVISAを使用してGPIBで機器(非常に古いホール測定機器)を制御しようとしています。私はそれがlabviewで動作することを知っています。どこのアドレスが何をしているのか、そしてトレーサを使っていくつかの基本コマンドを見つけましたが、喜びはありません。私はこれまでのところ、私はアドレスを識別することができましたpythonで3GPIBの機器からPyVISAを使用して応答がありません

をDAQおよび分析コードを書くように求めてきた:

import visa 
rm = visa.ResourceManager() 
print(rm.list_resources()) 
>>>('ASRL1::INSTR', 'GPIB0::3::0::INSTR', 'GPIB0::3::1::INSTR', 'GPIB0::3::3::INSTR', 'GPIB0::3::4::INSTR', 'GPIB0::3::5::INSTR', 'GPIB0::3::6::INSTR', 'GPIB0::3::7::INSTR', 'GPIB0::3::8::INSTR', 'GPIB0::3::9::INSTR', 'GPIB0::3::10::INSTR') 

しかし、私は任意の「波」で照会しようとすると、または実際に測定コマンド文字列(トレース・ラボビューI/Oが見つかりました)は、常にタイムアウト・エラーが発生しています。

instr3_8 = rm.open_resource('GPIB0::3::8::INSTR') 
instr3_8.query("*IDN?") 
>>>VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed. 

これは、私が楽器から読み取ろうとしているすべての結果です。

(PyVISAとGPIBはKeithleyソースメーターのIDNクエリで動作するので、バックエンドが動作していることがわかります。誰でも使用できる機会があれば、この機材はバイオラドHL 5200です。オンラインでの参照なし)

磁石の位置を読み取るlabview block diagramの画像は次のとおりです。私は以来、pyvisaで書いて位置を変更することができましたが、読み込みはまだタイムアウトを与えます、githubに関する同様の問題は、終了文字が間違っていると私に導いています。

+0

違いがわかるように、動作している場所でlabviewコードを投稿できますか? –

+0

LabViewのブロックダイアグラムの外にアクセシブルな「コード」はありませんが、トレーサにはすべてが送信されています。 –

+0

「コード」では、私はlabviewのブロック図を意味しました。私たちにとっては、これは実際のコードです。ユーザーは画像として投稿できます。 –

答えて

0

PyVISAとNI MAXの両方で、機器から読み取るときに終了文字が認識されないという問題が発生しました。 .read_terminationですべての可能な終了文字を試した後、私は最終的に私のホールプローブから読むことができたものを見つけました。

0

非常に古いGPIB計測器は、GPIBの不完全または非標準の実装をしばしば持っています。たとえば、* IDN?のサポートが不足しているか、ハードコーディングされたコマンド終了文字が1つしかないことがあります。

これらの古い機器の中には、アドレス+1を「プリンタ」アドレスとして使用するものもあります。したがって、楽器はそれが設定されているアドレスを予約しますが、次のアドレスも予約します。これは、同じネットワーク上にさらに多くの(古い)機器がある場合に特に混乱を招く原因になる可能性があるため、結果として生じるアドレスを使用せず、代わりに1,3,5,7を使用することをお勧めします。

ステータスバイトを頻繁にポーリングするだけでも、本当に古い計測器の処理能力に負担をかけることがあります。

関連する問題