OSCAT Forum

network.lib => BECKHOFF => Thema gestartet von: mtn am 02. Juni 2014, 09:27:31

Titel: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: mtn am 02. Juni 2014, 09:27:31
Schönen guten Tag!
Ich stehe im Moment vor einem kleinen Problem. Folgende Situation:
Es sollen Messdaten (Druck& Temperatur von Sensoren) außerhalb der SPS abgespeichert werden. Hierfür werden bisher die Daten von den Messgebern eingelesen, für eine Visualisierung angepasst und angezeigt. Gleichzeitig werden alle Messdaten (bisher nur zum Test mit 1x Druck und 1x Temp.-Wert) in ein Array geschrieben.
Dieses Array möchte ich in eine CSV datei schreiben bzw anzeigen lassen.
Das Problem ist die Verwendung von dem "DLOG_STORE_FILE_CSV" Baustein.
Ich habe mich schon ewig durch alle möglichen Foren und PDF's gelesen, komme aber noch nicht wirklich auf einen grünen Zweig, wie ich diesen Baustein denn jetzt verwenden kann.
Zum testen habe ich den Baustein mal nutzen wollen.
Die Ein- und Ausgänge habe ich in CFC "verdrahtet". Wenn ich das ganze jetzt simulieren möchte, kommt der Fehler
                ------ Übersetzungslauf gestartet: Applikation:
 C0077:  Unbekannter Typ: 'DLOG_STORE_FILE_CSV'
 C0035:  Programmname oder Funktionsblockinstanz an Stelle von 'DLOG_STORE_FILE_CSV_1' erwartet
 C0032:  Typ 'Unbekannter Typ: 'DLOG_STORE_FILE_CSV_1.ERROR_C'' kann nicht in Typ 'DWORD' konvertiert werden
 C0032:  Typ 'Unbekannter Typ: 'DLOG_STORE_FILE_CSV_1.ERROR_T'' kann nicht in Typ 'BYTE' konvertiert werden
                Kompilierung abgeschlossen -- 4 Fehler, 19 Warnungen
                Übersetzung abgeschlossen -- 4 Fehler, 19 Warnungen : Kein Download möglich!

Die "ERROR_C" und "T" sind (wie im Bibliotheksverwalter angezeigt) DWORD & BYTE.

Vielleicht kann mir jemand helfen, das zum laufen zu kriegen ?

Achso, Sollzustand ist :
Messdaten vom Messgeber -> (umwertung für Anzeige& Anzeigen) -> Speichern im Array -> Exportieren in CSV

 
System ist
- Codesys 3.5V Sp 4 Patch 3
- Festo CECE-D Steuerung
- Oscat Basic (3.3.3.0) & Network (1.2.1.0)

Leider ist diese auch mein erstes Projekt, dehalb hab ich noch keine Erfahrung o.ä., wenn sich jemand dem Problem annehmen würde, dann bitte "einsteigerfreundlich" erklären  ;)

Danke schonmal!

Titel: Re: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: peewit am 02. Juni 2014, 16:42:44
öffne die network bibliothek als normales projekt und schaue in den ordner "Demo"
dort sind zu den verschiedensten themen demo programme abgelegt und nur ausgeblendet sind

das sind autoark funktionierende demo programme wo man maximal netzwerk parameter oder dateinamen noch anpassen muss


schau dir das mal an...


wenn du dort auch nicht weiterkommst, dann solltest du dein beispiel programm online stellen bzw. auf jedenfall bildschirmhardcopy online stellen

damit man sehen kann was genau falsch ist...
Titel: Re: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: mtn am 03. Juni 2014, 08:39:19
danke peewit, das hilft schonmal ein bisschen weiter: ich habe die .lib importiert, da kommen allerdings einige meldungen. ich habe von allen mal ein einzelnes bild gemacht, siehe anhang. (musste leider bisschen zusammenpfuschen, max 4 bilder pro anhang...)

die beschriftung auf den bausteinen aus der demo datei sind irgendwie weg  :o wie man auf dem letzten bild sieht, kann ich die sachen auch nicht übersetzen oder so, das ist alles ausgegraut.
ich hoffe, das hilft.
danke schonmal für die hilfe !

