El programa Keithley3390 facilita la automatización de mediciones en circuitos de laboratorio, enviando comandos a equipos especializados, que en este caso es un generador de señales de marca Keithley Intruments. El programa ocupa el protocolo VXI11 para comunicación vía LAN con el equipo.
VXI11 es un conjunto de librerías pre programadas que implementan métodos para enviar y recibir cadenas de caracteres que serán los comandos de seteo o comandos de pregunta (query) que se le enviarán al equipo.
Originalmente, el programa se construyó para hacer pruebas de linealidad en amplificadores-derivadores, la pruebas consistían en darle al amplificador una entrada de -50 [mV] a -1[V] cada 50 [mV] (50, 100, 150, 200 etc.) y medir la salida con un osciloscopio cuya función era calcular el valor mínimo y enviarlo a un archivo .txt que luego era utilizado para hacer un histograma, el problema que para hacer esto último de necesitaban alrededor de 20000 mediciones del valor mínimo, en lo cual el osciloscopio demoraba unos 10 minutos por voltaje de entrada y había que medir alrededor de 500 amplificadores.
Para ésta última implementación, también se hizo un programa para el osciloscopio. El programa es ahora utilizado para automatizar cualquier labor que necesite el generador, dentro del laboratorio.
Es la encargada de producir el encabezado VXI11.c, los archivos que la componen son una interfaz de código de equipos con drivers de bajo nivel.
2. Vxi11_user.h/Vxi11_user.ccSon el corazón de la comunicación vía Ethernet, tiene implementado 4 métodos de envío y recepción de comandos y otras funciones de uso general.
3. Keithley3390.cpp/Keithley3390.hEs la librería principal que comunica al computador con el generador de señales, contiene métodos que implementan las funciones de envío/recepción de VXI11, para setear (la forma de onda, la frecuencia, el voltaje máximo/mínimo) o para preguntarle al equipo acerca de su número de identificación o de los parámetros que tiene seteados.
4. pruebaKeith.cppEs el archivo main, hecho especialmente para ser presentado en clases, es bastante funcional pero comprueba el envío y recepción de las funciones implementadas.
5. MakefileGenera e Instala la librería Keithley3390.so en Linux, Compila y genera el programa, tiene la opción de borrar la librería creada con Make cleanall
La IP del computador se debe configurar mediante el comando: $ sudo ifconfig eth0 192.168.1.251
Si la IP del computador no se configura previamente no se establecerá nunca conexión, esta IP tiene que ser distinta a la IP del Generador.
El programa no tiene GUI, pero si una forma bastante ordenada y fácil para setear funciones, en la siguiente figura se está configurando una función pulso, el título superior Keithley Instruments Inc…., es el string que retorna el equipo al enviarle el comando *IDN?, con la función getIDN().
En la siguiente imagen se ingresa la opción “Resumen de Parámetros”, el programa envía comandos mediantes las funciones getShape(), getFrecuency(), getHigh(), etc depende la función y retorna un string con el parámetro deseado.
- Cuando se dan las opciones de elegir Función, si se presiona un número que no está, el programa se cae. Lo mismo ocurre cuando se dan las opciones de retorno y resumen de parámetros.
- Cuando se elige la función pulso, por alguna razón no se puede setear el rise time o tiempo de subida en [ns], el generador “reclama” y setea el mayor/menor valor posible o el programa se cae. Se optó por lo tanto eliminar ese parámetro y setearlo desde el main.