TIA Time convertierung nach Mikrosekunden

Mikrosekunden := Millisekunden * 1000;

Wie meinst Du das mit Nachkomma? Wo kommt Deine Zeit her, welche Auflösung hat sie?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Harald

die Zeit wird errechnet und liegt dann im Real-Format vor, mit der quasi Einheit ms. Wenn ich nur eine t_conv mache muss ich vorher in int oder dint umrechnen, was mir aber die Kommastelle abschneidet.
Wenn ich aber vorher den rechenwert mit 1000 multipliziere bekomme ich in der t_conv ja s_ms und kann anschließend aber nicht mehr durch 1000 teilen um ms_µs zu haben.
z.B. eine Periodenzeit für 485 1/min das ergibt 0,12371... s. Ich möchte aber aus bestimmten Zwecken quasi 123,71 ms haben bzw. t#123ms_71µs
 
Wofür willst Du die Zeit weiterverwenden? Warum willst (mußt?) Du das Rechenergebnis (REAL) in einen Zeit-Datentyp umrechnen?

Die S7-1200 unterstützt keine Zeit-Datentypen mit einer Auflösung kleiner als Millisekunden, sowas wie T#123ms_456µs gibt es nicht. Um Zeiten mit Auflösungen kleiner als Millisekunden zu handeln, muß der Zeitwert in einen allgemeinen numerischen Datentyp gepackt werden, wie es z.B. die Funktion RUNTIME macht (die liefert LREAL).

Du könntest das REAL-Ergebnis * 1000 nehmen und dann in DINT umwandeln und Dir die Einheit "µs" dazu denken, dann hättest Du z.B. 123456 µs. Oder läßt es einfach in REAL (oder konvertierst zu LREAL) und denkst Dir die Einheit "ms" dazu, dann hättest Du 123,456 ms.

Harald
 
Prinzipiell reichen die Millisekunden für das Programm aus.
Es sind Zeiten für eine Ventilsteuerung bzw. zur Rampenberechnung für den FU. Teilweise werden aber auch die Rechenwerte für normale timer benutzt, daher das time Format.
Die Nachkomma bzw. Mikrosekunden wären für mich nur zum spielen/lernen ob es möglich ist.
 
Zurück
Oben