Daten Export in Pc im CSV-Format

Outrider

Level-1
Beiträge
745
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
Ich soll von meiner CPU 314C-2DP Daten an einen PC in CSV-Format exportieren.Als Schnittstelle käme ein CP in Frage.
Geht das überhaupt, wie kann eine SPS CSV erzeugen ?
Gruß und Danke für Infos
 
Mit einem CP343-1 Advanced (IT-CP) kann die CPU CSV-formatierte Dateien erzeugen und per FTP an einen PC schicken oder der PC holt sich die CSV-Datei einfach irgendwann per FTP aus dem Filesystem des IT-CP.
Hier ein fast fertiges Step7-Projekt, die CPU muß "nur" noch die File-Nutzdaten in CSV formatieren.
Applikationen & Tools: Datenübertragung per FTP mit dem SIMATIC NET IT-CP

CP343-1 Advanced (1.630,00 EUR): https://eb.automation.siemens.com/goos/catalog/Pages/SearchResult.aspx?search=6GK7343-1GX30-0XE0

Ganz einfach ginge das CSV-Datei erzeugen, wenn schon ein scriptfähiges Panel oder eine WinCCflex-RT vorhanden wäre.
Das Panel oder die WinCCflex-RT könnte dann die CSV-Datei erzeugen und auf einen freigegebenen PC-Ordner im Netzwerk speichern.

Harald
 
Mit einem CP343-1 Advanced (IT-CP) kann die CPU CSV-formatierte Dateien erzeugen und ...... der PC holt sich die CSV-Datei einfach irgendwann per FTP aus dem Filesystem des IT-CP.

So habe ich es auch schon vor 6 Jahren mal in einem Projekt gemacht.
Damals hatte der CP341-1 IT 30MB RAM und 30 MB EEPROM.
Allerdings sollte man es vermeiden permanent in den EEPROM-Bereich
zu schreiben. Daher habe seinerzeit ein USV-Modul verwendet, der die
CPU und den CP zumindest für gegen kurze Spannungsausfälle schützt.
Damals wurde die csv-Dateien immer einmal die Woche per Laptop
abgezogen. Blöd war nur, wenn man das abziehen und anschließende
Löschen (Verschieben geht mittels FTP nicht) nicht regelmäßig macht
(1 Mal im Monat) dann waren die 30 MB natürlich irgendwann voll.

Frank
 
Schau dir mal HSDBASE an. Zugriff über CP,IBH-Link oder NETLinkPRO möglich.
Daten können einfach per CopyPaste aus der S7-Symbolik übernommen werden.
Eine zyklusgenaue Aufzeichnung ist ebenfalls möglich. Ein kostenlose
Demo steht hier zum Download bereit.
 
hallo,

habe das Thema eben gesehen und genau das gleiche Anliegen. Denke mir aber das es auch ohne Programme von Firmen gehen muss. Bei mir wäre es eine CPU 315-2DP mit einem TP170B und dazu eine CP343 Lean. Das TP170B unterstützt leider keine Archive. Welche Möglichkeiten existieren noch außer die hier schon genannten Programme?

gruß

fraggle
 
Das TP170B unterstützt leider keine Archive. Welche Möglichkeiten existieren noch außer die hier schon genannten Programme?
Versuchs mal über Rezepturen. Auch am 170B gibt es die Funktion ExportiereDatensätze. Ob mal dort als Ziel ein Netzwerkpfad eingeben kann hab ich aber noch nicht getestet.
 
vielen Dank. libnodave ist schon in arbeit. Rezepturen probier ich mal aus.

Falls Interesse besteht werde ich meine Lösung später mal hier posten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ob man zu einer fertigen Software greift, oder selber etwas entwickelt ist doch eine wirtschaftliche Frage:

Wer gute Hochsprachenkenntnisse hat, kann natürlich libnodave verwenden. Die benötigte Arbeitszeit, um damit selbst einen sehr simplen Datenlogger zu realisieren sollte aber nicht unterschätzt werden. Wenn noch eine kleine Oberfläche und Fehlerbehandlung (z.B. wenn einer mal den Stecker zieht) hinzukommen, werden die Entwicklungskosten schnell die Anschaffung einer fertigen Software übersteigen.

Erfahrungsberichte hierzu wären sicherlich sehr interessant.
 
C/C++ ist mir ziemlich bekannt. Über die anfallende Programmierarbeit bin ich mir schon bewusst, nur wie viel es wird weis man am Anfang nie ;)

Vielen Dank für das Tool! Das werde ich natürlich ausprobieren.

Werde mich mal Rückmelden wenn ich fertig bin.
 
