Servos Omron: Tutorial Sysmac Studio (V) 4.5/5 (14)

Continuamos con el tutorial de programación de PLC’s. En esta ocasión vamos a aprender a controlar servos Omron.


Si Quieres Acceder A Todos Los Capítulos Pincha Aquí

 

En este tutorial sobre programación de Servos Omron, primero vamos a explicar la diferencia entre ejes controlados, ejes reales y ejes virtuales.

  • Número de ejes controlados = Número de ejes que la CPU puede controlar. Incluye reales y virtuales.
  • Número de ejes reales = Número de ejes físicos que se pueden conectar. En definitiva, número de drivers que podemos pinchar.
  • Número de ejes virtuales = Número ejes controlados – Número ejes reales.

Un eje virtual es un eje que creamos por software. Puede ser un enconder. Si tenemos un cinta transportadora, que no está movida por servo sino por VFD, al ponerle un encoder, al ser un sincronismo, puede ser un eje. Pero no es un eje real porque no tiene entrada directa por driver de servo. Entonces es eje virtual.

Un eje virtual también puede ser una unión de dos ejes reales. Por ejemplo, si dos ejes reales queremos unirlos para que se muevan en conjunción, estamos creando un eje nuevo realmente, un eje virtual.

Los pasos a seguir para la programación son los siguientes:

  1. Añadimos un nuevo servomotor. Nos vamos a “Configuración de eje”->”Añadir”->”Eje de control de movimiento”.
  2. Cambiamos el nombre del eje. Nos ponemos encima del servomotor y le damos botón derecho “Renombrar”.
  3. Configuración. Pulsamos dos veces sobre el eje.
    1. Configuración básica del eje.
    2. Configuración de Conversión de Unidades. Aquí configuramos los pulsos por vuelta y escalamos el servo. En nuestro caso tenemos un servo con un encoder que tiene una resolución de 20 bits. Luego, 2^20=1045876. Este es el valor que ponemos en el dato de pulsos/rev. Para este ejemplo vamos a escalar el servo en grados y para simplificar pondremos 360 grados/rev.
    3. Configuración de operación. Aquí configuramos las velocidades según los límites que tenga nuestro accionamiento real.
    4. Comprobación de funcionamiento. Nos situamos encima del servo, botón derecho -> “Iniciar prueba de funcionamiento MC”. Entonces se nos abrirá un asistente en el que podemos mover manualmente el servo para comprobar que la configuración es correcta. Para ello tenemos que activar el servo primero donde pone “Servo OFF” y le damos después al botón de desplazar.
    5. Movimiento relativo. Si queremos hacer movimiento relativo con los servos Omron, tenemos que hacer uso primero de la función “MC_Power” y después “MC_MoveRelative”. La función “MC_Power” pone el servo a ON, es decir el servo empieza a aplicar un par a velocidad cero, para quedarse bloqueado. Esta señal se mantiene por nivel, mientras que la señal de las siguientes funciones que vamos a usar se mantiene por pulso. La función “MC_MoveRelative” es la que ejecuta el movimiento, y es donde le indicamos la consigna de distancia y los valores de velocidad, aceleración, deceleración… A continuación se muestra un programa para movimiento relativo:
    6. Movimiento absoluto. Para movimiento absoluto usamos los bloques “MC_Power”, “MC_Home” y “MC_MoveAbsolute”. El bloque “MC_Home” se usa para referenciar el origen. Si queremos hacer movimiento absoluto es necesario tener una referencia, un origen. Mientras que en movimiento relativo el origen del movimiento siguiente es el punto actual. Hay que ajustar en “Configuración del Homing” cómo queremos que sea el proceso de Homing. A continuación se ve cómo se accede a dicha configuración. Para configurar el homing se toma como referencia la fase Z del encoder (1 pulso por vuelta), para tener más precisión. Veamos un ejemplo del programa con movimiento absoluto:
    7. Señales de salida de los bloques. En todos los bloques d movimiento vemos que tienen las siguientes señales de  salida:
      • Busy: Dará un 1 si le hemos lanzado la petición de movimiento. Pero no significa que todavía se mueva.
      • Active: Dará un 1 si el eje se está moviendo.
      • Error: Muestra un código de error.
      • Done: Se pone a 1 cuando ha ejecutado el movimiento. Cuando enlazamos movimientos es útil.
    8. Buffer de movimientos. En las funciones “MC_Move” podemos configurar el Buffer. Pasemos a explicar las diferentes funciones que podemos configurar en el buffer. Imaginemos que tenemos dos instrucciones de movimiento en el programa, una tras otra. Vamos a ver el comportamiento que hacen los servos Omron en función del buffer configurado:
      • ABORTING. Por defecto si no se rellena el campo “BufferMode” se queda en aborting. En el programa tendríamos lo siguiente. Lo que ocurre es que la CPU lee el movimiento 2. Como si se tratase de una bobina, se queda con el último movimiento que lee. Así que sólo se ejecuta el movimiento 2 tal y como vemos en la siguiente imagen.
      • BUFFER. Para configurarlo en este modo tenemos que rellenar el campo “BufferMode” con lo siguiente: “_eMC_BUFFER_MODE#_mcBuffered”. En  este modo lo que ocurre es que si activamos los dos movimientos con el mismo trigger, se ejecuta primero el movimiento 1, y el movimiento 2 se guarda en buffer para ejecutarlo en cuanto termine el 1. Tal y como vemos en la siguiente imagen se ejecuta un movimiento después de otro. 
      • BLENDING. Para configurarlo en este modo tenemos que rellenar el campo “BufferMode” con lo siguiente: “_eMC_BUFFER_MODE#_mcBlendingLow”. Lo que ocurre en este modo es que se mezclan las dos instrucciones tal y como vemos en la siguiente imagen. Cabe destacar que en movimiento eje a eje, el buffer es de 1 solamente. Por lo que si queremos concatenar más de dos movimientos a través de buffer, tenemos que usar las señales “Active”. Vamos a mostrar un ejemplo de cómo se haría para concatenar 3 movimientos en los servos Omron:
    9. Cambiar la velocidad del servo en orden de marcha: se puede hacer usando la instrucción “MC_combine_axis”.
    10. Enlazar dos ejes. Es decir, sincronización servo-servo. Se hace usando la instrucción “MC_GearIn”. Habrá momentos en los que interese tener “conectados” los dos servos y otras veces no. Para desacoplarlos usamos la instrucción “MC_GearOut”.
    11. Hacer una leva. Es decir, sincronización servo-objeto. Se hace usando “MC_DigitalCamSwitch”.
    12. Creación de grupos de ejes. .Cuando hacemos interpolaciones tenemos que asociar los ejes a un grupo. Una interpolación es cuando dos ejes arrancan y paran a la vez haciendo distancias diferentes. Las instrucciones que tenemos que usar son “MC_GroupEnable” y “MC_MoveLinear”. Para hacer una interpolación circular usamos “MC_MoveCircular2D”.
    13. Control de par. Usamos “MC_TorqueControl”. Le ponemos el torque y la velocidad límite. En control de par siempre es necesario poner una velocidad máxima, porque si algún momento no hay par resistente interesa que la velocidad aumente hasta cierto límite buscando el par.
    14. Observaciones. Algunos servos Omron controlan el encoder desde el driver. En otros, es el PLC el que lee el valor del encoder del servo. Como el ciclo de scan es de 1ms, a cada ms lee el valor del encoder y envía el valor de corrección al servo según la consigna. Realmente nosotros usamos una instrucción Move. Pero por debajo, de manera transparente, cuando lanzamos una instrucción MOVE, la CPU hace muchos procesos de lectura del encoder y cálculos según la consigna.

¿Te ha gustado?