OSCAT Forum

network.lib => Codesys 2 => Thema gestartet von: franklin am 28. April 2011, 14:48:48

Titel: Daten Logger / CSV speichern
Beitrag von: franklin am 28. April 2011, 14:48:48
hallo zusammen,
teste zur zeit die funktionalität des daten logger.
es funktioniert auch alles ganz prima.
meine frage bezieht sich auf den baustein dlog_store_file_csv.

wann werden die dateien auf den datenträger geschrieben ?
muss dazu immer der dateiname geändert werden ?
hab ich da noch einen trigger übersehen?

thx for help

frank
Titel: Re:Daten Logger / CSV speichern
Beitrag von: peewit am 28. April 2011, 20:25:39
die daten werden ab dem start in einem internen buffer zwischengespeichert und dann regelmässig in die datei geschrieben
solange die freigabe vorhanden ist, wird die datei immer grösser

stoppen kannst du es mit wegnahme der freigabe, oder durch einfaches ändern des dateinamens

in der praxis wird man einfach immer zu bestimmten zeitpunkten den dateinamen ändern

den dateinamen-wechsel kannst du aber durch das spezielle feature automatisch durchführen lassen
z.b. jede stunde eine neue datei

siehe doku

wenn du noch fragen hast, dann bitte beispiele nennen, dann kann ich dir sicherlich weiterhelfen


freut mich wenn es funktioniert , denn dann habe ich gute arbeit geleistet :-)

gruss peewit
 
Titel: Re:Daten Logger / CSV speichern
Beitrag von: franklin am 29. April 2011, 10:19:45
hallo peewit,

hut ab. es funktioniert super.

habe aber noch fragen.
mit der wegnahme der freigabe, wird der letzte inhalt des buffers nicht in die datei geschrieben.
ich würde gern die bis dahin gesammelten daten auch noch schreiben ohne den dateinamen zu ändern.
hintergrund ist der, loggen von produktionsdaten. wenn anderes produkt gewählt, dann erst neuer dateiname.
da die produktion zwischendurch aber auch gestoppt werden kann ist es nichtr schön, an dieser stelle einen neuen dateinamen zu erstellen.

kannst du mir da weiterhelfen?

gruss frank
Titel: Re:Daten Logger / CSV speichern
Beitrag von: peewit am 29. April 2011, 11:57:23
also das sollte so funktionieren...

das muss ich mir am wochenende ansehen, ob es geht bzw warum nicht....

Titel: Re:Daten Logger / CSV speichern
Beitrag von: peewit am 30. April 2011, 19:24:19
hallo franklin

ich kann dein beschriebens problem nicht nachvollziehen
bei mir funktioniert es so wie ich es konstruiert habe...

meine vorgangsweise bei DLOG_STORE_FILE_CSV

1. neuen dateinamen vorgeben
2. enable = on
3. trig_m dann x mal geflankt
4. enable = off
5. pause...
6. wiederholung der schritte 1-6

das habe ich im handbetrieb durchgespielt und kein problem finden können


jetzt bist du an der reihe, und musst mit nun mehr details zu deinem problem geben

wie sehen die datenfiles aus , wenn es nicht funktioniert ?
was passiert denn bei dir ?
wie sieht dein testprogramm aus ?

gruss peewit
Titel: Re:Daten Logger / CSV speichern
Beitrag von: peewit am 03. Mai 2011, 11:09:48
hallo franklin

ich warte auf dein demo-programm mit dem fehler !
Titel: Re:Daten Logger / CSV speichern
Beitrag von: franklin am 16. Mai 2011, 13:51:22
moin peewit,

tschuldige die späte rückmeldung.

ich habe den fehler gefunden.
bei meinem test arbeite ich mit vxworks und da kann ich den dateinamen nur 8 zeichen lang vergeben.
deshalb hat es nicht funktioniert mit dem schreiben der datei.
nachdem ich dies geändert habe funktioniert es nun genau wie von dir beschrieben.
sorry für die verwirrung.

alles ok.

gruß

franklin
Titel: Re:Daten Logger / CSV speichern
Beitrag von: peewit am 16. Mai 2011, 20:29:47
gut , danke für die rückmeldung

wenn nun alles geht, dann bin ich auch zufrieden...

Titel: Re:Daten Logger / CSV speichern
Beitrag von: b.b. am 09. Oktober 2011, 09:58:11
Ist zwar schon ein älterer Beitrag aber ich hätte passend dazu auch eine Frage.

Daten Logger funktioniert soweit super. Ich habe auf meinen CX9010 ein Laufwerk von meiner NAS gemappt und kann somit direkt auf ein Netzwerklaufwerk sichern :))

Ich habe das File tageweise und speichere alle 5 Minuten 5 Real Werte mit Header. ('#H#D#A_lueftung.csv')

