Timer Problem !!!

Ma_su

Level-2
Beiträge
58
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich dreh bald am Rad, und ich habe eine dumme Frage! Ich stehe erade voll auf dem Schlauch.
Ich wollte eine berechnung alle 5s sekunden durchführen und dachte mir kein Problem!
Schreib doch einfach das!
Code:
 UN    T      3
      L     S5T#5S
      SE    T      3
      NOP   0
      NOP   0
      NOP   0
      NOP   0
Und ich dachte das der Timer nun für ein Zyklus gesetzt ist.
Das wollte ich dann mit dem Nächsten Netzwerk ausprobieren ob es wirklich so ist:
Code:
  U     T      3
      ZV    Z      5
      BLD   101
      NOP   0
      NOP   0
      NOP   0
      NOP   0
      NOP   0
      NOP   0
Nun musste ich feststellen das es nicht geht!

Warum nicht ????? Wird der Timer status erst zum Zyklus ende Aktualisiert oder wo liegt mein Denkfehler! denn der Timer startet wie gedacht immer wieder von vorne.


Hilfe Hilfe ich beise gleich in den Tisch!


Gruß Marc
 
timer sind zyklusunabhängig. das kann zu probs führen.

deshalb sollte man grundsätzlich mit einem merker bei sowas arbeiten.
das garantiert dir einen merker der 1zyklus high ist.

machs so.

un m1.0
l s5t#5s
se t3
u t3
= m1.0

u m1.0
zv z5
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Volker

Super mein Tisch Freud sich gerade.

Das mit dem Merker setzten hatte ich schon probiert.
nur ich hatte geschrieben:

un T3
l s5t#5s
se t3
u t3
= m1.0

u m1.0
zv z5

Das geht nicht wie ich feststellen musste.

Kann mir noch mal jemand nochmal GENAU erklären warum das nicht geht, und ab wann ein Timer im Zyklus wieder abgefragt werden kann, bzw. er sich ändert!

In der siemens hilfe habe ich zu dem Zyklus verhalten von Timer nichts gefunden. Fände ich schon wichtig zu wissen.

Danke Marc
 
Hallo Marc.

Du muss es wie "Volker schreiben, dann funktioniert es auch.

un m1.0 // 5 Sekundenflanke erreicht
l s5t#5s
se t3
u t3
= m1.0

u m1.0
zv z5

Du hast aber folgendes geschrieben und das funktioniert nicht, weil T3 nie im Nächsten Zyklus "1" werden kann.

un T3 // T3 im 2.Zyklus abfragen
l s5t#5s
se t3
u t3 // T3 im selben Zyklus
= m1.0

u m1.0
zv z5

Soweit verstanden?
 
Nur als Test:
tausche die beiden Netzwerke, dann funktioniert der Zähler auch ohne Merker.
Das Problem ist wie Volker schreibt, dass alle Timer unabhängig vom Zyklus laufen.
Sie laufen auch ab, wenn sie nicht mehr aufgerufen werden, nach dem sie gestartet wurden!
mfG. Jo
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Ma_SU

Probier mal:

un T3
l s5t#5s
se t3
zv z5

Bei mir funktionierts. Ich kann mir das nur so vorstellen, das sowohl der Timer als auch das VKE für den Timer permanent zykluszeitunabhängig überwacht werden. Habe in der Siemens-Literatur aber auch nichts genaues gefunden.

Gruß

Andreas
 
@ hubert

Nein was volker geschrieben hat habe ich schon verstanden!



Was ich gerne noch wissen würde ist wie Timer sich zum Zyklus verhalten.

Wenn ein Timer mitten im Zyklus abläuft (timer 1 = True), wann wird der Timer dann im Zyklus gesetzt?

Sofot wie Merker oder am Ende wie Ausgänge, das weis ich noch nicht, oder ist es ganz anders ?

Gruß Marc
 
Timer nach Neustart

Hallo,

@znarf

nach einem Neustart ist nicht sicher, dass ein Timer so anläuft.
Auf jeden Fall sollte ein Merker verwendet werden, weil die Flanke abgefragt wird, und wo soll die beim stehenden Timer herkommen?
Das war schon bei S5 so, dürfte sich nicht viel gaändert haben.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@ma_su

Ja genau, der Timer läuft mitten im Zyklus ab und ab da ist er im weiteren Zyklus auf 1 (oder 0, je nachdem ;) ).
Aber der Timer geht auch auf 1, wenn das Programm nicht gerade im 1. NW mit dem Timer ist, sondern sobald die Zeit abläuft.

Bsp. für einen einzigen OB1 mit 100 Netzwerken:

1. Timer steht im 1. NW
2. Timer ist im NW 1-49 auf 0
3. Timer geht im NW50 auf 1
4. Timer ist ab NW50 auf 1

Schreibst du einen Merker hinter den Timer:

U Tx
= My

dann geht dieser Merker auf 1, wenn das Programm NW1 abarbeitet und der Timer auf 1 ist, das ist der Unterschied.
 
Zuletzt bearbeitet:
@Werner54
Mit dem oberen Beispiel wollte ich zeigen, das der Timer nachvollziehbar 1 wird. Meine Takte entnehme ich entweder den Taktmerkern, oder baue sie mit Timer und excklusiv-oder. Aber deine Erklärung mit der Flanke kann ich nicht ganz nachvollziehen. Wo wird die Flanke beim ersten mal erzeugt, wenn ich den Timer mit un M1.0 ansteuere?

Gruß

Andreas
 
Flankenmerker

Znarf schrieb:
Wo wird die Flanke beim ersten mal erzeugt, wenn ich den Timer mit un M1.0 ansteuere?
Hallo,
genaues weiß ich dazu auch nicht, jedenfalls habe ich solche Timer ungefähr seit 20 Jahren immer mit Merker geschrieben und seitdem keinen Ärger mehr damit.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Ralle
Danke, das hat auch den rest unklarheit beseitigt.

Habe jetzt auch meinen denkfehler verstanden!


@all

Programmieren kann manchmal echt scheiße sein!
Einmal nicht ganz bis zu Ende gedacht und schon läuft garnichts. :confused:

Danke noch mal an alle, habe heute wieder was fürs leben gelernt.


Gruß Marc
 
Zurück
Oben