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 |