TIA Füllstand Heizöl visualisieren

Bjoen2102

Level-1
Beiträge
76
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich habe vor ein paar Monaten hier im Forum den Tipp bekommen
meine Heizölverbrauch meiner Heizung via Betriebsstundenzähler zu ermitteln.

Gestern bekam ich die Hilfe um einen Betriebsstundenzähler zu programmieren diesen habe ich fertig.
Jetzt steh ich vor dem Problem und komm den halben Tag nicht weiter.
Ich muss die Betriebsstunden mit dem Ölverbrauch 2,94L multiplizieren und von meinem vollen Tank
abziehen. Ich habe anbei mal Foto´s angehangen, könnt ihr mir helfen, ich habe gegoogelt aber nichts
gefunden was mir weiter helfen könnte.


Verwendete Hard und Software

CPU 3152DP
Comfort Panel 1900
TIA-Portal V13


Bildschirmfoto 2015-04-02 um 21.47.58.jpgBildschirmfoto 2015-04-02 um 21.55.28.jpgBildschirmfoto 2015-04-02 um 21.56.18.jpg
 
Du müsstest die Betriebsstunden zunächst in REAL wandeln, damit Du die mit 2.94 (Gleitpunkt, REAL) multiplizieren kannst (MUL Real).
Oder Du machst eine Ganzzahl-Multiplikation mit 3 (MUL DInt). Das ist zwar ein kleines bisschen ungenauer, aber zur "sicheren" Seite, so daß Dein Tank eine kleine Reserve mehr Inhalt hat als berechnet.

PS: Gleitpunktzahlen schreibt man mit Dezimalpunkt, nicht mit Komma.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
vielleicht kannst du mit der Impliziete Datenkonvertierung das auch direkt so berechnen lassen. IEC Prüfung für den Baustein deaktivieren.

Gruß
VLT_RealDrive


Gesendet von iPhone mit Tapatalk
 
Danke für Ihre Tipps, ich habe das mal so gemacht wie Harald es vorgeschlagen hat funktioniert soweit ganz gut.

Ich würde das gerne noch etwas erweitern und zwar bei der Zahl 4000, diesen Wert (Tankinhalt) gebe ich über das Eingabefeld des TP vor.
Nehmen wir mal an, meine Tanks sind komplett leer. Ich bestelle den Tankwagen und Tanke 4000L, gebe diese in das Eingabefeld ein.
Jetzt rechnet die CPU mit 4000 L, sagen wir mal nach einem halben jahr hat die CPU ermittelt das noch 2280L im Tank drinnen sein.
Ich möchte aus irgend einen Grund 800L nachtanken.

Jetzt gibt es die Möglichkeit das ich mir den Rest des Tanks also die 2280 L merke und mit dem nach getankten 800L zusammen
addiere und den neuen Füllstand wieder in das TP eingebe und den Betriebsstundenzähler reset .

Habe Ihr ne Idee wie ich das so umsetzen kann, dass ich immer nur den neuen nach getankten Wert eingeben brauche
und die Steuerung addiert sich den neuen Füllstand von alleine zusammen?

Gruß
Björn
 
Eine Möglichkeit wäre den Füllstand unabhängig von deinem Betriebsstundenzähler zu erfassen.

Du hast an deinem Panel eine Ein-/Ausgabemöglichkeit für den Füllstand des Heizöltanks.
In dieses gibst du z.B. 4000 Liter ein.

Dein Brenner hat ein Ölverbrauch von 2,94 Liter / Stunde, das sind 2,94 Liter / 3600 Sekunden.
Umgerechnet auf 1 Liter sind das 1 Liter in ca. 1224 Sekunden.

Jetzt machst du das wie bei deinem Betriebsstundenzähler.
Du machst einen Vorteiler, der mit Betriebsmeldung des Brenners und der Sekundentaktflanke einen Vorzähler um 1 erhöht.
Hat dieser 1224 erreicht, verringerst du den Füllstand um 1 Liter und setzt den Vorzähler auf 0 zurück.

Wenn du nachtankst, setzt du den Füllstand am Panel einfach um den Wert hoch.
Entweder du ignorierst dabei den Wert im Vorzähler (ist ja nur maximal ein Liter), oder du baust eine Erkennung im Programm ein, dass jemand den Wert erhöht hat (Altwert / Neuwert-Vergleich).
 
Sollte doch funktionieren, oder nicht?

