AUF DB 10 // Datenbaustein öffnen
//**************************************************************************************
//** Aufwärtszähler
//**************************************************************************************
U #Ereignis_1 // Kommendes Ereignis
FP #Flanke_1 // Steigende Flanke auswerten
SPBN m001 // Keine steigende Flanke? Dann weiter. Sonst...
L DBW 0 // Lade Zählerwort 1
L 1 // lade 1
+I // addiere
T DBW 0 // speicher neuen Zählerwert
m001: L DBW 0 // Lade Zählerwert 1
L #CountMax // Maximalwert
>=I // erreicht? Dann...
= #Erreicht_1 // Erreicht = 1
SPBN m002 // Nicht erreicht? Dann weiter. Sonst...
T DBW 0 // Zähler auf Max
//**************************************************************************************
//** Abwärtszähler
//**************************************************************************************
m002: U #Ereignis_2 // Kommendes Ereignis
FP #Flanke_2 // Steigende Flanke auswerten
SPBN m003 // Keine steigende Flanke? Dann weiter. Sonst...
L DBW 2 // Lade Zählerwort 2
L 1 // lade 1
-I // subtrahieren
T DBW 2 // speicher neuen Zählerwert
m003: L DBW 2 // Lade Zählerwert 2
L 0 // Minimalwert = 0
<=I // erreicht? Dann...
= #Erreicht_2 // Erreicht = 1
SPBN m004 // Nicht erreicht? Dann weiter. Sonst...
T DBW 2 // Zähler auf 0
m004: NOP 0 // Ende