MOTION

NOMBRE
SINOPSIS
DESCRIPCIÃN
PINES DE MOTION
PINES DE EJE
PINES de articulación
Pines de articulación posthome
Pines de desbloqueo JOINT
PINES DE HUSILLO
PARÃMETROS DE MOVIMIENTO
FUNCIONES
ERRORES
VER TAMBIÃN

NOMBRE

motion - acepta comandos NML de movimiento, interactúa con HAL en tiempo real

SINOPSIS

loadrt motmod [base_period_nsec=period] [base_thread_fp=0 or 1] [servo_period_nsec=period] [traj_period_nsec=period] [num_joints=[1-16]] [num_dio=[1-64]] [num_aio=[1-64]] [num_spindles=[1-8]] [unlock_joints_mask=jointmask] [num_extrajoints=[0-16]]

Los lÃmites para los siguientes elementos se configuran en tiempo de compilación:
num_joints
: establece el número máximo de articulaciones
EMCMOT_MAX_JOINTS.
num_dio
: establece el número máximo de entradas digitales
EMCMOT_MAX_DIO.
num_aio
: establece el número máximo de entradas analógicas
EMCMOT_MAX_AIO.
num_spindles
: establece el número máximo de husillos
EMCMOT_MAX_SPINDLES.

Opcionalmente, el número de E/S digitales se establece con num_dio y el de analógicas con num_aio. El valor predeterminado es 4 para cada uno.

Los nombres de pines que comienzan con "joint" o "axis" son leÃdos y actualizados por la función motion-controller.

DESCRIPCIÃN

Por defecto, el hilo base no admite punto flotante. El paso a paso por software, el conteo software de codificador y el pwm software no utilizan punto flotante. base_thread_fp se puede usar para habilitar el punto flotante en el hilo base (por ejemplo, para el control de motor de CC sin escobillas).

Los pines y parámetros son creados por el módulo en tiempo realmotmod. Este módulo proporciona una interfaz HAL para el lanificador de movimiento de LinuxCNC. Básicamente,motmod toma una lista de puntos de referencia o waypoints y genera una secuencia correcta de posiciones correspondientes de articulaciónes, conformes con las restricciones de la maquina, que alimentan los drivers de los motores.

El parámetro opcional num_extrajoints especifica una cierta cantidad de articulaciones que participan en el homing, pero que no son utilizadas por las transformaciones cinemáticas. Después del homing, el control de una articulación ’extra’ se transfiere a un pin hal (joint.N.posthome-cmd) y se ignora el valor retroalimentado del motor. Las articulaciones ’extra’ deben ser manejadas por planificadores/controladores de movimiento independientes (normalmente usando componentes hal limit3). Las articulaciones adicionales pueden estar sin home solo cuando el movimiento está desactivado.

El valor máximo de num_extrajoints es igual al valor de num_joints (tenga en cuenta que el uso del valor máximo no permitirÃa ninguna operación en coordenadas mundiales). El valor de num_joints debe ser igual a la suma del número de articulaciones utilizadas para los cálculos cinemáticos más el número de articulaciones ’extra’.

El parámetro num_joints se establece convencionalmente utilizando la configuración del archivo ini [KINS]JOINTS =valor. num_extrajoints se establece mediante el parámetro motmod adicional [EMCMOT] motmod num_extrajoints=value. La numeración de pines Hal para todas las articulaciones está basada en cero [0 ... num_joints-1]. Cuando se especifican, a las articulaciones ’extra’ se les asigna el últimonum_extrajoints en la secuencia de numeración. Por ejemplo, al especificar [KINS]JOINTS=5 y [EMCMOT] motmod num_extrajoints=2 para una configuración trivkins de 3 articulaciones [KINS]KINEMATICS= trivkins coordinates=xyz, se utiliza las articulaciones 0,1,2 para las articulaciones cinemáticas y las articulaciones 3,4 para las articulaciones ’extra’.

PINES DE MOTION

motion-command-handler.time OUT S32

Tiempo (en clocks de CPU) para el módulo de movimiento motion-command-handler

motion-controller.time OUT S32

Tiempo (en clocks de CPU) para el módulo de movimiento motion-controller.

motion.adaptive-feed IN FLOAT

Cuando la alimentación adaptativa está habilitada con M52 P1, la velocidad comandada se multiplica por este valor. Este efecto es multiplicativo con los valores de ajuste de alimentación de nivel NML y motion.feed-hold. Los valores negativos son válidos y ejecutarán la ruta del código G a la inversa.

motion.analog-in-NN IN FLOAT

Estos pines son utilizados por el modo wait-for-input M66 Enn (input de entrada analogica).

