SE Timer synchronisieren!

Ricko

Level-1
Beiträge
118
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo SPS'ler

versuche (ohne Ergebniss) einen laufenden Timer mit einem Synchron_Impuls neu zu starten!


Die Einschaltverzögerung erzeugt je 5sek ein Impuls
UN M0.1
L S5T#5S
SE T1
U T1
= M0.1 (Flanke zum starten)

es laufen mehrere solche Timer mit 1sek, 4sek...
Ich möchte mit dem Synchrom_Impuls (M10.0) alle Timer gleichzeitig neu starten.
Habe schon mit Sprung versucht:
UM 10.0
SPS a1

Timer mit 5sek laufen

a1: Timer mit 0sek laden



wenn möglich ohne RESET Eingang, das Ganze soll auch in CoDeSys laufen!

wahrscheinlich ist der SE nicht geeignet!
wie geht das?

Ricko
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@M-Ott

ja, in Codesys kommt dann

T1:TON (Einschaltverz.)
CAL T1(IN=: , PT:= )

wie ich sagte im System sind mehrere TON die Impulse je 5, 2sek erzeugen
Von "draußen" kommt ein Synchronisationsimpuls z.B. je 1000sek. Ich möchte dass dann auch diese Timer über "null laufen"
so das nach 200 Impulsen (Timer mit 5sek Imp) und der Synchr_Imp (mit 1000sek) gleichzeitig kommen

Grüße
Ricko!
 
Hallo,
bei beiden Timern (in Step7) würde die Unterbrechung der IN-Leitung (beim SFB4) bzw. des Start (beim SE) wenn sie für einen kompletten Programm-Zyklus ansteht diesen Neustart des Timers bewirken.
Ich kann aber im Augenblick nicht beurteilen ob dir das wirklich hilft.
Für mich hört es sich ein bißchen so an, als wenn du dir das etwas eigens bauen mußt - das könnte z.B. ein FB sein, den du mit der gleichen Instanz aber unterschiedlichen Indexen im Programm verwendest und den du an einer Stelle Resetten (oder synchronisieren) kannst.

Gruß
Larry
 
@Larry

mit Codesys arbeite ich seit 4 Tagen !

ein Lösung wäre : kommt Synchr Impuls dann ganze CPU RESET - aber das ist sch..
eventuell den Synchr Impuls "abfangen" mit Setze Mx.y und dann mit UN T1 (der mit kleinstem Impuls z.b. 100ms) Rücksetze Mx.y . Fallende Flanke vom Mx.y ist mein Synchr. Impuls


...oder was ähnliches..

Ricko
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Oder vielleicht doch so :

Für mich hört es sich ein bißchen so an, als wenn du dir das etwas Eigenes bauen mußt - das könnte z.B. ein FB sein, den du mit der gleichen Instanz aber unterschiedlichen Indexen im Programm verwendest und den du an einer Stelle Resetten (oder synchronisieren) kannst.
 
Man kann einen Timer auch zurücksetzen!

z. B.

U M 10.5
R T5

evtl. macht auch eine Flanke Sinn, dann

z. B.

U M 10.5
FP M 10.6
R T5
 
Zuletzt bearbeitet:
Eine andere Lösung:

Bau Dir einen Zähler (INT / DINT), den Du mit einen Taktimpuls z. B. 100ms per Flanke um "1" erhöhst und vergleichst den Zählwert mit Deiner Vorgabe (ebenfalls in INT oder DINT). So eine Lösung könnte Systemübergreifend genutzt werden.
 
Hallo Michael

es wird eine Berechnung durchgeführt, interpolation auf Pereiodeende also 1000s
Mit den Impulsen die Parametrierbar sind (10ms, 500ms, 1000ms..) wird eine Steigung berechnet dy/dx. Habe da eine Abweichung
die vermutlich darin besteht dass "Nulldurchgang" nicht immer gleich ist. Der Synch_Impuls kommt von anderem SPS, sonst wäre alles OK

Also die Methode mit Synchr_Impuls "anpassen" (Reset mit U T1, nicht UN T1 !!)funktioniert, nur die Berechnung habe ich noch nicht gemacht

Grüße
Ricko
 
Deine Abweichung kommt wahrscheinlich daher, dass diese Methode (die selbsttriggernden SE) von Hause aus eine Abweichung von 1 x Zykluszeit pro Durchlauf mitbringt. Je nachdem, wie genau das alles sein muss, könnte Deine Abweichung von da kommen. Das kann sich bei 1000 Sekunden schon zu einer stattlichen Abweichung aufsummieren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielleicht könnte man da was anderes machen:
Die Systemzeit zum Startzeitpunkt plus einmal Impulslänge abspeichern, bei jedem Zyklus mit der aktuellen Systemzeit vergleichen und wenn größer-gleich gespeicherter Wert eine Flanke ausgeben und einmal Impulslänge zum abgespeicherten Wert addieren. Auf diese Weise kannst Du wahrscheinlich Deine Abweichung deutlich reduzieren oder sogar eliminieren.

Da fällt mir ein: das sollte ich auch mal ausprobieren, dafür hätte ich auch einen Anwendungszweck.
 
Zurück
Oben