Min-Max Überprüfung von REAL-Werten (Fenster)

Climber

Level-1
Beiträge
5
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
ich bin gerade dabei einen Baustein (FC) in SCL zu schreiben, der eine
Differenzdruckmessung überprüfen soll.
Aufgabenstellung:
  • Erfassen von zwei Drück (skalieren) - Kein Problem
  • Errechnen des Differenzdruckes - Kein Problem
  • Druck in REAL
  • Überprüfen des Differenzdruckes, ob der Druck in einem großem Fenster, welches von aussen anparametriert wird (in % vom Solldruck) ist. Bei über- bzw. unterschreiten dieses Fensters -> Fehlermeldung
  • Überprüfen des Differenzdruckes, ob der Druck in einem kleinen Fenster, welches von aussen anparametriert wird (in % vom Solldruck) ist. Bei über- bzw. unterschreiten dieses Fensters -> mitzählen und nach mehr als x (von aussen anparametriert) Überschreitungen -> Fehlermeldung!
Mein Problem liegt darin, diese Fensterüberprüfung zu machen...hab da
gerade irgendwie einen Knoten...


Gruß
Climber
 
IF ABS(Diffdruck) > Sollabweichung_groß THEN
..Alarm = TRUE
ELSE
..Alarm = FALSE
END_IF

Die genaue Syntax musst du dir raussuchen.

pt
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja,
diese Überprüfung hab ich mittlerweile schon eingefügt...funzt auch
wunderbar. Was mir aber immernoch fehlt ist der Lösungsansatz
zwecks dem kleinen Fenster, welches nur x-mal über- bzw. unterschritten
werden darf...


gruß
Climber
 
IF ABS(Diffdruck) > Sollabweichung_groß THEN
..Alarm = TRUE
....IF ABS(Diffdruck)>Sollabweichung_klein THEN
......Fehlerzähler=Fehlerzähler+1
......IF (Fehlerzähler>= MaxFehler) AND NOT Alarm_klein THEN
........Alarm_klein = TRUE
........Fehlerzähler = 0

ELSE
..Alarm = FALSE
END_IF


Dann nach quittieren Alarm rücksetzen und wie gewünscht weitermachen
 
  • Überprüfen des Differenzdruckes, ob der Druck in einem kleinen Fenster, welches von aussen anparametriert wird (in % vom Solldruck) ist. Bei über- bzw. unterschreiten dieses Fensters -> mitzählen und nach mehr als x (von aussen anparametriert) Überschreitungen -> Fehlermeldung!


nur die frage ist ob dies auch richtig durchüberlegt ist

was ist wenn du heute eine überschreitung hast nächste woche auch eine und soweiter

und nach 6 wochen kommt eine fehlermeldung

das freut dann jeden zum fehlersuchen

würde sagen du must auch eine rücksetzung deiner Zählers machen wenn z.b. der sollwert 2 h gehalten wird dann zähler zurück oder soähnlich
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@kpeter: naja, da geb ich dir schon recht...aber es handelt sich hierbei um eine sehr genaue differenzdruckmessung. der gesamte messbereich liegt zwischen 0-2,5bar und das "große" fenster ca. +-5% und das "kleine" fenster ca. +-2% vom sollwert. die dauer der messung ist ca. 2-10sec. und genau in dieser zeit sollte der differenzdruck konstant bleiben. ja ganz klar muss ich des mit einem zähler realisieren und dieser wird auch mittels reset zurückgesetzt bzw. der fehler im db gespeichert zur späteren diagnose...
 
Hallo Climber,
Folgende Gedanken zu deinem Problem:
1. FC mit Eingängen
Messvorgang (BOOL), Istdruck (Real), Solldruck (Real), MaxG% (Real), maxk% (Real), mink% (Real), MinG% (Real), Anzahl (INT)
2. Formeln (alle in Real berechnet):
HystMaxG=(100+MaxG%)/100*Solldruck (Wert als temp ablegen)
Hystmaxk=(100+maxk%)/100*Solldruck (Wert als temp ablegen)
HystMinG=(100+MinG%)/100*Solldruck (Wert als temp ablegen)
Hystmink=(100+mink%)/100*Solldruck (Wert als temp ablegen)
und den Ausgängen
AlarmG (BOOL) und alarmk (BOOL)
3. Code:
IF Istdruck>=HystMaxG OR Istdruck<=HystMinG THEN AlarmG=TRUE ELSE AlarmG=FALSE;
Dieser Code führt bei Grenzerreichung sofort zur Fehlermeldung, nimmt diese aber bei Unterschreitung sofort wieder weg.
Ähnlicher Code gilt auch für die Min-Grenzen, mit der Erweiterung, dass innerhalb des Messvorganges gezählt wird, also
IF (Istdruck>=Hystmaxk OR Istdruck<=Hystmink) AND Messvorgang=TRUE THEN Setze ein Merkbit ELSE Rücksetze das Merkbit
Innerhalb des Messvorganges zählst du nun die Setzvorgänge des Merkbit. Ist der Zählerwert >= Anzahl wird ein Fehler ausgegeben.
Bei der tiefergehenden Problemlösung bietet sich sicherlich die Verwendung diverser Flankenauswertungen an (z.B. Zählerwert abspeichern, wenn fallende Flanke am Eingang Messvorgang.
Vielleicht hilft's, viel Erfolg!
 
Zurück
Oben