Hat auch keinen Unterschied gemacht, ich Tippe auf den Timer als das Problem
Ist nur die Frage, was daran das Problem ist.
door1_timer := door1_timer - Timegap;
Ist meiner Ansicht nach akkurat.
-> Also kann es sein, dass dieses if case garnicht ausgeführt wird.
Zum testen könnte man da mal einen Testboolean rein setzen um zu gucken, was dabei raus kommt.
if ((door1_timer > 0) and (door1_howOpen = 1)) then
Also könnte es an den beiden fällen liegen.
(door1_timer > 0)
Das wird trivialer weise true sein, sonst hätte der Timer ja funktioniert.
(door1_howOpen = 1)
Dazu war mein gedanke, das die Tür garnicht komplett auf geht (so im Sinne des Hase-Igel-Problems), also bei 0,99999... hängen bleibt.
Das könnte man mal überprüfen. Was sagt die Variable im Scriptplotter dazu?