OSCAT Forum

network.lib => BECKHOFF => Thema gestartet von: Link5789 am 26. Oktober 2016, 12:37:59

Titel: DLOG_STORE_FILE_CSV - Anzahl Messwerte
Beitrag von: Link5789 am 26. Oktober 2016, 12:37:59
Hallo OSCAT Forum,
ich muss mit einer Beckhoff-Steuerung (CX8090) in einem Privathaushalt Energiedaten (elektrisch/thermisch) sammeln und am Ende als csv-Datei für eine anschließende Auswertung zur Verfügung stellen. In zwei von drei derzeitigen Testhaushalten funktioniert dies auch fehlerfrei.

In einem Haushalt habe ich ein Problem beim Erstellen der csv-Dateien. Und zwar verwende ich hierfür die DLOG-Bausteine aus der Beckhoff_network_135 Bibliothek. Den gesamten Schreibvorgang lasse ich in einem eigenen Task ausführen, welcher im 100ms Intervall aufgerufen wird. Jede Minute lasse ich meinen Satz an Messdaten in die Datei schreiben. Je Tag wird eine Datei bei Tageswechsel erstellt (Bsp. Dateiname #B#D#H_H1.csv).

Jetzt habe ich in einem Haushalt den Effekt, dass während des Tages mein Programm die aktuelle Datei abbricht und anschließend eine neue Datei erstellt. Eigentlich sollte dies nur bei Tageswechsel durch den geänderten Dateiname ausgelöst werden. Da sich der Dateiname aber bei dem nicht geändert hat, wird die alte Datei überschrieben und ein Teil meiner Messdaten geht verloren. Dieser Fehler tritt unregelmäßig auf und ich konnte die Ursache noch nicht feststellen. Jedoch tritt diese Fehler in zwei weiteren Haushalten, bei identischen Programaufbau, nicht auf. Dort habe ich seit ca. zwei Monaten eine durchgehende / fehlerfreie Erfassung aller Messwerte.

Ich vermute, dass dies an der Anzahl an Messwerten liegt, welche ich in die csv-Datei schreibe bzw. am Schreibintervall. In dem nicht funktionierenden Haushalt sind dies 116 Messwerte, welche je Minute geschrieben werden. In den anderen Haushalten nur ca. 70.

Hat jemand schon mal eine ähnliche Erfahrung mit den DLOG-Bausteinen gemacht?
Bzw. kann es sein, dass die DLOG-Bausteine ab einer bestimmten Anzahl an zu schreibenden Werten "überlastet" sind?

Für eure Hilfe schon mal jetzt DANKE
Titel: Re: DLOG_STORE_FILE_CSV - Anzahl Messwerte
Beitrag von: peewit am 26. Oktober 2016, 13:27:38
hallo

ein anhaltspunkt ist das du in der fehlerhaften applikation mehr datenfelder aufzeichnest

der datenlogger verwendet intern einen zwischenspeicher "UNI_CIRCULAR_BUFFER_DATA"
der kann natürlich auch mal überlaufen bzw. überlastetet sein was dann zu datenverlust führen kann

in der doku der network.lib im kapitel 4.25 ist die datensatruktur erklärt

du solltest in der applikation online mal diverse werte in der datenstruktur kontrollieren

BUF_USED                   Aktueller Füllstand (0-100 %)
BUF_USED_MAX          Maximal erreichter Füllstand
BUF_DATA_CNT           Anzahl Schreibvorgänge
BUF_DATA_LOST         Anzahl Schreibvorgänge mit Datenverlust


möglich ist also eine überlast aber auch ein programmierfehler deinerseits der sich halt nur unter bestimmten bedingungen zeigt

natürlich auch ein fehler in der lib aber........
bei meinen tests konnte ich dieses verhalten aber noch nie sehen
Titel: Re: DLOG_STORE_FILE_CSV - Anzahl Messwerte
Beitrag von: Link5789 am 27. Oktober 2016, 11:16:26
Danke, für die schnelle Antwort!!

Ich werde mein Programm mal auf die genannten Parameter hin untersuchen
Titel: Re: DLOG_STORE_FILE_CSV - Anzahl Messwerte
Beitrag von: peewit am 27. Oktober 2016, 12:25:23
übrigens

ich habe den daten logger so konzipiert das dieser nicht viel zykluszeit braucht bzw. das ganze in vielen einzelzyklus abarbeitet

wenn du den datenlogger nur mit 100ms Intervall aufrufst dann erzeugst du ein nadelöhr und verschlimmerst das ganze noch

den datenlogger im normalen task laufen lassen