Sistema de control de movimiento basado en la tarjeta GMP6-PCI de General Mechatronics

Para una descripción detallada, por favor consulte el Manual de integración de sistema.

La tarjeta de control de movimiento GM6-PCI se basa en un FPGA y un ASIC de interfaz de puente PCI. Se puede controlar un pequeña célula de fabricación automatizada con un procedimiento de integración de sistema de poco tiempo. La figura siguiente demuestra la conexión típica de dispositivos relacionados al sistema de control:

  • Puede controlar hasta seis ejes, cada uno puede ser motor a pasos o interfaz de bus CAN o servo analógico.

  • GPIO: 4 grupos de ocho pines de E/S colocados en conectores de cable plano estándar.

  • Módulos de expansión de E/S RS485: El bus RS485 está diseñado para interfazar con módulos de expansión montados en riel DIN compacto. Ahora están disponibles una entrada digital de 8 canales, una salida de relevadores de 8 canales y una E/S analógica (4 salidas de +/-10 Voltios y 8 entradas de +/-5 Voltios). Se pueden conectar al bus hasta 16 módulos en conjunto.

  • 20 pines de entrada aislados ópticamente: Seis grupos de tres pines para la conexión directa de dos interruptores de límite y un sensor de casa para cada articulación. Y adicionalmente, dos entradas E-stop aisladas ópticamente.

Sistema de servocontrol GM

Instalación:

loadrt hal_gm

Durante la carga (o intento de carga) el controlador imprime algunos mensajes de depuración útiles en la bitácora del kernel, los cuales pueden ser revisados con dmesg.

Se pueden usar hasta 3 placas en un sistema.

En la tarjeta GM6-PCI se encuentran los conectores siguientes:

Conectores y LEDs de la tarjeta GM6-PCI
Figura 1. Conectores y LEDs de la tarjeta GM6-PCI

1. Conectores de E/S

Numeración de pines de conectores GPIO
Figura 2. Numeración de pines de conectores GPIO
Tabla 1. Asignación de pines de conectores GPIO
9 7 5 3 1

IOx/7

IOx/5

IOx/3

IOx/1

VCC

10 8 6 4 2

GND

IOx/6

IOx/4

IOx/2

IOx/0

Cada pin puede ser configurado como entrada o salida digital. La tarjeta de control de movimiento GM6-PCI tiene 4 conectores de E/S (GPIO) de propósito general, con ocho E/S configurables en cada uno. Cada pin y nombre de parámetro GPIO comienza así:

gm.<número_de_tarjeta>.gpio.<número_de_conector_gpio>

donde <número_de_conector> va de 1 a 3.

Estado del primer pin del primer conector GPIO en la tarjeta GM6-PCI.
gm.0.gpio.0.in-0

Los pines HAL se actualizan por función

gm.<número_de_tarjeta>.read

1.1. Pines

Tabla 2. Pines GPIO
Pines Tipo y dirección Descripción del pin

.in-<0-7>

(bit, Out)

Pin de entrada

.in-not-<0-7>

(bit, Out)

Pin de entrada negado

.out-<0-7>

(bit, In)

Pin de salida. Usado solo cuando GPIO está configurado como salida.

1.2. Parámetros

Tabla 3. Parámetros GPIO
Pines Tipo y dirección Descripción del parámetro

.is-out-<0-7>

(bit, R/W)

Cuando es verdadero, el GPIO correspondiente es configurado como salida en contrafase, de lo contrario se configura como entrada de alta impedancia.

.invert-out-<0-7>

(bit, R/W)

Cuando es verdadero, el valor del pin será invertido. Se usa cuando el pin está configurado como salida.

2. Conectores de eje

Numeración de pines en conectores de eje
Figura 3. Numeración de pines en conectores de eje
Tabla 4. Asignación de pines en conectores de eje

1

Codificador A

2

+5 Voltios (PC)

3

Codificador B

4

Índice de codificador

5

Falla

6

Energía habilitada

7

Paso/CCW/B

8

Dirección/CW/A

9

Tierra (PC)

10

Línea serie DAC

2.1. Módulos de interfaz de eje

