Guten Tag,
Ich habe ein Histogramm programmiert, dass mV Werte anzeigt.
Dies hab ich mit einem ARRAY hinbekommen.
Nun will ich aber bei drücken eines Tasters das Histogramm wieder löschen, bzw. die Werte im Array löschen oder auf 0 setzen.
Ich habe bereits herausgefunden wie ich einen enzelnen Wert des Arrays mit 0 überschreiben kann, würde jedoch gerne den gesammten Array überschreiben, da ich sonst 200 zeilen Bräuchte.
Der Code sieht wie folgt aus:
PROGRAM Histogramm1PRG
VAR
Timer01: TON;
tMessZeit : TIME :=t#2s; (*Zeitabstand zwischen den messungen*)
arHistogrammWerteFortlaufend : ARRAY [0..maxHistogrammWerte] OF REAL; (*Array für die Anzeige im fortlaufendes Histogramm*)
iX : INT; (*Laufvariabel für FOR Schleiffe*)
iActualWert : REAL; (*zu Speichernder Wert*)
iZaehler : INT;
END_VAR
VAR CONSTANT
maxHistogrammWerte : WORD := 200; (*Anzaht Messwerte welche gespeichert werden*)
END_VAR
(*werte auf 0 setzen*)
IF x_allgemeinstart THEN
arHistogrammWerteFortlaufend[5]:=0;
END_IF
(*Timer zum Speichern der Messwerte*)
Timer01(
IN := (NOT Timer01.Q),
PT := tMessZeit );
(*Zuweisen des Messwetes*)
iACtualWert:= rmVgefiltert1VISU;
(*Wenn der Timer01 beim Anschluss Q eine 1 hat, wird der Messwert im Array geschoben.*)
IF Timer01.Q AND xkalibrierung_aktiv THEN
(*Schieben der Werte im Array*)
FOR iX :=0 TO maxHistogrammWerte-1 DO
arHistogrammWerteFortlaufend[iX]:=arHistogrammWerteFortlaufend[iX+1];
END_FOR
(*Speichern des aktuellen Messwertes*)
arHistogrammWerteFortlaufend[maxHistogrammWerte]:=rmVgefiltert1visu;
END_IF
Ich habe ein Histogramm programmiert, dass mV Werte anzeigt.
Dies hab ich mit einem ARRAY hinbekommen.
Nun will ich aber bei drücken eines Tasters das Histogramm wieder löschen, bzw. die Werte im Array löschen oder auf 0 setzen.
Ich habe bereits herausgefunden wie ich einen enzelnen Wert des Arrays mit 0 überschreiben kann, würde jedoch gerne den gesammten Array überschreiben, da ich sonst 200 zeilen Bräuchte.
Der Code sieht wie folgt aus:
PROGRAM Histogramm1PRG
VAR
Timer01: TON;
tMessZeit : TIME :=t#2s; (*Zeitabstand zwischen den messungen*)
arHistogrammWerteFortlaufend : ARRAY [0..maxHistogrammWerte] OF REAL; (*Array für die Anzeige im fortlaufendes Histogramm*)
iX : INT; (*Laufvariabel für FOR Schleiffe*)
iActualWert : REAL; (*zu Speichernder Wert*)
iZaehler : INT;
END_VAR
VAR CONSTANT
maxHistogrammWerte : WORD := 200; (*Anzaht Messwerte welche gespeichert werden*)
END_VAR
(*werte auf 0 setzen*)
IF x_allgemeinstart THEN
arHistogrammWerteFortlaufend[5]:=0;
END_IF
(*Timer zum Speichern der Messwerte*)
Timer01(
IN := (NOT Timer01.Q),
PT := tMessZeit );
(*Zuweisen des Messwetes*)
iACtualWert:= rmVgefiltert1VISU;
(*Wenn der Timer01 beim Anschluss Q eine 1 hat, wird der Messwert im Array geschoben.*)
IF Timer01.Q AND xkalibrierung_aktiv THEN
(*Schieben der Werte im Array*)
FOR iX :=0 TO maxHistogrammWerte-1 DO
arHistogrammWerteFortlaufend[iX]:=arHistogrammWerteFortlaufend[iX+1];
END_FOR
(*Speichern des aktuellen Messwertes*)
arHistogrammWerteFortlaufend[maxHistogrammWerte]:=rmVgefiltert1visu;
END_IF