JoVE Logo

Iniciar sesión

Se requiere una suscripción a JoVE para ver este contenido. Inicie sesión o comience su prueba gratuita.

En este artículo

  • Resumen
  • Resumen
  • Introducción
  • Protocolo
  • Resultados
  • Discusión
  • Divulgaciones
  • Agradecimientos
  • Materiales
  • Referencias
  • Reimpresiones y Permisos

Resumen

Este trabajo propone un método flexible para la comunicación de datos entre un sistema de extrusión de película y dispositivos de monitoreo basado en un protocolo de mensajes llamado Message Queue Server Transport (MQTT).

Resumen

Este trabajo tiene como objetivo construir una estructura de comunicación de datos flexible para una máquina de procesamiento de polímeros mediante el empleo de un protocolo basado en editor-suscriptor llamado Message Queue Server Transport (MQTT), que se opera a través de TCP / IP. Incluso cuando se utilizan equipos convencionales, los datos de procesamiento pueden ser medidos y registrados por varios dispositivos en cualquier lugar a través de una comunicación por Internet. Un protocolo basado en mensajes permite una comunicación flexible que supera las deficiencias del protocolo servidor-cliente existente. Varios dispositivos pueden suscribirse a los datos de procesamiento publicados por los dispositivos de origen. El método propuesto facilita la comunicación de datos entre múltiples editores y suscriptores. Este trabajo ha implementado un sistema que publica datos del equipo y sensores adicionales a un agente de mensajes. Los suscriptores pueden monitorear y almacenar los datos de proceso transmitidos por el corredor. El sistema se ha implementado y ejecutado para una línea de extrusión de película para demostrar la efectividad.

Introducción

En la ola de la 4ª revolución industrial, la adquisición y el monitoreo de diversos datos de procesamiento se han convertido en tareas importantes1. En particular, mejorar el proceso de fabricación utilizando datos de proceso y establecer planes de operación eficientes será un objetivo importante de todas las instalaciones de fabricación 2,3. El tiempo de inactividad se puede reducir en gran medida si se puede enviar una alarma fuera de la fábrica o si se puede realizar un mantenimiento predictivo en el tiempo4. Recientemente, se han realizado muchos esfuerzos para el análisis de datos en procesos de polímeros 5,6. Sin embargo, no es fácil llevar a cabo estas tareas debido a las dificultades para adquirir dichos datos de los sistemas existentes7. La estructura jerárquica del control y la instrumentación dificulta la adquisición y comunicación de datos.

En primer lugar, no es posible obtener datos de diferentes máquinas con diferentes fechas de fabricación. Es difícil realizar la comunicación entre diferentes máquinas, ya que esto requiere interoperabilidad entre diferentes buses de campo en formatos propietarios. De esta manera, los métodos de comunicación y los formatos de datos se mantienen privados. Esto ayuda a mantener fácilmente la seguridad de los datos, pero mantiene a los usuarios dependientes del fabricante de la máquina para los servicios y desarrollos futuros. Las computadoras de control recientes, incluida la interfaz hombre-máquina (HMI) conectada a las máquinas de procesamiento de polímeros, están basadas principalmente en Windows en estos días, pero están cargadas de software creado en un entorno de desarrollo propietario. Es posible utilizar controladores lógicos programables (PLC) de diferentes compañías para comunicarse con los sensores o actuadores, pero en muchos casos, el sistema de control de supervisión superior y adquisición de datos (SCADA) depende de las computadoras de control8. Esta práctica ha provocado que numerosos protocolos, buses de campo y sistemas de control compitan en el mercado. Aunque esta complejidad se ha aliviado poco a poco con el tiempo, muchos tipos de buses de campo y protocolos todavía están en uso activo.

