# MP370 Daten mittels Script über Ethernet transferieren



## Heizerfraktion (29 März 2006)

Hallo Zusammen,

ich möchte Daten von einem MP370 über Ethernet auf einen externen PC übertragen. Dort werden die Daten als CSV-Datei in einem bestimmten Verzeichnis abgelegt. Das Ganze ist mittels eines VB-Script in Protool realisiert. Soweit ist das ganze kein Problem.
Nun möchte ich prüfen, ob die Datei auch in dem Verzeichnis vorhanden ist und diese Datei auch wieder auf dem MP anzeigen. Zusätzlich möchte ich den Status der Ethernetverbindung prüfen und bei fehlendr Ethernetverbindung eine Meldung ausgeben. Da ich leider kein Profi in der Scripprogrammierung bin, wäre se schon, wenn mir da jemand weiterhelfen könnte.
Danke schon mal vorab.

Gruß Heizerfraktion


----------



## Reblaus (30 März 2006)

hallo,
Am pC geht das ohne Probleme am Panel fehlen leider die entsprechenden Befehle! 
Wenn du das unbedingt brauchst würd ich mich an denn Siemens Support wenden.


----------



## volker (30 März 2006)

klar geht das.

schau mal hier http://www.sps-forum.de/showthread.php?t=3028&highlight=datei+vbscript

auszug daraus:
'abfrage ob ein verzeichnis existiert
'If fs.dir("storage card2\daten") = "" Then fs.mkdir("storage card2\daten")

so kannst du prüfen ob der netzwerkpfad existiert.
anstatt storage card2\daten nimmst du \\netzfreigage\pfad
in obiger zeile wird bei nichtvorhandensein das verz erzeugt. anstatt dessen kannst du eine meldung setzen.

'abfrage ob eine datei existiert
'If fs.dir("storage card2\daten\datei.txt") = "" Then 
...
end if

eine datei auf einem mp anzeigen geht nicht so ohne weiteres. 
einzige möglichkeit ist den ie mit prosave installieren und mit diesem die csv öffnen.
oder mit ptp die datei zeilenweise einlesen. auf meiner hp findest du dazu ein beispiel unter sps\protool

*was ich dir aber empfehle.*
speicher deine daten nicht direkt ins netzwerk. sollte das mal ausfallen funktioniert deine protokollierung nicht mehr.
ich mache das so.
ich schreibe meine daten auf die storagecard. dann prüfe ich ob der netzwerkpfad existiert. wenn ja kopiere ich die datei ins netzwerk. weiterer vorteil ist, du hast eine sicherheitskopie.


----------



## Reblaus (30 März 2006)

volker schrieb:
			
		

> klar geht das.
> .


Ja die Abfrage ob ein File vorhanden ist schon das hatte ich nicht richtig gelesen( Sorry)
Aber ich meine die Abfrage ob eine bestimme IP erreichbar ist!
Das bekomme ich nicht hin. 
also ein Ping geht nicht zumindest nicht wie gewünscht:
Würde gerne einen Button drücken und in meiner Stringvariable soll stehen IP erreichbar oder nicht.
Wie gesagt am PC kein Problem am Panel schaff ich es einfach nicht!


----------



## volker (30 März 2006)

nein, mit der ip geht das nicht.
aber du kennst doch den freigabename und das verzeichnis auf das du zugreifen willst.
du fragst nun ab, ob dieses verzeichnis existiert. ist dies der fall, weisst du auch das der rechner erreichbar ist. existiert das verzeichnis nicht, ist der rechner nicht da und du setzt dir das störmeldebit.


----------



## Heizerfraktion (30 März 2006)

Hallo Zusammen,

vielen Dank erst mal für die promten Antworten. Das hat mir shr weitergeholfen. Die von Volker angesprochene Variante, die Daten auf der Storagecard2 (extern) zu speichern, ist bereits realisiert. Mit der zusätzlichen Kopie ist eine Auswertung über Netzwerkzugriff möglich->Excel. 
Bei dem Projekt sind die Rezeptdaten als Archiv auf dem Flash vom MP abgelegt. Ich persönlich halte davon nix. Siemens rät auch von dieser Variante auch ab und empfiehlt das speichern auf einer externen CFcard. Wer hat Erfahrungen mit der Performance und der Lebensdauer von solchen Karten?


----------



## volker (30 März 2006)

ich speicher grundsätzlich alles auf der cf-card. hatte noch nie probs mit geschwindigkeit oder ausfällen. einige anlagen laufen so schon seit einigen jahren. und nimm bloss nicht die von siemens. ich glaub da kosten 32mb 100€. ich benutze stinknormale die es überall zu kaufen gibt.

