Full text
Equation Chapter 1 Section 1 Trabajo Fin de Grado Grado en Ingeniería Electrónica, Robótica y Mecatrónica. Automatización de un parking mediante autómatas programables y SCADA Autor: Paloma Carrasco Fernández Tutor: María del Mar Castilla Nieto Dpto. de Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2018
iii Trabajo Fin de Grado Grado en Ingeniería Electrónica, Robótica y Mecatrónica Automatización de un parking mediante autómatas programables y SCADA Autor: Paloma Carrasco Fernández Tutor: María del Mar Castilla Nieto Profesor Ayudante Doctor Dpto. de Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2018
v Trabajo Fin de Grado: Automatización de un parking mediante autómatas programables y SCADA Autor: Paloma Carrasco Fernández Tutor: María del Mar Castilla Nieto El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2018 El Secretario del Tribunal
vii A mi familia y amigos
ix Agradecimientos En primer lugar, me gustaría agradecer a mi familia por haberme dado la oportunidad de estudiar esta carrera y formarme tanto profesionalmente como personalmente. En segundo lugar, a los profesores, algunos por inculcarme la curiosidad de aprender y conseguir cada vez más cosas sólo por la satisfacción que produce y a otros por crearme la adicción al café tan necesaria para poder realizar los trabajos a tiempo y aprenderme el temario de los exámenes la noche antes. Y, por último, a esas personas que han aparecido durante estos años y se han buscado un hueco para quedarse. Paloma Carrasco Fernández Sevilla, 2018
5.4.2. HMI_administrador 56 6 Mejoras implementadas 57 6.1. PLC_usuario 57 6.2. PLC_administrador 57 6.3. HMI_usuario 58 6.4. HMI_administrador 60 7 Conclusiones y futuros trabajos 61 Referencias 63 Anexos 65
xvii ÍNDICE DE TABLAS Tabla 3.1 Instrucciones básicas - General 17 Tabla 3.2 Instrucciones básicas - Operaciones lógicas con bits 17 Tabla 3.3 Instrucciones básicas - Contadores. 17 Tabla 3.4 Instrucciones básicas - Comparación. 18 Tabla 3.5 Instrucciones básicas - Temporizadores. 18 Tabla 3.6 Instrucciones básicas - Funciones matemáticas. 18 Tabla 3.7 Instrucciones avanzadas - String + Char. 18 Tabla 3.8 Comunicación – Open user communication 19 Tabla 3.9 Herramientas empleadas y eventos disponibles. 22 Tabla 4.1 Direcciones de los dispositivos del trabajo. 25 Tabla 4.2 Variables Segmento-1 PLC_usuario. 27 Tabla 4.3 Variables Segmento-2 PLC_usuario. 29 Tabla 4.4 Variables Segmento-2 PLC_usuario 33 Tabla 4.5 Tabla de codificación del envío. 34 Tabla 4.6 Variables Segmento-4 PLC_usuario. 35 Tabla 4.7 Variables Segmento-5 PLC_usuario. 38 Tabla 4.8 Variables Segmento-1 PLC_administrador. 39 Tabla 4.9 Variables Segmento-2 PLC_administrador. 41 Tabla 4.10 Variables Segmento-3 PLC_administrador. 41 Tabla 4.11 Variables Segmento-4 PLC_administrador. 42 Tabla 4.12 Variables Segmento-5 PLC_administrador. 43 Tabla 5.1 Colores según el estado. 49
xix ÍNDICE DE FIGURAS Figura 1.1. Situación común en aparcamientos convencionales. 1 Figura 1.2 Tipo de parking con grúas. 2 Figura 1.3 Prototipo de parking con AGVs. 2 Figura 1.4 Tipo de parking simulando una noria. 3 Figura 1.5 Parking alemán. 3 Figura 1.6 Parking chino. 4 Figura 1.7 Boceto tipo de parking elegido. 4 Figura 2.1 Vista delantera SIMATIC HMI KTP700 Basic PN 7 Figura 2.2 Vista trasera SIMATIC HMI KTP700 Basic PN 8 Figura 2.3 PLC SIMATIC S7-1200 CPU 1214C AC/DC/Rly 8 Figura 2.4 Visualización real de la configuración del proyecto. 9 Figura 2.5 Conexionado total del proyecto. 9 Figura 3.1 Imagen inicial Tia Portal. 11 Figura 3.2 Vista del portal de Tia Portal. 12 Figura 3.3 Vista del proyecto de Tia Portal. 12 Figura 3.4 Agregar dispositivo. 13 Figura 3.5 Agregar PLC. 13 Figura 3.6 Vista previa del PLC. 14 Figura 3.7 Conexión de la SIMATIC HMI con el PLC. 14 Figura 3.8 Vista previa de la HMI. 15 Figura 3.9 Dispositivos y redes. 15 Figura 3.10 Iconos de compilar, transmitir e iniciar la simulación. 16 Figura 3.11 Icono de observación. 16 Figura 3.12 Vista del programa principal PLC (main). 16 Figura 3.13 TSEND_C. 19 Figura 3.14 TSEND_C Configuración. 19 Figura 3.15 Conexión entre PLCs. 19 Figura 3.16 Ejemplo parámetros de conexión TSEND_C. 20 Figura 3.17 Ejemplo parámetros del bloque TSEND_C. 20 Figura 3.18 Ejemplo parámetros del bloque TSEND_C. 20 Figura 3.19 Ejemplo parámetros de conexión TRCV_C. 21 Figura 3.20 Ejemplo parámetros del bloque TRCV_C. 21 Figura 3.21 Plantilla HMI. 22 Figura 3.22 Conexión de variables. 23 Figura 4.1 Conexión del Proyecto. 25
Figura 4.2 Programación Segmento-1 PLC_usuario. 26 Figura 4.3 Programación Segmento-2 PLC_usuario. 27 Figura 4.4 Programación Segmento-2 “Insertar matrícula” PLC_usuario. 28 Figura 4.5 Bloque de datos relacionados con la matrícula. 30 Figura 4.6 Aparcamientos por planta 30 Figura 4.7 Bloque de datos de la base de datos del parking. 31 Figura 4.8 Programación Segmento-3 PLC_usuario “Operaciones_base_datos”. 32 Figura 4.9 Programación Segmento-3 PLC_usuario. 32 Figura 4.10 Programación Segmento-4 PLC_usuario. 35 Figura 4.11 TSEND_C Parámetros de la conexión. 36 Figura 4.12 TSEND_C Parámetros del bloque. 36 Figura 4.13 Programación Segmento-5 PLC_usuario. 36 Figura 4.14 TRCV_C Parámetros de la conexión. 37 Figura 4.15 TRCV_C Parámetros del bloque. 37 Figura 4.16 Programación Segmento-1 PLC_administrador. 38 Figura 4.17 TRCV_C Parámetros de la conexión, administrador. 39 Figura 4.18 TRCV_C Parámetros del bloque, administrador. 39 Figura 4.19 Programación Segmento-2 PLC_administrador. 40 Figura 4.20 Programación Segmento-3 PLC_administrador. 41 Figura 4.21 Programación Segmento-4 PLC_administrador. 42 Figura 4.22 Programación Segmento-5 PLC_administrador 42 Figura 4.23 TSEND_C Parámetros de la conexión, administrador. 43 Figura 4.24 TSEND_C Parámetros del bloque, administrador. 43 Figura 5.1 Pirámide de Automatización. 45 Figura 5.2 Esquema imágenes HMI_usuario. 50 Figura 5.3 Plantilla HMI_usuario. 50 Figura 5.4 0_Imagen raíz. 51 Figura 5.5 Capa 0, campo entrada-salida de Insertar matrícula. 51 Figura 5.6 Capa 0, Insertar matrícula. 52 Figura 5.7 Capa 0 y 1, Insertar matrícula. 52 Figura 5.8 Comprobar matrícula. 53 Figura 5.9 Capa 0, 5_Aparcando. 54 Figura 5.10 Capa 1, 5_Aparcando. 54 Figura 5.11 Capa 2, 5_Aparcando. 54 Figura 5.12 Capa 0, 5_Sacando. 55 Figura 5.13 Capa 1, 5_Sacando. 55 Figura 5.14 Capa 2, 5_Sacando. 56 Figura 5.15 Única imagen HMI_administrador. 56 Figura 6.1 Modificación Segmento5 PLC_usuario. 57
xxi Figura 6.2 Modificación Segmento5 PLC_administrador. 58 Figura 6.3 Nueva capa para errores, HMI_usuario. 59 Figura 6.4 Nueva capa para fallo, HMI_usuario. 59 Figura 6.5 Nueva imagen HMI_administrador 60
xxiii NOTACIÓN AC Corriente alterna AGV Vehículos de guiado automático DC Corriente continua HMI Interfaz humano-máquina PLC Controlador lógico programable Rly Relé SCADA Sistemas de supervisión, control y adquisición de datos TFT Transistor de películas finas G Giga- (prefijo=109) m Mili-(prefijo= 10-3) V Voltios (Medida de tensión eléctrica)
1 INTRODUCCIÓN n este capítulo se trata de explicar porqué es importante este trabajo así como sus objetivos. También se podrá encontrar una estructura general del mismo. 1.1. Motivación Encontrar aparcamiento, en numerosas ocasiones, se convierte en un ir y venir de vueltas hasta conseguir un hueco donde realizar numerosas maniobras para conseguir meter el coche. Figura 1.1. Situación común en aparcamientos convencionales. A medida que ha transcurrido el tiempo y con el fin de solucionar este problema se ha optado por la creación de parkings automatizados, donde lo único que tiene que hacer el usuario es introducir el coche e irse, encargándose el propio parking de aparcarlo o de sacarlo según se lo indique el usuario. Sin ir más lejos en Madrid, Barcelona y Vigo ya se encuentran parkings de este tipo, aunque en varias ocasiones se han encontrado problemas. Por ejemplo, en 2015, un parking automatizado localizado en Madrid obtuvo más de 90 averías en el mecanismo que baja y sube los coches. Incluso quedó paralizado dos días impidiendo la salida de los coches de su interior. E We are just an advanced breed of monkeys on a minor planet of a very average star. But we can understand the Universe. That makes us something very special - Stephen Hawking -
Hardware 8 2.1.2 PLC S7-1200 Los PLCs son los que realizan todo el proceso. Por un lado, el PLC empleado para comunicarse con la pantalla que contiene la interfaz del usuario, será el encargado de recibir la matrícula e interactuar con ella en una base de datos y después mandar la información necesaria al otro PLC, que será el que avise de los errores al SCADA y realice toda la maniobra aparcar o sacar el coche. En el apartado 2.3 se explica su funcionamiento de forma más detallada. El modelo de estos PLC es el CPU 1214C AC/DC/Rly, con referencia 6ES7214-1BG40-0XB0, véase la figura 2.3. Además, los PLCs utilizados llevan una Signal board AQ 1 x 12 bits con referencia 6ES7 232-4HA30- 0XB0, aunque no se ha usado en el proyecto, así como una botonera como la que se puede observar en la figura 2.4 la cual sí que se ha usado para hacer la simulación de conexión de los sensores necesarios para aparcar o sacar el coche. Éstos, a diferencia de las pantallas que se alimentan con la fuente de alimentación, se conectan directamente a la red mediante un enchufe. Para mayor información ir al Anexo 2 Datasheet S7-1200 CPU 1214C AC-DC-Rly. Figura 2.2 Vista trasera SIMATIC HMI KTP700 Basic PN Figura 2.3 PLC SIMATIC S7-1200 CPU 1214C AC/DC/Rly
9 Automatización de un parking mediante autómatas programables y SCADA 2.2. Conexionado. Aunque en la figura 2.4 se tiene una visualización de los elementos del proyecto así como su conexionado, en la figura 2.5 se muestra un esquema de la arquitectura completa creada para este TFG. Más concretamente, se ha incluido la fuente de alimentación, junto con un mayor detalle en lo referente al cableado. Por un lado, en negro se tienen las conexiones a la red eléctrica de los enchufes de los PLCs. También en negro, aunque mas fino, se tiene la tierra que se conecta desde la fuente de alimentación de 24V para alimentar las pantallas HMI y el switch. Así como el rojo, alimentación que sale desde la fuente. También se puede observar la conexión a red eléctrica de la fuente de alimentación. Por otro lado, en verde, se encuentran los cables PROFINET que permiten la comunicación vía Ethernet Industrial. A partir de ahora para referirse al PLC que contiene el código del usuario y a la HMI que el cliente ve, se le denotará por PLC_usuario y HMI_usuario, respectivamente. De igual forma, para el operario, PLC_administrador y HMI_administrador. Por ultimo, en gris, se encuentra el cable que conecta el switch al router permitiendo la comunicación entre el ordenador y los distintos elementos, dando así la opción de insertar los programas en los componentes. Figura 2.4 Visualización real de la configuración del proyecto. Figura 2.5 Conexionado total del proyecto.
Hardware 10 2.3. Función de cada dispositivo en el proyecto. Se va a usar este apartado para indicar de forma generalizada lo que van a hacer cada uno de los 4 componentes principales del proyecto, es decir, PLC_usuario, PLC_administrador, HMI_usuario y HMI_administrador. PLC_usuario. Éste dispositivo es el encargado de, primeramente, almacenar la opción elegida por el usuario. Esto quiere decir que en sus salidas va a estar indicado si el cliente desea aparcar o sacar el vehículo. Además, también tiene que almacenar la matrícula indicada y realizar ciertas operaciones en la base de datos que tiene guardada en su interior. Esto sirve para que cuando se desee aparcar el coche, siempre sea en la primera plaza que este vacía empezando por la más próxima y así conseguir que se tarde lo menos posible. Y que cuando se desee sacar el coche, se busque la matrícula correspondiente y así se encuentre la plaza en la que se encuentra. Se tiene que encargar de mandar la plaza al PLC_administrador realizando una codificación para saber si lo que se quiere es sacar o aparcar el coche. Y debe recibir por parte del PLC_administrador la variable que indique si ya se ha realizado la opción elegida por el usuario. PLC_administrador. En primer lugar debe recibir la codificación enviada por el PLC_usuario, descodificarla para así saber la opción que debe realizar, y realizar el proceso deseado. En el caso de encontrar algún tipo de error, deberá asignarlo a las variables correspondientes, para que se quede constancia de ellos. Por ultimo, cuando el proceso esté finalizado, enviará al PLC_usuario las variables correspondientes para indicar al cliente que ya puede abandonar el parking porque todo ha ido correctamente. HMI_usuario. Esta pantalla contiene la interfaz para que el usuario elija la opción que desee e introduzca su matrícula. La comunicación con el PLC_usuario, hace posible que se almacene en la base de datos correctamente. Además cuando el PLC_usuario reciba que el proceso ha finalizado, ésta debe indicárselo al cliente mediante HMI_usuario. HMI_administrador. Es la que realiza el SCADA que permite al operario interactuar al aparecer los errores. Indica mediante leds los procesos que se están realizando y la aparición de errores. Además permite parar el proceso y llevarlo a la posición inicial hasta solucionar los errores que han aparecido. Se puede encontrar una mayor descripción de los programas que se han implementado en los PLCs en el capítulo 4 y de las pantallas HMI en el capítulo 5.
3 SOFTWARE iemens vende el software Tia Portal como la clave para liberar todo el potencial de Totally Integrated Automation. El software optimiza todos sus procedimientos de procesamiento, operación de máquinas y planificación. Asegurando su facilidad de uso gracias a la interfaz de usuario. Por ello, en este capítulo, se va a hacer una descripción de la interfaz, así como el lenguaje usado para el proyecto, funciones propias del programa y cómo realizar la conexión de los elementos. Para que este capítulo sea lo más útil posible, se ha creado un nuevo proyecto (ProyectoPrueba) para poder adjuntar las imágenes paso a paso. El proyecto completo se explicará en los capítulos 4 y 5. 3.1. Interfaz gráfica Cuando se abre por primera vez el programa Tia Portal, se encuentra una pantalla tal y como se muestra en la figura 3.1. Esta nos da opción a crear un nuevo proyecto, abrir uno ya creado anteriormente o migrar un proyecto. Figura 3.1 Imagen inicial Tia Portal. La opción Welcome Tour redirige a la página de Siemens donde hay información y vídeos sobre el uso del programa. También en esta primera pantalla se puede ver la versión instalada del programa, mostrar la ayuda al usuario y cambiar el idioma de la interfaz si se desea. Tanto eligiendo la opción de abrir proyecto existente como crear un proyecto, la pantalla que sale es la figura 3.2. Aunque todas las opciones que dan también son accesibles dando a la vista previa del proyecto, la cual se corresponde con la figura 3.3. S
Software 12 Figura 3.2 Vista del portal de Tia Portal. Figura 3.3 Vista del proyecto de Tia Portal. Como se puede observar, una vez en la vista del proyecto, es posible añadir dispositivos y crear redes entre ellos. Para ilustrar el procedimiento seguido para la configuración utilizada en este trabajo fin de grado, se va a realizar una prueba para ver como se agregaría tanto un PLC como una pantalla HMI. Primero se va a agregar el PLC, ya que como se verá mas adelante, a la hora de añadir una pantalla SIMATIC HMI, ésta se enlaza desde el inicio al PLC estableciendo así una comunicación entre ellos. Por lo tanto, comenzando con el PLC se tiene que clicar en agregar dispositivo. Aparecerá entonces una pantalla como la de la figura 3.4. Para añadir el PLC se tienen dos opciones, se puede añadir directamente con el modelo exacto o se puede no especificarlo y usar la determinación del propio programa para asignar directamente el
13 Automatización de un parking mediante autómatas programables y SCADA dispositivo que se encuentra realmente conectado. En el caso de este proyecto, resulta más interesante agregar el dispositivo sin especificar el modelo ya que la hacer la determinación incluye directamente la Signal Board que contienen los PLCs del laboratorio. Ahorrando el paso de tener que determinarlo de forma manual. Figura 3.4 Agregar dispositivo. Figura 3.5 Agregar PLC. Una vez agregado, la vista es la observada en la figura 3.6. En dicha vista se puede observar la configuración del dispositivo para administrarle la dirección correcta, los bloques de programa, variables, tipos de datos …
Software 14 Figura 3.6 Vista previa del PLC. De igual forma, se agrega la pantalla SIMATIC HMI y realizando los pasos indicados se puede conectar con el PLC tal y como se muestra en la figura 3.7. Tras finalizar todos los pasos, se tiene la vista observada en la figura 3.8, pudiendo modificar su configuración, imágenes, variables, etc. Figura 3.7 Conexión de la SIMATIC HMI con el PLC.
15 Automatización de un parking mediante autómatas programables y SCADA Figura 3.8 Vista previa de la HMI. Tras finalizar lo anterior, en el apartado de dispositivos y redes se pueden consultar las distintas conexiones que hay. En la figura 3.9 se observa que se unen mediante una conexión PN/IE. Esto va a permitir que a la hora de programar la pantalla, se pueda establecer una conexión entre las variables de la pantalla y las del PLC. Figura 3.9 Dispositivos y redes. Siempre se debe tener a vista el icono de compilar y transmitir al dispositivo. Si no disponemos de los dispositivos físicos, se puede utilizar el icono que permite iniciar la simulación. Se puede acceder a ellos desde cualquier pantalla ya que se encuentran en la barra de herramientas superior, véase la figura 3.10.
Software 16 Figura 3.10 Iconos de compilar, transmitir e iniciar la simulación. Cabe mencionar la utilidad de la conexión online a la hora de hacer un programa en un PLC, esta conexión que se establece con el dispositivo permite ver que ocurre a tiempo real en el programa gracias al icono mostrado en la figura 3.11. Además, esta opción también permite alertar sobre cualquier incidente con el dispositivo. Figura 3.11 Icono de observación. 3.2. Programación PLCs Para programar un PLC hay que tener en cuenta que existen distintos tipos de bloques. Existen bloques de organización (OB), como el main que se puede observar en la figura 3.12, que se ejecutan cíclicamente y dentro de ellos se pueden llamar a otros bloques; bloques de función (FB) que son bloques lógicos que depositan su valor de forma permanente en el bloque de instancia permitiendo así el uso de la función en otro bloque de instancia distinto; funciones (FC) que consisten en bloques lógicos sin memoria y bloques de datos (DB) para almacenar datos del programa. Figura 3.12 Vista del programa principal PLC (main).
17 Automatización de un parking mediante autómatas programables y SCADA 3.2.1. Lenguaje PLCs El programa principal se realiza en lenguaje KOP, lenguaje de contactos. Pero si se desea, simplemente se podría generar una función y llamarla en el main. De esta forma se puede usar FUP, basado en bloques lógicos; y SCL, lenguaje de alto nivel de SIEMENS. Para evitar complicaciones, aunque en el proyecto se han usado funciones, se ha usado lenguaje KOP durante todo el proyecto. 3.2.2. Instrucciones empleadas PLCs A la hora de programar, el Tia Portal tiene una ventana de favoritos que permite poner los elementos más usados, véase las figuras 3.11 y 3.12. Aunque también tiene una ventana de instrucciones, con diferentes carpetas ya sean instrucciones básicas, avanzadas, tecnológicas, de comunicación o de paquetes opcionales, como se puede observar en la figura 3.12. A lo largo del proyecto se ha hecho uso estas instrucciones, por ello en las tablas que se muestran a continuación se han expuesto las empleadas con una breve descripción de la misma. Para más información, consultar la ayuda que ofrece Tia Portal. -| |- Contacto normalmente abierto -| / |- Contacto normalmente cerrado -( )- Asignar asignación -( S )- Activar salida -( R )- Desactivar salida Tabla 3.2 Instrucciones básicas - Operaciones lógicas con bits CTUD Contador ascendente - descendente Tabla 3.3 Instrucciones básicas - Contadores. Permite introducir un nuevo segmento en el programa Permite introducir instrucciones, como p.e. temporizadores Permite crear ramas paralelas Permite cerrar las ramas creadas Tabla 3.1 Instrucciones básicas - General
Software 24
4 PROGRAMACIÓN DE LOS PLCS ste capítulo trata sobre la propia programación realizada en el proyecto en los PLCs para la automatización del parking. Primeramente, se hablará de la configuración realizada en el proyecto así como de la conexión de los elementos del programa y posteriormente la programación cada uno. 4.1. Configuración y conexión de la arquitectura implementada Como se ha mencionado en capítulos anteriores se dispone de dos PLCs, PLC_usuario y PLC_administrador, y dos pantallas HMI, HMI_usuario y HMI_administrador. Aunque como se verá en el apartado siguiente para que la comunicación sea correcta todos deben estar conectados, realmente en este proyecto están conectados dos a dos. Es decir por un lado se tiene la parte del administrador, operador del parking, y por otro lado la del usuario, cliente del parking. De forma que las pantallas únicamente transmiten información con su PLC correspondiente y son los PLCs entre ellos, los encargados de comunicar las dos partes mediante PROFINET. Haciendo uso del capítulo 3 de esta memoria se pueden incluir las dos pantallas y los dos PLCs estableciendo una conexión entre ellos tal y como se muestra en la figura 4.1. Cabe destacar que las direcciones de cada elemento debe ser la propia del dispositivo del laboratorio, véase tabla 4.1. PLC_usuario 192.168.1.107 PLC_administrador 192.168.1.111 HMI_usuario 192.168.1.120 HMI_administrador 192.168.1.121 Tabla 4.1 Direcciones de los dispositivos del trabajo. E Figura 4.1 Conexión del Proyecto.
Programación de los PLCs 26 4.2. Proyecto_FINAL PLCs 4.2.1. PLC_usuario A continuación, se va a realizar la descripción paso a paso de lo que realiza este autómata. Segmento 1. Elección de operación a realizar. El usuario decide si aparcar el coche o sacar el coche (si ya lo tenía aparcado) y se inicializan los índices para la base de datos, así como se resetean las banderas de envío, de enviar el aparcar y de enviar el sacar. El programa propuesto es el que se muestra en la figura 4.2. En la Tabla 4.2 se muestran las variables usadas para este segmento. Figura 4.2 Programación Segmento-1 PLC_usuario.
27 Automatización de un parking mediante autómatas programables y SCADA Segmento 2. Introducir la matrícula. El usuario introduce su matrícula y se almacena en un string para posteriormente mostrarlo en la pantalla, se guarda la longitud de la matrícula y la longitud de la matrícula más uno para posteriores operaciones. El programa propuesto es el que se muestra en la figura 4.3. En la Tabla 4.3 se muestran las variables usadas para este segmento. Figura 4.3 Programación Segmento-2 PLC_usuario. Nombre Tipo de datos Dirección Comentario Aparcar_coche Bool %Q0.0 Elección de aparcar coche Sacar_coche Bool %Q0.1 Elección de sacar coche Reset Bool %M1.0 Reseteo de elección Opción_aparcar Bool %M1.1 Flag elección aparcar Opción_sacar Bool %M1.2 Flag elección sacar Flag_envío_aparcar Bool %M23.4 Flag para activar el envío aparcando Flag_envío_sacar Bool %M23.5 Flag para activar el envío sacando Flag_envío Bool %M23.6 Flag para activar el envío Índice_aparcar Int %MW15 Índice de base de datos para coches que se aparcan Índice_sacar Int %MW17 Índice de base de datos para coches que se sacan Tabla 4.2 Variables Segmento-1 PLC_usuario.
Programación de los PLCs 28 Para poder introducir la matrícula y almacenarla se ha creado una función llamada “Insertar matrícula”. Se crea un bloque de datos que contiene las letras del abecedario y los números. Y se crean variables que simbolizan cada una de las letras y números, estableciendo una conexión entre el bloque de datos y las variables para que cuando se pulse los botones de la pantalla, se introduzca el char/int del bloque de datos en el string bandera que simboliza la matrícula. Para que no se solapen unos caracteres a otros existe un contador que aumenta cada vez que se pulsa una tecla, que disminuye cuando se pulsa borrar en la pantalla y se resetea cada vez que en el menú se marca una opción. Esto hace que cada vez que llegue un nuevo usuario, el contador de la posición de la matrícula esté en 0. Una vez que se pulsa una tecla, se inserta el string bandera en el string de la matrícula real en la posición indicada por el contador. Como la función Insert copia en todo el string, se tiene que borrar a partir de la posición que marque el contador. Por ejemplo: si el usuario pulsase una sola A, se introduciría A en el string bandera y AAA… en el string real de la matrícula. Posteriormente se borra a partir de la posición 2 dado que sólo se ha introducido una tecla A, resultando la matrícula real como A. Si ahora pulsa una B el contador marca un 2. El string bandera sería una B y el string real de la matrícula ABB… por lo que al borrar a partir de la posición 3 se obtiene AB. En la figura 4.4 se muestra el programa propuesto para la función. Figura 4.4 Programación Segmento-2 “Insertar matrícula” PLC_usuario.
29 Automatización de un parking mediante autómatas programables y SCADA Para poder tener una visión completa, se adjunta en la figura 4.5 una captura del bloque de datos relacionados con la matrícula. En ella se puede ver que existen los dos string, uno que hace de bandera guardando la última tecla pulsada y el real que guarda la matrícula completa. Además están todos los caracteres del abecedario y los números. Nombre Tipo de datos Dirección Comentario Opción_aparcar Bool %M1.1 Flag elección aparcar Opción_sacar Bool %M1.2 Flag elección sacar Tecla_pulsada Bool %M2.0 Pulsado un botón del teclado Tecla_borrar Bool %M2.1 Pulsado el borrar del teclado Tecla_A Bool %M2.3 Botón del teclado Tecla_B Bool %M2.4 Botón del teclado … Tecla_9 Bool %M6.5 Botón del teclado Tecla_0 Bool %M6.6 Botón del teclado Posición_matrícula Int %MW7 Posición actual de la matrícula Posición_matrícula+1 Int %MW9 Posición para borrar el string restante Longitud_matrícula Int %MW11 Longitud de la matrícula introducida por el usuario Longitud_matrícula+1 Int %MW13 Longitud de la matrícula +1 para borrar el string restante Tabla 4.3 Variables Segmento-2 PLC_usuario.
Programación de los PLCs 30 Figura 4.5 Bloque de datos relacionados con la matrícula. Segmento 3. Base de datos. Este segmento sirve para escribir y leer de la base de datos del parking, para ver las plazas libres o ocupadas y así asignar correctamente la plaza. En el caso de aparcar, se trata de aparcar en la plaza mas cercana posible. Teniendo en cuenta que el parking tiene en cada planta 6 aparcamientos, véase la figura 4.6, la asignación sería de 1-6. Siendo la más cercana el 1 y la más lejana el 6. 1 6 Figura 4.6 Aparcamientos por planta
31 Automatización de un parking mediante autómatas programables y SCADA Figura 4.7 Bloque de datos de la base de datos del parking. En la figura 4.7 se puede observar el bloque de datos que se ha realizado para crear la base de datos. Se crea una estructura que contiene la matrícula, la plaza por orden de cercanía y la ocupación. Si la ocupación está en false significa que está vacía y en el caso contrario ocupada. Como se puede observar, solamente hay disponibles dos plantas. En el siguiente segmento se explicará cuantas plazas se pueden tener como máximo. Para poder ampliar las plazas simplemente hay que ampliar el bloque de datos y modificar un poco el código en el PLC_administrador, lo cual será explicado cuando se explique su programa. Se ha usado una función para ponerla en el programa principal y así simplificar la visualización global. El programa propuesto para manipular la base de datos es el que se muestra en la figura 4.8. En la Tabla 4.4 se muestran las variables usadas para este segmento.
Programación de los PLCs 32 Lo que se trata de hacer es, primeramente, separar entre aparcar y sacar el coche. En el caso de elegir aparcar, una vez que el usuario dice mediante la pantalla su matrícula, se busca con un índice la plaza más cercana disponible. Posteriormente se guarda el índice para poder señalar esa plaza como ocupada e introducir la matrícula del usuario. En el caso de sacar es el proceso contrario, cuando ya se ha introducido la matrícula por parte del usuario se busca que la plaza esté ocupada y se busca que la matrícula sea la misma. Para comprobar si es la misma se tiene que usar Find y Len. En el caso de usar solo Find ocurre un fallo. Si el usuario tuviera la matrícula 12345 y en la base de datos existiera una 123456789, la tomaría como igual. Por eso se tiene en cuenta Len con la longitud de las matrículas de la base de datos, dado que la propia que introduce el usuario se tiene de segmentos anteriores. Tanto en aparcar como en sacar, la técnica es moverse con un índice. se tiene en cuenta el número de coches que se encuentran en el parking para poder señalizar que no se puede aparcar cuando ya está completo. La vista global del segmento se puede encontrar en la figura 4.9. Figura 4.9 Programación Segmento-3 PLC_usuario. Figura 4.8 Programación Segmento-3 PLC_usuario “Operaciones_base_datos”.
33 Automatización de un parking mediante autómatas programables y SCADA Nombre Tipo de datos Dirección Comentario Aparcar_coche Bool %Q0.0 Elección de aparcar coche Sacar_coche Bool %Q0.1 Elección de sacar coche Matrícula_correcta Bool %M2.2 Afirmación de matrícula Longitud_matrícula+1 Int %MW13 Longitud de la matrícula +1 para borrar el string restante Índice_aparcar Int %MW15 Índice de base de datos para coches que se aparcan Índice_sacar Int %MW17 Índice de base de datos para coches que se sacan Encontrar_matrícula Int %MW19 Índice para moverse por la base de datos y encontrar la matrícula introducida para sacar el coche Contador_coches Int %MW21 Número de coches que se encuentran en el parking Decrementar_contador_coches Bool %M23.0 Flag para decrementar el número de coches que se encuentran en el parking Parking_completo Bool %M23.1 Indicador de que no hay plazas disponibles para aparcar Matrícula_noencontrada Bool %M23.2 Indicador de que no se encuentra la matrícula en la base de datos Flag_envío_aparcar Bool %M23.4 Flag para activar el envío aparcando Flag_envío_sacar Bool %M23.5 Flag para activar el envío sacando Flag_envío Bool %M23.6 Flag para activar el envío Índice_aparcar_correcto Int %MW26 Índice de aparcar Índice_sacar_correcto Int %MW28 Índice de sacar Longitud_Base_Datos Int %MW31 Longitud de la matrícula de la base de datos Tabla 4.4 Variables Segmento-2 PLC_usuario
Programación de los PLCs 40 Segmento 2 y 3. Proceso de aparcar y sacar. Aunque son procesos distintos, tienen la misma forma dado que se basan en “sensores”. Se ha simulado el uso de sensores de forma que existen 3, el de seguridad, el de posición correcta y el de inicio. El de seguridad fijaría el coche para que no se moviera. El de posición correcta indica que la grúa ya ha colocado el coche en el sitio correcto, y el de inicio, que la plataforma se encuentra en la posición inicial. Se ha desarrollado de forma que si estos sensores funcionan correctamente se encontraran activos y en falso en el caso de que den fallo. De forma que se ha hecho uso de temporizadores para poder ver correctamente el proceso. En la figura 4.19 se puede encontrar el proceso de aparcar y en la 4.20 el de sacar. En la Tabla 4.9 y 4.10 las variables respectivamente. Nombre Tipo de datos Dirección Comentario Sensor_Seguridad Bool %I0.0 Sensor Posición_Correcta Bool %I0.1 Sensor Inicio Bool %I0.2 Sensor PlantaPosición Int %MW1 Número de planta y posición Intenta_Aparcar Bool %M3.0 Bandera aparcando Aparcando Bool %M3.2 Aparcando Error_Sensor_Seguridad Bool %M3.4 Error sensor Error_Grúa Bool %M3.5 Error sensor Figura 4.19 Programación Segmento-2 PLC_administrador.
41 Automatización de un parking mediante autómatas programables y SCADA Flag_aparcado Bool %M3.6 Bandera aparcado Aparcado_Correcto Bool %Q0.0 Aparcado Tabla 4.9 Variables Segmento-2 PLC_administrador. Nombre Tipo de datos Dirección Comentario Sensor_Seguridad Bool %I0.0 Sensor Posición_Correcta Bool %I0.1 Sensor Inicio Bool %I0.2 Sensor PlantaPosición Int %MW1 Número de planta y posición Intenta_Sacar Bool %M3.1 Bandera sacando Sacando Bool %M3.3 Sacando Error_Sensor_Seguridad Bool %M3.4 Error sensor Error_Grúa Bool %M3.5 Error sensor Flag_sacado Bool %M3.7 Bandera sacado Sacado_Correcto Bool %Q0.1 Sacado Tabla 4.10 Variables Segmento-3 PLC_administrador. Figura 4.20 Programación Segmento-3 PLC_administrador.
Programación de los PLCs 42 Segmento 4. Corrección de errores. Este segmento está hecho para que hasta que no vuelvan a funcionar correctamente los sensores, no deje de estar en set la bobina. Cuando se solucionan los errores se resetea y todo vuelve a la normalidad. Figura 4.21 Programación Segmento-4 PLC_administrador. Segmento 5. Envío de información al cliente. Este segmento es el encargado de enviarle al usuario si está completo ya el proceso. Y resetear posteriormente los valores. Tabla 4.11 Variables Segmento-4 PLC_administrador. Nombre Tipo de datos Dirección Comentario Sensor_Seguridad Bool %I0.0 Sensor Posición_Correcta Bool %I0.1 Sensor Inicio Bool %I0.2 Sensor Error_Sensor_Seguridad Bool %M3.4 Error sensor Error_Grúa Bool %M3.5 Error sensor Figura 4.22 Programación Segmento-5 PLC_administrador
43 Automatización de un parking mediante autómatas programables y SCADA Figura 4.23 TSEND_C Parámetros de la conexión, administrador. Figura 4.24 TSEND_C Parámetros del bloque, administrador. Nombre Tipo de datos Dirección Comentario Flag_aparcado Bool %M3.6 Bandera aparcado Aparcado_Correcto Bool %Q0.0 Aparcado Flag_aparcado Bool %M3.7 Bandera sacado Sacado_Correcto Bool %Q0.1 Sacado Tabla 4.12 Variables Segmento-5 PLC_administrador.
Programación de los PLCs 44
5 SCADA os Sistemas de Supervisión de Control y Adquisición de Datos (SCADA, Supervisory Control And Data) permiten la gestión y control de cualquier sistema local o remoto gracias a una interfaz gráfica que comunica al Usuario con el sistema. Sin embargo hay dos niveles superiores al SCADA, véase la figura 5.1. El término ERP se refiere a Enterprise Resource Planning, que significa “sistema de planificación de recursos empresariales”. Estos programas se hacen cargo de distintas operaciones internas de una empresa, desde producción a distribución o incluso recursos humanos. Y los sistemas de ejecución de fabricación (MES) son sistemas computarizados que se utilizan en la fabricación para rastrear y documentar la transformación de las materias primas en productos terminados. MES proporciona información que ayuda a los responsables de la toma de decisiones en la fabricación a entender cómo se pueden optimizar las condiciones actuales en el piso de la planta para mejorar la producción. En este capítulo se va a realizar una descripción general de los principales objetivos de un SCADA y de ciertas normas a cumplir que resultan interesantes para el diseño que se ha llevado a cabo en este proyecto. 5.1. Concepto de Control Cualquier sistema controlado puede serlo de dos maneras, según los caminos de la información dentro del mismo: Confiando absolutamente en que los parámetro de diseño con correctos y que las órdenes que se envíen serán cumplidas. Vigilando continuamente que las órdenes enviadas se cumplen y realizando las correcciones adecuadas siempre que sea necesario. Todos los sistemas de control que se engloban dentro del primer modelo reciben el nombre de Sistemas de Regulación en Lazo Abierto. Se basan en el diseño adecuado de los parámetros y las condiciones de trabajo del L Figura 5.1 Pirámide de Automatización.
Scada 46 elemento control para que éste sea capaz de mantener el sistema controlado dentro de los límites deseados. A los que se engloban dentro de la segunda definición, se les denomina Sistemas de Regulación en Lazo Cerrado, o Realimentados, y trabajan vigilando continuamente las reacciones del sistema a controlar, efectuando las acciones de corrección necesarias para mantener el control dentro de los límites deseados. 5.2. Sistemas de supervisión y mando Damos el nombre de Scada (Supervisory Control And Data Acquisition o Control con Supervisión y Adquisición de Datos) a cualquier software que permita el acceso a datos remotos de un proceso y permita, utilizando las herramientas de comunicación necesarias en cada caso, el control del mismo. Atendiendo a la definición vemos que no se trata de un sistema de control, sino de una utilidad software de monitorización o supervisión, que realiza la tarea de interfase entre los niveles de control (PLC) y los de gestión a un nivel superior. Los sistemas SCADA se conciben principalmente como una herramienta de supervisión y mando. Entre sus objetivos podemos destacar: Economía: es más fácil ver qué ocurre en la instalación desde la oficina que enviar a un operario a realizar la tarea. Ciertas revisiones se convertirán en innecesarias. Accesibilidad: un parque eólico al completo (velocidad de cada rotor, producción de electricidad), lo tenemos en un clic de ratón encima de la mesa de trabajo. Será posible modificar los parámetros de funcionamiento de cada aerogenerador, poniendo fuera de servicio los que den indicios de anomalías; consultar el estado de las estaciones transformadoras del parque, detener los molinos que no sean necesarios, etc. Mantenimiento: la adquisición de datos materializa la posibilidad de obtener datos de un proceso, almacenarlos y presentarlos de manera inteligible para un usuario no especializado. La misma aplicación se puede programar de manera que avise cuando se aproximen las fechas de revisión o cuando una máquina tenga más fallos de los considerados normales. Ergonomía: es la ciencia que procura hacer que la relación entre el usuario y el proceso sea lo más confortable posible. Gestión: todos los datos recopilados pueden ser valorados de múltiples maneras mediante herramientas estadísticas, gráficas, valores tabulados, etc., que permitan explotar el sistema con el mejor rendimiento posible. Flexibilidad: cualquier modificación de alguna de las características del sistema de visualización no significa un gasto en tiempo y medios, pues no hay modificaciones físicas que requieran la instalación de un cableado o del contador. Conectividad: se buscan sistemas abiertos. La documentación de los protocolos de comunicación actuales permite la interconexión de sistemas de diferentes proveedores y evita la existencia de lagunas informativas que puedan causar fallos en el funcionamiento o en la seguridad. Entre las prestaciones de una herramienta de este tipo destacan: Monitorización Representación de datos en tiempo real a los operadores de planta. Se leen los datos de los autómatas (temperaturas, velocidades, detectores…). Supervisión Supervisión, mando y adquisición de datos de un proceso y herramientas de gestión para la toma de decisiones (mantenimiento predictivo, por ejemplo). Tienen además la capacidad de ejecutar programas que puedan supervisar y modificar el control establecido y, bajo ciertas condiciones, anular o modificar tareas asociadas a los autómatas. Evita una continua supervisión humana.
47 Automatización de un parking mediante autómatas programables y SCADA Adquisición de datos Un sistema de captación solar se puede observar mediante herramientas registradoras y obtener así un valor medio de la irradiación en la zona, guardando los valores obtenidos y evaluándolos a posterioridad. Visualización de alarmas y eventos Reconocimiento de eventos excepcionales acaecidos en la planta y su inmediata puesta en conocimiento de los operarios para efectuar las acciones correctoras pertinentes. Mando Posibilidad de que los operadores puedan cambiar consignas u otros datos claves del proceso directamente desde el ordenador (marcha, paro, modificación de parámetros...). Se escriben datos sobre los elementos de control. Grabación de acciones o recetas Por ejemplo, en las líneas de vulcanizado en continuo (donde fabrican los perfiles de goma de las ventanas, por ejemplo) se componen de varias máquinas encadenadas con múltiples parámetros (velocidad y temperatura principalmente) que dependen del tipo de perfil a elaborar. Con una sola pulsación se pueden poner en marcha todas las máquinas y programar las diferentes zonas de temperatura o velocidad de toda la línea del ejemplo. Seguridad de los datos Tanto el envío como la recepción de datos deben de estar suficientemente protegidos de influencias no deseadas, intencionadas o no (fallos en la programación, intrusos, situaciones inesperadas, etc.). Seguridad en los accesos Restringiendo zonas de programa comprometidas a usuarios no autorizados, registrando todos los accesos y acciones llevadas a cabo por cualquier operador. Programación numérica Permite realizar cálculos aritméticos de elevada resolución sobre la CPU del ordenador (lenguajes de alto nivel, C y Visual Basic, generalmente). 5.2.1. Principios generales de diseño Se pueden definir varios principios generales que son aplicables a cualquier tipo de interacción hombre-máquina: 5.2.1.1. Consistencia y coherencia Si la aplicación es consistente, las secuencias de trabajo son similares en situaciones similares: Los tipos de letra son siempre los mismos en toda la aplicación. Los deslizadores, las posiciones de los pulsadores, los colores de las ventanas son de tipo único. Las pantallas tienen rasgos característicos que las diferencian entre sí. Por ejemplo, las pantallas de alarma con un color de fondo diferente al resto. Gracias al principio de coherencia, se consigue una interfase amigable y predecible, agilizando las respuestas del usuario. 5.2.1.2. Correspondencia Hace que la interfaz sea familiar y predecible al adecuarse al sistema real (representación de pulsadores o selectores de una máquina, representación en pantalla de un documento a rellenar, tal como el impreso de la declaración de la Renta).
Scada 48 5.2.1.3. Adecuación a la tarea El programa proporciona las herramientas de interactividad necesarias para lograr la máxima eficiencia y eficacia en el desarrollo del diálogo con el operador (ayudas contextuales). 5.2.1.4. Autodescriptividad Cada etapa de la relación entre operador y máquina es capaz de indicar cómo se debe desarrollar ésta (ayudas contextuales, pantallas de ayuda, gráficos animados del proceso). 5.2.1.5. Controlabilidad El usuario debe poder controlar en todo momento el desarrollo de la relación desde su inicio hasta su finalización. Pasos consecutivos con posibilidad de ir hacia atrás en cualquier momento, guardar el trabajo ya hecho para ser retomado posteriormente, cancelar una acción. Esto ayuda a que el usuario pierda el miedo a tocar cosas que pueden convertirse en serios problemas y le anima a convertirse en explorador de la aplicación. 5.2.1.6. Predictibilidad El usuario ve una respuesta del sistema acorde con sus conocimientos, formación y experiencia. 5.2.1.7. Tolerancia a fallos y control de errores Se deben contemplar los posibles errores del usuario y limitarlos, impedirlos o corregirlos de forma automática si ello es posible. Por ejemplo: Utilizar listas en la entrada de datos de tipo formulario. Limitación de valores numéricos en la entrada de datos. Auto corrección de textos. Posibilitar recuperación de errores (opción deshacer). Ante un error de cualquier tipo en una aplicación, deberíamos saber cuatro cosas básicas: ¿Qué ha ocurrido? ¿Por qué? ¿Es muy serio el problema? ¿Tiene arreglo? 5.2.1.8. Flexibilidad y eficiencia de uso El sistema debe ser práctico de utilizar y poder adaptarse a las necesidades y conocimientos del usuario mediante modificaciones simples. Por ejemplo, sistemas de diseño gráfico ampliables según tipo de licencia o privilegios de acceso, posibilidad de uso de atajos para usuarios expertos. Suponga un SCADA que permita supervisar una planta química, y que por su complejidad se deben tener varias pantallas principales. Cuando se produce un error, un usuario que sepa que el error se produce en un cierto sensor, debe tener la posibilidad de acceder directamente a la pantalla que controla ese sensor sin tener que pasar por el resto. 5.2.1.9. Facilidad de aprendizaje Debe facilitar el aprendizaje mediante herramientas de ayuda, documentación adecuada y estímulos al usuario. 5.2.2. Colores Cuando se utilizan colores primarios con sus opuestos secundarios se obtiene el llamado Contraste Complementario, el cual es útil para destacar y crear impacto pero obligue a forzar el enfoque del ojo creando estrés visual. Si se utilizan colores adyacentes, se obtiene el Contraste de Tonos y se puede dar contrastes mas fuertes con los colores secundarios que los primarios. Usando colores como Fuente de información, se acepta la siguiente convención de colores (Real Decreto 485/97):
49 Automatización de un parking mediante autómatas programables y SCADA Estados: marcha - abierto VERDE Estados: parado - cerrado ROJO Estados: atención - preparado AMARILLO Alarmas: atención - prealarma AMARILLO Alarmas: alarma ROJO Alarma: sin alarma GRIS, INVISIBLE Elementos: metal GRIS Fondos GRIS, VERDE, AZUL Tabla 5.1 Colores según el estado. 5.3. Principios generales de diseño 5.3.1. Norma ISO 9241 La norma UNE-EN ISO 9241, en su parte 10, Principios de diálogo, trata el diseño ergonómico de programas para equipos con Pantallas de Visualización de Datos. Enumera una serie de ideas que se pretende sirvan de guía a la hora de realizar el planteamiento y desarrollo de las interfaces gráficas: La aplicación debe estar adaptada a la tarea para la cual se ha diseñado; el diálogo con el usuario debe ser limpio, presentando y exigiendo solamente la información estrictamente necesaria. La aplicación debe informar del progreso al interlocutor de forma comprensible para éste (auto descriptividad). La aplicación debe poder adaptarse al nivel de capacitación del usuario. La aplicación debe ser controlable por el usuario, no al revés. Las respuestas de la interfase deben ser coherentes y adaptadas al nivel de capacitación del usuario. La aplicación debería ser tolerante a fallos y con herramientas de corrección automáticas. Debería ser clara y sencilla de utilizar. 5.3.2. Elementos gráficos 5.3.2.1. El color de las pantallas Similar al apartado 5.2.2, el uso de alto contraste se puede convertir en algo incómodo o casi ilegible. Los colores extremos no deberían aparecer simultáneamente en la pantalla (por ejemplo, rojo y azul). Además, no es conveniente convertir las pantallas en ejercicios de diseño incluyendo más colores de los necesarios ya que resultan poco prácticas.
Scada 56 Figura 5.14 Capa 2, 5_Sacando. 5.4.2. HMI_administrador A diferencia del dispositivo anterior, este solamente tiene una pantalla. Esta pantalla es la que tiene que hacer el SCADA y por ello es conveniente que se pueda ver en una pantalla lo que ocurre. La idea es que el operario pueda ver el proceso que se está haciendo y si surge algún error. Para eso se ha propuesto la pantalla que se puede ver en la figura 5.15, cada proceso se indica con un leds según las normas indicadas al inicio de este capítulo. Al tener la conexión con el PLC, el operario puede activar el reset/reinicializar del proceso del PLC y llevarlo a la posición inicial. Se supone que el botón reset incluye un motor aparte para que si los sensores relacionados con la grúa se estropean, el coche no quede suspendido. Hasta que el operario no considere oportuno quitar el reset/reinicializar, el parking se encuentra en pausa. El error de seguridad está relacionado con el sensor de seguridad, y el de grúa con los sensores de posición e inicio. Figura 5.15 Única imagen HMI_administrador.
6 MEJORAS IMPLEMENTADAS artiendo de que el Proyecto_Final es el que se ha probado en físico en el laboratorio, cabe destacar que a la hora de hacer la memoria se ha visto una falta en la programación. Y es que cuando se produce un error, con la programación propuesta el usuario estaría minutos esperando sin saber que pasa o quizás días si la avería tarda en solucionarse, y su coche quedaría atrapado dentro del parking. Para poder solucionar esta falta se ha modificado ligeramente el código del PLC_administrador, haciendo que informe también al PLC_usuario si se ha producido algún error y así a través de una variable notificar al usuario por la HMI_usuario. Además, también se ha modificado que si el botón de reinicializar que maneja el operario se encuentra activo durante más de un minuto se produzca un paro en el parking y se le permita al usuario retirar su coche. Esto obligaría a volver a inicializar todos los dispositivos e introducir de forma manual en la base de datos los coches que se encuentran en el parking antes de volver a abrirlo al público. Resulta una tarea pesada, pero si se mira por parte del usuario, si se produjera un error que tarde en solucionarse, no querrá perder su coche durante días. 6.1. PLC_usuario En el PLC_usuario solamente cambia el último segmento, figura 6.1. Para poder activar que le ha llegado un error por parte del administrador y así comunicarse con la HMI. También se ha modificado el cuándo recibe información dado que se encontró una forma más útil, ya que aquí no depende de que pulse o que no pulse el usuario. La variable Errores está relacionada con los errores de los sensores y la de Fallo con el paro del parking, por tardar mas de 1 minuto en arreglar los errores estando en pausa. Figura 6.1 Modificación Segmento5 PLC_usuario. 6.2. PLC_administrador En el PLC_administrador se activan las banderas que permiten mandar la información de los errores al cliente y se tiene en cuenta cuanto tiempo se tiene la pausa activa para parar el parking, ya que cuando pasen 60 segundos debe pararlo por completo. Imposibilitando la entrada de más coches o la salida de alguno que ya esté en su P
Mejoras implementadas 58 interior. Al usar un set para activar la bobina de Fallo, es decir stop del parking, y no resetearla en ningún sitio está obligando a que para poder volver a arrancar el parking se tenga que volver a arrancar todos los dispositivos y modificando la base de datos a mano para introducir los coches que aún quedan dentro, como se ha mencionado anteriormente. Solamente se modifica el último segmento al igual que con el PLC_usuario. En la figura 6.2 se puede encontrar cómo resulta finalmente la programación del segmento. Figura 6.2 Modificación Segmento5 PLC_administrador. 6.3. HMI_usuario En la HMI_usuario, solamente resultan modificadas las pantallas 5_Aparcando y 6_Sacando. Además, resultan modificadas de la misma forma. Partiendo de la idea de crear rectángulos que tapen el texto que se encontraba antes, ahora aparece una nueva capa para indicarle al usuario que se ha producido un error. Si se produce el parón en el parking hay otra pantalla para indicar que retire su coche y no deja irse a ninguna otra pantalla para que no se puedan sacar ni aparcar más coches. En las figuras 6.3 y 6.4 se pueden encontrar las dos nuevas capas.
59 59 Automatización de un parking mediante autómatas programables y SCADA Figura 6.3 Nueva capa para errores, HMI_usuario. Figura 6.4 Nueva capa para fallo, HMI_usuario.
Mejoras implementadas 60 6.4. HMI_administrador En la HMI_administrador únicamente se le ha incluido un LED para indicar cuando el parking se ha parado. El resto es igual, se puede observar en la figura 6.5. Figura 6.5 Nueva imagen HMI_administrador A pesar de no tener la posibilidad de implementar esta modificación en los dispositivos físicos, se puede realizar la simulación propia del programa para ver que funciona correctamente.
7 CONCLUSIONES Y FUTUROS TRABAJOS l objetivo de este TFG consistía en el diseño e implementación de la automatización para un parking, así como de un sistema SCADA para la supervisión y control del mismo. Aunque ya existen numerosos parking automatizados en la realidad, como se ha mencionado al principio de esta memoria, el objetivo era ser capaz de hacerlo partiendo de cero con cuatro dispositivos principales, PLCs y pantallas HMI. Resulta evidente pensar que existen numerosas formas de programar este trabajo, pero la programación propuesta se ha elaborado de la forma más simple posible haciendo uso del conocimiento adquirido durante las prácticas de la carrera y con la propia librería del programa, por lo que es fácil de comprender incluso para alguien que nunca haya usado el programa. Al separar el trabajo en dos áreas, la del cliente y la del administrador del parking, se pueden programar por separado gran parte del trabajo hasta que sea necesario comunicarlos. Es decir, la pantalla HMI y el PLC encargado de hacer la interfaz para el usuario puede programarse casi completamente sin necesidad de comunicarse con el administrador, exceptuando el tramo final en el que se le indica al usuario que se ha realizado el proceso o que ha ocurrido un error. Y de igual forma, tomando alguna entrada de la botonera como la opción elegida por el cliente, se puede realizar el proceso de aparcar o sacar el vehículo sin necesidad de comunicación con el cliente. Partiendo de que lo más complicado a primera vista es establecer correctamente las comunicaciones entre los dispositivos, este tipo de configuración permite avanzar la programación sin necesidad de un correcto funcionamiento de la comunicación a priori. Aunque, lógicamente, para un correcto funcionamiento de la automatización propuesta es necesario que la comunicación funcione. Resumiendo, el Trabajo Fin de Grado propuesto plantea una posible alternativa a los parking automatizados existentes hoy en día, partiendo de una programación con funciones relativamente simples. Como posibles futuros trabajos relacionados con este mismo Trabajo de Fin de Carrera, está la posibilidad de aprender a utilizar las funciones relacionadas con el tiempo para así poder calcular el tiempo que cada coche pasa dentro del parking y proponer un coste por hora. También relacionado con este tema se podría diseñar otro tipo de plataforma que permita insertar dos grúas a la vez, estableciendo una automatización para que éstas no choquen en ningún momento y se reduzcan los tiempos de espera por parte del cliente. Y por último, pero posiblemente la más interesante, crear una maqueta que permita introducir sensores reales y así sustituir los simulados en la programación propuesta. E
REFERENCIAS E. Pérez-López (2015) Los sistemas SCADA en la automatización industrial. Tecnología en Marcha, 28 (4), pp. 3-14. Comité de Automatización. Importancia de la Automatización en tiempo de crisis http://www.aie.cl/files/file/comites/ca/articulos/automat_tiempos_de_crisis10-9.pdf Último acceso: 30 de Agosto, 2018. Noticia del periódico El País 2/3/2016 https://elpais.com/ccaa/2016/03/02/madrid/1456947278_361561.html Último acceso: 30 de Agosto, 2018. Siemens. S7 Controlador programable S7-1200. Manual de Sistema, 378pp. A. Rodríguez (2007) Sistemas SCADA Guía Práctica. Ed. Marcombo, 256pp.
ANEXOS Se encuentran como Anexos los siguientes documentos: Datasheet HMI KTP700 Basic PN. Datasheet S71200 CPU 1214C AC-DC-Rly.
● Number of alarm classes 32 ● S7 alarm number procedure No ● System messages HMI Yes ● System messages, other (SIMATIC S7, Sinumerik, Simotion, etc.) Yes; System message buffer of the SIMATIC S7-1200 and S7- 1500 ● Number of characters per message 80 ● Number of process values per message 8 ● Acknowledgment groups Yes ● Message indicator Yes ● Message buffer Yes — Number of entries 256 — Circulating buffer Yes — retentive Yes — maintenance-free Yes Recipe administration ● Number of recipes 50 ● Data records per recipe 100 ● Entries per data record 100 ● Size of internal recipe memory 256kbyte ● Recipe memory expandable No Variables ● Number of variables per device 800 ● Number of variables per screen 100 ● Limit values Yes ● Multiplexing Yes ● Structs No ● Arrays Yes Images ● Number of configurable images 250 ● Permanent window/default Yes ● Global image Yes ● Start screen configurable Yes ● Image selection by PLC Yes ● Image number in the PLC Yes Image objects ● Number of objects per image 100 ● Text fields Yes ● I/O fields Yes ● Graphic I/O fields (graphics list) Yes ● Symbolic I/O fields (text list) Yes ● Date/time fields Yes 6AV2123-2GB03-0AX0 Changes preserved Page 6/ 9 12.03.2015 © Copyright Siemens AG
● Switches Yes ● Buttons Yes ● Graphic view Yes ● Icons Yes ● Geometric objects Yes Complex image objects ● Number of complex objects per screen 10 ● Alarm view Yes ● Trend view Yes ● User view Yes ● Status/control No ● Sm@rtClient view No ● Recipe view Yes ● f(x) trend view No ● System diagnostics view Yes; System message buffer of the SIMATIC S7-1200 and S7- 1500 ● Media Player No ● Bar graphs Yes ● Sliders No ● Pointer instruments No ● Analog/digital clock No Lists ● Number of text lists per project 150 ● Number of entries per text list 100 ● Number of graphics lists per project 100 ● Number of entries per graphics list 100 Archiving ● Number of archives per device 2 ● Number of entries per archive 10000 ● Message archive Yes ● Process value archive Yes ● Archiving methods — Sequential archive Yes — Short-term archive Yes ● Memory location — Memory card No — USB memory Yes — Ethernet No ● Data storage format — CSV No — TXT Yes 6AV2123-2GB03-0AX0 Changes preserved Page 7/ 9 12.03.2015 © Copyright Siemens AG
— RDB No Security ● Number of user groups 50 ● Number of user rights 32 ● Number of users 50 ● Password export/import Yes ● SIMATIC Logon No Character sets ● Keyboard — US American (English) Yes ● Character sets — Tahoma Yes — Arial No — Courier New No — WinCC flexible Standard Yes — Ideographic languages Yes ● Font size freely scalable Yes Transfer (upload/download) ● MPI/PROFIBUS DP No ● USB No ● Ethernet Yes ● using external storage medium No Process coupling ● S7-1200 Yes ● S7-1500 Yes ● S7-200 Yes ● S7-300/400 Yes ● LOGO! Yes ● Win AC Yes ● SINUMERIK No ● SIMOTION Yes ● Allen Bradley (EtherNet/IP) Yes ● Allen Bradley (DF1) No ● Mitsubishi (MC TCP/IP) Yes ● Mitsubishi (FX) No ● OMRON (FINS TCP) No ● OMRON (LINK/Multilink) No ● Modicon (Modbus TCP/IP) Yes ● Modicon (Modbus) No Service tools/configuration aids ● Clean screen Yes 6AV2123-2GB03-0AX0 Changes preserved Page 8/ 9 12.03.2015 © Copyright Siemens AG
● Touch calibration Yes ● Backup/restore Yes ● Backup/Restore automatically No ● Simulation Yes ● Device switchover Yes ● Delta transfer No I/O / Options I/O devices ● Printer No ● MultiMediaCard No ● SD card No ● USB memory Yes Mechanics/material Type of housing (front) ● plastic Yes ● aluminum No ● Stainless steel No Dimensions Width of the housing front 214mm Height of housing front 158mm Mounting cutout, width 197mm Mounting cutout, height 141mm Device depth 39mm Weights Without packaging 780g With packaging 990g last modified: 12.03.2015 6AV2123-2GB03-0AX0 Changes preserved Page 9/ 9 12.03.2015 © Copyright Siemens AG
Data sheet 6ES7214-1BG40-0XB0 SIMATIC S7-1200, CPU 1214C, compact CPU, AC/DC/relay, onboard I/O: 14 DI 24 V DC; 10 DO relay 2 A; 2 AI 0-10 V DC, Power supply: AC 85-264 V AC at 47-63 Hz, Program/data memory 100 KB General information Product type designation CPU 1214C AC/DC/relay Firmware version V4.2 Engineering with ● Programming package STEP 7 V14 or higher Supply voltage Rated value (AC) ● 120 V AC Yes ● 230 V AC Yes permissible range, lower limit (AC) 85V permissible range, upper limit (AC) 264V Line frequency ● permissible range, lower limit 47Hz ● permissible range, upper limit 63Hz Input current Current consumption (rated value) 100 mA at 120 V AC; 50 mA at 240 V AC Current consumption, max. 300 mA at 120 V AC; 150 mA at 240 V AC Inrush current, max. 20A; at 264 V 6ES7214-1BG40-0XB0 Subject to change without notice Page 1/ 9 08/06/2018 © Copyright Siemens
I²t 0.8A²·s Output current for backplane bus (5 V DC), max. 1600mA; Max. 5 V DC for SM and CM Encoder supply 24 V encoder supply ● 24 V 20.4 to 28.8V Power loss Power loss, typ. 14W Memory Work memory ● integrated 100kbyte ● expandable No Load memory ● integrated 4Mbyte ● Plug-in (SIMATIC Memory Card), max. with SIMATIC memory card Backup ● present Yes ● maintenance-free Yes ● without battery Yes CPU processing times for bit operations, typ. 0.08µs; / instruction for word operations, typ. 1.7µs; / instruction for floating point arithmetic, typ. 2.3µs; / instruction CPU-blocks Number of blocks (total) DBs, FCs, FBs, counters and timers. The maximum number of addressable blocks ranges from 1 to 65535. There is no restriction, the entire working memory can be used OB ● Number, max. Limited only by RAM for code Data areas and their retentivity Retentive data area (incl. timers, counters, flags), max. 10kbyte Flag ● Number, max. 8kbyte; Size of bit memory address area Local data ● per priority class, max. 16kbyte; Priority class 1 (program cycle): 16 KB, priority class 2 to 26: 6 KB Address area Process image ● Inputs, adjustable 1kbyte 6ES7214-1BG40-0XB0 Subject to change without notice Page 2/ 9 08/06/2018 © Copyright Siemens
● Outputs, adjustable 1kbyte Hardware configuration Number of modules per system, max. 3 comm. modules, 1 signal board, 8 signal modules Time of day Clock ● Hardware clock (real-time) Yes ● Backup time 480h; Typical ● Deviation per day, max. ±60 s/month at 25 °C Digital inputs Number of digital inputs 14; Integrated ● of which inputs usable for technological functions 6; HSC (High Speed Counting) Source/sink input Yes Number of simultaneously controllable inputs all mounting positions — up to 40 °C, max. 14 Input voltage ● Rated value (DC) 24V ● for signal "0" 5 V DC at 1 mA ● for signal "1" 15 V DC at 2.5 mA Input delay (for rated value of input voltage) for standard inputs — parameterizable 0.2 ms, 0.4 ms, 0.8 ms, 1.6 ms, 3.2 ms, 6.4 ms and 12.8 ms, selectable in groups of four — at "0" to "1", min. 0.2ms — at "0" to "1", max. 12.8ms for interrupt inputs — parameterizable Yes for technological functions — parameterizable Single phase: 3 @ 100 kHz & 3 @ 30 kHz, differential: 3 @ 80 kHz & 3 @ 30 kHz Cable length ● shielded, max. 500m; 50 m for technological functions ● unshielded, max. 300m; For technological functions: No Digital outputs Number of digital outputs 10; Relays Switching capacity of the outputs ● with resistive load, max. 2A ● on lamp load, max. 30 W with DC, 200 W with AC Output delay with resistive load ● "0" to "1", max. 10ms; max. 6ES7214-1BG40-0XB0 Subject to change without notice Page 3/ 9 08/06/2018 © Copyright Siemens
● "1" to "0", max. 10ms; max. Relay outputs ● Number of operating cycles, max. mechanically 10 million, at rated load voltage 100 000 Cable length ● shielded, max. 500m ● unshielded, max. 150m Analog inputs Number of analog inputs 2 Input ranges ● Voltage Yes Input ranges (rated values), voltages ● 0 to +10 V Yes ● Input resistance (0 to 10 V) ≥100k ohms Cable length ● shielded, max. 100m; twisted and shielded Analog outputs Number of analog outputs 0 Analog value generation for the inputs Integration and conversion time/resolution per channel ● Resolution with overrange (bit including sign), max. 10bit ● Integration time, parameterizable Yes ● Conversion time (per channel) 625µs Encoder Connectable encoders ● 2-wire sensor Yes 1. Interface Interface type PROFINET Physics Ethernet Isolated Yes automatic detection of transmission rate Yes Autonegotiation Yes Autocrossing Yes Interface types ● Number of ports 1 ● integrated switch No Protocols ● PROFINET IO Controller Yes ● PROFINET IO Device Yes ● SIMATIC communication Yes 6ES7214-1BG40-0XB0 Subject to change without notice Page 4/ 9 08/06/2018 © Copyright Siemens
● Open IE communication Yes ● Web server Yes ● Media redundancy No PROFINET IO Controller ● Transmission rate, max. 100Mbit/s Services — PG/OP communication Yes — S7 routing Yes — Isochronous mode No — Open IE communication Yes — IRT No — MRP No — MRPD No — PROFIenergy No — Prioritized startup Yes — Number of IO devices with prioritized startup, max. 16 — Number of connectable IO Devices, max. 16 — Number of connectable IO Devices for RT, max. 16 — of which in line, max. 16 — Activation/deactivation of IO Devices Yes — Number of IO Devices that can be simultaneously activated/deactivated, max. 8 — Updating time The minimum value of the update time also depends on the communication component set for PROFINET IO, on the number of IO devices and the quantity of configured user data. PROFINET IO Device Services — PG/OP communication Yes — S7 routing Yes — Isochronous mode No — Open IE communication Yes — IRT No — MRP No — MRPD No — PROFIenergy Yes — Shared device Yes — Number of IO Controllers with shared device, max. 2 Protocols Supports protocol for PROFINET IO Yes 6ES7214-1BG40-0XB0 Subject to change without notice Page 5/ 9 08/06/2018 © Copyright Siemens