Step 7 Timer

TimeOUT

Level-1
Beiträge
125
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich möchte gerne zwei Eingänge prüfen und wenn einer von ihnen 1 ist soll ein Timer von 1Minute starten. Wenn der Timer ausgelaufen ist sollen diverse Befehle abgearbeitet werden.

Ich versuche mich gerade in die ganze Timer-Thematik einzulesen, aber irgendwie versteh ich nicht so recht, wie man das ganze mit AWL realisiert :(

Gruß
 
Dann erstell Dir doch das Ganze in FUP/KOP und schalte zu AWL um:
Code:
[FONT=Courier New]      U(    
      O     #Eingang_1
      O     #Eingang_2
      )     
      L     S5T#1M
      SE    T      0
      NOP   0
      NOP   0
      NOP   0
      U     T      0
      =     #Start_Befehle
[/FONT]
Dann kannst Du noch die ganzen FUP/KOP-Sachen entfernen:
Code:
[FONT=Courier New]      O     #Eingang_1
      O     #Eingang_2
      L     S5T#1M
      SE    T      0

      U     T      0
      =     #Start_Befehle
[/FONT]
Fertig.


Oder gleich mit IEC-Timer:
Code:
[FONT=Courier New]      O     #Eingang_1
      O     #Eingang_2
[/FONT][FONT=Courier New]      =[/FONT][FONT=Courier New]     #Start_Timer
[/FONT]
[FONT=courier new]      CALL  "TON"[/FONT]
[FONT=courier new]       IN:=[/FONT][FONT=Courier New]#Start_Timer[/FONT]
[FONT=courier new]       PT:=T#1M[/FONT]
[FONT=courier new]       Q :=[/FONT][FONT=Courier New]#Start_Befehle[/FONT]
[FONT=courier new]       ET:=[/FONT]
Wenn der Eingang nicht die ganze Minute an sein sollen muss, brauchst Du bei der ODER-Verknüpfung keine Zuweisung sondern ein SETZEN.
 
Hallo,
im Falle eines SE-Timers oder eines TON erhälst du die "1" wenn der Timer durchgelaufen ist.
Für diesen Timer muß der Eingang die ganze Zeit anstehen ...

Gruß
Larry
 
Also zur Zeit benutze ich den SFB3, da liefert Q eine 0 , wenn der Timer abgelaufen ist.

Was ich nun vor habe ist:
Ich setze ein Start Bit, das bleibt auf 1
Solange Start = 1
Timer läuft runter (5sekunden) bis -> Q =0
Q abfragen und wenn 0 Diverse Befehle ausführen
Gleichzeitig, zur Ausführung der Befehle, hat sich der Timer wieder resettet und läuft bereits wieder von 5 Sekunden runter auf 0.

Das soll er so lange wiederholen, bis ich ein Stop setze

Hoffe es wurde ein bisschen klar, was ich vorhabe :rolleyes:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... dann würde ich trotzdem das Beispiel mit den TON-Timer von hucki nehmen und in die Verknüpfung vor den "Start_Timer" den "Start_Befehle" als UND mit hineinschalten ...

Gruß
Larry
 
Also zur Zeit benutze ich den SFB3, da liefert Q eine 0 , wenn der Timer abgelaufen ist.

Was ich nun vor habe ist:
Ich setze ein Start Bit, das bleibt auf 1
Solange Start = 1
Timer läuft runter (5sekunden) bis -> Q =0
Q abfragen und wenn 0 Diverse Befehle ausführen
Gleichzeitig, zur Ausführung der Befehle, hat sich der Timer wieder resettet und läuft bereits wieder von 5 Sekunden runter auf 0.

Das soll er so lange wiederholen, bis ich ein Stop setze

Hoffe es wurde ein bisschen klar, was ich vorhabe :rolleyes:

Code:
U start
S startcountdown
spb tim
spa end

tim: call "TP" , DB1
IN := Startcountdown
PT:= T#5s
Q := StartRoutine
ET:= 

UN Startroutine
R StartCountdown

//Befehle...

end: nop 0
 
Ähhh ... einen Timer zu überspringen kommt gar nicht gut.
Der möchte am Eingang IMMER einen Flankenwechsel erkennen können (und zwar sowohl den von 0->1 als auch den von 1->0).
Das würde dein Sprung verhindern.
Nimm das Beispiel, dass ich gesagt wie ich es gesagt habe ...

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich möchte gerne zwei Eingänge prüfen und wenn einer von ihnen 1 ist soll ein Timer von 1Minute starten.
Also zur Zeit benutze ich den SFB3, da liefert Q eine 0 , wenn der Timer abgelaufen ist.

Was ich nun vor habe ist:
Ich setze ein Start Bit, das bleibt auf 1
Solange Start = 1
Timer läuft runter (5sekunden) bis -> Q =0
Q abfragen und wenn 0 Diverse Befehle ausführen
Gleichzeitig, zur Ausführung der Befehle, hat sich der Timer wieder resettet und läuft bereits wieder von 5 Sekunden runter auf 0.

Das soll er so lange wiederholen, bis ich ein Stop setze
...
:rolleyes:
Wo ist der 2. Eingang abgeblieben?
Wo ist die Minute abgeblieben?

Und vor allem:
Warum rollst Du die Augen, wenn Du nicht in der Lage bist, Deinen Sch.. beim ersten Mal richtig zu erklären.
Das kann ich ja ab! :sw5:


Also dann so (wollen mal nicht so sein):
Code:
[FONT=Courier New]      U     #Start
      UN    #[/FONT][FONT=Courier New]Countdown_abgelaufen[/FONT][FONT=Courier New]
      =     #Start_[/FONT][FONT=Courier New]Countdown[/FONT][FONT=Courier New]

      CALL  "TON"
       IN:=#Start_[/FONT][FONT=Courier New]Countdown[/FONT][FONT=Courier New]
       PT:=T#1M                           // oder meinetwegen auch T#5s, wie's beliebt
       Q :=#[/FONT][FONT=Courier New]Countdown_abgelaufen[/FONT][FONT=Courier New]
       ET:=

      U      #[/FONT][FONT=Courier New]Countdown_abgelaufen[/FONT][FONT=Courier New]
      ...                                 // Befehlsausführung starten
[/FONT]
 
Ganz ruhig!
Was so ein Smiley alles bewirken kann :O
Evtl. war es unpassend gewählt an dieser Stelle.

Habe es jetzt soweit hinbekommen, auch dank deinem Beispiel zu "TON"
Die Idee mit den 2 Eingängen habe ich dann verworfen und es anders gelöst.

Danke und Gruß
 
Zurück
Oben