Cómo digitalizar una planta industrial para RPK Gasori
Caso de uso
Cuando un cliente propone el desafío tecnológico de construir una plataforma HW y SW de primer nivel, en un plazo ajustado, integrando distintos entornos y partners y trabajando desde distintas ciudades del mundo, procuramos que la solución sea la que mejor se adapte a sus necesidades.
Por eso, ante la posibilidad de elegir entre diferentes alternativas, RPK Gasori creyó que la mejor propuesta era aquella que se adaptaba a lo que requerían, y no un producto que tuvieran que aprender a controlar. La propuesta era la del equipo multidisciplinar de SNGULAR, integrado por especialistas en UX, Quality Assurance, Software development, IoT e Inteligencia Artificial.
El cliente necesitaba, inicialmente, digitalizar los registros de los operarios de producción y además obtener información fiable del OEE, Overall Equipment Effectiveness, sin el sesgo del operario. No obstante, durante el desarrollo del proyecto fueron apareciendo otras necesidades que hicieron que tuviéramos que incorporar nuevas funcionalidades y máquinas al sistema.
Una solución para facilitar la gestión
Para poder integrar máquinas de distintos fabricantes y tecnologías se recurrió a sistemas independientes de los fabricantes de las mismas. Trabajamos con integradores de PLCs y diseñamos una arquitectura de datos y red que fuera ligera y evolucionable. El equipo colaboró con el departamento de IT de RPK Gasori y con su empresa de mantenimiento, logrando así que el cliente fuera independiente en la explotación, mantenimiento y evolución de la solución.
Trabajamos con Proelan, una empresa especialista en Ingeniería de PLC y robótica, y con Arnáez, una empresa Riojana con el máximo nivel de conocimiento en comunicaciones industriales. Todos los miembros del equipo de SNGULAR destacan la colaboración con RPK Gasori y sus recursos industriales, que fue sobresaliente y con un alto grado de implicación por todas las partes.
Gracias a este trabajo, el cliente puede disfrutar ahora de una herramienta con pleno acceso al código, realizado en un lenguaje y entornos acordados con él. Esta herramienta se comunica de forma bidireccional con el ERP, y permite gestionar la interacción de los operarios y del departamento de ingeniería y producción de una manera totalmente digitalizada.

La solución se puede dividir en 4 grandes bloques que se relacionan entre sí:
- Interacción y comunicación con las máquinas
- Aplicación Web
- Comunicación con las bases de datos
- Sistema central (API)
-
Interacción y comunicación con las máquinas
Se perseguía fundamentalmente la detección de si las máquinas estaban o no en funcionamiento, y su bloqueo si hubieran estado paradas más tiempo del especificado. Así el operario debería indicar el motivo de esa improductividad. Para conseguirlo se dispusieron PLCs y se implementó una lógica HW y SW optimizada. Esta lógica permitió aumentar significativamente la productividad de la planta.
-
Aplicación Web
La aplicación web gestiona las máquinas (control de estado, OEE, materiales, etc.) y operarios (turnos, asignación de tareas, etc.). Se planifican digitalmente todas las tareas a ejecutar, calendarios, control de acceso a la aplicación, generación de informes, etc., facilitando el control del proceso desde la fase de preparación hasta la fase de almacenamiento pasando por la fabricación.
Esta aplicación web está construida bajo el framework Angular en su versión 6 usando TypeScript.
-
Interacción y comunicación con las bases de datos
A nivel de base de datos disponemos de dos sistemas, uno el propio de la solución, montado sobre la base de datos MySQL y al que nos conectamos vía EntityFramework y MySQL Client.
También tuvimos que integrarnos con la base de datos de Informix del ERP del cliente, a la que nos conectamos vía NHibernate tanto para importar la información desde su ERP a nuestro sistema como para escribir y actualizar valores en el ERP, digitalizando así de extremo a extremo las órdenes de fabricación y pedidos con sus clientes finales.
-
Sistema central (API)
Está construido bajo tecnología .Net Framework con la versión 4.7.1, y es el encargado de conectarse a las diferentes bases de datos. Gestiona la información allí almacenada y alberga toda la lógica del funcionamiento del sistema. Es el punto de unión y comunicación entre todas las partes de la solución. Además, también se comunica con la aplicación encargada de gestionar las imágenes del reconocimiento facial construida bajo tecnología Node y que se comunica a su vez con Azure Cognitive.
OCR Gasori para Máquinas de Soldadura
-
Como parte de una necesidad añadida del proyecto, debíamos extraer datos de un display de máquinas de soldadura e integrar esa información con el resto de la solución. Con una dificultad añadida: se trataba de un un entorno de trabajo con una alta densidad de polvo metálico originado por las máquinas de soldadura, donde este polvo termina depositándose en los displays, impidiendo leer los valores con nitidez.
-
Usamos la librería openCV para el análisis de las imágenes capturadas, tanto en formato de vídeo, como imagen estática.
Para su estudio no utilizamos el típico esquema histográmico RGB, sino que usamos un análisis LAB donde, a diferencia del anterior, la primera componente es una medida de cantidad de luz, y las otras dos componentes AB corresponden al color. Con ello conseguimos una captura nítida a pesar de la escoria adherida.
-
Abordado este problema, tuvimos que resolver la captura de los caracteres mostrados. Muchos desarrolladores y empresas crean librerías específicas de reconocimiento de caracteres de siete segmentos (que era la casuística con la que nos encontramos), debido a que como el carácter en sí es una segmentación de líneas verticales y horizontales, un análisis OCR con una librería tipo pyTeseract devolverá un resultado incomprensible al analizar este tipo de librerías trazos completos.
La solución pasaba, bien por usar una de estas librerías a cambio de dependencias de terceros, o bien generar nosotros el código y tener el control absoluto para cualquier ajuste necesario. Creamos rutinas que delimitaban las zonas de lectura en renglones, y posteriormente en caracteres, consiguiendo desarrollar una solución eficiente, rápida y de alta portabilidad.