Monitoramento de injeção plástica significa capturar a impressão digital do processo em cada injeção, e não apenas contar peças. Este caso de uso mostra como publicar via MQTT o tempo de ciclo, o colchão, a pressão e as temperaturas de cada injeção, comparar cada ciclo com o seu próprio histórico recente e alertar a equipe quando o processo começa a derivar. O resultado é a detecção mais cedo de peças incompletas, rebarbas e problemas dimensionais, com um registro claro de como estava o processo quando cada peça foi feita.
Por que os dados por injeção importam na moldagem
Uma injetora é muito boa em se repetir, até deixar de ser. A umidade do material muda, uma resistência de aquecimento queima, um anel de bloqueio se desgasta ou o molde esquenta depois de uma parada. Cada um desses eventos aparece primeiro como uma pequena mudança em um valor de processo, muitas vezes várias injeções antes de um defeito visível. Plantas que só inspecionam peças no fim de cada hora descobrem o problema quando dezenas ou centenas de peças já estão na caixa.
O monitoramento por injeção muda esse tempo. Quando cada ciclo publica seus valores, um assinante pode comparar a injeção atual com as últimas 50 e reagir em um único ciclo. Ele também dá evidências à engenharia de qualidade: quando chega uma reclamação de cliente, você consulta os dados de processo daquele lote em vez de adivinhar.
Os valores de processo que vale a pena capturar
As máquinas expõem dezenas de valores. Estes são os que mais frequentemente explicam defeitos:
| Valor | O que uma mudança geralmente significa |
|---|---|
| Tempo de ciclo | Intervenção do operador, atraso do robô ou da esteira, mudança no resfriamento |
| Tempo de injeção (preenchimento) | Mudança de viscosidade: umidade do material, temperatura do fundido, proporção de moído |
| Pressão de injeção de pico | O mesmo que o tempo de preenchimento, ou um ponto de injeção ou bico parcialmente obstruído |
| Colchão | Vazamento no anel de bloqueio ou dosagem inconsistente; colchão muito baixo traz risco de peça incompleta |
| Tempo de dosagem (plastificação) | Problemas de alimentação, material formando ponte no funil, desgaste da rosca |
| Posição ou pressão de comutação | Comutação inconsistente afetando o recalque |
| Temperaturas das zonas do cilindro | Falha de resistência ou de termopar |
| Temperaturas do molde (lado fixo e móvel) | Falha no termorregulador, canal de refrigeração obstruído |
| Pressão e tempo de recalque | Mudanças de setpoint que afetam chupados e dimensões |
Comece por tempo de ciclo, tempo de preenchimento, pressão de pico, colchão e tempo de dosagem. Eles vêm do controlador da máquina a cada injeção e, juntos, pegam a maior parte das derivas de processo.
Tirando os dados da máquina
Máquinas modernas costumam oferecer uma destas interfaces:
- OPC UA conforme a companion specification Euromap 77. Muitas máquinas mais novas fornecem um modelo de informação padronizado para os parâmetros de ciclo. Um cliente OPC UA na borda assina os valores do ciclo e os publica no MQTT quando um novo ciclo termina.
- Interfaces Euromap mais antigas ou protocolos do fabricante. Algumas máquinas legadas expõem os dados de injeção por interfaces baseadas em arquivo ou proprietárias. Um gateway os lê e normaliza os dados.
- Sensores de retrofit. Se o controlador não oferece nada, adicione um sinal de ciclo a partir da saída de molde aberto, além de termopares ou uma leitura de temperatura do molde, por meio de um pequeno CLP ou ESP32. Você perde as curvas de pressão, mas ainda obtém tempo de ciclo e temperaturas.
O guia de IoT industrial com MQTT explica o padrão de gateway de forma geral. O ponto principal aqui é publicar uma mensagem completa por injeção, disparada pelo fim do ciclo, e não um fluxo de valores amostrados por temporizador.
Projeto da mensagem: uma injeção, uma mensagem
Use um topic por máquina e um payload que traga o número da injeção, o molde e o material, para que cada registro seja autodescritivo:
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"
}
Mantenha as unidades consistentes entre as máquinas (segundos, bar, milímetros, Celsius) e documente-as uma vez. Publique com QoS 1 para que uma breve instabilidade de rede não faça perder injeções; o gateway armazena em buffer e o broker confirma cada mensagem. Se a sua planta já usa Sparkplug B, a ConnectMQ pode decodificá-lo e republicar em topics ISA-95, de modo que uma célula de injeção não precise mudar seu formato nativo.
Detectando a deriva injeção a injeção
O assinante abaixo mantém uma janela móvel das injeções recentes por máquina e sinaliza qualquer valor que se afaste mais de três desvios-padrão da média da janela. Ele é propositalmente simples: nada de treinamento de modelo, apenas o próprio comportamento recente da máquina como referência. Ele publica as injeções sinalizadas em um topic alert, que um dashboard, uma luz de andon ou uma ferramenta de mensagens pode assinar.
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()
Algumas notas de ajuste tiradas da prática:
- Limpe a janela quando o molde ou o material mudar; caso contrário, o novo trabalho é julgado em comparação com o anterior. Compare
moldcom a última injeção e reinicie na mudança. - Ignore as primeiras injeções após uma parada. Molde e cilindro precisam de tempo para estabilizar, e essas injeções costumam ser descartadas de qualquer forma.
- Alguns parâmetros também merecem limites fixos. Um colchão perto de zero é um problema mesmo que tenha caído devagar, porque a média móvel acompanha derivas lentas. Combine a verificação estatística com limites absolutos da ficha de processo.
- Não alerte a cada injeção sinalizada. Exija que duas das últimas cinco injeções estejam fora da faixa antes de chamar alguém, ou os alertas serão silenciados em uma semana.
Para um olhar mais profundo sobre cartas de controle e regras de sequência, veja CEP em tempo real.
O que a equipe faz com os dados
O monitoramento só se paga quando muda o comportamento no chão de fábrica. Fluxos de trabalho típicos:
- Preparadores recebem um alerta na luz de andon da célula quando o colchão ou o tempo de preenchimento derivam, e verificam a secagem do material e o anel de bloqueio antes que o refugo se acumule.
- A qualidade vincula os dados de injeção aos números de lote e pode segregar apenas a janela de tempo afetada, em vez da produção de um turno inteiro.
- O PCP usa os tempos de ciclo reais por molde, em vez dos orçados, o que torna programações e orçamentos mais realistas. O artigo de monitoramento do tempo de ciclo se aprofunda nisso.
- A manutenção acompanha tendências lentas, como o tempo de dosagem e o ciclo de trabalho das resistências do cilindro, para planejar intervenções na rosca e nas resistências.
Os dados de ciclo e de estado das mesmas máquinas também alimentam o OEE: a contagem de injeções dá a produção, o tempo de ciclo dá o desempenho e as injeções sinalizadas aproximam a perda de qualidade. Com o tempo, esse histórico por injeção também pode alimentar um gêmeo digital da célula de injeção.
Indo além do piloto
O servidor MQTT público em broker.connectmq.com serve para provar a ideia com um simulador, mas sua área pública pode ser lida por qualquer pessoa, e os parâmetros de moldagem são know-how de processo que você não deve compartilhar. Para a célula real, crie um broker privado na ConnectMQ e conecte cada gateway com seu próprio usuário, senha e client ID via TLS na porta 8883. Um broker MQTT gerenciado significa que ninguém na equipe da planta precisa manter o broker, e rodá-lo como broker MQTT na nuvem permite que a equipe corporativa de qualidade veja os mesmos dados de injeção que a planta, seja em Joinville ou em Manaus. As regras de alerta por limite do portal podem cobrir os limites absolutos simples, enquanto a verificação estatística roda no seu próprio assinante. Para ver onde isso se encaixa em um programa mais amplo, leia o guia de manufatura inteligente.
Comece com a ConnectMQ
Crie um broker gratuito em app.connectmq.com no plano Serverless, sem cartão de crédito, conecte o gateway de uma injetora e o assinante de deriva e veja seus primeiros alertas por injeção ainda esta semana.
Perguntas frequentes
Qual é o valor isolado mais útil no monitoramento de injeção plástica?
Colchão e tempo de preenchimento, juntos, pegam uma grande parte dos problemas de processo, porque refletem tanto a consistência da dosagem quanto a viscosidade do material. O tempo de ciclo sozinho fala de produtividade, não de qualidade.
Devo transmitir as curvas de pressão completas via MQTT?
Geralmente não, no início. Valores-resumo por injeção são pequenos e cobrem a maioria das necessidades; capture curvas completas apenas para peças críticas e mantenha-as dentro do limite de tamanho de mensagem do seu plano de broker.
É possível monitorar máquinas mais antigas sem OPC UA?
Sim. Um sinal de molde aberto dá o tempo de ciclo e a contagem, e termopares adicionais dão as temperaturas. Você publica menos valores, mas o pipeline MQTT é idêntico.
Como evitar alarmes falsos depois de uma troca de molde?
Reinicie a referência móvel quando o molde ou o material mudar e pule as primeiras injeções de estabilização. Combine verificações estatísticas com limites fixos da ficha de processo.



