Autor Thema: Datenspeicherung/Programmierhilfe EC4P-221-MTXD1  (Gelesen 33627 mal)

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 709
  • Think easy!
    • mollgruppe
Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
« Antwort #15 am: Januar 09, 2013, 16:44:57 Nachmittag »
Hallo Matthias

Wie schon vorher gesagt, hier eine Verbesserung, bei der alle Daten in ein 2d-Array(Tabelle) täglich geschrieben werden.

VAR_GLOBAL

END_VAR
VAR_GLOBAL RETAIN
(* Das Array wird jeden Tag neu beschrieben und um 0:00 auf Karte geschrieben*)

   Daten: ARRAY [0..100, 0..4] OF INT;
(* 0-100 sind Zeilen für Messwerte,
Spalte 0 = Nr der Messung
Spalte 1 = Temperatur 1
Spalte 2 = Temperatur 2
Spalte 3 = Feuchte 1
Spalte 4 = Feuchte 2
*)
END_VAR
« Letzte Änderung: Januar 09, 2013, 17:55:17 Nachmittag von radar17892 »
Weil Einfach einfach Einfach ist!

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 709
  • Think easy!
    • mollgruppe
Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
« Antwort #16 am: Januar 09, 2013, 16:51:39 Nachmittag »
Hallo Matthias

Setze vor die Systemzeitabfrage, statt "true" , einen selbstrücksetzenden Timer mit PT 1h.
Wenn es nicht geht, check ich das noch mal.
Lade doch mal deine Lösung hoch, damit ich es nachvollziehen kann!


Gruß Thomas
« Letzte Änderung: Januar 09, 2013, 18:01:10 Nachmittag von radar17892 »
Weil Einfach einfach Einfach ist!

Offline Matthias

  • Newbie
  • *
  • Beiträge: 16
Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
« Antwort #17 am: Januar 10, 2013, 16:06:06 Nachmittag »
Hallo Thomas,

danke für das verbesserte Array. Das Programm was ich im Moment teste ist deins (nochmal selbst "abgeschrieben"), von daher bringt ein hochladen nicht wirklich viel.
Verstehe nicht genau, was ein Timer vor Systemzeitabfrage bezwecken soll. Die Systemzeit bezieht sich ja auf die an der Steuerung eingestellten Zeit und DT_TO_TIME rechnet dann stets Datum&Uhrzeit in einen Zeitwert mit Startpunkt 1.1.1970 um  ("Intern wird das Datum in einem DWORD in Sekunden seit dem 1.Januar 1970 abgespeichert. Dieser Wert wird konvertiert.")..

Gruß, Matthias

Offline Matthias

  • Newbie
  • *
  • Beiträge: 16
Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
« Antwort #18 am: Januar 10, 2013, 17:08:28 Nachmittag »
Hallo Thomas,

ich glaube, ich konnte das Zeitproblem schon selbst lösen:

Benutze nach dem SysRtcGetTime zunächst DT_TO_TOD und dahinter dann ein TOD_TO_TIME.
Testphase läuft, melde mich später mit Ergebnissen.

Gruß, Matthias

Offline Matthias

  • Newbie
  • *
  • Beiträge: 16
Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
« Antwort #19 am: Januar 10, 2013, 17:24:11 Nachmittag »
Hallo Thomas,

als die beiden Zähler funktionieren nun wie gewünscht. Ich kann allerdings auf der Speicherkarte keine Datei finden..Es gibt dort nur eine Ordnerstruktur (E:\MOELLER\EC4P_200\PROJECT), die allerdings leer ist.

Es wäre gut wenn die Arrays nach dem Speichern zunächst wieder mit Nullen gefüllt werden, da sonst, falls an einem Tag weniger Messungen gemacht werden, die Ergebnisse verfälscht werden.

Gruß, Matthias
« Letzte Änderung: Januar 11, 2013, 11:54:29 Vormittag von Matthias »

Offline Matthias

  • Newbie
  • *
  • Beiträge: 16
Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
« Antwort #20 am: Januar 11, 2013, 16:01:33 Nachmittag »
Hallo Thomas (oder gerne auch jemand anderes,der das Problem kennt),

immer wenn ich versuche die SysLibFile.lib einbinde und dann das veränderte Programm auf die SPS laden will,bekomme ich die Fehlermeldung das viele Funktionen der lib nicht gebunden werden konnte (SysFileWrite/Open usw.). Kann meine Steuerung mit diesen nicht umgehen oder liegt der Fehler an einer anderen Stelle?

Gruß, Matthias


--->selbst beantwortet: die lib heißt EC_File.lib
« Letzte Änderung: Januar 11, 2013, 16:07:40 Nachmittag von Matthias »

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 709
  • Think easy!
    • mollgruppe
Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
« Antwort #21 am: Januar 12, 2013, 13:13:32 Nachmittag »
Hallo Matthias

Zunächst mal, mit welchem Softwarestand arbeitest du?
Meiner ist der aktuellste: 2.3.9 SP2 Patch1
Wenn du mal ein Update machst (Zielsysteme) brauchst du nicht immer alles neu zu schreiben.

In der letzten Version habe ich einen String "Tag" angelegt und den Zählwert hinzugefügt, so das die Speicherung unter dem Dateinamen Tagxxx.cvs erfolgt. Bei meinem XV102 liegt die Datei dann unter /StorageCard . Ich kann es leider nicht mit einer EC4P testen, hab keine da. Die Daten müssten aber direkt auf der Karte abgelegt werden.

