Instrument Control (GPIB, Serial, VISA, IVI)

cancel
Showing results for 
Search instead for 
Did you mean: 

Problemas de comunicación con fuente Sorensen XG 300-5.6

Solved!
Go to solution

Hola,

 

Estoy tratando de controlar con LabView la fuente de alimenación Sorensen XG 300-5.6. Para ello estoy utilizando un cable GPIB y me comunico mediante VISA. Aparentemente las funciones funcionan correctamente, excepto la función READ. Escribo una función utilizando WRITE (por ejemplo, MEAS:VOLT?), espero 200ms y luego leo utilizando READ y leyendo 100 bytes (he probado cambiando este valor).

 

Hay veces que funciona, y veces que no. Estoy utilizandolo en una aplicación que lee tensión y corriente cada segundo, y tras 1-3 iteraciones que lee correctamente, salta un error (-1073807339).

 

¿Alguien sabe cuál puede ser el problema? ¿Estoy haciendo algo mal?

 

Muchas gracias,

Aitor

0 Kudos
Message 1 of 9
(4,279 Views)

Hola, probablemente leer 100 bytes tarda demasiado y salta el "Timeout error". 

Intenta seguir las explicaciones del siguiente enlace para poder resolver el error.

http://digital.ni.com/public.nsf/allkb/874B379E24C0A0D686256FCF007A6EA0

0 Kudos
Message 2 of 9
(4,248 Views)

Hola,

 

Gracias por responder.

 

He probado con las distintas opciones que aparecen en el enlace que me envías (introducir un delay entre función Write y Read, añadir el Property Node para que sólo lea el número de bytes disponibles, probar leyendo sólo 1 byte, aumentar el Timeout...).

 

Ninguna de ellas soluciona el problema. Es algo extraño porque también ocurre introduciendo las instrucciones de forma manual mediante NI MAX; inicialmente responde correctamente, y llega un momento donde devuelve error con todas las funciones query.

 

He pensado que puede ser cosa de la propia fuente, pero se me hace raro que una fuente programable tenga este error. Tengo dos fuentes iguales y se tiene el mismo comportamiento en ambas.

 

¿Tienes alguna otra idea de cuál puede ser el problema?

 

Muchas gracias,

Aitor

0 Kudos
Message 3 of 9
(4,237 Views)
Solution
Accepted by topic author abarrenetxea

Vale, parece que está solucionado.

 

Aunque el error lo marcaba en el Read, parece que la fuente de los problemas venía de tratar de escribir commandos demasiado rápido. El caso es que al introducir delays después de los bloques Write, el comportamiento de la fuente es el esperado.

0 Kudos
Message 4 of 9
(4,223 Views)

Gracias por compartir la solución.

0 Kudos
Message 5 of 9
(4,220 Views)

Hi @abarrenetxea,

 

I have the exact same problem as you. How did you fix the problem? Did you introduce a delay before or after the VISA write command?

Thanks.

0 Kudos
Message 6 of 9
(4,177 Views)

Hi bfd895,


I introduced a delay after VISA Write commands. I set 500ms and it works, but I don't know if it might be less, you could try. I also set 1000 bytes to read in VISA Read commands.

 

I hope that it can help you,

0 Kudos
Message 7 of 9
(4,166 Views)

It is worth checking your instrument with VISA Test Panel from NI MAX. You can send a command and check how many bytes are written and how many bytes are read. Afterwards in LabVIEW you can Read the exact same amount of bytes VISA Test Panels tells you.

By default Timeout of any VISA function is 2 seconds (2000 ms). Some instruments need more than that.

 

Also, check how many bytes are actually written with VISA Write function by using the "return count" output of that function. Sometimes, VISA Write does not understand the command and writes more bytes , the instrument does not understand the command and hence you will end up with a timeout in VISA Read because the instrument did not understand the command written in first place.

0 Kudos
Message 8 of 9
(4,164 Views)

Thank you for the tips.

Best regards

0 Kudos
Message 9 of 9
(2,849 Views)