Los módulos de interfaz montados en riel DIN de tamaño pequeño ofrecen una forma fácil de conectar diferentes tipos de módulo servo a los conectores de eje. Se presentan siete configuraciones de sistema diferentes en el Manual de integración de sistema para evaluar aplicaciones típicas. También ahí se pueden encontrar en descripciones detalladas de los módulos de eje.

Para evaluar la estructura servo-controlador apropiada, los módulos tienen que estar conectados como se muestra en el diagrama de bloques siguiente:

Interfaces de servoeje
Figura 4. Interfaces de servoeje

2.2. Codificador

La tarjeta de control de movimiento GM6-PCI tiene seis módulos codificadores. Cada módulo codificador tiene tres canales:

  • Canal A

  • Canal B

  • Canal I (índice)

Es capaz de contar señales de codificador en cuadratura o señales paso/dirección. Cada módulo codificador se conecta a las entradas del conector de eje RJ50 correspondiente.

Cada pin y nombre de parámetro de codificador comienza como sigue:

gm.<número_de_tarjeta>.encoder.<número_de_eje>

donde <número_de_eje> va de 0 a 5. Por ejemplo, gm.0.encoder.0.position se refiere a la posición del módulo codificador del eje 0.

La tarjeta GM6-PCI cuenta la señal del codificador independientemente de LinuxCNC. Los pines HAL se actualizan por función:

gm.<número_de_tarjeta>.read
Tabla 5. Pines del codificador
Pines Tipo y dirección Descripción del pin

.reset

(bit, In)

Cuando es verdadero, reinicia conteos y posición a cero.

.rawcounts

(s32, Out)

La cuenta bruta es el conteo, pero no es afectada por reinicio o el pulso índice.

.counts

(s32, Out)

Posición en conteo de codificador.

.position

(float, Out)

Posición en unidades escaladas (=.counts/.position-escala).

.index-enabled

(bit, IO)

Cuando es True, conteos y posición se redondean o reinician (dependiendo del modo de índice) en el siguiente flanco ascendente del canal I. Cada posición de tiempo se reinicia por el índice, el pin index-enabled se pone en 0 y permanece así hasta que un pin HAL conectado no lo establece.

.velocity

(float, Out)

Velocidad en unidades escaladas por segundo. El codificador GM usa temporizador por hardware de alta frecuencia para medir el tiempo entre pulsos del codificador con el fin de calcular velocidad. Reduce en gran medida la cuantificación de ruido comparado con una simple diferenciación de la salida de posición. Cuando la velocidad medida es por debajo de min-speed-estimate, la salida de velocidad es 0.

Tabla 6. Parámetros del codificador
Parámetros Tipo y Lectura/Escritura Descripción del parámetro

.counter-mode

(bit, R/W)

Cuando es verdadero, el contador cuenta cada flanco ascendente de la entrada del canal A hacia la dirección determinada por el canal B. Esto es útil para contar la salida de un solo canal (sin cuadratura) o del sensor de señal de paso/dirección. Cuando es false, cuenta en modo cuadratura.

.index-mode

(bit, R/W)

Cuando es verdadero y .index-enabled también es verdadero, .counts y .position son redondeados (con base en .counts-per-rev) en el flanco ascendente del canal I. Esto es útil para corregir algunos pulsos de error causados por ruido. En modo redondeo, es esencial establecer correctamente el parámetro .counts-per-rev. Cuando .index-mode es falso y .index-enabled es verdadero, .counts y .position son restablecidos en el pulso de canal I.

.counts-per-rev

(s32, R/V)

Determina cuántos conteos hay entre dos pulsos de índice. Se usa solo en modo redondeo, para cuando los parámetros .index-enabled y .index-mode son verdadero. El codificador GM procesa la señal del codificador en modo 4x, así que por ejemplo, en caso de un codificador de 500 CPR debería establecerse en 2000. Este parámetro puede medirse fácilmente estableciendo .index-enabled en True y .index-mode en False (para que .counts se reinicie en el pulso de canal I), y luego mover el eje a mano y ver la magnitud máxima del pin .counts en halmeter.

.index-invert

(bit, R/W)

Cuando es verdadero, el evento del canal I (reseteo o redondeo) ocurre en el flanco descendente de la señal del canal I, de lo contrario en el flanco ascendente.

