Dlog_Store_File_csv mit Berghof SPS

Begonnen von flxthkng, 13. Februar 2018, 11:48:39

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

flxthkng

Hallo,

ertsmal danke für den Hammer Datenlogger! Soweit funktioniert alles super. Ich benutzte die Network Lib V1.30. auf Codesys V3.5. Es werden Protokolle angelegt, die 30 - 224 Daten beinhalten.
Auffällig ist, dass nach einigen Schreibaufrufen die zu schreibenden Werte nicht mehr der richtigen Spalte zugeordnet werden. Nach einem "Kaltreset" also wo auch alle remanenten Daten gelöscht werden ist dies nicht der Fall.
Ich habe schon viel hier im Forum gelesen, allerdings keine Beitrag gefunden, der genau mein Problem behandelt. Ich glaube, der Beitrag http://www.oscat.de/community/index.php?topic=2421.0 kommt meinem Problem sehr nahe. Der Berghof Support weißt aber Anfragen zu diesem Thema prinzipiell ab, da sie OSCAT nicht supporten dürfen und wollen.

Grundlegend kann man diesen Fehler ja mit Excel ausbügeln. Allerdings kommt es, wenn man viele Daten schreibt sporadisch zu einem "Ausnahmefehler" der SPS. Diese treten sonst eigentlich nur bei Überschreitung von Arraygrenzen auf.
Der Fehler tritt in Zeile 111 auf beim Befehl UCB(DATA:=X.UCB); (*Element lesen, aber noch nicht entfernen*) leider steige ich bei der DLOG-Funktion noch nicht ganz durch und brauche Einfach eure Unterstützung.

Tritt der Fehler auf, weil ich die Buffergrenzen überschreite oder  kommt es dazu, weil der interne Pointer der SPS nicht zurückgesetzt oder falsch gesetzt wird?

Vielen Dank für eure Hilfe!

peewit

#1
hallo

Danke für das Kompliment
Der Datenlogger hat mich auch viel Zeit gekostet

Bei normaler korrekter Anwendung ist mir kein Serienproblem bekannt
Auch keine Abstürze oder Zugriff /Indexfehler.

Probleme gibt es immer dann wenn zu viele Daten auflaufen und die SPS diese nicht schnell genug in die Datei schreiben kann
letztendlich gehen dann gezwungenermaßen Daten verloren und Daten verschieben sich dann.

ich empfehle dir die oscat_network 1.35 beta zu nehmen da ich dort diesbezüglich einige Optimierungen unternommen habe.

wie grösserer Datenbuffer um bis zu 255 Datenspalten verarbeiten zu können
zusätzliche habe ich auch einige Diagnosefunktionen integriert mit denen man sehen kann wie weit das System
ausgelastet ist und wann bzw wie oft gehen Daten verloren


@ Der Fehler tritt in Zeile 111 auf beim Befehl UCB(DATA:=X.UCB)
das ist ja nur der aufruf eines bausteins wo kein kongreter fehler auftreten kann
Der Fehler muss zumindest innerhalb des bausteines bei einer einzelnen befehlszeile auftreten

der Ausnahmefehler zeigt sich also in welcher form genau (Fehlermeldung mit ursache / Ort ?)

Was ich auch nicht sagen kann ist ob die bergoff sps bezüglich file-handling 100% kompatibel zu den anderen ist
es gibt leider immer wieder sps-hersteller die zwar codesys basis haben aber die hardwarenahe anbindung wie dateisystem dann von selber umsetzen wird und hier gibt es leider immer wieder interpretationspielraum,

user fatdom85 hat ja anscheinend diesbezüglich so ein problem festgestellt
du könntest ihn fragen was er gemacht hat das es nun kein problem mehr gibt (so schreibt er zumindest !)


eine prinzipielle frage wäre
läuft es fehlerfrei wenn du viel weniger daten auszeichnest

wieviele datenspalten hast du maximal und oft werden die daten geloggt
wie gross können datenfiles werden , bzw nach welchen zeitrahmen werden diese gewechelt



oscat-network 1.35
http://www.oscat.de/community/index.php/topic,2546.msg13223.html#msg13223


flxthkng

Hallo Peewit.
Danke für die ausführliche Antwort!
Mit 255 Datenspalten bin ich voll im Rennen. Noch kommt beim Versuch die neue Lib zu  in mein V3-Projekt zu konvertieren zu Fehlern (Cannot find 7 of 7 libraries). Das werde ich noch beheben.

@ eine prinzipielle frage wäre
egal wie viele Datenspalten ich logge, der Pointer verrutscht. Nur wenn viele Datenspalten geloggt werden, tritt der „Ausnahmefehler“ auf. â†' viele bedeutet 220 Spalten
Die Daten werden alle 3-10min aufgezeichnet über den manuellen Trigger. Angelegt werden die Datenfiles, deutlich eher. (sollte ja aber kein Problem sein) zum Wechseln hat die SPS 500ms Zeit â†' diese Zeit zu erhöhen löst das Problem aber nicht

peewit

das grundproblem ist bei der alten lib version das bei einen trigger von > 200 Spalten der dafür vorgesehen datenbuffer nicht gross genug ist und dadurch ziemlich sicher daten verloren gehen

das sollte nun mit der network.lib 1.35 so nicht mehr passieren da ich den buffer von 4k auf 8k erhöht habe
und die neue diagnose dir ja nun ein mögliches problem ankündigt und meldet


(es gibt nun auch einen DLOG_REAL_ARRAY vielleicht kann der dir helfen dein projekt schlanker zu machen)


harway

Von mir auch ein herzliches Dankeschön für den Datenlogger!
Bei mir funktioniert alles bestens!!! ;)
Ich logge 21 Real-Werte einmal pro Minute.
Speicherung auf USB-Stick.

Benutze:
Pixtend V2-L mit
Raspberry Pi Runtime Library V3.5.15.10
und CODESYS 3.5 SP15 Patch 1

Danke nochmal!
LG Harway