VBScript WinCE TP1200 Datenaustausch Server

ant1994

New member
Beiträge
3
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Servus zusammen,

momentan bin ich dabei ein Skript zum laufen zu kriegen, um Daten aus einer CSV-Datei auf einen Server zu kopieren und dann die CSV auf einen zweiten Ordner auf der SD-Karte auszuschneiden und einzufügen

Ich nutze ein Tp1200 und meinen Rechner als "Server".

Die Verbindung ist hergestellt und die Daten werden auch übertragen, bzw ausgeschnitten, auch zum Server (Laptop).

Nun möchte ich jedoch, sollte die Verbindung zum Server im laufenden Betrieb abbrechen, die Daten nur von einem Speicherort zum anderen auf der SD-Karte ausschneiden. Wenn ich die Verbindung zum Laptop trenne, hängt sich meine Runtime am Panel auf und ich kann nichts mehr schreiben.
Nach dem Neustart wird alles wie gewünscht ausgeführt.

Meine Frage:
-Kann ich die Unterbrechung zum Server auswerten, wenn ja wie?
-Gibt es eine Lösung für ein solches Problem?
-Ist meine On Error Resume next Anwendung falsch?
-Funktionieren tut alles, bis ich die Serververbindung trenne..

!Meiner Meinung nach sucht das Panel nach der verloren gegangenen Serververbindung. Dies dauert zu lange und es hängt sich irgendwo auf.
Ich möchte kurz prüfen ob der Server erreichbar ist, wenn nicht soll er mit der weiteren Anwendung weiter machen.!

Codeschnippsel:


Set fso = CreateObject("FileCtl.FileSystem")

ShowSystemAlarm "Filesystem-ActiveX-Objekt wurde erstellt"

'Kopiervorgang auf Server
On Error Resume Next

fso.FileCopy "\von\".csv", "\\XXYY\zu\" & ".csv"

On Error Resume Next

ShowSystemAlarm "meinedatei.csv wurde auf den Server kopiert"

'Datei wird auf der SD-Karte ausgeschnitten und verschoben

Set fso = CreateObject("FileCtl.FileSystem")

ShowSystemAlarm "Filesystem-ActiveX-Objekt wurde erstellt"

fso.MoveFile "\von\" & ".csv" , "\zu\" & ".csv"

ShowSystemAlarm "meinedatei.csv wurde ausgeschnitten"


Codeschnippsel ende
 
Zuletzt bearbeitet:

erkoausbe

Active member
Beiträge
28
Punkte Reaktionen
2
Hallo ant1990,

ich habe mal so etwas ähnliches gemacht, um Daten aus der SPS auf einem Netzlaufwerk abzulegen.
Wenn das Netzlaufwerk nicht zur Verfügung stand, habe ich die Daten zunächst lokal auf einer SD-Karte abgelegt.
Das ist ja in etwa auch Deine Anwendung.

Zuerst prüfe ich, ob der Ablagepfad zur Verfügung steht. Das sieht dann in etwa so aus:

Set F = CreateObject("FileCtl.Filesystem")
Set fso = CreateObject("FileCtl.File")


'Prüfen, ob Ablagepfad zur Verfügung steht
'sonst zunächst auf USB-Stick / Flash / SD-Card verweisen
If F.Dir(strPath , 16) = "" Then
'Ordner nicht vorhanden/Folder not exists
'Also Ablage zunächst auf USB-Stick bzw. Flash
'strPath = "\Storage Card USB"
'strPath = "\Flash"
strPath = "\Storage Card SD"
strFileName = strFileBaseErr & strFileName
Else
'Wenn Ablagepfad ok, dann Dateien umkopieren

