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:
|
|
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 |