[gelöscht durch Administrator]
Titel: Re: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: peewit am 03. Juni 2014, 16:57:43
hi

ich sehe gerade das du codesys 3.x benutzt
unsere codesys bibliotheken sind alle auf basis 2.x erstellt

die network bibliothek benötigt selber die oscat basic bibliothek und diverse system.libs

du benötigst eine konvertierte / angepasste version der bibliothek...

schau mal im forum nach usern die selber mit codesys 3.x arbeiten , die können dir dann eventuell weiterhelfen

http://www.oscat.de/community/index.php/topic,1784.msg11329.html#msg11329
Titel: Re: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: mtn am 04. Juni 2014, 08:42:33
okok, ich hab mir die angepassten versionen organisiert.
inzwischen habe ich auch den "DLOG_FILE_CSV_DEMO" baustein in mein projekt gekriegt. :)
wenn ich das ganze jetzt übersetzen möchte, kommt der fehler

"(Element 7 (Impl)): C0201:  Typ 'DLOG_DATA' entspricht nicht dem Typ 'DLOG_DATA' von VAR_IN_OUT 'X' "
6 mal das ganze.

mal ne andere frage: wenn ich dann irgendwann mal den baustein soweit habe, dass er funktioniert, kann man den dann überhaubt im "simulationsmodus" testen ? wenn der ne csv datei erzeugen soll, die er auf das filesystem der sps packt, und ich bei der simu garkein solches habe ?

vielen dank schonmal für deine hilf peewit, hat mir schon ein bisschen weiter geholfen! :)

Titel: Re: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: peewit am 04. Juni 2014, 10:03:43
in manchen simulatorionumgebungen ist der dateizugriff und ethernetkommunikation oft nicht oder teil eingeschränkt möglich
wenn du aber eine soft-plc als "simulation" verwendest stehen deine chancen ziemlich gut.

ob es funktioniert musst du je nach software und version mit dem hersteller / lieferanten klären


deine übersetzungsfehler musst du mit codesys 3.x user checken
ich habe keine 3.x umgebung und kann dich dahingehend nicht unterstützen
Titel: Re: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: mtn am 04. Juni 2014, 15:11:41
die fehler an sich haben sich geändert: ich habe den baustein aus der net.lib exportiert, dabei habe ich datenstrukturen mitgenommen, die wohl "DLOG_DATA" hießen. wenn ich diese umbenenne, bzw auskommentiere, lässt sich alles wunderbar übersetzen.
da ich mir nicht sicher bin, ob meine sps in der simulation zum testen geeignet wäre, habe ich das ganze mal auf den controller selber übertragen.
und jetzt steh ich wie'n ochse vor'm berg...
wenn ich das der doku richtig entnommen habe, dann kann ich mit dem man_trigger eine manuelle speicherung meiner daten auslösen?
1) wenn ich "keine daten" habe oder die daten "nichts" sind, legt er dann trotzdem die datei an?
2) die sps hat ein verzeichnis "/", in dem die projekt-daten usw liegen. würde der baustein in eben diese verzeichniss auch die .csv legen ?
3) die "filename" ist im demo projekt "test_#R.csv", siehe "3)" -> muss ich keinen absoluten pfad für die datei angeben?
4) ich hab den enable und den man_trigger mit 2 knöpfen auf ner visu abgelegt, wenn ich die jetzt (in welchem muster auch immer  ;D) drücke, kriege ich keine datei erzeugt  :o

vielleicht kann mir ja jemand helfen, der schonmal mit v3.x ähnliches realisiert hat!

danke schonmal& einen schönen tag!
Titel: Re: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: peewit am 04. Juni 2014, 15:34:23
der sinn eines datenlogges ist ja das man dieses eine gewisse menge an prozessdaten zuführt.
diese haben natürlich zu jeden zeitpunkt irgendeinen wert.

1. wenn du nun mittels trigger eine speicherung auslöst dann werden eben diese momentanen zustände gespeichert.