'Ersten Dateinamen einlesen
'x = F.Dir("\Storage Card USB\" & strFileBaseErr & Ext,0)
'x = F.Dir("\Flash\" & strFileBaseErr & "*" & Ext,0)
x = F.Dir("\Storage Card USB\" & strFileBaseErr & Ext,0)
'Dateien verschieben und nächsten Dateinamen einlesen
Do While x <> ""
'F.MoveFile "\Storage Card USB\" & x, strPath & "\" & x
'F.MoveFile "\Flash\" & x, strPath & "\" & x
F.MoveFile "\Storage Card SD\" & x, strPath & "\" & x
x = F.Dir
Loop

End If

Die erzeugten Dateinamen unterscheiden sich, wenn der Ablageort nicht zur Verfügung steht.
(strFileBasErr enthält den Basis-Dateinamen für die Daten, die zunächst lokal abgelegt werden)

Aus dem Beispiel müsstest Du Deine Aufgabenstellung ableiten können.

Die Applikation läuft bei mir auf einem TP1500 Comfort (TIA V14)

Viel Erfolg!
 

PN/DP

User des Jahres 2011 - 2013; 2015 - 2017; 2020
Beiträge
17.268
Punkte Reaktionen
5.076
Zuviel Werbung?
->Hier kostenlos registrieren
Wenn ich die Verbindung zum Laptop trenne, hängt sich meine Runtime am Panel auf und ich kann nichts mehr schreiben.
Hast Du mal ein paar Minuten gewartet? Wenn das Netzwerkkabel vom Panel zu einem anderen Ethernet-Port (PC oder Switch oder ...) unterbrochen wird, dann wird es vermutlich ein paar Minuten dauern bis das Panel ohne Ethernet wieder normal funktioniert (wegen Windows Media Sense).

Du hast nicht zufällig Archive auf den Netzwerkpfad laufen?

Das Panel sollte nicht ständig mit dem Netzwerkpfad/Server verbunden sein müssen, sondern nur bei Bedarf, wenn eine Datei kopiert/verschoben werden soll.

Ob ein Netzwerkpfad erreichbar ist, kann man mit If fso.Dir("\\PCXXX\Folder") <> "" Then ... prüfen (das kann einige Sekunden dauern). siehe FAQ Function FolderExist(Path)

Harald
 

faust

Well-known member
Beiträge
450
Punkte Reaktionen
103
...
-Ist meine On Error Resume next Anwendung falsch?
...
Hallo ant,

die Anweisung "On Error Resume Next" muss in einem Script nur EINMAL eingefügt werden.
Eine mehrmalige Verwendung macht nur Sinn, wenn du das Überspringen eines Fehlers mit "On Error Goto 0" partiell deaktiviert hast und danach wieder "scharf" schalten willst.

Ein weiterer Hinweis:
"On Error Resume Next" sollte IMMER durch eine Fehlerbehandlung mit Hilfe des Error-Objektes ergänzt werden,
z.B. kann mit "If Err.Number = 123 Then..." gezielt oder mit "If Err.Number <> 0 Then..." allgemein auf bestimmte Fehlercodes reagiert werden.


Gruß, Fred
 
OP
A

ant1994

New member
Beiträge
3
Punkte Reaktionen
0
Danke für eure Antworten, ich werde das mal überprüfen (mit der Minute warten) und gegebenenfalls noch eure Vorschläge verwirklichen und testen. Ich müsste wohl zuerst fragen ob das Netzlaufwerk erreichbar ist, da das warten leider beim Kunden keinen Sinn macht.
Archive läuft bei meinem Netzwerkpfad nicht.
Danke auch an Harald und Fred für die Ergänzungen zu meinem Skript, bin ein Neuling auf dem Gebiet.

erkoausbe, danke für die Alternative, das sollte ich testen.

Ich melde mich wenn ich es ausprobieren konnte
 
OP
A

ant1994

New member
Beiträge
3
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Servus zusammen,

erkoausbe, deine Laufwerkabfrage hat mir geholfen, um mein Skript nun Lauffähig zu machen. Das Panel hängt sich nun nicht mehr auf. Ich denke dass es sich bei meiner vorherigen Version im Skript "aufgehängt" hatte, da das Laufwerk fehlte. DANKE!

beste Grüße aus Niederbayern!
 

erkoausbe

Active member
Beiträge
28
Punkte Reaktionen
2
Servus zusammen,

erkoausbe, deine Laufwerkabfrage hat mir geholfen, um mein Skript nun Lauffähig zu machen. Das Panel hängt sich nun nicht mehr auf. Ich denke dass es sich bei meiner vorherigen Version im Skript "aufgehängt" hatte, da das Laufwerk fehlte. DANKE!

beste Grüße aus Niederbayern!
Danke für die Rückmeldung, freut mich geholfen zu haben!

Grüße aus Norddeutschland zurück!
 
Oben