motion.analog-out-NN OUT float

Estos pines son utilizados por M67-68 (salida analogica) .

motion.coord-error OUT BIT

TRUE cuando el movimiento ha encontrado un error, tal como exceder un lÃmite soft

motion.coord-mode OUT BIT

TRUE cuando el movimiento está en "modo coordinado", en oposición al "modo teleop"

motion.current-vel OUT float

Velocidad cartesiana actual

motion.digital-in-NN IN BIT

Estos pines son utilizados por el modo M66 Pnn de espera para entrada digital.

motion.digital-out-NN OUT BIT

Estos pines están controlados por las palabras M62 a M65, de salida digital.

motion.distance-to-go OUT float

Distancia restante en el movimiento actual

motion.enable IN BIT

Si este bit se pone FALSE, el movimiento se detiene, la máquina se coloca en el estado "máquina apagada" y se muestra un mensaje para el operador. Para movimiento normal, ponga este bit a TRUE.

motion.eoffset-active OUT BIT

Indica que las compensaciones externas están activas (no son cero)

motion.eoffset-limited OUT BIT

Indica que el movimiento con offsets externos estaba limitado por una restricción de lÃmite soft ([AXIS_L]MIN_LIMIT, MAX_LIMIT).

motion.feed-hold IN BIT

Cuando Feed Stop Control está habilitado con M53 P1, y este bit es TRUE, la velocidad de avance se establece en 0.

motion.feed-inhibit IN BIT

Cuando este pin es TRUE, se inhibe el movimiento de la máquina (esto incluye jog y avances y rápidos programados, también conocidos como movimientos traverse).

Si la máquina está realizando un movimiento sincronizado del husillo cuando este pin se vuelve TRUE, el movimiento sincronizado del husillo finalizará y se inhibirán los siguientes movimientos (esto es para evitar daños a la máquina, la herramienta o la pieza de trabajo).

Si la máquina está en medio de un movimiento (sin husillo sincronizado) cuando este pin se vuelve TRUE, la máquina desacelerará hasta detenerse a la tasa de aceleración máxima permitida.

El movimiento se reanuda cuando este pin se vuelve FALSE.

motion.homing-inhibit IN BIT

Si este bit es TRUE, el inicio de cualquier movimiento home de articulación (incluido "Home Todos") no se permite y se informa un error. De manera predeterminada, el homing se permite en modo articulación siempre que el movimiento esté habilitado.

motion.in-position OUT BIT

TRUE si la máquina está en posición (es decir, actualmente no se mueve hacia la posición ordenada).

motion.motion-enabled OUT BIT
motion.motion-type
OUT S32

Estos valores estan en src/emc/nml_intf/motion_types.h

0: inactivo (sin movimiento)

1: traverse (jog, avance o rapido)

2: avance lineal

3: avance arco

4: cambio de herramienta

5: sondeo

6: Desbloqueo rotatorio para traverse

motion.on-soft-limit OUT BIT
motion.probe-input
IN BIT

G38.n usa el valor en este pin para determinar cuándo ha hecho contacto la sonda. TRUE para el contacto de sonda cerrado (en contacto), FALSE para el contacto de la sonda abierto.

motion.program-line OUT S32

LÃnea del programa actual durante la ejecución. Cero si no se está ejecutando o entre lÃneas durante ejecucion a pasos.

motion.requested-vel OUT float

La velocidad actual solicitada en unidades de usuario por segundo. Este valor es la configuración de la palabra F del archivo de código G, posiblemente reducida para acomodarse a los lÃmites de velocidad y aceleración de la máquina. El valor en este pin no refleja el ajuste de alimentación ni ningún otro ajuste.

motion.servo.last-period OUT U32

El número de clocks de CPU entre invocaciones del hilo servo. Por lo general, este número dividido por la velocidad de la CPU proporciona el tiempo en segundos y se puede usar para determinar si el controlador de movimiento en tiempo real cumple con sus limitaciones de tiempo

motion.teleop-mode OUT BIT

El modo de movimiento es teleop ( disponible jogging coordinado de ejes).

motion.tooloffset.L OUT float

offset de herramienta actual para cada eje donde (L es la letra del eje, una de entre:x y z a b c u v w)

motion.tp-reverse OUT BIT

Se invierte la planificación de trayectoria (ejecución inversa)

PINES DE EJE

(L es la letra del eje, una de entre:x y z a b c u v w)
axis.
L.eoffset OUT float

Offset externo actual.

axis.L.eoffset-clear IN BIT

Borrar solicitud de offset externa

axis.L.eoffset-count IN S32