2. infos zum syntax von dateinamen und pfadangaben zu deiner sps musst du dir selber organisieren, da diese sehr verschieden sein können
    --> hersteller infos !
    oft ist es so wenn kein pfad angebgeben ist dann landen die dateien im system "root" ordner .. wo auch immer das dann ist.

3. gleiche wie punkt 2

4. keine datei ?
    es kann sein das der dateiname nicht in ordnung ist, dann sollte es wahrscheinlich aber auch eine fehlermeldung geben.
    oder die datei wird sehr wohl angelegt nur ist sie nicht dort wo du sie vermutest !


es kann aber auch sein das durch eine abweichung in der implementation deiner sps der datenlogger nicht funktioniert
auch das wäre möglich

du solltest mal ein paar online screenshots deines programms bzw. der variablen posten, dann kann man vielliecht schon klare fehler und ursachen erkennen
Titel: Re: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: mtn am 05. Juni 2014, 08:33:15
ich hab mal bilder von dem logger gemacht, so, wie er im moment bei mir im programm sitzt.
was mir grade aufgefallen ist: die zeit, die am RTC_2 ist, geht nicht weiter, auch, wenn das projekt übertragen wurde und online ist. :o
du sagtest, vielleicht landen die daten ja im root ordner... soeinen habe ich garnicht, wie auf bild 6 erkennbar, habe ich nur nen paar datein und die ordner "prj" und "visu". ich weis nicht, ob es noch andere strukturen gibt, die ich hier einfach nur nicht angezeigt kriege ?

wenn meine RTC zeit schon nicht weiter geht, als sie im moment ist, dann sollte ich mich vielleicht auch nicht wunder, wieso mein logger nix macht ?
womit sich die frage stellt, wieso nix gezählt wird... laut oscat doku sollte bei einem enable oder beim start die zeit kontinuierlich weiter laufen.
(in anderen bereichen meines programms habe ich ebenfals 'n RTC sitzen, der rennt ohne probleme vor sich hin)


fehler gibts beim übersetzen und übertragen keine.

anbei sind mal bilder von dem baustein im eingeloggten zustand, von den variablen im on- und offline zustand und von den datein, die auf der sps liegen ( oder die, welche in codesys im "datein" reiter der steuerung angezeigt werden. vielleicht gibt es ja noch welche, die dort nicht zu sehen sind ?)

gibt es aushalb der bausteine noch "sinnvoll" varianten, eine datei (erstmal) auf der sps zu speichern? besser gesagt, wie kann man auf das dateisystem zugreifen und dort datein verwalten?


an dieser stelle nochmal danke peewit für deinen langen atem  ;)

[gelöscht durch Administrator]
Titel: Re: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: peewit am 05. Juni 2014, 08:53:56
wenn die übergebene zeit stillsteht dann wird auch nicht passieren !

der baustein RTC_2 ist nur für das demoprojekt gedacht, da jede sps einen anderen zugang zu echtzeituhr hat

tausche das einfach aus gegen deinen standard rtc baustein
wichtig ist der datenlogger eine lebende uhrzeit bekommt.

Titel: Re: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: mtn am 05. Juni 2014, 10:35:36
okok, um das mit der zeit zu umgehen habe ich einfach mal den ausgang meiner korrekt laufenden zeit (zumindest läuft sie weiter) genommen, in den globalen variablen als "DATE_AND_TIME" hinterlegt und in dem demo programm 1:1 auf "cur_time" gelegt. bild-anhang zeigt das problem  :o wieso geht die cur_time denn nicht weiter...



edit: jetzt hab ich ne zeit am "DLOG_STORE_FILE_CSV" eingang "DTI".
enable ist true, filename ist " 'test_#A' " trig_m hab ich mit 'nem knopf visualisiert.
sollte ich jetzt also in der lage sein, irgendwie eine datei erzeugen zu können ? ;D

edit2: ich hatte vorhin ja gesagt, das ich nur ein paar datein und 2 ordner auf der sps sehe... wenn ich im reiter "sps shell" gucke und dann per shellcmd ls gucke, zeigt er mir noch andere strukturen an. leider kann ich sie nicht aufrufen, da beim versuch, in das verzeichnis zu wechseln  immer "executed returning no character" kommt

