Perfil de leva de cálculo de movimiento (MCCP)
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.La instrucción Perfil de leva de cálculo de movimiento (MCCP) calcula un perfil de leva basando en una matriz de puntos de leva. Establezca una matriz de puntos de leva por medio del programa o con el software Editor de perfiles de leva. Cada punto de leva en la matriz de levas está compuesto por un valor de posición esclava, una posición maestra (leva de posición) o un valor de tiempo (leva de tiempo), y un tipo de interpolación (lineal o cúbica). Una instrucción Leva de posición de eje de movimiento (Motion Axis Position Cam, MAPC) o una instrucción Leva de tiempo de eje de movimiento (Motion Axis Position Cam, MATC) pueden usar el perfil de leva resultante para controlar el movimiento de un eje esclavo de acuerdo con la posición maestra o el tiempo.
Se trata de una instrucción de transición. Siga estos pasos cuando la use:
- En la lógica de escalera, inserte una instrucción para alternar la Condición de entrada de renglón de falsa a verdadera cada vez que se deba ejecutar la instrucción.
- En una rutina de Texto estructurado, inserte una condición para que la instrucción haga que se ejecute solo en una transición.
Idiomas disponibles
Diagrama de lógica de escalera

Bloque de funciones
Esta instrucción no está disponible en el bloque de funciones.
Texto estructurado
MCCP(MotionControl,Cam,Length,StartSlope,EndSlope,CamProfile);
Operandos
Diagrama de lógica de escalera
Operando | Tipo | Formato | Descripción |
|---|---|---|---|
Motion Control | MOTION_INSTRUCTION | Etiqueta | Estructura empleada para acceder a los parámetros de estado del bloque. |
Cam | CAM, CAM_EXTENDED | Matriz | El nombre de etiqueta de la matriz de leva utilizado para calcular el perfil de leva. El índice de matriz numérica indica el elemento de leva inicial de la matriz utilizada para el cálculo del perfil de leva. El símbolo de puntos suspensivos abre el Editor de perfil de leva. Use el tipo de CAM_EXTENDED para este operando para habilitar el acceso a miembros de datos de leva de doble precisión (LREAL de 64 bits). Si se utiliza, el operando Perfil de leva debe ser del tipo CAM_PROFILE_EXTENDED. |
Length | UINT | Inmediato o etiqueta | Determina la cantidad de elementos de la matriz utilizada para el cálculo del perfil de leva. |
Start Slope | REAL | Inmediato o etiqueta | Se trata de la condición límite de la pendiente inicial del perfil. Solo es válido para un primer segmento cúbico y especificauna pendiente a través del primer punto. |
End Slope | REAL | Inmediato o etiqueta | Se trata de la condición límite de la pendiente final del perfil. Solo es válido para un último segmento cúbico y se utiliza para especificar la pendiente a través del último punto. |
Cam Profile | CAM_PROFILE, CAM_PROFILE_EXTENDED
CONSEJO:
CAM_PROFILE_EXTENDED es compatible únicamente con los controladores Compact GuardLogix 5580 y CompactLogix 5380.
| Matriz | Nombre de etiqueta de la matriz de perfil de leva (Perfil de leva) calculada utilizada como entrada para las instrucciones MAPC y MATC. Únicamente se permite el elemento de la matriz cero ([0)] para la matriz Perfil de leva. El símbolo de puntos suspensivos abre el Editor de perfil de leva. Use el tipo de CAM_PROFILE_EXTENDED con este operando para habilitar el acceso a miembros de datos de leva de doble precisión (LREAL de 64 bits). Si se utiliza, el operando Leva debe ser del tipo CAM_EXTENDED. |
Texto estructurado
Operando | Tipo | Formato | Descripción |
|---|---|---|---|
Source | SINT INT DINT REAL STRING estructura | etiqueta | Elemento inicial para copiar
IMPORTANTE:
Los operandos de Origen y Destino deben ser del mismo tipo de datos o se producirán resultados inesperados.
|
Destination | SINT INT DINT REAL STRING LINT estructura | etiqueta | Elemento inicial que sobrescribir por el origen
IMPORTANTE:
Los operandos de Origen y Destino deben ser del mismo tipo de datos o se producirán resultados inesperados.
|
Length | DINT | inmediato etiqueta | Número de elementos de Destino para copiar. |
Consulte Sintaxis de texto estructurado para obtener más información sobre la sintaxis de las expresiones dentro de texto estructurado.
Los operandos son los mismos que para la instrucción MCCP de la escalera de relés. No es necesario incluir el índice de la matriz para los operandos de la matriz. Si no se incluye el índice, la instrucción comienza con el primer elemento de la matriz ([0]).
Estructura de MOTION_INSTRUCTION
Mnemónico | Descripción |
|---|---|
.EN (Enable) Bit 31 | El bit de Habilitación se establece cuando el renglón realiza una transición de falso a verdadero y sigue establecido hasta que se establece el bit de efectuado y el renglón pasa a falso. |
.DN (Done) Bit 29 | El bit de Efectuado se establece cuando se ha ejecutado la instrucción de leva de cálculo y se ha calculado la matriz de Perfil de leva. |
.ER (Error) Bit 28 | El bit de error indica cuándo la instrucción detecta un error, por ejemplo si la matriz de leva tiene una longitud ilegal. |
Descripción
La instrucción MCCP calcula un perfil de leva basando en un conjunto de puntos determinados en una matriz de leva especificada. Las instrucciones de Leva de posición de eje de movimiento (Motion Axis Position Cam, MAPC) o Leva de tiempo de eje de movimiento (Motion Axis Time Cam, MATC) subsiguientes pueden utilizar los perfiles de leva resultantes generados por la instrucción MCCP para proporcionar un movimiento complejo de un eje esclavo en relación con la posición de un eje maestro o en relación con el tiempo.
Dado que los perfiles de leva pueden ser calculados directamente por el Editor de perfil de leva de
Logix Designer
, el objetivo principal de la instrucción MCCP es ofrecer un método para calcular los perfiles de leva en tiempo real en base a los cambios programáticos en las matrices de leva correspondientes.Especificación de una matriz de leva
Para ejecutar una instrucción MCCP, debe crearse una etiqueta de matriz de Leva con el Editor de etiquetas RSLogix o con el Editor de perfil de leva. La siguiente figura muestra cómo se establecen las etiquetas de matriz de Leva y se utilizan como entrada para la instrucción MCCP.
Los elementos de la matriz de Leva consisten en pares de puntos esclavos (yp) y maestros (xp), así como un tipo de interpolación. Como no hay ninguna asociación con una posición de eje específico o el tiempo, los valores de los puntos x e y no tienen unidades. El tipo de interpolación se puede especificar para cada punto como lineal o cúbico.
La instrucción MCCP admite dos tipos de matriz de Leva: CAM y CAM_EXTENDED. Utilice las matrices de CAM para calcular las etiquetas de perfil de leva de tipo CAM_PROFILE. Utilice las matrices de CAM_EXTENDED para calcular las etiquetas de perfil de leva de tipo CAM_PROFILE_EXTENDED que tienen una mejor precisión.
Especificación de la etiqueta de perfil de leva
Para ejecutar una instrucción MAPC, también debe crearse una etiqueta de matriz de Perfil de leva. Las etiquetas de matriz de Perfil de leva se pueden crear con el editor de etiquetas de
Logix Designer
o las instrucciones MAPC/MATC, mediante el Editor de perfil de leva integrado.Los datos de la matriz del Perfil de leva pueden ser modificados durante el tiempo de compilación mediante el Editor de perfil de leva, o durante el tiempo de ejecución con la instrucción MCCP. En el caso de cambiarse al ejecutarlos, deberá crearse una matriz de levas para poder usar la instrucción MCCP.
El parámetro de estado se utiliza para indicar que el elemento de matriz del Perfil de leva se ha calculado. Si se intenta ejecutar una instrucción de leva usando cualquier elemento no calculado en un perfil de leva, las instrucciones MAPC o MATC devolverán un error. El parámetro de tipo determina el tipo de interpolación aplicado entre este elemento de matriz de leva y el siguiente elemento de leva.
La instrucción MCCP admite dos tipos de matriz de Perfil de leva: CAM_PROFILE y CAM_PROFILE_EXTENDED. CAM_PROFILE se calcula a partir de una matriz de CAM. CAM_PROFILE_EXTENDED se calcula a partir de una matriz CAM_EXTENDED, lo que proporciona una mejor precisión.
Miembro de estado de matriz de perfil de leva
El miembro de Estado del primer elemento de la matriz de perfil de leva es especial y se usa para las comprobaciones de integridad de los datos. Por este motivo, MCCP deberá especificar siempre el perfil de leva con el índice inicial establecido en 0. El primer miembro de Estado del elemento de perfil de leva podrá tener los siguientes valores.
Variables de estado | Descripción |
|---|---|
0 | El elemento de perfil de leva no se ha calculado. |
1 | El elemento de perfil de leva se está calculando. |
2 | El elemento de perfil de leva se ha calculado. |
n | El elemento de perfil de leva se ha calculado y lo están utilizando en ese momento instrucciones (n-2) o MATC. |
Interpolación de spline lineal y cúbico
Los perfiles de leva calculados resultantes se interpolan completamente. Esto significa que si la posición maestra o el tiempo actuales no se corresponden exactamente con un punto en la matriz de levas utilizada para generar el perfil de leva, la posición del eje esclavo se calcula por interpolación lineal o cúbica entre puntos adyacentes. De esta manera, se proporciona el movimiento esclavo más uniforme posible. La instrucción MCCP logra esto calculando coeficientes de una ecuación polinómica que calcula la posición esclava como una función de posición o tiempo maestros.
Cálculo del perfil de leva
Antes de calcular un perfil de leva en eje especificado, primero la instrucción MCCP comprueba si se ha calculado la matriz de perfil de leva, verificando el valor del primer miembro de Estado del elemento de perfil de leva. Si el valor de Estado es 0 o 2, la MCCP sigue con el cálculo del perfil de leva. Una vez calculada completamente la matriz de perfil de leva, la instrucción MCCP establece el primer valor de Estado del primer elemento del perfil de leva para que se calcule, o establece a 1 y, a continuación, establece el valor de Estado del resto de elementos del perfil de leva para que se calcule. Cuando se realiza el cálculo, los valores de Estado de miembros del perfil de leva individuales se establecen al valor calculado o a 2. Una vez calculados todos los elementos de la matriz de perfil de leva, el primer valor de Estado de elemento de perfil de leva se establece al valor calculado.
Sin embargo, si se ejecuta una instrucción MCCP un valor de estado de perfil de leva inicial de 1, el perfil de leva está siendo calculado actualmente otra instrucción MCCP y la instrucción MCCP da un error. Si el valor de estado es >2, el perfil de leva está siendo usado activamente un proceso de instrucción MAPC o MATC y la instrucción MCCP da un error.
Pendiente inicial y pendiente final
El control de pendiente se proporciona para facilitar una entrada y salida suave de un perfil de leva. Los parámetros Pendiente inicial y Pendiente final determinan el índice de cambio del esclavo respecto al maestro. Estos valores se utilizan en los cálculos de spline cúbico realizados en la matriz de leva. El siguiente diagrama muestra la relación de pendiente maestro esclavo.