Entrada de cuenta para offset externo. Los recuentos de offset se transfieren a un registro interno. El offset externo aplicado es el producto de los recuentos en registro y el valor de eoffset-scale. El registro es reseteado a cero en cada inicio de máquina. Si la máquina se apaga con un offset externo activo, el pin eoffset-count debe establecerse en cero antes de reiniciar.

axis.L.eoffset-enable IN BIT

Habilitacion para offset externo (también requiere la configuración del archivo ini [AXIS_L]OFFSET_AV_RATIO)

axis.L.eoffset-request OUT FLOAT

Pin de depuración para el offset externo solicitado.

axis.L.eoffset-scale IN FLOAT

Escala para offset externo.

axis.L.jog-accel-fraction IN FLOAT

Establece la aceleración para el jogging de volante en una fracción del valor ini max_acceleration para el eje. Se ignoran los valores mayores que 1 o menores que cero.

axis.L.jog-counts IN S32

Conéctese al pin "recuentos" de un codificador externo para usar un volante de jog fÃsico.

axis.L.jog-enable IN BIT

Cuando es TRUE (y en modo manual), cualquier cambio en "jog-counts" dará lugar a un movimiento. Cuando es FALSE, "jog-counts" se ignora.

axis.L.jog-scale IN float

Establece la distancia recorrida para cada recuento en "jog-counts", en unidades de máquina.

axis.L.jog-vel-mode IN BIT

Cuando es FALSE (el valor predeterminado), el volante funciona en modo de posición. El eje se moverá exactamente jog-scale unidades para cada recuento, independientemente de cuánto tiempo pueda tomar. Cuando es TRUE, la rueda funciona en modo de velocidad; el movimiento se detiene cuando la rueda se detiene, incluso si eso significa que el movimiento ordenado no se ha completado.

axis.L.kb-jog-active OUT BIT

(planificador libre de eje activo (teclado o halui))

axis.L.pos-cmd OUT float

Posición comandada del eje. Puede haber varios offsets entre el eje y las coordenadas del motor; backlash, de error de tornillo y de home. Las compensaciones externas se informan por separado (eje.L.eoffset).

axis.L.teleop-pos-cmd OUT float
axis.
L.teleop-tp-enable OUT BIT

TRUE cuando el "planificador teleop" está habilitado para este eje

axis.L.teleop-vel-cmd OUT float

Velocidad comandada del eje

axis.L.teleop-vel-lim OUT float

LÃmite de velocidad para el planificador teleop

axis.L.wheel-jog-active OUT BIT

PINES de articulación

N es el número articulación (0 ...num_joints-1))
(Nota: los pines marcados(DEBUG) sirven como ayudas de depuración y
están sujetos a cambios o eliminación en cualquier momento).
joint.
N.joint-acc-cmd OUT FLOAT (DEBUG)

Aceleración comandada de la articulación

joint.N.active OUT BIT (DEBUG)

TRUE cuando esta articulación está activa

joint.N.amp-enable-out OUT BIT

TRUE si el amplificador para esta articulación debe estar habilitado

joint.N.amp-fault-in IN BIT

Debe ponerse en TRUE si se detecta un fallo externo del amplificador de esta articulación

joint.N.backlash-corr OUT FLOAT (DEBUG)

Valor bruto de backlash o compensacion de tornillo

joint.N.backlash-filt OUT FLOAT (DEBUG)

Valor filtrado de backlash o compensacion de tornillo (respetando los lÃmites de movimiento)

joint.N.backlash-vel OUT FLOAT (DEBUG)

Velocidad de backlash o compensacion de tornillo

joint.N.coarse-pos-cmd OUT FLOAT (DEBUG)
joint.
N.error OUT BIT (DEBUG)

TRUE cuando esta articulación ha encontrado un error, como la activacion de un interruptor de lÃmite

joint.N.f-error OUT FLOAT (DEBUG)

Error de seguimiento actual

joint.N.f-error-lim OUT FLOAT (DEBUG)

LÃmite de error de seguimiento

joint.N.f-errored OUT BIT (DEBUG)

TRUE cuando esta articulación ha excedido el lÃmite de error de seguimiento

joint.N.faulted OUT BIT (DEBUG)
joint.
N.free-pos-cmd OUT FLOAT (DEBUG)

Posición comandad por "planificador libre" para esta articulación.

joint.N.free-tp-enable OUT BIT (DEBUG)

TRUE cuando el "planificador libre" está habilitado para esta articulación

joint.N.free-vel-lim OUT FLOAT (DEBUG)

LÃmite de velocidad para el planificador libre

joint.N.home-state OUT S32 (DEBUG)

