MIGAL.CO Sensorbox – Schweißprozessdaten erfassen, verstehen, vernetzen

  • Zeitlich synchronisierte Multisensorik: Strom, Spannung, Drahtvorschub und Gasdurchfluss mit gemeinsamer Zeitbasis
  • Web-Dashboard zur Konfiguration, Live-Anzeige, Firmwareupdate
  • 5 kHz Abtastrate: Gemäß Abtasttheorem lassen sich dadurch Frequenzanteile bis ca. 2,5 kHz (Nyquist-Frequenz) eindeutig messen
  • High-Speed Rohdatenstream (UDP) für Oszilloskop-Traces, FFT, U-I-Diagramme und Histogramme – ideal für Versuchsreihen und Modellbildung
  • Deterministische Messfenster & Sequenznummern (Timestamp + seq) für reproduzierbare Auswertung und Paketverlust-Erkennung
  • On-device Feature-Berechnung (U/I RMS, Wirkleistung, Statistikwerte) für schnelle Kennwertbildung ohne PC/Cloud
  • MQTT/JSON Telemetrie für einfache Integration in Labor-Setups, Datenpipelines und Time-Series-DBs (z. B. InfluxDB)
  • OPC UA Server – standardisierte Schnittstelle für Industrie-Integration
  • Diagnose- und Qualitätsflags im Datenstrom (z. B. ADC-Overrun, Encoder-Timeout, NTP-Sync) für saubere Datenvalidierung
  • Dual-Core Architektur (Messkern + Kommunikationskern) für stabile Messung auch bei Netzwerk- und UI-Last
  • NTP-Synchronisation für vergleichbare Zeitstempel über mehrere Sensorboxen/Schweißplätze hinweg
  • RoboScope (Windows/macOS) zur Live-Analyse: Oszilloskop, FFT, Wasserfalldiagramm, Histogramm, U-I und U-I-Dichte – schnell von „Signal“ zu „Insight“
  • Kalibrierbar über Nullpunkt, Verstärkung und Messradumfang des Encoders
  • Integrierte Berechnung des Korrekturfaktors für beliebige Gasmischungen aus Ar, He, O2, H2 und N2.
  • Exportfunktion der Messdaten in das weldx-Format
  • Übernahme von Meßwerten direkt in WPS-Maker Dokumente
  • Speichern und zentrales Überwachen in RoboCenter

Die MIGAL.CO Sensorbox ist eine modulare, mikrocontrollerbasierte Mess- und Kommunikationsplattform zur hochauflösenden Erfassung, Verarbeitung und Weiterleitung von Schweißprozessdaten für Lichtbogenschweißprozesse. Sie wurde für den rauen industriellen Schweißalltag entwickelt und bildet die technische Basis für Prozessüberwachungdatenbasierte Qualitätsanalyse und perspektivisch KI-gestützte Fehlererkennung.

Mit der Sensorbox erhält der Anwender Schweißdaten direkt aus dem Prozess – sauber zeitlich zugeordnet, strukturiert paketiert und sicher ins Netzwerk übertragen. So kann man:

  • Schweißprozesse transparent machen (statt „Bauchgefühl“)

  • Parameter pro Schweißnaht / Job / Arbeitsplatz nachvollziehen

  • Daten in InfluxDB, Dashboards oder Cloud-Systeme einspeisen

  • Echtzeit-Visualisierung (Oszilloskop/Spektrum) oder Edge-Analysen umsetzen

  • die Grundlage für automatisierte Anomalie- und Fehlererkennung schaffen

  • Einfach und schnell Schweißanweisungen (WPS) aus realen, gemessenen Schweißdaten erstellen

Systemarchitektur: Echtzeit-Messung trifft Netzwerk & Analyse

Im Inneren arbeitet ein STM32H7 Dual-Core (Cortex-M7 + Cortex-M4) mit klarer Aufgabenverteilung:

  • Cortex-M4: übernimmt die zeitkritische Messung (hochfrequent, deterministisch)

  • Cortex-M7: kümmert sich um Datenaufbereitung, Analyse, Protokolle, Netzwerkkommunikation und Systemsteuerung

