S7-200 Systemhandbuch
Beispiel: Erstellen einer Tabelle
Das folgende Programm erstellt eine Tabelle mit 20 Einträgen. Die erste Adresse in der Tabelle gibt die Länge der Tabelle
an (in diesem Fall 20 Einträge). Die zweite Adresse zeigt die aktuelle Anzahl der Einträge in der Tabelle an. Die anderen
Adressen enthalten die Einträge. Eine Tabelle kann maximal 100 Einträge enthalten. Darin eingeschlossen sind nicht die
Parameter für die maximale Länge der Tabelle und die tatsächliche Anzahl der Einträge (hier VW0 und VW2). Die
tatsächliche Anzahl der Einträge in der Tabelle (hier VW2) wird von der CPU automatisch bei jedem Befehl erhöht bzw.
verringert.
Bevor Sie mit einer Tabelle arbeiten, müssen Sie die maximale Anzahl Einträge in der Tabelle zuordnen. Ansonsten
können Sie keine Einträge in die Tabelle eingeben. Stellen Sie außerdem sicher, dass alle Lese- und Schreibbefehle über
Flanken aktiviert werden.
Zum Durchsuchen der Tabelle muss der Index (VW106) vor Ausführen der Suche auf 0 gesetzt werden. Wird eine
Entsprechung gefunden, gibt der Index die Nummer des Tabelleneintrags an. Wird jedoch keine Entsprechung gefunden,
gibt der Index die aktuelle Eintragszahl der Tabelle (VW2) an.
6
196
Netzwerk 1
//Tabelle mit 20 Einträgen mit Beginn an
// Adresse 4 erstellen.
//1. Im ersten Zyklus maximale Länge der
//Tabelle definieren.
LD
SM0.1
MOVW
+20, VW0
Netzwerk 2
//Tabelle mit Eingang E0.0 zurücksetzen.
//Bei steigender Flanke an E0.0,
//Adressen ab VW2 mit "+0" belegen.
LD
E0.0
EU
FILL
+0, VW2, 21
Netzwerk 3
//Wert mit Eingang E0.1 in Tabelle schrei
//ben. Bei steigender Flanke an E0.1,
//Wert aus Adresse VW100 in Tabelle ko
//pieren.
LD
E0.1
EU
ATT
VW100, VW0
Netzwerk 4
//Ersten Tabellenwert mit E0.2 lesen.
//Letzten Tabellenwert in VW102 übertra
//gen. Dadurch wird die Anzahl der
// Einträge verringert.
//Bei steigender Flanke an E0.2,
//letzten Tabellenwert in VW102 übertragen.
LD
E0.2
EU
LIFO
VW0, VW102
Netzwerk 5
//Letzten Tabellenwert mit E0.3 lesen.
//Ersten Tabellenwert in VW102 übertragen.
//Dadurch wird die Anzahl der Einträge
//verringert.
//Bei steigender Flanke an E0.0,
//ersten Tabellenwert in VW104 übertragen.
LD
E0.3
EU
FIFO
VW0, VW104
Netzwerk 6
//Tabelle nach erster Adresse durchsuchen,
//die den Wert 10 enthält.
//1. Bei steigender Flanke an E0.4,
//
Pointer auf Index zurücksetzen.
//2. Tabelleneintrag suchen, der gleich 10
//ist.
LD
E0.4
EU
MOVW
+0, VW106
FND=
VW2, +10, VW106