-> Hier kostenlos registrieren
Hallo Zusammen,
ich muss nach vielen Jahren wieder eine SPS programmieren (sonst nutze ich eher LabView, Matlab).
Meine Aufgabe besteht darin, Daten in einen RingPuffer zu schreiben und zyklisch in eine CSV zu schreiben.
Probleme habe ich vorallem bei den RingPuffer. Probiert habe ich FB_MemRingBuffer und FB_MemRingBufferEx.
Mit beiden Funktionen kann ich in einen Puffer speichern und auch die wieder (teilweise) auslesen.
Was ich aber nicht verstehe ist folgendes:
1. Die beiden Funktionsblöcke funktionieren nicht als Ringpuffer, d.h. wenn die Größe des Puffers überschritten ist, schreibt es nicht am Anfang weiter (überschreibt somit nicht die ältesten Werte).
2. Ich erstelle meinen Puffer: ARRAY[1..10] OF INT; Danach schreibe ich 10 Integer Werte rein (1..10) --> im Array steht jetzt [2,0,1,2,0,2,2,0,3,0]; Die Funktion gibt einen Fehler zurück und wenn ich die Werte beginnend beim ältesten auslese, erhalt ich nur 3 Werte;
Beides verstehe ich nicht. In der Dokumentation steht auch nichts.
Hat jemand von euch Erfahrung damit? Sicher könnte ich den Puffer deutlich vergrößern, aber ist das sinnvoll?
Vielen Dank für Eure Hilfe.
EffEff
ich muss nach vielen Jahren wieder eine SPS programmieren (sonst nutze ich eher LabView, Matlab).
Meine Aufgabe besteht darin, Daten in einen RingPuffer zu schreiben und zyklisch in eine CSV zu schreiben.
Probleme habe ich vorallem bei den RingPuffer. Probiert habe ich FB_MemRingBuffer und FB_MemRingBufferEx.
Mit beiden Funktionen kann ich in einen Puffer speichern und auch die wieder (teilweise) auslesen.
Was ich aber nicht verstehe ist folgendes:
1. Die beiden Funktionsblöcke funktionieren nicht als Ringpuffer, d.h. wenn die Größe des Puffers überschritten ist, schreibt es nicht am Anfang weiter (überschreibt somit nicht die ältesten Werte).
2. Ich erstelle meinen Puffer: ARRAY[1..10] OF INT; Danach schreibe ich 10 Integer Werte rein (1..10) --> im Array steht jetzt [2,0,1,2,0,2,2,0,3,0]; Die Funktion gibt einen Fehler zurück und wenn ich die Werte beginnend beim ältesten auslese, erhalt ich nur 3 Werte;
Beides verstehe ich nicht. In der Dokumentation steht auch nichts.
Hat jemand von euch Erfahrung damit? Sicher könnte ich den Puffer deutlich vergrößern, aber ist das sinnvoll?
Vielen Dank für Eure Hilfe.
EffEff