Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Timer Ausschaltverzögerung abbrechen

Anonymous
2006-01-26
2006-01-27
  • Anonymous - 2006-01-26

    Originally created by: Gast

    Hallo,

    ich bin blutiger Anfänger mit CoDeSys. Ich möchte mit als Funktionsplan eine Treppenhausbeleuchtung realisieren, die nach Tastendruck für 5 min eingeschaltet wird. Soweit gut. Timer als "TOF" gesetzt mit Taster als Eingang und Schaltausgang am Ausgang "Q". Funktioniert auch. Jetzt möchte ich aber mit erneutem Tastendruck das Licht vorzeitig wieder auschalten können. Wie kann ich den Timer manuell beenden?

    Als Hardware wird später mal eine Wago 750-841 eingesetzt werden. Momentan läuft das Programm in der Simulation.

    Wäre toll, wenn jemand dafür eine Lösung hat.

    Gruß

    Christoph

     
  • Anonymous - 2006-01-27

    Originally created by: joohrte

    dieses ist mit einer TOF zeit nicht so einfach.

    Meine Lösung wäre mit dem Eingang den zustand des Ausgangs zu Toggeln und zusätzlich wenn der Ausgang für eine Zeit TRUE ist diesesn wieder zurück zu setzen.

    Ich habe mein Beispile als Baustein Exportiert.

    ELTAKO.zip [534 Bytes]

     
  • Anonymous - 2006-01-27

    Originally created by: -AB-

    Im Grunde ist es ganz einfach.

    Du fragst die Flanke des Eingangs ab.

    Wenn die Flanke kommt und der Ausgang noch nicht geschaltet ist wird die Zeit des TOF auf 300s gesetzt.

    Wenn die Flanke kommt und der Ausgang ist schon geschaltet, dann wird die Zeit auf 0ms gesetzt.

    Danach nur noch den Timer aufrufen - Fertig.

    MFG

    -AB-

    Hier noch die Lösung in ST:

    PROGRAM PLC_PRG

    VAR

    Taster            : BOOL;
    
    RTRIG_Taster : R_TRIG;
    
    Timer             : TOF;
    
    Ausgang         : BOOL;
    

    END_VAR

    RTRIG_Taster (clk := taster);

    IF RTRIG_Taster.Q AND Timer.Q THEN

    Timer.PT := t#0ms;
    

    ELSIF RTRIG_Taster.Q AND NOT Timer.Q THEN

    Timer.PT := t#300s;
    

    END_IF;

    Timer (IN:= RTRIG_Taster.Q , Q=> Ausgang);

     
  • Kersten - 2006-01-27

    hallo Christoph,

    möglicherweise sind die funktionsblöcke von WAGO eine hilfe. ich kenne das globale taget leider nicht aber zum thema home automation ist da einiges. das pdf ist zu beachten, da nicht alle fbs für die 750-841 ohne änderungen passig sind.

    na denn...

    kersten

    Link von wago :

    http://www.wagotoplon.com/english/softw ... common.zip m

     
  • Anonymous - 2006-01-27

    Originally created by: Gast

    danke für eure Antworten.

    @AB

    in ST kann ich kein R_TRIG und kein TOF deklarieren. CoDeSys meckert darüber. Warscheinlich mache ich was falsch bzw. weiss ich nicht wo alles genau hin kommt. Wie gesagt ich bin blutiger Anfänger. Erfahrung mit Visual Basic habe ich, ich brauche noch ein wenig bis ich mich an das System gewöhnt habe.

    @Kersten

    als ich dein Tip befolgen wollte habe ich die mitgelieferten Bibliotheken gefunden und da ist jede Menge dabei, was ich brauche für Rolladen und Lichtsteuerung. So langsam komme ich noch dahinter.

    Gruß

    Christoph

     

Log in to post a comment.