1 de marzo de 2010

Sincronización sencilla de ejes en un Simotion

Supongamos que tenemos dos servomotores controlados por un sistema Simotion y necesitamos que se muevan de forma sincronizada, que el movimiento que ordenemos a uno se vea inmediatamente reflejado en el otro. La mejor forma de plantear esta configuración es definiendo tres ejes: un eje por cada servomotor más un eje virtual. La filosofía a seguir será acoplar cada uno de los ejes de los servomotores al eje virtual, de forma que nosotros ejecutemos las órdenes de movimiento sobre el eje virtual y que cada uno de los servomotores lo sigan automáticamente.

Un eje virtual no tiene asociado un control de lazo cerrado ni un accionamiento o un encóder. Las consignas y sus valores reales son siempre coincidentes. Generalmente su utilidad consiste en ser un eje auxiliar para generar como eje maestro, por ejemplo, consignas para varios ejes reales.

Voy a partir de una configuración como la que ya he mostrado en esta serie de entradas, donde ya tenía un par de ejes creados. Me he de asegurar de que en cada uno de los ejes (en este ejemplo los llamaré EJE_A y EJE_B) esté marcado el uso de la tecnología de operación síncrona (Synchronous operation).


A continuación insertaremos el eje virtual, para ello en el árbol de proyecto, en el apartado Axis haremos doble clic sobre Insert axis. Nos aparecerá el diálogo de creación de ejes, donde también marcaremos Synchronous operation y aceptaremos.


Ahora hay que seleccionar el tipo de eje, le indicaremos Linear o Rotary en función del tipo de eje que controlen nuestros servomotores y marcaremos Virtual.


Nos queda por seleccionar las unidades y el módulo, asegurándonos que coincidan en todos nuestros ejes.



Solo nos queda aceptar la configuración.


Ya tenemos el eje virtual insertado en nuestro proyecto.


Terminada la configuración vamos con la programación para realizar la sincronización de los ejes, que programada en lenguaje MCC (Motion Control Chart) tiene el siguiente aspecto:


Paso a paso lo que se hace es lo siguiente, primero se elimina la posible sincronización (Gearing off) de cada eje real con el eje virtual (no necesitamos comprobar si los ejes estaban previamente sincronizados, la ejecución de este comando sobre ejes no sincronizados no produce ningún error).


Liberados los ejes, moveremos de forma simultánea e independiente cada eje -también el virtual- a una posición que definamos como origen. Yo he puesto la posición de sincronización de todos los ejes en 0 mm, pero podemos usar cualquier posición (ni siquiera tiene porque ser la misma en todos los ejes).




Teniendo ya los ejes posicionados donde nos interesa procederemos a realizar la sincronización, con el comando Gearing on. Indicaremos el eje que será el esclavo (EJE_A) y el eje al que debe seguir (EJE_VIRTUAL). Podemos especificar una relación lineal entre el movimiento de los ejes, que en este ejemplo será de 1 a 1. Si necesitásemos una relación entre ejes no lineal tendríamos que utilizar levas.


En la pestaña 'Synchronization' tenemos más opciones, yo dejaré las que vienen por defecto.


Lo mismo para el EJE_B y listo, ya tenemos nuestros ejes sincronizados con el EJE_VIRTUAL. A partir de este momento nos olvidamos de los ejes A y B y nuestros comandos de posicionamiento serán únicamente sobre el eje virtual. Solo deberemos tener la precaución de que los movimientos que ordenemos al eje virtual puedan ser físicamente realizables por nuestros servomotores (aceleraciones, esfuerzos y límites de posición dentro de sus posibilidades).

Si necesitamos comprobar si tenemos nuestros ejes permanecen sincronizados podemos hacerlo, por ejemplo, con un código como el siguiente:


Hasta aquí estas notas sobre sincronismo de ejes. Este es un ejemplo muy sencillo pero el sistema Simotion nos ofrece muchas posibilidades para controlar ejes mediante sincronizaciones, seguimientos, levas, interpolaciones, con el único límite de nuestra imaginación.

Como siempre, agradeceré cualquier comentario.

3 comentarios:

  1. Aprendiz: Como siempre aportando aplicaciones interesantes...se agradece sus aportes

    ResponderEliminar
  2. Buenas, me acaba de salir una aplicación para ofertar de este tipo. Y gracias a tu aportación me has aclarado muchas cosas. Muchísimas gracias y enhorabuena por tu blog (que no conocía). Saludos.

    ResponderEliminar
  3. Muchas gracias muy buen aporte

    ResponderEliminar

Por favor, no pidas copias de programas comerciales, licencias o números de serie.