easy-forum

Deutsch - Hardware => easyControl => Thema gestartet von: Matthias am November 13, 2012, 20:19:01 Nachmittag

Titel: Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: Matthias am November 13, 2012, 20:19:01 Nachmittag
Hallo zusammen,

ich hab neulich eine Projektarbeit übernommen, bei der 2 Ventilatoren über eine EC4P-221-MTXD1 angesteuert werden. Außerdem sind 4 Sensoren (je 2mal Temperatur und 2mal Luftfeuchtigkeit) an den analogen Eingängen angeschlossen. Ziel das Projektes ist es im Inneren einer Kammer ein zum Trocknen von Holz geeignetes Klima zu erzeugen.
Für die spätere Auswertung wäre es schön die Messgrößen der Sensoren in einer Datei zu speichern,die im Wochentakt ausgelesen wird (4 Sensoren, Messwerte alle 15-30 Minuten aufnehmen -->  macht knapp 2700 Messwerte pro Woche).

Nun zu meinen Fragen:

Ist das überhaupt möglich?

Würde für so etwas der interne Speicher der Steuerung ausreichen oder wäre eine Speicherkartenerweiterung ( http://www.conrad.de/ce/de/product/198766/Eaton-EU4A-Mem-Card-Speicherkarte-fuer-easy-Control-64-MB ) notwendig?

Kann mir wer bei der Programmierung behilflich sein?

Gruß, Matthias
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: radar17892 am November 24, 2012, 22:38:05 Nachmittag
Hallo Matthias

Prinzipiell ist das so mit Speicherkarte möglich.
Kennst du dich mit Holztrocknung aus? Trockenkurve, Gleichgewichtsfeuchte etc. ?
Das Speichern sollte nicht das Problem sein. Zuerst solltest du mal ein Regelschema entwerfen, bei dem die verschiedenen Regelkreise sinnvoll ineinander greifen (Heizung, Abluft, Sprühung und Umluft)
Vielleicht findest du Hinweise dazu bei Brunner-Hildebrand oder anderen Trocknerherstellern.

Gruß Thomas
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: Matthias am November 27, 2012, 16:18:25 Nachmittag
Hallo Thomas,

hab mich bis jetzt flüchtig mit dem Thema auseinandergesetzt. Eine Heizung wird in der Kammer nicht verbaut (eine Wand ist aus Plexiglas durch das Sonnenlicht die Luft im Inneren aufheizen soll) und eine Bedüsung wird auch nicht benötigt, da es sich um Brennholz handelt und wir somit über Risse durch zu schnelles trocknen hinwegsehen können.
Hab in einem Buch über Holztechnik ein Diagramm über den Zusammenhang von Temperatur, relativer Luftfeuchte und daraus resultierender Holzfeuchte gefunden, wäre aber für weitere Literaturhinweise sehr dankbar.
Bist du ein wenig mehr bewandert auf dem Gebiet?

Gruß,
Matthias
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: radar17892 am November 28, 2012, 21:48:59 Nachmittag
Hallo Matthias

Na ja, ich bin kein Trocknungsexperte, aber gute Grundlagen durch den Job.
Den Zusammenhang, den du meinst ist die Gleichgewichtsfeuchte. Such mal danach.
Wenn du so wie beschrieben trocknest, ist das schon ziemlich langwierig. Warum willst du dann alle 15-30min loggen?
Wie misst du die Feuchte, in der Luft? Eine Gleichgewichtsfeuchte stellt sich in einem geschlossenem System ein. Die Belüftung macht dann dieses Messverfahren unbrauchbar. Hier kann man über Holzgewicht oder Wiederstand messen.

Gruß Thomas
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: Matthias am Dezember 06, 2012, 01:37:51 Vormittag
Hallo Thomas,

wollen die Daten so häufig loggen um hinterher eine gute Aussage darüber treffen zu können, wie sich das Klima im Inneren der Kammer im Vergleich zum Außenklima verhält und daraus auf Verbesserungen zu schließen wie z.B. zusätzliche Isolation der Kammer. Da es sich um eine Projektarbeit im Studium handelt, und das Semester ja nunmal nicht allzu lange ist, ist es gut möglich das wir nur eine recht kurze Testphase durchführen können, auch deswegen so viele Daten wie möglich.
Haben sowohl innen als auch außen einen Sensor der uns einen analogen Wert an die Steuerung für Temperatur und relative Luftfeuchtigkeit liefert. Wie genau die funktionieren,kann ich dir nicht sagen.
Naja, also unbrauchbar macht die Belüftung das Ganze ja nun nicht, da sich selbst bei niedrigen Temperaturen und einer hohen relativen Luftfeuchtigkeit noch eine recht passable Holzfeuchte erzielen lässt. Also selbst wenn die Temperaturen und die Luftfeuchtigkeit im Inneren schwanken, so wird doch durchgehend eine Trocknung erfolgen bis zu einem bestimmten Wert.
In wie weit wir dadurch schneller sind als bei einer normalen Freilufttrocknung, müssen die Ergebnisse zeigen.

Gruß, Matthias
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: radar17892 am Dezember 08, 2012, 22:39:30 Nachmittag
Hallo Matthias

Habe dir mal einen Programmentwurf gemacht, bei dem täglich 96 Messungen auf die Speicherkarte geschrieben werden. Ich hoffe du kommst damit zurecht, weil ich nicht weiß, wie deine Programmierkentnisse sind.
Die Kommunikation zur EC4P musst du noch einstellen.

Gruß Thomas
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: Matthias am Dezember 11, 2012, 10:17:42 Vormittag
Hallo Thomas,


schon mal ein großes Danke für deine Bemühungen. Werde mich aber wohl erstmal mit CodeSys befassen müssen, da ich beim öffnen des Programms einige Fehlermeldungen bekomme (module.root nicht gefunden, Bibliotheken werden nicht gefunden). Angucken konnte ich es mir dennoch und kann glaub ich nachvollziehen, was du da gemacht hast. Meine Programmierkenntnisse gehen nicht sonderlich tief. Hab aufm Gymnasium mal ne Steuerung von Siemens programmiert, das ist aber schon ein paar Jahre her.
Versuch also heute mal rein zu kommen und ab morgen dürfte es dann Fragen hageln.

Gruß, Matthias
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: radar17892 am Dezember 13, 2012, 10:12:09 Vormittag
Hallo Matthias

Die Fehlermeldungen kommen wahrscheinlich von unterschiedlichen Pfaden zu den Libs.

Das Programm ist auch nur ein Entwurf. Teste erst mal, ob das tägliche schreiben funktioniert und du die Daten dann auslesen kannst.
Noch schöner wäre es, wenn alle Tagesdaten in ein 2D Array(Tabelle) mit Zeitstempel geschrieben würden. Es würde dann pro Tag eine durchnummerierte Trenddatei angelegt.

Gruß Thomas
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: Knodelpa am Dezember 13, 2012, 12:58:55 Nachmittag
module.root nicht gefunden
Wahrscheinlich wurde das Programm mit einer anderen Steuerungs Version (Firmware) geschrieben.
Ihr solltet Euch bezüglich der Steuerungs Version abgleichen, ggf. das bestehende Programm auf eine neuere Version anheben.

Gruß Paul
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: Matthias am Dezember 17, 2012, 21:47:48 Nachmittag
Hallo Thomas,

simulieren kann man die Datenspeicherung nicht,oder?Bin erst ab Freitag wieder im Institut..

Gruß, Matthias
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: radar17892 am Dezember 20, 2012, 10:47:32 Vormittag
 
Zitat
simulieren kann man die Datenspeicherung nicht,oder?

Doch, geht ganz einfach:
Unter Online, Häkchen bei Simulation setzen und einloggen.
Schon läuft`s, wenn kein Fehler erkannt wurde.   ::)
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: Matthias am Januar 08, 2013, 13:18:39 Nachmittag
Hallo Thomas,

entschuldige die lange Funkstille. Hab mir dein Programm angeschaut und muss sagen,dass ich nicht sonderlich viel davon verstanden habe.

Habe mir Bausteine erstellt, die das analoge Eingangssignal in einen realen Wert umrechnen. Hab diesen dann den Datentyp 'real' verpasst, da Kommazahlen möglich sind.

Könntest du mir nochmal ein Beispiel schreiben und mit mehr Kommentaren nachvollziehbarer für mich machen? Es wäre nett wenn es in FUP wäre, da mir dies am geläufigsten ist.

Gruß, Matthias
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: Matthias am Januar 08, 2013, 18:07:28 Nachmittag
Nachdem ein paar Stunden vergangen sind, wird mir der Aufbau des Programmes doch ein wenig klarer (von komplett verstanden will ich noch nicht sprechen).
Hab das Programm nachdem ich die Kommunikation mit der SPS sichergestellt hatte nochmal abgeschrieben. Aktuell bekomme ich die folgenden Fehlermeldungen:

PLC_PRG (5): Sprungmarke 'Sprung' ist nicht definiert
PLC_PRG (8): Sprungmarke 'Sprung' ist nicht definiert
PLC_PRG (32): Variable 'Daten_Temp1' nicht deklariert
PLC_PRG (33): Variable 'Daten_Temp2' nicht deklariert
PLC_PRG (34): Variable 'Daten_Feuchte1' nicht deklariert
PLC_PRG (35): Variable 'Daten_Feuchte2' nicht deklariert

Hab nicht so genau verstanden was du bei der Datenanpassung machst. Kannst du den Bereich nochmal näher beschreiben? Bzw. wenn ich die Werte schon als Datentyp 'real' von vorne herein eingebe (zb. 23,2° für die Temperatur) kann ich mir dann diesen 'LinTrafo'-Baustein schenken und direkt mit dem 'Real_To_Int' weitermachen?
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: radar17892 am Januar 09, 2013, 13:02:58 Nachmittag
Hallo Matthias

Hab noch mal Kommentare eingefügt.
Die LinTrafos brauchst du zur Anpassung der Temperatursensoren. Ich hab mal -50 - 100°C angenommen.
Hier noch mal der Deklarationsteil vom Hauptprogramm

PROGRAM PLC_PRG
VAR
   TR1: R_TRIG;            (*Flanke Tag beginnt*)
   C1: CTU;               (*Tageszähler, erzeugt Nummer für tägliche Datei  *)
   C2: CTU;               (*Zähler zur Nummerierung der Messwerte im Array*)
   Temperatur1: LIN_TRAFO;      (*Signalanpassung (Bsp Sensor -50- 100°C)*)
   Temperatur2: LIN_TRAFO;      (*Signalanpassung*)
   Feuchte1: LIN_TRAFO;         (*Signalanpassung*)
   Feuchte2: LIN_TRAFO;         (*Signalanpassung*)
   Logzeit: TON;            (*alle PT Sekunden speichern  1800s=96 Messungen/Tag*)
   Temp_innen: INT;         (*Temperatur innen -50,0  - 100,0°C*)
   Temp_aussen: INT;      (*Temperatur außen -50,0  - 100,0°C*)
   Feuchtewert1: INT;      (*Feuchte 1  0,0 - 100,0%*)
   Feuchtewert2: INT;      (*Feuchte 2  0,0 - 100,0%*)
END_VAR
VAR CONSTANT
   Tag_beginnt: TIME := t#1s;      (*Nicht ändern!*)
   Tag: STRING(10) := Tag;      (*Teil des Dateinamens*)
END_VAR

zu
Zitat
PLC_PRG (32): Variable 'Daten_Temp1' nicht deklariert
PLC_PRG (33): Variable 'Daten_Temp2' nicht deklariert
PLC_PRG (34): Variable 'Daten_Feuchte1' nicht deklariert
PLC_PRG (35): Variable 'Daten_Feuchte2' nicht deklariert

Siehe GLOBAL_VAR
Hier habe ich die Arrays remanent deklariert. Es werden hier die Daten von 0:00 - 24:00 Uhr abgelegt.

Gruß Thomas
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: Matthias am Januar 09, 2013, 16:39:26 Nachmittag
Hallo Thomas,

konnte das Programm auf die SPS übertragen und das Beschreiben der Arrays klappt problemlos. An dieser Stelle schon mal ein großes Danke!
Probleme macht der Zähler für die einzelnen Tage und somit auch das Schreiben der Arrays in die Datei. Das liegt wohl an dem 'Date_to_Time'-Baustein der nicht um 0:00 Uhr auch 0 am Ausgang zurück gibt (das Ergebnis wird einfach weitergezählt). Hast du eine Lösung für dieses Problem? Die Idee dahinter, die Daten je um 0Uhr auf die Karte zu schreiben und einen neuen Tag 'starten zu lassen', finde ich sehr gut!

Gruß, Matthias
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: radar17892 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
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: radar17892 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
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: Matthias 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
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: Matthias 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
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: Matthias 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
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: Matthias 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
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: radar17892 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

Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: Matthias 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.
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: radar17892 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.
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: rustm 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
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: radar17892 am Januar 26, 2013, 17:29:22 Nachmittag
Hallo,
funktioniert`s denn jetzt???
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: Matthias 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
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: Uwe Schröder 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
Titel: Re:Datenspeicherung/Programmierhilfe EC4P-221-MTXD1
Beitrag von: Matthias 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