[gelöscht durch Administrator]
Titel: Re: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: peewit am 05. Juni 2014, 13:08:23
das problem kann ja nichts mit den bausteine zu tun haben
da die zeit den baustein nur übergeben wird, kann der baustein auch nicht schuld sein das deine uhr nicht läuft

vermutlich hast du im programm an einer anderen stelle noch einen alten code drinnen der dir die uhrzeit variable zyklisch wieder über schreibt..

schaut nach klassischen programmierfehler aus....

mir dem kleinen codeschnipsel als bild kann dir aber auch keine helfen.
weil man sonst nichts darauf sieht...

Titel: Re: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: mtn am 05. Juni 2014, 13:13:31
ich schick dir per pn mal 'ne text datei mit sämtlichem code, ok?
vielleicht seh ich den wald vor lauter bäumen ja wirklich nicht mehr ...



edit: hier sind die bausteine samt variablen, die im moment verbaut sind bei mir, als bild.

[gelöscht durch Administrator]
Titel: Re: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: mtn am 10. Juni 2014, 08:32:00
jetzt melde ich mich doch nochmal  :)
ich habe es inzwischen hingekriegt, dass ich etwas speichern kann!
es wird eine datei angelegt, die auch annähernd den inhalt hat, den ich haben möchte.
allerdings komme ich jetzt mit der struktur der zeilen/spalten nicht ganz klar.
ich hab als "SEP" nen ";" vorgesehen (33 ascii). die spaltenüberschrift per column am dlog_string baustein lässt sich dann auch wunderbar einstellen (mehrere "namen" mit ; getrennt für die spalten halt)
und dann kommt das problem:
ich möchte die datei quasi nach diesem format aufbauen:
XXX                   YYY             ZZZ
 AA                    BB               CC
 AB                    BC               CD

die oberste zeile funktioniert wunderbar.
ich weis nur nicht, wie ich am dlog_string baustein den STR eingang beschicken muss, damit ich mehrere variablnen damit "zusammenfügen" kann.
versuche wie VarA;VarB // "VarA;VarB" // 'VarA;VarB' // (VarA;VarB)  haben nicht viel gebracht. es wird immer nur die 1. spalte beschickt, wenn nicht vorher beim übersetzen fehler kommen

danke schonmal für die antwort :)
Titel: Re: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: peewit am 10. Juni 2014, 09:54:41
hi

wenn ich deinen text richtig gelesen habe, dann würde ich sagen das du das prinzip des daten loggers gar nicht verstanden hast

du musst bzw. brauchst gar nichts selber per ";" zusammenfügen

angenommen die möchtest drei Werte (3 spalten) aufzeichnen und der prozesswert ist als real wert vorhanden.
dann nimmst du einfach dreimal eine eigene baustein-instanz von DLOG_TO_REAL und füllst du parameter von diesen aus...

mehr ist es nicht.

wenn du selber irgendwie elemente mittels ";" zusammenfügst dann kann nur fehlerhaftes rauskommen !
das darfst du nicht -> falsche handhabung

schau mal die doku bei "daten logger" dort ist auch ein beispiel angebildet

Titel: Re: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: mtn am 10. Juni 2014, 14:48:19
soviel zum thema wald und bäume undso  ::)

es läuft jetzt alles soweit, wie ich möchte und es soll!
kaum macht man es richtig, schon funktioniert  ;D
vielen dank dafür, peewit, die hilfe war echt gut!


