2017-01-05 2 views
0

Blockquotedélai d'attente lors de l'utilisation des commandes pour IPAC alimentation Keithley 2230

J'utilise un canal triple Keithley 2230 alimentation en courant continu pour l'automatisation de laboratoire avec PyVISA. Je veux sélectionner le canal particulier et régler la tension en conséquence. J'ai joint le programme ainsi que l'erreur.

Je l'ai fait les recherches suivantes, mais je n'a pas réussi.

PyVISA SCPI commands and queries (issue with value update)

Python SCPI avoiding fixed delays (synchronization issue)

Programme:

import visa 

rm = visa.ResourceManager() 
str = 'USB0::0x05E6::0x2230::9102008::INSTR' 
inst = rm.open_resource(str) 
print inst.query("*IDN?") 
######### print the selected channel ########## 
print inst.query("INSTrument:SELect?") 
######### selected the perticular channel ########## 
print inst.query("INSTrument:SELect 2") 

Commandes J'ai reçu du lien officiel de l'alimentation Keithley DD:

http://assets.tequipment.net/assets/1/26/Documents/Keithley/2220_30_1/2220_30_1_doc_4.pdf

sortie Log:

Keithley instruments, 2230-30-1, 9102008, 1.15-1.04 

CH1 

Traceback (most recent call last): 
    File "C:/Users/PycharmProjects/trails/keithley2230.py", line 9, in <module> 
    print inst.query("INSTrument:SELect 2") 
    File "C:python-2.7.9\lib\site-packages\pyvisa\resources\messagebased.py", line 384, in query 
    return self.read() 
    File "C:\python-2.7.9\lib\site-packages\pyvisa\resources\messagebased.py", line 309, in read 
    message = self.read_raw().decode(enco) 
    File "C:\python-2.7.9\lib\site-packages\pyvisa\resources\messagebased.py", line 283, in read_raw 
    chunk, status = self.visalib.read(self.session, size) 
    File "C:\python-2.7.9\lib\site-packages\pyvisa\ctwrapper\functions.py", line 1569, in read 
    ret = library.viRead(session, buffer, count, byref(return_count)) 
    File "C:\python-2.7.9\lib\site-packages\pyvisa\ctwrapper\highlevel.py", line 180, in _return_handler 
    raise errors.VisaIOError(ret_value) 
pyvisa.errors.VisaIOError: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed. 
+0

Qu'est-ce que 'rm.list_resources d'impression()' produisent? – TigerhawkT3

+0

Et que se passe-t-il si vous interrogez d'abord le canal 2, puis le canal 1? – TigerhawkT3

+0

rm.list_resources d'impression() produit (u'USB0 :: 0x05E6 :: :: 0x2230 9102008 :: INSTR 'u'ASRL3 :: INSTR', u'ASRL10 :: INSTR ') – Sandy

Répondre

0

erreur venait à cause de la requête:

print inst.query("INSTrument:SELect?") 
Instead I used print inst.write("INSTrument:SELect?") 

Fixation du fragment de code pour les futurs utilisateurs :-)

import visa 
import pyvisa 

rm = visa.ResourceManager() 
print rm.list_resources() 
str = 'USB0::0x05E6::0x2230::9102008::INSTR' 
inst= rm.open_resource('USB0::0x05E6::0x2230::9102008::INSTR') 


print inst.query("*IDN?") 

print inst.write("OUTPUT ON") 

inst.write("INSTrument:SELect CH1") 
print inst.query("INSTrument:SELect?") 
print inst.write("OUTPut:ENABle 1") 
print inst.write("APPLY CH1,1.11V,1.5A")