Zeit von Timer kleiner als Zykluszeit

klauserl

Level-2
Beiträge
246
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!
S5 Timer (z.b.ausschaltverzögert)mit einer Zeitvorgabe von 30ms.
Zykluszeit beträgt aber ca. 50ms.
Wie lange ist den mein Timer dann den wirklich aktiv?
mfg.
klauserl
 
Die Timer (nicht die IEC-Timer), die Standardtimer laufen wirklich genau 30 ms und sind dann aus/an, auch mitten im Zyklus. Willst du das verhindern hängst du an den Ausgang des Timers einen Merker und fragst diesen statt der Zeit ab. Der Merker verändert seinen Wert erst wieder, wenn der Zyklus am Timer "vorbei kommt".
 
Zuviel Werbung?
-> Hier kostenlos registrieren
..die Standardtimer laufen wirklich genau 30 ms und sind dann aus/an, auch mitten im Zyklus...
Meines Wissens behält der Timer seinen Zustand mind. einen Zyklus lang.

Code:
//*** Monitor
      L     Z     20                    // alle Zähler 
      L     Z     21                    // haben den
      L     Z     22                    // selben Stand

//*** Flankenwechsel zählen
      U     T     20
      FN    M    200.3
      ZV    Z     22
      L     Z     22

//*** Timer starten
      U     M    200.0                  // hier Flanke erzeugen
      L     S5T#3M
      SA    T     20

//*** Flankenwechsel zählen
      U     T     20
      FN    M    200.1
      ZV    Z     20
      L     Z     20

//*** Zyklusverlängerung
      CALL  SFC   47
       WT:=30000
      CALL  SFC   47
       WT:=30000

//*** Flankenwechsel zählen
      U     T     20
      FN    M    200.2
      ZV    Z     21
      L     Z     21
Mann könnte allerdings den Timer auslesen, mit dem Sollwert vergleichen und zurücksetzen. Das sollte man sich allerdings gut überlegen.

Code:
      L     T     20
      L     S5T#30MS
      <I    
      R     T     20
Gruß, Onkel
 
@Onkel Dagobert

Hm, meine Information ist, daß die Timer dann ablaufen, wenn die Zeit das sagt, also auch mitten im Zyklus.
Ich hab mit erlaubt deinen Code mal etwas zu ändern, kommt mit so etwas eindeutiger vor.

Code:
//*** Monitor
      L     Z     20                    // alle Zähler 
      L     Z     21                    // haben den
      L     Z     22                    // selben Stand

//*** Flankenwechsel zählen
      U     T     20
      ZV    Z     22
      L     Z     22

//*** Timer starten
      U     M    200.0                  // hier Flanke erzeugen
      L     S5T#10MS
      SI    T     20
      U     T     20
      R     M    200.0

//*** Flankenwechsel zählen
      U     T     20
      ZV    Z     20
      L     Z     20

//*** Zyklusverlängerung
      CALL  "WAIT"
       WT:=30000
      CALL  "WAIT"
       WT:=30000
      CALL  "WAIT"
       WT:=30000
      CALL  "WAIT"
       WT:=30000
      CALL  "WAIT"
       WT:=30000
      CALL  "WAIT"
       WT:=30000

//*** Flankenwechsel zählen
      SET   
      U     T     20
      ZV    Z     21
      L     Z     21

In der Tat ist es so, daß alle Zähler gleich bleiben, zumindest auf dem Simulator. Kann es sein, daß sich Step5 so verhielt und Step7 das anders macht? Ich hatte jedenfalls mal wirklich Probleme damit, daß Timer schon weg waren, ehe das Programm an der Stele war, die den tTmer nochmals abfragte, daher kam ich ja erst auf dieses Thema, damals.
 
Zuletzt bearbeitet:
Hallo Ralle,

ich habe es nur im Simulator getestet. Dort funktioniert es so, wie ich es beschrieben habe. Ich habe es eigentlich auch seit eh und je so "drinne". Manchmal macht man aber auch über Jahrzehnte etwas falsch, wenn man es nur einmal falsch verstanden hat.


Gruß, Onkel
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Also ein S5 Timer ist Interupt gesteuert.

Hier ein Beispiel für einen möglichen Fehler:

Code:
U  M 1.0 
U  T 1
=  M 1.1
           // Nun kann es passieren, dass genau jetzt die Zeit aktiv wird.
U  T 1
R  M 1.0  // Merker wird zurückgesetzt
          // Im nächsten Zyklus wird Merker 1.1 nicht mehr zugewiesen obwohl der Timer noch VKE 1 hat.
 