.min-speed-estimate

(float, R/W)

Determina la magnitud mínima de velocidad medida a la que .velocity se establecerá como distinta de cero. Ajustar este parámetro demasiado bajo hará que tome mucho tiempo para que la velocidad pase a 0 después de que hayan dejado de llegar pulsos del codificador.

.position-scale

(float, R/W)

Factor de escala, en cuentas por unidad de longitud. .posititon=.counts/.position-scale. Por ejemplo, si la escala de posición es 2000, entonces 1000 conteos del codificador producirán una posición de 0.5 unidades.

Configuración del módulo codificador del eje 0 para recibir señal de codificador en cuadratura de 500 CPR y usar reinicio para redondear posición.
setp gm.0.encoder.0.counter-mode 0         # 0: cuadradura, 1: paso/dirección
setp gm.0.encoder.0.index-mode 1           # 0: reinicia posición en el índice, 1: redondea posición en el índice
setp gm.0.encoder.0.counts-per-rev 2000    # Codificador de proceso GM en modo 4x, 4x500=2000
setp gm.0.encoder.0.index-invert 0         #
setp gm.0.encoder.0.min-speed-estimate 0.1 # en unidades de posición/seg.
setp gm.0.encoder.0.position-scale 20000   # 10 revoluciones del codificador hacen que la máquina mueva una unidad de posición (10x2000)
Conexión de la posición del codificador a la retroalimentación de posición articular de LinuxCNC
net Xpos-fb gm.0.encoder.0.position => joint.0.motor-pos-fb

2.3. Módulo StepGen

La tarjeta de control de movimiento GM6-PCI tiene seis módulos StepGen, una para cada articulación. Cada módulo tiene dos señales de salida. Puede producir paso/dirección, arriba/abajo o pulsos en cuadratura (A/B). Cada módulo StepGen se conecta a los pines del conector RJ50 de eje correspondiente.

Todo nombre de pin o parámetro de StepGen comienza así:

gm.<número_de_tarjeta>.stepgen.<número_de_eje>

donde <número_de_eje> va de 0 a 5. Por ejemplo, gm.0.stepgen.0.position-cmd se refiere al comando de posición del módulo StepGen del eje 0 en la tarjeta 0.

La tarjeta GM6-PCI genera pulsos de paso independientemente de LinuxCNC. Los pines HAL son actualizados por función

gm.<número_de_tarjeta>.write
Tabla 7. Pines del módulo StepGen
Pines Tipo y dirección Descripción del pin

.enable

(bit, In)

StepGen produce pulsos solo cuando este pin es verdadero.

.count-fb

(s32, Out)

Retroalimentación de posición en unidades de conteo.

.position-fb

(float, Out)

Retroalimentación de posición en unidades de posición.

.position-cmd

(float, In)

Posición ordenada en unidades de posición. Usado solo en modo posición.

.velocity-cmd

(float, In)

Velocidad ordenada en unidades de posición por segundo. Se usa solo en modo velocidad.

Tabla 8. Parámetros del módulo StepGen
Parámetros Tipo y Lectura/Escritura Descripción del parámetro

.step-type

(u32, R/W)

Con 0, el módulo produce señal paso/dirección. Con 1 produce señales de paso arriba/abajo. Y con 2 produce señales de salida en cuadratura.

.control-type

(bit, R/W)

Cuando es True, se usa .velocity-cmd como referencia y el control de velocidad calcula la tasa de pulso de salida. Cuando es False, se usa .position-cmd como referencia y el control de posición calcula la tasa de pulso de salida.

.invert-step1

(bit, R/W)

Invierte la salida del canal 1 (Señal de paso en modo paso/dirección)

.invert-step2

(bit, R/W)

Invierte la salida del canal 2 (Señal de dirección en modo paso/dirección)

.maxvel

(float, R/W)

Velocidad máxima en unidades de posición por segundo. Si se establece 0.0 se ignora el parámetro .maxvel.

.maxaccel

(float, R/W)

Aceleración máxima en unidades de posición por segundo al cuadrado. mf es 0.0, el parámetro .maxaccel es ignorado.

.position-scale

(float, R/W)

Escala en pasos por unidad de longitud.

.steplen

