Kann es sein, dass sich im Funktionsblock DIMM_I ein kleiner Fehler eingeschlichen hat.
Wenn ich nach dem Kommentar gehe sollten die folgenden beiden Zeilen
...
(* set direction to up when value < 127 otherwise set dir down dir is reversed because next action will reverse again *)
dir := out > 127;
...
(* set the appropriate direction of dimmer dir is reversed because next action will reverse again *)
dir := out > 127;
wohl so
...
(* set direction to up when value < 127 otherwise set dir down dir is reversed because next action will reverse again *)
dir := out >= 127;
...
(* set the appropriate direction of dimmer dir is reversed because next action will reverse again *)
dir := out >= 127;
oder so lauten
...
(* set direction to up when value < 127 otherwise set dir down dir is reversed because next action will reverse again *)
dir := NOT(out < 127);
...
(* set the appropriate direction of dimmer dir is reversed because next action will reverse again *)
dir := NOT(out < 127);
, oder?
Weil, was wenn out genau 127 ist?!
Dann ist sowohl out > 127 als auch out < 127 FALSE.
Und sollte die Grenze vielleicht nicht sogar bei 128 liegen, damit das ganze schön symmetrisch ist?