Beide Kerne tauschen Daten über OpenAMP / RPMsg aus – mit geringer Latenzklarer Sequenzierung und robuster Struktur.

Messgrößen: die wichtigsten Prozessparameter synchron erfasst

Aktuell erfasst die Sensorbox:

  • Schweißstrom

  • Schweißspannung

  • Gasdurchfluss

  • Drahtgeschwindigkeit

Strom & Spannung werden mit hoher zeitlicher Auflösung über die ADCs des STM32H7 erfasst, im DMA-Circular-Modus5 kHz Abtastrate sind realisiert.

Gasdurchfluss und Drahtgeschwindigkeit sind vollständig integriert und werden synchron zu den elektrischen Größen aufgenommen – damit stimmen Zeitbezug und Zuordnung über alle Parameter hinweg.

Jeder Messframe enthält zusätzlich zu den Rohdaten wichtige Metadaten wie:

  • Zeitstempel

  • Sequenznummer

  • Statusflags

  • Kalibrierparameter (Gain/Offset)

Damit können Rohdaten auch auf nachgelagerten Systemen exakt in physikalische Größen umgerechnet werden – reproduzierbar und nachvollziehbar.

Datenverarbeitung: Kennzahlen direkt auf dem Gerät

Auf dem Cortex-M7 werden die Daten bereits vorverarbeitet und analysiert. Aktuell verfügbar sind u. a.:

  • RMS- und Mittelwertberechnung

  • Wirkleistung aus Strom und Spannung

  • Skalierung & Erfassung von Gasdurchfluss und Drahtgeschwindigkeit

Die Daten werden anschließend strukturiert paketiert und mit eindeutigen Kennungen versehen, sodass sie klar einem Job, einer Schweißnaht oder einem Arbeitsplatz zugeordnet werden können.

Kommunikation & Vernetzung: sicher in die IT – schnell in die Echtzeit

Die Sensorbox ist vollständig netzwerkfähig über Ethernet (LwIP TCP/IP-Stack) und bietet zwei zentrale Datenwege:

MQTT über TLS (mbedTLS) – für IT, Cloud & Datenbanken

Prozessdaten (Strom, Spannung, Gas, Draht) werden zyklisch übertragen (typisch 0,1 bis 5 Sekunden) – ideal für:

  • Cloud-/Server-Anbindungen

  • Prozessmonitoring & Reporting

  • Speicherung in Zeitreihensystemen (z. B. InfluxDB)

  • sichere Integration in bestehende IT-Infrastruktur

UDP-Echtzeitstream – für hochfrequente Live-Daten

Für hochfrequente und latenzkritische Anwendungen gibt es zusätzlich einen UDP-Datenstream. Darüber können rohe Messframes (Strom/Spannung) nahezu verzögerungsfrei an externe Systeme geschickt werden.

Die UDP-Pakete enthalten strukturierte Header (u. a. Magic Number, Sequenznummern, Zeitstempel, Payload-Beschreibung) – damit bleiben Synchronisation, Validierung und Nachverfolgung auch bei Paketverlust robust.

Typische Einsatzfälle:

  • Live-Visualisierung (Oszilloskop- oder Spektraldarstellung)

  • schnelle Regel-/Assistenzsysteme

  • Edge- oder PC-basierte Online-Analyse

Zusätzlich ist ein integrierter Webserver (Mongoose) an Bord – für Diagnose, Konfiguration und künftige Visualisierungen.

OPC UA Server – standardisierte Schnittstelle für Industrie-Integration

Für die einfache Anbindung an SCADA/MES/IIoT-Plattformen bietet die Sensorbox einen OPC UA Server (opc.tcp). Dadurch können Schweißdaten herstellerneutral und ohne proprietäre Gateways von OPC UA Clients wie z. B. UaExpert oder Node-RED ausgelesen werden.

