Hallo liebe Experten,
ich muss für eine Projektarbeit folgende Aufgabe realisieren:
Eine FC 1 liest Messdaten, sagen wir eine Temperatur, alle 2 Sekunden aus.
Diese Messdaten sollen in einem DB 1 ("db_MesswertSpeicher") als Array[1..50] im INT-Format abgespeichert werden.
Meine AWL-Kentnisse sind momentan leider noch nicht auf dem besten Stand, deshalb hoffe ich auf eure Hilfe.
Ich weiß, dass ich Daten grundsätzlich folgendermaßen in ein Array schreibe:
Das Problem ist, jeder Wert (.VALUE[1]) wird dann an der Stelle [1] im Array hinterlegt. Ich suche jedoch nach einer Möglichkeit, wie ich eine
Variable in die Klammern [ ] bei "db_MesswertSpeicher".VALUE[ ] einfüge, die nach jedem Schreibvorgang in den DB immer um 1 erhöht wird.
Folgender Ansatz funktioniert in S7 leider nicht:
Meine Frage ist nun:
Welches wäre die einfachste Möglichkeit in AWL, um mein Problem zu lösen? Sprich: Wie erstelle ich eine Counter-Variable, die ich bei
"db_MesswertSpeicher".VALUE[..] einfügen kann, die immer auf die NÄCHSTE Stelle im Bereich [1..50] des Array's zugreifen kann, nachdem der letzte Wert
geschrieben wurde.
Hardware: CPU 314-2DP
Liebe Grüße
ich muss für eine Projektarbeit folgende Aufgabe realisieren:
Eine FC 1 liest Messdaten, sagen wir eine Temperatur, alle 2 Sekunden aus.
Diese Messdaten sollen in einem DB 1 ("db_MesswertSpeicher") als Array[1..50] im INT-Format abgespeichert werden.
Meine AWL-Kentnisse sind momentan leider noch nicht auf dem besten Stand, deshalb hoffe ich auf eure Hilfe.
Ich weiß, dass ich Daten grundsätzlich folgendermaßen in ein Array schreibe:
Code:
L 65 // Lade einen INT-Wert, z.B.: 65
AUF "db_MesswertSpeicher" // Rufe "db_MesswertSpeicher" auf
T "db_MesswertSpeicher".VALUE[1] // Transferiere in "db_MesswertSpeicher" an der Stelle .VALUE[1]
Variable in die Klammern [ ] bei "db_MesswertSpeicher".VALUE[ ] einfüge, die nach jedem Schreibvorgang in den DB immer um 1 erhöht wird.
Folgender Ansatz funktioniert in S7 leider nicht:
Code:
T "db_MesswertSpeicher".VALUE[#Counter] // #Counter Variable, die automatisch um 1 erhöht wird.
Meine Frage ist nun:
Welches wäre die einfachste Möglichkeit in AWL, um mein Problem zu lösen? Sprich: Wie erstelle ich eine Counter-Variable, die ich bei
"db_MesswertSpeicher".VALUE[..] einfügen kann, die immer auf die NÄCHSTE Stelle im Bereich [1..50] des Array's zugreifen kann, nachdem der letzte Wert
geschrieben wurde.
Hardware: CPU 314-2DP
Liebe Grüße