Zu Produktinformationen springen
1 von 1

Ablaufüberwachung

Normaler Preis €349,00 EUR
Normaler Preis Verkaufspreis €349,00 EUR
Sale Ausverkauft
Beschreibung

Der Funktionsbaustein SequenceLearnCompare_FB lernt eine Folge von Signalzuständen (10 digitale, 4 analoge und 2 Integer-Werte) mit Zeitstempeln und vergleicht sie später zyklusgenau mit Live-Daten. Jede Zustandsänderung wird als Schritt erfasst (Zeitmarke, DI/AI/INT-Snapshot). Im Vergleichsmodus wird Schritt für Schritt geprüft, ob innerhalb eines konfigurierbaren Zeitfensters (#TimeTolerance) die erwarteten Änderungen auftreten und ob die Werte übereinstimmen. Abweichungen werden mit eindeutigen Fehlercodes protokolliert und verständlich als Text gemeldet.

Hinweis: Der Baustein dient der Ablaufvalidierung/Qualitätssicherung und ersetzt keine sicherheitsgerichteten Funktionen.

Funktionsweise
Zeitbasis & Reset
  • Zeitbasis: Der interne Millisekunden-Zähler #TimerMs wird je Zyklus um 10 ms erhöht (STEP 0).
  • Reset: Setzt alle Indizes, Zähler und Status zurück (#LearnIndex, #CompareIndex, #ErrorIndex, #ErrorCount, #MismatchIndex = -1, Flags, Errorcode-Array). Beendet die Bearbeitung im aktuellen Zyklus (RETURN).
Lernmodus
  • Start: Flanke auf #StartLearning aktiviert #IsLearning, setzt #LearnIndex := 0, #TimerMs := 0, #ForceFirstLearn := TRUE.
  • Änderungserkennung: Ein Schritt wird aufgenommen, wenn sich ein beliebiger Kanal gegenüber #LastDI/AI/INT geändert hat oder #ForceFirstLearn aktiv ist.
  • Schrittaufzeichnung: Speichert Timestamp = #TimerMs und Snapshots aller 10 DI, 4 AI und 2 INT in #LearnSteps[#LearnIndex]; aktualisiert #Last*; #LearnIndex++.
  • Grenze: Maximal 100 gelernte Schritte (#LearnIndex < 100).
  • Ende: Wenn #StartLearning losgelassen wird, setzt der Baustein #LearningDone := TRUE und #IsLearning := FALSE.
Vergleichsmodus
  • Start: Flanke auf #StartCompare aktiviert #IsComparing, setzt #CompareIndex := 0, #ErrorIndex := 0, #TimerMs := 0, #Match := TRUE, #ForceFirstCompare := TRUE; löscht Fehlerliste.
  • Fenster: Pro Schritt gilt ein Zeitfenster [expectedTime - TimeTolerance, expectedTime + TimeTolerance], wobei expectedTime = #LearnSteps[#CompareIndex].StepRecord.Timestamp. Untergrenze: mindestens 0.
  • Live-Änderung: Nur bei erkannten Änderungen (wie im Lernmodus) wird ein Vergleichs-Snapshot #CRec gebildet und bewertet.
  • Timing-Check: Abweichung |#CRec.Timestamp - expectedTime| > #TimeTolerance ⇒ Fehlercode 4000 + #CompareIndex.
  • Signal-Checks:
    • DI: Ungleichheit ⇒ Code 1000 + step * 10 + diIndex.
    • AI: Absolutdifferenz > 0.01 ⇒ Code 2000 + step * 10 + aiIndex.
    • INT: Ungleichheit ⇒ Code 3000 + step * 10 + intIndex.
  • Kein Ereignis im Fenster: Wenn #TimerMs das Fensterende überschreitet, ohne Änderung ⇒ Code 4900 + step; Schritt wird dennoch als abgearbeitet gezählt.
  • Abschluss: Ende bei #CompareIndex >= #LearnIndex oder wenn 10 Fehler erfasst wurden. Dann #CompareDone := TRUE, #IsComparing := FALSE, #ErrorCount := #ErrorIndex.
Diagnose-Meldetexte

Bei #ErrorCount > 0 wird aus dem ersten Fehlercode ein Klartext erzeugt:

  • 1xxxDI-Fehler in Schritt S
  • 2xxxAI-Fehler in Schritt S
  • 3xxxINT-Fehler in Schritt S
  • 4xxxZeitfehler in Schritt S
  • Sonst → Unbekannter Fehlercode

Ohne Fehler: Vergleich erfolgreich – keine Abweichung (wenn #CompareDone und #Match), sonst Kein Fehler. Das Flag #HasError wird entsprechend gesetzt.

Technische Details
  • Kanäle: 10× DI, 4× AI (REAL), 2× INT
  • Lernspeicher: Bis zu 100 Schritte (#LearnSteps[0..99]) mit Timestamp und Snapshots
  • Fehlerliste: Bis zu 10 Einträge (#ErrorCodes[0..9]), #ErrorCount, #MismatchIndex (erster abweichender Schritt)
  • Toleranz: #TimeTolerance (TIME), Vergleichsschwelle AI: 0.01
  • Zeitbasis: #TimerMs (INT/DINT-basiert), Inkrement: 10 ms/Zyklus
  • Steuerflags: #StartLearning, #LearningDone, #StartCompare, #CompareDone, #Match, #HasError
Fehlercodes (Mapping)
  • 1000 + step * 10 + diIdx → DI-Mismatch (diIdx 0..9)
  • 2000 + step * 10 + aiIdx → AI-Abweichung > 0.01 (aiIdx 0..3)
  • 3000 + step * 10 + intIdx → INT-Mismatch (intIdx 0..1)
  • 4000 + step → Zeitabweichung des Ereignisses > Toleranz
  • 4900 + step → Keine Änderung im Zeitfenster (Event verpasst)
Einsatzmöglichkeiten
  • Ablaufaufnahme und spätere Reproduzierbarkeits-/End-of-Line-Prüfung
  • Prozessvergleich nach Instandsetzung oder Parametrierung
  • Qualitätssicherung (Schrittketten-Validierung)
  • Fehleranalyse mit erstem Abweichungsschritt (#MismatchIndex)
Kompatibilität
  • Siemens TIA Portal V16 (S7-1200/1500), SCL
  • Einsetzbar mit PLCSIM zu Test- und Validierungszwecken
Lieferumfang
  • SCL-Baustein SequenceLearnCompare_FB (Code gemäß oben beschriebenem Verhalten)
  • Kommentierte Schnittstellen und Fehlermatrix
  • Kurzanleitung zur Inbetriebnahme (Lernen/Prüfen/Diagnose)
Support

Unterstützung bei:

  • Anpassung von Kanalanzahl, AI-Schwellwerten oder Toleranzen
  • Erweiterung der Fehlercodes und Diagnoseausgaben (z. B. mehr als 10 Fehler)
  • Export/Logging der Schritte und Ergebnisse (z. B. in DB oder Datei)
  • Integration in bestehende Anlagensequenzen und HMI-Meldungen