Timer in einer Schrittkette

DirkKuhn

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

Habe eine Schrittkette mit Zustandsmerkerverfahren programmiert.
Nun möchte ich in dieser Schrittkette einen Timer verwenden der im Schritt1 mit 1s und im Schritt2 mit 3s geladen werden soll. Bei den zuordnungen der Ausgänge hab ich folgendes

U Schritt1
O Schritt3
L S5T#1s
SE T1

U Schritt2
OSchritt4
LS5T#3s
SE T1

Aber irgendwie funktioniert das nicht ... wenn ich nen anderen Timer z.B T2 für die andere Zeit nehme gehts??? Wieso nicht mit dem selben Timer???

Grüsse Dirk
 
DirkKuhn schrieb:
Hallo

Wieso nicht mit dem selben Timer???

Grüsse Dirk

blöde frage.

ein timer ist genau wie ein merker oder ausgang eine speicherzelle.

wenn du die mehrfach zuweist funktioniert das nicht ohne sprünge.

wenn s1 o s3 da ist startet die zeit mit 1 sek und wird danach direkt zurückgesetzt da s2 und s4 nicht da sind.
ist s2 oder s4 da startet die zeit mit 3sek und wird im nächsten zyklus zurückgesetzt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo
Ja, ok das leuchtet mir ein!

Aber habs jetzt mit Sprüngen versucht:

U Schritt1
O Schritt2
SPB T1_a

U Schritt3
OSchritt4
SPB T1_b

SPA Ende

T1_a: L S5T#1s
SE T1
SPA Ende

T1_b: L S5T#3s
SE T1
SPA Ende

Ende: NOP 0



Funktioniert aber auch nicht. Wenn ich auf beobachten gehe dann wechselt das Bit vom Timerstatus ganz schnell zwischen 0 und 1????
Mhhhh bin nicht gerade fit auf diesem Gebiet deshalb diese "Anfängerfehler"

Grüsse
Dirk
 
die zeit läuft nur neu an bei einem flankenwechsel von 0->1

als anfänger solltest du aber gar nicht solche experimente machen.

es ist absolut schwachsinnig mit nur einem timer zu arbeiten.
nimm 2 timer und fertig.

ich würde wahrscheinlich sogar 4 timer nehmen, da ich dann für jeden schritt eine andere zeit wählen kann.
 
Tja da liegt ja der Wurm begraben ich kann nicht mehrere Timer nehmen weil die alle bereits verplant sind :-(

Naja der Flankenwechsel ist ja eigentlich erfüllt.... geht trotzdem nicht :-(

Trotzdem Danke für die Hilfe
Mfg
Dirk
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich weiss ja nicht was du für eine steuerung hast, aber selbst die kleinste s7 hat 64 timer.

kennst du den spruch:
wenn der programmierer sich nicht zu helfen weiss, nimmt er eine zeit

ist sichergestellt, das keine zwei schritte gleichzeitig da sind. (1 zyklus wäre schon zuviel)

du kannst aber zur not auch iec-timer nehmen. der nachteil ist das die einen instanz-db benötigen.

oder du machst dir deine zeiten selbst über einen zähler.
solche bausteine findest du auf meiner hp im unter s7-bausteine/timer.zip


[/code]
 
Die (einfache) Lösung war eigentlich gar nicht mehr so weit entfernt:

Probiers mal damit:

U Schritt1
O Schritt2
SPB T1_a

U Schritt3
OSchritt4
SPB T1_b

SPA Ende

T1_a: L S5T#1s
SPA Ende

T1_b: L S5T#3s
SPA Ende

Ende: NOP 0

SE T1


Habs zwar nicht getestet, sollte aber funktionieren.

Wie so oft führen wieder mal tausend Wege nach Rom....
 
Tja da liegt ja der Wurm begraben ich kann nicht mehrere Timer nehmen weil die alle bereits verplant sind

Wenn Du nicht genugend S5Timers hast dann nutze einfach die IEC Timers SFB2 - SFB4. Die kannst Du so oft benutzen bis Dein Speicher voll ist. Nachdem Du Dich daran gewöhnt hast, sind sie zum Teil einfacher und besser als die normalen Timers.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Dirk,

wenn die Schrittkette so programmiert ist wie ich es kenne, hast du keinen Flankenwechsel! Ich vermute, Schritt1 wird durch Schritt2 und Schritt3 wird durch Schritt4 zurückgesetzt? Somit sind beim Weiterschalten der Schrittkette für einen Zyklus immer zwei aufeinanderfolgende Schritte aktiv. Probier doch mal die Timeraufrufe etwas mehr zu verriegeln.


Code:
U   Schritt1 
UN  Schritt2
O   Schritt3 
UN  Schritt4
L   S5T#1s 
SE  T1 

U   Schritt2 
O   Schritt4 
L   S5T#3s 
SE  T1

Die Timeraufrufe müssen natürlich noch bedingt ausgeführt werden, wie weiter oben schon erwähnt.


Gruß, Onkel
 
Zurück
Oben