Typ | Funktion |
Beschreibung | Die überladene Funktion TO_WORD konvertiert den am Eingang anliegenden Wert in einen Ausgangswert vom Datentyp WORD (siehe Beschreibung des Eingangs für die unterstützten Datentypen). |
Parameter | Eingang
IN
Datentyp: | Die Funktion unterstützt folgende Datentypen:
- BOOL, BYTE, DWORD, LWORD
- Integer: SINT, INT, DINT, LINT, USINT, UINT, UDINT, ULINT
- 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.
-
Eingangsgröße > Ausgangsgröße: Ist der Eingangsdatentyp größer als der WORD-Ausgang, werden nur die Bits 0 bis 15 des Eingangswerts berücksichtigt.
-
Eingangsgröße < Ausgangsgröße: Ist der Eingangsdatentyp kleiner als der WORD-Ausgang, werden die "ungenutzten" Bits im WORD auf FALSE gesetzt (z.B. die Bits 8 bis 15 bei BYTE_TO_WORD oder SINT_TO_WORD).
- 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_WORD trifft dies auf Eingangswerte vom Datentyp BOOL und BYTE 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) |
- Wenn der Eingangswert den Wertebereich des Ausgangsdatentyps überschreitet, liefert die Funktion den Überlaufwert und der Laufzeitfehler 'Formatstringfehler' wird ausgegeben (siehe Hinweis unten).
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 |
Überlauf: Eingangsbytegröße zu groß | Überlaufwert |
String kein gültiges Bitliteral oder ganzzahliges Literal (inkl. Leerzeichen) | 0x00 |
String: Überlauf Bitliteral | Überlaufwert |
|
Beispiele | Beispiele in ST
out := TO_WORD(INT#32767); (* liefert 16#FFFF *)
out := TO_WORD(DINT#65536); (* liefert 16#0000 *)
out := TO_WORD(INT#-1); (* liefert 16#FFFF *)
out := TO_WORD(SINT#-16); (* liefert 16#00F0 *)
out := TO_WORD(DWORD#16#0000ABCD00); (* liefert 16#CD00 *)
out := TO_WORD('WORD#16#ABCC'); (* liefert 16#ABCC *)
|
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.
|