Fabricación inteligente

Monitorización del moldeo por inyección con IoT: detecta defectos disparo a disparo

Un caso de uso práctico de monitorización del moldeo por inyección: publica un mensaje MQTT por disparo con tiempo de ciclo, colchón, presión y temperaturas, y marca los disparos que derivan antes de que se acumulen piezas malas.

Ilustración de monitorización del moldeo por inyección con una inyectora que envía por MQTT datos de presión, colchón y temperatura de cada disparo a un gráfico de calidad
Pruébalo en tu propio broker MQTTConsigue un broker MQTT privado y gestionado con el plan Free y empieza con ejemplos de código listos para usar.
Pruébalo gratis Ejemplos de código Sin tarjeta

La monitorización del moldeo por inyección consiste en capturar la huella de proceso de cada disparo, no solo en contar piezas. Este caso de uso muestra cómo publicar por MQTT el tiempo de ciclo, el colchón, la presión y las temperaturas de cada disparo, comparar cada disparo con su propio historial reciente y avisar al equipo cuando el proceso empieza a derivar. El resultado es una detección más temprana de piezas incompletas, rebabas y problemas dimensionales, con un registro claro de cómo era el proceso cuando se fabricó cada pieza.

Por qué importan los datos por disparo en el moldeo

Una inyectora es muy buena repitiéndose, hasta que deja de serlo. Cambia la humedad del material, falla una resistencia de banda, se desgasta el anillo antirretorno o el molde se calienta tras una parada. Cada una de estas situaciones aparece primero como un pequeño desplazamiento en un valor de proceso, a menudo varios disparos antes de un defecto visible. Las plantas que solo revisan las piezas al final de cada hora encuentran el problema cuando ya hay decenas o cientos de piezas en la caja.

La monitorización por disparo cambia los tiempos. Cuando cada ciclo publica sus valores, un suscriptor puede comparar el disparo actual con los últimos 50 y reaccionar en un solo ciclo. También da evidencias a los ingenieros de calidad: cuando llega una reclamación de un cliente, puedes consultar los datos de proceso de ese lote en lugar de hacer suposiciones.

Los valores de proceso que merece la pena capturar

Las máquinas exponen docenas de valores. Estos son los que con más frecuencia explican los defectos:

Valor Qué suele significar un desplazamiento
Tiempo de ciclo Intervención del operario, retraso del robot o de la cinta, cambio en el enfriamiento
Tiempo de inyección (llenado) Cambio de viscosidad: humedad del material, temperatura de la masa fundida, proporción de molido
Presión de inyección máxima Lo mismo que el tiempo de llenado, o una entrada o boquilla parcialmente obstruida
Colchón Fuga en el anillo antirretorno o dosificación irregular; un colchón muy bajo arriesga piezas incompletas
Tiempo de dosificación (plastificación) Problemas de alimentación, formación de puentes de material en la tolva, desgaste del husillo
Posición o presión de conmutación Conmutación irregular que afecta a la compactación
Temperaturas de las zonas del cilindro Fallo de resistencia de banda o de termopar
Temperaturas del molde (lado fijo y móvil) Fallo del termorregulador, canal de refrigeración obstruido
Presión y tiempo de mantenimiento Cambios de consigna que afectan a rechupes y dimensiones

Empieza por el tiempo de ciclo, el tiempo de llenado, la presión máxima, el colchón y el tiempo de dosificación. Provienen del controlador de la máquina en cada disparo y, juntos, detectan la mayor parte de la deriva del proceso.

Sacar los datos de la máquina

Las máquinas modernas suelen ofrecer una de estas interfaces:

  • OPC UA según la especificación complementaria Euromap 77. Muchas máquinas recientes ofrecen un modelo de información estandarizado para los parámetros de ciclo. Un cliente OPC UA en el edge se suscribe a los valores del ciclo y los publica en MQTT cuando termina un ciclo nuevo.
  • Interfaces Euromap antiguas o protocolos del fabricante. Algunas máquinas heredadas exponen los datos de disparo mediante interfaces basadas en archivos o propietarias. Un gateway los lee y normaliza los datos.
  • Sensores de retrofit. Si el controlador no ofrece nada, añade una señal de ciclo desde la salida de molde abierto, además de termopares o una lectura de temperatura del molde, mediante un pequeño PLC o un ESP32. Pierdes las curvas de presión, pero sigues obteniendo el tiempo de ciclo y las temperaturas.