(u32, R/W)

Longitud de pulso de paso en nanosegundos.

.stepspace

(u32, R/W)

Tiempo mínimo entre dos pulsos de paso en nanosegundos.

.dirdelay

(u32, R/W)

Tiempo mínimo entre el cambio de pulso de paso y dirección en nanosegundos.

Para evaluar los valores apropiados ver los diagramas de tiempo abajo:

Diagramas de referencia de tiempo de señal
Figura 5. Diagramas de referencia de tiempo de señal
Configuración del módulo StepGen del eje 0 para generar 1000 pulsos de paso por unidad de posición
setp gm.0.stepgen.0.step-type 0         # 0:paso/dirección, 1:arriba/abajo, 2:cuadratura
setp gm.0.stepgen.0.control-type 0      # 0:Control de posición, 1:Control de velocidad
setp gm.0.stepgen.0.invert-step1 0
setp gm.0.stepgen.0.invert-step2 0
setp gm.0.stepgen.0.maxvel 0            # no se asigna maxvel para generador de pasos
                                        # deja al interpolador controlarla.
setp gm.0.stepgen.0.maxaccel 0          # no se asigna aceleración máxima para generador de pasos
                                        # deja al interpolador controlarla.
setp gm.0.stepgen.0.position-scale 1000 # 1000 pasos/unidades de posición
setp gm.0.stepgen.0.steplen 1000        # 1000 ns = 1 µs
setp gm.0.stepgen.0.stepspace1000       # 1000 ns = 1 µs
setp gm.0.stepgen.0.dirdelay 2000       # 2000 ns = 2 µs
Conexión de StepGen a la posición de referencia del eje 0 y habilitación de pines
net Xpos-cmd joint.0.motor-pos-cmd => gm.0.stepgen.0.position-cmd
net Xen joint.0.amp-enable-out => gm.0.stepgen.0.enable

2.4. Señales de habilitación y falla

La tarjeta de control de movimiento GM6-PCI tiene una salida de habilitación y una entrada de falla, ambos pines HAL están conectados a cada conector de eje RJ50 y al conector CAN.

Los pines HAL son actualizados por función:

gm.<número_de_tarjeta>.read
Tabla 9. Pines de señal de habilitación y falla
Pines Tipo y dirección Descripción del pin

gm.<número_de_tarjeta>.power-enable

(bit, In)

Si este pin es True,
* y el temporizador de Watch Dog no ha expirado
* y no hay fallo de energía
entonces los pines de energía habilitada del eje y los conectores CAN se establecen en alto, de lo contrario en bajo.

gm.<número_de_tarjeta>.power-fault

(bit, Out)

Entrada de fallo de energía.

2.5. Axis DAC

The GM6-PCI motion control card has six serial axis DAC driver modules, one for each joint. Each module is connected to the pin of the corresponding RJ50 axis connector. Every axis DAC pin and parameter name begins as follows:

gm.<card_no>.dac.<axis_no>

where <axis_no> is from 0 to 5. For example, gm.0.dac.0.value refers to the output voltage of DAC module of axis 0.

Los pines HAL son actualizados por función:

gm.<número_de_tarjeta>.write
Tabla 10. Axis DAC pins
Pines Tipo y dirección Descripción del pin

.enable

(bit, In)

Enable DAC output. When enable is false, DAC output is 0.0 V.

.value

(float, In)

Value of DAC output in Volts.

Tabla 11. Axis DAC parameters
Parámetros Tipo y dirección Descripción del parámetro

.offset

(float, R/W)

Offset is added to the value before the hardware is updated.

.high-limit

(float, R/W)

Maximum output voltage of the hardware in Volts.

.low-limit

(float, R/W)

Minimum output voltage of the hardware in Volts.

.invert-serial

(float, R/W)

GM6-PCI card is communicating with DAC hardware via fast serial communication to highly reduce time delay compared to PWM. DAC module is recommended to be isolated which is negating serial communication line. In case of isolation, leave this parameter to default (0), while in case of none-isolation, set this parameter to 1.

3. CAN-bus servo amplifiers