achso, eine frage zum verständnis noch: ich speicher jetzt meine daten auf einem usb stick direkt an der sps. mein "TRIG_T" ist auf 2 (sec) gestellt. bisher pfusch ich den enable noch per hand true/false, verstehe ich richtig, dass der logger sämtliche daten solange enable auf true steht, alle 2 sec speichert?
und dann jede minute die datei ablegt ?
das problem ist, manchmal sehe ich die datei auf dem usb stick (solange der noch an der sps ist), dann setz ich enable auf false, ziehe den stick, stecke ihn in den pc und dann fehlt eine datei oder ist einfach leer.
mache ich da noch etwas falsch in der handhabung ? oder am ablauf?
Enable True -> 2-x min laufen lassen -> Enable False -> stick ziehen -> datein am pc auslesen/anzeigen
                                      ^
                                 nach dieser zeit sollten ja dann 2-x datein vorhanden sein, oder habe ich da auch noch einen verständnis fehler ?

                               

P.S:
 für alle, die vielleicht irgendwann mal vor dem selben problem stehen: der stick muss(te zumindest bei meiner steuerung) in FAT formatiert sein, ansonsten erkennt die sps ihn einfach nicht.
Titel: Re: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: peewit am 10. Juni 2014, 18:58:41
enable = false    es wird gar nichts gemacht
enable = true   dann wird ausgezeichnet wenn ein "trigger" auslöst

trigger

trig_t    = wenn man die aktuelle zeit in sekunden betracht und diese durch die zahl an trig_t mit rest 0 dividieren kann dann wird ausgelöst.

trig_t = 2  triggert also bei jeder zweiten sekunde usw..

trig_m = mit einer positiven flanke kann eine auszeichnung jederzeit ausgelöst werden.

wenn man an den dlog_xxx bausteine die delta funktion benutzt dann können auch diese bausteine selber einen trigger auslösen.

durch diverse interne buffer die ich intern verwende werden nicht immer alle daten sofrt in die datei geschrieben
erst bei enable = false passiert das, oder der dateiname ändert sich...

da du die codesys 3.x variante der network bibliothek benutzt hast du nicht zugriff auf die letzte version des dataloggers
hier habe ich das speicher verhalten optimiert und einstellbar gemacht.

http://www.oscat.de/community/index.php/topic,1872.msg9862.html#msg9862
Titel: Re: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: mtn am 11. Juni 2014, 09:22:50
hmm, das ist komisch:
wenn ich mein projekt starte und den enable auf true setze, dann geben mir error_c und error_t jeweils 1 raus.
wenn ich den enable dann wegnehme und das zweite mal auf true setze, geben die ausgänge jeweils 0 raus.
die bibliotheken, welche du genannt hast, habe ich schon vor einiger zeit eingepflegt.

was jetzt aber trotzdem noch im raum steht, ist bei folgendem ablauf:

projekt übersetzen & starten -> enable auf true (1 an den error ausgängen) -> enable false -> enable true(0 an error).
(zu diesem zeitpunkt kann ich in der sps shell sehen, dass eine .csv datei mit meinem hinterlegten namen erstellt worden ist auf dem usb stick. "2457" o.ä steht dabei, gehe mal davon aus, dass das die größe ist?)
wenn jetzt :
enable false -> 2-3 sek warten -> usb stick ziehen -> in pc stecken -> datei angucken
ist die datei a) nichtmehr vorhanden oder b) 0byte groß und steht halt nix drin.

wieso sehe ich auf der sps also eine "volle" datei, wenn ich dann den stick nach beendigung der speicherung aber abziehe, sehe ich am pc nix oder eine leere datei?

witzigerweise passiert das nicht mit allen datein. wenn ich den logger wie oben beschrieben 2 min laufen lasse, sind die datein leer, wenn ich >3 min laufen lasse, ist immer die letzte datei leer und die, die zum zeitpunkt gespeichert werden sollte, wenn ich den enable wegnehme  :o
(siehe anhang)


[gelöscht durch Administrator]
Titel: Re: Dlog_Store_File_Csv / Codesys 3.5 / Festo CECC-D
Beitrag von: peewit am 11. Juni 2014, 14:19:22
solange ich dein programm nicht kenne bzwe prüfen kann,. ist alles sehr relativ

meistens sind es fehler im anwenderprogramm !

vereinfache mal dein programm so das es minmal klein ist, aber noch dieses fehler aufweist
und stelle es online

hast du schon das fertige demoprogramm inder network bibliothek im order "demo" angesehen bzw ausprobiert