part 3
[gelöscht durch Administrator]
[gelöscht durch Administrator]
Dieser Abschnitt erlaubt es Ihnen, alle Beiträge anzusehen, die von diesem Mitglied geschrieben wurden. Beachten Sie, dass Sie nur Beiträge sehen können, die in Teilen des Forums geschrieben wurden, auf die Sie aktuell Zugriff haben.
Beiträge anzeigen-Menü(* the input is first sent through auto reconfiguration and debouncing *)
//config(IN := IN, TD := T_DEBOUNCE, TR := T_RECONFIG);
decode(in := IN, T_LONG := T_DIMM_START);
IF RST THEN
IF rst_out THEN out := 0; END_IF;
Q := FALSE;
dir := out > 127;
ELSIF set THEN
out := val;
Q := TRUE;
(* set direction to up when value < 127 otherwise set dir down dir is reversed because next action will reverse again *)
dir := out > 127;
ELSIF decode.SINGLE THEN
(* a single click reverses output Q *)
Q := NOT Q;
(* when dimmer is turned on we need to limit out to min and max limits *)
IF Q THEN out := LIMIT(MAX(MIN_ON,1), out, MAX_ON); END_IF;
(* set the appropriate direction of dimmer dir is reversed because next action will reverse again *)
dir := out > 127;
ELSIF decode.TP_LONG THEN
IF NOT Q THEN
IF SOFT_DIMM THEN
OUT := 1;
dir := TRUE;
ELSE
OUT := LIMIT(MAX(MIN_ON,1), out, MAX_ON);
DIR := out < 127;
END_IF;
Q := TRUE;
ELSE
(* reverse direction with every long click *)
dir := NOT dir;
END_IF;
END_IF;
(* set the double click output *)
IF NOT dbl_toggle THEN dbl := FALSE; END_IF;
IF decode.DOUBLE THEN dbl := NOT dbl; END_IF;
(* while dimming is active ramp the output out up or down *)
dim(DIR := dir, e := decode.LONG AND Q, TR := T_DIMM, rmp := out);
(* reverse direction when limits are reached *)
//IF out < 30 THEN
//dir := TRUE;
//ELSIF out = 255 THEN
//dir := FALSE;
//END_IF;
(* Sperre für minimum*)
IF Q AND out < MIN_ON THEN
out := MIN_ON;
END_IF
(* limit the maximum runtime *)
IF t_ON_MAX > t#0s THEN
t3(in := q, pt := T_ON_MAX);
Q := Q XOR t3.Q;
END_IF;
Seite erstellt in 0.028 Sekunden mit 17 Abfragen.