The GM6-PCI motion control card has CAN module to drive CAN servo amplifiers. Implementation of higher level protocols like CANopen is further development. Currently GM produced power amplifiers has upper level driver which export pins and parameters to HAL. They receive position reference and provide encoder feedback via CAN bus.

The frames are standard (11 bit) ID frames, with 4 byte data length. The baud rate is 1 Mbit/s. The position command IDs for axis 0..5 are 0x10..0x15. The position feedback IDs for axis 0..5 are 0x20..0x25.

These configuration can be changed with the modification of hal_gm.c and recompiling LinuxCNC.

Every CAN pin and parameter name begins as follows:

gm.<card_no>.can-gm.<axis_no>

where <axis_no> is from 0 to 5. For example, gm.0.can-gm.0.position refers to the output position of axis 0 in position units.

Los pines HAL son actualizados por función:

gm.<número_de_tarjeta>.write

3.1. Pines

Tabla 12. CAN module pins
Pines Tipo y dirección Descripción del pin

.enable

(bit, In)

Enable sending position references.

.position-cmd

(float, In)

Commanded position in position units.

.position-fb

(float, In)

Feed back position in position units.

3.2. Parámetros

Tabla 13. CAN module parameters
Parámetros Tipo y dirección Descripción del parámetro

.position-scale

(float, R/W)

Scale in per length unit.

4. Watchdog timer

El temporizador de watchdog se reinicia en la función:

gm.<número_de_tarjeta>.read

4.1. Pines

Tabla 14. Watchdog pins
Pines Tipo y dirección Descripción del pin

gm.<card_no>.watchdog-expired

(bit, Out)

Indicates that watchdog timer is expired.

Watchdog timer overrun causes the set of power-enable to low in hardware.

4.2. Parámetros

Tabla 15. Watchdog parameters
Parámetros Tipo y dirección Descripción del parámetro

gm.<card_no>.watchdog-enable

(bit, R/W)

Enables watchdog timer.
It is strongly recommended to enable the watchdog timer, because it can disable all the servo amplifiers by pulling down all enable signals in case of a PC error.

gm.<card_no>.watchdog-timeout-ns

(float, R/W)

Time interval in within the gm.<card_no>.read function must be executed. The gm.<card_no>.read is typically added to servo-thread, so watch timeout is typically set to 3 times of the servo period.

5. End-, homing- and E-stop switches

Pin numbering of homing and end switch connector
Figura 6. Pin numbering of homing & end switch connector
Tabla 16. End- and homing switch connector pinout
25 23 21 19 17 15 13 11 9 7 5 3 1

GND

1/End-

2/End+

2/Hom-ing

3/End-

4/End+

4/Hom-ing

5/End-

6/End+

6/Hom-ing

E-Stop 2

V+ (Ext.)

26 24 22 20 18 16 14 12 10 8 6 4 2

GND

1/End+

1/Hom-ing

2/End-

3/End+

3/Hom-ing

4/End-

5/End+

5/Hom-ing

6/End-

E-Stop 1

V+ (Ext.)

The GM6-PCI motion control card has two limit- and one homing switch input for each joint. All the names of these pins begin as follows:

gm.<card_no>.joint.<axis_no>

where <axis_no> is from 0 to 5. For example, gm.0.joint.0.home-sw-in indicates the state of the axis 0 home switch.

Los pines HAL son actualizados por función:

gm.<número_de_tarjeta>.read

5.1. Pines

Tabla 17. Pines de interruptores End- y homing
Pines Tipo y dirección Descripción del pin

.home-sw-in

(bit, Out)

Home switch input

.home-sw-in-not

(bit, Out)

Negated home switch input

.neg-lim-sw-in

(bit, Out)

Negative limit switch input

.neg-lim-sw-in-not

(bit, Out)

Negated negative limit switch input

.pos-lim-sw-in

(bit, Out)

Positive limit switch input

.pos-lim-sw-in-not

(bit, Out)

Negated positive limit switch input

5.2. Parámetros

Tabla 18. E-stop switch parameters
Parámetros Tipo y dirección Descripción del parámetro

gm.0.estop.0.in

(bit, Out)

Estop 0 input

gm.0.estop.0.in-not

(bit, Out)

Entrada Estop 0 invertida

gm.0.estop.1.in

(bit, Out)

Estop 1 input

