UNPACK2-Baustein
Kurz-Information
Funktionalität
Der Baustein überträgt den Wert, der am Eingang IN anliegt, byteweise auf die Ausgänge OUT0 und OUT1 . Bei Zielsystemen, die Daten im Little- →Endian -Format speichern, wird das niederwertigste Byte des Eingangs auf den Ausgang OUT0 übertragen, das höchstwertige auf OUT1. Bei Zielsystemen, die Daten im Big- Endian -Format speichern, ist das Verhalten umgekehrt.
Spezialfälle (siehe unter " Beispiel für Verwendung im ST-Editor" ) :
Falls die Größe des Eingangswerts (Anzahl der Bytes, durch die der Datentyp repräsentiert wird) > als die Anzahl der Ausgänge ist, werden nur die niederwertigen Eingangsbytes übertragen.
Falls mehr Ausgangsbytes vorhanden sind, als der Eingangswert enthält, bleiben die höherwertigen Ausgangsbytes uninitialisiert. Bei Zielsystemen, die Daten im Little-Endian-Format speichern, sind dies die Ausgänge, die weiter unten am Baustein liegen.
Ein-/Ausgänge
|
Bezeichner |
Beschreibung |
|
Eingänge: |
IN |
REAL, LREAL, USINT, UINT, UDINT, ULINT, SINT, INT, DINT, LINT, TIME, BOOL, BYTE, WORD, DWORD, LWORD, DATE_AND_TIME, DATE oder TIME_OF_DAY |
Eingangswert |
Ausgänge: |
OUT0 |
BYTE |
1. Byte-Ausgangswert |
OUT1 |
BYTE |
2. Byte-Ausgangswert |
Der Eingang EN und der Ausgang ENO sind für den →Aufruf
des Bausteins verfügbar. Siehe "Ausführungssteuerung: EN, ENO" für Informationen zum Eingang EN und zum Ausgang ENO.
Informieren Sie sich unter:
"Bausteine für sichere Logik", ob dieser Baustein für das Entwickeln von sicherheitsrelevanten Anwendungen unterstützt wird.
"Kennzeichnung von sicherer Logik im FBS-Editor", welche Auswirkung die Verwendung des Bausteins als Baustein für sichere Logik hat.
Beispiel für Verwendung im ST-Editor
Das folgende Beispiel gilt für Zielsysteme, die Daten im Little - Endian -Format speichern. Die berechneten Werte werden mit Hilfe des Assert-Bausteins ausgewertet.
FUNCTION_BLOCK ExampleUnpack2
VAR
resultA1, resultA2, resultB1, resultB2 : BYTE;
END_VAR
UNPACK2(IN := DWORD#
16
#
04030201
, OUT0 => resultA1, OUT1 => resultA2);
UNPACK2(IN := WORD#
16
#
0201
, OUT0 => resultB1, OUT1 => resultB2);
Assert(resultA1 =
16
#
01
);
Assert(resultA2 =
16
#
02
);
Assert(resultB1 =
16
#
01
);
Assert(resultB2 =
16
#
02
);
END_FUNCTION_BLOCK
Bei der Erstellung Ihrer Anwendung im ST-Editor erstellen Sie den Aufruf eines Bausteins, indem Sie den laut Syntax erforderlichen Text eintippen oder die Inhaltshilfe verwenden.