OMRON R88A-MCW151 1 Motion Perfect, E/S Digitales Tareas 1. Escribe un programa que ponga intermitente a 5Hz la salida 10. 2. Escribe un programa que active la salida OP 10 si una entrada IN(0) está activa, y la desactive si la entrada IN(0) no está activada. 3. Escribe un programa que ponga intermitente la salida 10 a 5Hz WHILE la entrada 0 esté a on. 4. Escribe un programa que ponga intermitente la salida 10 a 5Hz UNTIL la entrada 0 esté a on. 5. Escribe un programa que secuencialmente ponga a ON por orden todas las salidas de la MC y encienda cada una 0.5 s. 6. Modifica el programa (5) para que la salida cambie de dirección dependiendo del estado de la entrada IN(0). 7. Escribe una rutina para extraer un número de un código BCD de las entradas 0, 1, 2 y 3. 8. Escribe una rutina que dé un código de error como un número BCD en las salidas 8,9,10 y 11. OMRON R88A-MCW151 Respuestas 1) loop: OP (10,ON) WA (100) OP (10, OFF) WA (100) ‘ 5Hz son 200msg; 100msg en ON y 100msg en OFF GOTO loop 2) loop: IF IN(0) = 1 THEN OP (10,ON) ELSE OP (10, OFF) ENDIF GOTO loop 3) loop: WHILE IN(0) = 1 OP (10,ON) WA (100) OP (10, OFF) WA (100) WEND GOTO loop 4) loop: REPEAT OP (10,ON) WA (100) OP (10, OFF) WA (100) UNTIL IN(0) = 1 WA (5000) GOTO loop 5) loop: FOR a = 8 TO 13 STEP 1 OP(a,ON) WA(500) OP(a,OFF) NEXT a GOTO loop 6) loop: OMRON Curso de Motion Control MC402 IF IN(0)= 1 THEN GOSUB up ELSE GOSUB down ENDIF GOTO loop up: FOR a = 8 TO 13 STEP 1 OP(a,ON) WA(500) OP(a,OFF) NEXT a RETURN down: FOR a = 13 TO 8 STEP -1 OP(a,ON) WA(500) OP(a,OFF) NEXT a RETURN 7) start: GOSUB get_tws PRINT value WA (2000)’ 2 segundos de pausa antes de “polling” de nuevo GOTO start get_tws: value = IN (0,5) RETURN 8) ecodigo=9 GOSUB mostrar _error STOP mostrar_error: ‘el código de error está almacenado en ecodigo ecodigo = (ecodigo AND 15) OP (ecodigo*256) ‘ RETURN 3 OMRON R88A-MCW151 2 Movimiento Lineal Básico Tareas 1. Desde la ventana de parámetros de Motion Perfect, configura una velocidad, aceleración y deceleración para el eje(0). Desde el terminal, programa un movimiento continuo de un eje en sentido forward. Para el movimiento e intentalo en la otra dirección. 2. Comienza el movimiento de un eje y cambia la velocidad / accel / decel mientras el eje está en movimiento. Intentalo desde el Terminal (Línea de Comandos), y desde la Ventana de Parámetros. 3. Desde el Terminal (Línea de Comandos) escribe una rutina DATUM (4). NOTA: Primero se necesitará asignar una entrada de DATUM (Origen). 4. Escribe una subrutina que haga lo mismo, sin usar el comando DATUM. 5. Escribe un pequeño programa que mueva el eje 0 en sentido forward 2 revoluciones y espere 1 segundo de pausa entre movimientos. 6. Escribe un programa que se mueva en sentido forward 90° cada vez que se detecte un flanco de subida en la entrada 0. 7. Una tabla rotativa debe parar en una de las 8 posiciones igualmente espaciadas, dependiendo del valor de las entradas 0-2. La tabla no debe moverse hasta que un botón de comienzo sea pulsado (entrada 5). 8. Un tornillo sin fín se mueve en sentido forward a una velocidad “lenta” hasta que alcanza un producto, en cuyo momento un microswitch (IN(2)) es activado. El tornillo sin fín debe parar inmediatamente (indicando la posición a la cual se encuentra el producto) y debe ser devuelto a gran velocidad a la posición de comienzo. OMRON R88A-MCW151 Respuestas 1. Ejemplos desde el Terminal ( Línea de Comandos ) SPEED = 100 ACCEL = 1000 DECEL = 1000 FORWARD (wait) CANCEL REVERSE (wait) CANCEL 2. FORWARD SPEED = 200 (wait) ACC (100) SPEED = 300 (wait) SPEED = 100 (wait) CANCEL 3. BASE(0) DATUM_IN = 8 DATUM(4) (wait) 4. BASE(0) IF IN(0) = 1 THEN SPEED = 10000 FORWARD ENDIF WAIT UNTIL IN(0)=0 CANCEL SPEED = 100 REVERSE WAIT UNTIL IN(0) = 1 CANCEL DEFPOS(0) 5. start: UNITS = 1 SPEED = 1000 ACCEL = 10000 DECEL = 10000 loop: MOVE (8192 *2) WAIT IDLE WA (1000) OMRON Curso de Motion Control MC402 GOTO loop 6. loop: WAIT UNTIL IN (0) = OFF WAIT UNTIL IN (0) = ON MOVE (8192/4) WAIT IDLE GOTO loop 7. ‘ asegura que la transición ha sido vista start: WAIT UNTIL IN (5) = ON WAIT UNTIL IN (5) = OFF GOSUB get_tws ‘ subrutina MOVEABS (500 * tw_value) WAIT IDLE GOTO start ‘Cn-0A = 1000 get_tws: tw_value = IN (0,2) RETURN 8. start: DEFPOS(0) IF (IN(0) = ON) THEN WAIT UNTIL IN(0) = OFF WAIT UNTIL IN(0) = ON ‘ Start SPEED = 10000 FORWARD WAIT UNTIL IN(1) = ON prod_pos = MPOS CANCEL WAIT IDLE PRINT “posición del producto: “; prod_pos SPEED = 1000 MOVEABS (0) WAIT IDLE GOTO start 3 Reductoras Electrónicas & Cams 6 OMRON Curso de Motion Control MC402 Contenido CONNECT MOVELINK CAMBOX CAM TABLE (2) Tareas 1. CONNECT eje (0) con el eje (1) con un factor menor que 1 (gear down). Comienza un movimiento continuo en sentido forward en el eje 1 y observa como el eje (0) sigue al eje (1). 2. Ejemplo de Aplicación: Una cizalla volante debe sincronizar con un movimiento continuo y debe cortar un rollo de papel cada 5m: La cizalla (eje 1) puede moverse un total de 600mm, pero en el ejemplo se usará un máximo de 500mm. La cuchilla es dirigida por un solenoide que es controlado por la salida digital 8. Esta debe ser activada a medio camino del movimiento de la cizalla. La cizalla debe sincronizarse para cortar, y volver a su posición de inicio todo dentro de no mas del 80% del ciclo repetitivo. Escribe un programa para realizar el movimiento descrito arriba. 3. Crear un perfil de seno en la tabla La tabla debe tener 37 puntos (cada 10 grados incluyendo 0 y 360) Se necesita especificar los ángulos en RADIANES, de esta forma la rutina necesitará convertir grados a radianes. Hay 2 PI radianes en 360 grados, de esta forma la función de conversión será: radianes = (2 PI / 360) x grados 2 PI / 360 nunca cambia, esto debería ser definido como un valor CONSTANTE. El Osciloscopio de Motion Perfect puede ser usado para ver la tabla, testea esta tabla creando un pequeño programa que use el comando CAMBOX. 7 OMRON Curso de Motion Control MC402 4. A veces es deseable generar un perfil de movimietno suave para la operación en máquinas de alta velocidad con el objetivo que la parte mecánica sufra lo menos posible. Un óptimo perfil para ello es un perfil de velocidad de sen ó sen2 . Crea un programa que genere este perfil para cualquier número de puntos en cualquier escala. Chequea el movimiento con CAMBOX. 8 OMRON R88A-MCW151 Respuestas 1) CONNECT – EJEMPLO DESDE LA LÍNEA DE COMANDOS BASE (0) CONNECT (0.3, 1) 2) MOVELINK Para asegurar que la velocidad y posición de la cizalla y el papel coinciden durante el proceso de corte, los parámetros del comando MOVELINK deben ser correctos: Normalmente es más fácil considerar la aceleración, velocidad constante y deceleración como tres fases diferentes y combinarlas como se quiera. loop: BASE (0) MOVELINK (0, 4, 0, 0, 1) 'espera distancia MOVELINK (0.1, 0.2, 0.2, 0, 1) 'acelera MOVELINK (0.3, 0.3, 0, 0, 1) 'coincidencia de velocidad MOVELINK (0.1, 0.2, 0, 0.2, 1) 'decelera MOVELINK (-0.5, 5, 2.5, 2.5, 1) 'movimiento de vuelta GOTO loop El comando MOVELINK permite combinar las tres fases ( aceleración, coincidencia de velocidad y deceleración) sumando los parámetros 1..4 de cada fase, por lo tanto el ejemplo de arriba podría resumirse como: MOVELINK (0.5, 0.7, 0.2, 0.2, 1) 3) Ejemplo de perfil Desplazamiento Velocidad OMRON Curso de Motion Control MC402 start: UNITS = 50 SPEED = 100 GOSUB llenartabla BASE (0) loop: CAMBOX (0, 36, 1, 100, 1) GOTO loop llenartabla: grad = 2*PI/360 FOR a = 0 TO 360 TABLE (a, SIN (a*10*grad)*2000) NEXT a RETURN 4) En este ejemplo se trabaja directamente en radianes start: GOSUB llenartabla BASE (0) SPEED=200 FORWARD BASE (0) loop: CAMBOX (0, 36, 1, 100, 1) WAIT IDLE WA (1000) GOTO loop llenartabla: num_p=37 scala = 2000 FOR p=0 TO num_p TABLE (p, ((-SIN(PI*2*p/num_p) / (PI*2))+p/num_p)*scala) NEXT p RETURN 10