Quantcast
Channel: SPS-Forum - Automatisierung und Elektrotechnik
Viewing all articles
Browse latest Browse all 47324

Step 7 Messwerte in einen DB automatisch einfügen (Problem mit Array)

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

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]

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:

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

Viewing all articles
Browse latest Browse all 47324


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>