Por otro lado, la comunicación entre dispositivos de control y SCADA ha sido estandarizada por la Open Platform Communications United Architecture (OPCUA)9. Además, la comunicación entre SCADA y el Sistema de Ejecución de Fabricación (MES) también se ha realizado principalmente a través de OPCUA. En una estructura jerárquica tan ajustada, no es fácil extraer datos libremente para el monitoreo y análisis de procesos. Por lo general, los datos deben extraerse del SCADA o MES10. Como se mencionó anteriormente, estos sistemas son específicos del proveedor y los formatos de datos rara vez están abiertos. Como resultado, la extracción de datos requiere un apoyo sustancial de los proveedores originales de soluciones de tecnología de la información / tecnología operativa (TI / OT). Esto puede dificultar la adquisición de datos para el monitoreo y el análisis.

En una línea de extrusión de película, el PC de control es supervisado por un sistema SCADA11. El sistema SCADA es operado por un programa informático que no se puede modificar fácilmente. El programa de computadora puede ser editable, pero la edición es bastante costosa y requiere mucho tiempo. Para monitorear y analizar fácilmente los datos de procesamiento, los datos deben ser accesibles desde cualquier ubicación. Para monitorear los datos de procesamiento fuera del sitio, el programa de computadora debe ser capaz de transmitir los datos de procesamiento a Internet12. Además, un método libre abierto reduce los gastos para la adquisición de datos13. Este enfoque permite que el análisis de datos se realice incluso en pequeñas fábricas que no pueden permitirse invertir en soluciones de TI comerciales14.

En este estudio, se emplea un protocolo de mensajes basado en el modelo editor-suscriptor. El transporte de telemetría de Message Queue Server (MQTT) es un protocolo abierto y estándar que permite la mensajería entre varios proveedores de datos y consumidores15. Aquí, proponemos un sistema que adquiere, transmite y monitorea datos utilizando MQTT para instalaciones de fabricación existentes. El sistema se prueba en una línea de extrusión de película para verificar el rendimiento. Los datos del controlador original se transmiten a un dispositivo perimetral a través del protocolo Modbus. Luego, los datos se publican en el corredor. Mientras tanto, dos Raspberry Pis publican las temperaturas y la iluminancia medidas en el mismo corredor. Luego, cualquier dispositivo en Internet puede suscribirse a los datos, seguido de monitorearlos y registrarlos como se muestra en la Figura 1. El protocolo en este trabajo muestra cómo se puede hacer todo el procedimiento.

Protocolo

1. Instalación del broker

NOTA: Para monitorear y registrar el procesamiento de datos a través de Internet, se debe preparar un sistema informático que transmita los datos. El sistema debe ser accesible tanto por los editores como por los suscriptores, como se muestra en la Figura 2. Por lo tanto, debe tener una dirección IP pública que se conozca antes de cualquier comunicación. Un broker MQTT abierto llamado Eclipse Mosquitto está instalado en el sistema13.

  1. Conecte una computadora a Internet dando una dirección IP pública. Proporcione la dirección en la configuración IP del sistema operativo.
  2. Instale un software de intermediario como Eclipse Mosquitto en la computadora. Descargue el archivo de instalación utilizando un navegador y ejecútelo.
  3. Pruebe el broker con un programa de prueba como MQTT Lens. Descargue MQTT Lens utilizando un navegador e instálelo. Luego, asegúrese de que los mensajes publicados estén suscritos.

2. Preparación del editor principal

