El controlador ejecuta la aplicación del usuario en la que se llaman los bloques de funciones de control de movimiento en una tarea separada de la tarea de movimiento en tiempo real en la que se calculan los perfiles de movimiento y se produce la comunicación Sercos. Estas dos tareas pueden tener tiempos de ciclo diferentes. El tiempo de ciclo de la tarea de aplicación de usuario suele ser 10 ms, pero son posibles tiempos de ciclo más cortos, de hasta 1 ms. La tarea en tiempo real se ejecuta con tiempos de ciclo de 1 ms, 2 ms o 4 ms, en función del tiempo de ciclo de Sercos y la configuración de la máquina (tipo de controlador, número de ejes, etc.).
Esta separación aporta una serie de ventajas relacionadas con un aumento del rendimiento. La aplicación del usuario puede ejecutarse con la lentitud que sea necesaria, por ejemplo, para permitir las operaciones del sistema de archivos o la comunicación de red. La tramitación de eventos, la toma de decisiones y el procesamiento de comandos de la aplicación (por lo general, menos críticas en el tiempo) pueden ejecutarse en esta tarea potencialmente más lenta. Sin embargo, las modificaciones del perfil de movimiento pueden ejecutarse a máxima velocidad ejecutando y almacenando en el búfer con antelación los bloques de funciones.
Este método demostrado también se utiliza en sistemas PacDrive de Schneider Electric.
Los programadores que estén familiarizados con sistemas como SoftMotion (que ejecuta la aplicación de usuario en el proceso en tiempo real) y la programación PLCopen estándar necesitarán replantearse una serie de prácticas habituales para sacar todo el provecho de este método. Un método típico de programación de PLCopen consiste en esperar a que "finalice" un bloque de funciones (por ejemplo, las salidas Done, inVelocity, EndOfProfile, InGear) y utilizar las señales correspondientes para ejecutar el siguiente bloque de funciones.
Para obtener el movimiento previsto sin saltos repentinos (sobre todo con los valores de velocidad o aceleración no iguales a cero al final de un trabajo de movimiento), los bloques de funciones deben ejecutarse con antelación con MC_Buffer_Mode ajustado en Buffered. De esta manera, el perfil de movimiento de un bloque de funciones se activará en el mismo ciclo en tiempo real en el que finalice el bloque de funciones precedente.
Si activa el inicio (Execute) del siguiente bloque de funciones a través, por ejemplo, de la señal EndOfProfile del bloque de funciones anterior en lugar de almacenarlo en el búfer, se generarán uno o varios ciclos de retardo, en los que no habrá ningún bloque de funciones activo y el eje permanecerá detenido hasta que el próximo ciclo de tarea de aplicación inicie el siguiente bloque de funciones.
Tal como se define en PLCopen, Axis_Ref se utiliza como entrada a los bloques de funciones de control de movimiento para especificar el eje que se utilizará como eje maestro o esclavo para el bloque de funciones en cuestión.
El Modicon M262 Motion Controller incluye tres tipos de implementaciones para Axis_Ref:
Eje de variador
Eje del variador proporcionado, por ejemplo, por el variador LXM32S o por el objeto de dispositivo genérico de variador Sercos. Se puede acceder a él a través, por ejemplo, de DRV_X.Axis. Un eje de variador puede utilizarse como eje maestro o eje esclavo de cualquier bloque de funciones con la entrada correspondiente. Los valores de posición, velocidad o aceleración de un eje de variador son, por lo general, valores de destino. La única excepción la constituyen las situaciones en las que el Modicon M262 Motion Controller no controla el movimiento del eje (por ejemplo, durante la vuelta al punto de referencia, una parada realizada por el variador de manera autónoma o cuando se deshabilita la fase de arranque del variador). En estas situaciones, la posición del eje corresponde a la posición de feedback y la velocidad/aceleración se calculan en función de la posición de feedback. El eje esclavo todavía puede seguir al eje maestro incluso cuando este último no es controlado por el Modicon M262 Motion Controller.
Eje virtual
El eje virtual representa, por ejemplo, un eje de máquina virtual o cualquier otro eje intermedio para relaciones complejas entre ejes maestros y esclavos. El eje virtual puede crearse declarando una VAR de tipo FB_ControlledAxis en cualquier parte de la aplicación. Un eje virtual puede utilizarse como eje maestro o eje esclavo de cualquier bloque de funciones con la entrada correspondiente.
El Modicon M262 Motion Controller no limita el número de ejes virtuales. No obstante, tenga en cuenta que el eje virtual afecta al rendimiento de Modicon M262 Motion Controller de manera comparable a la de un eje de variador.
Eje de entrada de codificador
El eje de entrada de codificador se proporciona mediante la entrada de codificador integrada del Modicon M262 Motion Controller. El eje de entrada de codificador solo puede utilizarse como eje maestro, y no como esclavo. Los valores de feedback proporcionados por el codificador se usan como posición del eje maestro.
Cuando un eje maestro pase a no estar disponible (por ejemplo, cuando se desconecta el codificador o este no está operativo), todos los ejes esclavos que sigan al maestro pasarán al estado operativo de PLCopen ErrorStop. Si desea que, en tal caso, se detengan los esclavos de manera síncrona, implemente un eje virtual intermedio entre los ejes.
Si el eje maestro pasa a no estar disponible, el eje virtual intermedio pasará al estado operativo de PLCopen ErrorStop. Los ejes que siguen al eje intermedio permanecen en el estado operativo de PLCopen SynchronizedMotion y continúan siguiendo al eje virtual intermedio durante la rampa de deceleración de este.
El Modicon M262 Motion Controller admite los dos tipos de eje definidos por PLCopen:
Eje de tipo módulo
Eje lineal/finito (con o sin límites de movimiento)
Para configurar el eje, se llama el método correspondiente de Axis_Ref.
El módulo de un eje definido como de tipo módulo se tiene en cuenta independientemente del trabajo o del estado del eje (por ejemplo, aunque el eje esté deshabilitado).
No existe necesariamente una relación entre el módulo del eje y el período de aplicación de la leva (ni en dirección X ni Y), aunque la leva se inicie en modalidad absoluta. Para obtener más detalles, consulte la descripción del bloque de funciones.
La posición de referencia y la posición se encuentran en el mismo lado del salto de módulo. Por lo tanto, por ejemplo, en el caso de un eje que avance con el módulo 360, la posición puede tener un valor de -2 (en lugar de 358) cuando la posición de referencia es 1.
Tras apagarlo y encenderlo, el eje de un variador o un codificador restaura por lo general su posición absoluta a partir de la posición almacenada del codificador. Esto se consigue multiplicando la posición del codificador por el escalado del variador y relacionando el valor con la posición del módulo, siempre que se emplee un eje de módulo. El controlador no puede comprobar, sin embargo, que la posición absoluta restaurada sea correcta. La posición podría no ser correcta si, por ejemplo, se ha modificado la posición mecánica (por ejemplo, se ha sustituido el motor, el codificador o el reductor, o bien se han realizado movimientos manuales durante el apagado). Además, el rango de movimiento del eje debe estar limitado mecánicamente a encontrarse a menos de un desborde del codificador. Asimismo, la relación de transmisión de un reductor mecánico o el factor de escalado del variador deben seleccionarse de manera que la posición del codificador del período del codificador pueda resolverse en un número entero múltiplo del período de la aplicación.
Para evitar situaciones en las que existan posiciones absolutas incorrectas, el Modicon M262 Motion Controller restaura la posición absoluta, pero no tiene en cuenta automáticamente el eje o ejes que deben devolverse al punto de referencia. Solo se considera que un eje se ha devuelto al punto de referencia una vez que los bloques de funciones MC_Home o MC_SetPosition (con Relative = FALSE) se han ejecutado correctamente o la aplicación del controlador ha establecido el indicador isHomed en TRUE.
ADVERTENCIA | |
---|---|
El Modicon M262 Motion Controller utiliza números de coma flotante para posiciones del eje absolutas. Una particularidad inherente a los números de coma flotante es que la resolución (en términos absolutos) se reduce cuanto más alejados estén los números del cero. La posición de un variador, por otro lado, se representa con números enteros (incrementos del codificador), de modo que la resolución es siempre la misma, independientemente de lo alejado que esté el número del cero. Con el tiempo, esto provoca una disminución de la precisión del control y, en última instancia, una detención del eje a consecuencia de un error detectado aunque la resolución de coma flotante siga siendo suficiente.
ADVERTENCIA | |
---|---|