Bereitgestellte Messwerte (Read-only):

  • Strom (RMS) [A]

  • Spannung (RMS) [V]

  • Leistung [W]

  • Gasfluss [l/min]

  • Drahtgeschwindigkeit [m/min]

Die Werte werden zyklisch aktualisiert und stehen im Namespace ns=1 zur Verfügung – ideal für Live-Monitoring, Datenlogging oder die Weiterverarbeitung in übergeordneten Systemen.

Zeitbasis & Synchronisation: Daten mit absolutem Zeitbezug

Zur präzisen zeitlichen Einordnung unterstützt die Sensorbox SNTP/NTP-Zeitsynchronisation. Alle Messwerte werden mit absoluten Zeitstempeln versehen – wichtig für:

  • Korrelation mehrerer Sensorboxen

  • saubere Zeitreihenanalyse

  • spätere Auswertung in InfluxDB & Co.

Persistenz & Konfiguration: robust gespeichert, auch bei Spannungseinbruch

Geräte-, Netzwerk- und Sicherheitsparameter (z. B. IP-Konfiguration, MQTT-Zugangsdaten, UDP-Zieladresse, TLS-Zertifikate) werden persistent im internen Flash gespeichert.

Eine robuste Speicherstrategie mit:

  • Magic Number

  • Prüfsummen

  • klar definierten Flash-Sektoren

stellt sicher, dass Konfigurationen auch bei unerwartetem Spannungsverlust erhalten bleiben.

Kurz gesagt

Die MIGAL.CO Sensorbox ist die Brücke zwischen Schweißprozess und Datenwelt:

präzise Messungsynchronisierte ProzessdatenVorverarbeitung auf dem Gerät und sichere bzw. echtzeitfähige Übertragung – bereit für Monitoring, Analyse und die nächste Stufe der Qualitätssicherung.

Messverfahren für Strom, Spannung und Leistung

Die MIGAL.CO Sensorbox berechnet aus hochfrequenten Rohdaten mit 5 kHz Abtastfrequenz präzise Prozesskennwerte für Spannung, Strom und Leistung. Dazu werden Spannung u(t) und Strom i(t) in kurzen Zeitfenstern erfasst und digital ausgewertet:

  • RMS-Spannung (U_RMS) und RMS-Strom (I_RMS) sind die sogenannten Effektivwerte. Sie beschreiben die elektrische „wirksame“ Größe auch dann zuverlässig, wenn das Signal nicht sinusförmig ist – wie es beim Schweißen typisch ist.

  • Leistung (P) wird als Mittelwert der Momentanleistung berechnet: Für jedes Sample wird u * i gebildet und anschließend über das Zeitfenster gemittelt. So entsteht ein stabiler Leistungswert, der reale Prozessänderungen (z. B. Kurzschlussphasen, Lichtbogeninstabilität, Draht-/Gas-Einflüsse) sauber abbildet.

Diese Kennwerte bilden die Grundlage für Live-ÜberwachungTrendanalysenQualitätsauswertung und spätere KI-gestützte Fehlererkennung.

RMS-Spannung:

\[ U_{\mathrm{RMS}}=\sqrt{\frac{1}{N}\sum_{k=0}^{N-1} u[k]^2} \]

RMS-Strom:

\[ I_{\mathrm{RMS}}=\sqrt{\frac{1}{N}\sum_{k=0}^{N-1} i[k]^2} \]

Mittlere Wirkleistung:

\[ P=\frac{1}{N}\sum_{k=0}^{N-1}\big(u[k]\cdot i[k]\big) \]

Technische Daten