NOTA: Este equipo publica los datos de la máquina a través de MQTT a través de TCP en el intermediario. Los datos heredados deben interpretarse y reempaquetarse para enviarlos. Esto generalmente se puede hacer por RS485 o Ethernet. La conexión a nivel de hardware debe verificarse en función del tipo de bus. La máquina de extrusión envía los datos a través de Modbus a través de un puerto Ethernet.

  1. Coloque físicamente una computadora en el sitio de la máquina y configúrela como el editor principal.
    NOTA: Aunque no es obligatorio, se seleccionó una computadora industrial en este trabajo.
  2. Instale Python3 en la computadora. Descargue el archivo de instalación utilizando un navegador y ejecútelo.
  3. Instale PyModbus16. Descargue el archivo de instalación utilizando un navegador y ejecútelo.
  4. Examine el controlador de extrusión con HMI controlando la máquina y conecte el controlador de extrusión al editor principal.
  5. Identifique completamente los datos y la dirección correspondiente en el protocolo Modbus de la máquina utilizando una herramienta Modbus como ModbusPoll o QModMaster. Asegúrese de que los datos de la máquina enviados se muestren en las celdas correspondientes de la herramienta Modbus.
  6. Escriba un código Python en el PC del publicador que recupere los datos del controlador de extrusión.
    NOTA: Aquí hay un ejemplo de código:
    desde pyModbusTCP.client importar ModbusClient
    cliente = ModbusClient(host="192.168.1.***", port=***, unit_id=***)
    client.open()
    ExtrusionData = str(client.read_holding_registers(1000, 58))
  7. Combine flujos de datos adicionales de otros dispositivos a través de PCIe, USB, RS232 y RS485.
    NOTA: Esto es sencillo. Una vez que se obtiene una cadena de datos adicional, simplemente agregue los datos al flujo de datos existente, lo que se hace mediante el siguiente código:
    ExtrusionData += AdditionalData
  8. Importe el paho.mqtt.client después de instalar paho-mqtt por pip install paho-mqtt17 .
  9. Implemente el código para conectar y publicar datos en el intermediario.
    Nota : consulte el siguiente ejemplo de código:
    url="117.xx.xxx.xx"; puerto = 1883; nombre de usuario = "****"; contraseña = "xxxxx"; topic = "Extrusora"
    mqttc = mqtt. Cliente()
    mqttc.username_pw_set (nombre de usuario, contraseña)
    mqttc.connect(host=url, port=port)
    mqttc.loop_start()
    ExtrusionData = str(client.read_holding_registers(1000, 58))
    Pub1= mqttc.publish(topic, ExtrusionData))
    Pub1.wait_for_publish()

3. Preparación adicional del editor

NOTA: Este equipo también publica los datos de la máquina a través de MQTT a través de TCP en el intermediario. A veces, se requiere una medición adicional que no se puede hacer en el editor principal. Los dispositivos de Internet de las cosas (IoT) como Raspberry Pi y Arduino pueden asumir el papel. En este trabajo, se empleó Raspberry Pi para datos de temperatura y datos de iluminancia. El procedimiento es similar a la sección 2 del protocolo.

  1. Coloque una Raspberry Pi cerca de la ubicación del sensor.
    NOTA: Dado que la distancia de cableado es limitada, la Raspberry Pi no se puede colocar muy lejos de la ubicación de medición. Sin embargo, como la vecindad del extrusor está muy caliente, el dispositivo debe colocarse al menos a 1 m de distancia de la ubicación de medición.
  2. Instale Python3 en la Raspberry Pi mediante los siguientes comandos en la línea de comandos:
    actualización de sudo apt
    sudo apt install Python3 idle3
  3. Implemente el código para adquirir los datos del sensor. Los datos del sensor se pueden transmitir a través de I2C o GPIO.
    NOTA: Consulte el siguiente ejemplo de código para obtener datos de temperatura adicionales a través de GPIO:
    desde max6675 importar MAX6675
    cs_pin1 = 24; clock_pin1 = 25; data_pin1 = 18
    cs_pin2 = 9; clock_pin2 = 11; data_pin2 = 19
    unidades = "C"
    termopar1 = MAX6675(cs_pin1, clock_pin1, data_pin1, unidades)
    termopar2 = MAX6675(cs_pin2, clock_pin2, data_pin2, unidades)
    T1 = termopar1.get()
    T2 = termopar2.get()
  4. Importar paho.mqtt.client.
  5. Reutilice el código de la sección 2 para conectar y publicar datos en el intermediario.

4. Configuración del suscriptor

