csv-Datei in Array einlesen - Welche Baustein?

Begonnen von Vaninger, 18. November 2012, 18:46:24

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

Vaninger

Hallo liebes Oscat Forum,

ich wollte mal nachfragen, ob es von Oscat bereits einen Baustein für folgende Aufgabenstellung gibt. Ich würde gerne mittels Baustein ein Rezept aus einer Access Datenbank in meine Phoenix SPS einlesen und diese Daten dann hier weiterverarbeiten (z. B. in ein Array schreiben). Mit diesen Daten (hauptsächlich Zeiten und Temperaturen) soll dann ein Rezept abgefahren werden.
Da das Einlesen von Access Dateien eher schwierig sein wird, könnte man die unterschiedlichen Rezepte ja in eine csv-Datei speichern und aus dieser auslesen...

Beispielhafter Aufbau:
Name; Temp_E; Temp 1; Zeit 1; Temp 2; Zeit 2; Temp 3; Zeit 3 usw. -> Header
Rezept 1; 65,0; 63,0; 15; 70,0; 60; 72,0; 10; 76,0; 5 usw. -> Daten

Vielleicht hat jemand einen Tipp für mich...

Danke und schöne Grüße
Daniel 

peewit

hallo

der baustein CSV_PARSER_FILE kann eine Datei im CSV-Format auswerten und die Werte können dann natürlich auch in ein array abgelegt werden.

Als kleine hilfe gibt es ein Demoprogramm in der gruppe DEMO mit dem namen CSV_PARSER_FILE_DEMO

das demoprogramm liest die csv datei im anhang in ein array ein !



[gelöscht durch Administrator]

Vaninger

Hallo Peewit,

vielen Dank für deine Antwort. Habe mir den Baustein und das Demo gestern mal angeschaut, so richtig verstehen tue ich ihn aber noch nicht. Wie kann ich denn eigentlich die Demo in PCWorx ausführen?

Hast du eventuell noch ein weiteres Beispiel? Mit dem Baustein DLOG_STORE_FILE_CSV könnte ich dann auch Werte in eine csv Datei speichern, die ich dann später wieder auslese, oder?

Vielen Dank für die Antwort.

Schöne Grüße
Daniel

peewit

hallo

da du den baustein deinen bedüfnissen anpassen musst, solltest du die network.lib als projekt öffnen und den Baustein CSV_PARSER_FILE_DEMO im ordner demo exportieren, und in dein eigenes projekt importieren

der baustein benutzt eine neue datenstruktur die du auch umbenennen und anpassen solltest

TYPE
  csv_parser_demo_col : ARRAY [1..4] OF REAL;
  csv_parser_demo     : ARRAY [1..2] OF csv_parser_demo_col;
END_TYPE

duzu passend gibt im demo programm die variablen

line_cnt   (Wert 2)         <-- anzahl der zeilen
col_cnt   (WErt 4)                   <- anzahl der spalten

die du auch deinen anforderungen entsprechend anpassen solltest
      
DLOG_STORE_FILE_CSV ist ansich gedacht um fortlaufend daten zu schreiben
man könnte es dafür vergewaltigen, aber das wäre eher unpassend, und mit kanonen auf spatzen schiessen