TIA Timer

kuti

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

wisst ihr vielleicht wie man eine Real-Zahl an einen Timer als TW angibt. Z.B habe ich 33.23. Ein Timer hat als Eingang S5Time oder Word, deswegen meine Frage. Ich möchte jetzt diese 33.23 an meine Einschaltverzögerung geben, aber als Real oder Word.

Gruß
 
Deine Real-Zahl in ganze Millisekunden umrechnen und als TIME speichern, dann mit T_CONV aus den erweiterten Anweisungen "Datum und Uhrzeit" in S5Time konvertieren.
Oder direkt in S5Time umrechen, wozu es auch schon einige Threads gibt. Ist aber m.M.n. aufwendiger.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke hucki für deine heutigen Hilfen, jedoch verstehe ich gerade nicht ganz, was du meinst. Der IEC-Timer verlangt doch als IN die Datentypen S5TIME und Word. Nur blöd, dass ich jetzt eine REAL-Zahl habe. Diese REAL-Zahl repräsentiert mathematisch gesehen Sekunden und diese möchte ich gerne in mein IN geben.
 
Nur blöd, dass ich jetzt eine REAL-Zahl habe. Diese REAL-Zahl repräsentiert mathematisch gesehen Sekunden
Der lange Weg in FUP/KOP:



In AWL kannst Du Edit: nicht einige Schritte, sondern nur den MOVE-Schritt überspringen:
Code:
[FONT=courier new]      L     #Vorgabe_Sekunden
[/FONT][FONT=courier new]      L     1000.0[/FONT]
[FONT=courier new]      *R
[/FONT][FONT=courier new]      RND[/FONT]
[FONT=courier new]      T     #Vorgabe_Time[/FONT]

[FONT=courier new]      CALL  T_CONV[/FONT]
[FONT=courier new]         IN  :=#Vorgabe_Time[/FONT]
[FONT=courier new]         OUT :=#Vorgabe_S5Time[/FONT]
;)
 
Zuletzt bearbeitet:
Ich habe mir das jetzt angesehen und kann es nachvollziehen, jedoch verstehe ich nicht warum man das so machen muss. Z.B durch 1000 oder umwandeln in DINT.:confused:
 
Machst du das beruflich?
Nö, ist fast nur Hobby und das Forum mein Training. :TOOL:
Auf Arbeit läuft SPS-Programierung mir nur alle 1-2 Jahre über den Weg.

Würde ich zwar gern vollberuflich machen, habe aber auch so einen guten Job, relativ gute Bezahlung und einen super Chef.
Wer weiß, ob ich sowas nochmal bekomme.
;)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe mir das jetzt angesehen und kann es nachvollziehen, jedoch verstehe ich nicht warum man das so machen muss. Z.B durch 1000 oder umwandeln in DINT.:confused:
Mit Sekunden können die Timer nichts anfangen.

TIME ist einfach ein DINT-Wert, der den Zeitwert in Millisekunden angibt.
Da kommt man durch die Multiplikation (PS: mal 1000, nicht durch, wie Du geschrieben hast) und das Konvertieren des Zahlenformates recht einfach hin und die IEC-Timer arbeiten ja auch damit.

Die Siemens-Timer brauchen aber S5Time und das ist ein zusammengesetzter Wert aus Zeitbasis und Multiplikator. Dadurch ist die Berechnung etwas komplizierter (gibt's wie gesagt schon Threads zu, einfach mal suchen). Aber das nimmt Dir ja der Converter ab. Und auch der will als Eingang nunmal TIME.

:)
 
Zuletzt bearbeitet:
Besser kann man es nicht erklären. Danke dir. Schönen Abend. Hoffe, du bist hier öfters auf deinem Trainingsplatz :D
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi

bei der 1500 gibt es sogar Timer die tun so als ob sie besser als Millisekunden auflösen: IEC_LTIMER.
Die tun zwar so, als wären das Nanosekunden, bei den 1516 die ich in den Händen -- eigentlich in den Racks -- habe sind es jedoch eher Millisekunden. Theoretisch kann man damit die nächsten 200 Jahre abmessen.:rolleyes:

Irgendwie hat Siemens da wieder mal einen Schmarrn gemacht. LTIME löst Nanosekunden auf, aber ein TON_LTIME liefert nur eine Millisekunden Auflösung.

Wer eine bessere Auflösung braucht als Millisekunden, der muss RUNTIME verwenden. Das liefert Sekunden als Fließkommazahl zwischen den RUNTIME Aufrufen. Die Auflösung ist Mikrosekunden. Damit kann man Zeiten innerhalb eines Zyklus messen. Über mehrere Zyklen hinweg klappt das zwar auch, aber irgend was läuft dann über und man bekommt eine negative Zeit.


Fazit: Für Zeitmessung über mehrere Zyklen einen IEC_TIMER verwenden. Für Messungen innerhalb eines Zyklus mit RUNTIME wursteln.
 
Zuletzt bearbeitet:
Zurück
Oben