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

Ergebnis 1 bis 7 von 7

Thema: Zeitsteuerung in ST

  1. #1
    Registriert seit
    28.10.2013
    Beiträge
    9
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich versuche vergeblich eine Zeitsteuerung (mit zwei Zeitzuständen) für eine Lampe in ST zu programmieren. Zur Verfügung habe ich nur einen Taster. Wenn der Taster kurz betätigt wird soll die Lampe 30 sek leuchten und wenn der Taster länger gedrückt wird soll die Lampe 90 sek leuchten. Ich denke man könnte den zweiten Zustand auch durch 2x Betätigen des Taster erreichen, weiß aber nicht wie man das realisiert.

    Mein einziger funktionierender Ansatz sieht wie folgt aus:

    Code:
    PROGRAM test
    VAR
    
        Taster AT %I*: BOOL;
        Lampe AT %Q*: BOOL;
    
        time_kurz:TP;
        
    
    END_VAR
    
    ----------------------------------------
    
    time_kurz(IN:=Taster , PT:=T#30S);
    
    
    (* Eine einfache Zeitschaltung erst einmal für einen Zustand*)
    
    
    IF  time_kurz.Q=TRUE   THEN
       lampe:=TRUE;
            ELSE
            lampe:=FALSE;
    
    END_IF
    Gruß Marmi
    Zitieren Zitieren Zeitsteuerung in ST  

  2. #2
    Registriert seit
    27.04.2006
    Ort
    Sauerland
    Beiträge
    626
    Danke
    183
    Erhielt 88 Danke für 81 Beiträge

    Standard

    Ich würds so machen:
    Code:
    PROGRAM test 
    VAR      
     
    Taster AT %I*: BOOL;     
    Lampe AT %Q*: BOOL;      
        t_set:TIME;  
        ton_TA:TON;  
        time_on:TP;
        
    
    END_VAR
    
    ----------------------------------------
    
    
    
    ton_TA(IN:=Taster , PT:=T#3s);
    
    If (Taster and not ton_TA.Q) THEN t_SET=T#30s;
    If (Taster and ton_TA.Q) THEN t_SET=T#90s;
    
    time_on(IN:=Taster, PT:=t_SET);
    Lampe:=time_on.Q
    so in der Richtung - ungetestet und aus dem kopf....
    Geändert von repök (08.11.2013 um 21:14 Uhr) Grund: mir war noch was aufgefallen...

  3. Folgender Benutzer sagt Danke zu repök für den nützlichen Beitrag:

    marmi86 (09.11.2013)

  4. #3
    Registriert seit
    14.08.2004
    Beiträge
    824
    Danke
    45
    Erhielt 73 Danke für 66 Beiträge

    Standard

    Von mir gibt es den üblichen Zustandsautomaten.

    Code:
    PROGRAM test 
    VAR      
    state : INT = 0;
    
    Taster AT %I*: BOOL;     
    Lampe AT %Q*: BOOL;      
    
    timerTaster: T_ON;
    timerLampe : T_ON;
    END_VAR
    
    Lampe := NOT timerLampe.Q;
    
    CASE state OF
      0: 
      IF Taster THEN
        state := 1;
      END_IF;
    
      1: 
      timerTaster(IN:=Taster, PT:=t#3s);
      IF timerTaster.Q THEN
        state := 2;
      ELSIF NOT Taster THEN
       state := 3;
      END_IF;
    
      2: 
      timerLampe(IN:=NOT timerLampe.Q, IN:=t#90s);
      state := 4;
      
      3: 
      timerLampe(IN:=NOT timerLampe.Q, IN:=t#30s);
      state := 4;
    
      4:
      timerLampe();
      IF timerLampe.Q THEN
        state := 0;
      END_IF;
    
    END_CASE;

  5. Folgender Benutzer sagt Danke zu drfunfrock für den nützlichen Beitrag:

    marmi86 (09.11.2013)

  6. #4
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.200
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Ich meine, der Lampe-Timer darf erst gestartet werden beim Loslassen der Taste oder wenn die Taste länger als die Taste-Timer-Zeit gedrückt ist. Die Lampe würde ich aber schon beim Drücken der Taste leuchten lassen. Außerdem würde ich einen TOF nehmen, das verknüpft sich einfacher, daß die Lampe nur leuchtet, wenn vorher auch die Taste gedrückt wurde.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  7. #5
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.200
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Zitat Zitat von drfunfrock Beitrag anzeigen
    Von mir gibt es den üblichen Zustandsautomaten.
    Code:
    Lampe := state = 4;
    passt besser zum Zustandsautomaten, vor allem nach einem CPU-Neustart

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  8. #6
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.200
    Danke
    926
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard

    Hier meine ungetestete Variante mit Kurz-/Lang-/Dauerlicht
    Code:
    PROGRAM test
    VAR
    Taster AT %I* : BOOL;
    Lampe  AT %Q* : BOOL;
    
    ftr_Taster : F_TRIG;
    ton_Taster : TON;
    tof_Lampe  : TOF;
    END_VAR
    
    ftr_Taster(CLK:=Taster);
    ton_Taster(IN:=Taster, PT:=T#3s);
    
    (*IF NOT tof_Lampe.Q THEN *)
      IF ton_Taster.Q THEN
        tof_Lampe.PT := T#90s;
      ELSIF Taster
        tof_Lampe.PT := T#60s;
      END_IF;
    (*END_IF; *)
    
    tof_Lampe(IN:=ftr_Taster.Q OR ton_Taster.Q);
    
    Lampe := tof_Lampe.Q;
    (*Lampe := tof_Lampe.Q OR Taster; (*falls Lampe sofort ab Tastendruck leuchten soll*) *)
    Als Rückmeldung für den Bediener ist es vielleicht doch ganz gut, wenn die Lampe erst angeht wenn die Taste losgelassen wird oder länger als 3s gedrückt ist.

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  9. Folgender Benutzer sagt Danke zu PN/DP für den nützlichen Beitrag:

    marmi86 (09.11.2013)

  10. #7
    marmi86 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    28.10.2013
    Beiträge
    9
    Danke
    6
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielen Dank für eure Antworten. Ich werde am Montag eure Lösungen testen und euch dann berichten.
    Gruß marmi

Ähnliche Themen

  1. S5 100U (Cpu) -> Zeitsteuerung
    Von flummy im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 15.04.2011, 17:48
  2. Zeitsteuerung
    Von mauli im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 28.04.2009, 11:37
  3. S7 214 Zeitsteuerung HILFE
    Von mario318i im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 02.12.2007, 20:46
  4. Knifflige Zeitsteuerung !?
    Von Deep Blue im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 25.09.2006, 16:16
  5. Zeitsteuerung S5
    Von Anonymous im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 22.03.2005, 21:30

Lesezeichen

Berechtigungen

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