Schnittstelle Ethernet (10/100 Mbit/s)
Datenübertragungsprotokoll MQTT (3.1.1 und 5), UDP, OPC UA
Weboberfläche Zur Konfiguration und Echtzeit-Anzeige
Versorgungsspannung 9 - 12 Volts DC
Netzwerk DHCP, feste IP
Nachrichtenfrequenz MQTT: 0.1 - 5 pro Sekunde, UDP: 50 Frames á 256 Werte pro Sekunde
Verschlüsselung MQTT: TLS 1.3, UDP binär unverschlüsselt
Abmessungen der Sensorbox 200 x 160 x 60 mm (LxBxH)
Gewicht der Sensorbox 1,1 kg
Schutzart IP 20
Spannungsmessung - 60 bis + 60 Volt (AC, DC), +/- 1% des Endwerts
Strommessung - 600 bis + 600 Ampere (AC, DC), +/- 1% des Endwerts
Drahtdurchmesserbereich 0.8 mm – 1.6 mm (größer auf Anfrage)
Encoder-Auflösung 0.114 mm, 600 Impulse pro Umdrehung
Drahtvorschubgeschwindigkeit 0 - 20 m/min
Genauigkeit Drahtgeschwindigkeit 0,7 % bei 10 m/min und 0,1 s Abtastintervall
Gewicht Encoder 0,40 kg
Gasflußmenge 0,5 - 50 l/min
Genauigkeit Gasmenge +/- 3% vom Maximalwert
Gewicht Gasmengensensor 0,10 kg

MQTT-Message

Die Sensorbox sendet ihre Mess- und Statusdaten in einem kompakten JSON(JavaScript Object Notation)-Format. Jede Nachricht entspricht einem zeitlich eindeutig zuordenbaren Snapshot des Schweißprozesses und enthält sowohl Prozesskennwerte als auch Systemzustände und Firmware-Versionen.

Zeit & Sequenz

→ Dient zur Synchronisation mit anderen Systemen (InfluxDB, Dashboard, RoboScope, MES).

→ Erlaubt das Erkennen von Aussetzern, Paketverlust oder Lücken in der Aufzeichnung.

Elektrische Kenngrößen

→ Diese Größen ermöglichen Last-/Energieanalyse, Prozessstabilitätsbewertung und Vergleich von Jobs/Parametern.

Draht & Gas

→ Basis für Prozessüberwachung (z. B. zu geringer Vorschub, Drahtstau, Fehlererkennung).

→ Wird bereits in der Sensorbox korrigiert, sodass der Anwender direkt einen praxisrelevanten Wert erhält.

→ Transparenz, wie stark Rohwerte aufgrund Kalibrierung/Umgebungseinfluss angepasst wurden.

Statusobjekt (Gesundheit & Diagnose)

Unter status werden wichtige Diagnoseflags als Booleans mitgeliefert:

→ Dadurch ist Remote-Diagnose möglich, ohne dass der Anwender direkt an die Hardware muss.

Firmware-Versionen (Traceability)

Beispiel:

{
  "ts": "2026-01-21T10:15:23.123Z",
  "seq": 4711,
  "u_rms": 23.45,
  "i_rms": 156.78,
  "p_rms": 3680.2,
  "wire_m_min": 8.50,
  "gas_l_min": 12.30,
  "gas_cf": 1.07,
  "status": {
    "openamp_ok": true,
    "adc_overrun": false,
    "encoder_timeout": false,
    "ntp_synced": true
  },
  "fw": {
    "m7": "1.0.3",
    "m4": "1.0.3"
  }
}

UDP High-Speed Stream (Rohdatenpaket)

Für hochauflösende Analyse (Oszilloskop-Ansicht, Histogramme, Ereigniserkennung) sendet die Sensorbox zusätzlich zur JSON-Telemetrie einen binären/CSV-ähnlichen UDP-Datenstrom. Jedes UDP-Paket enthält einen Header mit Metadaten und danach einen Block von ADC-Rohsamples für Spannung und Strom.

1) Paket-Header (Metadaten)

→ Damit kann der Empfänger Daten sicher als „Sensorbox-Frame“ erkennen und Fehl- oder Fremdpakete verwerfen.

Zeitstempel in Millisekunden.

→ Ermöglicht zeitkorrekte Darstellung (z. B. Live-Trace), Logging und Synchronisation mit anderen Quellen.

Fortlaufende Sequenznummer.

→ Paketverluste oder Reihenfolgefehler (UDP!) werden sofort sichtbar.

