Frage:
Kann der Zählerausgang des Funktionsblocks
L_TbCount netzausfallsicher abgespeichert werden?
Antwort:
Ja. Um den Ausgang des Zählerbausteins
L_TbCount output netzausfallsicher abzuspeichern, müssen die folgenden Schritte durchgeführt werden:
1. Legen Sie eine RETAIN-Variable vom Datentyp DINT an (im Beispiel unten ist das die Variable
dnRetainStartValue). Fügen Sie diese Variable zweimal in die FB-Verschaltung ein, einmal mit einem Eingangsfähnchen und einmal mit einem Ausgangsfähnchen.
2. Schreiben Sie den Zählerausgang auf die RETAIN-Variable (
L_TbCount.dnActualCount =>
dnRetainStartValue).
3. Verbinden Sie die RETAIN-Variable außerdem auf den Startwert-Eingang des Zählerbausteins (
dnRetainStartValue =>
L_TbCount.dnStartValue).
4. Fügen Sie einen Funktionsblock
L_TbTransition ein und rufen Sie diesen ganz am Anfang der Abarbeitungsreihenfolge auf (Platz 1 in der Abarbeitungstabelle). Wählen Sie die positive Flankenauswertung. Die Impulsdauer muss auf 1[ms] gesetzt werden. Den Eingang des Flankenauswerters verbinden Sie mit einem statischen TRUE-Pegel (
bTRUE_b =>
L_TbTransition.bIn). Der Funktionsblock
L_TbTransition gibt auf diese Weise einen TRUE-Pegel nur während des ersten Taskdurchlaufs aus.
Wird das Setzen des Zählers auf einen Startwert auch anwenderseitig benötigt, kann die FB-Verschaltung wie folgt erweitert werden (Das Laden des Zählers von Seiten des Anwenders erfolgt in diesem Beispiel über die Variablen
bLoadStartValue_b und
dnLoadValue):
