Spritzguss-Überwachung bedeutet, den Prozess-Fingerabdruck jedes einzelnen Schusses zu erfassen, nicht nur Teile zu zählen. Dieser Anwendungsfall zeigt, wie Sie Zykluszeit, Massepolster, Druck und Temperaturen pro Schuss per MQTT veröffentlichen, jeden Schuss mit seiner eigenen jüngsten Historie vergleichen und das Team alarmieren, sobald der Prozess abzudriften beginnt. Das Ergebnis: Unvollständige Füllungen, Gratbildung und Maßprobleme werden früher erkannt, und Sie haben eine klare Aufzeichnung, wie der Prozess bei der Herstellung jedes Teils aussah.
Warum Daten auf Schussebene im Spritzguss wichtig sind
Eine Spritzgießmaschine wiederholt sich hervorragend – bis sie es nicht mehr tut. Die Materialfeuchte ändert sich, ein Heizband fällt aus, eine Rückstromsperre verschleißt oder das Werkzeug erwärmt sich nach einem Stillstand. All das zeigt sich zuerst als kleine Verschiebung eines Prozesswerts, oft mehrere Schüsse vor einem sichtbaren Fehler. Werke, die Teile nur am Ende jeder Stunde prüfen, entdecken das Problem, wenn bereits Dutzende oder Hunderte Teile im Karton liegen.
Die Überwachung auf Schussebene verändert den Zeitpunkt. Veröffentlicht jeder Zyklus seine Werte, kann ein Subscriber den aktuellen Schuss mit den letzten 50 vergleichen und innerhalb eines Zyklus reagieren. Zudem erhalten Qualitätsingenieure Nachweise: Trifft eine Kundenreklamation ein, schlagen Sie die Prozessdaten dieses Loses nach, statt zu raten.
Prozesswerte, die sich zu erfassen lohnen
Maschinen stellen Dutzende Werte bereit. Diese erklären Fehler am häufigsten:
| Wert | Was eine Verschiebung meist bedeutet |
|---|---|
| Zykluszeit | Eingriff des Bedieners, Verzögerung bei Roboter oder Förderband, geänderte Kühlung |
| Einspritzzeit (Füllzeit) | Viskositätsänderung: Materialfeuchte, Massetemperatur, Mahlgutanteil |
| Spitzeneinspritzdruck | Wie Füllzeit, oder ein teilweise verstopfter Anschnitt bzw. eine verstopfte Düse |
| Massepolster | Undichte Rückstromsperre oder schwankendes Dosiervolumen; ein sehr kleines Polster riskiert unvollständige Füllungen |
| Dosierzeit (Plastifizierzeit) | Einzugsprobleme, Brückenbildung im Trichter, Schneckenverschleiß |
| Umschaltpunkt oder Umschaltdruck | Ungleichmäßiges Umschalten mit Auswirkung auf die Nachdruckphase |
| Zylinderzonentemperaturen | Ausfall von Heizband oder Thermoelement |
| Werkzeugtemperaturen (feste und bewegliche Hälfte) | Fehler im Temperiergerät, verstopfter Kühlkanal |
| Nachdruck und Nachdruckzeit | Sollwertänderungen mit Einfluss auf Einfallstellen und Maße |
Beginnen Sie mit Zykluszeit, Füllzeit, Spitzendruck, Massepolster und Dosierzeit. Sie kommen bei jedem Schuss von der Maschinensteuerung und erkennen zusammen den Großteil aller Prozessdrifts.
Daten von der Maschine holen
Moderne Maschinen bieten in der Regel eine dieser Schnittstellen:
- OPC UA nach der Companion Specification Euromap 77. Viele neuere Maschinen bieten ein standardisiertes Informationsmodell für Zyklusparameter. Ein OPC-UA-Client am Edge abonniert die Zykluswerte und veröffentlicht sie per MQTT, sobald ein Zyklus abgeschlossen ist.
- Ältere Euromap-Schnittstellen oder Herstellerprotokolle. Manche Bestandsmaschinen stellen Schussdaten über dateibasierte oder proprietäre Schnittstellen bereit. Ein Gateway liest sie aus und normalisiert die Daten.
- Nachrüstsensoren. Bietet die Steuerung nichts, ergänzen Sie ein Zyklussignal über den Ausgang „Werkzeug offen“ sowie Thermoelemente oder eine Werkzeugtemperaturmessung über eine kleine SPS oder einen ESP32. Druckkurven entfallen, Zykluszeit und Temperaturen erhalten Sie trotzdem.
Der Leitfaden zu Industrial IoT mit MQTT erklärt das Gateway-Muster allgemein. Entscheidend ist hier, pro Schuss eine vollständige Nachricht zu veröffentlichen, ausgelöst durch das Zyklusende – nicht einen Strom zeitgesteuert abgetasteter Werte.
Nachrichtendesign: ein Schuss, eine Nachricht
Verwenden Sie ein Topic pro Maschine und einen Payload mit Schussnummer, Werkzeug und Material, damit jeder Datensatz selbstbeschreibend ist:
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"
}
Halten Sie die Einheiten über alle Maschinen einheitlich (Sekunden, bar, Millimeter, Grad Celsius) und dokumentieren Sie sie einmal. Veröffentlichen Sie mit QoS 1, damit ein kurzer Netzwerkaussetzer keine Schüsse kostet; das Gateway puffert, und der Broker bestätigt jede Nachricht. Folgt der Topic-Pfad der ISA-95-Hierarchie (Werk → Bereich → Maschine), wird jede Spritzgießzelle Teil eines Unified Namespace (UNS), in dem MES, Qualität und Instandhaltung dieselben Schussdaten finden. Nutzt Ihr Werk bereits Sparkplug B, kann ConnectMQ es dekodieren und in ISA-95-Topics neu veröffentlichen, sodass eine Spritzgießzelle ihr natives Format nicht ändern muss.
Drift Schuss für Schuss erkennen
Der folgende Subscriber hält pro Maschine ein gleitendes Fenster der letzten Schüsse vor und markiert jeden Wert, der mehr als drei Standardabweichungen vom Fenstermittelwert abweicht. Er ist bewusst einfach gehalten: kein Modelltraining, nur das eigene jüngste Verhalten der Maschine als Referenz. Markierte Schüsse veröffentlicht er auf einem alert-Topic, das ein Dashboard, eine Andon-Leuchte oder ein Messaging-Tool abonnieren kann.
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()
Einige Hinweise zur Feinabstimmung aus der Praxis:
- Leeren Sie das Fenster, wenn Werkzeug oder Material wechseln, sonst wird der neue Auftrag am alten gemessen. Vergleichen Sie
moldmit dem letzten Schuss und setzen Sie bei einer Änderung zurück. - Ignorieren Sie die ersten Schüsse nach einem Stillstand. Werkzeug und Zylinder brauchen Zeit, um sich zu stabilisieren, und diese Schüsse werden ohnehin oft verworfen.
- Manche Parameter verdienen zusätzlich feste Grenzen. Ein Massepolster nahe null ist ein Problem, auch wenn es langsam dorthin gekrochen ist, denn der gleitende Mittelwert folgt langsamer Drift. Kombinieren Sie die statistische Prüfung mit absoluten Grenzen aus dem Einstellblatt.
- Alarmieren Sie nicht bei jedem markierten Schuss. Verlangen Sie, dass zwei der letzten fünf Schüsse außerhalb liegen, bevor jemand gerufen wird, sonst sind die Alarme innerhalb einer Woche stummgeschaltet.
Einen tieferen Einblick in Regelkarten und Laufregeln bietet Echtzeit-SPC.
Was das Team mit den Daten macht
Überwachung zahlt sich nur aus, wenn sie das Verhalten in der Fertigung verändert. Typische Abläufe:
- Einrichter erhalten über die Andon-Leuchte der Zelle einen Alarm, wenn Massepolster oder Füllzeit abdriften, und prüfen Materialtrocknung und Rückstromsperre, bevor sich Ausschuss ansammelt.
- Qualität verknüpft Schussdaten mit Losnummern und kann nur das betroffene Zeitfenster sperren statt der Produktion einer ganzen Schicht.
- Produktionsplanung nutzt tatsächliche Zykluszeiten pro Werkzeug statt angebotener Werte, was Pläne und Angebote realistischer macht. Der Artikel zur Zykluszeitüberwachung vertieft dieses Thema.
- Instandhaltung beobachtet langsame Trends wie Dosierzeit und Einschaltdauer der Zylinderheizungen, um Arbeiten an Schnecke und Heizbändern zu planen.
Zyklus- und Zustandsdaten derselben Maschinen speisen auch die OEE: Die Schusszahl liefert die Ausbringung, die Zykluszeit die Leistung, und markierte Schüsse nähern den Qualitätsverlust an.
Betrieb über den Pilot hinaus
Der Öffentliche MQTT-Broker unter broker.connectmq.com eignet sich, um die Idee mit einem Simulator zu erproben, doch sein öffentlicher Bereich ist für jeden lesbar, und Spritzgießparameter sind Prozess-Know-how, das Sie nicht teilen sollten. Für die echte Zelle erstellen Sie einen privaten Broker bei ConnectMQ und verbinden jedes Gateway mit eigenem Benutzernamen, Passwort und Client-ID über TLS auf Port 8883. Ein vollständig verwalteter MQTT-Broker bedeutet, dass niemand im Werksteam den Broker warten muss, und der Betrieb als MQTT-Broker in der Cloud lässt das zentrale Qualitätsteam dieselben Schussdaten sehen wie das Werk. Die Schwellwert-Alarmregeln im Portal decken einfache absolute Grenzen ab, während die statistische Prüfung in Ihrem eigenen Subscriber läuft. Wo sich das in ein größeres Programm einfügt, beschreibt der Leitfaden zu Smart Manufacturing.
Starten Sie mit ConnectMQ
Erstellen Sie unter app.connectmq.com einen kostenlosen Broker im Serverless-Tarif ohne Kreditkarte, verbinden Sie das Gateway einer Spritzgießmaschine und den Drift-Subscriber und sehen Sie noch diese Woche Ihre ersten Alarme auf Schussebene.
Häufig gestellte Fragen
Welcher einzelne Wert ist für die Spritzguss-Überwachung am nützlichsten?
Massepolster und Füllzeit erkennen zusammen einen großen Teil der Prozessprobleme, weil sie sowohl die Schusskonstanz als auch die Materialviskosität widerspiegeln. Die Zykluszeit allein sagt etwas über die Produktivität aus, nicht über die Qualität.
Sollte ich komplette Druckkurven per MQTT übertragen?
Anfangs meist nicht. Kennwerte pro Schuss sind klein und decken die meisten Anforderungen ab; erfassen Sie vollständige Kurven nur für kritische Teile und halten Sie die Nachrichtengrößenbegrenzung Ihres Broker-Tarifs ein.
Lassen sich ältere Maschinen ohne OPC UA überwachen?
Ja. Ein Signal „Werkzeug offen“ liefert Zykluszeit und Stückzahl, nachgerüstete Thermoelemente liefern Temperaturen. Sie veröffentlichen weniger Werte, aber die MQTT-Pipeline ist identisch.
Wie vermeide ich Fehlalarme nach einem Werkzeugwechsel?
Setzen Sie die gleitende Referenz zurück, wenn Werkzeug oder Material wechseln, und überspringen Sie die ersten Stabilisierungsschüsse. Kombinieren Sie statistische Prüfungen mit festen Grenzen aus dem Einstellblatt.



