Daten Logger / CSV speichern

Begonnen von franklin, 28. April 2011, 14:48:48

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 2 Gäste betrachten dieses Thema.

peewit

trendschreiber -> sollte deine visu machen
---
file geöffnet ist ansich kein problem
das du hier ein netzdrive nutzt, ist ja nicht standard
---
4000 byte hat nur der interne sammelbuffer bis wieder geschrieben wird.
die datei kann beliebig lang werden, solange das medium nicht voll ist...
---
wann wird angehängt und wann nicht
die gefahr besteht dass man etwas anhängt obwohl es nicht von gleicher art ist.
wenn z.b. programm geändert wurde, dann sind die paramater mitunter anders, dann entsteht datenmüll

beispiel:
es gibt für jede stunde eine datei
nach 24h werden die bestehenden dateien wieder mit neuen daten überschrieben wenn man diese nicht löscht, werden sie immer groesser und die stundeneinträge von verschiedenen tagen vermischen sich

alles nicht so einfach ....

---
ich werde mal drüber nachdenken....

b.b.

super danke!

ich finde die Lösung mit dem externen Netzlaufwerk eigentlich recht gut. So hat man die protokollierten Daten relativ einfach auf einem (in meinem Fall) RAID Laufwerk und nicht mehr am Controller. Eine Verwendung dieser Daten durch Dritt-SW wird dadurch einfacher

Keltu

Hallo alle zusammen.

Ich habe mal eine Frage zu dem Datenlogger.
Ich verwende eine Wago 750-880 mit einer SD-Karte und habe das Problem, dass er mir nicht zuverlässig einw Log Datei erstellt.....
Was ich mittlerweile herausgefunden habe, ist dass es mit dem Namen, den ich der Datei gebe zutun hat.
So erstellt er mit 's:\ordner\#R.csv' alle minute eine neue Logdatei und in der stehen auch die Werte, die er loggen soll.
Mache ich genau das gleiche mit 's:\ordner\#D.csv', wo er jeden Monat eine neue Datei erstellen soll, dann erstellt er nur die Datei sie bleibt aber leer.
Auch wenn ich keinen Bezug auf das Datum nehme z.B. 'temp' geht aber 'temperatur' nicht.
Gibt es ein paar handfeste Regeln, nach denen die Namen vergeben werden müssen?

mfg Keltu

b.b.

Antwort steht ein bisschen weiter oben:

Die Steuerung erstellt zwar die Datei, jedoch wird der Inhalt erst geschrieben, wenn der Puffer (4000Bytes) in der Steuerung voll ist, oder eine neue Datei geschrieben werden muss. (-> Dateizeitraum kürzer als Puffer)

Bitte mich zu korrigieren, sollte das nicht stimmen.

Keltu

Das ist, denke ich nicht das Problem, im Baustein des Loggers ist eine .idx, von der ich sicher bin, dass es der Puffer ist.
Dieser setzt sich jedesmal bei erreichen der 4000 auf null zurück und wenn es funktioniert
werden 4kb mehr auf der SD-Karte belegt. Diesen Puffer fülle ich mit 4 Temperaturen, die alle 0,5 sekunden
durch manuelles Auslösen an trig_m geschrieben werden.
Dadurch ist er ca. alle 30sec voll und sollte Schreiben. Tut es aber nicht, wenn ich z.B. folgenden Namen vergen möchte:

's:\ordner\#A-#D-#H.csv'

und ich kann mir einfach nicht erklären warum es wenn ich jede Minute einen neuen Namen vergebe funktioniert.

Schließlich erstellt er mir ja auch jede Datei mit anderem Namen er schreibt nur nicht hinein.

Gibt es auf der Wago eine Maximallänge für den Namen oder darf man nicht zwei variablen im Namen haben ?

Ich verstehe es langsam nicht mehr .....

peewit

hallo

stelle mal dein testprojekt online, dann schaue ich es mir an
(ein möglichst verkürztes projekt, bei dem das problem trotzdem auftritt)

dann kann ich mir viel zeit ersparen, und sehe auch gleich ob etwas prinzipiell falsch ist



Keltu

Super danke für die Hilfe.

Welche datei ist eigentlich wirklich wichtig?
Ich habe mal alle angehängt, die wie das Projekt heißen.

mfg Keltu

[gelöscht durch Administrator]

peewit

#22
hallo

ich habe es nochmals probiert auf win-xp - codesys sp plcwinnt v2.4

also prinzipiell kann ich kein problem feststellen.

ich habe sogar einen noch längeren pfad verwendet
somit würde ich sagen das es kein prinzipielles problem der bibliothek ist, sondern
nur in zusammenhang mit deiner sps auftritt

lass mal den pfad überhaupt weg, dann sollte die datei im standardverzeichnis auf der sps landen



es kann aber sein das es bei dir zu irgendwelchen filesystem fehlern kommt
leider sind bei der network.1.12 beim baustein dlog_store_file_csv kein fehler anzeigen ausgeführt

das habe ich in der neuen network.1.20(beta).lib geändert

verwende mal diese bibliothek, vielleicht siehst du auch dann irgendwelchen dateifehler
achtung auch bei den dlog_* bausteinen gibt einen neuen parameter "DELTA"
den kannst du aber freilassen.


-------------
du hast in deinem beispiel einen TRIG_T = 1 und einem TRIG_M von 500ms vorgegeben

das verursacht pro sekunde 3 einträge

TRIG_T = jede sekunde einen eintrag
TRIG_M = läuft asynchron zur uhrzeit-sekunde und löst somit noch extra 2 x pro sekunde eine aufzeichnung aus

ist das absichtlich ?
da es bei mir problemlos funktioniert, fällt das einem sofort im datenfile auf
-------------


prinzipielles:

immer wenn daten gesammelt werden ändert sich csv1.idx
sobald idx in den bereich von > 3900 kommt wird dieser wieder auf 0 gestellt und die daten werden geschrieben
dann müsste bei csv1.fsd.file_size sich die datenmenge erhöhen
csv1.fsd.file_size sind die tatsächlich in die datei geschriebenen bytes !

es kann aber sein das du im filesystem diese daten nicht sofort siehst
da die datei die gesamte zeit geöffnet bleibt, werden diese daten wiederum vom betriebsystem auch eventuell wieder
gebuffert.

wenn du beim dlog_store_file_csv baustein das enable auf FALSE stellt, dann wird auf jedenfall die datei
geschlossen und die aufzeichnung beendet, und die daten sollten im filesystem dann wirklich vorhanden sein


kontrolliere das mal

es wäre nicht schlecht wenn du an deiner sps die gleiche bilschirmhardcopy machst wie ich, dann kann ich eventuell
sehen was bei dir nicht klappt.



[gelöscht durch Administrator]