Step 7 Ringpuffer mit SCL

SKNGO

Level-2
Beiträge
11
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo SCL Freunde

bin gerade dabei ein Ringpuffer in SCL zu schreiben.

Habe ein paar schwierigkeiten. Vieleicht könnt ihr mir ein paar Anregungen geben. Der Ringpuffer soll Realwerte hintereinander wegschreiben in einem DB inein.

Hier mal ein Auszug von meinem Code ist aber noch nicht fertig:


FOR Index := Anfang TO Ende BY Schrittweite DO

IF Index < 196 THEN

******Hier fehlt jetzt noch der befehl an dem mein Realwert an die stelle des Schreibzeigers kopiert werden soll!
(Bitte um eure Hilfe)

Schreibzeiger:= Schreibzeiger + 4;



END_IF;

IF Index > 196 THEN

Schreibzeiger:= 0;


===================================


Danke füreure Hilfe :)
 
Also wenn das ein Ringpuffer werden soll, dann brauchst Du ziemlich sicher keine FOR-Schleife.
Und so schreibt man in den Puffer (BUFSIZE soll die Anzahl Elemente des Puffer-Arrays sein):
Code:
//Schreibzeiger auf nächsten Eintrag setzen:
Schreibzeiger := (Schreibzeiger + 1) MOD BUFSIZE;

//Messwert in den Puffer schreiben:
Puffer[Schreibzeiger] := Messwert;

PS: Für den Code bitte die CODE-Tags benutzen (der #-Button).

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
dazu habe ich ein paar Fragen :

1. wann willst du wegschreiben ? Doch bestimmt auf ein Ereignis hin ...
2. warum ein externer DB ? Besser wäre du erstellst einen FB und speicherst die Werte in deiner Instanz ...
3. was willst du mit der Schleife bzw. dem Schreibzeiger ?
4. Ringpuffer heißt : wenn du in die letzte Zelle deines Datenbereichs geschrieben hast überschreibst du ab da die vorderen Werte wieder. Ist das so von dir gemeint ?

Gruß
Larry
 
Zurück
Oben