gm.0.estop.1.in-not

(bit, Out)

Entrada Estop 1 negada

6. Status LEDs

6.1. CAN

Color: Orange

  • Blink, during data communication.

  • On, when any of the buffers are full - communication error.

  • Off, when no data communication.

6.2. RS485

Color: Orange

  • Blink, during initialization of modules on the bus

  • On, when the data communication is up between all initialized modules.

  • Off, when any of the initialized modules dropped off because of an error.

6.3. EMC

Color: White

  • Parpadea, cuando LinuxCNC esta ejecutándose.

  • De lo contrario apagado.

6.4. Boot

Color: Green

  • On, when system booted successfully.

  • De lo contrario apagado.

6.5. Error

Color: Red

  • Off, when there is no fault in the system.

  • Blink, when PCI communication error.

  • On, when watchdog timer overflowed.

7. RS485 I/O expander modules

These modules were developed for expanding the I/O and function capability along an RS485 line of the GM6-PCI motion control card.

Available module types:

  • 8-channel relay output module - gives eight NO-NC relay output on a three pole terminal connector for each channel.

  • 8-channel digital input module - gives eight optical isolated digital input pins.

  • 8 channel ADC and 4-channel DAC module - gives four digital-to-analogue converter outputs and eight analogue-to-digital inputs. This module is also optically isolated from the GM6-PCI card.

Automatic node recognizing

Each node connected to the bus was recognized by the GM6-PCI card automatically. During starting LinuxCNC, the driver export pins and parameters of all available modules automatically.

Fault handling

If a module does not answer regularly the GM6-PCI card drops down the module. If a module with output do not gets data with correct CRC regularly, the module switch to error state (green LED blinking), and turns all outputs to error state.

Connecting the nodes

The modules on the bus have to be connected in serial topology, with termination resistors on the end. The start of the topology is the PCI card, and the end is the last module.

Connecting the RS485 nodes to the GM6-PCI card
Figura 7. Connecting the RS485 nodes to the GM6-PCI card
Addressing

Each node on the bus has a 4 bit unique address that can be set with a red DIP switch.

Status LED

A green LED indicates the status of the module:

  • Blink, when the module is only powered, but not jet identified, or when module is dropped down.

  • Off, during identification (computer is on, but LinuxCNC not started)

  • On, when it communicates continuously.

7.1. Relay output module

For pinout, connection and electrical charasteristics of the module, please refer to the System integration manual.

Todos los pines y parámetros se actualizan en la función siguiente:

gm.<card_no>.rs485

It should be added to servo thread or other thread with larger period to avoid CPU overload. Every RS485 module pin and parameter name begins as follows:

gm.<card_no>.rs485.<module ID>

where <module ID> is from 00 to 15.

Tabla 19. Relay output module pins
Pines Tipo y dirección Descripción del pin

.relay-<0-7>

(bit, Out)

Output pin for relay

Tabla 20. Relay output module parameters
Parámetros Tipo y dirección Descripción del parámetro

.invert-relay-<0-7>

(bit, R/W)

Negate relay output pin

Ejemplo HAL
  gm.0.rs485.0.relay-0   # First relay of the node.
# gm.0                   # Identifies the first GM6-PCI motion control card (PCI card address = 0)
#     .rs485.0           # Selects node with address 0 on the RS485 bus
#             .relay-0   # Selects the first relay

7.2. Digital input module

For pinout, connection and electrical charasteristics of the module, please refer to the System integration manual.

Todos los pines y parámetros se actualizan en la función siguiente:

gm.<card_no>.rs485

It should be added to servo thread or other thread with larger period to avoid CPU overload. Every RS485 module pin and parameter name begins as follows:

gm.<card_no>.rs485.<module ID>

where <module ID> is from 00 to 15.

Tabla 21. Digital input output module pins
Pines Tipo y dirección Descripción del pin

.in-<0-7>

(bit, Out)

Pin de entrada

.in-not-<0-7>

(bit, Out)

Pin de entrada negado

Ejemplo HAL
  gm.0.rs485.0.in-0   # First input of the node.
# gm.0                # Identifies the first GM6-PCI motion control card (PCI card address = 0)
#     .rs485.0        # Selects node with address 0 on the RS485 bus
#             .in-0   # Selects the first digital input module