Zu dem Nullsetzen des Arrays kann man es zur Laufzeit neu initialisieren(sind keine Werte vorgegeben, ist das autom Null).
Achtung! Hier die Reihenfolge beachten: Wenn "Tag_beginnt"
1. Datei speichern
2. Array initialisieren
3. Messungszähler zurücksetzen

Zu dem Problem mit dem Tagesbeginn, das habe ich schon länger laufen wie im Bild.

Gruß Thomas

Weil Einfach einfach Einfach ist!

Offline Matthias

  • Newbie
  • *
  • Beiträge: 16
Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
« Antwort #22 am: Januar 14, 2013, 17:24:16 Nachmittag »
Hallo Thomas,

auf dem Zielsystem läuft OS V02.38, hab n bisschen Sorge, dass nach einem Update neue Probleme auftauchen, deswegen werd ich da die Finger von lassen.
Der eine SysSaveRetains-Baustein reicht um die Datei zu erstellen und zu beschreiben?

Gruß, Matthias

--> Habe gerade den Baustein getestet und er liefert mir stets '-1',also 'Datei konnte nicht geöffnet werden'. Dies tritt auch noch auf wenn ich die Datei vorher mit FileOpen öffne und/oder nur versuche einen String anstelle eines Arrays zu übertragen.
« Letzte Änderung: Januar 14, 2013, 18:58:09 Nachmittag von Matthias »

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 709
  • Think easy!
    • mollgruppe
Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
« Antwort #23 am: Januar 18, 2013, 22:47:33 Nachmittag »
Hallo Matthias

Versuch mal den String (Tag) durch (disk_mmc\Tag) zu ersetzen und dessen Länge von 10 auf 20.
Eventuell liegt es an der Pfadangabe. Auch solltest du bedenken, das nur um 0:00Uhr gespeichert wird.

Gruß Thomas

Uups, hab bemerkt, das du auch noch die Einfügemarke für die Dateinummer in den String ändern musst. Die steht jetzt auf 3 und muss auf 12.
« Letzte Änderung: Januar 20, 2013, 12:45:02 Nachmittag von radar17892 »
Weil Einfach einfach Einfach ist!

Offline rustm

  • Newbie
  • *
  • Beiträge: 7
Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
« Antwort #24 am: Januar 23, 2013, 09:19:50 Vormittag »
Hallo,

Retain speichern geht mit der EC4P nicht.
Unter folgenden Link ist die Speicherung(File) mit Beispiel gut beschrieben:

http://easy-forum.net/index.php?topic=1911.15

Gruß
Manfred

Offline radar17892

  • Sr. Member
  • ****
  • Beiträge: 709
  • Think easy!
    • mollgruppe
Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
« Antwort #25 am: Januar 26, 2013, 17:29:22 Nachmittag »
Hallo,
funktioniert`s denn jetzt???
Weil Einfach einfach Einfach ist!

Offline Matthias

  • Newbie
  • *
  • Beiträge: 16
Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
« Antwort #26 am: Januar 28, 2013, 13:08:40 Nachmittag »
Hallo,

ich bin mit meinem Porgramm um einiges weiter gekommen. Lege meine Messdaten nun zunächst in mehreren Strings ab und verschiebe die dann wie bisher geplant einmal täglich auf die Speicher. Soweit läuft auch alles wie geplant. Mein aktuelles (Haupt-)Problem ist, das besagte Strings nach dem Speichern nicht wieder "zurückgesetzt werden"(ich weiß,es klingt banal). Könntet ihr euch das Programm bitte mal anschauen? Betreffende Stelle befindet sich in dem Funktionsblock "Messdaten aufnehmen". Hab es schon auf 3 Wegen versucht:

-löschen der Strings mit dem 'Delete'-Baustein
-Verschieben eines leeren Strings mit dem 'Move'-Baustein in einen der betreffenden Strings
-direktes zuweisen eines leeren Strings (mit einem Sprung davor)

Ein weiteres Problem, dass aktuell aber weniger kritische ist: Immer wenn ich die SPS vom Strom getrennt habe,muss ich mein Programm wieder neu aufspielen. Warum ist das so? Liegt es evt an der Größe des Programms? Und was für Dateien müsste ich auf der Speicherkarte anlegen um es von dieser Laden zu können?

Ich bedanke mich schon mal im voraus,
Matthias

Offline Uwe Schröder

  • Sr. Member
  • ****
  • Beiträge: 606
  • U. Schröder
Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
« Antwort #27 am: Januar 28, 2013, 21:47:54 Nachmittag »
Hallo!

Antwort auf die Frage:
Ein weiteres Problem, dass aktuell aber weniger kritische ist: Immer wenn ich die SPS vom Strom getrennt habe,muss ich mein Programm wieder neu aufspielen. Warum ist das so? Liegt es evt an der Größe des Programms? Und was für Dateien müsste ich auf der Speicherkarte anlegen um es von dieser Laden zu können?

Bitte nach dem Laden ein Bootprojekt anlegen!
Vergess ich auch immer, deshalb hab ich den Warnhinweis aktiviert.
So kommt wenn ich die Software schließe immer die Abfrage nach Boot-Projekt erzeugen.

mfg Uwe

Offline Matthias

  • Newbie
  • *
  • Beiträge: 16
Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
« Antwort #28 am: Januar 29, 2013, 14:36:07 Nachmittag »
Hallo!

Danke für die schnelle Hilfe,Uwe!
Anbei noch eine Version von dem Programm in welcher das Rücksetzen funktioniert.

Gruß, Matthias