TBL_TBL: Tabellen verknüpfen (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
TBL_TBL: Tabellen verknüpfen

Beschreibung

Die Anweisung führt den am Parameter CMD angegebenen Befehl mit den entsprechenden Einträgen der beiden Quelltabellen (Parameter TBL1 und TBL2) aus und schreibt das Ergebnis in die entsprechenden Einträge in der Zieltabelle (DEST_TBL).

  • Die Datentypen INT, DINT und REAL sind nur für arithmetische Operationen gültig.

  • Der erste Eintrag in der Tabelle gibt die Anzahl der Tabelleneinträge (Tabellenlänge) an.

  • Die Anzahl der Einträge aller Tabellen muss gleich oder größer als Null sein.

    Hinweis

    Beim Erstellen der Tabellen müssen Sie jeweils den ersten Eintrag initialisieren.

Parameter

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

Parameter

Deklaration

Datentyp

Speicherbereich

Beschreibung

TBL1

Input

*Pointer

E, A, M, D

Zeigt auf den Beginn der ersten Quelltabelle.

TBL2

Input

*Pointer

E, A, M, D

Zeigt auf den Beginn der zweiten Quelltabelle.

DEST_TBL

Input

*Pointer

E, A, M, D

Zeigt auf den Beginn der Zieltabelle.

CMD

Input

BYTE

E, A, M, D, L, P

Gibt den auszuführenden Befehl an. Die folgenden Befehle sind gültig:

B#16#07 = UND-Verknüpfung

B#16#08 = ODER-Verknüpfung

B#16#09 = EXKLUSIV ODER-Verknüpfung

B#16#0a = Addieren

B#16#0b = Subtrahieren

B#16#0c = Multiplizieren

B#16#0d = Dividieren

E_TYPE

Input

BYTE

E, A, M, D, L, P

Gibt den Datentyp der Tabelleneinträge an. Gültig sind die folgenden Datentypen:

B#16#04 = WORD

B#16#05 = INT

B#16#06 = DWORD

B#16#07 = DINT

B#16#08 = REAL

RET_VAL

Return

WORD

E, A, M, D, L, P

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

* 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 Bedingungen auftritt, wird die Anweisung "TBL_TBL" nicht ausgeführt. Der Signalzustand von BIE / ENO wird auf "0" und der Rücksprungwert entsprechend gesetzt:

RET_VAL

Erläuterung

W#16#0001

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

W#16#0002

Der Parameter E_TYPE ist ungültig.

W#16#0003

Die Längen der Eingangs- und der Ausgangstabellen stimmen nicht überein.

W#16#0004

Die Tabelle hat eine Länge von Null.

W#16#0005

Der Parameter E_TYPE und CMD stimmen nicht überein.

W#16#0006

Der Parameter CMD ist ungültig

Beispiel (KOP)

Wenn der Signalzustand von Eingang E 0.0 = 1 ist (aktiviert), dann wird die Anweisung "TBL_TBL" ausgeführt. In diesem Beispiel enthalten alle Tabellen jeweils drei Tabelleneinträge. Dies wird von dem ersten Wort der jeweiligen Tabelle angegeben. Bei dem Datentyp der Tabellenwerte handelt es sich um WORD. Dies gibt E_TYPE an. CMD gibt den Befehl an, mit dem TBL1 und TBL2 verknüpft werden sollen.

Wird die Anweisung "TBL_TBL" fehlerfrei ausgeführt, dann werden die Signalzustände von ENO und A 0.0 auf "1" gesetzt und RET_VAL wird auf den Wert W#16#0000 gesetzt.

Vor der Bearbeitung:

TBL1 (Tabellenlänge)

DBW0 = W#16#0003

DBW2 = W#16#00FF

DBW4 = W#16#FF00

DBW6 = W#16#FFFF

TBL2 (Tabellenlänge)

DBW20 = W#16#0003

DBW22 = W#16#1111

DBW24 = W#16#2222

DBW26 = W#16#3333

DEST_TBL (Tabellenlänge)

DBW40 = W#16#0003

DBW42 = W#16#0000

DBW44 = W#16#0000

DBW46 = W#16#0000

Nach der Bearbeitung:

DST_TBL (Tabellenlänge)

DBW40 = W#16#0003

DBW42 = W#16#0011

DBW44 = W#16#2200

DBW46 = W#16#3333