7.3. DAC & ADC module

For pinout, connection and electrical charasteristics of the module, please refer to the System integration manual.

Todos los pines y parámetros se actualizan en la función siguiente:

gm.<card_no>.rs485

It should be added to servo thread or other thread with larger period to avoid CPU overload. Every RS485 module pin and parameter name begins as follows:

gm.<card_no>.rs485.<module ID>

where <module ID> is from 00 to 15.

Tabla 22. DAC & ADC module pins
Pines Tipo y dirección Descripción del pin

.adc-<0-7>

(float, Out)

Value of ADC input in Volts.

.dac-enable-<0-3>

(bit, In)

Enable DAC output. When enable is false then DAC output is set to 0.0 V.

.dac-<0-3>

(float, In)

Value of DAC output in Volts.

Tabla 23. DAC & ADC module parameters
Parámetros Tipo y dirección Descripción del parámetro

.adc-scale-<0-7>

(float, R/W)

The input voltage will be multiplied by scale before being output to .adc- pin.

.adc-offset-<0-7>

(float, R/W)

Offset is subtracted from the hardware input voltage after the scale multiplier has been applied.

.dac-offset-<0-3>

(float, R/W)

Offset is added to the value before the hardware is updated.

.dac-high-limit-<0-3>

(float, R/W)

Maximum output voltage of the hardware in Volts.

.dac-low-limit-<0-3>

(float, R/W)

Minimum output voltage of the hardware in Volts.

Ejemplo HAL
  gm.0.rs485.0.adc-0   # First analogue channel of the node.
# gm.0                 # Identifies the first GM6-PCI motion control card (PCI card address = 0)
#     .rs485.0         # Selects node with address 0 on the RS485 bus
#             .adc-0   # Selects the first analogue input of the module

7.4. Teach Pendant module

For pinout, connection and electrical charasteristics of the module, please refer to the System integration manual.

Todos los pines y parámetros se actualizan en la función siguiente:

gm.<card_no>.rs485

It should be added to servo thread or other thread with larger period to avoid CPU overload. Every RS485 module pin and parameter name begins as follows:

gm.<card_no>.rs485.<module ID>

where <module ID> is from 00 to 15. Note that on the Teach Pendant module it cannot be changed, and pre-programmed as zero. Upon request it can be delivered with firmware pre-programmed different ID.

Tabla 24. Teach Pendant module pins
Pines Tipo y dirección Descripción del pin

.adc-<0-5>

(float, Out)

Value of ADC input in Volts.

.enc-reset

(bit, In)

Cuando es verdadero, reinicia conteos y posición a cero.

.enc-counts

(s32, Out)

Posición en conteo de codificador.

.enc-rawcounts

(s32, Out)

The raw count is the counts, but unaffected by reset.

.enc-position

(float, Out)

Position in scaled units (=.enc-counts/.enc-position-scale).

.in-<0-7>

(bit, Out)

Pin de entrada

.in-not-<0-7>

(bit, Out)

Pin de entrada negado

Tabla 25. Teach Pendant module parameters
Parámetros Tipo y dirección Descripción del parámetro

.adc-scale-<0-5>

(float, R/W)

The input voltage will be multiplied by scale before being output to .adc- pin.

.adc-offset-<0-5>

(float, R/W)

Offset is subtracted from the hardware input voltage after the scale multiplier has been applied.

.enc-position-scale

(float, R/W)

Scale in per length unit.

Ejemplo HAL
  gm.0.rs485.0.adc-0  # First analogue channel of the node.
# gm.0                # Identifies the first GM6-PCI motion control card (PCI card address = 0)
#     .rs485.0        # Selects node with address 0 on the RS485 bus
#             .adc-0  # Selects the first analogue input of the module

8. Errata

8.1. GM6-PCI card Errata

The revision number in this section refers to the revision of the GM6-PCI card device.

Rev. 1.2
  • Error: The PCI card do not boot, when Axis 1. END B switch is active (low). Found on November 16, 2013.

  • Reason: This switch is connected to a boot setting pin of FPGA

  • Problem fix/workaround: Use other switch pin, or connect only normally open switch to this switch input pin.