PACK: Sammle/Verteile Tabellendaten (S7-300, S7-400) - STEP 7

Erweiterte Anweisungen (S7-300, S7-400)

ft:publication_title
Erweiterte Anweisungen (S7-300, S7-400)
Product
STEP 7
Version
V20
Publication date
11/2024
Language
de-DE
PACK: Sammle/Verteile Tabellendaten

Beschreibung

Die Anweisung überträgt Daten, die sich zwischen beliebigen Adressen und einer Tabelle befinden. Die Übertragungsrichtung wird von dem Parameter DIR angegeben. Jede Operation der Anweisung "PACK" bearbeitet maximal fünf Bausteine mit Daten (P_DATA1 bis P_DATA5). Wenn der Parameter DIR den Wert "an" enthält, dann überträgt die Anweisung "PACK" Daten aus den Adressen an die angegebene Tabelle. Wenn der Parameter DIR den Wert "aus" enthält, dann werden die Daten aus der Tabelle an die angegebenen Adressen verteilt.

Folgende Richtlinien gelten beim Übertragen von Daten "an" eine Tabelle:

  • Einzelne Bits (BOOL) werden in das nächste verfügbare Bit in der Tabelle übertragen.

  • Datentypen mit 8 Bit werden in das nächste verfügbare Byte in der Tabelle übertragen. Wenn ein Byte in die Tabelle geschrieben wird, dann werden die nicht verwendeten Bits von dem vorherigen Byte mit Nullen belegt.

  • Datentypen mit 16 und 32 Bit werden in das nächste verfügbare Wort in der Tabelle übertragen. Wenn ein Wort in die Tabelle geschrieben wird, dann werden die nicht verwendeten Bits in dem vorherigen Wort mit Nullen belegt.

Folgende Richtlinien gelten beim Übertragen von Daten "aus" einer Tabelle:

  • Es dürfen keine Abschnitte in einer Tabelle ausgelassen werden.

  • Alle angegebenen Daten vom Datentyp BOOL werden aus der Tabelle übertragen.

  • Datentypen mit 8 Bit werden aus dem ersten verfügbaren Byte in der Tabelle übertragen. Deshalb sind nicht verwendete Bits aus dem vorherigen Byte in der Tabelle nicht in dem Byte enthalten, das aus der Tabelle übertragen wird.

  • Datentypen mit 16 und 32 Bit werden aus dem ersten verfügbaren Wort in der Tabelle übertragen. Deshalb sind nicht verwendete Bits aus dem vorherigen Wort in der Tabelle nicht in dem Wort enthalten, das aus der Tabelle übertragen wird.

Folgende Datentypen sind für den Pointer ANY gültig und werden von "PACK" unterstützt: BOOL, WORD, INT, BYTE, DINT, REAL, CHAR, DWORD.

Parameter

Die folgende Tabelle zeigt die Parameter der Anweisung "PACK":

Parameter

Deklaration

Datentyp

Speicherbereich

Beschreibung

TABLE

Input

*Pointer

E, A, M, D

Zeigt auf den Beginn der Tabelle.

P_DATA1

Input

ANY

E, A, M, D

Zeigt auf den Beginn des Bausteins, dessen Daten übertragen werden sollen.

P_DATA2

Input

ANY

E, A, M, D

Zeigt auf den Beginn des Bausteins, dessen Daten übertragen werden sollen.

P_DATA3

Input

ANY

E, A, M, D

Zeigt auf den Beginn des Bausteins, dessen Daten übertragen werden sollen.

P_DATA4

Input

ANY

E, A, M, D

Zeigt auf den Beginn des Bausteins, dessen Daten übertragen werden sollen.

P_DATA5

Input

ANY

E, A, M, D

Zeigt auf den Beginn des Bausteins, dessen Daten übertragen werden sollen.

ERR_CODE

Output

WORD

E, A, M, D, L, P

Gibt den Wert W#16#0000 aus, wenn die Operation fehlerfrei ausgeführt wird.

DIR

Static

BOOL

E, A, M, D, L

Richtung der Übertragung. Folgende Signalzustände sind möglich: 0=an, 1=aus.

* Pointer im Doppelwortformat bei der bereichsübergreifenden, registerindirekten Adressierung

Weitere Informationen zu den gültigen Datentypen finden Sie unter "Übersicht über die gültigen Datentypen".

Parameter RET_VAL

Wenn eine der folgenden Fehlerbedingungen auftritt, dann wird die Anweisung "PACK" nicht ausgeführt. Der Signalzustand von BIE / ENO wird auf "0" und ERR_CODE entsprechend gesetzt:

ERR_CODE

Erläuterung

W#16#0001

Für einen Parameter von der Anweisung "PACK" wurde ein ungültiger Speicherbereich angegeben.

W#16#0002

Die Anweisung "E_TYPE" ist ungültig.

Beispiel (KOP)

Wenn der Signalzustand von Eingang E 0.0 = 1 ist (aktiviert), dann wird "PACK" ausgeführt. In diesem Beispiel werden vier Bausteine mit Daten "an" die Tabelle übertragen.

Wenn "PACK" fehlerfrei ausgeführt wird, dann werden die Signalzustände von ENO und A 0.0 auf "1" und ERR_CODE auf "W#16#0000" gesetzt.

Hinweis

Statische Parameter können Sie mithilfe des Datenbaustein-Editors initialisieren.

Vor der Bearbeitung:

TABLE

DBB0 = B#16#00

DBB1 = B#16#00

DBB2 = B#16#00

DBB3 = B#16#00

DBB4 = B#16#00

DBB5 = B#16#00

P_DATA1

M 200.0 = TRUE

M 200.1 = TRUE

P_DATA2

MB210 = B#16#FF

P_DATA3

M 300.0 = TRUE

M 300.1 = TRUE

P_DATA4

MW330 = W#16#FFFF

Instanz-DB PACK_DB

DIR

DBX58.0 = FALSE

Nach der Bearbeitung:

TABLE

DBB0 = B#16#03

DBB1 = B#16#FF

DBB2 = B#16#03

DBB3 = B#16#00

DBB4 = B#16#FF

DBB5 = B#16#FF