# Archiv Inhalt 1:1 in ein anderes Archiv kopieren



## flexible (12 April 2010)

Hallo zusammen!

Ich versuche in WinCC flexible einen Datenschreiber mit Dropdown Menü zu erstellen, in dem ich verschiedene Archive auswählen und darstellen kann.

Zunächst habe ich versucht ein ganzes Archiv zu kopieren. Dabei werden aber nicht nur die Inhalte sondern auch die Variablennamen überschrieben. Da man dem Datenschreiber aber nur ein festes Archiv mit festen Variablennamen zuweisen kann, schlug der Versuch fehl.

Jetzt denke ich an ein Skript, welches Zeile für Zeile in ein neutrales Archiv mit internen Variablen kopiert. Mit jeder neuen Auswahl im Dropdown Menü wird das Skript ausgeführt und kopiert mir den Inhalt des ausgewählte Archivs in mein "Anzeige-Archiv".

Hat jemand eine passendes Skript oder eine bessere Idee?? 

zur Info: Es soll von jedem Temp. Sensor die Verweildauer pro Temperaturbereich z.B. 23 Minuten zwischen 130-140°C (und 14 weiteren Bereichen) über ca. 5 Jahre, täglich 1x festgehalten werden und abrufbar sein.


----------



## S7_Programmer (13 April 2010)

Hallo,

was hältst Du davon, die Daten in eine Datenbank, z.B. MySQL zu schreiben?
Da hast Du dann alle Möglichkeiten die Daten auszuwerten (eventuell über HTML-Browser oder Export in Excel oder so).
Grundvoraussetung hierfür ist Hardware wie SPS-Ethernet und ein PC; Software beispielsweise PHP und MySQL.

Ich machte schon einige Projekte, wo Daten auf MySQL übertragen wurde.

Falls Du mehr Infos hierfür brauchst, melde Dich noch mal.
Ich will Dir auf keinen Fall irgendetwas über Datenbanken vorlabern, wenn es für Dich sowieso nicht in Betracht kommt.

Gruß
S7_Programmer


----------



## flexible (13 April 2010)

Vielen Dank für deine Antwort!

Ich habe heute wieder den ganzen Tag am Skript gebastelt, es ist echt frustrierend. Das große Problem ist, ein Archiv welches von einer Kurvenanzeige in Benutzung ist, wahlweise mit anderen Inhalten zu beschreiben. Ich denke, dass ich da mit einer CSV Datei ganz schlechte Karten habe - denn jeder Versuch schreibend darauf zuzugreifen schlug fehl (egal ob ich das Archiv zufor gestoppt oder gar den Befehl zum löschen gegeben habe).

Auf meiner Heimfahrt habe ich mir (zusammen mit meinem Kollegen) für morgen einen letzten Test überlegt. Wenn eine CSV Datei nicht für die Benutzung mehrerer Anwender geeignet ist, dann doch sicher eine Datenbank!(?) 

Ich möchte allerdings kein weiteres Tool zur Auswertung oder Anzeige der Archive verwenden, ich will schon bei WinCC flexible bleiben. Ich erhoffe mir nur, dass ich während dem permanenten Zugriff durch die Kurvenanzeige mit einem Skript beliebige andere Archive in das Archiv der Kurvenanzeige schreiben kann. :idea:

Denkst du das funktioniert?

Gruß und gute Nacht!


----------



## PN/DP (14 April 2010)

*Probleme ohne Ende ...*

Hallo flexible,

in ein in WCCf benutztes Kurvenarchiv zu schreiben klappt bei *segmentierten Umlaufarchiven* in die jeweils 
gerade nicht benutzten Archiv-Segmente. Aber ob Dich dieser Tip der Lösung Deiner Idee so viel näher bringt?

Hier mal ein paar Gedanken, was ich als weitere zu lösende Probleme erwarte:

das für die Kurvenanzeige projektierte Archiv kann zur Runtime nicht gewechselt werden, nur der Inhalt kann manipuliert werden
das Archiv bzw. irgendein Archiv-Segment ist permanent von der Runtime zum Schreiben geöffnet, egal ob gestoppt
wie kann man die Runtime dazu bringen, ein bestimmtes Archiv-Segment zu öffnen bzw. rauskriegen, welches Segment gerade benutzt wird?
-> Tip: File-Timestamp und File-Attribut "Archiv" lesen bzw. manipulieren
Falls nötig: wie kann man WCCf dazu bringen, vorzeitig das Segment zu wechseln?
beim Segmentwechsel wird das dann geöffnete Archiv-Segment zunächst komplett gelöscht!
wie groß wäre die perfekte Segmentgröße für Deine Aufgabe?
eventuell darf die Runtime nie selbst in das Archiv schreiben. Also: nicht zyklisch archivieren sondern nur "bei Änderung"
-> mindestens bei jedem Runtime-Start (oder Ende?) schreibt die Runtime einen Datensatz in jedes Variablen-Archiv!
liest die Kurvenanzeige die geänderten Datensätze beim Blättern erneut aus dem Archiv oder nur beim Runtime-Start?
eventuell muß der Zeitstempel der von außen ins Archiv geschriebenen Datensätze manipuliert werden?
die Kurvenanzeige muß dazu gebracht werden, einen bestimmten Zeitraum anzuzeigen, will man nicht langwierig blättern
Falls auf eine Reaktion der Archivierung gewartet werden muß: Das kleinste Zeitintervall im Aufgabenplaner ist 1 Minute.
Ich bin normalerweise Optimist, doch hier rechne ich damit, daß irgendein Problem am Ende mit WCCf nicht lösbar ist.