Estatus de la máquina de estados de homing

joint.N.home-sw-in IN BIT

Debe hacerse TRUE si el interruptor home para esta articulación está cerrado

joint.N.homed OUT BIT (DEBUG)

TRUE si la articulación ha sido homeada

joint.N.homing OUT BIT

TRUE si la articulación está actualmente homeada

joint.N.in-position OUT BIT (DEBUG)

TRUE si la articulación está utilizando el "planificador libre" y se ha detenido

joint.N.index-enable IO BIT

Debe estar conectado al pin index-enable del codificador de la articulación para permitir homing al pulso index.

joint.N.is-unlocked IN BIT

Indica que la articulación está desbloqueada (ver PINES DE DESBLOQUEO DE ARTICULACION).

joint.N.jog-accel-fraction IN FLOAT

Establece la aceleración para jog de volante en una fracción del ini max_acceleration para la articulación. Se ignoran los valores mayores que 1 o menores que cero.

joint.N.jog-counts IN S32

Conéctese al pin "counts" de un codificador externo para usar un volante jog fÃsico.

joint.N.jog-enable IN BIT

Cuando es TRUE (y en modo manual), cualquier cambio en "jog-counts" dará lugar a un movimiento. Cuando es FALSE, "jog-counts" se ignora.

joint.N.jog-scale IN FLOAT

Establece la distancia recorrida para cada cuenta en "jog-counts", en unidades de máquina.

joint.N.jog-vel-mode IN BIT

Cuando es FALSE (el valor predeterminado), el volante jog funciona en modo de posición. La articulación se moverá exactamente jog-scale unidades para cada cuenta, independientemente de cuánto tiempo pueda tomar. Cuando es TRUE, la rueda funciona en modo de velocidad; el movimiento se detiene cuando la rueda se detiene, incluso si eso significa que el movimiento ordenado no se ha completado.

joint.N.kb-jog-active OUT BIT (DEBUG)

(planificador libre de jogging de articulación activo (teclado o halui))

joint.N.motor-offset OUT FLOAT (DEBUG)

offset del motor de la articulación establecido cuando se homea la articulación

joint.N.motor-pos-cmd OUT float

Posición comandada para esta articulación.

joint.N.motor-pos-fb IN float

Posición real de esta articulación.

joint.N.neg-hard-limit OUT BIT (DEBUG)

LÃmite hard negativo para la articulación

joint.N.neg-lim-sw-in IN BIT

Debe ponerse en TRUE si se dispara el interruptor de lÃmite negativo para esta articulación.

joint.N.pos-cmd OUT float

Posición comandada de la articulación (en oposición al motor). Puede haber varios offsets entre las coordenadas de la articulación y del motor; backlash, error de tornillo y offset de home.

joint.N.pos-fb OUT float

Retroalimentación de la posición de articulación. Este valor se calcula a partir de la posición real del motor menos las compensaciones de articulaciones. Ãtil para la visualización de máquinas.

joint.N.pos-hard-limit OUT BIT (DEBUG)

LÃmite hard positivo para la articulación

joint.N.pos-lim-sw-in IN BIT

Debe ponerse en TRUE si se dispara el interruptor de lÃmite positivo para esta articulación.

joint.N.unlock OUT BIT

TRUE si el eje es una articulación con bloqueo (generalmente una rotativa) y se ordena un movimiento (ver PINES DE DESBLOQUEO DE LA ARTICULACION)

joint.N.joint-vel-cmd OUT FLOAT (DEBUG)

Velocidad comandada de la articulación

joint.N.wheel-jog-active OUT BIT (DEBUG)

Pines de articulación posthome

Cada articulación designada como articulación ’extra’ está provista de un pin hal joint.N.posthome-cmd. El valor del pin se ignora antes del homing. Después del homing, el valor del pin aumenta con el valor de offset del motor y se enruta a joint.N.motor-pos-cmd.

Pines de desbloqueo JOINT

Los pines de articulación utilizados para desbloquear una articulación (joint.N.unlock,joint.N.is-unlocked), se crean de acuerdo con el parámetrounlock_joints_mask=jointmask para motmod. Estos pines pueden ser necesarios para bloquear los indexadores (generalmente una articulación rotativa)

Los bits de la máscara articulación son: (lsb)0: articulación0, 1: articulación1, 2: articulación2, ...
Ejemplo: loadrt motmod ...unlock_joints_mask=0x38 crea pines de
desbloqueo para las articulaciones 3,4,5

PINES DE HUSILLO

(M es el número de husillo (0 ...num_spindles-1))
spindle.M.amp-fault-in
IN BIT

