Typ | Funktion |
Beschreibung | Die überladene Funktion TO_TIME konvertiert den am Eingang anliegenden Wert in einen Ausgangswert vom Datentyp TIME (siehe Beschreibung des Eingangs für die unterstützten Datentypen). |
Parameter | Eingang
IN
Datentyp: | Die Funktion unterstützt folgende Datentypen:
- SINT, INT, DINT, LINT, USINT, UINT, UDINT, ULINT
- STRING, WSTRING
- LTIME
|
Ausgang
OUT
|
Konvertierungsregeln | ANY_INT-Konvertierung
Die Zeitbasis ist Millisekunden. D.h. der Wert 1 entspricht 1 Millisekunde. Eingangswerte außerhalb des gültigen Bereichs des TIME-Ausgangswerts verursachen einen Überlauf.
Beispiele in ST: out := TO_TIME(DINT#360000); (* liefert T#6m *) out := TO_TIME(ULINT#2147483650); (* liefert T#-24d20h31m23.646s *)
LTIME-Konvertierung
- Besitzt der Ergebniswert mehr Stellen als vom Zieldatentyp unterstützt, werden diese abgeschnitten.
- Wenn der LTIME-Eingangswert außerhalb des gültigen Bereichs des TIME-Ausgangswerts liegt, kommt es zu einem Überlauf.
Beispiele in ST: out := TO_TIME(LTIME#30h); (* liefert T#1d6h *) out := TO_TIME(LTIME#-24d20h31m24s); (* liefert T#24d20h31m23.296s*) out := TO_TIME(LTIME#23d17h2m47.295501s); (* liefert T#23d17h2m47.295s *); Werte kleiner 1 s werden abgeschnitten
ANY_STRING-Konvertierung
- Die am Eingang angelegte Zeichenfolge muss einem gültigen Zeitliteral entsprechen. Das Zeitliteral muss im folgenden Format angegeben werden: Zeit_Präfix#Wertmit Time_prefix = T, t, TIME oder time. Der Wert muss ein gültiger TIME-Wert mit Angabe der Einheit (z.B. ms) sein.Beispiele: T#23s, t#5d10h
- Zusätzliche Zeichen vor und nach dem Zeitliteral sind nicht erlaubt.
- Alle führenden und nachfolgenden Leerzeichen im Eingangsstring werden im Ergebnis ignoriert.Als Leerzeichen betrachtete ASCII-Codes:
Zeichen | Wert |
Horizontal-Tabulator | 9 (09h) |
Zeilenvorschub | 10 (0Ah) |
Vertikal-Tabulator | 11 (0Bh) |
Seitenvorschub | 12 (0Ch) |
Zeilenumbruch | 13 (0Dh) |
Leerzeichen | 32 (20h) |
- Wenn der STRING-Wert kein gültiges Zeitpräfix oder einen leeren String enthält, liefert die Funktion den Wert T#0 und der Laufzeitfehler 'Formatstringfehler' wird im MELDUNGEN-Fenster ausgegeben. Die Programmausführung wird nicht unterbrochen, die Steuerung bleibt im Zustand RUN (siehe oben stehender Hinweis).Beispiel: out := TO_TIME('aaT#3daa'); (* liefert T#0 *)
- Wenn der Eingangswert den Wertebereich des TIME-Datentyps überschreitet, liefert die Funktion den Überlaufwert und der Laufzeitfehler 'Formatstringfehler' wird ausgegeben (siehe hierzu folgenden Hinweis).
Hinweis
Steuerungstopp bei String-Fehler: Sie können einstellen, ob die Steuerung bei einem String-Fehler automatisch gestoppt werden soll. Dies gibt Ihnen im Fehlerfall die Möglichkeit, den Fehler in Ihrem Projekt zu lokalisieren. Um bei einem String-Fehler die Steuerung automatisch zu stoppen, aktivieren Sie das Symbol in der Symbolleiste des Cockpits. |
|
Fehlerverhalten | Fehlerverhalten
Die folgende Tabelle zeigt die Fehler, die bei der Ausführung der Funktion auftreten können, und den von der Funktion im entsprechenden Fehlerfall zurückgegebenen Wert. Der Wert, den die Funktion im Fehlerfall zurückgibt, hängt vom Eingangswert ab (wenn z.B. der Eingangswert ein nicht-literaler String ist, gibt die Funktion den Wert 0 zurück).
Fehlerfall | Ausgabewert |
Überlaufwert | Überlaufwert |
Nicht-literaler String | 0 |
|
Zusätzliche Informationen | EN/ENO-Verhalten
Die POE wird nur dann ausgeführt, wenn TRUE am Eingang EN anliegt. Wenn EN = FALSE ist, wird die POE nicht ausgeführt und ENO auf FALSE gesetzt (FU/FB inaktiv).
Wenn bei der Ausführung der Funktion einer der unter "Fehlerverhalten" aufgeführten Fehler auftritt, wird ENO auf FALSE gesetzt.
|