TwinCAT 3 Spannungssignal in Buffer schreiben

Sebastian89

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Liebe Community,
ich bin TwinCAT Anfänger und habe folgendes Problem:
Ich möchte ein Spannungssignal kontinuierlich in einen Buffer schreiben lassen. Wenn der Buffer gefüllt ist, sollen die neuen Werte immer an das Ende des Buffers geschrieben und die vorherigen Werte aufrutschen.
Das hier habe ich bereits:

VAR
BufferCh1 : ARRAY[0..9] OF LREAL ;
i : INT :=0 ;
localSignal : LREAL ;
END_VAR

BufferCh1 := localSignal ;
i := (i+1) MOD 10 ;

Momentan wird der Buffer ja immer wieder bei 0 beginnend neu beschrieben. Wie kann ich das für meine Anforderung erweitern?
Vielen Dank vorab.
 
Vor jedem Einspeichern die Elemente 1 bis 9 nach 0 bis 8 umspeichern, und den neuen Wert immer in Element 9 speichern. Bei Bedarf kann man die (ersten 10) Speichervorgänge mitzählen.
Bei größeren Arrays bevorzuge ich Ringspeicher, die muss man nicht umspeichern.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn ich es so mache

FOR i:=0 TO 8 DO
BufferCh1:=BufferCh1[i+1];
END_FOR
BufferCh1[9]:=localSignal;

dann sieht das Signal vom BufferCh1 (blau) ganz anders aus als das localSignal (grün).

Warum?

1704709493591.png
 
Probiere es mal so:
Code:
FOR i:= 0 TO 8 DO
    BufferCh1[i] := BufferCh1[i+1];
END_FOR ;
BufferCh1[9] := localSignal;
und setze Code besser in CODE-Tags, sonst verfälscht der Beitrags-Editor den Text.
 
Wenn ich es so mache

Code:
FOR i:=0 TO 8 DO
   BufferCh1[i]:=BufferCh1[i+1];
END_FOR
BufferCh1[9]:=localSignal;


dann sieht das Signal vom BufferCh1 (blau) ganz anders aus als das localSignal (grün).

Warum?


1704709493591.png
 
Zurück
Oben