-> Hier kostenlos registrieren
Hallo zusammen,
ich möchte gerne Messwerte auf eine SD-Karte schreiben, welche in eine Wago-SPS vom Typ 750-880 gesteckt wird. Hierfür verwende ich bereits einen Funktionsblock „FbDatalogger“, welcher aus einer Beispielanwendung stammt, welche auf der Webseite des Herstellers Wago veröffentlicht wurde. Der verwendete Funktionsblock bietet als kleinste (schnellste) Einstellung das Loggen im Sekundentakt an.
Da ich mehr Messwerte pro Sekunde für meine Analysezwecke benötige, wurde die "Beschaltung" des Bausteins von mir derart angepasst, sodass pro Sekunde 5 Messwerte von einer Wago-Leistungsmessklemme vom Typ 750-494 in einem Puffer-Array zwischengespeichert und nach einer Sekunde ausgegeben werden sollen.
Zur Erfassung von 5 Messwerten pro Sekunde ist demnach ein Takt von 200ms notwendig. Dieser wird von einem Pulsgeber aus der OSCAT Standart-Bibliothek mit dem Namen "CLK_PRG" erzeugt. Der Baustein CLK_PRG erzeugt Taktimpulse mit einer programmierbaren Periodendauer. Die Ausgangsimpulse sind jeweils nur einen SPS Zyklus aktiv.
Hiervon wird die steigende Flanke des Taktes mit dem Standart-Baustein "R_TRIG" erkannt, welcher eine Zählvariable von 1 bis 5 hochzählt (und bei 5 wieder auf 1 zurückgesetzt wird).
Dieses Vorgehen funktioniert soweit auch.
In der auf der SD-Karte geschriebenen csv-Datei ist jedoch in unregelmäßigen Abständen eine Abweichung bei den notierten Zeitpunkten erkennbar. Es wird oft in der geloggten Zeit eine Sekunde übersprungen. Siehe hierzu die angehängte csv-Datei.
Meine Fragen hierzu sind nun:
- Woher kommt diese Zeitverzögerung?
- Gibt es vielleicht eine einfachere Möglichkeit Messwerte von etwa 15 verschiedenen Messgrößen (Strom, Spannung, Wirkleistung,...) mittels eines Programmes auf der internen SD-Karte zu speichern? Im Idealfall wären 10 erfasste Messreihen (Zeilen in einer csv-Datei) pro Sekunde wünschenswert.
Im Anhang habe ich das Problem der csv-Datei als Bild skizziert.
Den Programmausschnitt der Messwerterfassung habe ich als Projektdatei angehangen. (Das "echte" Programm beinhaltet noch andere "Unterprogramme", die andere Funktionen übernehmen.)
Ich hoffe jemand kann mir bei meinen Programm helfen.
Vielen Dank schonmal dafür
Anhang anzeigen Programmauszug.zip
ich möchte gerne Messwerte auf eine SD-Karte schreiben, welche in eine Wago-SPS vom Typ 750-880 gesteckt wird. Hierfür verwende ich bereits einen Funktionsblock „FbDatalogger“, welcher aus einer Beispielanwendung stammt, welche auf der Webseite des Herstellers Wago veröffentlicht wurde. Der verwendete Funktionsblock bietet als kleinste (schnellste) Einstellung das Loggen im Sekundentakt an.
Da ich mehr Messwerte pro Sekunde für meine Analysezwecke benötige, wurde die "Beschaltung" des Bausteins von mir derart angepasst, sodass pro Sekunde 5 Messwerte von einer Wago-Leistungsmessklemme vom Typ 750-494 in einem Puffer-Array zwischengespeichert und nach einer Sekunde ausgegeben werden sollen.
Zur Erfassung von 5 Messwerten pro Sekunde ist demnach ein Takt von 200ms notwendig. Dieser wird von einem Pulsgeber aus der OSCAT Standart-Bibliothek mit dem Namen "CLK_PRG" erzeugt. Der Baustein CLK_PRG erzeugt Taktimpulse mit einer programmierbaren Periodendauer. Die Ausgangsimpulse sind jeweils nur einen SPS Zyklus aktiv.
Hiervon wird die steigende Flanke des Taktes mit dem Standart-Baustein "R_TRIG" erkannt, welcher eine Zählvariable von 1 bis 5 hochzählt (und bei 5 wieder auf 1 zurückgesetzt wird).
Dieses Vorgehen funktioniert soweit auch.
In der auf der SD-Karte geschriebenen csv-Datei ist jedoch in unregelmäßigen Abständen eine Abweichung bei den notierten Zeitpunkten erkennbar. Es wird oft in der geloggten Zeit eine Sekunde übersprungen. Siehe hierzu die angehängte csv-Datei.
Meine Fragen hierzu sind nun:
- Woher kommt diese Zeitverzögerung?
- Gibt es vielleicht eine einfachere Möglichkeit Messwerte von etwa 15 verschiedenen Messgrößen (Strom, Spannung, Wirkleistung,...) mittels eines Programmes auf der internen SD-Karte zu speichern? Im Idealfall wären 10 erfasste Messreihen (Zeilen in einer csv-Datei) pro Sekunde wünschenswert.
Im Anhang habe ich das Problem der csv-Datei als Bild skizziert.
Den Programmausschnitt der Messwerterfassung habe ich als Projektdatei angehangen. (Das "echte" Programm beinhaltet noch andere "Unterprogramme", die andere Funktionen übernehmen.)
Ich hoffe jemand kann mir bei meinen Programm helfen.
Vielen Dank schonmal dafür

Anhang anzeigen Programmauszug.zip
