Logo Studenta

Reporte Proyecto Final Control de Procesos

¡Este material tiene más páginas!

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/

Otros materiales