Autor Thema: BLIND_CONTROL  (Gelesen 14160 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline Jensen

  • Newbie
  • *
  • Beiträge: 14
    • Profil anzeigen
BLIND_CONTROL
« 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

Offline Omalik

  • Full Member
  • ***
  • Beiträge: 110
  • Phantasie ist wichtiger als Wissen, denn Wissen
    • Profil anzeigen
    • Home Cinema Pro - Heimkinosteuerungen
Re: BLIND_CONTROL
« Antwort #1 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

Offline mattsches

  • Sr. Member
  • ****
  • Beiträge: 268
    • Profil anzeigen
Re: BLIND_CONTROL
« Antwort #2 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.

Offline Omalik

  • Full Member
  • ***
  • Beiträge: 110
  • Phantasie ist wichtiger als Wissen, denn Wissen
    • Profil anzeigen
    • Home Cinema Pro - Heimkinosteuerungen
Re: BLIND_CONTROL
« Antwort #3 am: 25. Mai 2018, 22:48:52 »
Danke. Ich meinte im BLIND_CONTROL_S.
Da habe ich immer noch den Fehler. 


Offline mattsches

  • Sr. Member
  • ****
  • Beiträge: 268
    • Profil anzeigen
Re: BLIND_CONTROL
« Antwort #4 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.