Füllstandsüberwachung bei stetig sinkenden Füllstand

FingerJoe

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Der Füllstand des Behälters sinkt pro Stunde um 1 %. Das ist normal. Nun möchte ich aber einen Alarm anstehen haben wenn der Füllstand pro Stunde um 5 % sinkt.

Vorhanden ist eine analoge Füllstandsmessung die auf PCS7 übertragen wird.

Wie kann ich das im PCS7 umsetzen das ein Alarm ansteht wenn der Füllstand pro Stunde um 5 % sinkt.

Bitte um Hilfe
 
In konstanten zeitlichen Abständen den Füllstand ermitteln. Die Differenz ist die Änderung in der Zeit. Große Differenz= Große Änderung.
Schwellwert setzen und Vergleichen. Alarmbit setzen.
 
wie Plan_B das schon beschreibt ....
ich benötige solche funktionen öfters und mache das wie folgt :

real-array in der benötigten größe anlegen und z.b. im minutentakt messen ...

Code:
FUNCTION rotateRealArray : BOOL // Rotate Real Array beliebiger Länge um eins nach oben
VAR_INPUT
    pt: POINTER TO ARRAY [1..32000] OF REAL ;
    size: UINT;
    new:REAL; // Neuer Wert für array[1]
END_VAR

VAR

    i: UINT;

    ende: UINT;
END_VAR

ende:=size/4  ;

FOR i:=ende TO 2 BY -1 DO
 pt^[i]:=pt^[i-1];
END_FOR
pt^[1]:=new;
rotateRealArray:=TRUE;

^^ aufruf nach definition "FuellData:=ARRAY[1..60] of REAL;" mit
rotateRealArray(ADR(FuellData),SIZEOF(FuellData),Fuellstand.OUT); // Messwerte Füllstand
um dann z.b. jede minute den aktuellen messwert ins array zu schreiben

mit der nächsten funktion lasse ich mir den kleinsten wert des arrays zurückgeben ....

Code:
FUNCTION minArray: REAL; // gibt den kleinsten wert des real-arrays zurück
// aufruf mit minwert:=minArray(ADR(a),SIZEOF(a));

VAR_INPUT
    pt: POINTER TO ARRAY [1..32000] OF REAL ;
    size: UINT;
END_VAR

VAR
    i:UINT;
    
    ende: UINT;
END_VAR

ende:=size/4;
minArray:=pt^[1];
FOR i:= 1 TO ende DO
    IF minArray > pt^[i] THEN
        minArray:= pt^[i];
    END_IF
END_FOR

eine maxArray oder mittelArray funktion bringst du bestimmt selber hin ...

ich mache das mit pointern und size, damit es mit jeder REAL-array größe funktioniert ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie kann ich das im PCS7 umsetzen das ein Alarm ansteht wenn der Füllstand pro Stunde um 5 % sinkt.
ich benötige solche funktionen öfters und mache das wie folgt :

real-array in der benötigten größe anlegen und z.b. im minutentakt messen ...
er will das halt in PCS7 machen!

Bei PCS7 gibts in aller Regel klare Regeln, wie der Programmierstil auszusehen hat.

Von daher ist der Vorschlag von Thomas der Richtige, zumindest falls die APL zum Einsatz kommt.

Irgendwelche selbstgeschriebenen Bausteine zu verwenden, ist in PCS7 meistens nicht gewünscht. Und wenn, dann muss man sich u.U. an nen bestimmten styleguide halten...
 
Zurück
Oben