TIA TIA V16: TP1500 Comfort - Meldearchiv auf Netzlaufwerk kopieren

Freakazoid

Level-1
Beiträge
20
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

Vielleicht hat hier noch jemand eine Idee und kann mir weiterhelfen.

Folgende Aufgabe: Wir haben hier ein TP1500 Comfort. Auf diesem wird ein Skript ausgeführt in dem über einen filecopy-Befehl das Meldearchiv auf einen Win11-PC im Netzwerk geschrieben werden soll.

Dies machen wir so mittlerweile seit mehreren Jahren und ca. 10 Maschinen bzw. HMIs. Jedoch will es an dieser Anlage einfach nicht funktionieren. Das Interessante das wir hier auch noch eine zweite Maschine mit einem TP1200 Comfort haben bei dem es einwandfrei funktioniert. Auch bei Maschinen anderer Hersteller funktioniert das einwandfrei. Was mich zusätzlich stutzig macht ist die Tatsache dass wir auch die Rezeptdaten auf dem Server sichern und dies ohne Probleme funktioniert. Hier ist das halt kein filecopy-Befehl sondern es funktioniert über ein ExportDataRecords. Also alles irgendwie recht verwirrend.

Die üblichen "Verdächtigen" haben wir schon gecheckt. Die Subnet-Maske passt, der Quell- und Zielpfad sind richtig und auch im Server sind die Ordner richtig freigegeben.

Hier mal die Fehlermeldung die wir im HMI bekommen:
1666181830907.png

Hier mal das Skript:
Sub Meldearchiv_auf_Netzlaufwerk_kopieren()
Dim fs, Laufindex, Pfad, Datei

Pfad = "xxxxxxxx"

Datei = "Meldearchiv_DSFN_" & Date & "__" & Hour(Now) & "_" & Minute(Now) & "_" & Second(Now) & ".csv"

Set fs = CreateObject("FileCtl.filesystem")

fs.FileCopy "\Storage Card SD\Logs\Meldearchiv0.csv", "\\" & Pfad & "\" & Datei

End Sub
Wie gesagt, das Skript läuft in dieser Form auch auf anderen Anlagen (Den Pfad habe ich aus Datenschutzgründen ausgeblendet).

MfG
Freakazoid
 
der Quell- und Zielpfad sind richtig
Bist Du ganz sicher? Laß Dir mal zum Test mit ShowSystemAlarm den zusammengebastelten Dateiname ausgeben:
Datei = "Meldearchiv_DSFN_" & Date & "__" & Hour(Now) & "_" & Minute(Now) & "_" & Second(Now) & ".csv"
ShowSystemAlarm "Meldearchiv_auf_Netzlaufwerk_kopieren() Datei: '" & Datei & "'" ' Debug-Ausgabe
Dein Date liefert das Datum entsprechend den Regional Settings. Welches Datums-Format ist im Control Panel in den Regional Settings eingestellt? Was mit "/"? Die Schrägstriche sind in Dateinamen nicht erlaubt bzw. werden günstigstenfalls als Ordner-Trennzeichen interpretiert.

Dein Skript hat noch mehr Unzulänglichkeiten: Now liefert die Systemzeit, und wenn man dreimal nacheinander Now verwendet, dann kann es passieren daß man nicht jedesmal dieselbe Systemzeit erhält und dann ein falscher Dateiname zusammengebastelt wird.
Die vielen Unterstriche im Dateiname würde ich weglassen, weil die verlängern nur den Dateiname ohne mehr Information.
Datum_Uhrzeit für den Dateiname würde ich immer unabhängig von den Regional Settings formatieren.
Die Zeitbestandteile Stunde, Minute, Sekunde, Tag und Monat würde ich immer genau 2 Ziffern lang machen (notfalls eine Vornull einfügen), damit die Dateien in einer Auflistung (z.B. Windows Explorer) zeitrichtig sortiert werden.
Code:
' aus der Systemzeit einen String in der Form "20991231_015959" erzeugen
Dim t, s
t = Now ' Systemzeit
s = DatePart("yyyy", t) & Right("0" & DatePart("m", t), 2) & Right("0" & DatePart("d", t), 2) & "_" _
  & Right("0" & DatePart("h", t), 2) & Right("0" & DatePart("n", t), 2) & Right("0" & DatePart("s", t), 2)
oder geht auch so
Code:
' aus der Systemzeit einen String in der Form "20991231_015959" erzeugen
Dim t, s
t = Now ' Systemzeit
s = Year(t) & Right("0" & Month(t), 2) & Right("0" & Day(t), 2) & "_" _
  & Right("0" & Hour(t), 2) & Right("0" & Minute(t), 2) & Right("0" & Second(t), 2)
und danach
Code:
Datei = "Meldearchiv_DSFN_" & s & ".csv"

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Harald,

Vielen Dank für die ausführlich Antwort, du hast mir damit sehr weiter geholfen. Der Tipp mit den Regional Settings war Gold wert. Das war genau das Problem. Da wäre ich alleine glaube ich nicht drauf gekommen.
 
Zurück
Oben