2

visaPython にインポートしてGPIB、デバイスを制御するためにインターフェースしようとしています。私が使用しているデバイスの名前は で"GPIB0::9::INSTR"、これで問題ないと思います。

2.7.3 Python Shell で次のコードを実行しました

>>> from visa import *
>>> a = instrument("GPIB0::9", timeout = 20)
>>> a.write("*IDN?")
>>> print a.read()

Traceback (most recent call last):
  File "<pyshell#53>", line 1, in <module>
    print a.read()
  File "C:\Python27\lib\site-packages\pyvisa\visa.py", line 433, in read
    return self._strip_term_chars(self.read_raw())
  File "C:\Python27\lib\site-packages\pyvisa\visa.py", line 407, in read_raw
    chunk = vpp43.read(self.vi, self.chunk_size)
  File "C:\Python27\lib\site-packages\pyvisa\vpp43.py", line 840, in read
    visa_library().viRead(vi, buffer, count, byref(return_count))
  File "C:\Python27\lib\site-packages\pyvisa\vpp43.py", line 398, in check_status
    raise visa_exceptions.VisaIOError, status
VisaIOError: VI_ERROR_TMO: Timeout expired before operation completed.

上記は、システムが私に与えたエラーです。実は最初に をTimeout3 に設定したところ、このエラーが表示されました。しかし、上記のように値を 20 に変更した後も、まだ機能しませんでした。

誰か助けてくれませんか?

4

3 に答える 3

0
import visa

rm = visa.ResourceManager()
devices = rm.list_resources()
comm_channel = rm.open_resource(devices[0])     #assuming you only have 1 address to worry about

print(comm_channel.query("*IDN?"))

これは、PYVisa のモジュールと、USB/GPIB デバイスとの接続/書き込み/読み取りで提供される多くの機能を活用します。

于 2015-12-04T22:38:44.983 に答える
0

タイムアウトにつながる可能性のあるさまざまな問題があります。まず、デバイスが*IDN?クエリをサポートしているかどうかを確認する必要があります。これは IEEE-488.2 標準コマンドであるため、サポートされている可能性が高いです (サポートされていない場合は、マニュアルでコマンドを確認してください)。

次に、通信設定、特に終了文字と EOI を確認する必要があります。

間違った終了文字を使用している場合、ビザは読み取りを続行し、最終的にタイムアウトになります。

: クエリ可能なコマンドを使用している場合は、pyvisa の ask 関数を使用できます (書き込みと読み取りの組み合わせです)。

import visa

# If you've got just one gpib card installed, you can ommit the 0.
# ASsuming the EOI line should be asserted and a termination character
# of '\n'
instrument = visa.instrument('GPIB::9', term_chars='\n', send_end=True)
# use ask to write the command and read back the response
print instrument.ask('*IDN?')
于 2013-03-18T10:04:43.307 に答える
-1

特定の楽器ごとに、それらを制御するための独自のコマンドがあります。デバイスのユーザーマニュアルを参照してください。

于 2012-07-10T01:45:57.733 に答える