Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 4 von 4

Thema: Problem mit Timerfunktion

  1. #1
    Registriert seit
    22.08.2013
    Beiträge
    31
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    wahrscheinlich ist das Ganze ziemlich einfach zu lösen, aber ich komme irgendwie nicht drauf:
    wenn iState=1 ist, dann soll ein Timer gestartet werden und eine Variable auf 1 gesetzt werden.
    iState = 2 und Timer abgelaufen dann solll Variable 0 werden.
    Aber T1.Q wird nicht true!
    Man kann das sicher auch ohne state machine machen, aber ich möchte das gerne so machen, da ich was ähnliches später noch brauche.

    VAR
    T1: TON := (IN:=FALSE); (* Timer definieren *)

    Main Prog
    T1(IN:=, PT:=T#5s, Q=>, ET=> ); (* Timer definieren *)

    IF iState=1 THEN
    T1.IN:=TRUE; (* Timer starten *)
    Variable := 1;
    iState:=2;
    END_IF
    IF iState=2 AND (T1.Q) THEN (* ausgang ist ein und zeit ist abgelaufen *)
    T1.IN:=FALSE;
    Variable := 0;
    iState:=0;
    END_IF

    Hat jemand eine Idee?
    Danke...
    Zitieren Zitieren Problem mit Timerfunktion  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.398 Danke für 1.998 Beiträge

    Standard

    Hallo,

    ich würde es so machen :
    Code:
    Main Prog
        T1(IN:= (iState=1) ,PT:=T#5s, Q=>, ET=> );            (* Timer definieren  *)
    
        IF iState=1 THEN
            Variable := 1;            
            iState:=2;
        END_IF
        IF iState=2 AND T1.Q THEN            (* ausgang ist ein und zeit ist abgelaufen *)
            Variable := 0;            
            iState:=0;
        END_IF
    Gruß
    Larry

    Nachsatz :
    wie/wann wird iState = 1 ... ?

  3. #3
    Registriert seit
    25.04.2012
    Beiträge
    13
    Danke
    0
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Var

    Timer :TON;
    Variable :INT:=0;
    State :INT:=0;

    Main Prog

    timer(IN:=State=1 OR Variable=1 , PT:=t#5s , Q=> , ET=> );

    IF Timer.Q THEN
    Variable:=1;
    State:=2;
    END_IF


    IF State=2 AND Timer.Q THEN
    Variable:=0;
    State:=0;
    END_IF

    Gruß
    Geändert von DanPreith (26.06.2014 um 15:56 Uhr)

  4. Folgender Benutzer sagt Danke zu DanPreith für den nützlichen Beitrag:

    vo13 (26.06.2014)

  5. #4
    vo13 ist offline Benutzer
    Themenstarter
    Registriert seit
    22.08.2013
    Beiträge
    31
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    istate setze ich über ads auf 1.
    Danke... klappt jetzt!

Ähnliche Themen

  1. B&R Timerfunktion
    Von gaiskasimir im Forum Sonstige Steuerungen
    Antworten: 8
    Letzter Beitrag: 11.06.2013, 12:35
  2. Antworten: 11
    Letzter Beitrag: 24.01.2013, 13:28
  3. Antworten: 1
    Letzter Beitrag: 25.01.2010, 15:57
  4. Antworten: 3
    Letzter Beitrag: 31.10.2008, 07:34
  5. Antworten: 9
    Letzter Beitrag: 03.09.2007, 08:44

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •