learning by doing
Level-2
- Beiträge
- 16
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Moin zusammen,
Vorab ich bin neu, Verzeiht mir Fehler.
Ich bin recht neu in SPS Programierung und komme mit FUP gut klar, nun soll ich aber eine Anlage bauen, in der mit Analogen werten gerrechnet und überwacht wird.
Verbaut sind:
CPU S7-300 317-2 PN/DP
Analogmodul AI 8x16BIT (331-NF700-0AB0)
Nun zu meinem Problem:
Ich muss an einer Stelle des Programms einen Messwert aufnehmen, da dieser messwert aber schwankt, wollen wir einen Mittelwert bilden aus 5 Messdaten.
Das ganze Wollte ich über SCL machen. Programm funktoniert auch, aber nicht sobald ich meine Sensordaten einlese, dann werden mir im Array und als ergeniss überall die Selben Messdaten angezeigt. Ich vermute, dass mein Sensor sich langsamer aktulisiert, als die Schleife durchläuft. Mein Sensor hat eine aktualisierungsrate von 5ms.
Nun zur Frage, gibt es eine möglichkeit eine Wartezeit einzubauen, mit der ich der SPS sage, greife alle 0,5s einen wert vom Sensor ab?
Hier mein Akteller Code:
IF "Merker_DB"."Mittelwert erfassen" THEN
#Summe_Temp := 0.0;
FOR #zahler := 0 TO 4 DO
"Mess-Rechen Daten".Messwerte[#zahler] := "Mess-Rechen Daten".Differenzdruck;
#Summe_Temp := #Summe_Temp + #Messwerte[#zahler];
END_FOR;
#Mittelwert := #Summe_Temp / 5;
END_IF;
Schonmal im Vorraus Danke!!!
Gruß Lukas
Vorab ich bin neu, Verzeiht mir Fehler.
Ich bin recht neu in SPS Programierung und komme mit FUP gut klar, nun soll ich aber eine Anlage bauen, in der mit Analogen werten gerrechnet und überwacht wird.
Verbaut sind:
CPU S7-300 317-2 PN/DP
Analogmodul AI 8x16BIT (331-NF700-0AB0)
Nun zu meinem Problem:
Ich muss an einer Stelle des Programms einen Messwert aufnehmen, da dieser messwert aber schwankt, wollen wir einen Mittelwert bilden aus 5 Messdaten.
Das ganze Wollte ich über SCL machen. Programm funktoniert auch, aber nicht sobald ich meine Sensordaten einlese, dann werden mir im Array und als ergeniss überall die Selben Messdaten angezeigt. Ich vermute, dass mein Sensor sich langsamer aktulisiert, als die Schleife durchläuft. Mein Sensor hat eine aktualisierungsrate von 5ms.
Nun zur Frage, gibt es eine möglichkeit eine Wartezeit einzubauen, mit der ich der SPS sage, greife alle 0,5s einen wert vom Sensor ab?
Hier mein Akteller Code:
IF "Merker_DB"."Mittelwert erfassen" THEN
#Summe_Temp := 0.0;
FOR #zahler := 0 TO 4 DO
"Mess-Rechen Daten".Messwerte[#zahler] := "Mess-Rechen Daten".Differenzdruck;
#Summe_Temp := #Summe_Temp + #Messwerte[#zahler];
END_FOR;
#Mittelwert := #Summe_Temp / 5;
END_IF;
Schonmal im Vorraus Danke!!!
Gruß Lukas