TIA Daten auf Netzwerk Share schreiben

gerdh

Level-2
Beiträge
103
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi !

Wieder mal das alte Lied.. ich will daten von einem TP700 Comfort auf einen MW Share schreiben.
Der Share ist ohne username/password beschreibbar (von Windows PC ausporbiert
meine VB script sollte auch einigermassen passen aber auf dem Share tauch nix auf.
Muss ich den Pfad anders angeben ?

Code:
Sub Daten_Schreiben()
'Tip:
' 1. Verwenden Sie die Tastenkombination <CTRL+SPACE> oder <CTRL+I>, um eine Liste aller Objekte und Funktionen zu öffnen
' 2. Schreiben Sie den Code unter Verwendung des HMI Runtime Objekts.
'  Beispiel: HmiRuntime.Screens("Screen_1").
' 3. Verwenden Sie die Tastenkombination <CTRL+J>, um eine Objektreferenz zu erstellen.
'Schreiben Sie den Code ab dieser Position:
Dim F
Dim fs
Dim fwmode
Dim fname
Dim Pfad
Dim Datei
Dim Tag
Dim Monat
Dim Jahr
Dim Stationsname
Dim DATUM
Dim STATUS
Dim Username
Dim UserID
Dim Wert_Links
Dim Wert_Rechts
Dim Datasatz

Pfad = "\\10.17.200.254\nio\"
Tag = CStr (SmartTags("01_Datum_Jahr"))
Monat = CStr (SmartTags("01_Datum_Monat"))
Jahr = CStr (SmartTags("01_Datum_Tag"))
Stationsname = CStr (SmartTags("B_ESD_Daten.Stationname"))
DATUM = CStr (SmartTags("DB_ESD_Daten.Datum_Uhrzeit"))
Username = CStr (SmartTags("DB_ESD_Daten.Username"))
UserID = CStr (SmartTags("DB_ESD_Daten.UserID"))
Wert_Links = CStr (SmartTags("DB_ESD_Daten.R_Wert_links"))
Wert_Rechts = CStr (SmartTags("DB_ESD_Daten.R_Wert_rechts"))
STATUS = CStr (SmartTags("DB_ESD_Daten.Status"))

fwmode = 8 'Mode = 8: append



'Datensatz erzeugen
    Datasatz = CStr(DATUM) & ";" & CStr(Username) & ";" & CStr(UserID) & ";" & CStr(STATUS) & ";" & CStr(Wert_Links) & ";" & CStr(Wert_Rechts) 
    
'Datei = Jahr & Monat & Tag & Stationsname & .csv
Datei = Stationsname
'Datei erzeugen oder bereits vorhancsvden
    Set fs = CreateObject("FileCtl.FileSystem")
    fname = "\" & Pfad & "\" & Datei
    If fs.Dir(fname) = "" Then

         'Datei nicht vorhanden
        Set F = CreateObject("FileCtl.File")    
        F.open fname, fwmode     'Datei öffnen/anlegen / Open/create file    
        F.LinePrint("Datum;Username;UserID;Status;Wert_Links:Wert_Rechts:")        
        F.LinePrint(Datasatz)    'Object erzeugen / Create object
        F.Close                    'Datei schließen / Close file
        Set F = Nothing
    ElseIf fs.Dir(fname) = Datei Then    
        'Datei vorhanden
        Set F = CreateObject("FileCtl.File")    
        F.open fname, fwmode     'Datei öffnen/anlegen / Open/create file    
        F.LinePrint(Datasatz)    'Object erzeugen / Create object
        F.Close                    'Datei schließen / Close file
    End If
    Set fs = Nothing
'If Err.Number <> 0 Then
' SmartTags("DB_REPORT01_SZD.DATEN_IN_DATEI_SCHR_ERR")= True

End Sub


Gruss Gerd
 
Hat der Share auch einen Rechnername?
Ich schätze, auch die Comfort Panels können die IP-Adresse im Pfad nicht auf einen Netbios-Name auflösen, den das WinCE aber benötigt.
Code:
Pfad = "\\10.17.200.254\nio\"  [COLOR="#FF0000"]'falsch[/COLOR]

Pfad = "\\myshare\nio\"        [COLOR="#008000"]'richtig[/COLOR]

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Tip: mach' Dir in ein Bild eine Meldeanzeige, die (auch) Meldungen der Meldeklasse "System" anzeigt, dann kannst Du sehen, daß Dein Skript vermutlich mit Runtime-Error abgebrochen wird.

Harald
 
Hat der Share auch einen Rechnername?
Ich schätze, auch die Comfort Panels können die IP-Adresse im Pfad nicht auf einen Netbios-Name auflösen, den das WinCE aber benötigt.
Code:
Pfad = "\\10.17.200.254\nio\"  [COLOR=#FF0000]'falsch[/COLOR]

Pfad = "\\myshare\nio\"        [COLOR=#008000]'richtig[/COLOR]

Harald

Hmmm ich überlege grad... das ist ein Samba server... der hat quasi 2 Namen.... afs_data ist der in der smb.conf und afs-data ist der Hostname...

Gruss Gerd
 
Hat der Share auch einen Rechnername?
Ich schätze, auch die Comfort Panels können die IP-Adresse im Pfad nicht auf einen Netbios-Name auflösen, den das WinCE aber benötigt.
Code:
Pfad = "\\10.17.200.254\nio\"  [COLOR=#FF0000]'falsch[/COLOR]

Pfad = "\\myshare\nio\"        [COLOR=#008000]'richtig[/COLOR]

Harald

Ich würde einmal den Explorer auf dem TP700 öffnen und schauen, wie das Laufwerk zu erreichen ist ( Name / IP... )
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde einmal den Explorer auf dem TP700 öffnen und schauen, wie das Laufwerk zu erreichen ist ( Name / IP... )
So ein Schritt weiterich komme auf den share mit \\afs_line\ESD
Die Systemmeldung sagt er findet den Pfad nicht im script Zeile
Code:
F.open fname, fwmode     'Datei öffnen/anlegen / Open/create file

die Definition von fname
Code:
 fname = "\" & Pfad & "\" & Datei

Ist daran was verkehrt ?

Gruss Gerd
 
Hmmm ich überlege grad... das ist ein Samba server... der hat quasi 2 Namen.... afs_data ist der in der smb.conf und afs-data ist der Hostname...
Es sollte der Hostname sein.

Wie die Freigabe heißt und ob das HMI Panel da drauf kommt, kann man so ausprobieren:
Wie können Sie eine PC-Netzwerkfreigabe für den Dateibrowser Ihres HMI-Bediengeräts sichtbar machen?
oder auf der Kommandozeile:
CMD \>net view \\hostname

Vielleicht hift Dir auch folgende Checkliste FAQ: Von Panel auf PC über LAN zugreifen

Harald
 
Die Systemmeldung sagt er findet den Pfad nicht im script Zeile
Code:
F.open fname, fwmode     'Datei öffnen/anlegen / Open/create file
Schreib mal fname in eine HMI-Stringvariable oder laß Dir den fname in eine Systemmeldung schreiben:
Code:
...
ShowSystemAlarm "mySkript: fname='" & fname & "'"
F.open fname, fwmode     'Datei öffnen/anlegen / Open/create file
...

Harald
 
Hi !

Ich bin schon weiter.....
zumindest schreibt er

wollte jetzt den Dateinamen von
Code:
Datei = Stationsname
auf
Code:
Datei = Jahr & Monat & Tag & Stationsname & .csv
ändern und jetzt streikt er wieder..... irgendwie krieg ich das mit der Endung CSV nicht hin... und auch zwischendrin nen Underliner will er nicht "fressen"

Gruss Gerd
 
OK haut hin...

Eine Frage habe ich noch...

über den filemode konnte ich bisher nix finden..
Code:
 fwmode = 8 'Mode = 8: append
Das hatte ich aus nem anderen Projekt...
welche Varianten gibts (und vor allem wie heisst die wo ich rigoros überschreibe :)

Gruss Gerd
 
über den filemode konnte ich bisher nix finden..
FAQ: Protool/WinCCflex/TIA Daten lesen / schreiben mit VB-Script
am Ende des Beitrag #1 findest Du als Anhang die VBScript_WinCE.pdf (oder auch hier im Siemens Support)
file mode: Input (1), Output (2), Random (4) , Append (8), or Binary (32)
Mode 2 "Output" löscht den Dateiinhalt beim Öffnen, falls die Datei schon existiert. Mode 8 "Append" löscht nicht und fügt die Daten am Dateiende an.

Harald
 
Zurück
Oben