TBL_WRD: Wert aus der Tabelle kopieren (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_WRD: Wert aus der Tabelle kopieren

Beschreibung

Die Anweisung "TBL_WRD" (Wert aus der Tabelle kopieren) kopiert den Eintrag, der von dem Parameter INDX angegeben wird, aus der Tabelle SRC zu dem Ausgang DEST. Dabei wird der Wert von INDX erhöht, sofern der Wert kleiner ist als die maximale Länge, die in dem ersten Wort der Tabelle angegeben wird (SRC[0]). Wenn der Parameter INDX den letzten Tabelleneintrag angibt, dann wird das Bit des Ausgangs nach der Bearbeitung auf "0" gesetzt.

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

  • Der zweite Eintrag der Tabelle enthält den ersten Wert in der Tabelle.

    Hinweis

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

Parameter

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

Parameter

Deklaration

Datentyp

Speicherbereich

Beschreibung

SRC

Input

*Pointer

E, A, M, D

Zeigt auf die Anfangsadresse der Tabelle.

DEST

Input

*Pointer

E, A, M, D

Zeigt auf die Anfangsadresse des Ziels.

E_TYPE

Input

BYTE

E, A, M, D, L, P

Gibt den Datentyp der Tabelleneinträge an. Folgende Datentypen sind gültig:

  • 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.

Q

Output

BOOL

A, M, D, L

Gibt den Wert "0" an, wenn die Variable INDX beim Aufruf von "TBL_WRD" den letzten Wert der Tabelle enthält.

INDX

InOut

WORD

E, A, M, L

Nummer des Eintrags, der kopiert werden soll.

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 "TBL_WRD" nicht ausgeführt. Der Signalzustand von ENO wird auf "0" und der Rücksprungwert entsprechend gesetzt:

RET_VAL

Erläuterung

W#16#0007

Der Index ist "0".

W#16#0008

E_TYPE ist ungültig.

W#16#0009

Der Index liegt außerhalb des Tabellenbereichs.

Beispiel

Wenn der Signalzustand am Eingang E 0.0 = 1 ist (aktiviert), dann wird "TBL_WRD" ausgeführt. Da in diesem Beispiel E_TYPE = 4 ist, wird ein Datenwort, das in der Tabelle in dem Eintrag gespeichert wird, auf den der Parameter SRC zeigt, in den Eintrag kopiert, der von dem Parameter DEST angegeben wird. Der Wert von INDX zeigt auf den Eintrag in der Tabelle, der kopiert werden soll. Nach der erfolgreichen Ausführung von "TBL_WRD" wird der Wert von INDX automatisch um einen Eintrag erhöht. Enthält der Parameter INDX nicht den letzten Tabelleneintrag, wenn "TBL_WRD" aufgerufen wird, dann wird der Ausgang am Parameter ENO nach der Bearbeitung auf "1" gesetzt.

Wenn "TBL_WRD" fehlerfrei ausgeführt wird, dann werden die Signalzustände von ENO auf "1" und RET_VAL auf den Wert W#16#0000 gesetzt.

Vor der Bearbeitung:

SRC (Tabellenlänge)

DBW0 = W#16#0004

DBW2 = W#16#2000

DBW4 = W#16#3000

DBW6 = W#16#4000

DBW8 = W#16#5000

INDX

MW1 = W#16#0001

DEST

DBW20 = W#16#0000

Vor der Bearbeitung:

INDX

MW1 = W#16#0002

DEST

DBW20 = W#16#2000