LinuxCNC Documentation

La Servo-To-Go (STG) es una de las primeras tarjetas de control de movimiento para PC soportadas por LinuxCNC. Es una tarjeta ISA y hay en diferentes sabores (todas compatibles con este controlador). La placa incluye hasta 8 canales de entrada de codificador en cuadratura, 8 canales de entrada y salida analógica, E/S digital de 32 bits, un temporizador de intervalo con interrupción y un perro guardián.

Note
Hemos tenido reportes de que los amplificadores operacionales en la tarjeta Servo To Go no funcionan con las fuentes de poder ATX más recientes que usan los modernos convertidores DC-DC de cambio de modo. El modo de falla es que la tarjeta emite un voltaje constante independientemente de lo que le ordene el controlador. Las fuentes de poder ATX antiguas con reguladores de voltaje lineales no tienen este problema, y funcionan bien con las tarjetas STG.

1. Instalación

loadrt hal_stg [base=<dirección>] [num_chan=<no>] [dio="<cadena-des>"] \
                 [model=<modelo>]

El campo de dirección base es opcional; si no se proporciona, el controlador intenta detectar automáticamente la placa. El campo num_chan se usa para especificar el número de canales disponibles en la tarjeta, si no se usa se asume la versión de 8 ejes. La configuración de las entradas/salidas digitales se determina por una cadena pasada a insmod al cargar el módulo. El formato consiste en una cadena de cuatro caracteres que establece la dirección de cada grupo de pines. Cada caracter en la cadena de dirección es una "I" o una "O". El primer caracter configura la dirección del puerto A (Puerto A - DIO.0-7), el siguiente configura el puerto B (Puerto B - DIO.8-15), el siguiente configura el puerto C (Puerto C - DIO.16-23) y el cuarto configura el puerto D (Puerto D - DIO.24-31). El campo model puede usarse en caso de que el controlador no detecte automáticamente la versión correcta de tarjeta.

Sugerencia: Después de iniciar el controlador se pueden consultar mensajes relevantes al controlador con dmesg (p. ej. el número de versión autodetectada y la dirección base). Por ejemplo:

loadrt hal_stg base=0x300 num_chan=4 dio="IOIO"

Este ejemplo instala el controlador STG para una tarjeta en la dirección base 0x300, 4 canales de retroalimentación de codificador, DACs y ADCs, junto con 32 bits de E/S configurados así: los primeros 8 (Puerto A) configurados como entradas, los 8 siguientes (Puerto B) configurados como salidas, los 8 siguientes (Puerto C) configurados como entradas y los últimos 8 (Puerto D) configurados como salidas

loadrt hal_stg

Este ejemplo instala el controlador e intenta autodetectar la dirección y el modelo de la placa; instala 8 ejes predeterminadamente junto con las configuración estándar de E/S: Puertos A y B como entradas y Puertos C y D como salidas.

2. Pines

  • stg.<canal>.counts - (s32) Lleva el conteo de pulsos del codificador.

  • stg.<canal>.position - (float) Da salida a una posición convertida.

  • stg.<canal>.dac-value - (float) Conduce el voltaje al DAC correspondiente.

  • stg.<canal>.adc-value - (float) Registra el voltaje medido del ADC correspondiente.

  • stg.in-<númpin> - (bit) Registra un pin de entrada física.

  • stg.in-<númpin>-not - (bit) Registra un pin de entrada física, pero invertido.

  • stg.out-<númpin> - (bit) Conduce un pin de salida física

Para cada pin, <canal> es el número de eje y <númpin> es el número de pin lógico del STG; si se define IIOO hay 16 pines de entrada (in-00 .. in-15) y 16 pines de salida (out-00 .. out-15), y corresponden a los puertos ABCD (in-00 es PORTA.0, out-15 es PORTD.7).

El pin HAL in-<númpin> es Verdadero si el pin físico es alto, y False si el pin físico es bajo. El pin HAL in-<númpin>-not está invertido y es Falso si el pin físico es alto. El usuario puede determinar el estado de la entrada conectando una señal a uno u otro.

3. Parámetros

  • stg.<canal>.position-scale - (float) El número de conteos / unidad de usuario (para convertir conteos a unidades).

  • stg.<canal>.dac-offset - (float) Establece el desplazamiento para el DAC correspondiente.

  • stg.<canal>.dac-gain - (float) Establece la ganancia para el DAC correspondiente.

  • stg.<canal>.adc-offset - (float) Establece el desplazamiento para el ADC correspondiente.

  • stg.<canal>.adc-gain - (float) Establece la ganancia para el ADC correspondiente.

  • stg.out-<númpin>-invert - (bit) Invierte un pin de salida.

El parámetro -invert determina si un pin de salida está activo alto o activo bajo. Si -invert es Falso, establecer el pin HAL out- a Verdadero lleva al pin físico a alto, y Falso lo conduce a bajo. Si -invert es Verdadero, entonces al establecer el pin HAL out- a Verdadero, llevará el pin físico a bajo.

4. Funciones

  • stg.capture-position - Lee los contadores del codificador desde el eje <canal>.

  • stg.write-dacs - Escribe los voltajes a los DACs.

  • stg.read-adcs - Lee los voltajes desde los ADCs.

  • stg.di-read - Lee los pines físicos in- de todos los puertos y actualiza todos los pines HAL in-<númpin> y in-<númpin>-not.

  • stg.do-write - Lee todos los pines HAL out-<númpin> y actualiza todos los pines de salida físicos.