# Probleme mit dem Baustein "FbBetrDauer" (Wago 750-881)



## Stalle (17 Juli 2013)

Guten Morgen,

ich schreibe gerade ein kleines Programm für eine Kaltwasseranlage.
Jetzt habe ich folgendes Problem:
Für alle Verbraucher (Kompressoren, Pumpen, Lüfter usw) schreibe ich die Betriebsstunden mit.
Dafür verwende ich den Baustein "FbBetrDauer" aus der Bibliothek "Gebäude Allgemein".
Jedes mal, wenn ich am Programm was ändere und die Änderungen auf den Controller übertrage, werden die Betriebsstunden wieder auf 0 gesetzt!
Was mache ich falsch?
Wenn ich eine Variable anlege wie z.B.: "Visu_Sollwert_Regler" und diese Variable als Retain Persistent anlege, bleiben die Werte doch auch erhalten.

Ich habe mir jetzt auch mal die PDF Datei zu der Bibliothek durchgelesen und da steht als Info zu dem o.g. Baustein:
 "Der Funktionsbaustein verwendet intern einige remanente Variablen mit der 
Deklaration VAR_RETAIN. "

Ich habe den Baustein einfach als normale Variable deklariert. Ist das vielleicht schon falsch?
Danke schon mal im Vorraus


----------



## wolfi-sps (21 Juli 2013)

Hallo Stalle,

Lege den Baustein genau so an wie Deine Variable - Retain und Persistent.


----------



## Stalle (24 Juli 2013)

Hallo,

habe es mit "Retain" und auch mit "Retain Persistent" probiert, leider ohne Erfolg.
Gibt es noch andere Möglichkeiten einen Betriebsstundenzähler zu realisieren? Oder evtl eine andere Bibliothek oder so?


----------



## Dr.MirakulixX (25 Juli 2013)

Hast du den Zählerwert retain definiert oder den ganzen Baustein ?


----------



## SPS-Fuzzi (25 Juli 2013)

Mach doch eine neue Variable, die du Retain Persistent deklarierst, die rein die Betriebsdauer darstellt. Zyklisch liest du den aktuellen Wert des Betriebsstundenzählers aus, addierst diesen hinzu und resetest den FB_Betriebsstunden. 

Gruß SPS-Fuzzi


----------



## Stalle (25 Juli 2013)

Den ganzen Baustein..... Ist das etwa der Fehler?


----------



## Stalle (25 Juli 2013)

Wie kann ich denn den Zählerwert auf Retain setzen? Der ist doch in dem Baustein oder nicht?


----------



## Dr.MirakulixX (25 Juli 2013)

Bei mir war es eben das ich nicht den ganzen Baustein genommen habe.


----------



## Stalle (25 Juli 2013)

Wie meinst du das? Wenn ich den Baustein jetzt einfüge, muss ich den ja deklarieren.... z.B. so: Stundenzaehler_Kompressor:FbBetrDauer;
Wie müsste ich das denn dann machen?


----------



## Dr.MirakulixX (25 Juli 2013)

Also nachdem ich den in meinem fall Retain deklariert habe hat's geklappt.


----------



## Stalle (25 Juli 2013)

Den kompletten Baustein? Ich habe den Baustein schon mal als Var als Var Retain und auch mal als Var Retain Persistent gesetzt......
Immer das gleiche: Beim ändern des Programmes werden die Stunden auf 0 gesetzt und er zählt wieder von vorne


----------



## Stalle (25 Juli 2013)

Komisch das gibts doch nicht......Ich habe es so oft probiert und auch schon auf mehreren Controllern.....


----------



## Dr.MirakulixX (25 Juli 2013)

Naja sonst die Idee mit dem addieren in einer Var. Wie oben beschrieben.


----------



## Stalle (25 Juli 2013)

Aber das muss doch einen Grund haben...... Bei dir klappt es, bei mir nicht. Welchen Controller verwendest du? Ich nutze den 881 von Wago


----------



## Dr.MirakulixX (26 Juli 2013)

Ich nutze hab für die Anwendung meine ich einen 849er verwendet. Ich habe allerdings nicht exakt den Baustein verwendet wie du sondern einen ähnlichen aber mit selben Problem. Bin am Montag wieder im Büro und schaue dann nochmal genau nach.


----------



## thorsten_s (4 März 2014)

Hallo,

ich greife mal dieses Thema wieder auf, denn ich haber das selbe Problem. Habe auch schon die Ausgabe_Variablen als Globale Persistent und Retain Variable deklariert, leider werden Sie auch nach der Änderung des Programmes auf 0 gesetzt.
Oder muss man nach einem Neustart die Werte aus einem Speicher auslesen und neu in die Variable schreiben.
Im Anhang habe ich 2 Bilder von dem Programm.

Gruß
Thorsten


----------



## Nost (5 März 2014)

Der ganze fb muss persitent retain deklariert werde. Ansonsten wird der ausgabewert zwar gespeichert aber im ersten zyklus beim neustart mit 0 ueberschrieben, aus dem programm heraus


----------

