Typ | Funktion |
Beschreibung | Die überladene Funktion TO_LWORD konvertiert den am Eingang anliegenden Wert in einen Ausgangswert vom Datentyp LWORD (siehe Beschreibung des Eingangs für die unterstützten Datentypen). |
Parameter | Eingang
IN
Datentyp: | Die Funktion unterstützt folgende Datentypen:
- BOOL, BYTE, WORD, DWORD
- Integer: SINT, INT, DINT, LINT, USINT, UINT, UDINT, ULINT
- Gleitkommazahlen: LREAL
- STRING, WSTRING
|
Ausgang
OUT
|
Konvertierungsregeln |
- Die Konvertierung erfolgt durch bitweises Kopieren des Eingangswerts in den Ausgangswert, d.h. es erfolgt eine binäre Übertragung vom Eingangsdatentyp in den Ausgangsdatentyp.Die Bit-Reihenfolge/-Bedeutung bei LREAL-Werten entspricht der IEC 60559. In der Norm ist das Basis-Gleitkomma-Zahlenformat definiert. Diese Bitreihenfolge wird unverändert in den Ausgang (Datentyp LWORD) kopiert.
- LREAL-Eingangswerte: Die Konvertierung von LREAL nach LWORD (LREAL_TO_LWORD) entspricht dem aktuellen Stand der IEC 61131-3 (3. Ausgabe).
- Ist der Eingangsdatentyp kleiner als der Ausgangsdatentyp LWORD, werden die nicht verwendeten Bits im LWORD auf FALSE gesetzt (z.B. die Bits 8 bis 63 bei BYTE_TO_LWORD oder SINT_TO_LWORD).
- Wenn sowohl der Wertebereich als auch die Genauigkeit des Eingangsdatentyps auf den Wertebereich und die Genauigkeit des Ausgangsdatentyps übertragen (gemappt) werden können, so kann ohne Verwendung dieser Funktion eine implizite Typkonvertierung durchgeführt werden.
Bei der Funktion TO_LWORD trifft dies auf Eingangswerte vom Datentyp BOOL, BYTE, WORD und DWORD zu.
ANY_STRING-Konvertierung
- Der String-Wert muss ein gültiges Bitliteral des Ausgangsdatentyps sein. Andernfalls liefert die Funktion den Wert 0x00 zurück und der Laufzeitfehler 'Formatstringfehler' wird ausgegeben.
- Zusätzliche Zeichen, Leerzeichen ausgenommen, vor und nach dem String-Wert sind nicht erlaubt. Die Funktion liefert den Wert 0 zurück und gibt den Laufzeitfehler 'Formatstringfehler' aus, wenn der String-Wert nicht erlaubte Zeichen enthält.
- 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) |
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 kein gültiges Bitliteral ist, gibt die Funktion den Wert 0x00 zurück).
Fehlerfall | Ausgabewert |
LREAL: NaN
Hinweis: ENO bleibt TRUE im Fehlerfall. | Byte-Darstellung |
LREAL: Inf+
Hinweis: ENO bleibt TRUE im Fehlerfall. | Byte-Darstellung |
LREAL: Inf-
Hinweis: ENO bleibt TRUE im Fehlerfall. | Byte-Darstellung |
String kein gültiges Bitliteral oder ganzzahliges Literal (inkl. Leerzeichen) | 0x00 |
|
Beispiele | Beispiele in ST
out := TO_LWORD(LINT#9223372036854775807); (* liefert 16#7FFFFFFFFFFFFFFF *)
out := TO_LWORD(INT#-1); (* liefert 16#000000000000FFFF *)
out := TO_LWORD(SINT#-16); (* liefert 16#00000000000000F0 *)
out := TO_LWORD(DINT#-2147483648); (* liefert 16#0000000080000000 *)
out := TO_LWORD(DINT#2147483647); (* liefert 16#000000007FFFFFFF *)
out := TO_LWORD(DWORD#16#FFFFABCD); (* liefert 16#00000000FFFFABCD *)
out := TO_LWORD('DWORD#16#0FAAABEF'); (* liefert 16#000000000FAAABEF *)
|
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.
Hinweis
ENO bleibt TRUE bei einem Eingangswert vom Datentyp LREAL, der keine gültige Zahl (NaN), ein PositiveInfinity-Wert (Inf+) oder ein NegativeInfinity-Wert (Inf-) ist. |
|