motion - acepta comandos NML de movimiento, interactúa con HAL en tiempo real
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.
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’.
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)
(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
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)
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.
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
(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.
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.
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.
Esta
página del manual está
incompleta.
La identificación de pines categorizados con
(DEBUG) es dudosa.
iocontrol (1), milltask (1)