NOTA: Cualquier dispositivo en Internet puede recibir los datos de procesamiento a través del corredor. Los datos son procesados y visualizados también por un código Python. En caso de que el desarrollo sea difícil, se pueden emplear aplicaciones disponibles como MQTT Client en Google Play y MQT Tool en App Store. Dado que la implementación de la interfaz de usuario es bastante larga, los detalles no se describen aquí. También tenga en cuenta que las aplicaciones existentes, como MQT Tool en App Store, pueden recibir los datos.

  1. Contrate un dispositivo para la suscripción a Internet. Asegúrese de una conexión física por cable y, a continuación, ejecute un ping a la IP del intermediario en la línea de comandos (por ejemplo, ping 117.xx.xxx.xx).
  2. Instale un entorno Python adecuado según el dispositivo y el sistema operativo. Por ejemplo, instale Pydroid3 en un dispositivo Android en lugar de Python3 desde Google Play.
  3. Importe paho.mqtt.client y paho.mqtt.subscribe para conectarse y recibir datos del intermediario.
    Nota : consulte el siguiente ejemplo de código:
    importar paho.mqtt.client como mqtt
    importar paho.mqtt.subscribe como suscribirse
    url="117.xx.xxx.xx"; puerto = 1883; nombre de usuario = "****"; contraseña = "xxxxx"; topic = "Extrusora"
    mqttc.username_pw_set (nombre de usuario, contraseña)
    mqttc.connect(host=url, port=port)
    mqttc.subscribe(tema, 0)
    mqttc.loop_start()
    Sub1 = subscribe.simple(topic, hostname=url)
    ExtruderData = Sub1.payload.decode("utf-8")
  4. Cree una interfaz de usuario según sea necesario utilizando PyQT5.
    NOTA: Esta parte es muy larga y se centra en la representación gráfica de los datos recibidos en lugar de la comunicación. El código correspondiente se proporciona como datos complementarios.
  5. Muestre los datos entrantes en la GUI ejecutando el código generado.

5. Registro de datos

NOTA: Los datos de procesamiento se pueden escribir en una base de datos durante la supervisión. En este trabajo, se eligió una base de datos a escala de laboratorio. Los datos se conectan a un archivo de Microsoft Access para escribir y recuperar fácilmente desde un equipo de usuario. Además, una tabla se puede construir instantáneamente mediante una consulta para analizar datos en una hoja de cálculo como Microsoft Excel.

  1. Seleccione un dispositivo de suscriptor para registrar los datos.
  2. Importe pyodbc ejecutando "pip install pyodbc" en la línea de comandos para que el código Python acceda a la base de datos como se muestra en la Figura 318.
  3. Envíe una consulta a la base de datos mediante el código Python para registrar los datos de procesamiento. Consulte el código de Python en la Figura 3 para el método.
  4. Envíe una consulta a la base de datos para recuperar los datos registrados.
    NOTA: A continuación se proporciona un ejemplo de código para la recuperación de datos:
    importar pyodbc
    x para x en pyodbc.drivers() if x.startswith('Microsoft Access Driver')]
    conn_str = (
    r'DRIVER={Controlador de Microsoft Access (*.mdb, *.accdb)};'
    r'DBQ=C:\Usuarios\data_analysis\db1.accdb;'
    )
    cnxn = pyodbc.connect(conn_str)
    crsr = cnxn.cursor()
    para table_info en crsr.tables(tableType='TABLE'):
    print(nombre_tabla_table_info.)
    sql = """\
    SELECCIONAR * DESDE Process_Condition
    """
    crsr = cnxn.execute(sql)
    para fila en crsr:
    RetrievedData = pd.read_sql(sql, cnxn)
    crsr.close()
    cnxn.close()

6. Despliegue

