# WinCC Flexible Daten in Datei speichern und wieder auslesen



## themasterchris (29 Oktober 2011)

Hallo Leute,

ich bin noch recht unerfahren mit WinCC Flexible aber ich hoff mit eurer Hilfe bekomm ich das hin.

Ich hab die Aufgabe bekommen Daten die man für einen Prüfablauf im Bedienteil definiert zu speichern in einer Datei deren Namen vorher über das Bedienteil festlegt. Wenn man nun mehrere Prüfprogramme gespeichert hat soll man diese dann wieder über ein Dropdown Menü aufrufen und wieder in die S7 schreiben.

Könnt ihr mir dabei helfen? 

Die Daten per Skript in eine csv Datei zu schreiben habe ich jetzt schon hinbekommen. Es ist jetzt nur wie kann ich den Namen festlegen und wie kann ich das ganze dann wieder in einer Liste darstellen und abrufen.

Wäre euch wirklich sehr dankbar.

Mfg
Chris


----------



## Ralle (29 Oktober 2011)

themasterchris schrieb:


> Hallo Leute,
> 
> ich bin noch recht unerfahren mit WinCC Flexible aber ich hoff mit eurer Hilfe bekomm ich das hin.
> 
> ...



Gugggggst du bitte in die FAQ dieses Forums, gibt es alles was du brauchst, inkl. Bsp.!


----------



## themasterchris (29 Oktober 2011)

Danke erstmal für die schnelle Antwort.

Nach den Beispielen in der FAQ hab ich das schreiben schon mal hinbekommen aber wie kann ich das mit Variablen Speichernamen machen? 

Sprich wie bekomm ich es hin das ich in ein Feld einen Namen schreibe darunter ist der Button der mein Skript aufruft und der Name nun als Dateiname übernommen wird? 

Und wie bekomm ich es hin das ich die nun gespeicherte Datei wieder auslese, sodass ich die Daten wieder dort habe wo ich sie her habe?


----------



## fuss (29 Oktober 2011)

Du könntest es vielleicht auch über Rezepte in WinCC flexible realisieren


----------



## Larry Laffer (30 Oktober 2011)

Hallo,
ich würde das wie folgt lösen (da es ja keine Datei-Auswahlbox gibt) :
Du machst dir eine Liste mit Menge x an Plätzen. Jede Position der Liste ist ein Datei-Name (z.B.). Beim Starten der Visu lädst du dir zunächst diese Liste. Irgendwo hast du dann ja mal eine Auswahl (oder willst eine machen). Dort ordnest du dann jeder Taste ein Element der Liste zu. Wird die Taste betätigt so lädst du die zugehörige Datei.

Von wie vielen Prüfprogrammen mit wie vielen Unterdaten sprechen wir hier ?
Wäre es nicht auch ein Weg, mit nur einer Datei zu arbeiten, die in der ersten Spalte jeder Zeile den Namen des jeweiligen Prüfprogramms enthält ? Dieser Weg ist natürlich nur dann sinnvoll, wenn die Menge der unterschiedlichen Prüfungen sinnvoll begrenzbar ist.

Schreib mal mehr dazu ...

Gruß
Larry


----------



## themasterchris (30 Oktober 2011)

Also folgende Fortschritte sind mir schon gelungen. 

Ich hab es geschafft die Daten per Skript in eine CSV zu exportieren, deren Name ich vorher bestimmen kann das funktioniert auch wunderbar.

Meine Knackpunkte liegen jetzt darin das Verzeichnis mit den gespeicherten CSV Dateien in WinCC anzuzeigen, sodass man sich eine Datei auswählen kann und die Daten wieder zurück spielen kann in die Datenbausteine von denen ich sie vorher ausgelesen habe.

Gibts dafür ein Beispiel? Das auslesen das ich bis jetzt gesehen habe wurde immer mit einer Schleife gemacht und einfach nur gelesen mehr nicht. Das bringt mich in diesem Fall aber nicht wirklich weiter.


----------



## Lupo (31 Oktober 2011)

ich hätte hierzu auch die gleichen Fragen wie Larry !!!


----------



## themasterchris (31 Oktober 2011)

Das Problem ist ich weiß nicht wie viel Programme es mal werden sollen. Es können evtl nur 10 sein aber es könnten auch 100 werden.

