Registro de armado de movimiento (MAR)
Esta información corresponde a los controladores
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, Compact GuardLogix
5380, CompactLogix
5380, ControlLogix
5580, GuardLogix
5580 y ControlLogix 5590. Las diferencias de controllers se indican cuando corresponda.Use la instrucción Registro de armado de módulo (MAR) para armar la comprobación de evento de registro para el eje especificado. Cuando se ejecuta la instrucción, se arma un evento de registro en función de la Entrada de registro seleccionada y la Condición desencadenante especificada. Cuando la transición de Entrada de registro especificada satisface la Condición desencadenante, el eje calcula la posición del eje en el momento en que ocurrió el evento basándose en los datos de conteo de codificador enclavados por hardware y la almacena en la correspondiente variable Posición de registro en la estructura de datos del eje. Además, el bit Evento (PC) de la instrucción y el bit de Estado de evento del registro de la estructura de datos del eje se establecen simultáneamente. Si se selecciona Registro en ventana, solo se aceptan los eventos de registro cuya posición de registro calculada se encuentre entre las ventanas de la Posición máxima y la Posición mínima. Si la Posición de registro cae fuera de esta ventana, la comprobación de eventos de registro se rearma automáticamente.
Arquitectura | Standard | Seguridad |
|---|---|---|
Controladores CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370 y GuardLogix 5570 | Sí | No |
Controladores Compact GuardLogix 5380, CompactLogix 5380, ControlLogix 5580, GuardLogix 5580 y ControlLogix 5590 | Sí | No |
Idiomas disponibles
Diagrama de lógica de escalera

Bloque de funciones
Esta instrucción no está disponible en el bloque de funciones.
Texto estructurado
MAR(Axis,MotionControl, TriggerCondition, WindowedRegistration, MinimumPosition, MaximumPosition, InputNumber);
Operandos
Diagrama de lógica de escalera
Operando | Tipo CompactLogix 5370, Compact GuardLogix 5370, Compact GuardLogix 5380, CompactLogix 5380 | Tipo controladores ControlLogix 5570, GuardLogix 5570, ControlLogix 5580, GuardLogix 5580 y ControlLogix 5590 | Formato | Descripción |
Eje | AXIS_CIP_DRIVE | AXIS_CIP_DRIVE AXIS_SERVO AXIS_SERVO_DRIVE AXIS_GENERIC_DRIVE AXIS_GENERIC
CONSEJO:
AXIS_GENERIC es compatible únicamente con los controladores
ControlLogix 5570 y GuardLogix 5570. | Etiqueta | Nombre del eje sobre el que ejecutar la operación. En el caso de los controladores compatibles con los tipos de datos de movimiento REF_TO, el tipo de operando de eje admitido puede reemplazarse por un tipo de REF_TO equivalente. |
Control de movimiento (Motion Control) | MOTION_INSTRUCTION | MOTION_INSTRUCTION | Etiqueta | Estructura empleada para acceder a los parámetros de estado de la instrucción. |
Condición desencadenante (Trigger Condition) | BOOLEAN | BOOLEAN | Inmediato | Define la transición de Entrada de registro que define el evento de registro. Seleccione cualquiera: 0 = desencadenar con borde positivo 1 = desencadenar con borde negativo |
Registro en ventana | BOOLEAN | BOOLEAN | Inmediato | Habilitar (1) si el registro va a ser de tipo Registro según ventana, es decir, que la Posición de registro calculada debe estar dentro de los límites de posición Mín y Máx especificados para que se acepte como evento de registro válido. Seleccione cualquiera: 0 = deshabilitado 1 = habilitado. |
Posición mínima (Minimum Position) | REAL | REAL | Inmediato o etiqueta | Se usa cuando Registro en ventana está habilitado. La Posición de registro debe ser mayor que el límite de Posición Mínima antes de aceptar el evento de registro. |
Posición máxima | REAL | REAL | Inmediato o etiqueta | Se usa cuando Registro en ventana está habilitado. La Posición de registro debe ser menor que el límite de Posición máxima antes de aceptar el evento de registro. |
Número de entrada | SINT, INT o DINT | SINT, INT o DINT | 1 o 2 | Especifica la Entrada de registro a seleccionar. 1 = Posición de registro 1 2 = Posición de registro 2. |
Consulte Sintaxis de texto estructurado para obtener más información sobre la sintaxis de las expresiones dentro de texto estructurado.
Para los operandos que tenga que seleccionar entre las opciones disponibles, introduzca su selección como:
Este operando | Tiene estas opciones que | |
Se introducen como texto | O se introducen como número | |
TriggerCondition | positive_edge negative_edge | 0 1 |
WindowedRegistration | deshabilitado habilitado | 0 1 |
Estructura de MOTION_INSTRUCTION
Mnemónico | Descripción |
.EN (Habilitación) Bit 31 | Se establece en verdadero cuando el renglón hace una transición de falso a verdadero y sigue establecido hasta que se completa la transacción de mensaje del servo y el renglón pasa a falso. |
.DN (Efectuado) Bit 29 | Se establece en verdadero una vez la comprobación del evento de registro del eje se ha armado con éxito. |
.ER (Error) Bit 28 | Se establece en verdadero para indicar que la instrucción detectó un error, por ejemplo si especificó un eje no configurado. |
.IP (En proceso) Bit 26 | Se establece en verdadero en caso de transición de renglón positiva y se pasa a falso si el evento de registro se ha producido, ha sido sustituido por otro comando Registro de armado de movimiento, o ha sido cancelado por un comando Registro de desarme de movimiento. |
.PC (Proceso completo) Bit 27 | Se establece en verdadero cuando se produce un evento de registro. |
Descripción
La instrucción MAR configura un evento de registro para almacenar las posiciones reales del eje físico especificado en el borde especificado de la Entrada de registro de alta velocidad seleccionada para dicho eje.
Al ejecutar una instrucción MAR, el bit RegEventStatus se establece en 0 (FALSO) y la Entrada de registro seleccionada para el eje seleccionado se monitoriza hasta que sucede una transición de Entrada de registro del tipo seleccionado (el evento de registro). Cuando se produce el evento de registro, el bit RegEventStatus del eje se establece en 1 (VERDADERO) y la Posición real del eje se almacena en la variable Posición de registro correspondiente a la entrada de registro (por ejemplo, Posición 1 de registro 1 o Posición de registro 2).
Registro