Los valores predeterminados para la Pendiente inicial y Pendiente final son 0 para facilitar un inicio y final suave de perfil de leva desde la posición de reposo. Sin embargo, si el eje ya está realizando la operación de leva, se puede especificar una Pendiente de inicio no cero apropiada para que coincida con la Pendiente final de la leva que se está ejecutando actualmente, lo que permite combinar perfectamente los dos perfiles de leva.
Los valores de Pendiente inicial y Pendiente final no se pueden aplicar cuando se inicia o finaliza el perfil de leva con interpolación lineal.
IMPORTANTE:
La ejecución de la instrucción MCCP se completa con un escaneado único. Por lo tanto, la instrucción debe colocarse en una tarea separada para evitar que afecte al tiempo de escaneado del programa del usuario.
Se trata de una instrucción de transición:
- En la escalera de relés, cambie la Condición de entrada de renglón de falsa a verdadera cada vez que la instrucción se deba ejecutar.
- En el texto estructurado, condicione la instrucción para que solo se ejecute en una transición.
Afecta a las marcas de estado matemáticas
No
Fallos mayores/menores
No es específico para esta instrucción. 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 extendidos
Los Códigos de error extendidos ofrecen información específica de la instrucción adicional para los Códigos de error que son suficientemente específicos para ayudar a localizar el problema. Cuando la instrucción MCCP recibe un mensaje de error de Longitud de leva ilegal (26), para notificarle de que el parámetro de entrada de longitud no se corresponde con lo que espera la instrucción, el Código de error extendido correspondiente indica el número de levas de la Etiqueta de leva ofrecido a la instrucción. Cuando la instrucción MCCP recibe un mensaje de error de Longitud de perfil de leva ilegal (27), para notificarle de que el parámetro de entrada de longitud no se corresponde con lo que espera la instrucción, el Código de error extendido correspondiente indica el número de puntos de leva que está intentando generar la instrucción. Consulte Códigos de error de movimiento (ERR) para ver las instrucciones de movimiento.
Cambios de MCCP a bits de estado
No
Ejemplos
Ejemplo 1
Diagrama de lógica de escalera

Texto estructurado
MCCP(MCCP_1,Cam_1[0],30,1.0,1.0,Cam_pro1[0]);
Ejemplo 2
Diagrama de lógica de escalera

Texto estructurado
MCCP(mccp_motion_ctrl,cam[0],2,2,10,cam_profile[0]);
Entregue su opinión