Este bloque de funciones permite controlar un eje mediante un algoritmo personalizado que calcula la posición cíclica establecida, la velocidad y la aceleración del eje.
El bloque de funciones creado por el usuario para programar un perfil de movimiento tiene que ampliar la FB_CustomJobBase de la biblioteca MotionInterface. A continuación, se indica el bloque de funciones en la entrada CustomJob.
Input |
Tipo de datos |
Descripción |
---|---|---|
Master |
Axis_Ref |
Referencia al eje para el que se ejecutará el bloque de funciones. Puede dejarse sin asignar si el trabajo personalizado (indicado en la entrada CustomJob) no utiliza un eje maestro. Si se asigna un eje, la devolución de llamada del bloque de funciones del usuario para definir el perfil de movimiento obtiene los valores de movimiento del eje maestro. De lo contrario, los valores de movimiento del eje maestro se indican como cero. |
Axis |
Axis_Ref |
Referencia al eje para el que se ejecutará el bloque de funciones. |
Execute |
BOOL |
Rango de valores: FALSE, TRUE. Valor predeterminado: FALSE. Un flanco ascendente de la entrada Execute inicia el bloque de funciones. El bloque de funciones continúa ejecutándose, y la salida Busy se establece en TRUE. Este bloque de funciones puede reiniciarse mientras se ejecuta. Los valores de destino se sobrescriben con los nuevos valores en el momento en que se produce el flanco ascendente. |
BufferMode |
Los valores de destino (posición, velocidad, aceleración) del eje se sobrescriben con los nuevos valores del ciclo de tarea de movimiento cuando se activa el bloque de funciones en el eje. Valor predeterminado: Aborting Modalidad de búfer. Valores posibles:
Consulte MC_Buffer_Mode para obtener una descripción de los valores. |
|
OperationMode |
Modalidad operativa para el bloque de funciones Valor predeterminado: Position |
|
CustomJob |
MOIN.FB_CustomJobBase |
Instancia de un tipo de bloque de funciones creado por el usuario que debe derivarse de FB_CustomJobBase. La instancia de bloque de funciones se puede parametrizar con parámetros adicionales (por ejemplo, posición de destino, velocidad, aceleración, jerk, etc.) en función de los requisitos del algoritmo usado por el trabajo personalizado. Anule los siguientes métodos:
No anule los otros métodos de este bloque de funciones. |
Salida |
Tipo de datos |
Descripción |
---|---|---|
InSteadyState |
BOOL |
Rango de valores: FALSE, TRUE. Valor predeterminado: FALSE, según indica el trabajo personalizado
|
Busy |
BOOL |
Rango de valores: FALSE, TRUE. Valor predeterminado: FALSE, según indica el trabajo personalizado
|
Active |
BOOL |
Rango de valores: FALSE, TRUE. Valor predeterminado: FALSE.
|
CommandAborted |
BOOL |
Rango de valores: FALSE, TRUE. Valor predeterminado: FALSE.
|
Error |
BOOL |
Rango de valores: FALSE, TRUE. Valor predeterminado: FALSE.
|
ErrorID |
Esta enumeración incluye información de diagnóstico. |
Si utiliza el bloque de funciones MC_SetPosition con un bloque de funciones MC_CustomJob, puede producirse un salto de posición si no tiene en cuenta la posición de compensación en el cálculo de la posición.
ADVERTENCIA | |
---|---|
Para evitar posibles saltos de posición, haga que el cálculo de la posición del eje para el siguiente ciclo se base en la última posición física (según Axis.lrPosition) del eje o bien compruebe que la posición de compensación se tiene en cuenta correctamente en el cálculo de la posición.
Si utiliza el bloque de funciones MC_CustomJob con un eje de módulo, la posición generada mediante el método CalculateMovement se corrige con módulo si se produce un desborde de módulo. Esta corrección se basa en el almacenamiento de la compensación de módulo en MC_CustomJob. Esto implica que, si el cálculo se basa en la última posición de referencia (según Axis.lrPosition), la posición del siguiente ciclo se desplaza según la magnitud del salto de módulo.
ADVERTENCIA | |
---|---|
Si se indica un eje para la entrada Master, los nuevos valores de destino o valores de referencia para el eje maestro del ciclo en tiempo real en ejecución se calculan antes de que se active MC_CustomJob. Esto significa que la implementación del trabajo personalizado obtiene los valores actualizados (se calculan de nuevo a partir del ciclo en tiempo real) del eje maestro cuando se llama para calcular sus valores para el eje esclavo.
Si la modalidad operativa se ajusta en Velocity a través de la entrada OperationMode y el variador no puede funcionar en la modalidad operativa Cyclic Synchronous Velocity, el bloque de funciones MC_CustomJob detectará un error. El eje no queda afectado.