Puede haber diversos eventos de registro activos al mismo tiempo en cualquier momento para un determinado eje, pero solo uno de ellos puede estar activo por cada entrada de registro. Cada evento se monitoriza de forma independiente, y puede comprobarse mediante el correspondiente bit RegEventStatus.
Registro en ventana
Cuando la casilla de verificación Registro según ventana está marcada, el estado de desconexión solo genera un evento de registro si este se produce cuando el eje se encuentra dentro de la ventana definida por las posiciones mínima y máxima, tal como se muestra a continuación.

Introduzca valores o variables de etiqueta para las posiciones absolutas deseadas que definen la ventana de posición dentro de la cual el estado de desconexión seleccionado para la Entrada de registro es válido. El registro en ventana resulta útil, ya que proporciona un mecanismo que permite ignorar transiciones espurias o aleatorias del sensor de registro, lo que mejora la inmunidad al ruido para las entradas de registro de alta velocidad.
En el caso de los eje lineales, los valores pueden ser positivos, negativos o una combinación de ambos. Sin embargo, el valor de Posición mínima debe ser inferior al valor Posición máxima para que se produzca el evento de registro. En el caso de los ejes rotativos, ambos valores deben ser inferiores al valor de desbobinado establecido en el menú de configuración de máquina del controlador de movimiento. El valor de Posición mínima puede ser mayor que el valor de Posición máxima para ventanas de registro que cruzan el punto de desbobinado del eje, tal como se muestra a continuación.
Ventana de posición del eje rotatorio

Rearmado de una instrucción MAR
Si su aplicación requiere una detección rápida y continua de un sensor de registro, recomendamos usar esta lógica:
Lógica de escalera para la detección de registro continua

