TIA Min.-Wert Reset (Druckmessung)

Rquadrat

Level-1
Beiträge
43
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Frohes neues (Probleme lösen)! :)


Ich bin gerade dabei eine Steuerung für eine Maschine zu erstellen, die im Grunde genommen wie eine Pumpe funktioniert.
Druck wird aufgebaut und wieder abgelassen. Der dabei erzeugte Druck soll aufgezeichnet werden. Jeweils Min.- und Max.-Wert.

Mein Problem ist nun, dass ich den Min.-Wert nicht zurück setzen kann. Den Max.-Wert kann ich theoretisch einfach auf 0 setzen, sobald ich wieder Druck ablasse.
Nur bei dem Min.-Wert macht das keinen Sinn. Dann bleibt der für immer auf 0. (Der Druck befindet sich ausschließlich im positiven Bereich)

Meine Idee war es den Min.-Wert mit dem Max.-Wert zu überschreiben und anders herum, sobald der jeweilige Wert gespeichert wurde.

Ich bin noch recht neu in der SPS-Programmierung und frage mich daher, wie die Profis dieses Problem lösen würden.

Also bitte, werdet aktiv und zeigt einem Einsteiger wie man es richtig macht.

P.S.
TIA V13 SP1 UPD3 (Professional)
WinCC V13 SP1 UPD3 (Advanced)
S7 1200 (1212C AC/DC/RLY)
KTP 700 Basic
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... ich würde es genau so machen.
Den min.-Wert vor dem Aufzeichnen mit einem Wert vorbelegen, der auf alle Fälle sofort unterschritten wird / werden kann.
Du mußt allerdings sinnvollerweise erstmal warten bis du einen gewissen Grund-Druck hast - weil sonst speicherst du dann ja doch wieder "0" als min.-Wert ab ... 8)

Gruß
Larry
 
Moin moin

was für einen Datentyp haben denn diese Min und Max? INT dann setz den MIN auf MAX(INT) = 32767 und den MAX auf MIN( INT) = -32768. Das sollte außerhalb jeglicher vernünftiger Werte sein und somit mit der ersten Messung überschrieben werden.

Andere Datentypen bedürfen natürlich anderer Werte aber min = max( type ) und max = min( type ) passt immer.

'n schön' Tach auch
HB
 
Guten Morgen,

Ich mache das meist so das bei einem Reset der aktuelle Wert als MIN/MAX Wert übernommen wird. Geht natürlich dann nur wenn die Anlage gerade in Betrieb ist. Alternativ kann auch der Sollwert genommen werden. Beides wird dann recht schnell mit den neuen Werten überschrieben (meist).
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn die Maschine das Aufbauen und Absenken des Drucks steuert, dann brauchst du deine Min-Wert Ermittlung ja nur laufen lassen, wenn die Maschine im Modus Druck ablassen ist. Somit solltest du automatisch als ersten Wert den höchsten Druck haben, der dann bis auf den Min-Wert einbricht, bis die Maschine wieder umschaltet.
 
Danke für die vielen Hinweise.

Da ein Beispiel gewünscht wurde:
Ich vergleiche mit den MIN und MAX Bausteinen den aktuellen Druck.

Ist der aktuelle Druck größer als der MAX Druck, wird der aktuelle Wert der neue MAX Druck.
Ist der aktuelle Druck kleiner als der MIN Druck, wird der aktuelle Wert der neue MIN Druck.

Das funktioniert erst einmal wunderbar. Doch wenn der Max Druck mal kleiner ist, als der letzte, eben nicht mehr.
Wenn ich das gleiche mit dem Min Druck mache, nimmt er den geringsten Wert, der je gemessen wurde.

Darum empfand ich es als sinnvoll, die Werte nach jedem Durchlauf zu überschreiben.

@HelleBarde
Die Sensoren hängen an einem analogen Eingang und daher sind die Werte erst einmal vom Typ Integer. Dies wandle ich in Real, da ich mit Prozent arbeiten muss.
Wir haben unterschiedliche Druckbereiche, die über mechanische Ventile umgestellt werden können. Dabei muss auch der Sensor getauscht werden.
Mal sind es 0-4 bar, mal 0-40 mal 0-400 bar. Um das im Programm zu vereinheitlichen, nutze ich die 4-20 mA, die allen gemeinsam sind und wandle diese in Prozent.
Erreicht die Maschine z.B. 90% soll sie zurück fahren. So reicht eine Auswertung für alle Druckbereiche. Hoffe die Logik ist nicht zu abstrakt.

@ MasterOhh
Deinen Hinweis verstehe ich nicht ganz. Wenn ich den Min Wert nur ermittle, wenn die Maschine Druck ablässt, muss ich doch trotzdem den Min jedesmal überschreiben. Sonst habe ich doch das gleiche Problem.
 
Zuletzt bearbeitet:
Der Min-Druck ist der Druck wenn die Flanke kommt das die Pumpe wieder anspringt.

Also Flanke bilden wenn Pumpe wieder anspringt und den Druck-->Druck-Min kopieren.
Max-Druck dito wenn Pumpe abschaltet.Das heisst du schreibst nur denn Druck --> Druck min und den Druck--> Druck max
wenn die Pumpe stoppt(Flanke) oder startet(Flanke).

Du brauchst dann:aktueller Druck,Druck_Min,Druck_max als Anzeigefelder.
Druck min und Druck max sind dann eingeforen solange die Pumpe läuft oder steht.Nur im Umschaltmoment gibts eine Kopie.


Oder verstehe ich das falsch?
 
Habe es ausprobiert.
Die Idee mit den Flanken hat mein Problem gelöst.
Manchmal sieht man den Baum vor lauter Wald nicht.
 
Zurück
Oben