PyVISA

Pepe Lloret jlloret en gmail.com
Lun Oct 9 18:53:54 CEST 2006


Hola,

Estoy intentando hacer funcionar en un Windows XP la libreria PyVISA
para el control de unos instrumentos de medida conectados mediante un
bus GPIB pero no lo consigo :-(

He instalado desde la pagina del proyecto PyVISA en Sourceforge el
"PyVISA-1.0.win32.exe" sin problemas.

La libreria "visa32.dll" la tengo en en una de las carpetas del PATH,
concretamente en C:\windows\system32.

Segun la documentacion de la libreria PyVISA los prerrequisitos que
necesita para funcionar son una implementacion a bajo nivel de VISA
(supongo que sera la dll que he comentado antes) y una version actual de
ctypes (tengo instalado Python 2.5 y segun la documentacion esta
incluido).

El caso es que no me funciona ni el programa de prueba de la
documentacion, ni uno incluso mas sencillo como el siguiente.

from visa import instrument

keithley = instrument("GPIB::6")
keithley.write(":OUTP ON")

Al ejecutarlo desde la linea de comandos del Windows XP, el resultado es
el siguiente:

Traceback (most recent call last):
  File "test_gpib.py", line 1, in <module>
    from visa import instrument
  File "C:\Program Files\Python25\Lib\site-packages\visa.py", line 1, in <module>
    from pyvisa.visa import *
  File "C:\Program Files\Python25\lib\site-packages\pyvisa\visa.py", line 216, in <module>
    resource_manager = ResourceManager()
  File "C:\Program Files\Python25\lib\site-packages\pyvisa\vpp43.py", line 97, in __new__
    it.init(*args, **kwds)
  File "C:\Program Files\Python25\lib\site-packages\pyvisa\visa.py", line 212, in init
    self.session = self.vi = vpp43.open_default_resource_manager()
  File "C:\Program Files\Python25\lib\site-packages\pyvisa\vpp43.py", line 704, in open_default_resource_manager
    visa_library().viOpenDefaultRM(byref(session))
  File "C:\Program Files\Python25\lib\site-packages\pyvisa\vpp43.py", line 167, in __call__
    self.load_library()
  File "C:\Program Files\Python25\lib\site-packages\pyvisa\vpp43.py", line 142, in load_library
    self.__set_argument_types()
  File "C:\Program Files\Python25\lib\site-packages\pyvisa\vpp43.py", line 191, in __set_argument_types
    self.__lib.__getattr__(visa_function).restype = check_status
  File "C:\Program Files\Python25\lib\ctypes\__init__.py", line 325, in __getattr__
    func = self.__getitem__(name)
  File "C:\Program Files\Python25\lib\ctypes\__init__.py", line 330, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'viParseRsrcEx' not found

Segun la documentacion se puede cargar la dll tambien de la siguiente
manera.

from pyvisa.vpp43 import visa_library
visa_library.load_library(r"C:\WINDOWS\system32\visa32.dll")
from visa import 

Pero al final el error es el mismo (con algunas lineas menos):

Traceback (most recent call last):
  File "test_gpib.py", line 2, in <module>
    visa_library.load_library(r"C:\WINDOWS\system32\visa32.dll")
  File "C:\Program Files\Python25\lib\site-packages\pyvisa\vpp43.py", line 142, in load_library
    self.__set_argument_types()
  File "C:\Program Files\Python25\lib\site-packages\pyvisa\vpp43.py", line 191, in __set_argument_types
    self.__lib.__getattr__(visa_function).restype = check_status
  File "C:\Program Files\Python25\lib\ctypes\__init__.py", line 325, in __getattr__
    func = self.__getitem__(name)
  File "C:\Program Files\Python25\lib\ctypes\__init__.py", line 330, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'viParseRsrcEx' not found

Alguien sabe donde se encuentra la funcion "viParseRsrcEx"?

En teoria referente al hardware (controladora GPIB e instrumentos de
medida) y sus drivers en el ordenador, esta todo bien instalado puesto
que desde Labview me funciona sin problemas, veo los instrumentos y
puedo enviar comandos y recibir las lecturas sin problemas.

Disculpad la extension del mensaje :-)

Saludos,

  Pepe

P.D.: Disculpad que no utilice acentos ni enyes ni signos de principio
de las interrogaciones, pero el teclado que estoy utilizando ahora es
aleman y carece de todo eso sin utilizar combinaciones "raras" de teclas
que ahora mismo desconozco.

-- 
Pepe Lloret
http://www.pepell.com
http://www.valux.org

In a world without frontiers, who needs Gates and Windows?
En un mundo sin fronteras, ¿quién necesita Puertas y Ventanas?




Más información sobre la lista de distribución Python-es