Para rearmar la instrucción MAR, el renglón debe pasar de falso a verdadero. La velocidad a la que funciona esta lógica depende de:
- tiempo de escaneado de programa
- índice de actualización aproximada de la tarea de movimientoIMPORTANTE: En conexiones de E/S a gran escala, forzar los valores pueden ralentizar la velocidad a la que el controlador procesa el registro de movimiento repetitivo.
Para ejecutar con éxito una instrucción MAR, el eje objetivo debe configurarse bien como Servoeje como eje de Solo retroalimentación. De lo contrario, la instrucción falla.
IMPORTANTE:
La ejecución de la instrucción puede tardar varios escaneados en ejecutarse, ya que requiere varias actualizaciones aproximadas para completar la solicitud. El bit de Efectuado (Done, .DN) no se establece inmediatamente, sino que se establece una vez que se completa la solicitud.
En esta instrucción de transición, la escalera de relés, cambia la Condición de entrada de renglón de borrada a establecida cada vez que la instrucción se deba ejecutar.
Afecta a las marcas de estado matemáticas
No
Fallos mayores/menores
No es específico para esta instrucción. Se puede producir un fallo mayor si se pasa al operando del eje una referencia sin inicializar o una referencia de tipo incorrecto. Consulte Atributos comunes para ver los fallos relacionados con el operando.
Ejecución
Diagrama de lógica de escalera
Condición/estado | Acción realizada |
Pre-escaneado | Los bits .EN, .DN, .ER y .IP se borran a falsos. |
La condición de entrada de renglón es falsa | El bit .EN se borra y cambia a falso si el bit .DN o .ER es verdadero. |
La condición de entrada de renglón es verdadera | El bit .EN se establece en verdadero y la instrucción se ejecuta. |
Post-escaneado | N/A |
Texto estructurado
Condición/estado | Acción realizada |
Pre-escaneado | Consultar Pre-escaneado en la tabla Diagrama de lógica de escalera. |
Ejecución normal | Consultar La condición de entrada de renglón es falsa, seguida por La condición de entrada de renglón es verdadera en la tabla Diagrama de escalera. |
Post-escaneado | Consultar Post-escaneado en la tabla Diagrama de escalera. |
Códigos de error
Consulte Códigos de error de movimiento (ERR) para ver las instrucciones de movimiento.
Códigos de error extendidos
Los Códigos de error extendidos ofrecen información adicional específica sobre la instrucción para los Códigos de error que son genéricos en muchas instrucciones. Los siguientes códigos de error extendidos ayudan a localizar el problema cuando la instrucción MAR recibe un mensaje de error Fallo de mensaje de servo (12). Consulte Códigos de error de movimiento (ERR) para ver las instrucciones de movimiento.
Código de error asociado (decimal) | Código de error extendido (decimal) | Significado |
SERVO_MESSAGE_FAILURE (12) | Sin respuesta (2) | No hay suficientes recursos de memoria para completar la solicitud. (SERCOS) |
SERVO_MESSAGE_FAILURE (12) | Valor no válido (3) | La entrada de registro proporcionada está fuera de rango. |
SERVO_MESSAGE_FAILURE (12) | El dispositivo se encuentra en un estado erróneo (16). | La Posición redefinida, la Posición inicial y Registro 2 son mutuamente excluyentes. (SERCOS) |
Los Códigos de error extendidos para el código de error Parámetro fuera de rango (13) funcionan de forma un poco diferente. En vez de disponer de una enumeración estándar, el número que aparece en el Código de error extendido hace referencia al número del operando tal y como aparecen en la plantilla de arriba a abajo, contándose el primer operando como cero. Por lo tanto, para la instrucción MAR, un código de error extendido de 4 se referiría al valor de Posición mínima. Tendrá que verificar entonces su valor con el rango de valores aceptados para la instrucción.
Bits de estado
Cambios de MAR a bits de estado
Nombre del bit | Estado | Significado |
RegEvent1ArmedStatus RegEvent2ArmedStatus | VERDADERO (TRUE) | El eje busca un evento de registro. |
RegEvent1Status RegEvent2Status | FALSO (FALSE) | El evento de registro anterior se ha borrado. |
Ejemplo
Diagrama de lógica de escalera

Texto estructurado
MAR(Axis1, MAR_2, Positive_Edge, enabled, minmarpos_1, maxmarpos_1, 1);
Entregue su opinión