Debe ponerse a TRUE si se detecta un fallo externa con el amplificador para este husillo

spindle.M.at-speed IN BIT

El movimiento se detendrá hasta que este pasador sea TRUE, en las siguientes condiciones: antes del primer movimiento de alimentación después de cada arranque del husillo o cambio de velocidad; antes del comienzo de cada cadena de movimiento spindle-synchronized y, si está en modo CSS, en cada transición rapid->feed.

spindle.M.brake OUT BIT

TRUE cuando se debe aplicar el freno del husillo

spindle.M.forward OUT BIT

TRUE cuando el huso debe girar hacia adelante

spindle.M.index-enable I/O BIT

Para el correcto funcionamiento de los movimientos sincronizados del cabezal, esta señal debe estar conectada al pin index-enable del codificador del husillo.

spindle.M.inhibit IN BIT

Cuando es TRUE, la velocidad del husillo se establece y se mantiene en 0.

spindle.M.is-orientad IN BIT

Pin de confirmacion spindle-orient. Completa el ciclo de orientación. Si spindle-orient era TRUE cuando se confirmó spindle-is-orientd, se borra el pin spindle-orient y se activa el pin spindle-locked. Además, se afirma el pin spindle-brake de freno.

spindle.M.locked OUT BIT

Pin de orientacion de husillo completada. Limpiado por cualquiera de M3, M4, M5.

spindle.M.on OUT BIT

TRUE cuando el husillo debe girar

spindle.M.orient OUT BIT

Indica el inicio del ciclo de orientación del husillo. Establecido por M19. Autorizado por cualquiera de M3, M4, M5.

Si spindle-orient-fault no es cero durante spindle-orient true, el comando M19 falla con un mensaje de error.

spindle.M.orient-angle OUT FLOAT

Orientación deseada del husillo para M19. Valor del parámetro de palabra M19 R más el valor del parámetro ini [RS274NGC]ORIENT_OFFSET.

spindle.M.orient-fault IN S32

Entrada del código de fallo para el ciclo de orientación. Cualquier valor que no sea cero hará que el ciclo de orientación se cancele.

spindle.M.orient-mode OUT BIT

Modo de rotación deseado del husillo. Refleja la palabra del parámetro M19 P.

spindle.M.reverse OUT BIT

TRUE cuando el eje debe girar en inverso.

spindle.M.revs IN FLOAT

Para el correcto funcionamiento de los movimientos sincronizados del husillo, esta señal debe conectarse al pin de posición del codificador del husillo.

spindle.M.speed-cmd-rps FLOAT OUT

Velocidad del husillo comandada en unidades de revoluciones por segundo

spindle.M.speed-in IN FLOAT

Retroalimentación de velocidad real del husillo en revoluciones por segundo. Se utiliza para los modos G96 (velocidad de superficie constante) y G95 (avance por revolución).

spindle.M.speed-out OUT FLOAT

Velocidad del husillo deseada en rotaciones por minuto

spindle.M.speed-out-abs OUT float

Velocidad del husillo deseada en rotaciones por minuto, siempre positiva independientemente de la dirección del husillo.

spindle.M.speed-out-rps OUT float

Velocidad del husillo deseada en rotaciones por segundo

spindle.M.speed-out-rps-abs OUT float

Velocidad del husillo deseada en rotaciones por segundo, siempre positiva independientemente de la dirección del husillo.

PARÃMETROS DE MOVIMIENTO

Muchos de los parámetros sirven como ayudas para la depuración y están sujetos a cambios o eliminación en cualquier momento.
motion-command-handler.tmax
RW S32

Muestra información sobre el tiempo de ejecución de estas funciones HAL en clocks de CPU

motion-command-handler.tmax-increased RO S32
motion-controller.tmax
RW S32

Muestra información sobre el tiempo de ejecución de estas funciones HAL en clocks de CPU

motion-controller.tmax-increased RO BIT
motion.debug-
*

Estos valores se utilizan con fines de depuración.

FUNCIONES

Generalmente, estas funciones se agregan al hilo servo en el orden que se muestra.
motion-command-handler

Procesa comandos de movimiento provenientes del espacio del usuario. El pin llamado motion-command-handler.time y los parámetros motion-command-handler.tmax, tmax-Increment se crean para esta función.

motion-controller

Ejecuta el controlador de movimiento LinuxCNC. El pin llamado motion-controller.time y los parámetros motion-controller.tmax,tmax-increased se crean para esta función.

ERRORES

Esta página del manual está incompleta.
La identificación de pines categorizados con (DEBUG) es dudosa.

VER TAMBIÃN

iocontrol (1), milltask (1)