jueves, 20 de junio de 2013

Entrenador para servomotor con un accionamiento Unidrive.

El compañero Victor Hernández ha terminado el entrenador (que comenzó Jesús Gómez hace algún tiempo) para el control de un servomotor a través de un Driver Unidrive de Control Technics. Aquí se puede ver un vídeo en funcionamiento.
En nuestro instituto se "respira" automatización. ¡¡¡Genial!!!

miércoles, 19 de junio de 2013

Nuevas maquetas programadas por los alumnos.

Nueva versión, más pequeña pero con más prestaciones, de nuestra estación de taladrado y avellanado, construida con piezas Fischertechnik.
El control se realiza mediante un S7-300 de Siemens, programado en KOP a partir de un GRAFCET, y un sencillo panel de operación realizado mediante WinCC Flexlible.
También hemos mejorado la versión de nuestra maqueta del ascensor con puerta. En este caso está controlado mediante un S7-300 en lenguaje KOP a partir de un GRAFCET.

lunes, 17 de junio de 2013

Impresora-Fresadora 3D (Probando, probando)

¡¡¡Ya se mueve!!!
Después de numerosos problemas mecánicos y de ajuste, el sistema de control de ejes que está construyendo nuestro compañero Miguel Ángel Casanova, ya está funcionando. 
A continuación se muestra un vídeo en el que se muestra el movimiento de los motores de los ejes mediante una tarjeta Arduino.
También colgamos unas cuantas fotos del proceso de montaje. El siguiente paso consistirá en instalar un cabezal de fresado basado en un minitaladro tipo Dremel.
Primera prueba de movimiento.
 
Fotografías del proceso de construcción.




martes, 11 de junio de 2013

Comparaciones en KOP de tiempos S5TIME

En los autómatas S7-200 se pueden realizar, de forma muy sencilla y efectiva, operaciones de comparación para tratar los tiempos de los temporizadores. Dichos tiempos pueden ser comparados con variables o constantes y para ello basta con utilizar operaciones de comparación para números enteros y poner en sus valores de entrada (IN1-IN2), la referencia nemotecnia del temporizador (T1, T37, etc) y un número (o variable) con el tiempo a comparar, que debe estar escrito en función de la base de tiempos de temporizador. 
Así, en el siguiente ejemplo se muestra el temporizador T37, cuya base de tiempos es de 100 ms, el cual se compara para activar dos salidas (Q0.0 y Q0.1) a 100 x 100ms (10 segundos) y a 150 x 100ms (15 segundos) respectivamente.
Cuando uno migra al Step 7 de los S7-300 e intenta hacer algo similar a este tipo de comparaciones en lenguaje KOP, se da cuenta dicha programación no es tan inmediata como en sus "hermanos" menores los S7-20. No obstante, la comparación de tiempos en este lenguaje es posible y es lo que se explica a continuación.

Para poder realizar comparaciones de tiempos S5TIME en lenguaje KOP es necesario conocer algunos detalles técnicos sobre el formato que utilizan los temporizadores.

Diferencias en la forma de temporizar.
En los S7-200 la temporización se produce de "abajo hacia arriba". Es decir, cuando se activa el temporizador comienza a temporizar desde 0 hasta un tiempo máximo. Sin embargo, en los S7-300 la temporización se efectúa exactamente al revés de "arriba hacia abajo". Es decir, cuando el temporizador se activa, este descuenta desde el tiempo ajustado en el parámetro de preselección, bajando hasta 0. Si bien este detalle no es importante cuando se utilizan las acciones en formato de bit para activar y desactivar contactos asociados al temporizador, si que es de suma importancia para poder realizar la comparación tiempos.

Base de tiempos del formato S5TIME
En los S7-200, la base de tiempos se elige en función del tipo de temporizador (TON, TOF ó TONR) y el número que lo identifica. Es decir, no es lo mismo utilizar un T1 o un T37, ya que cada uno de ellos es de un tipo diferente (TONR y TON respectivamente) y funcionan con distintas bases de tiempo (10 y 100 ms, en este ejemplo). En este caso es absolutamente necesario consultar la hoja de características del PLC, para conocer los diferentes tipos de temporizadores y las bases de tiempo asociadas en función de el número del temporizador. En el formato S5TIME, la base de tiempos se selecciona automáticamente en función del tiempo ajustado en el parámetro TW del temporizador. Dicha base de tiempos se elige por rango según se muestra en la siguiente tabla:


Rango elegido Base de tiempos seleccionada
10ms 9s 9ms 10ms
10s 99s 999ms   (1M 39S 900MS) 100ms
100s  (1M 40S) 999s 999ms  (16M 39s) 1s
1000s (16M 40s) 9990s  (2h 46min 30s) 10s
A continuación se muestran varios ejemplos:
Valor de preselecciónTW Base de tiempos seleccionada
S5T#5ms 10ms
S5T#8s 10ms
S5T#11s 100ms
S5T#85s 100ms
S5T#200s 1s