Anzahl der Samples pro Kanal in diesem Paket.

→ Ein Paket ist ein „Datenblock“ (Frame) mit genau definiertem Umfang.

Aktueller Gasdurchfluss (l/min) als Meta-Info zum Sampleblock.

→ Praktisch, um Oszi-Daten direkt mit Prozessparametern zu verknüpfen.

Drahtvorschub (m/min) zum selben Zeitpunkt.

→ Kann 0 sein, wenn Draht steht oder ein Encoder-/Signalproblem vorliegt.

Bitmaske für Systemzustände/Fehlerflags (z. B. ADC Overrun, Encoder Timeout, OpenAMP OK, NTP Sync).

→ Diagnose ohne extra Abfrage – jedes Paket trägt seinen Gesundheitszustand mit.

Kalibrier-/Umrechnungsparameter

→ Damit kann der Empfänger Rohdaten zu physikalischen Größen umrechnen (oder bewusst Rohdaten speichern und später mit denselben Parametern rekonstruieren).

2) Sample-Daten (Payload)

Nach dem Header folgt eine Tabelle/Sequenz:

→ Der Empfänger kann daraus:

  • Oszilloskop-Traces (u(t), i(t)) erzeugen

  • RMS/Leistung/Arc-Stabilität berechnen

  • Peaks, Kurzschlüsse, Spritzerereignisse erkennen

  • Histogramme / Verteilungen erstellen (z. B. Stromverteilung pro Job)

Warum UDP?

UDP ist ideal für Live-Streaming großer Datenmengen:

  • sehr geringe Latenz

  • geringer Protokoll-Overhead

  • „best effort“ (Paketverlust möglich) → deshalb: seq im Header

Für robuste Speicherung/Backfill nutzt man meist parallel die „langsamen“ Telemetriekanäle (z. B. JSON via MQTT/HTTP), während UDP für die Echtzeit-Ansicht dient (RoboScope).

