Fernando Vaquerizo C200HW-MC402: Ejemplo de Aplicación Ejemplo de Aplicación: Cizalla Volante / Cortadora de tubos Requerimientos Básicos Un tubo es conducido a través de un mecanismo de corte que es controlado por medio de un tornillo sin fin. El mecanismo de corte debe sincronizarse con el tubo y disparar una salida que active una cuchilla en un determinado punto. En el eje que transporta el tubo, se ha fijado un encoder. El movimiento total disponible del tornillo sin fin es de 500mm, por lo tanto la cortadora debe acelerar hasta la velocidad de linea, sincronizarse para el corte, activar la cuchilla, y decelerar otra vez. Todo ello dentro de esta distancia. La cuchilla necesita ser disparada a una determinada posición. Para este ejemplo, se quieren cortar tubos de 5 metros de longitud. Las unidades son en metros. 1. Sincronización de la cortadora con la velocidad de linea (MOVELINK) Tenemos un movimiento máximo de 500mm en el eje de la cortadora. Programaremos 100mm para acelerar, 300mm para la sincronización y los 100mm restantes para decelerar. Distancia Movida en el Eje Esclavo (Cortadora) Accel Dist Master = 2 x Dist Slave Sincronización Dist Master = Dist Slave Decel Dist Master = 2 x Dist Slave Distancia Movida en el Eje Maestro Como se puede ver en el diagrama, la distancia de enlace para las fases de aceleración y deceleración necesitan ser 2 veces la distancia movida por la cortadora mientras que en la fase de sincronismo la distancia debe ser la misma (Ver Nota 1). Cizalla volante cortadora usando MOVELINK / PSWITCH -1- Fernando Vaquerizo C200HW-MC402: Ejemplo de Aplicación Aceleración: la cortadora mueve 100mm mientras el maestro mueve 200mm Sincronización: la cortadora mueve 300mm mientras el maestro mueve 300mm Deceleración: la cortadora mueve 100mm mientras el maestro mueve 200mm Los parámetros resultantes del comando MOVELINK se pueden determinar sumando las tres partes (aceleración, sincronización y deceleración). Suponiendo que las unidades están en metros, el comando será: MOVELINK(0.5, 0.7, 0.2, 0.2, eje maestro) 2. Control del ciclo (REP_DIST, REP_OPTION) Se tiene que sincronizar el corte de tal forma que se corte la longitud correcta según se requiera. Si configuramos el parámetro REP_DIST (repetir distancia) en el eje maestro con el valor de la longitud del corte que se requiere, entonces el encoder contará hasta este valor. REP_DIST= 5 REP_OPTION=1 ‘asegura que el encoder cuente hasta 5 ‘cuenta de 05, 05 repetidamente Además podemos usar el comando MOVELINK programandolo en “start-mode”, de esta forma el movimiento comienza en una posición absoluta especificada. MOVELINK(0.5, 0.7, 0.2, 0.2, eje maestro, 2, 4) los dos parámetros extras son: Start-mode= 2 Posición= 4 el movimiento comienza a una posición absoluta determinada… que es 4 metros. La cuchilla necesita hacer un movimiento para volver a su posición inicial. Este movimiento podría ser un MOVELINK, pero también podría ser un simple movimiento absoluto a la posición 0. MOVELINK(-0.5, 1, 0.25, 0.25, eje maestro) ‘ retorna mientras el maestro mueve 1m Ó MOVEABS(0) 3. Disparo de la cuchilla a una determinada posición absoluta Podemos esperar a que la cuchilla alcance una determinada posición testeando la posición medida (MPOS) del encoder (eje maestro), esto sería una simple parte del programa como: WAIT UNTIL MPOS >= 0.25 OP(salida_cuchilla, ON) WAIT UNTIL MPOS >= 0.35 OP(salida_cuchilla, OFF) Estas líneas de código son correctas en muchos casos, pero hay otra manera más elegante de hacerlo con el comando PSWITCH. Cizalla volante cortadora usando MOVELINK / PSWITCH -2- Fernando Vaquerizo C200HW-MC402: Ejemplo de Aplicación PSWITCH La unidad MC402 tiene hasta 16 “software switches position”, los cuales permiten que una salida sea automaticamente cambiada dependiendo de un rango de posición determinado. Una vez que el PSWITCH es habilitado, el microprocesador lo estará continuamente chequeando y cuando se encuentre en el rango de posición (MPOS) la salida será activada. En esta aplicación tenemos que tener cuidado al usar el PSWITCH. Si lo configuramos para que trabaje en el eje de la cuchilla entonces necesita ser activado y desactivado continuamente ya que sino la cuchilla estaría siendo disparada en ambos sentidos (en el movimiento forward y en la vuelta al origen). En este caso, una mejor solución puede ser configurar el PSWITCH en el eje maestro, ya que este se mueve en una sola dirección. Ejemplo 1: PSWITCH en el eje de la cuchilla constantes: eje_maestro=0 eje_cuchilla=1 configuración: BASE(eje_maestro) REP_DIST=5 REP_OPTION=1 BASE(eje_cuchilla) loop: PSWITCH(1, ON, eje_cuchilla, salida_cuchilla, ON, 0.25, 0.35) MOVELINK (0.5, 0.7, 0.2, 0.2, eje_maestro, 2, 4) WAIT IDLE PSWITCH ( 1, OFF) MOVELINK (0.5, 1, 0.25, 0.25, eje_maestro) goto loop Ejemplo 2: PSWITCH en el eje maestro constantes: eje_maestro=0 eje_cuchilla=1 configuración: BASE(eje_maestro) REP_DIST=5 REP_OPTION=1 PSWITCH(1, ON, eje_maestro, salida_cuchilla, ON, 4.3, 4.4) BASE(eje_cuchilla) loop: MOVELINK (0.5, 0.7, 0.2, 0.2, eje_maestro, 2, 4) MOVELINK (0.5, 1, 0.25, 0.25, eje_maestro) goto loop Cizalla volante cortadora usando MOVELINK / PSWITCH -3- Fernando Vaquerizo C200HW-MC402: Ejemplo de Aplicación Nota 1.- La distancia que recorre el maestro debe ser el doble que la del esclavo para asegurarnos que al final de la fase de aceleración, ambas velocidades son idénticas. Supongamos que el maestro va a una velocidad de 2.5m/s. Supongamos un tiempo de aceleración de 4 sg. El espacio recorrido en ese tiempo es: s = v x t = 2.5 x 4 = 10 m El esclavo debe recorrer 10/2 m = 5 m para asegurar que van a la misma velocidad, ya que: v = a x t => a = v / t = 2.5 / 4 = 0.625 m/sg² S = ½ a x t² = ½ 0.625 x (4) ² = 5 m Visto de forma gráfica: v t Donde: velocidad del maestro velocidad del esclavo El área que cubre el maestro (verde) es el doble que la que cubre el esclavo (rojo), por lo tanto el maestro recorre el doble de distancia que el esclavo para un tiempo determinado. Cizalla volante cortadora usando MOVELINK / PSWITCH -4-