Typ | Funktion |
Beschreibung | Die überladene Funktion TO_BYTE konvertiert den am Eingang anliegenden Wert in einen Ausgangswert vom Datentyp BYTE (siehe Beschreibung des Eingangs für die unterstützten Datentypen). |
Parameter | Eingang
IN
Datentyp: | Die Funktion unterstützt folgende Datentypen:
- BOOL (Bits 1 bis 7 des Ausgangs-BYTE-Wertes werden auf FALSE gesetzt), WORD, DWORD und LWORD
- Integer: SINT, INT, DINT, LINT, USINT, UINT, UDINT und 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.
- Ist der Eingangsdatentyp größer als der Ausgangsdatentyp (BYTE), werden nur die Bits 0 bis 7 des Eingangswerts berücksichtigt.
- 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_BYTE trifft dies nur auf BOOL-Eingangswerte 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_BYTE(INT#255); (* liefert 16#FF *)
out := TO_BYTE(INT#256); (* liefert 16#00 *)
out := TO_BYTE(INT#-1); (* liefert 16#FF *)
out := TO_BYTE(SINT#-16); (* liefert 16#F0 *)
out := TO_BYTE(DWORD#16#0000ABCD); (* liefert 16#CD *)
out := TO_BYTE('16#11'); (* liefert 16#11 *)
out := TO_BYTE('BYTE#16#32'); (* liefert 16#32 *)
|
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.
|