WRD_TBL: Wert logisch mit Tabellenelement verknüpfen und speichern (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
WRD_TBL: Wert logisch mit Tabellenelement verknüpfen und speichern

Beschreibung

Die Anweisung führt die angegebene Operation (Parameter CMD) mit dem Quellelement und dem Eintrag der Tabelle an dem Versatz aus, der von dem Parameter INDX angegeben wird. Die Operation wird nur ausgeführt, solange der Parameter INDX kleiner ist als die Länge der Tabelle, die in dem ersten Wort in der Tabelle gespeichert wird.

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

  • Ist der Parameter E_TYPE vom Datentyp REAL, dann kann es sich bei dem Parameter CMD nur um "Übertragen" handeln.

    Hinweis

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

Parameter

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

Parameter

Deklaration

Datentyp

Speicherbereich

Beschreibung

SRC

Input

*Pointer

E, A, M, D

Zeigt auf die Quelldaten

TABLE

Input

*Pointer

E, A, M, D

Zeigt auf den Beginn der Tabelle.

CMD

Input

BYTE

E, A, M, D, L, P

Zeigt auf die Operation, die ausgeführt werden soll. Folgende Operationen sind gültig:

B#16#0E = Übertragen

B#16#07 = UND-Verknüpfung

B#16#08 = ODER-Verknüpfung

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

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 am Parameter INDX die Nummer des letzten Tabelleneintrags enthält.

INDX

InOut

WORD

E, A, M, D, L

Nummer des Eintrags, mit dem die Operation ausgeführt werden soll.

* 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 "WRD_TBL" 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

Parameter CMD oder Parameter E_TYPE ist ungültig bzw. Parameter CMD und Parameter E_TYPE stimmen nicht überein.

W#16#0009

Index liegt außerhalb des Tabellenbereichs.

Beispiel (KOP)

Wenn der Signalzustand am Eingang E 0.0 = 1 ist (aktiviert), dann wird die Anweisung "WRD_TBL" ausgeführt. Da der Parameter E_TYPE in diesem Beispiel "6" ist, wird das Doppelwort der Daten in der Tabelle an der Adresse gespeichert, auf die der Parameter TABLE zeigt. Das erste Wort der Tabelle zeigt an, dass die Tabelle drei Doppelwörter enthält. Der Wert von INDX zeigt auf den Tabelleneintrag, der bearbeitet werden soll. Da CMD = 8 ist, wird eine ODER-Verknüpfung mit dem Wert ausgeführt, auf den der Parameter INDX zeigt. Weil INDX = 2 ist, wird das zweite Doppelwort (66665544) mit dem Wert, auf den der Parameter SRC (11111111) zeigt, durch ODER verknüpft. Nach der Bearbeitung der Operation wird das Ergebnis der ODER-Verknüpfung (77775555) zurück in die Tabelle geschrieben, und der Wert von INDX wird automatisch um einen Eintrag erhöht. Zeigt der Parameter INDX auf den letzten Eintrag einer Tabelle, dann wird das Bit des Ausgangs "A" nach der Bearbeitung der Operation auf "0" gesetzt. In diesem Beispiel enthält der Wert von INDX nicht den letzten Eintrag in dieser Tabelle, deshalb ist der Ausgang "A" nach der Bearbeitung "1".

Wenn die Anweisung "WRD_TBL" fehlerfrei ausgeführt wird, 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:

SRC

DBD20 = DW#16#11111111

TABLE (Tabellenlänge)

DBW0 = W#16#0003

DBD2 = DW#16#99998877

DBD6 = DW#16#66665544

DBD10 = DW#16#33332222

INDX

MW1 = W#16#0002

Nach der Bearbeitung:

TABLE (Tabellenlänge)

DBW0 = W#16#0003

DBD2 = DW#16#99998877

DBD6 = DW#16#77775555

DBD10 = DW#16#33332222

INDX

MW1 = W#16#0003