El componente HAL moveoff es un método exclusivo de HAL para implementar offsets. Ver la página de manual ($ man moveoff) para limitaciones y advertencias IMPORTANTES.
El componente moveoff se utiliza para offsets de posiciones articulares utilizando conexiones HAL personalizadas. Implementa una funcionalidad offset-mientras-programa-parado con conexiones apropiadas para los pines de entrada. Se soportan nueve articulaciones.
Los valores de los pines de offset de eje (offset-in-M) se aplican continuamente (respetando límites de valor, velocidad y aceleración) a los pines de salida (offset-current-M, pos-plusoffset-M, fb-minusoffset-M) cuando ambos pines (apply-offsets y move-enable) de habilitación de entrada son TRUE. Las dos entradas habilitadoras estan asociadas internamente con un AND. Si el pin apply-offsets va a FALSE mientras se aplican los offsets, se activa un pin de advertencia y se emite un mensaje. El pin de advertencia permanece TRUE hasta que se eliminen los offsets o el pin apply-offsets vuelva a TRUE.
Normalmente, el pin move-enable está conectado a controles externos y el pin apply-offsets está conectado a halui.program.is-paused (solo para offsets mientras se está en pausa) o establecido en TRUE (para offsets aplicados continuamente).
Los offsets aplicados se devuelven automáticamente a cero (respetando los límites) cuando cualquiera de las entradas de habilitación está desactivada. El valor cero de tolerancia se especifica mediante el valor epsilon del pin de entrada.
Los puntos de referencia se registran cuando el componente moveoff está habilitado. Los puntos de referencia son gestionados con los pines waypoint-sample-secs y waypoint-threshold. Cuando el pin backtrack-enable es TRUE, la ruta de retorno automático sigue los waypoints grabados. Cuando la memoria disponible para waypoints se agota, los offsets son congelados y el pin waypoint-limit va TRUE. Esta restricción se aplica independientemente del estado del pin backtrack-enable. Un pin de habilitación debe ser puesto a FALSE para permitir un retorno al original (posición sin offset).
Retroceder a través de puntos de ruta resulta en tasas de movimiento más lentas en la medida que los movimientos son punto a punto respetando la velocidad y la configuración de aceleración. Los pines de límite de velocidad y aceleración se pueden gestionar dinámicamente para controlar offsets en todo momento.
Cuando backtrack-enable es FALSE, el movimiento de retorno automático NO es coordinado; cada eje vuelve a cero a su propio ritmo. Si se desea una ruta controlada en esta condición, cada eje debe devolverse manualmente a cero antes de hacer FALSE un pin de habilitación.
Los pines waypoint-sample-secs, waypoint-threshold, y epsilon se evalúan solo cuando el componente está inactivo.
Se proporciona el pin de salida offsets-applied para indicar el estado actual a una GUI para que se pueda gestionar la reanudación del programa. Si el(los) offset(s) no es(son) cero cuando se desactiva el pin apply-offsets (por ejemplo, cuando se reanuda un programa tras offsets durante una pausa), los offsets se devuelven a cero (respetando límites) y se emite un mensaje de Error.
|
Atención
|
Si los offsets están habilitados y aplicados y la máquina está apagada por cualquier razón, cualquier lógica HAL externa que maneje los pines habilitadores y las entradas offset-in-M es responsable de su estado cuando la máquina se vuelva a encender posteriormente. |
LinuxCNC generalmente no conoce este medio de offsets solo-HAL ni está disponible en las pantallas de vista previa de las GUI. No se proporciona protección para movimientos con offset que exceden los límites suaves administrados por LinuxCNC. Ya que los límites suaves no se respetan, un movimiento de offset puede encontrar límites duros (o un CHOQUE si no hay interruptores de límite). Se recomienda limitar la carrera con el uso de las entradas offset-min-M y offset-max-M. Disparar un límite duro apagará la máquina - vea Precaución arriba.
Los valores offset-in-M pueden establecerse con configuraciones de archivo INI, controladas por una GUI, o gestionados por otros componentes y conexiones HAL. Los valores fijos pueden ser apropiados en casos simples donde la dirección y la cantidad de offset es bien definida pero se requiere un método de control para desactivar un pin de habilitación para devolver los offsets a cero. Las GUI pueden proporcionar medios para que los usuarios puedan establecer, incrementar, disminuir y acumular valores de offset para cada eje y puedan establecer los valores de offset-in-M en cero antes de hacer FALSE un pin de habilitación.
Los valores predeterminados para accel, vel, min, max, epsilon, waypoint-sample-secs y waypoint-threshold pueden inadecuados para alguna aplicación en particular. Este componente HAL desconoce los límites impuestos por LinuxCNC en otros lugares. Los usuarios deben probar el uso en una aplicación de simulador y comprender todos los riesgos antes de su uso en hardware.
Las configuraciones Sim que demuestran el componente y una GUI (moveoff_gui) se encuentran en:
-
configs/sim/axis/moveoff (axis-ui)
-
configs/sim/touchy/ngcgui (touchy-ui)
1. Modificar una configuración existente
Se puede utilizar un archivo HAL proporcionado por el sistema (LIB:hookup_moveoff.tcl) para adaptar una configuración existente para usar el componente moveoff. Configuraciones adicionales del archivo INI admiten el uso de una interfaz gráfica de usuario simple (moveoff_gui) para controlar los offsets.
Cuando el archivo HAL del sistema (LIB:hookup_moveoff.tcl) se especifica correctamente en un archivo INI de configuración, podrá:
-
Desconectar los pines de conexión joint.N.motor-pos-cmd y joint.N.motor-pos-fb originales
-
Cargar (loadrt) el componente moveoff (usando el nombre mv) con una personalidad configurada para acomodar todos los ejes identificados en el archivo INI
-
Agregar (addf) las funciones del componente moveoff en la secuencia requerida
-
Volver a conectar los pines joint.N.motor-pos-cmd y joint.N.motor-pos-fb para usar el componente moveoff
-
Establecer los parámetros operativos y los límites del componente moveoff para cada eje de acuerdo con la configuración adicional del archivo INI
Nota: La aplicación moveoff_gui admite configuraciones que utilizan módulos de cinemática conocidos con KINEMATICS_TYPE=KINEMATICS_IDENTITY. Los módulos soportados incluyen: trivkins. Con cinemática de identidad, moveoff_gui asigna cada nombre de eje especificado con el parámetro de línea de comando -axes axisnames a la articulación correspondiente.
Modifique una configuración existente de la siguiente manera:
Asegúrese de que haya una entrada de archivo INI para [HAL]HALUI y cree una nueva entrada [HAL]HALFILE para LIB:hookup_moveoff.tcl. La entrada para LIB:hookup_moveoff.tcl debe seguir todas las entradas HALFILE= para archivos HAL que conectan los pines para joint.N.motor-pos-cmd, joint.N.motor-pos-fb, y cualquier componente conectado a estos pines (componentes pid y codificadores en un sistema servo, por ejemplo).
[HAL] HALUI = halui MEDIO = archivo_configuracion_hal_existente_1 ... MEDIO = archivo_configuracion_hal_existente_n HALFILE = LIB:hookup_moveoff.tcl
Agregue entradas de archivo INI para la configuración por eje para cada eje en uso (si una entrada no está definida, la entrada correspondiente de la sección [AXIS_n] será utilizada; si no se encuentra ninguna entrada, se utilizará lo predeterminado del componente moveoff).
|
Nota
|
NO se recomienda usar los valores predeterminados de componente o la configuración de valores de sección [AXIS_n] para offset por eje. |
[MOVEOFF_n] MAX_LIMIT = MIN_LIMIT = MAX_VELOCITY = MAX_ACCELERATION =
Agregar entradas de archivo INI para la configuración del componente moveoff (omitir para usar los valores predeterminados):
[MOVEOFF] EPSILON = WAYPOINT_SAMPLE_SECS = WAYPOINT_THRESHOLD =
moveoff_gui se usa para hacer conexiones requeridas adicionales y proporcionar una GUI emergente para:
-
Proporcionar un botón de control para habilitar/deshabilitar los offsets
-
Proporcionar un botón de control para activar/desactivar el seguimiento
-
Proporcionar botones de control para aumentar/disminuir/Cero cada offset de eje
-
Mostrar el valor actual de offset de cada eje
-
Mostrar el estado de offset actual (deshabilitado, activo, eliminando, etc.)
Los botones de control provistos son opcionales dependiendo del estado del pin move-enable del componente. Se proporcionan tanto una pantalla como controles para habilitar offsets si el pin mv.move-enable NO está conectado cuando se inicia moveoff_gui. Para este caso, moveoff_gui maneja el pin de habilitación de movimiento del componente (denominado mv.move-enable), así como los offsets (mv.move-offset-in-M) y la habilitación de backtracking (mv.backtrack-enable)
Si el pin mv.move-enable está conectado cuando moveoff_gui se inicia, moveoff_gui proporcionará una pantalla pero NO controles. Este modo admite configuraciones que usan una perilla de trote u otros métodos de controlar las entradas de offsets y los pines de habilitación (mv.offset-in-M, mv.move-enable, mv.backtrack-enable).
Moveoff_gui realiza las conexiones necesarias para los pines del componente moveoff: mv.power_on y mv.apply-offsets. El pin mv.power_on está conectado al pin motion.motion-enabled (una nueva señal se crea automáticamente si es necesario). mv.apply-offsets está conectado a halui.program.is-paused o se establece en 1 dependiendo de la opción de línea de comando -mode [ onpause | always ]. Una nueva señal se crea automáticamente si es necesario.
Para usar moveoff_gui, agregar una entrada en la sección del archivo INI [APPLICATIONS] de la siguiente manera:
[APPLICATIONS] # Nota: puede ser requerido un retraso (especificado en segundos) si las conexiones # se hacen usando archivos HAL postgui ([HAL]POSTGUI_HALFILE=) DELAY = 0 APP = moveoff_gui opción1 opción2 ...
Cuando el archivo HAL LIB:hookup_moveoff.tcl se usa para cargar y conectar el componente moveoff, el pin mv.move-enable no se conectará y se utilizarán los controles locales proporcionados por moveoff_gui. Este es el método más simple para probar o demostrar el componente moveoff cuando se ha modificado una configuración INI existente.
Para habilitar controles externos mientras se usa la pantalla moveoff_gui para valores de offsets y estado, los archivos HAL que siguen a LIB:hookup_moveoff.tcl debe hacer conexiones adicionales. Por ejemplo, las demostraciones proporcionadas (configs/sim/axis/moveoff/*.ini) usan un archivo HAL de sistema simple (llamado LIB:moveoff_external.hal) para conectar los pines mv.move-enable, mv.offset-in-M y mv.bactrack-enable a señales:
[HAL] HALUI = halui ... HALFILE = LIB:hookup_moveoff.tcl HALFILE = LIB:moveoff_external.hal
Las conexiones realizadas por LIB:moveoff_external.hal (para una configuración de tres ejes) son:
net external_enable mv.move-enable net external_offset_0 mv.offset-in-0 net external_offset_1 mv.offset-in-1 net external_offset_2 mv.offset-in-2 net external_backtrack_en mv.backtrack-enable
Estas señales (external_enable, external_offset_M, external_backtrack_en) pueden ser administradas por HALFILES posteriores (incluidos POSTGUI_HALFILEs) para proporcionar control personalizado del componente mientras se usa la pantalla moveoff_gui para valores de offset y estado actuales.
Moveoff_gui se configura con opciones de línea de comando. Para detalles sobre la operación de moveoff_gui, ver la página del manual:
$ man moveoff_gui
Para obtener una breve lista de las opciones de línea de comando para moveoff_gui, use la opción de ayuda de línea de comando:
$ moveoff_gui --help
Uso:
moveoff_gui [Opciones]
Opciones:
[--help | -? | -- -h] (Este texto)
[-mode [onpause | always]] (predeterminado: onpause)
(onpause: muestra la gui cuando el programa está en pausa)
(always: muestra gui siempre)
[-axes nombresdeejes] (predeterminado: xyz (sin espacios))
(letras del conjunto de: x y z a b c u v w)
(ejemplo: -axes z)
(ejemplo: -axes xz)
(ejemplo: -axes xyz)
[-inc valordeincremento] (predeterminado: 0.001 0.01 0.10 1.0)
(especifique uno por cada -inc (hasta 4))
(ejemplo: -inc 0.001 -inc 0.01 -inc 0.1)
[-size entero] (predeterminado: 14)
(El tamaño general emergente de la gui se basa en el tamaño de la fuente)
[-loc center|+x+y] (predeterminado: center)
(ejemplo: -loc +10+200)
[-autoresume] (predeterminado: notused)
(reanudar el programa cuando move-enable sea false)
[-delay segundos] (predeterminado: 5 (retraso de reanudación))
Opciones para casos especiales:
[-noentry] (predeterminado: notused)
(no crear widgets de entrada)
[-no_resume_inhibit] (predeterminado: notused)
(no usar un pin de reanudar inhibición)
[-no_pause_requirement] (predeterminado: notused)
(sin verificación de halui.program.is-paused)
[-no_cancel_autoresume] (predeterminado: notused)
(útil para retractaciones de offset con simple)
(control externo)
[-no_display] (predeterminado: notused)
(Usar cuando tanto los controles externos como las pantallas)
(están en uso (ver Nota))
Nota: Si el pin de habilitación de movimiento de moveoff (mv.move-enable) está conectado cuando
moveoff_gui se inicia, se requieren controles externos y solo
se proporcionan pantallas.