Beispiel eines Python-Codes zur Ausgabe des UDP-Streams im Terminal (Aufruf z.B. mit python3 udp_dump.py 9000:


#!/usr/bin/env python3
import argparse
import socket
import struct
import math
MAGIC_OSCI = 0x3143534F  # "OSCI"
FLAG_STATUS = 0x0001
FLAG_CAL    = 0x0002
BASE_HDR_FMT = "<IHHII"              # magic, header_len, flags, seq, sample_cnt
BASE_HDR_LEN = struct.calcsize(BASE_HDR_FMT)  # 16
def parse_packet(buf: bytes):
    if len(buf) < BASE_HDR_LEN:
        return None
    magic, header_len, flags, seq, sample_cnt = struct.unpack_from(BASE_HDR_FMT, buf, 0)
    if magic != MAGIC_OSCI:
        return None
    # Minimaler Header: base + ts + meta
    if header_len < (BASE_HDR_LEN + 8 + 8) or header_len > len(buf):
        return None
    off = BASE_HDR_LEN
    ts_ms, = struct.unpack_from("<Q", buf, off)
    off += 8
    gas_l_min, wire_m_min = struct.unpack_from("<ff", buf, off)
    off += 8
    status = None
    if flags & FLAG_STATUS:
        if off + 4 > header_len:
            return None
        status, = struct.unpack_from("<I", buf, off)
        off += 4
    # Default Cal (falls nicht mitgesendet)
    u_gain = 1.0
    u_offset = 0.0
    i_gain = 1.0
    i_offset = 0.0
    if flags & FLAG_CAL:
        if off + 16 > header_len:
            return None
        u_gain, u_offset, i_gain, i_offset = struct.unpack_from("<ffff", buf, off)
        off += 16
    # Payload beginnt bei header_len
    payload_off = header_len
    payload_bytes = len(buf) - payload_off
    available_samples = min(sample_cnt, payload_bytes // 4)
    return {
        "ts_ms": ts_ms,
        "seq": seq,
        "sample_cnt": sample_cnt,
        "available_samples": available_samples,
        "gas_l_min": gas_l_min,
        "wire_m_min": wire_m_min,
        "flags": flags,
        "status": status,
        "u_gain": u_gain,
        "u_offset": u_offset,
        "i_gain": i_gain,
        "i_offset": i_offset,
        "payload_off": payload_off,
    }
def main():
    ap = argparse.ArgumentParser(description="Simple UDP dump for MIGAL.CO Sensorbox OSCI stream")
    ap.add_argument("port", type=int, help="UDP port to listen on, e.g. 9000")
    ap.add_argument("--bind", default="0.0.0.0", help="Bind address (default: 0.0.0.0)")
    ap.add_argument("--n", type=int, default=16, help="How many samples to print (default: 16)")
    ap.add_argument("--rms", action="store_true", help="Compute simple U_rms/I_rms/P_mean from printed samples")
    args = ap.parse_args()
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    sock.bind((args.bind, args.port))
    print(f"Listening on {args.bind}:{args.port} ... (Ctrl+C to stop)")
    while True:
        buf, addr = sock.recvfrom(65535)
        info = parse_packet(buf)
        if info is None:
            # Unbekanntes Paket – leise ignorieren oder kurz melden:
            continue
        ts_ms = info["ts_ms"]
        seq = info["seq"]
        sc = info["sample_cnt"]
        av = info["available_samples"]
        gas = info["gas_l_min"]
        wire = info["wire_m_min"]
        flags = info["flags"]
        status = info["status"]
        u_gain = info["u_gain"]
        u_offset = info["u_offset"]
        i_gain = info["i_gain"]
        i_offset = info["i_offset"]
        print("\n" + "-" * 80)
        print(f"from {addr[0]}:{addr[1]}  ts_ms={ts_ms}  seq={seq}  samples={sc}  (in packet: {av})")
        print(f"gas_l_min={gas:.3f}  wire_m_min={wire:.3f}  flags=0x{flags:04x}", end="")
        if status is not None:
            print(f"  status=0x{status:08x}")
        else:
            print()
        if (flags & FLAG_CAL) != 0:
            print(f"cal: u_gain={u_gain} u_offset={u_offset} i_gain={i_gain} i_offset={i_offset}")
        # Samples ausgeben
        nprint = min(args.n, av)
        off = info["payload_off"]
        u_vals = []
        i_vals = []
        for i in range(nprint):
            w, = struct.unpack_from("<I", buf, off)
            u_raw = w & 0xFFFF
            i_raw = (w >> 16) & 0xFFFF
            off += 4
            # physikalisch (falls Gain/Offset gesetzt)
            u = u_raw * u_gain + u_offset
            cur = i_raw * i_gain + i_offset
            u_vals.append(u)
            i_vals.append(cur)
            print(f"{i:4d}: u_raw={u_raw:5d} i_raw={i_raw:5d}   u={u:.3f}  i={cur:.3f}")
        if args.rms and nprint > 0:
            u2 = sum(x*x for x in u_vals) / nprint
            i2 = sum(x*x for x in i_vals) / nprint
            p  = sum(u_vals[j] * i_vals[j] for j in range(nprint)) / nprint
            print(f"-> U_rms={math.sqrt(u2):.3f}  I_rms={math.sqrt(i2):.3f}  P_mean={p:.3f}  (über {nprint} Samples)")
if __name__ == "__main__":
    main()
  

OPC UA Variable Nodes

Der Server exponiert 5 Read-Only Variablen im Namespace ns=1:

Variable NodeID Typ Einheit Beschreibung
Strom ns=1;i=6001 Double A Effektivwert (RMS)
Spannung ns=1;i=6002 Double V Effektivwert (RMS)
Leistung ns=1;i=6003 Double W Momentanleistung
Gasfluss ns=1;i=6004 Double l/min Korrigierter Volumenstrom
Drahtgeschwindigkeit ns=1;i=6005 Double m/min Encoder-basiert

Lieferumfang

  • Sensorbox mit Mikrocontroller und Anschlüssen für Ethernet, Spannungsversorgung (9–12 V DC) und Encoder, 12 V-Steckernetzteil sowie PoE-Adapter, 3-poliger Kabelstecker für die Spannungsmessung mit 5 m verdrillter Messleitung.
  • Drahtsensor (Encoder) mit 1,5 m Kabel und 5-poligem Kabelstecker.
  • Gassensor mit 2 m Kabel und 7-poligem Kabelstecker.

Software RoboScope zur Visualisierung der Schweißdaten

RoboScope ist die passende PC-Software zur MIGAL.CO Sensorbox und steht für Windows und macOS zur Verfügung. Sie dient zur Live-VisualisierungAnalyseAufzeichnung und Diagnose der erfassten Schweißprozessdaten – ideal für Inbetriebnahme, Prozessoptimierung und Fehlersuche direkt am Arbeitsplatz oder im Labor.

Live-Visualisierung (Oszilloskop)

RoboScope zeigt die Strom- und Spannungsverläufe in Echtzeit an (typisch über den UDP-Echtzeitstream). So werden Peaks, Einbrüche, Instabilitäten oder auffällige Signalverläufe sofort sichtbar.

Spektralanalyse (FFT)

RoboScope bietet eine Spektrum-/FFT-Darstellung, um Frequenzanteile in den Messsignalen zu analysieren. Das ist besonders hilfreich, um Störungen, Schwingungen oder wiederkehrende Muster im Prozess zu erkennen.

Zusätzlich zur FFT-Ansicht bietet RoboScope ein Wasserfalldiagramm (Spektrogramm). Während die FFT immer nur „den aktuellen Moment“ als Frequenzspektrum zeigt, stellt das Wasserfall-Diagramm die Frequenzanteile über die Zeit dar – also eine 3D-Spektralanalyse (Frequenz × Zeit × Amplitude/Farbe).

  • x-Achse: Frequenz (Hz)

  • y-Achse: Zeit (s), z. B. die letzten 0 bis 5 Sekunden, wobei neue Spektren oben beginnen und nach unten „weiterlaufen“

  • Farbe / Intensität: Signalstärke bzw. Amplitude (typisch in dB)

So erkennt man auf einen Blick, ob und wann bestimmte Frequenzen auftreten, wie sich Störungen verändern, ob Frequenzen wandern(Drift), ob es periodische Muster gibt oder ob sich Schwingungen nur kurzzeitig zeigen.

Das ist besonders hilfreich, um:

  • zeitlich wechselnde Störungen zu finden (z. B. EMI-Impulse, Lastwechsel),

  • Resonanzen/Schwingungen zu beobachten,

  • wiederkehrende Muster im Prozess sichtbar zu machen,

  • Unterschiede zwischen U und I über die Zeit zu vergleichen.

Histogramm

Mit der Histogramm-Ansicht lässt sich die Verteilung von Messwerten über einen Zeitraum auswerten. Dadurch erkennt man schnell, ob der Prozess stabil läuft (enge Verteilung) oder ob Streuung und Ausreißer auftreten – eine wertvolle Grundlage für Qualitätsbewertung, Vergleich von Jobs und das Ableiten sinnvoller Grenzwerte.

U-I-Diagramm (Kennlinien-Plot)

Das U-I-Diagramm stellt Spannung (U) gegen Strom (I) dar – also nicht über der Zeit, sondern als Punktwolke/Kurve im Kennlinienraum. Jeder Messpunkt aus dem Live-Stream wird als (U,I)-Paar eingezeichnet. Dadurch sieht man auf einen Blick, wie sich der Prozess „elektrisch verhält“.

  • Kompakte, stabile Wolke / schmale Spur → Prozess läuft ruhig, reproduzierbar.

  • Breite Wolke, Ausreißer, Sprünge → Streuung, Instabilität, unerwünschte Ereignisse (z. B. Kurzschluss-/Lichtbogenwechsel, Kontaktprobleme, Störungen).

  • Prozessmuster sichtbar machen: Viele Schweißprozesse erzeugen typische Formen (Schleifen/Cluster). Änderungen an Drahtvorschub, Gas, Kontaktrohr, Masseklemme, Parametern usw. verschieben oder verformen diese Signatur – oft früher erkennbar als im Zeitplot.

  • Vergleich von Jobs/Setups: Das U-I-Diagramm eignet sich super, um zwei Jobs oder zwei Zustände direkt zu vergleichen: gleiche Form = ähnliches Prozessverhalten, andere Form = Parameter/Prozess hat sich verändert.

  • Grenzwerte & Qualitätslogik: Aus der Wolke lassen sich Kennbereiche ableiten (zulässige „Prozesszone“). Sobald Punkte außerhalb auftauchen, kann RoboScope das als Hinweis auf Abweichungen/Fehler werten.

Das U-I-Dichtediagramm (Density Heatmap) zeigt die Verteilung von Spannung U und Strom I als Punktwolke mit Häufigkeitsfärbung. Statt den Signalverlauf über die Zeit darzustellen, wird jede Messprobe als Punkt im U-I-Koordinatensystem eingeordnet: x-Achse = U (V)y-Achse = I (A). Die Farbintensität gibt an, wie oft eine bestimmte Kombination aus U und I vorkommt – helle Bereiche bedeuten „häufig“, dunkle Bereiche „selten“.

Damit lässt sich der Prozess sehr schnell beurteilen:

  • Stabilität & Streuung: Eine kompakte, dichte Wolke spricht für einen stabilen Prozess, breite Streuung für Unruhe oder Schwankungen.

  • Prozesszustände: Mehrere Wolken/Cluster können auf unterschiedliche Betriebszustände oder Übergänge hinweisen.

  • Ausreißer: Seltene Ereignisse (Spikes, Störungen) werden als dünn besetzte Bereiche sichtbar.

  • Prozessfenster: Über die Dichteverteilung kann man typische Arbeitsbereiche erkennen und Grenzbereiche definieren.

Aufzeichnen, Replay & Export

RoboScope kann Messdaten mitschneiden, für spätere Analysen wiedergeben (Replay) und für externe Auswertungen exportieren. Das erleichtert Dokumentation, Ursachenanalyse und die Weiterverarbeitung in eigenen Tools.

Erfassung von Schweißdaten und Export direkt in ein WPS-Maker 2 (.wpsx) Template. Einzelne Schweißraupen werden für eine Dauer von 20 Sekunden aufgezeichnet und in eine nachträglich editierbare Liste aufgenommen. Wenn die Liste komplett ist wird diese in eine neue .wpsx datei exportiert, welche anschließend in WPS-Maker 2 noch weiter bearbeitet werden kann.

Zusätzlich unterstützt RoboScope den Export der aufgezeichneten Messdaten in das offene weldx-Dateiformat.

Damit lassen sich die hochaufgelösten Schweißprozessdaten strukturiert, langfristig und herstellerneutral speichern.

Die exportierten weldx-Dateien enthalten die zeitaufgelösten Messsignale (z. B. Strom, Spannung, Drahtvorschub, Gasfluss) inklusive Zeitbasis und Metadaten und können anschließend:

  • mit weiteren Prozess- und Kontextdaten ergänzt werden (z. B. Schweißnahtgeometrie, Bauteilinformationen, WPS),

  • in externen Analyse- und Forschungsumgebungen weiterverarbeitet werden,

  • als Grundlage für Qualitätssicherung, Nachverfolgbarkeit und KI-gestützte Auswertung dienen.

Damit schlägt RoboScope die Brücke zwischen Live-Diagnose am Schweißplatz und einer nachhaltigen, datengetriebenen Dokumentation des Schweißprozesses.

Diagnose & Monitoring

Neben den Kurven bietet RoboScope auch technische Einblicke wie ZeitstempelSequenznummern und Paketstatus. Damit lässt sich schnell prüfen, ob Daten vollständig, synchron und plausibel ankommen – besonders hilfreich bei Netzwerk- oder Integrationsfragen.