NOTA: Si todos los dispositivos se pueden conectar a Internet, la configuración es simple. Sin embargo, para proteger los datos del lado de la máquina, los editores solo pueden estar en la intranet. En este caso, el corredor puede ser una puerta de entrada a Internet. Para ser así, el broker debe estar equipado con dos adaptadores ethernet, uno de los cuales debe tener una dirección IP pública. Después de desarrollar todos los elementos, los códigos deben implementarse en cada dispositivo como se muestra en la Figura 4. El modo de conexión, cableado o inalámbrico, no es importante, pero debe estar asegurado para que cada dispositivo pueda acceder al corredor. Esto significa que el intermediario puede actuar como una puerta de enlace en la frontera entre la intranet e Internet por motivos de seguridad. Por supuesto, incluso si todos los dispositivos están expuestos a Internet, no hay ningún problema desde el punto de vista de la comunicación.

  1. Conecte el controlador de extrusión, el editor principal y los editores adicionales al puerto de intranet a través de Ethernet.
  2. Conecte un puerto Ethernet del broker a la intranet y el otro a Internet.
  3. Conecte a los suscriptores a Internet repitiendo el paso 4.1 para todos ellos.

7. Ejecución

NOTA: Para probar todo el sistema, iniciamos la línea de extrusión y ejecutamos todos los códigos python y Mosquitto.

  1. Inicie el proceso de extrusión. En el HMI de la máquina, ajuste las temperaturas y encienda el calentador tocando el botón de la pantalla HMI. Una vez que se alcanza la temperatura requerida, inicie la rotación del tornillo para extruir la masa fundida del polímero.
  2. Encienda todas las computadoras, inicie el software del corredor en el dispositivo del corredor mediante el comando "net start mosquitto" y luego ejecute los códigos de Python para monitorear y registrar los datos de procesamiento según sea necesario.
    NOTA: El orden de los pasos 7.1 y 7.2 se puede invertir. Los códigos de Python se pueden ejecutar simplemente escribiendo "python3 xxxxx.py" en la línea de comandos seguido de presionar Enter. Agregue este comando a los programas de inicio para evitar escribir el comando cada vez que se reinicie el dispositivo.

Resultados

Se ha encontrado que los datos mostrados en la HMI y medidos por la Raspberry Pis fueron monitoreados y registrados en los suscriptores como se muestra en la Figura 5. Como se presenta en el video, los datos de procesamiento se registran en la base de datos.

figure-results-385
Figura 1: Esquema de la transmisión de dat...

Discusión

Al seguir el protocolo presentado, los datos de procesamiento pueden ser monitoreados y registrados sin costosas soluciones de TI como el MES. Las tecnologías IoT pueden facilitar la adquisición y entrega de datos de máquinas convencionales. Se ha demostrado que el protocolo basado en mensajes, MQTT, sirve con éxito como plataforma para la comunicación de datos para líneas de procesamiento de polímeros. Además, los datos adicionales se pueden medir y transmitir juntos de manera flexible. Los editores adicionales ...

Divulgaciones

Los autores declaran que no hay conflictos de intereses.

Agradecimientos

Este estudio fue apoyado por el Programa de Investigación financiado por SeoulTech (Universidad Nacional de Ciencia y Tecnología de Seúl).

Materiales

NameCompanyCatalog NumberComments
Edge DeviceAdavantechUNO 420Intel Atom E3815 Fanless
Film Extrusion MachineEM KoreaNot AvailableFor production of 450 mm film
PydroidIIECNot AvailableAndroid Devices
Python3Python Software FoundataionNot AvailableWindows, Linux
Raspberry Pi 4CanaKitNot AvailableStandard Kit