übrigens:
mit dem usb-treiber kannst du das auch auf einen usb-stick schreiben falls dir das besser gefällt. findest du auf meiner hp unter sps/protool.
leider funktionieren nicht alle sticks (siehe geräteliste)

vorteil ist auch, das du den stick mal eben ziehen kannst ohne das panel abzuschalten. mit der cfcard habe ich da schlechte erfahrungen gemacht. beim stecken der card hats die schnitstelle zerschossen.


----------



## Heizerfraktion (30 März 2006)

Hallo Volker,
vielen Dank für die Info. Du hast in einem anderen Beitrag ein VB-Script für WIN CE geschrieben. Kannst du mir das Projekt bitte zumailen, da ich den Link nicht öffnen kann? 
Zitat:
http://www.sps-forum.de/phpBB2/viewtopic.php?t=2972

Vielen Dank schon mal vorab.

Gruß Heizerfraktion


----------



## volker (30 März 2006)

das dort erwähnte projekt findest du auf meiner hp auch unter protool.
heisst: MP270_Textdatei_anzeigen.zip

aber versprich dir nicht zuviel davon. das funktioniert zwar aber wenn die datei sehr lang ist dauert das einlesen recht lange.

grundsätzlich funktioniert das so.
die ersten 20 zeilen werden gelesen und in vars abgelegt. datei wird geschlossen. position wird gespeichert. beim weiterblättern wird die datei wieder gelesen aber die zeilen 21-40 in die vars gelegt. usw.
d.h. je weiter du blätterst, desto länger dauert das einlesen.
was besseres ist mir aber bis jetzt nicht eingelallen.


----------



## Reblaus (31 März 2006)

volker schrieb:
			
		

> aber du kennst doch den freigabename und das verzeichnis auf das du zugreifen willst.


Da hast du recht das gilt für denn obigen Fall auf mich trifft es leider nicht zu da ich z:B: auf ein anderes Panel nicht zugreifen kann! Das müsste ich über die IP Abfragen und genau das geht nicht!


----------



## volker (31 März 2006)

du kannst nicht auf ein panel auf dem wince läuft zugreifen. nur vom panel aus ins netz.
*keine chance*

du kannst das so machen, das du einen win-rechener als puffer nutzt. das eine panel schreibt dorthin, das andere holt sich die daten dort. wenn beide am gleichen bus hängen, kannst du das ja über ein steuerbit synchronisieren.

versuchen könntest du mal folgendes.
starte ein ping auf die ip und versuche die ausgabe in eine datei umzuleiten.
ping 192.168.1.1 > ip-antwort.txt
diese datei könntest du mit einem script auswerten.
ob die umleitung in eine datei funzt, weiss ich aber nicht


----------



## andre (31 März 2006)

Hallo Volker,
dieses Thema interessiert mich auch sehr. Leider habe ich mit Script-Programmierung und VB noch nicht gearbeitet. Könntest Du mir bitte einen Ansatz aufzeigen, wie ich per Script eine archivierte csv-Datei von der CF-Karte ins Netzwerk kopiere?
Kennst Du Dokumentationen, mit denen ich mich in die VB-Script-Materie einarbeiten kann?
Viele Grüße
Andre




			
				volker schrieb:
			
		

> *was ich dir aber empfehle.*
> speicher deine daten nicht direkt ins netzwerk. sollte das mal ausfallen funktioniert deine protokollierung nicht mehr.
> ich mache das so.
> ich schreibe meine daten auf die storagecard. dann prüfe ich ob der netzwerkpfad existiert. wenn ja kopiere ich die datei ins netzwerk. weiterer vorteil ist, du hast eine sicherheitskopie.


----------



## volker (31 März 2006)

hier wird von cf nach usb kopiert.
anstatt usb nimmst du deinen netzwerkpfad.
*für wince*

```
Dim f,fs
Set f= CreateObject("filectl.file")
Set fs = CreateObject("filectl.filesystem")
fs.filecopy "\storage card2\archiv_bm0.csv", "\storage card usb\archiv_bm0.csv"
```
 
*für win*

```
Dim fs
Set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFile "D:\PROJEKT\DATEN\archiv.csv", \\datenserver\maschineX"
```


----------



## M-Arens (3 Mai 2006)

Ist es auch möglich die Daten direkt in eine Datenbank zu schreiben????


----------



## volker (3 Mai 2006)

ja das geht. zumindest unter win. bei wince denke ich ehr nicht.

schau mal hier
http://www.activevb.de/tutorials/tut_mysqldb/mysqldb.html


----------

