PACK-Baustein

Kurz-Information

Name

PACK

→POE-Typ

→Funktion

Kategorie

IEC-Baustein, ConvertEnh

Konform zur →IEC-Norm

images/s/b2ic8e/9012/1ca6q62/_/images/icons/emoticons/add.svg nicht in IEC-Norm vorgesehen

Grafische Schnittstelle

images/download/thumbnails/414781043/PACK-version-1-modificationdate-1534929534347-api-v2.png

Verfügbar ab

  • Version 1.50.0 (für logi.CAD 3) – Anfangsvariante

  • Version 3.2.5 (für Bibliothek Standard ) – Funktionalität für Plattformen korrigiert, die durch Systemintegrator erstellt werden

Funktionalität

Der Baustein liefert als Ergebnis die übertragenen Werte der Bytes, die an den Eingängen IN0IN7 anliegen. Bei Zielsystemen, die Daten im Little- →Endian -Format speichern, wird das Byte vom Eingang IN0 auf das niederwertigste Byte des Ergebniswerts übertragen, das Byte vom Eingang IN7 auf das höchstwertige Byte des Ergebniswerts. 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 Ergebnisdatentyps (Anzahl der Bytes, durch die der Datentyp repräsentiert wird) > als die Anzahl der anliegenden Eingangsbytes ist, bleiben die höherwertigen Bytes des Ergebniswerts uninitialisiert.
    Bei BOOL-Werten für den Ergebniswert wird bei jedem Wert ≠ 0 am Eingang IN0 der Wert TRUE geliefert.

  • Falls mehr Eingangsbytes anliegen, als der Ergebnisdatentyp aufnehmen kann, werden nur die niederwertigen Eingangsbytes an den Ergebniswert übertragen. Bei Zielsystemen, die Daten im Little-Endian-Format speichern, sind dies die Eingänge, die weiter oben am Baustein liegen.

Es ist möglich, dass der Baustein sich bei einer verschachtelten Verwendung mit anderen Bausteinen nicht wie erwartet verhält. Dieses Verhalten wird aufgrund der Typisierung auf den kleinsten gemeinsamen Datentyp verursacht (siehe unter "Typisierung von Ausdrücken" für Details).

Eingänge, Ergebniswert


Bezeichner

→Datentyp

Beschreibung

Eingänge:

IN0

BYTE

1. Wert

IN1

BYTE

2. Wert

... (ausziehbar bis)

IN7

BYTE

8. Wert

Ergebniswert:

REAL, LREAL, USINT, UINT, UDINT, ULINT, SINT, INT, DINT, LINT, TIME, BOOL, BYTE, WORD, DWORD, LWORD, DATE_AND_TIME, DATE oder TIME_OF_DAY


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.

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 ExamplePack
VAR
result1, result2 : DWORD;
result2a : WORD;
END_VAR
result1 := PACK(IN0 := 16#01, IN1 := 16#02); (* DWORD = 4 bytes *)
result2 := PACK(IN0 := 16#01, IN1 := 16#02, IN2 := 16#04, IN3 := 16#07);
result2a := PACK(IN0 := 16#01, IN1 := 16#02, IN2 := 16#03, IN3 := 16#04); (* WORD = 2 bytes *)
 
Assert(result1 = 16#0201); (* '16#0201' equals to '513' (decimal). *)
Assert(result2 = 16#07040201); (* '16#07040201' equals '117_703_169' (decimal). *)
Assert(result2a = 16#0201); (* '16#0201' equals '513' (decimal). *)
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.