So, ich hab den obigen Code jatzt mal auf einer 200-er VIPA getestet, da ist es wie im Simulator, die Zähler haben immer den gleichen Stand. Würde meine Aussage stimmen, dürfte aber der Zähler Z21 nie hochzählen, denn das Wait verzögert den Zyklus um wesentlich mehr als die Timerzeit.

@Paule
Ich dachte das ja auch, aber der Test sagt was anderes. Oder Simulation und VIPA machen es anders.
 
Hm, irgendwie nicht ganz eindeutig.

Ich habs mal getestet.
Also, eine SI-Zeit verhält sich tatsächlich so, wie ich es beschrieben hab. Die läuft auch im Zyklus ab. Wenn man im obigen Code mit der SI-Zeit eine längere Zeit als die der Wait-SFC einsetzt, zählen alle Zähler hoch. Mit der kurzen Zeit zählt nur Z20 hoch. Interessantes Ergebnis: Mit einer SE- oder SA-Zeit ging das nicht!

Nachtrag:
Bei der SE-Zeit kann ich mit das erklären. Die Bedingung, welche die SE-Zeit startet wird ja auch erst im nächsten Zyklus erneut abgefragt, also zählen alle 3 Zähler. Bei der SA-Zeit ist es nicht klar. Wenn der M200.0 False wird, muß die SA-Zeit nachlaufen und zwar 10ms lang, dann muß T20 auf False gehen. Also sollte nur Z20 zählen. Es zählen aber alle 3 Zähler. Bei der SI-Zeit geht das, wie beschrieben, nur Z20 zählt, solange die Zeit kleiner als die Wartezeiten mit den SFC ist.

Hat jemand dafür eine einleuchtende Erklärung oder findet einen Denkfehler?
 
Zuletzt bearbeitet:
Hallo,
hierzu mal von der Logik her :
SE - startet den Timer (mit pos. Flanke am Eingang) und dessen Ausgang wird nach Ablauf der Zeit permanent High - wäre dann unabhängig vom Zyklus ...
SA - startet den Timer (mit neg. Flanke am Eingang) und dessen Ausgang wird nach Ablauf der Zeit permanent Low - wäre dann auch unabhängig vom Zyklus ...
SI - erzeugt einen Impuls von vorgegebener Länge - hier könnte die Zeit innerhalb des Zyklusses ablaufen
SV , SS - im Prinzip wie SI

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Habe ich am letzten Freitag noch bei einer Fehlersuche an einer alten S5-Anlage erlebt :-( Hatte etwas Zeit gekostet das Problem zu finden :-(

Kenn ich :)
Diese Fehler sind sowas von ekelhaft zu finden ... Besonders wenn man das hier beschriebene Phänomen nicht kennt.

Gruß
Dieter
 
Hallo,
hierzu mal von der Logik her :
SE - startet den Timer (mit pos. Flanke am Eingang) und dessen Ausgang wird nach Ablauf der Zeit permanent High - wäre dann unabhängig vom Zyklus ...
SA - startet den Timer (mit neg. Flanke am Eingang) und dessen Ausgang wird nach Ablauf der Zeit permanent Low - wäre dann auch unabhängig vom Zyklus ...
SI - erzeugt einen Impuls von vorgegebener Länge - hier könnte die Zeit innerhalb des Zyklusses ablaufen
SV , SS - im Prinzip wie SI

Gruß
LL

Hm, nicht ganz klar,deckt sich das nun mit meinen Versuchen LL oder nicht? :confused:
 
Hm, nicht ganz klar,deckt sich das nun mit meinen Versuchen LL oder nicht? :confused:
... ich würde sagen - ja ... (da du ja mit SI experimentiert hattest)
Es ging mir darum, es noch einmal zusammen zu fassen ... Da ein SE und ein SA nach Ablauf einen dauerhaften Zustand annehmen ist es egal, ob dieser Zustand etwas früher oder später erfasst wird - im Unterschied dazu die Impuls-Timer, die ein Signal für eine Zeit x´erzeugen. Hier muß man dann auch die Chance haben, das Signal erfassen zu können ...

Gruß
LL
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... ich würde sagen - ja ... (da du ja mit SI experimentiert hattest)
Es ging mir darum, es noch einmal zusammen zu fassen ... Da ein SE und ein SA nach Ablauf einen dauerhaften Zustand annehmen ist es egal, ob dieser Zustand etwas früher oder später erfasst wird - im Unterschied dazu die Impuls-Timer, die ein Signal für eine Zeit x´erzeugen. Hier muß man dann auch die Chance haben, das Signal erfassen zu können ...

Gruß
LL

egal würde ich nicht sagen, wenn ich die se zeit mehrmals im zyklus verwende und sie mittendrin den zustand ändert...

das muss ich morgen mal testen...
 
Zurück
Oben