La guía de IoT industrial con MQTT explica el patrón de gateway en general. Lo importante aquí es publicar un mensaje completo por disparo, disparado por el fin de ciclo, no un flujo de valores muestreados con un temporizador.

Diseño del mensaje: un disparo, un mensaje

Usa un topic por máquina y un payload que lleve el número de disparo, el molde y el material para que cada registro se describa por sí mismo:

connectmq/demo/<your-id>/plant1/molding/imm07/shot
{
  "shot": 48211,
  "mold": "M-2231",
  "material": "PP-H 12 MFI",
  "cycle_time": 18.42,
  "fill_time": 0.86,
  "peak_pressure": 1065,
  "cushion": 4.8,
  "recovery_time": 6.1,
  "barrel": [205, 215, 225, 230],
  "mold_temp": {"fixed": 41.2, "moving": 43.0},
  "ts": "2026-10-16T08:21:44.120Z"
}

Mantén unidades coherentes entre máquinas (segundos, bar, milímetros, grados Celsius) y documéntalas una vez. Publica con QoS 1 para que un breve corte de red no haga perder disparos; el gateway almacena en búfer y el broker confirma cada mensaje. Si tu planta ya usa Sparkplug B, ConnectMQ puede decodificarlo y republicarlo en topics ISA-95, de modo que una celda de moldeo no tiene que cambiar su formato nativo.

Detectar la deriva disparo a disparo

El suscriptor siguiente mantiene una ventana móvil de disparos recientes por máquina y marca cualquier valor que se aleje más de tres desviaciones estándar de la media de la ventana. Es intencionadamente sencillo: sin entrenamiento de modelos, solo el comportamiento reciente de la propia máquina como referencia. Publica los disparos marcados en un topic alert al que pueden suscribirse un dashboard, una luz andon o una herramienta de mensajería.

import json
import statistics
from collections import defaultdict, deque

import paho.mqtt.client as mqtt

PREFIX = "connectmq/demo/r5t1w8/plant1/molding"
WATCH = ["cycle_time", "fill_time", "peak_pressure", "cushion", "recovery_time"]
WINDOW = 50
MIN_SHOTS = 20
SIGMA = 3.0

history = defaultdict(lambda: {k: deque(maxlen=WINDOW) for k in WATCH})


def on_connect(client, userdata, flags, reason_code, properties):
    client.subscribe(f"{PREFIX}/+/shot", qos=1)


def on_message(client, userdata, msg):
    machine = msg.topic.split("/")[-2]
    shot = json.loads(msg.payload)
    issues = []
    for key in WATCH:
        value = shot.get(key)
        if value is None:
            continue
        window = history[machine][key]
        if len(window) >= MIN_SHOTS:
            mean = statistics.fmean(window)
            sd = statistics.pstdev(window) or 1e-9
            z = (value - mean) / sd
            if abs(z) > SIGMA:
                issues.append({"param": key, "value": value, "mean": round(mean, 3), "z": round(z, 1)})
        window.append(value)
    if issues:
        alert = {"machine": machine, "shot": shot.get("shot"), "mold": shot.get("mold"), "issues": issues}
        client.publish(f"{PREFIX}/{machine}/alert", json.dumps(alert), qos=1)
        print("ALERT", alert)


client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="molding-watch-r5t1w8")
client.on_connect = on_connect
client.on_message = on_message
client.connect("broker.connectmq.com", 1883, keepalive=30)
client.loop_forever()

Algunas notas de ajuste sacadas de la práctica:

  1. Vacía la ventana cuando cambien el molde o el material; de lo contrario, el trabajo nuevo se juzga con el anterior. Compara mold con el último disparo y reinicia si cambia.
  2. Ignora los primeros disparos tras una parada. El molde y el cilindro necesitan tiempo para estabilizarse, y esos disparos suelen desecharse de todos modos.
  3. Algunos parámetros merecen también límites fijos. Un colchón cercano a cero es un problema aunque haya ido bajando poco a poco, porque la media móvil sigue la deriva lenta. Combina la comprobación estadística con límites absolutos de la hoja de proceso.
  4. No alertes en cada disparo marcado. Exige que dos de los últimos cinco disparos estén fuera de rango antes de llamar a nadie, o las alertas quedarán silenciadas en una semana.