Referencias

  1. Shafiq, S. I., Szczerbicki, E., Sanin, C. Proposition of the methodology for Data Acquisition, Analysis and Visualization in support of Industry 4.0. Procedia Computer Science. 159, 1976-1985 (2019).
  2. Dilda, V., et al. Manufacturing: Analytics unleashes productivity and profitability. McKinsey & Company. , (2017).
  3. Ismail, A., Truong, H. L., Kastner, W. Manufacturing process data analysis pipelines: A requirements analysis and survey. Journal of Big Data. 6, 1 (2019).
  4. Nwanya, S. C., Udofia, J. I., Ajayi, O. O. Optimization of machine downtime in the plastic manufacturing. Cogent Engineering. 4 (1), 1335444 (2017).
  5. Zhou, T., Song, Z., Sundmacher, K. Big data creates new opportunities for materials research: A review on methods and applications of machine learning for materials design. Engineering. 5 (6), 1017-1026 (2019).
  6. Rousopoulou, V., Nizamis, A., Thanasis, V., Ioannidis, D., Tzovaras, D. Predictive maintenance for injection molding machines enabled by cognitive analytics for Industry 4.0. Frontiers in Artificial Intelligence. 3, 578152 (2020).
  7. Mamo, F. T., Sikora, A., Rathfelder, C. Legacy to Industry 4.0: A Profibus Sniffer. Journal of Physics: Conference Series. 870, 012002 (2017).
  8. Figueroa-Lorenzo, S., Añorga, J., Arrizabalaga, S. A role-based access control model in Modbus SCADA systems. A centralized model approach. Sensors. 19 (20), 4455 (2019).
  9. Schleipen, M., Gilani, S. -. S., Bischoff, T., Pfrommer, J. OPC UA & Industrie 4.0 - Enabling technology with high diversity and variability. Procedia CIRP. 57, 315-320 (2016).
  10. Nițulescu, I. -. V., Korodi, A. Supervisory control and data Acquisition approach in node-RED: Application and discussions. IoT. 1, 76-91 (2020).
  11. Perez-Lopez, E. SCADA systems in the industrial automation. Tecnología en Marcha. 28 (4), 3-14 (2015).
  12. Andersen, D. L., Ashbrook, C. S. A., Karlborg, N. B. Significance of big data analytics and the internet of things (IoT) aspects in industrial development, governance and sustainability. International Journal of Intelligent Networks. 1, 107-111 (2020).
  13. Kashyap, M., Sharma, V., Gupta, N. Taking MQTT and NodeMcu to IOT: Communication in Internet of Things. Procedia Computer Science. 132, 1611-1618 (2018).
  14. . Mythbusting the MES. Systema Available from: https://www.systema.com/blog/mythbusting-the-mes (2021)
  15. Yeh, C. -. S., Chen, S. -. L., Li, I. -. C. Implementation of MQTT protocol based network architecture for smart factory. Proceedings of the Institution of Mechanical Engineers, Part B: Journal of Engineering Manufacture. 235 (13), 2132-2142 (2021).
  16. Parian, C., Guldimann, T., Bhatia, S. Fooling the master: Exploiting weaknesses in the Modbus protocol. Procedia Computer Science. 171, 2453-2458 (2020).
  17. Mishra, B., Kertesz, A. The use of MQTT in M2M and IoT systems: A survey. IEEE Access. 8, 201071-201086 (2020).
  18. . pyodbc 4.0.34 Available from: https://pypi.org/project/pyodbc/ (2021)
  19. Ayer, V., Miguez, S., Toby, B. Why scientists should learn to program in Python. Powder Diffraction. 29 (2), 48-64 (2014).
  20. Boyes, H., Hallaq, B., Cunningham, J., Watson, T. The industrial internet of things (IIoT): An analysis framework. Computers in Industry. 101, 1-12 (2018).

Reimpresiones y Permisos

Solicitar permiso para reutilizar el texto o las figuras de este JoVE artículos

Solicitar permiso

Explorar más artículos

Ingenier aN mero 185IoTMQTTextrusi ncomunicaci n

This article has been published

Video Coming Soon

JoVE Logo

Privacidad

Condiciones de uso

Políticas

Investigación

Educación

ACERCA DE JoVE

Copyright © 2025 MyJoVE Corporation. Todos los derechos reservados