Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Instituto Tecnológico de La Laguna Ingeniería Mecatrónica Control de Procesos Grupo I88A Docente: M.C Nazle Edith Herrera Carrillo Proyecto Final: Hospital Alumnos: Jesús Norberto de la Cruz Gutiérrez 19131190 Abril Andrea Facio Esqueda 19131199 Eduardo Antonio Rodríguez Guerra 19131252 Cristal Aricel Sáenz Hernández 18131059 Francisco Javier Salinas Contreras 19131262 Fecha y lugar de entrega: 01 de diciembre de 2023, Torreón, Coahuila Resumen- Descripción del proyecto El proyecto Hospital consiste en la programación e implementación de sensores y actuadores en una estructura para hacer una representación a escala del funcionamiento de un edificio de un hospital. Para la elaboración del proyecto se implementaron diferentes conocimientos y elementos que forman parte de la materia de Sensores Inteligentes, Control de Procesos y Temas Selectos de Redes, que abarcan la implementación de actuadores (Motor, Servomotor, LEDs y Buzzer), sensores (sensor de temperatura LM35, sensores infrarrojos, sensor de gas Mq2 y sensor ultrasónico), un sistema de visión para la detección de colores controlado por el programa Spyder y Arduino IDE, un sistema SCADA desde el software de LabVIEW y un sistema de envió de datos utilizando el programa de LabVIEW, Arduino IDE y Tia Portal. Se utilizó una tarjeta Arduino UNO para la lectura de los valores de los sensores y para la activación del servomotor, mientras que el resto de los actuadores se activaron a partir de un PLC 1214AC/DC/RLY. Para obtener esto, fue necesario la comunicación de los datos recibidos por el Arduino hacia el PLC, por lo que se empleó una placa de Arduino Shield, la cual permitiría la comunicación Ethernet. Además, fue incluido una página web para el encendido de LEDs presentes en el hospital a través de IoT, en colaboración con una ESP32. Para el cumplimiento de este proyecto, fue necesario incorporar de todos los elementos mencionados con el fin de incluir el sistema de visión a un proceso y al mismo tiempo conseguir un monitoreo en tiempo real de la manera en que están cambiando las variables físicas en un entorno, llegando a contemplar los alcances que tienen estos medios y tecnologías para el desarrollo rápido y eficaz de diversos procesos. Introducción Los sistemas de visión son elementos importantes presentes en muchos procesos y dispositivos en la actualidad, ya que cuenta con muchas aplicaciones, como en la industria para la inspección de calidad o el control de procesos, la medicina con imágenes médicas y la realización de diagnósticos, en los vehículos autónomos para la realización de maniobras o la prevención de accidentes, en sistemas de seguridad, agricultura, entre otros Su valor principal está en el empleo de diferentes tecnologías para recabar información visual de manera detalla, y después, realizar una interpretación para la toma de decisiones y el cumplimiento de objetivos establecidos. Este tipo de sistemas si bien funcionan por cuenta propia para la recopilación de información, el procesamiento de imágenes, o el análisis y reconocimiento de patrones, también pueden trabajar en colaboración con otros sistemas o elementos para cumplir diversas funciones, como la activación de actuadores o el envío de información a otros dispositivos de forma rápida. La detección de colores es una de las acciones más realizadas por los sistemas de procesamiento de imagen, en donde se captura la imagen a través de una cámara de video, la imagen se representa en un espacio de color como RGB, HSV o Lab, se realiza una umbralización para establecer los rangos de color que se desean captar y finalmente una acción que puede ser visualizada por medio de un actuador o el envío de información. Con esta acción, es posible realizar un mecanismo de accionamiento para activar o desactivar el funcionamiento de un actuador. En el caso del proyecto realizado, el sistema de visión trabaja en paralelo a un sistema SCADA que activa y desactiva diferentes actuadores presentes en una estructura. El actuador asociado al sistema de visión es un motor de corriente directa acoplada a un reductor para poder elevar o bajar un elevador. Dependiendo de qué color es captado por la cámara, mandará una instrucción de la manera en que funcionará el motor, ya sea para subir o bajar. De manera general, el funcionamiento de esta parte del sistema consiste en la detección de tres colores (amarillo, azul y rojo). Si la cámara detecta un color azul, el elevador se transportará al segundo piso, si detecta un color rojo, se moverá a un tercer piso, y si detecta un color amarillo, se trasladará al primer piso. SCADA (Supervisory Control and Data Acquisition, es decir, Supervisión, Control y Adquisición de Datos) es un tipo de aplicación empleado en muchos procesos industriales para su automatización. Esto permite que las empresas tengan un mayor control en la manera en que se realizan todas las actividades en la industria, de manera que existe una supervisión en tiempo real por parte de los empresarios para conocer las acciones que se realizan, el nivel de rendimiento que tiene la producción, la manera en que se administran los recursos materiales, entre otros aspectos. Los sistemas SCADA pueden monitorizar una amplia variedad de parámetros presentes en instalaciones, empleando sensores y transmisores que miden magnitudes físicas y envían esta información a través de distintas redes de comunicación. Si bien, su aplicación principal es enfocada a la industria, estos sistemas también son empleados en infraestructuras, como en los edificios inteligentes. El empleo de esta aplicación para el control y monitoreo de diferentes equipos o dispositivos en un edifico puede ser empleado en diferentes tipos de instalaciones como hogares, tiendas, negocios, comercios, bancos, hospitales, entro otros. Para la realización del proyecto, se buscó diseñar un sistema SCADA que permita visualizar el funcionamiento de diferentes actuadores que pueden estar presentes en un hospital, como los son las luces, alarmas, puertas o elevadores. A su vez, se emplean de sensores que miden magnitudes como la temperatura, la presencia de gas, así como para saber en qué piso se encuentra el elevador. A través del programa de LabVIEW, tendremos la visualización de qué actuadores se encuentran encendidos y apagados, y los valores de las variables físicas mencionadas. Marco Teórico Sistema de visión Un sistema de visión es un conjunto de tecnologías, hardware y software diseñados para capturar, procesar, analizar e interpretar imágenes del mundo real. Estos sistemas están inspirados en la capacidad humana de ver y entender visualmente su entorno. Sus principales componentes son: • Sensores o cámaras: Dispositivos que capturan imágenes del entorno. Existen diferentes tipos de capturadores según su resolución, su tipo de sensor (como cámaras RGB, cámaras infrarrojas, etc.) y su capacidad para capturar diferentes longitudes de onda de luz. • Procesamiento de imágenes: Utiliza algoritmos y software para procesar las imágenes capturadas. Esto incluye tareas como filtrado, mejora de calidad, segmentación de objetos, detección de bordes, etc. • Análisis y reconocimiento: Aplicación de algoritmos para identificar patrones, objetos o características específicas dentro de las imágenes. Algunos ejemplos de aplicación son el reconocimiento facial, clasificación de objetos, seguimiento de movimiento, entre otros. • Toma de decisiones: Basado en la información extraída de las imágenes, el sistema toma decisiones, como activar alarmas, realizar acciones automáticas o proporcionar datos para la toma de decisiones humanas.Detección de colores La detección de colores en el procesamiento de imágenes implica identificar y segmentar áreas específicas de una imagen basándose en sus propiedades cromáticas. Los pasos del proceso son: 1. Captura de la imagen: El proceso comienza con la captura de una imagen utilizando una cámara u otro dispositivo de captura. 2. Espacio de color: Las imágenes se representan en un espacio de color, como RGB (rojo, verde, azul), HSV (matiz, saturación, valor), LAB, entre otros. Cada espacio de color tiene sus propias ventajas para detectar colores en función de cómo se representan las diferentes tonalidades y combinaciones de colores. 3. Umbralización: Se establece un umbral dentro del espacio de color elegido para definir los rangos de colores que se desean detectar. 4. Segmentación: Se aplica este umbral a la imagen original para segmentar o separar las áreas que cumplen con los valores de color definidos. Esto crea una máscara o una imagen binaria donde los píxeles correspondientes al color deseado están representados como blancos (o 1) y los demás como negros (o 0). 5. Postprocesamiento: Se realizan operaciones adicionales como eliminación de ruido, unión de regiones, o erosión/dilatación para mejorar la precisión de la detección de colores. 6. Análisis o acción: Una vez que se ha identificado y segmentado el color deseado, esta información se utiliza para realizar acciones específicas, como el seguimiento de un objeto de ese color, la clasificación de elementos, o cualquier otra tarea relacionada con la detección de colores. Espacios de color El espacio de color es la gama de colores que puede representar un ordenador, es una lista estándar de colores codificados. Básicamente, es un modelo que organiza y describe los colores en función de sus componentes primarios, lo que permite representar visualmente los colores de una manera que pueda ser interpretada por dispositivos electrónicos y por el ojo humano. Existen varios modelos de espacio de color: • RGB (Rojo, Verde, Azul): Es uno de los modelos más comunes, utilizado en monitores, cámaras y dispositivos digitales. Describe los colores en términos de la combinación de luz roja, verde y azul en diferentes intensidades. • CMYK (Cian, Magenta, Amarillo, Negro): Ampliamente usado en la industria de la impresión, describe los colores en términos de la absorción de tintas cian, magenta y amarilla, junto con una tinta negra (Key). • HSV (Matiz, Saturación, Valor): Organiza los colores en función de su matiz (tonalidad), saturación (pureza del color) y valor (brillo o luminosidad), lo que lo hace útil para manipular colores de manera más intuitiva. • LAB: Este espacio de color separa la información sobre la luminosidad del color (luz vs. oscuridad) de la información de los colores (tono y saturación), lo que lo hace útil en aplicaciones de edición de imágenes y visión por computadora. HSV El modelo de color HSV se basa en un sistema de color en el que el espacio de color se representa mediante un único cono: tono, saturación y valor. Estas tres magnitudes pueden tener los siguientes valores: • H (color en concreto). Valores de 0-360º. La gama cromática se representa en una rueda circular y este valor expresa su posición. • S (Saturación). Valores de 0-100%. De menos a más cantidad de color. • V (Brillo). Valores de 0-100%. De totalmente oscuro a la máxima luminosidad. Spyder Spyder es un entorno de desarrollo integrado (IDE) de código abierto en el lenguaje Python. Proporciona una experiencia integral de desarrollo con características para el análisis avanzado de datos, su visualización y depuración. También incluye las siguientes características: • Editor completo de código que admite varios lenguajes • Consola interactiva de IPython • Depurador básico • Bibliotecas científicas, como Matplotlib, SciPy y NumPy • Posibilidad de explorar variables en el código • Posibilidad de visualizar documentación en tiempo real OpenCV OpenCV es una librería de computación visual para el procesamiento de imágenes en Python. Esta biblioteca proporciona herramientas para realizar operaciones de procesamiento de imágenes, como el filtrado, la detección de bordes, el reconocimiento de características, el seguimiento de objetos, etc. Estas herramientas permiten desarrollar aplicaciones de visión artificial, como el reconocimiento facial, el seguimiento de objetos, etc. Con sus más de 2500 algoritmos, OpenCV es capaz de acciones como las siguientes: • Identificar objetos o caras (reconocimiento facial). • Encontrar imágenes similares. • Eliminar los ojos rojos de las fotografías. • Reconocer escenarios. • Seguir los movimientos de los ojos. • Clasificar acciones humanas que estén en videos. • Extraer modelos 3D. • Útil en campos como la robótica y la realidad aumentada. Arduino IDE Arduino IDE (Integrated Development Environment, por sus siglas en inglés) es un entorno de desarrollo que se utiliza para programar placas de desarrollo basadas en el microcontrolador Arduino. El IDE de Arduino proporciona un conjunto de herramientas que facilita la escritura y carga de programas en las placas Arduino. Sus principales características y componentes son: • Editor de código: Ofrece un entorno de programación con resaltado de sintaxis y funciones autocompletas para facilitar la escritura del código. • Compilador: Transforma el código escrito por el usuario en instrucciones que la placa Arduino puede entender. • Cargador de arranque (Bootloader): Permite cargar el código compilado en la placa a través de un puerto USB, sin necesidad de un programador de hardware adicional. • Monitor Serie: Facilita la comunicación entre la placa Arduino y el ordenador, permitiendo la visualización de mensajes y la depuración del código. • Librerías: Proporciona una serie de bibliotecas predefinidas que simplifican la programación de tareas comunes, como el control de motores, la lectura de sensores, etc. SCADA SCADA es el acrónimo de Supervisory Control and Data Acquisition (supervisión, control y adquisición de datos), término que describe las funciones básicas de un sistema SCADA. Las empresas usan los sistemas SCADA para controlar los equipos de sus centros y recopilar y registrar datos de sus operaciones. Estos sistemas SCADA suelen ser una combinación de software y hardware, como controladores lógicos programables (PLC) y unidades terminales remotas (RTU). La adquisición de datos comienza con los PLC y las RTU, que se comunican con equipos de planta tales como las máquinas y los sensores de la fábrica. Los datos recopilados de los equipos se envían al siguiente nivel, por ejemplo, una sala de control, donde los operarios pueden supervisar los controles de PLC y RTU utilizando interfaces humano-máquina (HMI). Las HMI son un elemento importante de los sistemas SCADA. Se trata de las pantallas que los operarios utilizan para comunicarse con el sistema SCADA. Usando sistemas SCADA, las organizaciones pueden controlar sus procesos industriales tanto local como remotamente, e interactuar directamente con componentes como motores, bombas y sensores desde el panel de una ubicación centralizada. A veces, estos sistemas pueden controlar los equipos automáticamente basándose en los datos que se recopilan. Los sistemas SCADA también permiten a las organizaciones monitorizar y realizar informes de sus procesos a partir de datos en tiempo real y archivar esos datos para su posterior procesamiento y evaluación. Aplicaciones de SCADA Las organizaciones pueden utilizar los sistemas SCADA para: • Controlar los procesos local o remotamente • Interactuar con los aparatos mediante software HMI • Recopilar, monitorizar y procesar datos • Registrar eventos y datos Estas funciones proporcionan a las empresas una mayor visibilidadde sus procesos. Los datos que recopilan les permiten ver cómo están funcionando sus máquinas en tiempo real, además de observar las tendencias a largo plazo para identificar las oportunidades de mejora. Basándose en estos datos, los operarios pueden ajustar el funcionamiento de sus equipos utilizando controles habilitados para SCADA. Pueden hacer cambios tanto remotamente como in-situ, y pueden https://www.copadata.com/es/productos/zenon-software-platform/adquisicion-datos/ https://www.copadata.com/es/productos/zenon-software-platform/visualizacion-control/que-significa-hmi-interfaz-humano-maquina-copa-data/ https://www.copadata.com/es/productos/zenon-software-platform/adquisicion-datos/registro-de-datos/ https://www.copadata.com/es/productos/tendencias-version-extendida/ ajustar las operaciones a nivel de instalaciones enteras, procesos individuales o simplemente máquinas específicas. Los sistemas SCADA también permiten a las organizaciones utilizar sus datos para mejorar la eficiencia, tomar decisiones informadas y mejorar la comunicación para ayudar a evitar los tiempos de inactividad. Para obtener los mayores beneficios de sus datos procedentes de distintas fuentes, necesitará almacenarlos centralmente en un sistema SCADA. Un software SCADA bien integrado puede combinar los datos de numerosas fuentes y enviarlos a otros sistemas en distintos formatos. El software SCADA puede crear informes completos y personalizados. Sus equipos también pueden reaccionar automáticamente a la información de estos informes. En una aplicación de gestión de la calidad, por ejemplo, el sistema puede activar una alarma si un informe indica que un lote de productos está defectuoso. En gestión energética, un sistema puede reducir el consumo energético de ciertas máquinas o sistemas si se prevé un pico de carga. Mediante funciones como estas, los sistemas SCADA pueden ahorrar a las organizaciones cantidades significativas de tiempo y dinero. Pueden ayudar a las empresas a incrementar la eficiencia de sus operaciones, reducir los tiempos de inactividad, asegurar la calidad del producto y mucho más. Los sistemas SCADA pueden ser desde relativamente sencillos a enormes y complejos, dependiendo de la organización que los utilice y de las aplicaciones para las que se usen. Tia Portal TIA Portal (Totally Integrated Automation Portal) es un software de programación de PLC y HMI de la marca Siemens que integra una gran cantidad de componentes de las máquinas para el control de un sistema industrial, y sirve para la automatización de fábricas o proyectos de domótica. TIA Portal proporciona un conjunto integral de herramientas que abarcan desde la configuración del hardware y la programación del software hasta la puesta en marcha y el monitoreo de sistemas de automatización. Algunas de las características y módulos más importantes son: • Programación de PLCs: Es posible la creación de programas de control para los PLCs de Siemens, utilizando lenguajes de programación como ladder (lógica de escalera), FBD (diagrama de bloques de funciones), y SCL (lenguaje de programación estructurado). • Configuración de hardware: Desarrolla la configuración de los componentes de hardware, como los módulos de entrada/salida, y ayuda en la asignación de direcciones y parámetros. https://www.copadata.com/es/productos/zenon-software-platform/analisis-informes/informes-precisos-y-fiables/ • Simulación: El programa cuenta con la capacidad de realizar simulaciones que permiten probar y depurar programas antes de implementarlos en el entorno real. • HMI (Interfaz Hombre-Máquina): Permite diseñar interfaces gráficas de usuario para la supervisión y control de sistemas mediante pantallas táctiles o paneles de operador. • Conectividad: TIA Portal proporciona herramientas para la integración con otros sistemas, como redes industriales, bases de datos, y sistemas de control de movimiento. LabVIEW LabVIEW (. acrónimo de Laboratory Virtual Instrument Engineering Workbench) es un entorno de programación gráfica que los ingenieros utilizan para desarrollar sistemas pruebas automatizadas de investigación, validación y producción. Es una plataforma y entorno de desarrollo para diseñar sistemas, con un lenguaje de programación visual gráfico pensado para sistemas hardware y software de pruebas, control y diseño, simulado o real y embebido. Este programa fue creado National Instruments para funcionar en máquinas MAC, salió al mercado por primera vez en 1986, teniendo versiones disponibles para las plataformas Windows, UNIX, MAC y GNU/Linux actualmente. Los programas desarrollados con LabVIEW se llaman Instrumentos Virtuales, o VIs, y su origen provenía del control de instrumentos, aunque hoy en día se ha expandido ampliamente no solo al control de todo tipo de electrónica (Instrumentación electrónica) sino también a su programación embebida, comunicaciones, matemáticas, etc. Entre sus objetivos están el reducir el tiempo de desarrollo de aplicaciones de todo tipo (no solo en ámbitos de Pruebas, Control y Diseño) y el permitir la entrada a la informática a profesionales de cualquier otro campo. LabVIEW consigue combinarse con todo tipo de software y hardware, tanto del propio fabricante -tarjetas de adquisición de datos, PAC, Visión, instrumentos y otro Hardware como de otros fabricantes. Su principal característica es la facilidad de uso, válido para programadores profesionales como para personas con pocos conocimientos en programación. Cada VI consta de dos partes diferenciadas: • Panel Frontal: El Panel Frontal es la interfaz con el usuario, la utilizamos para interactuar con el usuario cuando el programa se está ejecutando. Los https://es.wikipedia.org/wiki/Sistema https://es.wikipedia.org/wiki/Programaci%C3%B3n https://es.wikipedia.org/wiki/Apple_Macintosh https://es.wikipedia.org/wiki/1986 https://es.wikipedia.org/wiki/Windows https://es.wikipedia.org/wiki/UNIX https://es.wikipedia.org/wiki/Macintosh https://es.wikipedia.org/wiki/GNU/Linux https://es.wikipedia.org/wiki/Instrumentaci%C3%B3n_electr%C3%B3nica https://es.wikipedia.org/wiki/Hardware usuarios podrán observar los datos del programa actualizados en tiempo real (como van fluyendo los datos). En esta interfaz se definen los controles (los usamos como entradas, pueden ser botones, marcadores etc..) e indicadores. • Diagrama de Bloques: es el programa propiamente dicho, donde se define su funcionalidad, aquí se colocan íconos que realizan una determinada función y se interconectan (el código que controla el programa). En el panel frontal, encontraremos todo tipos de controles o indicadores, donde cada uno de estos elementos tiene asignado en el diagrama de bloques una terminal, es decir el usuario podrá diseñar un proyecto en el panel frontal con controles e indicadores, donde estos elementos serán las entradas y salidas que interactuarán con la terminal del VI. Podemos observar en el diagrama de bloques, todos los valores de los controles e indicadores, como van fluyendo entre ellos cuando se está ejecutando un programa VI. Arduino UNO El Arduino Uno es una placa de microcontrolador de código abierto basado en el microchip ATmega328P y desarrollado por Arduino.cc. La placa está equipada con conjuntos de pines de E/S digitales y analógicas que pueden conectarse a varias placas de expansión y otros circuitos. La placa tiene 14 pines digitales, 6 pines analógicos y programables con el Arduino IDE (Entorno de desarrollo integrado) a través de un cable USB tipo B. Puede ser alimentado por el cable USB o por una batería externa de 9 voltios, aunque acepta voltajes entre 7 y 20 voltios. También es similar al Arduino Nano y Leonardo.45 El diseño de referencia de hardware se distribuye bajo una licencia Creative Commons Attribution Share-Alike 2.5 y está disponible en el sitio web de Arduino. PLC1214 AC/DC/RLY Es un dispositivo electrónico utilizado en automatización industrial y control de procesos. Su función principal es controlar máquinas y procesos mediante la programación de lógica. • AC (Corriente Alterna): Indica que el PLC es capaz de trabajar con corriente alterna en su entrada/salida. La corriente alterna es la forma de corriente eléctrica que cambia su dirección periódicamente. • DC (Corriente Continua): Indica que el PLC también puede trabajar con corriente continua en su entrada/salida. La corriente continua es la corriente eléctrica que fluye en una dirección constante. https://es.wikipedia.org/wiki/Microcontrolador https://es.wikipedia.org/wiki/Sistema_de_c%C3%B3digo_abierto https://es.wikipedia.org/wiki/Microchip_Technology_Inc. https://es.wikipedia.org/wiki/Atmega328 https://es.wikipedia.org/wiki/Arduino https://es.wikipedia.org/wiki/Perif%C3%A9rico_de_entrada/salida https://es.wikipedia.org/wiki/Tarjeta_de_expansi%C3%B3n https://es.wikipedia.org/wiki/Arduino https://es.wikipedia.org/wiki/Universal_Serial_Bus https://es.wikipedia.org/wiki/Pila_9V https://es.wikipedia.org/wiki/Pila_9V https://es.wikipedia.org/wiki/Arduino https://es.wikipedia.org/wiki/Arduino_Uno#cite_note-4 https://es.wikipedia.org/wiki/Arduino_Uno#cite_note-5 https://es.wikipedia.org/wiki/Creative_Commons • RLY (Relé): Indica que el PLC tiene salidas de relé. Los relés son interruptores controlados por electricidad que permiten activar o desactivar circuitos eléctricos. Servomotor Un servomotor es un actuador rotativo o motor que permite un control preciso en términos de posición angular, aceleración y velocidad. Utiliza un motor normal y lo combina con un sensor para la retroalimentación de posición. La señal de control es la entrada, ya sea analógica o digital, que representa el comando de posición final para el eje. Los componentes principales del servomotor son: • Motor de corriente continua DC (parte eléctrica): Es el principal componente del servo el cual proporcionara el movimiento. • Engranajes reductores (parte mecánica): Se encarga de reducir la velocidad de giro del motor para incrementar su capacidad de torque. • Sistema de control (parte electrónica): Es la encargada de enviar información y de alimentar al motor. Es una placa electrónica que ajusta una estrategia de control de la posición angular mediante la retroalimentación. Para ello, el circuito compara la señal de entrada de referencia o posición deseada con la posición actual medida por el potenciómetro. La diferencia entre la posición actual y la posición deseada se amplifica y se utiliza para mover el motor en la dirección necesaria para reducir el error de posición. • Encoder: Es el elemento que le ordena al variador (que le está dando potencia al servo) en qué posición está a cada momento el servomotor. Motorreductor Es una máquina muy compacta que combina un reductor de velocidad y un motor. Estos van unidos en una sola pieza y se usa para reducir la velocidad de un equipo de forma automática. Los diferentes componentes de un motorreductor son los que hacen posible que descienda la velocidad de un mecanismo sin que el motor se resienta. Además de realizar esta limitación de giro rotatoria, este sistema se encarga de poder ajustar su potencia mecánica. Los principales componentes de estos elementos son: Cadena cinemática: Formada por una caja reductora y sus engranajes. Sirve para disminuir la velocidad y, al mismo tiempo, la aumenta en el eje de salida. Engranajes: Formados por ruedas dentadas de diferentes materiales como pueden ser metales o plásticos. Mediante su contacto transmiten el movimiento. Se diferencian en su tamaño y en el número de dientes que tienen. Pueden ser rectos o helicoidales. Motor: Es el encargado de transmitir el movimiento a los engranajes. Driver Puente H L2982N Es un módulo controlador de motores L298N H-bridge que nos permite controlar la velocidad y la dirección de dos motores de corriente continua o un motor paso a paso de una forma muy sencilla, gracias a la presencia de dos puentes H. El rango de tensiones en el que trabaja este módulo va desde 3V hasta 35V, y una intensidad de hasta 2A. A la hora de alimentarlo hay que tener en cuenta que la electrónica del módulo consume unos 3V, así que los motores reciben 3V menos que la tensión con la que alimentemos el módulo. Además, el L298N incluye un regulador de tensión que nos permite obtener del módulo una tensión de 5V. Este regulador sólo funciona si alimentamos el módulo con una tensión máxima de 12V. Sensor Ultrasónico Los sensores ultrasónicos miden la distancia mediante el uso de ondas ultrasónicas. El cabezal emite una onda ultrasónica y recibe la onda reflejada que retorna desde el objeto. Los sensores ultrasónicos miden la distancia al objeto contando el tiempo entre la emisión y la recepción. Sensor MQ2 El sensor de gas MQ2 es analógico y se utiliza en la detección de fugas de gas de equipos en los mercados de consumo y la industria. El sensor compuesto está compuesto por un microtubo de cerámica Al2O3, capa sensible de Dióxido de Estaño (SnO2), el electrodo de medida y el calentador se fija en una corteza hecha por el plástico y red de acero inoxidable. El calentador proporciona las condiciones de trabajo necesarias para el trabajo de componentes sensibles. La envoltura MQ- 2 tienen 6 pines, 4 de ellos se utilizan para recoger las señales, y otros se utilizan 2 para proporcionar corriente de calentamiento. Sensor Infrarrojo Un sensor infrarrojo es un dispositivo que utiliza radiación infrarroja para detectar la presencia de objetos, personas o cambios en la temperatura. La luz infrarroja tiene longitudes de onda más largas que la luz visible y no es perceptible por el ojo humano, pero puede ser detectada por dispositivos diseñados para ello. Sensor LM35 El LM35 es un sensor de temperatura analógico que proporciona una salida de voltaje proporcional a la temperatura en grados Celsius. Es un dispositivo popular en electrónica y proyectos de control de temperatura debido a su simplicidad y precisión razonable. Cuenta con las siguientes características: • Salida Proporcional a la Temperatura: El LM35 genera una salida de voltaje que es linealmente proporcional a la temperatura en grados Celsius. Por ejemplo, para cada grado Celsius de cambio en la temperatura, la salida del sensor cambia en 10 mV. • Amplio Rango de Temperatura: El LM35 puede medir temperaturas en un rango amplio, típicamente desde -55 °C hasta 150 °C. Esto lo hace adecuado para una variedad de aplicaciones. • Precisión: Este sensor es conocido por su precisión razonable en comparación con otros sensores de temperatura más simples. La precisión típica es de ±0.5 °C a temperaturas entre 0 °C y 100 °C. • Alimentación de Bajo Voltaje: Puede funcionar con una fuente de alimentación de bajo voltaje, típicamente entre 4 y 30 voltios. • Formato TO-92: Físicamente, el LM35 suele venir en un paquete TO-92, que es un paquete transistor común, facilitando su integración en proyectos y prototipos. Metodología Para el diseño del Hospital con SCADA y con la implementación de procesamiento de imágenes, se recurrió a utilizar una casa de juguete grande para simular la estructura de las habitaciones de un hospital. La casa cuenta con 3 pisos, 2 habitaciones o cuartos en el tercer y segundo piso, y una habitación general en la planta baja. El edificio está separado entre el lado izquierdo y lado derecho a través de un elevador. Para las habitaciones del lado derecho de los dos pisos de arriba se agregaron en cada cuarto un LED blanco simulando la luz de una habitación, además de un botón para realizar su activación o desactivación. Cabe a mencionar que también se pueden activar estos LEDs a través del sistema SCADA integrado en elprograma de LabVIEW. De lado izquierdo se agregaron en cada habitación un LED, y en la planta baja se agregaron en ambas partes del cuarto dos luces LEDs que son activados a partir de una página WEB. En la parte superior de la casa se agregó un Motorreductor que permitirá la elevación y el descenso del elevador a través de una cuerda. En cada uno de los pisos se agregó un sensor infrarrojo que le dará información a sistema de control PLC-Arduino del piso en que se encuentra presente el elevador. EL elevador puede ser controlado de dos formas: 1.- Empleo de colores: A partir del uso del programa en Spyder, utilizando la cámara de una computadora, es posible detectar 3 colores distintos (amarillo, rojo y azul), que, a través de condiciones establecidas en Spyder y Arduino, mandarán señales al PLC, el cual activará el motorreductor para subir o bajar el elevador. Para que el elevador se transporte al primer piso, es necesario que la cámara detecte un color amarillo, para que avance al segundo piso, es necesario que se visualice un color rojo en la cámara, y para el tercer piso es necesario un color azul. 2. Sistema SCADA: A través de LabVIEW es posible controlar manualmente el nivel de subida o bajada que tiene nuestro elevador, mando las instrucciones necesarias al PLC para activar el giro izquierdo o derecho del motorreductor. En la parte frontal se implementó un servomotor conectado a la puerta principal del edificio. Esta puerta será activada dependiendo de la presencia de un objeto o persona cerca del área. Esto funcionará gracias al uso de un sensor ultrasónico programado en Arduino. En la planta baja se colocará un Buzzer que puede ser activado a través del sistema SCADA o al recibir una señal de Arduino proveniente de una condición a partir de la presencia de un sensor capacitivo ubicado en el primer piso. En el segundo piso se incluyeron dos elementos que trabajan en conjunto, un sensor LM35 conectado directamente al PLC y motor de corriente directa con aspas simulando a un ventilador, el cual se activa si se rebasa cierta temperatura. Se agregaron dos sensores al edificio para conocer valores del nivel de gas presente cerca. Los valores de la temperatura, la presencia de flama, el nivel de gas, el lugar en donde se encuentra el elevador, y la activación o desactivación de los actuadores (Leds, buzzer, ventilador, puerta y elevador) serán visualizados desde LabVIEW. Desarrollo del programa en Spyder El sistema de procesamiento de imágenes del proyecto consiste en simular la detección de colores que tengan los pacientes para saber a qué piso del edificio se dirigirán. Existen tres opciones en las cuales puede estar el paciente, dependiendo del color que se presente a una cámara de computadora que debe tener conectada un Arduino para su funcionamiento. Los tres colores son Amarillo (Piso 1), Rojo (Piso 2) y Azul (Piso3). Dependiendo que el color que detecten, se enviarán valores al Arduino, los cuales mandarán información al PLC a través de una comunicación Ethernet, y a través de condiciones establecidas en Tia Portal, se activará el Motorreductor para mover el elevador. El programa utilizado emplea la librería de Open CV para el procesamiento de imágenes. Descripción del programa en Spyder import cv2 import numpy as np import serial # Serial COM = 'COM3' BAUD = 9600 ser = serial.Serial(COM, BAUD) cap = cv2.VideoCapture(0) azulBajo = np.array([110,100,20],np.uint8) azulAlto = np.array([130,255,255],np.uint8) redBajo1 = np.array([0,100,20],np.uint8) redAlto1 = np.array([5,255,255],np.uint8) redBajo2 = np.array([175,100,20],np.uint8) redAlto2 = np.array([179,255,255],np.uint8) amarilloBajo = np.array([20,100,20],np.uint8) amarilloAlto = np.array([40,255,255],np.uint8) while True: ret,frame = cap.read() if ret == True: frameHSV = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) maskRed1 = cv2.inRange(frameHSV,redBajo1,redAlto1) maskRed2 = cv2.inRange(frameHSV,redBajo2,redAlto2) maskR = cv2.add(maskRed1,maskRed2) maskA = cv2.inRange(frameHSV,amarilloBajo,amarilloAlto) maskB = cv2.inRange(frameHSV,azulBajo,azulAlto) contornosB,_ = cv2.findContours(maskB, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE) contornosR,_ = cv2.findContours(maskR, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE) contornosA,_ = cv2.findContours(maskA, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE) for c in contornosB: area = cv2.contourArea(c) if area > 3000: M = cv2.moments(c) if (M["m00"]==0):M["m00"]=1 Bx = int(M["m10"]/M["m00"]) By = int(M['m01']/M['m00']) cv2.circle(frame,(Bx,By),7,(0,255,0),-1) font = cv2.FONT_HERSHEY_SIMPLEX cv2.putText(frame,'{},{}'.format(Bx,By),(Bx+10,By),font,0.75,(0,255,0),1,cv2.LINE_AA ) nuevoContorno = cv2.convexHull(c) cv2.drawContours(frame,[nuevoContorno],0,(255,0,0),3) ser.write((b"1\n")) print("Azul") for c in contornosR: area = cv2.contourArea(c) if area > 3000: M = cv2.moments(c) if (M["m00"]==0):M["m00"]=1 Rx = int(M["m10"]/M["m00"]) Ry = int(M['m01']/M['m00']) cv2.circle(frame,(Rx,Ry),7,(0,255,0),-1) font = cv2.FONT_HERSHEY_SIMPLEX cv2.putText(frame,'{},{}'.format(Rx,Ry),(Rx+10,Ry),font,0.75,(0,255,0),1,cv2.LINE_AA ) nuevoContorno = cv2.convexHull(c) cv2.drawContours(frame,[nuevoContorno],0,(0,0,255),3) print("rojo") ser.write((b"2\n")) for c in contornosA: area = cv2.contourArea(c) if area > 3000: M = cv2.moments(c) if (M["m00"]==0):M["m00"]=1 Bx = int(M["m10"]/M["m00"]) By = int(M['m01']/M['m00']) cv2.circle(frame,(Bx,By),7,(0,255,0),-1) font = cv2.FONT_HERSHEY_SIMPLEX cv2.putText(frame,'{},{}'.format(Bx,By),(Bx+10,By),font,0.75,(0,255,0),1,cv2.LINE_AA ) nuevoContorno = cv2.convexHull(c) cv2.drawContours(frame,[nuevoContorno],0,(255,0,0),3) ser.write((b"3\n")) print("Amarillo") cv2.imshow('frame',frame) c = cv2.waitKey(1) if c==27: break cap.release() cv2.destroyAllWindows() Desarrollo del programa en Arduino Se desarrollaron dos programas de Arduino, uno para la detección de valores de los sensores, el envío de datos al PLC y la activación de ciertos actuadores. El segundo programa ejecutado en un segundo Arduino se utilizó para la recepción de valores provenientes de Spyder y el envío de estos datos a través de condiciones al primer Arduino. Para el desarrollo del primer programa en Arduino, fue necesario implementar varias librerías para poder realizar la comunicación con el PLC. Las librerías empleadas permiten una comunicación MODBUS, en donde el Arduino recibirá valores y los enviará a Tia Portal. Se tienen que crear un canal por cada sensor que estamos utilizando. En nuestro caso, utilizamos 5 canales para tener información de 5 variables: 1. Temperatura 2. Cantidad de gas 3. Infrarrojos activados 4. Colores captados 5. Datos de la ESP32 A través del siguiente código, se establecieron las condiciones necesarias para recibir adecuadamente los datos de los sensores, el envío de información y realizar el accionamiento de algunos actuadores (Servomotor y Buzzer). El servomotor se activa cuandoel sensor ultrasónico recibe un valor de distancia menor a 4, moviéndose 90°. En caso contrario, el sensor regresar a 0°. El buzzer se activa cuando es tocado un sensor capacitivo. El buzzer se activa durante 3 segundos. Los sensores conectados al Arduino son los siguientes • 3 sensores infrarrojos (digital) • 1 sensor ultrasónico (digital) • 1 sensor mq2 (analógico) • 1 sensor táctil (digital) Para el segundo programa de Arduino, simplemente se estableció una comunicación serial con Spyder y se establecieron condiciones para saber que valores (0,1 o 2) se enviaban al primer Arduino según los colores detectados. Pasos para el primer programa 1.- Incluimos las librerías necesarias para la comunicación entre Arduino y el PLC. 2.- Establecemos canales de comunicación para los 5 datos que vamos a recibir con los sensores. Estos 5 datos son: 1. Temperatura 2. Cantidad de gas 3. Infrarrojos activados 4. Colores captados 5. Datos de la ESP32 3.- Declaramos variables donde se almacenarán los valores de los sensores, y aquellos datos que son necesarios para la realización de operaciones y condiciones. 4.- Al inicio del voidsetup establecemos una comunicación entre Arduino y PLC, establecemos el modo de funcionamiento de los pines y asignamos un arranque de funcionamiento para los 5 canales de comunicación. 5.- En el voidloop, se establecen el funcionamiento de todos los sensores, las condiciones de su funcionamiento, y las formas de trabajar del Buzzer y el Servomotor Descripción del primer programa en Arduino #include <Ethernet.h> #include <Modbus.h> #include <ModbusIP.h> #include <Servo.h> #include<SPI.h> //Canales de comunicacion, en el PLC recibir por el canal seleccionado + 30,001 const int SENSOR1 = 100;//temperatura const int SENSOR2 = 200;//mq const int SENSOR3 = 300;//infrarrojos const int SENSOR4 = 400;//colores const int SENSOR5 = 500;//ESP32 int infras=0; int infra1=0; int infra2=0; int infra3=0; // Flamas const int ESP32 = 4; // Ultrasónico const int Trigger = 2; const int Echo = 3; //piso 2 y 3 const int piso2=A0; const int piso3=A2; int act2=0; int act3=0; // LM35 int tempC; int pinLM35 = A2; // MQ2 int mqpin = A1; // salida analogica del sensor A0 int valorSensor=0; // Botoncitos const int boton2 = 8; const int boton3 = 9; const int botonAlarma = 6; const int buzzerPin = 7; // buzzer emergencias //infrarrojo const int infrarrojo=A3; const int infrarrojo2=A4; const int infrarrojo3=A5; const int ServoPin = 5; ModbusIP mb; long ts; //variable para almacenar tiempos Servo puerta; //Para recibir mensajes por el puerto serial String entradaSerial = ""; // String para almacenar entrada bool entradaCompleta = false; // Indicar si el String está completo //variables de colores int Pisoactual=0;//en el que estamos int Pisoobjetivo=0;//al que queremos ir void setup() { Serial.begin(9600); // Ethernet byte mac[] = {0x64, 0x66, 0xB3, 0xE5, 0xF7, 0x04}; byte ip[] = {192, 168, 1, 105}; mb.config(mac, ip); pinMode(Trigger, OUTPUT); pinMode(Echo, INPUT); digitalWrite(Trigger, LOW); pinMode(ESP32, INPUT); pinMode(SENSOR5, OUTPUT); /* pinMode(SENSOR1, OUTPUT); pinMode(SENSOR2, OUTPUT); pinMode(SENSOR3, OUTPUT); pinMode(SENSOR4, OUTPUT); */ puerta.attach(ServoPin); pinMode(boton2, INPUT); pinMode(boton3, INPUT); pinMode(botonAlarma, INPUT); pinMode(buzzerPin, OUTPUT); //pinMode(infrarrojo, INPUT); //pinMode(infrarrojo2, INPUT); //pinMode(infrarrojo3, INPUT); mb.addIreg(SENSOR1); mb.addIreg(SENSOR2); mb.addIreg(SENSOR3);//infra mb.addIreg(SENSOR4); mb.addIreg(SENSOR5); ts=millis(); } void loop() { //delay (100); // Conversión del LM35 //delay(1000); tempC = analogRead(pinLM35); tempC = (5*tempC*100.0) /(1024.0); Serial.print("Temperatura= "); Serial.println(tempC); // La parte del puto perro ultrasónico long t; long d; digitalWrite(Trigger, HIGH); delayMicroseconds(10); digitalWrite(Trigger, LOW); t = pulseIn(Echo, HIGH); d = t / 59;//D ES LA DISTANCIA Serial.print("DISTANCIA= "); Serial.println(d); if(d<4 && d!=0){ puerta.write(90); } if(d>4){ puerta.write(0); } // Calidad del aire valorSensor = analogRead(mqpin); // lee el valor analogico Serial.print("GAS= "); Serial.println(valorSensor); Serial.print("ESP: "); Serial.println(digitalRead(ESP32)); infras=0; infra1=analogRead(infrarrojo); infra2=analogRead(infrarrojo2); infra3=analogRead(infrarrojo3); //infrarojo if(infra1 < 200 && infra2 > 900 && infra3 > 900 ) { infras= 1; } if (infra2 < 200 && infra1 > 900 && infra3 > 900 ) { infras= 2; } if (infra3 < 200 && infra2 > 900 && infra1 > 900 ) { infras= 3; } Serial.println(analogRead(piso2)); Serial.println(analogRead(piso3)); if (analogRead(piso2)>500) { act2=2; Serial.println("piso 2"); } else if (analogRead(piso3)>500) { act2=3; Serial.println("piso 3"); } else { act2=1; Serial.println("piso 0"); } Serial.print("infrarrojo1: "); Serial.print(infra1); Serial.print(" "); Serial.print("infrarrojo2: "); Serial.print(infra2); Serial.print(" "); Serial.print("infrarrojo3: "); Serial.print(infra3); Serial.print(" infras: "); Serial.println(infras); mb.task(); //-----------------------------------------------------------------// if(millis()>ts+100) { ts=millis(); mb.Ireg(SENSOR2, valorSensor); //calidad del aire mb.Ireg(SENSOR1, tempC); // temperatura mb.Ireg(SENSOR3, infras); //INFRARROJO mb.Ireg(SENSOR4,act2); // Flamas if(digitalRead(ESP32) == HIGH) { mb.Ireg(SENSOR5, 1); } if (digitalRead(ESP32) == LOW) { mb.Ireg(SENSOR5, 0); } if (entradaSerial == "1\n") { //Serial.println("Mover a segundo piso"); mb.Ireg(SENSOR4,2);//dato envido es al piso que deseamos que llegue } if (entradaSerial == "2\n") { //Serial.println("Mover a tercer piso"); mb.Ireg(SENSOR4, 3 );//dato envido es al piso que deseamos que llegue } if (entradaSerial == "3\n") { //Serial.println("Mover a primer piso"); mb.Ireg(SENSOR4, 1 );//dato envido es al piso que deseamos que llegue } } // entradaCompleta=false; //Estado de los botones y hacer lo que se dice if (digitalRead(boton2) == HIGH) { Serial.println("Asistencia en Piso 2"); delay(500); // le deje el delay porque equis yolo suagg, es broma, los deje para que no se empalmaran } if (digitalRead(boton3) == HIGH) { Serial.println("Asistencia en Piso 3"); delay(500); } if (digitalRead(botonAlarma) == HIGH) { activarAlarma(); delay(500); // 1 segundo para evitar muchas activaciones Serial.println("ashiuda"); } } void activarAlarma() // buzzer { tone(buzzerPin, 1000); // Ajustar la frecuencia delay(3000); // Durante 3 segundos noTone(buzzerPin); // Apagar la alarma } void serialEvent() { while (Serial.available()) { // Obtener bytes de entrada: char inChar = (char)Serial.read(); // Agregar al String de entrada: entradaSerial += inChar; if (inChar == '\n') { entradaCompleta = true; } } } Pasos para el segundo programa de arduino 1.- Se establece una comunicación serial entre Arduino y Spyder. 2.- Se declaran dos variables digitales. 3.- En voidsetup se inicia la comunicación serial y se establen como salida los dos pines de las variables declaradas. 4.- En voidloopse establecen las condiciones que se deben cumplir para enviarse los números 1, 2 o 3 al primer Arduino. 5.- Después del voidloop se escribe instrucciones para hacer funcionar la comunicación con Spyder. Descripción del segundo programa de Arduino String entradaSerial = ""; // String para almacenar entrada bool entradaCompleta = false; // Indicar si el String está completo const int boton2 = 4; const int boton3 = 5; void setup() { Serial.begin(9600); // Ethernet pinMode(boton2, OUTPUT); pinMode(boton3, OUTPUT); } void loop() { if (entradaCompleta) { if (entradaSerial == "1\n") { //Serial.println("Mover a segundo piso"); digitalWrite(boton2,HIGH); digitalWrite(boton3,LOW); } if (entradaSerial == "2\n") { //Serial.println("Mover a tercer piso"); digitalWrite(boton3,HIGH); digitalWrite(boton2,LOW); } if (entradaSerial == "3\n") { digitalWrite(boton3,LOW); digitalWrite(boton2,LOW); } entradaSerial=""; entradaCompleta=false; } } void serialEvent() { while (Serial.available()) { // Obtener bytes de entrada: char inChar = (char)Serial.read(); // Agregar al String de entrada: entradaSerial += inChar; if (inChar == '\n') { entradaCompleta = true; } } } Descripción del programa en Tia Portal Para el desarrollo del programa en Tia Portal, es necesario incorporar los bloques que comunican al Arduino con PLC. Aquí se colocan 5 bloques por los 5 datos de información mencionados. En esta parte del proyecto se realizarán las condiciones para la activación de memorias y actuadores. A continuación, se presentan los pasos: Pasos para el programa de Tia Portal 1.- Se establece la activación de dos LEDs ubicados en la parte derecha del edificio (Q0.0 y Q0.1). Cada LED es activado de dos formas, por medio de un botón físico (I0.0 para Q0.0 y I0.1 para Q0.1) o una memoria (M0.0 para Q0.0 y M0.1 para Q0.1) que se activa desde LabVIEW. 2.- Se añade una condición para la activación de 4 LEDs. Estos se activarán a través de una página web utilizando una aplicación con ayuda de la tarjeta ESP32. Los datos son recibidos a través de un canal de comunicación. 2.- Se colocan los bloques de NORM_X y SCALE_X para hacer lectura de la temperaturan de un sensor LM35. Este dato es guardado a una memoria y es convertido de un valor Real a un Dint, debido a que el programa de LabVIEW para poder visualizar los datos debe emplear este tipo de valores. 3.- Es necesario agregar un bloque de datos con nombre Datos Arduino. Aquí se agregarán los 5 Datos que se recibirán desde Arduino. 4.- En este punto se agregan los bloques de comunicación Modbus, ubicados en los bloques de comunicación. Se agregan 5 bloques por las variables recibidas de parte del Arduino. 4.- Cada uno de los valores recibido por los canales de comunicación es enviado a memorias específicas en forma de Word, esto para que puedan ser leídas por LabView, 5.- En seguida, se realizará el establecimiento de las condiciones para el funcionamiento del motor del elevador y el motor que representa al ventilador. Este último esta representado por la salida Q0.7, la cual se va a activar cuando el valor del sensor LM35 sea mayor a 35°C. 6.- La salida Q0.5 y Q0.6 están asociadas a las salidas para la activación del motorreductor que controla el elevador. Estas estarán conectadas a un puente H para controlar su giro. Q0.5 hará que el elevador suba, mientras que Q0.6 hará que baje. El elevador subirá dependiendo de ciertas condiciones o interruptores. En general este se activa ya sea de manera manual a través de LabVIEW o por medio de la detección de un color que haga que se suba de piso. Lo mismo ocurre al descender el elevador. 7.- En este punto del programa se le asignarán las condiciones necesarias para activar los interruptores que suben o bajan el elevador. La memoria MW540 recibe información del piso al que se desea estar. Este dato depende de qué color se esta presentando a la cámara para su detección. Si es amarillo, el valor es de 1, si es rojo, el valor es de 2 y si es azul, el valor es de 3. La memoria MW520 nos dice el valor real en el que se encuentra nuestro elevador. Esta información proviene del canal de comunicación que hay entre los sensores infrarrojos. Si ambos valores son iguales (el piso deseado es el mismo al piso en el que se encuentra), no se activa nada. Para subir o bajar el elevador, fue necesario agregar timers para activar el tiempo necesario a las salidas para que realicen el desplazamiento adecuado, es decir, que no rebasen el sensor infrarrojo que detecta el piso o no les falte distancia para llegar. 8.- Finalmente es agregado un interruptor asignado a una memoria para que pueda cerrarse a través de LabVIEW y de esta forma activar una salida Q0.3, correspondiente al Buzzer. Programación en LabVIEW LabVIEW realizará la parte de SCADA, en donde se visualizará el funcionamiento de cada los actuadores, los valores de los sensores y los momentos en lo que se activen o desactiven los interruptores. Pasos para la programación de LabVIEW 1.- Primero se agregan las memorias al programa OPC Server, el cual trabajará para comunicar a Tia Portal con LabVIEW. A 2.- Las memorias se importan desde OPC server hasta LabVIEW, lugar donde se tendrá una visualización del hospital. 3.- Se asigna a cada uno de los componentes ingresados las memorias correspondientes del PLC. Aquí se muestran las variables utilizadas: Estos son los componentes que se agregaron en el diagrama de bloques: A continuación, se muestra la interfaz del Panel Frontal, el cual muestra las partes del edificio. El programa te permite ver el piso en donde se encuentra a través de un indicador en el centro del edificio con color azul. La barra ubicada en el panel derecho marca el valor de la temperatura. La barra superior color azul registra el valor del nivel de gas presente. En la parte superior del panel gris muestra indicadores de cuando se activan los LEDs o cuando se activa el buzzer de emergencia. Los interruptores azules activan y desactivan manualmente las alertas (LEDs) del lado derecho del hospital. La perilla blanca activa el Buzzer y el indicador rojo. Los interruptores amarillos suben o bajan el elevador de forma manual. Resultados Tras la realización de los programas, se procedió a la realización de conexiones y la instalación de los sensores y actuadores en el hospital. Aquí hay una imagen general de la casa de juguete utilizada. Como puede observarse, en cada uno de los pisos se encuentra un sensor infrarrojo, en la parte derecha del edificio se visualiza el buzzer en el piso de abajo y el ventilador en el segundo piso. En el piso bajo se incluyó el servomotor pegado a la puerta y un sensor ultrasónico colocado a un lado. En la parte derecha del segundo piso están colocados los sensores de temperatura y el sensor de gas. En la parte superior de la casa se colocó el motorreductor, el cual esta conectado al puente H para su control de giro. En esta imagen se muestra en una computadora la interfaz del SCADA. Imágenes del sistema en funcionamiento Elevador en otros pisos Funcionamiento del ventilador tras agregar calor al sensor LM35, se percibe el movimiento de las aspas. En el sistema SCADA se visualiza el aumento de temperatura en la barra roja. Al agregarle gas de un encendedor al sensor MQ2 variamos el valor medido en la barra azul del programa. En las siguientes imágenes se ven las activaciones de los LEDs con botones físicos. El encendido se puede visualizar en la pantalla deLabVIEW, cambiando el color del círculo de blanco a azul. Activación del buzzer con el sensor capacitivo o con el interruptor de la perilla blanca. En el indicador izquiero se representa la activación del Buzzer. Los interuptores amarillos mueven el elevador hacia arriba y hacia abajo. En las siguientes imágenes se muestra el funcionamiento de la detección de colores, para los tres casos. Al detectar un color manda al mismo tiempo a la consola el nombre del color captado: Conclusiones Jesús Norberto de la Cruz Gutiérrez En este proyecto hemos tenido un sinfín de problemas, el enlace del Tia portal al LabVIEW fue uno de ellos, buscar versiones compatibles fue complicado. Luego la parte de visión se solía trabar mucho, por lo que requirió más tiempo de lo pensado en realizar el proyecto. En cuanto al SCADA se comprendió completamente el cómo se usa, para que se usa, y como llevar a cabo todo lo que implica construir el sistema. Además de que se logró incluir lo que es el IOT en conjunto de una base de datos, convirtiéndolo en un proyecto completo. Al final se tuvo éxito en transmitir datos de 3 diferentes microprocesadores además de un PLC a una velocidad en un tiempo bastante bueno, todos trabajando en conjunto para tener el desempeño deseado. Dejándonos un conocimiento muy amplio sobre softwares como lo es Tia Portal, LabVIEW y Arduino, también en el diseño de una página web, y por último sobre el protocolo de comunicación Modbus. Abril Andrea Facio Esqueda En conclusión, la integración exitosa de un sistema SCADA en un proceso industrial implica una cuidadosa identificación de puntos críticos para la supervisión en tiempo real. Configurar el SCADA implica establecer parámetros, umbrales y alarmas para garantizar un monitoreo efectivo. Además, la implementación de un sistema de visión añade otra capa de inteligencia al proceso, permitiendo la activación de actuadores en función de información visual. Este enfoque combinado no solo optimiza la eficiencia operativa, sino que también fortalece la capacidad de tomar decisiones informadas, mejorando la calidad y la seguridad en la gestión industrial. Eduardo Antonio Rodríguez Guerra Que me llevo de este proyecto, bien en lo particular antes de comenzar este semestre, siempre subestime la importancia de la comunicación, es decir cuando quería enviar datos usualmente nomás activaba o desactivaba una entrada un sí o un no, pero qué tal si quisiera transmitir un dato diferente. Esa duda fue planteada y respondida a lo largo de mis clases de control de procesos y temas selectos de redes. Dónde logré comprender la amplia gama de posibilidades que le brinda el conocer las topologías y los protocolos de comunicación a mi proyecto. Por otro lado, con relación al SCADA, a lo largo de la carrera era fácil mostrar un código y en medio de la ejecución que mis demás colegas pudiesen comprender lo que estaba ocurriendo, pero haya afuera en el mundo laboral está más que claro que tendré que rendirles cuentas a personas con conocimientos diferentes a los míos, ser capaz de transmitir y representar un sistema en SCADA me brinda la oportunidad de que más personas con diferentes conocimientos comprendan lo que está ocurriendo. Además, la aplicación de otros detalles como el reconocimiento de colores, las bases de datos, me ayudaron a ver qué ya no solo puedo calibrar y aplicar sensores si no dar un paso más allá y llevar esa información a cualquier parte del mundo, en tiempo real y de una forma en la que cualquier persona comprenda lo que está sucediendo. Cristal Aricel Sáenz Hernández Desde mi punto personal considero que este ha sido un proyecto desafiante, interesante y muy completo. Todas las herramientas que utilizamos para la realización de nuestro sistema fueron implementadas de la mejor forma posible aprovechando las funciones del software tanto como nuestros recursos físicos. La integración de SCADA con LabVIEW y control en PLC nos ha ofrecido una solución robusta y muy practica para la supervisión y control de nuestro sistema. Viéndolo desde el punto de vista profesional este proyecto me ha permitido trabajar con diferentes sistemas tanto softwares como protocolos de comunicación, que al ser un proyecto a nivel escolar considero que es muy parecido a los sistemas de control que se presentan a nivel industrial. La combinación de LabVIEW como interfaz de desarrollo y el PLC como unidad de control nos proporcionó una plataforma eficiente para la automatización de nuestro proceso. Aunque existen más interfaces que posiblemente hubieran facilitado la automatización, decidimos utilizar el software LabVIEW debido a su entorno grafico de programación y amplias capacidades de adquisición y procesamiento de datos, facilita el diseño intuitivo de interfaces personalizadas y la implementación de programación y control avanzado. Dejando a un lado la parte de programación y control, puedo mencionar que en el desarrollo físico no es más que usar todos esos componentes que algunas veces usamos en otros sistemas de control sin la implementación de SCADA, como sensores, actuadores que la parte más “complicada” sería prácticamente el encontrar el mecanismo adecuado para que nuestros actuadores realicen esas actividades que deseamos con las características que nos ofrecen todos los componentes físicos. Uno de los puntos que más me gusto fue el conjunto de herramientas y software que se ocupan para realizar comunicaciones entre el TIA PORTAL y el LabVIEW, ya que se usaron complementos como OPC server, NetToPLCsim, Real Time Module, los cuales nos ayudaron a transferir información y hacer comunicación entre nuestros Softwares principales, el PLC y la interfaz. Francisco Javier Salinas Contreras El objetivo del proyecto era crear un sistema en SCADA, el cual nosotros buscamos implementar por medio de LabVIEW lo cual en un principio resulto ser un poco complejo pero al final lo logramos, también creamos una conexión con Arduino a falta de entradas analógicas en el PLC, pero el Arduino estaba conectado directamente al PLC y no a LabVIEW, lo cual nos creó un pequeño retraso en las lecturas, pero a pesar de esto, implementar todo esto es algo muy bueno, ya que así podemos aprender a implementar un sistema SCADA, debido al tiempo que fue nuestro mayor impedimento no pudimos hacer otras cosas, pero LabVIEW te abre aun muchas posibilidades. Recomendaciones • Las salidas correspondientes al motor del ventilador y los conectados al puente H deben alimentarse con una fuente aparte, debido a que consumen mucho amperaje y pueden requerir más voltaje que los LEDs y otros sensores. • Es apropiado colocar etiquetas en cada uno de los cables para saber a qué elemento deben ser conectados. • Llevar un orden en el uso de memorias para tener claro en qué lugar son asignados los valores para los componentes de LabVIEW. • Es preferible realizar soldadura en los componentes electrónicos como sensores, actuadores e interruptores, para mantener las conexiones estables. • Manejar adecuadamente los pines del Arduino y Shield, pues es posible que en algunos pines se sobrescriban valores. • Utilizar al menos dos ordenadores para implementar todos los programas, con el fin de evitar la saturación de trabajo del ordenador y conseguir que la comunicación se visualice en varias pantallas. Referencias IBM Documentation. (2023, octubre 10). Ibm.com. https://www.ibm.com/docs/es/i/7.5?topic=concepts-color-spaces-icc-profiles OpenCV - open Computer Vision library. (2021, febrero 9). OpenCV. https://opencv.org/ Modos o modelos de color HSB (o HSV) y códigos hexadecimales: qué son y usos específicos. (2010, mayo 27). Comunicación Multimedia. https://www.comunicacion- multimedia.info/2010/05/modos-o-modelos-de-color-hsb-o-hsv-y.html¿Qué es SCADA? (2023, octubre 5). Copadata.com. https://www.copadata.com/es/productos/zenon-software-platform/visualizacion-control/que-es- scada/ Domínguez, A. (2022, diciembre 18). Qué es TIA Portal. Web de Abel Domínguez. https://www.programacionmultidisciplinar.com/curso-de-tia-portal/que-es-tia-portal-y-para-que- sirve/ ¿Qué es LabVIEW? (2023, mayo 4). Www.ni.com. https://www.ni.com/es/shop/labview.html SIMATIC S7-1200, CPU 1214C, AC/DC/RLY. (2019, octubre 14). AUTYCOM - AUTYCOM. https://www.autycom.com/producto/cpu-simatic-6es7214-1bg40-0xb0-siemens/ Estévez, A. (2019, septiembre 11). Motorreductores: Cómo funcionan y de qué elementos están compuestos. Roydisa. https://www.roydisa.es/archivos/5419 (s/f). (2019, diciembre 19). Qué es un Servomotor, para qué sirve y cómo funciona. aula21 | Formación para la Industria; aula21. https://www.cursosaula21.com/que-es-un-servomotor/ (s/f) Puente H. (2021, noviembre 10). ADVANCED Controles de movimiento. https://www.a-m- c.com/es/experiencia/technologies/power-devices/puente-h/ Módulo Sensor Infrarrojo Evasor de Obstáculos MODIARD. (2020, diciembre 1). Suconel | Tienda electrónica | Colombia; SUMINISTROS Y CONTROLES ELECTRONICOS S A. https://suconel.com/product/modulo-sensor-infrarrojo-evasor-de-obstaculos-modiard/ ¿Qué es un sensor ultrasónico? (s/f). Com.mx. https://www.keyence.com.mx/ss/products/sensor/sensorbasics/ultrasonic/info/ Torres, H. (2014, agosto 6). Sensor de Gas MQ2 con Arduino UNO. HeTPro-Tutoriales. https://hetpro-store.com/TUTORIALES/sensor-de-gas-mq2/ https://www.ibm.com/docs/es/i/7.5?topic=concepts-color-spaces-icc-profiles https://opencv.org/ https://www.comunicacion-multimedia.info/2010/05/modos-o-modelos-de-color-hsb-o-hsv-y.html https://www.comunicacion-multimedia.info/2010/05/modos-o-modelos-de-color-hsb-o-hsv-y.html https://www.copadata.com/es/productos/zenon-software-platform/visualizacion-control/que-es-scada/ https://www.copadata.com/es/productos/zenon-software-platform/visualizacion-control/que-es-scada/ https://www.programacionmultidisciplinar.com/curso-de-tia-portal/que-es-tia-portal-y-para-que-sirve/ https://www.programacionmultidisciplinar.com/curso-de-tia-portal/que-es-tia-portal-y-para-que-sirve/ https://www.ni.com/es/shop/labview.html https://www.autycom.com/producto/cpu-simatic-6es7214-1bg40-0xb0-siemens/ https://www.roydisa.es/archivos/5419 https://www.cursosaula21.com/que-es-un-servomotor/ https://www.a-m-c.com/es/experiencia/technologies/power-devices/puente-h/ https://www.a-m-c.com/es/experiencia/technologies/power-devices/puente-h/ https://suconel.com/product/modulo-sensor-infrarrojo-evasor-de-obstaculos-modiard/ https://www.keyence.com.mx/ss/products/sensor/sensorbasics/ultrasonic/info/ https://hetpro-store.com/TUTORIALES/sensor-de-gas-mq2/
Compartir