Instandhaltung Prüfer
Normaler Preis
€450,00 EUR
Normaler Preis
Verkaufspreis
€450,00 EUR
Grundpreis
pro
Verfügbarkeit für Abholungen konnte nicht geladen werden
Beschreibung
Instandhaltung_FB skaliert und filtert einen Prozesswert, lernt automatisiert 10 Maximalwerte über Tick-Zyklen, bildet daraus einen Mittelwert und überwacht im Betrieb Abweichungen hinsichtlich Toleranz und Zeitfenster. Ein gleitendes Fehler-FIFO (10 Slots) sowie Schwellwerte für Warn- und Fehlerbereich ermöglichen eine robuste Diagnose. Latches, Klartexte und Zeitstempel werden im Diagnose-UDT geführt.
Hinweis: Baustein für Prozessdiagnose/Qualitätssicherung. Keine Sicherheitsgerichtete Funktion.
Funktionsweise
1) Skalierung & Filter
-
Skalierung:
ValueRaw = ValueRaw_in * Gain + Offsetaus#P.UDT_ChannelParams. -
IIR-Filter: Wenn
FilterTime > 0, dann einfacher Filter 1. Ordnung mitα = 1/8:yFilt := yFilt + (ValueRaw - yFilt) * 0.125; sonstValueFiltered = ValueRaw. - Metadaten:
ChannelNameundUnitTextwerden aus den Parametern in die Diagnose übernommen.
2) Reset
- Setzt Lern- und Fehlerindex auf 1, leert Arrays
LearnValues[1..10]/ErrValues[1..10], löscht Zähler und Latches. - Diagnosefelder werden gezielt zurückgesetzt (ASCII-Text: Zurückgesetzt), aktuelle Messwerte bleiben erhalten;
LastErrorDT := NowDT.
3) Lernen (10 Ticks)
-
Max-Sampler: Während
#Learnaktiv ist und bei jedem#Tick-High wird das Maximum vonValueFilteredgesammelt. -
Tick-Fallflanke: Bei
NOT Tick AND Tick_oldwird der maximale Wert inLearnValues[LearnIndex]geschrieben;LearnIndexwird erhöht. - Nach 10 Einträgen erfolgt die Mittelwertbildung (
MeanValue),Learned := TRUE, Status: Anlernen abgeschlossen.
4) Fehlererkennung (Online)
-
Abweichungszähler: Wenn
|ValueFiltered - MeanValue| > Tolerance, dannTimeOutCnt++; andernfalls auf 0 setzen. -
FIFO-Update bei Tick-Fallflanke:
-
ErrValues[ErrIndex] := (TimeOutCnt ≥ ErrorWindow);ErrIndexrotiert von 1 bis 10. -
ErrCount= Anzahl TRUE inErrValues. -
Error-Latch: Wenn
ErrCount ≥ ErrorThresholdund noch nicht gelatcht ⇒ErrorLatched := TRUE,ErrorActive := TRUE,ErrorCode := 1001, Status: Fehler erkannt,LastErrorDT := NowDT.
-
5) Auto-Reset im Warnbereich
- Warnbedingung:
ErrCount > 0undErrCount < ErrorThreshold. - TON
WarnResetTime: Nach Ablauf werden FIFO, Zähler und Latches zurückgesetzt; Status: Warnbereich zurückgesetzt.
6) Statuspflege
- Wenn
Learned = FALSE⇒ Status: Anlernen aktiv. - Wenn
ErrorActive = TRUE⇒ Status bleibt Fehler erkannt. - Sonst ⇒ Status: OK.
- Flankenerkennung:
Tick_old := Tickam Zyklusende.
Technische Details
-
Eingänge/Signale:
#ValueRaw,#Tick,#Reset,#Learn,#NowDT. -
Parameter (
#P.UDT_ChannelParams):Name,UnitText,Gain,Offset,FilterTime,Tolerance,ErrorWindow,ErrorThreshold,WarnResetTime. -
Diagnose-UDT (
#D.KanalDiagnose):ChannelName,UnitText,ValueRaw,ValueFiltered,MeanValue,Learned,ErrorActive,ErrorCount,ErrorCode,StatusText,LastErrorDT. -
Interne Variablen:
yFilt,LearnValues[1..10],ErrValues[1..10],LearnIndex,ErrIndex,ErrCount,TimeOutCnt,MaxValue,MeanValue,Tick_old,ErrorLatched,sum,warnCond,tonWarnReset.
Diagnose & Klartexte
- Zurückgesetzt (Reset durchgeführt)
- Anlernen aktiv (noch keine 10 Samples)
- Anlernen abgeschlossen (Mittelwert gebildet)
- Warnbereich zurückgesetzt (Auto-Reset)
-
Fehler erkannt (Latch aktiv,
ErrorCode=1001) - OK (Betrieb ohne Fehler)
Einsatzmöglichkeiten
- Sensor-/Kanalüberwachung mit lernbasiertem Referenzwert
- Erkennung schleichender Drifts über FIFO-Fenster
- HMI-freundliche Diagnose inkl. Latch und Zeitstempel
- Vorwarnung mit automatischer Rücksetzung
Kompatibilität
- Siemens TIA Portal V16 (S7-1200/1500), SCL
- Testbar mit PLCSIM
Lieferumfang
- SCL-Baustein ChannelDiag_LearnAvg_FB gemäß obiger Spezifikation
- Parametrier-UDT und Diagnose-UDT (Feldzuweisungen kompatibel zum Code)
- Kurzanleitung & Integrationshinweise
Support
- Anpassung von Fenstergröße, Filter-Alpha und Lernlogik
- Erweiterung auf mehr Samples oder gleitenden Mittelwert
- HMI-Meldungen/Sprachumschaltung (ASCII/UTF-8)
- Trend-/CSV-Logging der Lern-/Online-Werte