Hallo,
ich habe einen Bug in der Funktion ONTIME entdeckt.
Und zwar wird die Zeit des letzten Durchlaufes nicht immer gemerkt siehe Programmauszug.
Also last:=tx; sollte nach der IF Schleife stehen.
IF NOT init OR rst THEN
....
ELSIF IN THEN
...
ELSE
last := tx;
END_IF;
last := tx;
edge := in;
Trotzdem Super Arbeit.
mfg Erick