SUMO AUTOMATION

Blog de divulgación técnica. Artículos basados en FAQs referentes al campo de la automatización industrial.

lunes, 12 de abril de 2021

MOTION - Instrucciones básicas para control de ejes

En las últimas décadas, se ha redefinido el paradigma en el diseño y programación de maquinaria industrial. Los fabricantes ya disponen de softwares de programación que integran el control de servomotores en el entorno del PLC (sin requerir unidades de control/posicionamiento adicionales).
Muchos procesos, que históricamente se solucionaban de forma mecánica, han ido virando a la electrónica (p.e. la leva). Mejorando así la eficiencia y, sobre todo, la flexibilidad de las máquinas por lo que a formatos y capacidad de producción respecta.
Motion control
Esta situación ha requerido homogeneizar la programación de motion control...Muchas de las firmas importantes se han adherido a las normas de PLCopen, basado en el estándar de programación IEC61131-3. Dejo aquí un enlace informativo de su página oficial.

El presente artículo tiene como objetivo presentar las instrucciones básicas más comúnmente utilizadas para controlar un eje simple. El formato de los bloques de función (FBs) y sus E/S puede variar algo entre fabricantes, pero la filosofía de trabajo es exactamente la misma.


¿TIPOS DE FBs EN MOTION?

Podemos dividir los bloques de función de motion en dos grupos principales, dependiendo de la gestión de los mismos:

- FBs de ejecución:
Motion control
Primeramente, es necesario asociar el eje ("Axis") al bloque de función.
Para lanzar el FB solo es necesario un flanco ascendente en la entrada "Execute", cargando así los demás valores de entrada.
Por defecto, dispone de 5 salidas booleanas que nos dan información sobre el estado de ejecución del bloque. 

- FBs de habilitación:
Motion control
En este otro caso, también es necesario asociar el eje ("Axis")  al bloque de función.
Para activarlo es necesario mantener activa la entrada booleana "Enable". De este modo, la ejecución del FB se refresca cada ciclo de scan, cargando los valores de entrada.
Por defecto, también tiene 5 salidas de estado que indican el estado de ejecución del bloque

"Status" y "Done" indican la correcta ejecución del FB, "Busy" que se está ejecutando, "Aborted" que otro FB de motion ha interrumpido la ejecución de la presente, "Error" que en algún momento ha sucedido un problema inesperado que no ha permitido finalizar la instrucción y, por último, "Active" indica que el FB tiene permiso para acceder sobre el eje instanciado.


¿FBs DE GESTIÓN
?

MC_Power da potencia al servomotor (y, por ende, par), dejándolo así preparado para operar. 

Motion control
Es necesario que este FB esté habilitado para poder ejecutar cualquier otro comando (que requiera de dinámica) al eje

MC_Stop ordena una parada controlada, manteniendo el motor con par.
Motion control
Este FB aborta cualquier ejecución de otros FBs de motion. Hasta que el motor no esté con velocidad 0, no se podrá lanzar ningún otro comando al eje

MC_Reset permite resetear los errores internos del eje (siempre que no se deban a fallos permanentes).
Motion control
Tras la ejecución exitosa de este FB, un servo con error volvería a quedar operativo para recibir nuevos comandos

MC_Home se utiliza para ejecutar una búsqueda de origen (mediante señal externa) y/o forzar una posición absoluta al eje. 
Motion control
Comúnmente utilizado para definir una posición de inicio a motores con encoder incremental. Los detalles de la secuencia de homing se especifican dependiendo de las posibilidades que presente el entorno de programación del fabricante. 


¿
FBs PARA CONTROL DE POSICIÓN?

Motion control

- MC_MoveAbsolute permite mover el eje a una posición concreta dentro de su rango de operación (con un perfil de velocidad predeterminado). Realiza el posicionado independientemente a la posición actual del servo, es decir, el eje simplemente alcanzará la consigna de posición impuesta sin importar donde se encuentre.
Motion control
El carácter absoluto del movimiento presupone el "reposo". Si se lanza este posicionado simple sin partir de una posición conocida, el recorrido variará en función de donde se inicie

MC_MoveRelative permite mover el eje un incremento de posición respecto la actual (con un perfil de velocidad predeterminado). Así pues, en este FB, la consigna no es una referencia fija, sino que cambia simultáneamente con movimiento del eje.

Motion control
Independientemente de la posición actual del eje, siempre se realizará el mismo recorrido al lanzar esta instrucción (si se cargan los mismos parámetros). 


¿FB PARA CONTROL DE VELOCIDAD
?

- MC_MoveVelocity sirve para definir un perfil de velocidad al eje y estabilizarlo a la consigna deseada.
Motion control
La ejecución de este FB solo se verá interrumpida si se lanza otro FB de motion que de una nueva consigna al equipo. 


¿FB PARA CONTROL DE PAR?

- MC_TorqueControl ejerce continuamente un par de la magnitud especificada que se alcanza mediante una rampa predefinida.
Motion control
Se trata de un control de par con límite de velocidad. No confundir con un control de velocidad con límite de par...

No hay comentarios:

Publicar un comentario