Step 7 Meldungen in einem DB abspeichern

BOB 57

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Abend sehr geehrte Damen und Herren,

ich bin noch ein relativer Anfänger in Sachen SPS-Programmierung und habe nun folgendes Problem.
Ich soll für ein Aufgabe Meldungen in einem Datenbaustein hinterlgen.
Die Meldungen kommen als Byte an, die dann in einem DB abgespeichert werden sollen.
Zum Beispiel sollen 100 Meldungen nach einander in einem DB abgespeichert werden. Ist die 100. Meldung im DB abgespeichert, so soll
wieder von 0 an die nächsten Meldungen in den DB geschrieben werden.

Ich habe bereits einige Foren einträge dazu gelesen, dass man das über die indirekte Adressierung mit Pointern lösen kann,
jedoch habe ich dies noch nicht richtig verstanden und Umsetzung ist bis jetzt gescheitert.


Hätte da jemand ein Tipp für mich mit einem Programmbeispiel und könnte mir helfen?

Gruß
 
Eine einfache Möglichkeit wäre ein DB mit einem Array of Byte [0-99] („ErrorBuffer“) als Speicher.

Damit die neuste Meldung zu Beginn des Arrays steht, verschiebst du zuerst alle Meldungen um eines nach unten. Dies geschieht mit der FOR-Schleife.
Anschließend schreibst du auf die nun leere 0-Position des Arrays dein „InputByte“.

Code:
FOR iCounter := 99 TO 1 BY -1 DO

ErrorBuffer[iCounter] := ErrorBuffer[iCounter - 1];

END_FOR;

ErrorBuffer[0] := InputByte;

Das Ergebnis ist ein Array mit der neusten Meldung am Anfang. Wichtig dabei ist diese Funktion nur bei einer neuen Meldung aufzurufen, sonst leert sich das Array von selbst.
 
Zurück
Oben