Die Frage ist: Wann bzw. wie oft wird das File geschrieben?
Es sieht aus, als würde das mehrere Stunden nicht passieren.
Meine NAS macht nach 120 Minuten einen HDD Spin-down. Daher wäre es super, wenn ich das irgendwie steuern oder berechnen könnte, damit meine Platte nicht nach einem Jahr hops geht.

Danke!
Titel: Re:Daten Logger / CSV speichern
Beitrag von: peewit am 09. Oktober 2011, 10:56:29
die daten zum schreiben werden in einen 4000 bytes grossen buffer gesammelt, sobald dieser voll ist, wird alle daten in die datei geschrieben. abhängig von durchschnittlichen datensatzgroesse kannst du dir in etwa ausrechnen wann das passieren wird.

ich vermute das es bei dir so alle 1 - 2 stunden passiert

ich habe keine weiteren optionen dafür vorgesehen, aber wenn du eine gute idee hast....
was wäre für dich denn optimal ?


was passiert wenn deine platte schläft und du zugreifen willst
bekommst du eine störung (timeout) , oder funktioniert es trotzdem, weil sie schnell genug aufwacht

Titel: Re:Daten Logger / CSV speichern
Beitrag von: b.b. am 09. Oktober 2011, 12:34:59
mir ist jetzt gerade etwas anderes passiert:

das File war geschrieben von 00:00:00 bis 08:15:00
Jetzt habe ich den enable weggenommen und wieder gesetzt und das file war mit den daten von 8:20 an überschrieben...?
gibts dafür eine erklärung?
Titel: Re:Daten Logger / CSV speichern
Beitrag von: peewit am 09. Oktober 2011, 17:55:21
eine positive flanke bei enable verursacht ein löschen und neuanlegen der datei (also ein kompletter neubeginn)

ob daten geschrieben werden sollen kannst du ja über trig_m und trig_t bestimmen
und wenn du eine andere datei willst dann brauchst du nur den dateinamen wechseln

aber auch wenn nach einen dateinamen wechsel diese datei schon existiert , wird diese zuerst gelöscht


mit diesen mitteln kann man ansich alles machen...
was willst du eigentlich bezwecken mit enable off/on ?

wenn das noch nicht dein problem erklärt, kann ich dir nur weiterhelfen ,wenn du mir dein testprogramm und die "fehlerhafte" datei gibst

Titel: Re:Daten Logger / CSV speichern
Beitrag von: b.b. am 09. Oktober 2011, 20:39:06
hab den enable etwas falsch verstanden
ich dachte ich versuche den enable als "write force" zu verwenden und bin dann draufgekommen, das der das file löscht...

eigentlich passt mir das csv speichern so

ich hätte noch eine frage: kann ich die Daten, die noch nicht ins file geschrieben sind, irgendwie ordentlich (ohne Überschneidung) auslesen?
Bräuchte ich für die Visu

Danke!
Titel: Re:Daten Logger / CSV speichern
Beitrag von: peewit am 09. Oktober 2011, 21:25:00
durch das zwischenbuffern momentan nicht, auch die datei bleibt die ganze zeit geöffnet !

ich könnte eventuell eine option einbauen damit der datenbuffer immer sofort in die datei geschrieben wird.


visu ?
wieso visualisierst du die prozesswerte nicht direkt parallel mit einen trendschreiber ?
Titel: Re:Daten Logger / CSV speichern
Beitrag von: b.b. am 10. Oktober 2011, 13:58:55
Trendschreiber: muss ich mir anschauen, in welcher Lib ist der?

Datei:
Dauernd offen ist natürlich blöde bei Netzwerkverbindung...
Was passiert jetzt, wenn eine Datei länger verwendet wird als 4000Byte? Sagen wir, eine Datei pro Monat.
Bleibt die dann immer offen? Was passiert dann bei einem Stromausfall oder PowerCycle?

Eine Idee wäre, die Datei nur zu öffnen, wenn geschrieben wird.
Und dann natürlich an die Datei anhängen, wenn sie schon existiert....
Titel: Re:Daten Logger / CSV speichern
Beitrag von: peewit am 10. Oktober 2011, 19:59:06
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....
Titel: Re:Daten Logger / CSV speichern
Beitrag von: b.b. am 12. Oktober 2011, 11:07:10
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
Titel: Re: Daten Logger / CSV speichern
Beitrag von: Keltu am 04. November 2011, 10:11:41
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
Titel: Re: Daten Logger / CSV speichern
Beitrag von: b.b. am 04. November 2011, 13:38:44
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.
Titel: Re: Daten Logger / CSV speichern
Beitrag von: Keltu am 07. November 2011, 08:18:27
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 .....
Titel: Re: Daten Logger / CSV speichern
Beitrag von: peewit am 07. November 2011, 10:00:27
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


Titel: Re: Daten Logger / CSV speichern
Beitrag von: Keltu am 07. November 2011, 10:35:37
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]
Titel: Re: Daten Logger / CSV speichern
Beitrag von: peewit am 07. November 2011, 14:49:32
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]