Vielleicht ist Deine Aufgabe doch besser mit einer externen Datenbank realisierbar.
Oder mit einem ActiveX-Objekt.

Gruß
Harald


----------



## PN/DP (14 April 2010)

*mehrere Kurvenanzeigen?*

Noch eine Idee:
Vielleicht kannst Du statt 1 Kurvenanzeige mit mehreren Archiven besser mehrere Kurvenanzeigen mit je 1 Archiv benutzen.
Je nach Dropdown-Auswahl schaltest Du nur 1 Kurvenanzeige *sichtbar*.

Gruß
Harald


----------



## flexible (14 April 2010)

Hallo Harald,

auch dir vielen Dank für deine Ideen.
Eine Hand voll deiner Bedenken hatte ich auch schon und wie du schon richtig schreibst, an KO-Kriterien fehlt es nicht...

Trotzdem möchte ich den heutigen Tag noch damit verbringen, eine Datenbank für die Archivierung zu nutzen - in der Hoffnung, dann während des Lesezugriffs durch die Kurvenanzeige einen anderen Archivinhalt in das Kurvenanzeige-Archiv kopieren zu können.

Zu deinem letzten Vorschlag mit der Sichtbarkeit der Kurvenanzeige:
Da habe ich auch schon drüber nachgedacht. Dann hätte ich aber 15 Kurvenanzeigen in einem Bild (ok, in verschiedenen Ebenen) - nicht gerade elegant aber es wäre immerhin eine Lösung. 

Grüße


----------



## S7_Programmer (14 April 2010)

Hallo,

ich seh', dass du ganz viel Zeit investierst, aus einem Archive Daten in WinccFlex darzustellen.

Ich stand da schon mal vor dem gleichen Problem. Das ganze ließ sich über die Datenbank lösen. Ich muße längst vergangene Daten in WinCCflex anzeigen. Das ganze ging so:

1. Simatic CPU gibt Zeichenkette mit allen Kopf-Variablen (welche DB-Tabelle soll beschrieben werden) un Variablen über CP lean aus; alle Zahlen sind in Zeichenketten umgewandelt, Variablen mit "#" getrennt.

2. auf PC läuft im Hintergrung PHP, die diese Zeichenkette per Winsock-Funktion empfängt, zerlegt (Explode-Funktion), und dann in eine MySQL-Datenbank schreibt.

3. Wenn kein MySQL-Server im Netz zur Verfügung steht, kann MySQL auch auf WinCCFlex-PC im Hintergrund laufen (läuft ohne Probleme, Installation von Xampp verändert nicht einmal Regstry!)

4. Auf dem WinCCFelx Rechner läuft Apache/PHP (im Hintergrund).

5. In WinCC kann man ein Html-Fenster geöffnet werden. Wird hier eine "PHP"-Seite aufgerufen, so kann hier (fast) alles angezeigt werden, auch Grafik die dann aus MySQL-Datenbank per PHP erzeugt wird.

Mehr Informationen zu PHP/MySQL/Apache findest Du hier:
http://www.apachefriends.org/de/xampp-windows.html

XAMPP ist Lizenzkostenfrei.

Ich hoffe, dass ich Dir doch noch einige Infos mitgeben konnte.

Gruß
S7_Programmer


----------



## flexible (14 April 2010)

ja, ich wollte heute eigentlich noch einmal richtig Zeit investieren, aber das Tagesgeschäft hat mir da einen kleinen Strich durch die Rechnung gemacht.

Trotzdem habe ich noch genügend Zeit gefunden um zu erkennen, dass der Aufwand mit dem Nutzen nicht zu rechtfertigen ist. Ich bin zwar grundsätzlich noch der Meinung, dass es eine Lösung gibt (SQL...) aber da sollen sich andere mit quälen.

Danke an alle!


----------



## TMaroni (25 Januar 2011)

Diesen neuen Beitrag von Siemens kann Dir sicher behilflich sein!

Sieh Link:

http://support.automation.siemens.c...tandard&viewreg=WW&objid=16502685&treeLang=de


Gruss
TMaroni


----------



## marlob (25 Januar 2011)

TMaroni schrieb:


> Diesen neuen Beitrag von Siemens kann Dir sicher behilflich sein!
> 
> Sieh Link:
> 
> ...


ich hoffe schon, das er das Problem in den letzten 9 Monaten gelöst hat


----------



## flexible (27 Januar 2011)

nein, ich arbeite immernoch daran 

Mal ehrlich, ich habe das Problem nicht gelöst, ich bin es einfach umgangen. Aber danke für die Beschreibung zur Einrichtung einer MS-SQL DB. Klingt einfach und ich hätte schon Lust damit zu spielen. Z.Z. ist das Thema aber erst einmal vom Tisch - außerdem kommt doch bald das TIA Portal mit vielen neuen Funktionen!
 :TOOL:

Grüße und danke.


----------