Ich würde BSecZ noch umbenennen (hat ja nicht mehr mit Sekunden zu tun, sondern ist ein Liter Hilfszähler) und in den Static-Bereich verschieben, da diesen Wert außerhalb des Bausteins keinen interessieren dürfte. Und Reset wird auch nicht benötigt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe es mal getestet, aber funktioniert nicht. Also wenn ich 4000 L eingebe rechnet er alle 1224sec 1 Liter runter das funktioniert.
Wenn ich jetzt nachtanke z.b 800L und gebe diese 800L ein, rechnet er nur noch von 800L alle 1224sec einen Liter runter und vergisst den alten Füllstand.
 
Ja, so wie es jetzt ist musst du eben selber rechnen. Wenn du vorher 4000 Liter stehen hast und tankst 800 Liter nach, musst du 4800 eingeben.

Wenn du wirklich eine Nachtank-Funktion haben willst, benötigst du einen Sollwert für die Literzahl die du nachtankst, und einen Befehl (Bit) "Nachtanken".
Wenn dein Programm das Bit "Nachtanken" sieht, erhöht es den Füllstand um den Nachtankwert. Ähnlich der Reset-Funktion bei deinem Betriebsstundenzähler, nur dass du hier nichts auf 0 setzt, sondern einen Wert um einen anderen erhöhst.
 
Wenn ich jetzt nachtanke z.b 800L und gebe diese 800L ein, rechnet er nur noch von 800L alle 1224sec einen Liter runter und vergisst den alten Füllstand.
Was heißt eingeben? Wenn das Eingabefeld die selbe Variable ist wie der Zähler dann schreibst du mit deiner Eingabe doch über die 4000l drüber.

Entweder du gibst den aktuellen Zählerstand + 800l ein, oder noch einfacher, du machst dir ein zweites Eingabefeld in dem du die Menge einträgst die du nachtankst. Daneben noch einen Button der die dort eingegebenen 800l auf den aktuellen Zählerstand (4000l) aufaddiert.
Dann musst du nicht jedes mal Kopfrechnen.

(Thomas war schneller...)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Okay, ich habe es mal versucht, meint ihr das so?

Also über das erste Eingabe/Ausgabefeld (Füllstand) mit der Variable (Füll.) sage ich der Steuerung das z.b 4000L Heizöl sich im tank befinden. Von dieser rechnet die CPU alle 1224 sec 1 Liter runter. Über ein zweites Eingabefeld (nachtanken) mit der Variable (Nach.) wird der alt Zählerstand (Füll) und der neue Nachtankwert zusammen addieret, wenn ich dieses über eine Schlaltfläche (Bit) bestätige.

Nochmal auf die Simulation zukommen, ich habe es schon mehrfach versucht, aber nicht hinbekommen. Gibt es ne Möglichkeit, die Steuerung und das HMI gleichzeitig am Rechner virtuell verbinden zu können, um mein Projekt virtuell zu testen.


Bildschirmfoto 2015-04-04 um 16.28.02.jpgBildschirmfoto 2015-04-04 um 16.28.16.jpgBildschirmfoto 2015-04-04 um 16.28.28.jpg
 
Das hast du richtig verstanden.

Allerdings muss du sicher gehen das dass Nachfüll-Bit nur einmal vom Addier-Baustein ausgewertet wird, damit
die Menge nicht mehrmals aufaddiert wird.

Da du das Nachfüllbit im IN-Bereich deklariert hast würde ich zwischen Nachfüllbit und Addier-Baustein noch eine Positive Flanke sezten. Sofern du den gezeigten Eingang am umfassenden FB nicht schon mit ner Flanke beschalten hast.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

warum stellst du denn den Verbrauch bzw. den Füllstand über einen Betriebsstundenzähler dar?
Eine Erfassung des Füllstandes über einen Füllstandssensor wäre doch sinnvoller und effektiver. Immerhin müsste man dann auch nicht mehr die nachgefüllte Menge Heizöl eingeben.

Vielleicht hat es ja aber auch einen speziellen Grund, dass der Betriebstundenzähler verwendet wird.


Gruß
Olli
 
Bjoen errechnet den Verbrauch aus den Brennerbetriebsstunden x dem Verbrauch / h aus. Daher der Betriebsstundenzähler.
 
Der Grund warum ich meinen Füllstand über Betriebsstunden berechne ist der, ich bekomme keinen Füllstandssensor von oben in die Stahltanks, die Öffnung hat nur einen sehr kleinen Durchmesser, und die Kellerdecke in diesem Raum sehr niedrig ist.
Meine Großeltern haben diesen Keller nachträglich angebaut und wahrscheinlich die Wände erst gemauert nach dem die Tanks drinne standen.


Vielen Dank an Thomas_v2.1 und Ronin, ihr habe mir sehr geholfen, auch das mit der Simulation klappt jetzt wunderbar.
 
Zurück
Oben