Para profundizar en gráficos de control y reglas de rachas, consulta SPC en tiempo real.

Qué hace el equipo con los datos

La monitorización solo compensa cuando cambia el comportamiento en planta. Flujos de trabajo típicos:

  • Los ajustadores reciben una alerta en la luz andon de la celda cuando derivan el colchón o el tiempo de llenado, y revisan el secado del material y el anillo antirretorno antes de que se acumule desperdicio.
  • Calidad vincula los datos de disparo con los números de lote y puede poner en cuarentena solo la ventana de tiempo afectada en lugar de la producción de un turno completo.
  • Planificación de la producción usa los tiempos de ciclo reales por molde en lugar de los cotizados, lo que hace más realistas los programas y las ofertas. El artículo de monitorización del tiempo de ciclo profundiza en ello.
  • Mantenimiento vigila tendencias lentas como el tiempo de dosificación y el ciclo de trabajo de las resistencias del cilindro para planificar trabajos en husillo y resistencias.

Los datos de ciclo y de estado de las mismas máquinas alimentan también el OEE: el recuento de disparos da la producción, el tiempo de ciclo da el rendimiento y los disparos marcados aproximan la pérdida de calidad.

Más allá del piloto

El servidor público en broker.connectmq.com sirve para demostrar la idea con un simulador, pero cualquiera puede leer su zona pública, y los parámetros de moldeo son conocimiento de proceso que no deberías compartir. Para la celda real, crea un broker privado en ConnectMQ y conecta cada gateway con su propio usuario, contraseña y client ID mediante TLS en el puerto 8883. Un broker MQTT gestionado significa que nadie del equipo de planta tiene que mantener el broker, y ejecutarlo como broker MQTT en la nube permite que el equipo de calidad corporativo vea los mismos datos de disparo que la planta. Las reglas de alerta por umbral del portal pueden cubrir los límites absolutos sencillos, mientras que la comprobación estadística se ejecuta en tu propio suscriptor. Los mismos datos pueden mostrar el estado de cada celda sobre un gemelo digital 3D de la nave. Para saber dónde encaja esto en un programa más amplio, lee la guía de fabricación inteligente.

Empieza con ConnectMQ

Crea un broker gratuito en app.connectmq.com con el plan Serverless y sin tarjeta de crédito, conecta el gateway de una inyectora y el suscriptor de deriva, y recibe esta misma semana tus primeras alertas por disparo.

Preguntas frecuentes

¿Cuál es el valor individual más útil para la monitorización del moldeo por inyección?

El colchón y el tiempo de llenado juntos detectan gran parte de los problemas de proceso, porque reflejan tanto la regularidad del disparo como la viscosidad del material. El tiempo de ciclo por sí solo informa sobre la productividad, no sobre la calidad.

¿Debo transmitir las curvas de presión completas por MQTT?

Normalmente no al principio. Los valores resumen por disparo son pequeños y cubren la mayoría de las necesidades; captura curvas completas solo para piezas críticas y mantenlas dentro del límite de tamaño de mensaje de tu plan de broker.

¿Se pueden monitorizar máquinas antiguas sin OPC UA?

Sí. Una señal de molde abierto da el tiempo de ciclo y el recuento, y los termopares añadidos dan las temperaturas. Publicas menos valores, pero la canalización MQTT es idéntica.

¿Cómo evito falsas alarmas después de un cambio de molde?

Reinicia la referencia móvil cuando cambien el molde o el material y omite los primeros disparos de estabilización. Combina las comprobaciones estadísticas con límites fijos de la hoja de proceso.

Artículos relacionados

OEE vs TEEP vs OOE: ¿qué indicador deberías usar?

OEE, OOE y TEEP comparten los mismos factores de rendimiento y calidad, pero se miden frente a bases de tiempo distintas. Esta comparativa resuelve un único ejemplo y enumera las señales MQTT que necesita cada indicador.

8 min de lectura

Todos los artículos →

Tu broker MQTT privado, a unos pocos clics

Crea una cuenta, obtén las credenciales de tu broker y conecta tu primer dispositivo, sin servidores que instalar, parchear ni escalar.