WinCC Mit Comfort-Panel CSV-Datei auf NAS erstellen/ergänzen

Martschen

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

ich möchte auf einem TP900 mit einem Skript einen Eintrag in einer .csv-Datei erzeugen. Programmiert wird in TIA V18. Wenn ich die Datei auf einen USB-Stick schreibe, funktioniert es prima, aber sie soll auf einer Synology Diskstation DS220+ als NAS abgelegt werden. Ich habe dazu schon im Forum gesucht und entdeckt, dass der Pfad mit Servername, statt mit IP-Adresse des NAS deklariert werden muss, und dass im NAS das SMB-Protokoll freigeschaltet sein muss, wenn ich ohne diese Option+ arbeiten will. Das ist alles gewährleistet. In den Panel-Einstellungen ist unter Network-ID User name, Password und Domain vergeben Was mich da nur irritiert ist, dass wenn ich das eingebe und das Fenster neu öffne, er alles bei User name reinschreibt.

Also Eingabe:
User name: BTM
Password: 1234
Domain: \\Server_BTM

Nach Fenster neu öffnen:
User name: \Server_BTM\BTM
Password:
Domain:

Ich weiß nicht, ob es damit was zu tun hat. Das Skript gibt mir jedenfalls beim Ausführen den Fehler aus: "Error2# -2147024838 The specified server cannot perform the requested operation." Hat noch jemand eine Idee?

Code:
Sub CSVPlatz1()

Dim fso, fo, file_Path_Name, file_Name
Dim Jahr, Monat, Tag

'Holen des aktuellen Datums
Jahr = Year(Now)
Monat = Month(Now)
Tag = Day(Now)

' Fehler abfangen
On Error Resume Next

' Objekt erstellen
Set fso = CreateObject("fileCtl.filesystem")
Set fo = CreateObject("fileCtl.file")

If Err.Number <> 0 Then
    ShowSystemAlarm "Error 1#" & CStr(Err.Number) & " " & Err.Description
    Err.Clear
    Exit Sub
End If

file_Path_Name = "\\Server_BTM\Logfiles\Qualidaten" '"\Storage Card USB\Qualidaten"
file_Name = "\\Server_BTM\Logfiles\Qualidaten\" & Jahr & "\" & Monat & "\" & Tag & "\Prozesswerte_Platz_1.csv"

' Ordner erstellen, wenn keiner vorhanden
If fso.dir(file_Path_Name) = "" Then
    fso.MkDir(file_Path_Name)
    
If Err.Number <> 0 Then
    ShowSystemAlarm "Error 2#" & CStr(Err.Number) & " " & Err.Description
    Err.Clear
    Exit Sub
End If

End If

' Jahresordner erstellen, wenn keiner vorhanden
If fso.dir(file_Path_Name & "\" & Jahr) = "" Then
    fso.MkDir(file_Path_Name & "\" & Jahr)
    
If Err.Number <> 0 Then
    ShowSystemAlarm "Error 3#" & CStr(Err.Number) & " " & Err.Description
    Err.Clear
    Exit Sub
End If

End If

' Monatsordner erstellen, wenn keiner vorhanden
If fso.dir(file_Path_Name & "\" & Jahr & "\" & Monat) = "" Then
    fso.MkDir(file_Path_Name & "\" & Jahr & "\" & Monat)
    
If Err.Number <> 0 Then
    ShowSystemAlarm "Error 4#" & CStr(Err.Number) & " " & Err.Description
    Err.Clear
    Exit Sub
End If

End If

' Tagesordner erstellen, wenn keiner vorhanden
If fso.dir(file_Path_Name & "\" & Jahr & "\" & Monat & "\" & Tag) = "" Then
    fso.MkDir(file_Path_Name & "\" & Jahr & "\" & Monat & "\" & Tag)
    
If Err.Number <> 0 Then
    ShowSystemAlarm "Error 5#" & CStr(Err.Number) & " " & Err.Description
    Err.Clear
    Exit Sub
End If

End If

' Datei erstellen, wenn keine vorhanden
If fso.dir(file_Name) = "" Then
    
    fo.Open file_Name, 2
    fo.LinePrint("Prozesswerte vom " & Tag & "." & Monat & "." & Jahr & ": Füllplatz 1;" )
    fo.LinePrint("")
    fo.LinePrint("Zeitstempel:;"&"Benutzer:;"&"Brutto:;"&"Netto:;"&"Tara:;"&"Kennung:;")
    
    fo.Open file_Name, 8   
    fo.LinePrint (SmartTags("KommunikationsdatenWaage_Waage{1}_Zeitstempel") & ";" & SmartTags("CurrentUserName") & ";" & SmartTags("KommunikationsdatenWaage_Waage{1}_GewichtBrutto") & ";" & SmartTags("KommunikationsdatenWaage_Waage{1}_GewichtNetto") & ";" & SmartTags("KommunikationsdatenWaage_Waage{1}_GewichtTara") & ";"& SmartTags("KommunikationsdatenWaage_Waage{1}_Alibikennung") & ";")   
    fo.Close

If Err.Number <> 0 Then
    ShowSystemAlarm "Error 6#" & CStr(Err.Number) & " " & Err.Description
    Err.Clear
    Exit Sub
End If

Else
     fo.Open file_Name, 8   
     fo.LinePrint (SmartTags("KommunikationsdatenWaage_Waage{1}_Zeitstempel") & ";" & SmartTags("CurrentUserName") & ";" & SmartTags("KommunikationsdatenWaage_Waage{1}_GewichtBrutto") & ";" & SmartTags("KommunikationsdatenWaage_Waage{1}_GewichtNetto") & ";" & SmartTags("KommunikationsdatenWaage_Waage{1}_GewichtTara") & ";"& SmartTags("KommunikationsdatenWaage_Waage{1}_Alibikennung") & ";")   
    fo.Close

If Err.Number <> 0 Then
    ShowSystemAlarm "Error 7#" & CStr(Err.Number) & " " & Err.Description
    Err.Clear
    Exit Sub
End If

End If

Set fo = Nothing
Set fso = Nothing
'ShowSystemAlarm "Datensatz erfolgreich gespeichert!"


End Sub
 
Hat sich erledigt. In der Diskstation war zwar das SMB-Protokoll freigeschaltet, aber erst ab SMB2. Das Panel braucht ja SMB1. Falls nochmal jemand danach sucht: Zu ändern ist das in der Diskstation unter Systemsteuerung -> Dateidienste -> SMB -> Erweiterte Einstellungen -> Mindest-SMB-Protokoll. Das auf SMB1 stellen, dann läuft's.
 
Zurück
Oben