Wollte mich noch einmal Rückmelden.

Das Auslesen der Daten ist jetzt über Visual Studio C# 2010 mit LibNoDave realisiert worden.

Es gibt eine Windows Forms Anwendung die den Prozess visualisiert und nur der Fernüberwachung dient.

Das Archivieren der Daten wurde wie folgt gelöst:

In der S7 wurde ein FC und einen DB extra für die Datenübertragung angelegt.

In dem FC werden die benötigten Werte ausgelesen, in Integer konvertiert, falls Kommastelle enthalten, noch multipliziert um den Kommaanteil nicht zu verlieren.

Ausgewählte Merkerbits werden in einen Integer in den DB geschrieben um diese auch Archivieren zu können.

Das Ergebnis wird in den extra DB geschrieben. In diesem sind nur die Werte enthalten, die von LibNoDave ausgelesen werden sollen.

Die ausgelesenen Werte werden auf Änderung überprüft. Wenn sie sich ändern wird die Änderung in folgendem Format in eine Neue Zeile einer CSV Datei geschrieben:

Variablenbezeichnung ; Alter Wert ; Neuer Wert ; Stunde:Minute:Sekunde

Ist der Prozess beendet wird die CSV Datei geschlossen.
Bei neuem Prozess eine neue angelegt.

Für die Aufzeichnung wird ein kleiner Mini ITX Server benutzt.

Das wurde unteranderem im Rahmen eines Abschlussprojektes durchgeführt.

Bei weiteren oder detaillierteren Fragen können sich interessierte über das Forum melden.
 
Warum das umwandeln in Integer? Du kannst doch auch einen Real Wert auslesen.

Wenn du C# verwendest, kannst du dir auch noch S7.NET (http://s7net.codeplex.com/) oder meine Bib (http://siemensplctoolboxlib.codeplex.com/) ansehen, die sind etwas einfacher zu verwenden als LibNoDave (zumindest von mir so empfunden!)

Aber wenns schon läuft, ist ja gut!

Ich hab meinen Protokoller als Windows-Service geschrieben, so das dieser auch Daten von der SPS lesen kann, wenn kein User angemeldet ist!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei Auslesen von Real Zahlen kamen falsche Werte an.

Nach bißchen googlen habe ich gelesen das Visual Studio C# die Float Zahlen mit einem Komma trennt. Die SPS die Real Zahlen allerdings mit Punkt. Wusste nicht wie ich das Studio umschalte auf International dann habe ich einfach Integer genommen. Die Werte an der Anlage werden eh nie größer als ein Integer.
 
Bei Auslesen von Real Zahlen kamen falsche Werte an.

Nach bißchen googlen habe ich gelesen das Visual Studio C# die Float Zahlen mit einem Komma trennt. Die SPS die Real Zahlen allerdings mit Punkt. Wusste nicht wie ich das Studio umschalte auf International dann habe ich einfach Integer genommen. Die Werte an der Anlage werden eh nie größer als ein Integer.

?????

Das ist doch nur eine Darstellungssache...
 
Nach bißchen googlen habe ich gelesen das Visual Studio C# die Float Zahlen mit einem Komma trennt. Die SPS die Real Zahlen allerdings mit Punkt.
In REAL-Zahlen in der SPS (und in Computern) ist überhaupt kein Dezimalzeichen enthalten - weder ein Punkt noch ein Komma.
http://de.wikipedia.org/wiki/IEEE_754

Dezimalpunkt bzw. Dezimalkomma entstehen erst, wenn die REAL-Zahlen auf irgendeinem System angezeigt oder z.B. in CSV formatiert werden. Dann benutzen die Formatierungsfunktionen in der Regel die in der Systemsteuerung (Control panel) unter Regional-Settings eingestellten Dezimaltrennzeichen. Wenn man diese Regional-Settings nicht umgeht, dann kann man auch innerhalb der Windows-Welt Probleme bekommen, wenn man z.B. auf einem deutschen Windows-System eine CSV-Datei erzeugt und auf einem englischen Windows-System einliest.

Du hast nun dafür gesorgt, daß in Deiner CSV-Datei gar kein Dezimaltrennzeichen enthalten ist.
Die nächste Falle ist dann noch das Listentrennzeichen, was auch nicht unbedingt ein Semikolon sein muß.

Bei Auslesen von Real Zahlen kamen falsche Werte an.
An Dezimal-Komma/Punkt kann das ja eigentlich nicht gelegen haben.
Falls Dich die Aufklärung für die "falschen Werte" noch interessiert, dann erkläre mal genauer, wie "falsch" die Werte waren.

Harald
 
Zurück
Oben