Full text
Equation Chapter 1 Section 1 Proyecto Fin de Grado Ingenieria de las Tecnologías Industriales Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO Dpto. Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Autor: Manuel González Rodríguez Tutor: David Muñoz de la Peña Sequedo Sevilla, 20 22
Proyecto Fin de Grado Ingenieria de las Tecnologías Industriales Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO Autor: Manuel González Rodriguez Tutor: David Muñoz de la Peña Sequedo Catedratico Dpto. Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2022
A mi familia A LST A energía A mi
i Agradecimientos La primera persona a la que quiero agradecerle que hoy este escribiendo estas palabras es a mi hermana, ejemplo a seguir, amiga y apoyo incansable. Aunque esto también hubiese sido imposible sin la ayuda diaria y el sacrificio de mis padres. A los sin techo por ser mi refugio cuando las horas de estudio mas pesaban y a Josema por los consejos siempre que fueron necesarios. Imposible no mencionar la gente de energía, por ser mis pilas y mi familia entre las paredes de la etsi, en especial a Sara, sin ellos, ni este proyecto, ni yo seriamos lo que somos ahora. La ultima persona a la que le tengo que dedicar unas palabras es a mi, todo el sacrificio, las noches en vela y los planes rechazado hoy dan sus frutos. Manuel Gonzalez
iii Resumen La automatización industrial es el conjunto de técnicas mediante las cuales sistemas computarizados y robóticos sustituyen la presencia humana en procesos rutinarios y monótonos. Gracias a que se asegura mejorar el rendimiento de los procesos, la calidad de los productos y la reducción simultánea de costes de producción, la automatización se ha asentado en la industria moderna y convertido en la base de la industria 4.0. Eliminar procesos manuales de las plantas industriales crea, entre otras, la necesidad de desarrollar herramientas que permitan clasificar y transportar elementos. Dicha necesidad se convierte en el principal objetivo de este trabajo de fin de grado, en el que se busca ofrecer una solución factible dentro del ámbito educativo, a la vez que se intenta conseguir la máxima similitud con el entorno industrial. Para ello, se plantea un entorno que permita emular un problema de clasificación y recirculación real sin necesidad de disponer de maquinaria industrial. Esta simulación se conforma de 3 programas: FactoryIO para la simulación de la planta, Codesys para el control y VijeoCitect para la creación de un SCADA que permita la supervisión.
4 ÍNDICE DE FIGURAS Figura 1-1 Guia Gemma 10 Figura 1-2 Flujo de datos 11 Figura 2-1 Esquema de la planta 14 Figura 2-2 Elementos disponibles en FactoryIO 16 Figura 2-3 Menú de seleccion de modo del equipo 17 Figura 2-4 Tipos de piezas 17 Figura 2-5 Sensores utilizados 18 Figura 2-6 Tamaños de cintas disponibles 18 Figura 2-7 Belt convoyer 19 Figura 2-8 Pivot arm 19 Figura 2-9 Piston 20 Figura 2-10 Vista alzado de la planta 21 Figura 2-11 Vista salidas 1 y 2 22 Figura 2-12 Vista salida 3 y lateral 22 Figura 3-1 Ejemplo basico 23 Figura 3-2 Asistente de creador de proyectos Codesys (1) 24 Figura 3-3Asistente de creador de proyectos Codesys (2) 25 Figura 3-4 Menu desplegable para funciones disponible en application 26 Figura 3-5 Ventana emergente para crear lista de variables globales 27 Figura 3-6 Icono Codesys Control Win 27 Figura 3-7 Indicaciones visuales de pasos necesarios para agregar puerta de enlace 28 Figura 3-8 Ventana Emergente para crear puerta de enlace 28 Figura 3-9 Elemento de Codesys desde donde se examina la red 29 Figura 3-10 Comando para cambiar nombre de PLC 29 Figura 3-11 Ventana emergente Symbol Configuration 30 Figura 3-12 Comando para crear Symbol Configuration 30 Figura 3-13 Interfaz principal OPC Config 31 Figura 3-14 PLC configurado en OPC Config 31 Figura 3-15 Cambios necesarios en OPC Config 32 Figura 3-16 Interfaz principal OFS Client 32 Figura 3-17 Ventana emergente para añadir Items 33 Figura 3-18 Muestra de conexion OFS ClientCodesys 34 Figura 3-19 Desarrollo en Codesys de ejemplo para conexion 34 Figura 3-20 Interfaz de gestion de Drivers (FactoryIO) 35
Figura 3-21 Interfaz de configuracion servidores OPC 35 Figura 3-22 Conexion Codesys-FactoryIO 36 Figura 3-23 Asistente Express (VijeoCitect) 36 Figura 3-24 Explicacion del asistente 37 Figura 3-25 Seleccion del servidor 37 Figura 3-26 Seleccion del equipo 38 Figura 3-27 Seleccion del Tipo de equipo 38 Figura 3-28 Seleccion del tipo de comunicacion 39 Figura 3-29 Direccion de conexion 39 Figura 3-30 Comando de importar Tags 40 Figura 3-31(Izquierda) Ventana emergente de asistente para importar tag. (Derecha) Ventana emergente para ubicación de parámetros 40 Figura 3-32 Ejemplo de etiqueta 41 Figura 3-33 Ejemplo de uso de "TagName" 42 Figura 3-34 Ubicacion Simbolo para arrancar VijeoCitect 42 Figura 3-35 Ejemplo conexion exitosa 43 Figura 3-36 Conexion FactoryIO-Codesys con planta propuesta 45 Figura 4-1 Pseudocodigo para gestion de modos de funcionamiento 47 Figura 4-2 Codigo SFC PLC_PRG 48 Figura 4-3 Codigo SFC Funcionamiento 48 Figura 4-4 Codigo SFC Normal Active 49 Figura 4-5 Codigo SFC Marcha 49 Figura 4-6 Codigo SFC Emergencia 50 Figura 4-7 Codigo M_Automatico_Active (1) 51 Figura 4-8Codigo M_Automatico_Active (2) 51 Figura 4-9 Codigo M_Automatico_Active (3) 51 Figura 4-10 Codigo M_Manual_Active 52 Figura 4-11 Codigo M_EMyA_Active (1) 52 Figura 4-12 Codigo M_EMyA_Active (2) 53 Figura 4-13 Codigo M_EMyA_Active (3) 53 Figura 4-14 Codigo ST_Paro 53 Figura 4-15 Codigo ST_PARO_EXIT 54 Figura 4-16 Codigo ST_INTER (1) 54 Figura 4-17 Codigo ST_INTER (2) 54 Figura 4-18 Codigo ST_INTER (3) 54 Figura 4-19 Codigo FNC_FAIL (1) 55 Figura 4-20 Codigo FNC_FAIL (2) 55 Figura 4-211Codigo FNC_FAIL (3) 55 Figura 4-22 Codigo Critic 55
Figura 4-23 Condicion de salida de critic 56 Figura 4-24 Codigo complementario a critic 56 Figura 4-25 Codigo de comun E_Paro y E_Confirmacion 56 Figura 4-26 Variable de estado Emergencia 56 Figura 4-27Variable de estado confirmacion 56 Figura 4-28 Codigo E_Aux2 57 Figura 4-29 Sistema de conteo C4 57 Figura 4-30 Sistema de conteo C2 57 Figura 4-31 Sistema de conteo C3 58 Figura 4-32 Contador CTU 58 Figura 4-33 Cuentas implementadas en ST 59 Figura 4-34 Control de las variables ON y OFF 59 Figura 4-35 Timers implementados 60 Figura 4-36Lectura de botones 60 Figura 4-37 Actualizacion de reflejos (1) 61 Figura 4-38 Actualizacion de reflejos (2) 61 Figura 4-39Lectura de sensor y actualizacion de vector cola 62 Figura 4-40Actualizacion de variable defecto y reset de vector y puntero 62 Figura 5-1 Primera version HMI 64 Figura 5-2 Ejemplo de simbolos disponibles en programa auxiliar 65 Figura 5-3 Ejemplo de centro del plano cuadrado con centro de la imagen 65 Figura 5-4 Herramienta Bitmap 66 Figura 5-5 Crear Simbolo 66 Figura 5-6 Partes que componen el piston 67 Figura 5-7 Ejemplo de uso de atributos en genio 67 Figura 5-8 Ejemplo de agrupacion de elementos 68 Figura 5-9 Ejemplo de uso de atributos para grupos 68 Figura 5-10 Creacion de boton 69 Figura 5-11 Ejemplo de uso 69 Figura 5-12Estados implementados 70 Figura 5-13Mensaje de advertencia 70 Figura 5-14Aplicacion en uso 71 Figura 5-15 Detalle de historico 71 Figura 5-16Creacion de alarmas en VijeoCitect 72 Figura 5-17 Restaurar proyecto en Vijeocitect 73
7 Notación Ci Cinta del sistema (Con i del 1 al 6) Codesys Software optimizado para programar PLC CTU Contador Ascendente CTUD Contador Ascendente y descendente E_ Indicador de que el codigo pertene al objeto E1 Entrada del sistema FactoryIO Software para simular plantas industriales HMI Human Machine Interface M_ Indicador de que el codigo pertene al objeto OFFi Variable que indica que la cinta i no cuenta con piezas ONi Variable que indica que la cinta i cuenta con piezas OPC Open Platform Communicactions POU Progam Organization Unit SCADA Supervisory Control and Data Acquisition Si Salida del sistema (Con i de 1 a 3) ST_ Indicador de que el codigo pertene al objeto TON Temporizador con respuesta en valor alto VijeoCitect Software para el desarrollo de SCADA ↔ Indicación de que la variable es necesaria en los dos softwares
9 1 INTRODUCCION ste proyecto nace como aplicación directa de los conocimientos de automatización adquiridos gracias a las asignaturas del grado de ingeniería de las tecnologías industriales, hasta tal punto, que se busca aquí desarrollar el control de una posible estación industrial planteada como ejercicio de examen en una de estas asignaturas. Se espera que la solución se apoye en el uso de los modos de operación de la Guía Gemma, además del desarrollo de una aplicación que permita su gestión a tiempo real para conseguir dar respuesta a las especificaciones del sistema. Se pretende, también, que tras su desarrollo este proyecto se pueda utilizar como herramienta práctica que pueda servir como guía y apoyo para futuras generaciones estudiantiles, facilitando una herramienta que pueda permitir a los alumnos dar los primeros pasos en el mundo de la automatización sin necesidad de contar con equipos industriales, ya que como se pudo ver en los pasados años de pandemia, los alumnos necesitaban de una forma de poder poner a prueba sus conocimientos de forma independientes y sin tener que desplazarse a un laboratorio o estación industrial. Para alcanzar estos objetivos, se deberá por un lado encontrar solución a un problema de la industria actual como es la clasificación y distribución de piezas por una planta industrial de forma automática. Se requerirá, por tanto, una herramienta de control que permita la gestión de procesos industriales, además de un simulador industrial que disponga al entorno de la máxima similitud y a ser posible que cuente con una visualización atractiva al usuario, por ejemplo, en 3D. Por otro lado, sería necesario facilitar una interfaz que permitiera conocer el estado de los elementos implementados en esta y, simultáneamente, permitiera a un operario controlar y responder a las necesidades que puedan ser no controlables de forma automática. Por último, se busca disponer de un medio que permita que estos desarrollos se comuniquen en tiempo real de la forma más dinámica posible. Estos objetivos se unen al de legar una herramienta interactiva que permita a los futuros alumnos enfrentarse a programas y comunicaciones industriales desde su ordenador personal ya sea mediante software libre o programas cuya licencias estén disponible para estudiantes. Como respuesta a estos objetivos, en las siguientes páginas se puede encontrar un proyecto pensado para ser implementado en un Programmable Logic Controller(PLC) real, en el caso de contar con uno, o simulado. Se decide de usar un PLC para el control ya que su uso en la industria cuenta con numerosas ventajas, entre las que destacan la posibilidad de gestionar datos de forma avanzada, la fiabilidad a la hora de gestionar programas modulares, así como su facilidad para ser reprogramados. Los PLC, debido a las ventajas planteadas antes y que son equipos de una alta relación efectividad y costes, son usados, no solo en sistemas industriales, sino que también en sistemas de uso diario como podrían ser las luces de tráfico o sistemas de domótica. El código presentado además ha de seguir la estructura planteada en la Guía Gemma, documento que analiza y estudia los distintos modos de funcionamiento que se pueden dar dentro de un sistema automatizado, detallando también los requisitos necesarios para la transición entre un modo de funcionamiento y otro. E
Figura 1-1 Guia Gemma Se combina con el uso de un simulador industrial, como podría ser FactoryIO, para evitar el uso de maquinaria industrial y dotar al trabajo de gran similitud con la realidad. Se escoge el programa citado, entre otras cosas, porque propone una visualización 3D con objetos cuyas físicas son reales. Como se requiere también una interfaz que proporcione al proyecto la posibilidad de interacción humanomáquina y de conocer los estados de los elementos implementados en tiempo real, se considera como solución el desarrollo de un SCADA. Las siglas SCADA (Supervisory Control and Data Acquisition) nos dan una idea del tipo de herramienta que se puede amparar bajo el paraguas de esta definición, encontrándose aquí toda aplicación que obtenga datos operativos de un sistema a fin de controlar y optimizar el proceso. Las aplicaciones SCADA proponen una respuesta en tiempo real para controlar casi cualquier tipo de proceso industrial, gracias a que cuenta con una interfaz HMI, (Human Machine Interface) en la que se puede ver el estado tanto de sensores como de actuadores. Además de la respuesta en tiempo real, las aplicaciones SCADA, suelen proponer un histórico de datos, mediante el cual permite ver cambios de estados o alarmas asociadas y necesarias para el correcto funcionamiento del sistema. Este proyecto propone como medio de comunicación un servidor OPC, Open Platform Communicactions, debido a que este servicio proporciona un intercambio de datos estandarizado, optimizado para la automatización y desarrollado por especificaciones de diversos desarrolladores de software industrial, que aseguran su compatibilidad con sistemas industriales reales. Este servicio permite además consultar datos en tiempo real, monitorear alarmas y consultar históricos. En este proyecto se ha propuesto y desarrollado una respuesta a todas estas cuestiones que se basa en la siguiente tríada de programas: FactoryIO para la simulación de la planta, Codesys para el sistema de control y VijeoCitect para la creación de un aplicación SCADA, todos comunicados mediante un servidor OPC común, donde Codesys ejerce el rol de servidor mientras que FactoryIO y VijeoCitect actúan como clientes, estructura que se puede ver en la siguiente imagen.
11 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO Figura 1-2 Flujo de datos Concluir diciendo que, a continuacion, se pueden encontrar 5 capitulos donde se desarrollan cada una de estas ideas, comenzando por el capitulo 2, distribución y clasificación de piezas, que se encarga de desarrollar el estado del arte actual de la técnica, así como presentar la planta que se ha escogido controlar y el software, FactoryIO, encargado de simularla. Dentro del capitulo 3, se desarrolla como crear la comunicación desde cero entre los softwares que van a implementar el proyecto, también se detalla parte de los pasos necesarios para hacerlo con procesos que no son completamente nuevos. El capitulo 4, Control de la planta, profundiza mas en la teoría de los PLCs, pero su principal objetivo es detallar el código implementado para cumplir con las especificaciones del sistema planteado a lo largo del capitulo 2, comentando de forma detallada cada uno de los módulos implementados en un programa de Codesys. Por ultimo, el capitulo 5 detalla los pasos a seguir para crear un SCADA en Vijeo Citect, se aprovecha este capitulo para hablar de los detallas particulares que tendría la conexión de un proyecto ya creado en un ordenador que no fuese aquel donde se desarrollo, quedando el capitulo 6 para concluir y recopilar todas las ideas que se han afrontado en este proyecto.
13 2 DISTRIBUCIÓN Y CLASIFICACIÓN DE PIEZAS 2.1 Estado del arte Comprobar si un artículo cumple los requisitos de diseño fijados ha sido siempre una de las grandes tareas dentro de la industria, requisitos que pueden ir desde medir una pieza para asegurar su similitud con las medidas del plano, hasta seleccionar qué naranjas son aptas para el consumo humano por el color de su piel. En los últimos años, se ha producido un auge en los sistemas de visión artificial porque permiten dar una solución automática a esta tarea y, lo que empieza en los años 70 con los primeros sistemas OCR (Optical Character Recognition) que se limitaban a reconocer texto impreso en casi cualquier tipo de fuente, se convierte en la actualidad en unos de los pilares de la industria moderna. Esta tecnología, junto a la inteligencia artificial, abre la puerta a un mundo de infinitas posibilidades. Después de la clasificación, otra área de peso dentro de la industria es la distribución. En parte, esto surge como respuesta al desarrollo de la visión artificial, evolucionando estas tecnologías de la mano, ya que una clasificación más rápida abre la puerta a una distribución más dinámica y viceversa. Cuando se habla de la combinación de estas dos tareas es fácil pensar en grandes plantas automáticas como las de Amazon que, mediante robots, gestionan miles de paquetes a la hora. Tampoco es difícil encontrar en la industria proyectos de clasificación y distribución más modestos como el que propone CIU, una empresa mexicana, para la clasificación dentro del sector agrícola. Aunque estas infraestructuras sobrepasan los objetivos de este proyecto, si pueden servir como introducción de los problemas a los que se quiere dar respuesta, puente del proyecto con la industria moderna y como primeros pasos en unos procesos que están a la orden del día. 2.2 Especificaciones 2.2.1 Diseño Con todo esto sobre la mesa, el objetivo de solucionar un problema de clasificación y distribución industrial se convierte en hacer funcionar el siguiente esquema de planta industrial. Se pretende en él conectar una fuente de piezas procesadas con un puesto de almacenamiento, separando, además, las piezas que no han sido pintadas de las que sí.
Distribución y Clasificación de piezas 20 Figura 2-9 Piston Es digno de mención que FactoryIO cuenta con una herramienta que permite manipular el tiempo y hacer que los elementos se muevan a una velocidad mayor, aunque, esta no es compatible con el código que se ha implementado debido a que la velocidad del pistón se impone de forma analogica, haciendo esto que si se utiliza el factor de tiempo con el que cuenta FactoryIO el pistón no se extraiga lo suficientemente rápido como para introducir la pieza en C5. Por otro lado, es apreciable que la velocidad de respuesta del simulador depende tanto de las capacidades del equipo donde se realicen las pruebas, generando esto que los elementos que son gestionados de forma digital puedan dar problemas al ser probados en otros equipos. Se adjuntan varias imágenes de distintas vistas de la planta totalmente implementada en FactoryIO.
21 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO Figura 2-10 Vista alzado de la planta
Distribución y Clasificación de piezas 22 Figura 2-11 Vista salidas 1 y 2 Figura 2-12 Vista salida 3 y lateral Es de obligada mención hacer una explicación del porque hay que poner una pieza solida con función de carril en lo que seria C4, y es que este elemento acompaña a las piezas en su avance por C4 asegurando de esta forma que las piezas lleguen al pistón en una posición que permita su correcto empuje hacia C5. Se puede ver en la guía de configuración de FactoryIO que es posible comunicar mediante servidores OPC con distintos tipos de PLC disponibles en el mercado, esto sirve como conexión con el próximo capitulo donde se trata como realizar la conexión entre la triada de programas con la que se cuenta en este proyecto.
23 3 DETALLES DE LA CONEXIÓN OPC a elección de un método de comunicación, realmente ocupa la posición más delicada y es, por tanto, la primera en tomarse, pues es una vez decidido cómo se realiza la comunicación de los distintos elementos del sistema, cuando se podría escoger el resto de los softwares compatibles. De entre los programas escogidos es Codesys el encargado de actuar como servidor. Es necesario comentar que, aunque la versión más actual de Codesys sigue siendo de dominio público, privatiza el servicio de OPC, por lo que se escoge la versión 3.5 con el SP10, la última versión que dispone de este servicio de forma gratuita. Tanto VijeoCitect, programa que se utiliza para el desarrollo de la interfaz con usuario, del que se escoge la versión 7.4, como FactoryIO son programas software libre o que cuentan con una versión de prueba y que actúan como clientes del servidor. 3.1 Proyecto desde cero A continuación, se expone un ejemplo para la creación y conexión al servidor OPC basado la guía en una aplicación básica, semejante dentro de este proyecto a la clásica función “Hola Mundo”. En este ejemplo, se suceden cajas mediante una cinta transportadora desde un Punto A hasta un Punto B. Se incluye también un contador que cuente cuantas cajas han llegado hasta B. Esta aplicación supone una solución automática al siguiente diseño. Figura 3-1 Ejemplo basico Se escoge esta aplicación sencilla en lugar de una planta o estación completa con el objetivo de conseguir una visualización clara de los pasos que no se vea apantallada por la gran complejidad de la información que puede resultar en un sistema real. PASO 1: Programa en Codesys Con Codesys ejecutándose, se crea un nuevo proyecto. Para ello Codesys cuenta con el siguiente asistente. L
Detalles de la conexión OPC 24 24 Figura 3-2 Asistente de creador de proyectos Codesys (1) A la hora de elegir el tipo de proyecto se debe elegir un Dispositivo Codesys controler win v3, siendo indiferente el tipo de lenguaje escogido para PLC_PRG. En la función de ejemplo se ha elegido LD(Ladder), como se puede ver en la siguiente imagen. Los tipos de lenguaje de programación disponibles en Codesys se explican con más detalle en el apartado de control de Planta, ya que no se considera el código implementado en esta prueba objeto de este proyecto.
25 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO Figura 3-3Asistente de creador de proyectos Codesys (2) Es necesario destacar que para que la aplicación funcione, el primer paso es crear una lista de variables globales. Para ello, se debe hacer click derecho en Application, y gracias al desplegable llegar hasta el comando señalado en la siguiente imagen.
Detalles de la conexión OPC 26 26 Figura 3-4 Menu desplegable para funciones disponible en application Estas variables globales son las que serán visibles desde el servidor OPC, por eso se guarda la lista cómo CV (Communication Variables), aunque se comprueba que no existe problema si en esta lista se introducen variables globales del sistema que no son compartidas en el servidor.
27 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO Figura 3-5 Ventana emergente para crear lista de variables globales En lo que respecta a código, dentro de Codesys no es necesario hacer ningún paso más para abrir el servidor, pero si hace falta configurar los servicios de los que dispone este programa. Lo primero, iniciar el servicio de simulación de PLC de Codesys. Para ello, se recurre al icono de Codesys Control Win PLC en la barra de herramientas de Windows. Figura 3-6 Icono Codesys Control Win Dentro de Codesys, para configurar la conexión de la aplicación, se hace clic en la pestaña de dispositivos y se agrega una puerta de enlace. Dichos pasos pueden verse en la siguiente imagen.
Detalles de la conexión OPC 28 28 Figura 3-7 Indicaciones visuales de pasos necesarios para agregar puerta de enlace A este comando responde la siguiente ventana emergente, que informa de la dirección del servidor, se acepta para continuar. Figura 3-8 Ventana Emergente para crear puerta de enlace El siguiente paso es examinar la red dentro de la pestaña de servicios.
29 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO Figura 3-9 Elemento de Codesys desde donde se examina la red Cuando se obtienen los resultados de escanear la red, se presenta un paso crítico dentro de la creación del servidor OPC, y es que es necesario hacer un cambio de nombre del dispositivo, es de vital importancia si queremos conectar con un proyecto de VijeoCitect ya creado, asegurar que el nombre coincide con el nombre implementado en el proyecto. Figura 3-10 Comando para cambiar nombre de PLC Con el dispositivo configurado, se procede a compilar el programa. El último paso antes de establecer la conexión es añadir a los objetos de la aplicación un “Symbol Configuration”. Desde este objeto se habilita la posibilidad de gestionar cuáles de las variables globales estarán disponibles dentro del servidor OPC. Para añadirlo, se debe buscar en el submenú que se puede ver en la figura 4 y, para su configuración, es necesario fijar las siguientes características en la ventana emergente.
Detalles de la conexión OPC 36 36 Figura 3-22 Conexion Codesys-FactoryIO PASO 5: Configuración de VijeoCitect Desde un proyecto de VijeoCitect se deben seguir los siguientes pasos para establecer la conexión. Lo primero es lanzar el asistente express de conexiones. Figura 3-23 Asistente Express (VijeoCitect) Este asistente permite conectar con el PLCVirtual, para ello se tiene que seguir los siguientes pasos. Lo primero que sale en la ventana emergente del asistente es una explicación de lo que se va a hacer, se debe aceptar para continuar. La siguiente ventana, nos permite crear un nuevo servidor o conectar a uno previamente creado, los proyectos de ViejoCitect crean un servidor por defecto, por lo que se puede pulser en el comando de usar uno existente, lo que se ve en la segunda imagen. Lo que si es necesario es crear un nuevo equipo, el nombre aquí no tiene mucha importancia por lo que se deja el que pone VijeoCitect por defecto. Por último, se selecciona que se está conectando a un dispositivo externo.
37 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO Figura 3-24 Explicacion del asistente Figura 3-25 Seleccion del servidor
Detalles de la conexión OPC 38 38 Figura 3-26 Seleccion del equipo Figura 3-27 Seleccion del Tipo de equipo Se hace un corte aquí para destacar la importancia del siguiente paso a fin de que funcione la conexión y establecer el tipo de comunicación, puesto que como se ve en la siguiente imagen es necesario cambiar la configuración preestablecida a una totalmente diferente.
39 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO Figura 3-28 Seleccion del tipo de comunicacion También es de alta relevancia cambiar la dirección como se muestra en la siguiente imagen. Figura 3-29 Direccion de conexion Con el asistente de comunicación acabado, el siguiente paso es importar las variables y darles direcciones de memoria. Para ello, VijeoCitect cuenta con otro asistente que importa las variables de forma automática.
Detalles de la conexión OPC 40 40 Figura 3-30 Comando de importar Tags Este asistente tiene que ser configurado de la siguiente forma: seleccionar en I/O Device IODev, que es el nombre que se usa para el servicio en la figura 27, la database type como OPC y luego se tiene que clicar en “Browse” para acceder a la configuración de la parte derecha, la cual sirve para indicarle a VijeoCitect a qué servicio se tiene que conectar. Figura 3-31(Izquierda) Ventana emergente de asistente para importar tag. (Derecha) Ventana emergente para ubicación de parámetros Al finalizar la importación, VijeoCitect genera un informe en un documento .txt de la cantidad de variables importadas. Variables que quedan disponibles al abrir el editor de proyectos y el menú tags.
41 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO Figura 3-32 Ejemplo de etiqueta De cara a poder usar estas variables en las interfaces HMI desarrollables por Vijeo, será suficiente con copiar el “Tag Name” en las propiedades del elemento que se quiera usar. Es aquí donde se puede ver la importancia del nombre puesto en las figuras 3-10 y 3-14, pues las variables de VijeoCitect exportadas se guardan comenzando por el nombre del dispositivo del que proviene, en el ejemplo que se muestra en la figura 3-32, podemos ver que empiezan por prueba, y que esto coincide con el nombre del servidor de la figura 3-10. Para dejar constancia de un ejemplo, se muestra a continuación la implementación de la cinta que servirá como interfaz para el ejemplo que se está desarrollando.
Detalles de la conexión OPC 42 42 Figura 3-33 Ejemplo de uso de "TagName" El último paso para conectar VijeoCitect con el servidor es arrancar la simulación, para ello es necesario clicar en el icono que se destaca en la siguiente imagen. Figura 3-34 Ubicacion Simbolo para arrancar VijeoCitect Este icono está disponible desde todos los programas asociados a VijeoCitect, tanto explorador, como editor, como editor de gráficos. El resultado de todos estos pasos es que se tienen sincronizados los 3 programas, abriendo la puerta a que se simulen de forma simultánea un HMI, la planta y el PLC. Este resultado puede verse en la siguiente imagen.
43 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO Figura 3-35 Ejemplo conexion exitosa 3.2 Proyecto creado Como se ha destacado en la introducción este proyecto tiene como objetivo servir de base a futuros estudiantes del grado de ingeniería de las tecnologías industriales que quiera comenzar a desarrollar sus conocimientos en el campo de la automatización. Se considera que tener acceso a la planta desarrollada en el capitulo anterior mediante FactoryIO, así como saber como hacer la conexión con los códigos que se han desarrollado en este proyecto sería de gran conveniencia. Además, con intención de que los próximos estudiantes que se decidan por este diseño puedan desarrollar sus herramientas de forma libre e independiente, se facilita una versión en blanco (version0.project) de un archivo CodeSys cuyo único desarrollo es la implementación de las variables necesarias para conectar con FactoryIO. A continuación, se puede ver en una tabla las variables que son necesaria para que se haga la correcta conexión con FactoryIO, así como el tipo y una ligera explicación de a que elemento van asociadas. Tabla 1 Variables compartidas entre Codesys y FactoryIO Variable TIPO Descripción C1 BOOL Variable que indica el estado de la cinta 1 C2 BOOL Variable que indica el estado de la cinta 2 C2_r BOOL Variable que indica el estado de la cinta 2, en particular de la segunda parte de esta cinta C2_r2 SINT Variable que indica el estado de la cinta 2, en particular de la segunda parte de la parte curva al final de esta cinta C3 BOOL Variable que indica el estado de la cinta 3 C4 BOOL Variable que indica el estado de la cinta 4
Detalles de la conexión OPC 44 44 C4_r BOOL Variable que indica el estado de la cinta 4, en particular de la segunda parte de esta cinta C5 BOOL Variable que indica el estado de la cinta 5 C6 BOOL Variable que indica el estado de la cinta 6 Ac_Rt BOOL Variable que indica el estado de la cinta asociada retenedor de Cinta 3 AC_Rt2 BOOL Variable que indica el estado de la cinta asociada retenedor de Cinta 5 Rt BOOL Variable que indica el estado del retenedor de Cinta 3 Rt2 BOOL Variable que indica el estado del retenedor de Cinta 5 P BOOL Variable que indica el estado del pistón V_P SINT Variable que indica la velocidad del pistón P_P SINT Variable que indica la posición del pistón SV WORD Variable donde se ve la lectura del sensor de visión, se sabe que el sensor de visión da un valor distinto de 0 cuando hay una pieza frente a el SE BOOL Variable donde se detecta la entrada de piezas en el sistema SC3 BOOL Variable donde se detecta la entrada de piezas en la C3, sirve también para detectar la salida de las cinta de C2 SC4 BOOL Variable auxiliar, que se activa siempre que el sensor de visión tenga un valor distinto de 0. Se utiliza para utilizar en circuitos lógicos cuando hay una pieza delante de ese sensor, situación que se da cuando una pieza sale de C3 para entrar en C4 SC5 BOOL Variable donde se detecta la salida de C5 para ser recirculada al sistema. SP BOOL Variable donde se detecta la presencia de piezas delante del pistón y por lo tanto, al alcance de este y sirviendo también para marcar cuando salen las piezas de C4 y entran en C6 SPdt BOOL Sensor de tope delantero del pistón SPtt BOOL Sensor de tope trasero del pistón SS3 BOOL Sensor que detecta la salida de piezas por S3 SS6 BOOL Sensor que detecta la salida de piezas por S1 SDEF BOOL Sensor que detecta la salida de piezas por S2
45 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO Si se quiere conectar esta versión en blanco con la versión de la planta se tienen que seguir los pasos 1, 2 y 4 de esta guía. Se aprovecha esta explicación para mostrar como quedaría sería la conexion de los driver de FactoryIO en este caso. Figura 3-36 Conexion FactoryIO-Codesys con planta propuesta
Control de la planta 52 52 Figura 4-10 Codigo M_Manual_Active La última especificación a la que responde el funcionamiento normal es la restauración del estado inicial del sistema. Como se especifica en las especificaciones del sistema, se deben tratar todas las piezas restantes en el sistema tras pasar por el modo manual, de esto se encarga M_EMyA. Este programa mantiene todas las cintas activas hasta que pasan 30s sin que se active ninguno de los sensores, aunque esta gestión temporal se programa en el código auxiliar TIMER, a continuación, podemos ver como, se desactivan C1 y se deshabilitan los retenedores, se mantienen activas todas las demás cintas. Se activa también la variable GVLNC.INTER_UP Figura 4-11 Codigo M_EMyA_Active (1)
53 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO Figura 4-12 Codigo M_EMyA_Active (2) Por último, hay que comentar que, a diferencia de M_Automatico_Active, M_EMyA hace que todas las piezas que lleguen al pistón, indiferentemente de su acabado sean recirculadas a C5, como se puede ver en la siguiente imagen. Figura 4-13 Codigo M_EMyA_Active (3) Normal (ST_) Como se ha especificado en los códigos de determinación de modo de funcionamiento, Normal_Active se encarga de responder a la pregunta de si el sistema se encuentra en funcionamiento o no, y como también se ha comentado antes, podemos encontrar 3 estados diferentes, se ha desarrollado como respuesta una POU(Program Organization Unit) independiente para cada uno de ellos. Como pasa con las POUs relacionadas con el parado de funcionamiento sin anomalías, se ha creado una etiqueta (ST_) que permite identificar cada uno de estas POUs implicadas. Primero, ST_Paro, gestiona el sistema cuando está parado. Se encarga de dar orden de detección a todos los elementos del sistema. Figura 4-14 Codigo ST_Paro Se implementa a la salida de este bloque, una POU para asegurar que los contadores se reinicien al mismo momento que arranca el sistema.
Control de la planta 54 54 Figura 4-15 Codigo ST_PARO_EXIT En segundo lugar, podemos ver ST_Marcha, que como se ha comentado antes, toma la decisión de si el sistema se encuentra en modo manual o automático. Podremos encontrar dentro de este código de SFC los objetos de los modos de operación asociados al funcionamiento sin anomalías. Por último, desde ST_Inter, se produce la gestión de la parada programada del sistema, procesando todas las piezas restantes y parando las cintas conforme estas quedan vacías. Las siguientes imágenes detallan el código implementado para cumplir con este funcionamiento, pero hay que destacar, que en la imagen 4-18 se ve como se sigue haciendo la separación de las piezas defectuosas. Figura 4-16 Codigo ST_INTER (1) Figura 4-17 Codigo ST_INTER (2) Figura 4-18 Codigo ST_INTER (3) Fnc_Fail Como respuesta al modo de funcionamiento con fallo surge este código, se implementa en LD, y se encarga de responder a las especificaciones que se piden para este modo Por un lado, una de las tareas principales de este módulo es la detección de C1, detección que evita que las piezas sigan entrando en el sistema y este colapse, también se deshabilita el retenedor 2, el asociado a C5, para
55 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO que la recirculación de piezas sea posible. Se puede ver que todas las cintas estén encendidas siempre que haya piezas en ellas al igual que en M_Automatico_Active. Figura 4-19 Codigo FNC_FAIL (1) Figura 4-20 Codigo FNC_FAIL (2) Por último, hay que comentar que, al igual que M_EMyA, hace que todas las piezas que lleguen al pistón, indiferentemente de su acabado son recirculadas a C5, como se puede ver en la siguiente imagen. Figura 4-211Codigo FNC_FAIL (3) Critic Este objeto responde al estado crítico del sistema, citando las especificaciones, cuando la Salida S6 ha estado bloqueada por más de 5 minutos. Responde a un código simple, en el que se bloquea la actuación de todos los actuadores. Figura 4-22 Codigo Critic Como ya se ha especificado, es necesario que se produzca de forma simultánea una desactivación del sensor de salida, SS6, y que se proceda al rearme, esto se puede ver en la transición “Critic_fin”
Control de la planta 56 56 Figura 4-23 Condicion de salida de critic La variable que marca que el sistema se encuentra en estado crítico (GVL. critic) debe ser desactivada usando la funcionalidad de Codesys de acción de salida, esta responde al código Critic_exit. Figura 4-24 Codigo complementario a critic Emergencia (E_) Al igual que en modos de funcionamiento anteriores, se ha creado la distinción E_ para facilitar el reconocimiento de los códigos asociados con el funcionamiento de emergencia. Se han implementado dos POUs distintos encargados de detener íntegramente los elementos del sistema E_Paro_Active, que es el encargado de hacerlo en mientras la seta de emergencia esté activa y E_ConfirmacioM_Active, que es el encargado de esperar que el operario confirme el rearme de la planta. Ambos funcionan de forma idéntica en lo que a parar los elementos se trata, como se puede ver en la siguiente imagen, detienen todos los elementos del sistema. Figura 4-25 Codigo de comun E_Paro y E_Confirmacion Pero cada uno activa su propia variable de estado. Figura 4-26 Variable de estado Emergencia Figura 4-27Variable de estado confirmacion
57 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO E_Aux2 se implementa para desactivar estas dos variables, con esto se da por finalizado el estado de emergencia y se normaliza de forma que se pueda volver a pasar ante futuras pulsaciones. Figura 4-28 Codigo E_Aux2 4.3 Códigos Auxiliares Los códigos auxiliares se desarrollan como herramientas que son necesarias para el control, además, suelen ser herramientas que entren en funcionamiento con varios módulos de los implementados. Para este sistema se utilizan 3. Contador Contador, por ejemplo, es el código encargado de llevar la cuenta de las piezas sobre cada una de las cintas. Se apoya en los sensores de entrada para reflejar en las variables OFFX y ONX el estado de cada una de las cintas según el valor de la cuenta actual, ONX se establece a uno, el momento que alguna pieza llega a la cinta, y OFFX, en el momento que ésta queda vacía. Codesys cuenta con una función, que responde a las necesidades de conteo que plantea esta instalación de forma casi satisfactoria, presentando como limitación que no está pensada para que varios sensores modifiquen la cuenta de forma simultánea. El ejemplo perfecto de uso de esta función lo tenemos en C4, que solo cuenta con una salida y una entrada, otros posibles ejemplos de uso de esta función son C2 y C3, ya que, aunque tienen dos entradas (caso de C2) o dos salidas (caso de C3), no se pueden dar de forma simultánea. Figura 4-29 Sistema de conteo C4 Figura 4-30 Sistema de conteo C2
Control de la planta 58 58 Figura 4-31 Sistema de conteo C3 Por el contrario, la cuenta total de las piezas en el sistema o la cuenta asociada a C6 necesitan apoyarse en CTU (contador ascendente), en variables globales y en auxiliar debido a que estos elementos pueden tener dos entradas o salidas habilitadas de forma simultánea. C5, por el contrario, se configura de esta manera, para reutilizar los elementos configurados en el sistema. Se muestra en la siguiente imagen cómo se configura el CTU para contar las piezas que pasan por el sensor SE, y se guarda el valor en CE. Figura 4-32 Contador CTU Este código se repite para cuando las piezas pasan por cada uno de los sensores de salida (S3, S6, SDEF) así como para cuando el pistón recircula una pieza o sale de C5 y aunque se han detallado en el Anexo, es mención obligada para poder entender cómo funciona la cuenta de estos elementos de las siguientes variables: Tabla 2 Variables asociadas a cuentas Nombre Descripcion CE Piezas que pasan por SE CSS6 Piezas que salen por S1 CDEF Piezas que salen por S2 CSS3 Piezas que salen por S3 CRC Piezas enviadas a C5 por el pistón CSS5 Piezas que vuelven a entrar en el sistema por la conexión C5-C2 CE6 Piezas que pasan por delante de SP
59 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO Se definen las cuentas del total de piezas dentro del sistema (CC1) como las piezas que entran por SE (CE), menos la que salen por cada una de las salidas (CDEF, CSS6, CSS3), se puede ver también en la siguiente imagen que, la cuenta de piezas en C6 (CC6), se definen como las piezas que pasan por el pistón (CE6) menos las que son recirculadas (CRC) y las salen por S6(CSS6). Por último, se configura la cuenta en C5 para que sea el resultado de las piezas que son recirculadas (CRC), menos las que son defectuosas (CDEF) y las que salen de la cinta por SC5(CSS5). Figura 4-33 Cuentas implementadas en ST Este fragmento de código mostrado anteriormente es parte de Auxiliar, por otro lado, Auxiliar se encarga también de la gestión de ONX y OFFX, donde X puede ser 5 o 6. Figura 4-34 Control de las variables ON y OFF Timer Es el programa que recopila todos los temporizadores usados en el programa. Estos son 4 y responde a las siguientes necesidades: Tiempo activo de S6 para que se considere fallo Tiempo activo de S6 para que se considere fallo crítico Tiempo necesario sin activación de sensores para considerar el sistema vacío Este último utiliza la variable para ver cuando se da uno de los estados que vacía el sistema de forma completa, en las especificaciones podemos ver que estos son el cambio de manual a automático y el proceso de parado del sistema. Se utiliza para la programación de estos elementos la función TON de Codesys, la que activa la variable salida siempre que el circuito lógico anterior de un valor alto durante el tiempo definido, también la desactiva cuando el circuito lógico se apaga.
Control de la planta 60 60 Figura 4-35 Timers implementados Auxiliar Como su nombre indica, se encarga de un popurrí de funciones que son necesarias para asegurar el correcto funcionamiento del sistema. Gestiona que la lectura de los botones se haga una única vez, aunque la pulsación dure más de un ciclo de PLC. Figura 4-36Lectura de botones Se encarga de tareas menores, por ejemplo, asegura que, aunque la C2 se compone de distintas partes, las variables que comunican al simulador que esta cinta se encuentra activa tengan todas el mismo valor. Ocurre lo mismo para C4.
61 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO Figura 4-37 Actualizacion de reflejos (1) Pasa algo parecido con los retenedores y las cintas que sirven para acelerar las piezas cuando chocan con ellos. También pasa con el pistón, aunque como se puede ver en el anexo, este necesita una variable de tipo WORD, para que la comunicación sea efectiva. Ambas ideas, se pueden ver reflejadas en la siguiente imagen. Figura 4-38 Actualizacion de reflejos (2) Pero entre todas las tareas dentro de auxiliar destaca que, se ha desarrollado para gestionar la lectura del sensor, asegurando que se cree una cola con las piezas que están en C4, y que la lectura de este solo ocupe una posición por pieza. También sincroniza la lectura de la cola comunicando al pistón las piezas que tiene que
SCADA 68 68 Figura 5-8 Ejemplo de agrupacion de elementos Como se puede ver en las siguientes imágenes, VijeoCitect cuenta con una propiedad que hace que las piezas se oculten cuando se active una variable. Se gestiona estos grupos creado anteriormente para que cuando se active el pistón desaparezca las piezas grises y queden visible solo las piezas verdes. Figura 5-9 Ejemplo de uso de atributos para grupos
69 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO Gracias una agrupación que engloba todas los símbolos implementados en el genio se puede convertir este en un botón, que permita alterar el valor de alguna variable del sistema, convirtiéndo así el genio, en una parte funcional de la botonera. Figura 5-10 Creacion de boton Es a la hora de usar el genio cuando el propio software habilita las propiedades del genio y permite cambiar automáticamente la cadena de sustitución antes citada por la etiqueta de la variable. Figura 5-11 Ejemplo de uso Se considera que hay dos elementos más dignos de mención, que se han creado por genios cuyo funcionamiento facilita la interpretación del sistema al usuario, y por un lado son el indicador de estado, que presenta como se puede ver en la siguiente imagen todos los estados disponibles en el control.
SCADA 70 70 Figura 5-12Estados implementados Por otro lado, los indicadores de estado de detección total, el error crítico y el estado de emergencia, los cuales se mantienen ocultos hasta que se dan las detecciones y que son los que habilitan el botón de rearme hasta que se convierte en necesario para la salida del estado. Se muestra en la siguiente imagen la representación del error crítico en la implementación real del sistema. Figura 5-13Mensaje de advertencia
71 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO A continuación, se encuentra una imagen de una situación de funcionamiento sin ningún tipo de error, donde se puede ver el desarrollo de cada uno de los elementos del sistema en funcionamiento. Figura 5-14Aplicacion en uso Lo último que habría que comentar de SCADA, se encuentra arriba del HMI, y es el histórico de funcionamiento. Aquí, gracias a la herramienta de Alarmas con la que cuenta VijeoCitect, podemos ver el momento desde el que está activo el estado actual. Figura 5-15 Detalle de historico Esta función, sólo necesita que se defina el nombre y una etiqueta para la variable, así como en qué condiciones se activa para dejar reflejo y constancia del momento de activación del modo de funcionamiento.
SCADA 72 72 Figura 5-16Creacion de alarmas en VijeoCitect 5.2 Conexion A este documento, se adjunta un achivo de VijeoCitect llamado “Version6.ctz “, este esta pensado para conectarse solo y exclusivamente con el código desarrollado en el apartado 4, código que se puede encontrar en el archivo “Version12.project”. Los archivos “. ctz” son los que crea VijeoCitect cuando hace copias de seguridad, para conseguir que el archivo se implemente es necesario usar el comando que podemos ver en siguiente imagen dentro del explorador de proyectos.
73 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO Figura 5-17 Restaurar proyecto en Vijeocitect La limitación de uso se da debido a varias razón, pero la principal, es que el nombre de las variables asociada a las “TagName” del proyecto de VijeoCitect, como se puede ver en las figuras 3-32 y 5-11 se encuentra asociado a las variables código desarrollado para cumplir las especificaciones citadas. Por no poner información redundante, se puede ver en la tabla 3 del anexo cuales son las variables que se comparten entre estos dos programas. Para realizar la conexión, y que esta no sea errónea, solo es necesario seguir los pasos 1 y 2 de la guía propuesta en el capitulo 3 de este documento. Hay que prestar especial atención a las figuras 3-10 y 3-14 pues cuando seleccionemos el nombre este debe ser PLC1, de lo contrario, será necesario repetir íntegramente el Paso 5, así como renombrar la totatilidad de variables usadas en los objetos de VijeoCitect.
Conclusion 74 74 6 CONCLUSION ara finalizar el trabajo, se presentan las mayores limitaciones afrontadas y se pone sobre la mesa las mejoras que podrian darse a este proyecto a la vez que se enfrentan los objetivos para ver si se han conseguido de forma satisfactoria o no. Por un lado, la mayor limitación con la que cuenta este proyecto es su propia base, ejecutar 3 programas de uso industrial de forma simultánea en un ordenador de uso personal requiere que las características de este sean de una gama media o alta. De no ser así, se nota en la velocidad de respuesta del sistema como conjunto global y se puede apreciar que es necesario una modificación de la velocidad de respuesta de los elementos programados como digitales en el simulador para ajustarlas a la respuesta del programa que se ve ralentizada. Por otro lado, la biblioteca de elementos de FactoryIO cuenta con pocos tipos de estaciones industriales a las que acceder y las que están disponibles se ven bastante limitadas en sus acciones, esto limita en gran medida las cantidad y el tipo de distribución industrial que se puede llegar a construir. Aun así, se plantea un proyecto que cumple con los objetivos planteados desde un principio. Para empezar, controla de forma óptima un proceso de clasificación de objetos y de forma simultánea se encarga de distribuirlos a lo largo y ancho de la planta. Con esto se consigue una primera aproximación al mundo de la automatización industrial. Sirve este trabajo para adentrarse en la guía gemma, conocer una nueva forma de hacer los distintos cambios de modo de funcionamiento y descubrir programas de uso industrial que sirvan como primer contacto con una ambiente laboral, destapando una nueva forma de trabajar que no requiere de una inversión en equipos o dispositivos de control para ello. Mediante el desarrollo de la aplicación SCADA, se puede ver en el desarrollo de este proyecto como trabajar con sistemas que necesiten o que gestionen elementos en tiempo real, para que sirve y cómo se utiliza una interfaz HMI. Por último, y más importante, se consigue dejar unas bases asentadas, así como herramientas utiles, para que futuras generaciones estudiantiles tengan un punto de comienzo fácil y guiado de lo que es la automatización industrial y cómo enfocarla. Este futuro se puede ver en las muchas posibilidades que se abren ante este proyecto, donde entre las posibles mejoras destacan, la posibilidad de hacer una clasificación tricolor dando un uso más óptimo a la S3, este desarrollo podría ir de la mano de la gestión de nuevos modos de funcionamiento de la guía gemma como podría ser una parada de fin de ciclo o una parada por mantenimiento, el fallo de algun sensor de las cintas, o incluso aprovechar para introducir alguna de las estaciones industriales con las que cuenta FactoryIO para hacer más compleja la distribución. Por otro lado, la implementación de un histórico que permita conocer fecha y hora la que ha llegado alguna pieza defectuosa, o la posibilidad de generar un informe que deje reflejado estos hechos son mejoras que serían interesantes de implementar en el SCADA desarrollado. Como resultado a todo lo dicho anteriormente se ha generado una versión de Codesys vacía que permite conectar con la planta, una que se encarga de conectar con la planta (version0.project) y controlarla según las especificaciones que se han presentado (version12.project). Ambas versiones se presentan acompañadas de un SCADA, desarrollado en VijeoCitect, bajo el nombre de “versión6.ctz” Se puede afirmar por tanto que los resultados del proyecto han sido alcanzados satisfactoriamente respecto a P
75 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO las expectativas puestas en él
77 REFERENCIAS [1] D.Muñoz, F. Salas, D. Limon, C. Bordons, “Fundamentos de control automatico”, US. Dpto. Ingeniería de Sistemas y Automática. [2] Pedro ollero de Castro y Sebastian chacón Blanco, “Dinámica y control de procesos químicos. Sistemas complejos de control”, US departamento de publicaciones. [3] Frank Iwanitz, Jurgen Lange OPC Fundamentals, Implementation, and Application 2nd rev. Ed. [4] OPC Foundation [En línea], Available : https://opcfoundation.org/ [5] Codesys, «Codesys OPC Server» [En linea], Available: https://www.codesys.com/products/codesysruntime/opc-server.html [6] Schneider Electric España, «Youtube», [En línea]. Available: https://www.youtube.com/user/SchneiderElectric [7] IEEE Communications Surveys and Tutorials. "Introduction to Industrial Control Networks" 2012. [8] IBM [En linea], Available : https://www.ibm.com/topics/computer-vision [9] Corporacion Industrial Uruapan «Youtube», [Enlínea]. Available: https://www.youtube.com/user/CIUURUAPAN [10] Miguel Lopez, Articulo, 30 de abril 2017 [En linea], Available : https://www.xataka.com/robotica-eia/este-es-el-primer-almacen-robotizado-de-amazon-en-espana [11] Wonderware Iberia [En linea], Available : https://www.wonderware.es/hmi-scada/que-es-scada/ [12] Automation Engineer, “Create new symbol with Symbol Factory” , <<Youtube>>, [En Línea], Available: https://www.youtube.com/watch?v=MW4MU1IMIwA [13] AMCI [En linea], Available : https://www.amci.com/industrial-automation-resources/plc-automationtutorials/what-plc/ [14] Schneider Electric, Ayuda en línea, [En línea] : https://product-help.schneiderelectric.com/Machine%20Expert/V1.1/es/SoMProg/SoMProg/Logic_Editors/Logic_Editors.htm [15] Trimantec, PLCs Explaine d: Programmable Logic Controller Basics, [En linea] : https://trimantec.com/blogs/t/plcs-explained [16] RealGames, Ayuda en línea FactoryIO, [En Línea] : https://docs.factoryio.com/tutorials
Anexo 84 84 CC3 WORD Cuenta de piezas en Cinta 3 ↔ CC4 WORD Cuenta de piezas en Cinta 4 ↔ CC5 WORD Cuenta de piezas en Cinta 5 ↔ CC6 WORD Cuenta de piezas en Cinta 6 ↔ reset BOOL Variable que permite reiniciar la cuenta de los contadores ↔ pcambio BOOL Variable que marca cuando se esta realizando el paso de automático a manual pfin BOOL Variable que marca cuando se esta realizando la parada programada del sistema CE WORD Cuenta de piezas entran en el sistema en total CSS3 WORD Cuenta de piezas salen del sistema por S3 CSS6 WORD Cuenta de piezas salen del sistema por S1 CRC WORD Cuenta de piezas que son redirigidas por el pistón CSS5 WORD Cuenta de piezas que pasan por el sensor de salida de la cinta 5 (SC5) CDEF WORD Cuenta de piezas salen del sistema por S2 CE6 WORD Cuenta de piezas entran en Cinta 6 ON1 BOOL Variable que utilizan los contadores para marcar cuando C1 cuenta con piezas ON2 BOOL Variable que utilizan los contadores para marcar cuando C2 cuenta con piezas ON3 BOOL Variable que utilizan los contadores para marcar cuando C3 cuenta con piezas ON4 BOOL Variable que utilizan los contadores para marcar cuando C4 cuenta con piezas ON5 BOOL Variable que utilizan los contadores para marcar cuando C5 cuenta con piezas ON6 BOOL Variable que utilizan los contadores para marcar cuando C6 cuenta con piezas OFF1 BOOL Variable que utilizan los contadores para marcar cuando C1 no cuenta con piezas
85 Control, Simulación y Desarrollo de estación industrial mediante Codesys, VijeoCitect y FactoryIO OFF2 BOOL Variable que utilizan los contadores para marcar cuando C2 no cuenta con piezas OFF3 BOOL Variable que utilizan los contadores para marcar cuando C3 no cuenta con piezas OFF4 BOOL Variable que utilizan los contadores para marcar cuando C4 no cuenta con piezas OFF5 BOOL Variable que utilizan los contadores para marcar cuando C5 no cuenta con piezas OFF6 BOOL Variable que utilizan los contadores para marcar cuando C6 no cuenta con piezas inter_up BOOL Variable que determina si alguno de lo estados intermedios esta activo defecto BOOL Varible que marca si la proxima pieza que va a llegar al piston es defectuosa o no Se puede ver gracias a esta tabla, como algunas de las variables globales, como por ejemplo defecto, solo son necesarias para comunicar las distintas POUs que conforman el proyecto en codesys, pero otras si son necesarias para la comunicación entre softwares.