OSCAT Forum

Home Automation => SPS-Programmierung => Thema gestartet von: Jensen am 09. Mai 2016, 10:39:32

Titel: BLIND_CONTROL
Beitrag von: Jensen am 09. Mai 2016, 10:39:32
Hallo,
nachdem ich die Rollosteuerung hoffentlich im Griff habe, habe ich gleiches Schema für die Raffstores implementiert.
Eigentlich wurde nur BLIND_CONTROL_S gegen BLIND_CONTROL getauscht.
Nun wundere ich mich, daß BLIND_CONTROL den Status nicht durchreicht.
Am Eingang kann ich ihn noch sehen, am Ausgang steht eine 0.
Beim Fahren jedoch, wird der Status am BLIND_CONTROL korrekt ausgegeben.
Ist das so gewünscht? Mache ich wieder etwas falsch?
Gruß Jens
Titel: Re: BLIND_CONTROL
Beitrag von: Omalik am 15. Mai 2018, 19:21:21
Hallo Jensen

Habe auch gemerkt dass der Status nicht immer durchgereicht wird wie ich das erwarte. Im speziellen Feuer Regen Fenster als Beispiel zu nennen.
Hast du den Fehler gefunden?

Danke für dein Feedback
Titel: Re: BLIND_CONTROL
Beitrag von: mattsches am 16. Mai 2018, 12:52:07
Hallo ihr beiden,

das ist ein Fehler im BLIND_CONTROL. Ursache ist die letzte Zeile:

status := act.status;

Zeile löschen, dann geht es.
Titel: Re: BLIND_CONTROL
Beitrag von: Omalik am 25. Mai 2018, 22:48:52
Danke. Ich meinte im BLIND_CONTROL_S.
Da habe ich immer noch den Fehler. 

Titel: Re: BLIND_CONTROL
Beitrag von: mattsches am 25. Mai 2018, 22:56:05
Das würde ich so fixen:


(* check inputs and start state machine *)
IF UP  AND NOT DN THEN
(*  manual UP *)
rmp.IN := 255;
STATUS := 121;
ELSIF DN AND NOT UP THEN
(* manual DN *)
rmp.IN := 0;
STATUS := 122;
ELSIF NOT (UP OR DN) THEN
(* manual standby mode *)
rmp.IN := PI;
STATUS := S_IN;
ELSE
STATUS := S_IN;
END_IF;

Neu ist der letzte ELSE-Zweig (kann ich innerhalb des Code-Tags leider nicht farblich hervorheben.