Saltar al contenido principal
Artículos técnicos

Encender y vigilar una fuente Energetiq EQ-99 desde la red


La EQ-99 se controla con unos pocos comandos de texto por USB. El problema suele ser otro: que la fuente está en una sala y el ordenador del ensayo en otra.

Para el banco de ensayos de las cámaras de PLATO desarrollamos el control de la fuente de luz Energetiq EQ-99: encenderla y apagarla como un paso más del ensayo, leer su estado y sus horas de uso, y hacerlo todo por red. Esto es lo esencial.

El USB: un chip FTDI a 38400 baudios

El controlador de la EQ-99 lleva un chip FTDI. Según el manual, la comunicación es a 38400 baudios, 8 bits de datos, sin paridad y 1 bit de parada, con los comandos terminados en retorno de carro y salto de línea. Con la librería pylibftdi se abre así:

import time
import pylibftdi

fuente = pylibftdi.Device(mode="t", device_id="NUMERO_DE_SERIE_FTDI")
fuente.baudrate = 38400
fuente.ftdi_fn.ftdi_set_line_property(8, 1, 0)   # 8N1
time.sleep(0.05)
fuente.flush(pylibftdi.FLUSH_BOTH)                # vaciar buffers
time.sleep(0.05)
fuente.ftdi_fn.ftdi_setflowctrl(0)               # sin control de flujo

def comando(texto):
    fuente.write(texto + "\r\n")

def consulta(texto, espera=2.0):
    comando(texto)
    respuesta, limite = "", time.monotonic() + espera
    while time.monotonic() < limite:
        c = fuente.read(1)
        if c == "\n":
            return respuesta.strip()
        respuesta += c
    raise TimeoutError(texto)

La línea que más importa es la última de la configuración: hay que desactivar el control de flujo. Si no, la fuente no devuelve nada al ordenador: las consultas se quedan sin respuesta y parece que el equipo está mal, cuando es solo eso.

Los comandos que se usan en un ensayo

consulta("*IDN?")            # identificacion
comando("LDLS:OUTput 1")     # encender (0 para apagar)
consulta("LDLS:OUTput?")     # "1" si esta encendida
consulta("LDLS:COND?")       # registro de estado
consulta("ERRSTR?")          # "0" si no hay errores
consulta("LDLS:LAMPTIME?")   # horas de uso de la lampara

Después de encender hay que dejar un tiempo de estabilización antes de medir: el software del ensayo debe esperarlo en lugar de dar por buena la luz en cuanto la fuente dice que está encendida.

Llevarla a la red

Un cable USB no llega de la sala de la fuente al ordenador del ensayo, y menos si hay una cámara de vacío en medio. La solución que montamos fue un pequeño ordenador junto a la fuente (una Raspberry Pi) con un servicio que recibe los comandos por TCP y se los pasa por USB.

Así el software del ensayo habla con la fuente igual que con cualquier otro equipo de red, y el detalle del USB queda encerrado en un sitio. Conviene que el servicio salude al conectar con su nombre y versión: el cliente comprueba que habla con quien cree y se detecta enseguida si alguien ha cambiado el equipo o la IP.

Del script al banco de ensayo

Encender la fuente desde un script es fácil. Que se encienda en el momento justo del ensayo, coordinada con el obturador, las ruedas de filtros y el medidor de potencia, que avise si da un error y que lleve la cuenta de horas de la lámpara, es lo que hacemos a medida.

Cuéntanos tus ensayos


Qué equipos tenéis, qué ensayos hacéis y qué os gustaría que hiciera el software. Con eso te decimos cómo lo plantearíamos.

Contactar

Lake Shore, Thorlabs, Keithley, Energetiq, Standa, EKSMA Optics, Symétrie, Pfeiffer Vacuum y el resto de marcas citadas pertenecen a sus respectivos titulares. BLASAI Software no tiene relación comercial con ellos; se nombran solo para indicar con qué equipos hemos trabajado.