Der Punkt ist ich möchte es so einfach wie möglich für den Endkunden machen. Es soll als CSV Datei abgelegt werden, damit man es mit Excel aufmachen kann dort z.B. die Daten ändern kann die Datei wieder zurück spielt und in die Steuerung läd.

Auch soll es möglich sein Prüfabläufe per Excel zu definieren. Sprich ich nimm eine Excelliste die ich vorher exportiert habe schreibe dort andere Zahlenwerte rein speicher diese unter einem anderen Namen und so hab ich einen anderen Prüfablauf denn ich nun wieder ins Bedienteil laden möchte und die Werte an die Steuerung übergibt.

Wie gesagt der Export funktioniert schon so wie ich das möchte nur am Import scheitert es noch. Ich möchte z.B die Liste die ich gerade eben per Export erstellt habe und in einem Ordner z.B. Druefablauf gespeichert habe in einem Ein/Ausgabefeld anzeigen lassen, sodass ich dort einfach auf das nun vorhanden Programm Klicke und es wieder einlese und in die Steuerung speichere.

Soweit die Theorie nur funktioniert das leider nicht ganz so.


----------



## themasterchris (31 Oktober 2011)

Sooo

bin gerade glaub ich auf einen Lösungsanzsatz gestoßen um zumindest mal die Daten wieder zurück zu bringen.

Ich hoffe ihr könnt mir sagen ob das so funktioniert. Wäre es möglich die CSV auszulesen und in ein Array zu schreiben? 

Meine CSV Tabelle schaut wie folgt aus 1. Zeile sind die Überschriften untergebracht, dann eine Leerzeile, dann folgen die 10 Zeilen mit jeweils 6 Werten. Somit wenn ich das auslesen würde wäre es ein Array mit 10x6 Elementen.

Wenn ich die Daten so in das Array einlesen kann wie ich das in meiner Tabelle habe kann ich ja jedes Arrayelement wieder aufrufen und an einen Datenbaustein übergeben!?!?!?

Ist das so möglich????

Hab ich das überhaupt richtig erklärt? 

Ich hoffe ihr versteht was ich will


----------



## Larry Laffer (31 Oktober 2011)

Ja ... das wäre so möglich ... aber sogar auch noch weit mehr.
Du schreibst alle zusammengehörigen Daten in eine Zeile und trennst die jeweiligen Variablen-Inhalte mit einem Semikolon (z.b.). Nun kannst du beim Einlesen mittels des Befehls SPLIT die Zeile in ihre Einzel-Einträge zerlegen.

Aber es ist schon richtig, wenn du es schrittweise angehst.

Gruß
Larry


----------



## themasterchris (31 Oktober 2011)

Jetzt bin ich wieder bei der Theorie aber mit dem umsetzen ist das so ein Problem. 

Könnt ihr mir ein Beispiel geben wie ich das am einfachsten umsetzen kann? Wie gesagt bin in VBScript absoluter Neuling und kenn mich überhaupt nicht aus.

Wie schreib ich das Ganze jetzt in ein Array?


----------



## Larry Laffer (1 November 2011)

In der Forensuche ist mir zum Stichwort "Arrayelement" z.B. der Thread aufgefallen. Hier vor allem vielleicht den/die Beiträge von Kai beachten.

Es gibt hier im Forum in der Suche aber noch viel mehr zu dem Thema.

Gruß
Larry


----------



## themasterchris (1 November 2011)

So erstma danke für deinen Tipp. 
Hab dann http://spsforum.com/showthread.php?t=23116 diesen Beitrag gefunden und der hat mich dann zum Ziel geführt. 

So hab aber schon das nächste Problem. 

Wenn ich jetzt eine Datei speichere und zwar ich gebe einen Dateinamen in ein Feld ein drücke auf speichern das funktioniert ja auch wunderbar möchte ich das Verzeichnis jetzt auflisten, sodass ich sehe welche Dateien (Programme) schon vorhanden sind eins auswählen dann auf den Button laden drücke dort mein Skript abgearbeitet wird und meine Daten zurück holt.

Hast du da evtl auch einen Tipp für ich?  Wäre wirklich gut brauch es nämlich recht zeitnah.


----------