Comparación de tiempos S5TIME.
Conociendo estos detalles, ya es posible efectuar comparaciones en KOP con los tiempos de los temporizadores S5TIME del STEP 7. Lo primero que se debe hacer es configurar el tiempo de preselección (1) el cual se escribe en formato S5TIME en la entrada PW del temporizador. Este dato sirve para seleccionar automáticamente la base de tiempos con la que se va a trabajar, según lo indicado en la tabla anterior, y además poner el "tope" con el que el temporizador va a trabajar. Por otro lado, es necesario asignar una marca del tamaño de una palabra en la salida DUAL del temporizador (2), ya que es la que se va a utilizar para realizar las comparaciones. A todos los efectos, dicha marca es el dato del tiempo del temporizador y debe ser univoca en el programa.
Ejemplo 1:
En este caso la base de tiempos seleccionada es de 100 ms ya que el tiempo de preselección del temporizador se ha ajustado a 10s. Así, cuando el temporizador se acciona mediante la entrada E124.1, la salida A124.0 se activa de forma inmediata y se mantienen así siempre que el tiempo del temporizador sea mayor o igual a 6 segundos (60 x 100ms). Dicho de otra forma, la salida se desactiva cuando han transcurrido 4 segundos desde que se activó el temporizador.
Es importante recordar que los temporizadores S5T temporizan de arriba a abajo. Es decir "descuentan" el tiempo hasta llegar a cero.

Ejemplo 2:
En este ejemplo la base de tiempos seleccionada es también de 100ms ya que el tiempo de preselección del temporizador es de 30S. En este caso se ha utilizado una comparación "menor o igual", de forma que la salida A124.2 se activa a los 10 segundos de poner en marcha el temporizador. Es decir, cuando el tiempo del temporizador es menor o igual a 20 segundos (200 x 100 ms).

Ejemplo 3:
En el siguiente ejemplo la base de tiempos es de 1s, ya que el tiempo de preselección que se ha asignado al temporizador es de 140S (2M20S). En esta ocasión se ha utilizado también una comparación "menor o igual", por lo que la salida A124.2 se activa cuando el temporizador baja de los 120 segundos (120 x 1s), o dicho de otra forma, cando han transcurrido 20 segundos de la activación del temporizador.
Resumiendo:
Como se deduce de los ejemplos anteriores, cuando se realizan comparaciones de tiempos de los temporizadores S7T es necesario conocer el tiempo de preselección (o tope) ajustado en el parámetro TW del temporizador, ya que con él se asigna de forma automática al base de tiempos utilizada y, además, es el tiempo máximo desde el que comienza la temporización. Así, desde que se activa el temporizador hasta que se produce la acción asignada al comparador, pasa un tiempo que resulta ser la diferencia del tiempo preajustado en TW y el asignado mediante la constante usada en el comparador. Así en los anteriores ejemplos el tiempo de la temporización es:
 
Tiempo de preselección TW Dato a comaprar Temporización
(Momento en el que se ejecuta la acción)
Ejemplo 1 S5T#10S 60 4 segundos
(40 X 100ms)
Ejemplo 2 S5T#30S 200 10 segundos
(100 x 100ms)
Ejemplo 3 S5T#140S 120 20 segundos
(20 x 1s)

martes, 4 de junio de 2013

Tutorial SCL (II)

En el anterior tutorial de SCL se mostraban algunos ejemplos de código SCL utilizando el condicional IF-THEN. Si bien su uso es adecuado para controlar el valor de variables de buena parte de las las aplicaciones de programación que se deben cumplir mediante el establecimiento de condiciones lógicas, no es la única forma de hacerlo. A continuación se muestra como realizar operaciones similares en la programación de los S7-1200 sin recurrir a uso de IF-THEN.
Los ejemplos muestran el código SCL y el programa en KOP del circuito "eléctrico" equivalente.
Ejemplo 1: Control de una salida a través  una entrada.
Código SCL: 
El valor de la salida es igual al valor lógico de la entrada. 
Equivalente en KOP:


Ejemplo 2: Asociación serie (AND) de dos entradas
Código SCL: 
La salida solamente se activa si se cumple la condición AND en las entradas.
 
 Equivalente en KOP:


Ejemplo 3: Asociación paralelo (OR) de dos entradas
Código SCL: 
La salida se activa mediante dos entradas conectadas en paralelo (OR)

 Equivalente en KOP:


Ejemplo 4: Uso de negaciones.
Código SCL: 
El valor de la salida es el contrario al de la entrada.

 Equivalente en KOP:

Ejemplo 5: Realimentación (Marcha-Paro).
Código SCL: 
La Entrada4 funciona como un pulsador de marcha. La Entrada7 como un pulsador de paro. Así cuando se acciona la Entrada4 la salida se pone a 1 y se mantiene mediante el contacto de realimentación conectado en paralelo con dicha estrada. Si estando en esta situación, se acciona la Entrada7, el valor de la salida es 0 y por tanto deja de realimentarse.
 Equivalente en KOP:

La tabla de variables utilizada en los ejemplos es la siguiente:
 El programa en en SCL ha sido escrito en un FC, el cual es llamado de forma incondicional desde el OB1 o bloque principal.

sábado, 1 de junio de 2013

Vídeo: Robot de soldadura con S7-300

Hemos actualizado la maqueta de nuestro robot de soldadura. Con ella los alumnos practican la programación del GRAFCET, el uso de contadores y operaciones de comparación.
Este es un vídeo de la maqueta programada por uno de nuestros alumnos.

Vídeo: Empaquetadora de productos

Estrenamos maqueta para una actividad práctica que antes solamente podíamos simular con las entradas y salidas del PLC. Aquí va un vídeo de nuestra "Empaquetadora de productos" programada por uno de nuestros alumnos.
Con esta maqueta se pretende que los alumnos practiquen la programación del GRAFCET con aprovechamiento de etapas por retorno y el uso de los contadores en la secuencia.