FUNCTION_BLOCK FB 1
TITLE =
AUTHOR : Gebs
FAMILY : Forum
NAME : 'Stk-Zahl'
VERSION : 0.1
VAR_INPUT
Flanke_Stueck : BOOL ;
END_VAR
VAR_OUTPUT
Stueckzahl : DINT ;
END_VAR
VAR
Tag : INT ;
Altwert_Tag : INT ;
Altwert_Stueckzahl : DINT ;
END_VAR
VAR_TEMP
Clock : DATE_AND_TIME ;
END_VAR
BEGIN
NETWORK
TITLE =Stückzähler
UN #Flanke_Stueck; // Flanke Stückzahl erhöhen
SPB NCnt; // Keine Flanke => nicht zählen
L #Altwert_Stueckzahl; // gespeicherte Stückzahl
L L#1;
+D ; // um 1 erhöhen
T #Stueckzahl; // neue Stückzahl ausgeben
T #Altwert_Stueckzahl; // und auch merken
NCnt: NOP 0;
NETWORK
TITLE =Tagesauswertung
CALL SFC 1 (// Sytemzeit auslesen
RET_VAL := MW 254,
CDT := #Clock);
L LB 7; // Byte 7 der Systenzeit (ms/Tag)
SLW 12; // ms rausschieben
SRW 12;
L #Altwert_Tag; // gemerkten Tag laden
==I ; // = aktueller Tag?
SPB NDay; // nein, dann nichts tun
TAK ; // aktuellen Tag in Akku 1
T #Altwert_Tag; // merken
L L#0;
T #Altwert_Stueckzahl; // Stückzahl löschen
NDay: NOP 0;
END_FUNCTION_BLOCK