TIA Pfad USB, Date .csvi kann nicht auf KTP900F geschrieben werden

kliebisch.m

Level-1
Beiträge
120
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe ein Script, was mir Daten auf den USB Stick eines Mobile Panel KTP900F schreiben soll.
Mit PLC Sim habe ich das simuliert, da hat es funktioniert und alles schön in den Ordner

C:\USB_X61\25922_heating_curve.csv

geschrieben.


Jetzt "life" an der Maschine im KTP900F, umgeändert in:

\USB_X61\25922_heating_curve.csv

schreibt er mir, dass die Datei nicht angelegt werden kann.


Hat jemand eine Lösung, warum die .csv Datei nicht geschrieben wird?

Danke für eure Hilfe
 
Wie lautet die Meldung genau? Wie sieht der Script-Code an der angemeckerten Stelle aus?

Was meinst Du mit "mit PLCSIM simuliert"? PLCSIM simuliert nur PLC (SPS-CPU) - was hat das mit Deinem KTP900F zu tun? Meinst Du vielleicht, Du hast die WinCC Runtime des KTP900F auf dem PC gestartet/simuliert?

Daß das Mobile Panel unter Windows CE läuft und deshalb Windows-VBS-Dateioperationen nicht funktionieren ist Dir klar?
Schau Dir mal diese FAQ: Protool/WinCCflex/TIA Daten lesen / schreiben mit VB-Script und die am ersten Beitrag angehängte VBScript_WinCE.pdf an.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich hatte das ganz normal in PLC Sim 1500 mit KTP900F Mobile getestet. Dachte, dass das jetzt mit den CE6 funktioniert. Vielleicht gibt es einen Weg. Danke

If SmartTags("M21.0") = True Then
'Info: Die Variable "dbDateiErstellen.Datei_Erzeugen" ruft bei einer Werteänderung dieses Skipt auf.
'Siehe Eigenschaften der Variablen "dbDataToWinCC_Steuern.File_Erzeugen"

'Error Routine - Fehlerroutine
On Error Resume Next
Err.Clear

'---------------------------------------------------------------------------
' Verzeichniss- und Dateiname erzeugen
'---------------------------------------------------------------------------
Dim fso, f, ts, bCreated, FName, Dataset, Header, Storage_Path, strName, strTemp, arr, strDir
Dim Lw, Dateiname, Pfad
Dim Dateityp
Dim Verzeichnis
Dim Dateigroesse
Dim Laufwerkname
Dim Kalenderwoche, Jahr , Monat, Tag, zahler
'Datum für Verzeichnisserstellung
Kalenderwoche = DatePart("ww", Date(), vbMonday, vbFirstFourDays)
Jahr = DatePart ("yyyy", Date)
Monat = DatePart ("m", Date)
Tag = DatePart("d",Date)
zahler = SmartTags("DB10_Status an OP_zaehler_6") +1

' Ablagepfad festlegen
FName = "\USB_X61\25922_heating_curve_part_no_" & zahler & "__date_" & Tag & "_" & Monat & "_" & Jahr & ".csv"
' FileSystemObject erstellen
' Create FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
'Prüfen ob Ablagepfad vorhanden, wenn nicht -> erzeugen.
'Checks storage path availably, if not -> create
Script_Storage_Path Storage_Path ' Übergabe des Ablagepfades aus dem Script "Script_Storage_Path" / Handing over of the storage path from the script "Script_Storage_Path"
' Allgemeine Fehlerauswertung -> Datei konnte nicht angelegt oder ist geöffnet werden
' Generically Error logging -> File could not be create or open
On Error Resume Next
' Datei öffnen bzw. erstellen, wenn sie noch nicht existiert
' Open File or create file if it does not exist
bCreated = False ' Hilfsvariable, Datei bereits angelegt / Help tag, File exist?
If Not fso.FileExists(FName) Then
fso.CreateTextFile FName
bCreated=True
End If

Set f = fso.GetFile(FName)
Set ts = f.OpenAsTextStream (8,-2)

' Fehlernummer <> 0 -> Meldung
' Fault number <> 0 -> Message
If Err.Number <> 0 Then
Call ShowSystemAlarm ("Datei konnte nicht angelegt werden oder ist eventuell geöffnet / File could not be create or maybe open")
Err.Clear
Else

' Wenn Datei nicht vorhanden, => Tabellenkopf muss eingefügt werden
' If file did not exist, => Table header must be inserted
If bCreated = True Then
ts.WriteLine FName
ts.WriteLine("UPPER TEMPERATURE;LOWER TEMPERATURE;PRESSURE ACTUAL;PRESS POSITION /10")
End If

' Schreibt die Daten in das Excel Blatt
'---------------------------------------------------------------------------
' Parameter Speichern
' parameter save
'---------------------------------------------------------------------------
Dim Spalte1,Spalte2,Spalte3,Spalte4

' Werte der Variablen in die Archivdatei schreiben
' Write values of variables in archive file

Spalte1 = (SmartTags("Temp_IST_Modul_1_oben"))& ";"
Spalte2 = (SmartTags("Temp_IST_Modul_2_unten"))& ";"
Spalte3 = (SmartTags("DB_VAR_Presse_Ist_p_Stössel")) & ";"
Spalte4 = (SmartTags("DB_VAR_Presse_Ist_w_Stössel")) /10 & ";"

' Schreibt die Daten in das Excel Blatt
' Write the Dataset in File
ts.WriteLine (Spalte1&Spalte2&Spalte3&Spalte4)

' Datei wieder schließen
' Close File'
ts.Close
End If
' Verwendeten Speicher wieder freigeben
' Used storage will be freed
Set ts = Nothing
Set f = Nothing
Set fso = Nothing
SmartTags("M21.0") = False
 
' FileSystemObject erstellen
' Create FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
Dies ist die erste Anweisung, die nicht unter WinCE funktioniert. Normal würde hier ein Runtime-Error geworfen und das Skript abgebrochen. Weil Du aber "On Error Resume Next" im Skript hast, den Fehler aber nicht gleich abprüfst, fällt der Fehler erst später auf.

Du mußt alle VBS-Datei-Anweisungen auf die entsprechenden WinCE-Pendants umschreiben. Wie ich bereits schrieb, kannst Du in der FAQ die WinCE-Anweisungen nachschauen/vergleichen, besonders ab Beitrag #2.

Tip: nimm während der Skript-Entwicklung das "On Error Resume Next" raus, damit Du direkt die Runtime-Fehler siehst.

Harald
 
Du mußt alle VBS-Datei-Anweisungen auf die entsprechenden WinCE-Pendants umschreiben. Wie ich bereits schrieb, kannst Du in der FAQ die WinCE-Anweisungen nachschauen/vergleichen
Dieses Beispiel enthält die Anweisungen, wie Du sie für Dein Script unter WinCE brauchst:
----- wince ------------------------------------------------------------------------------------------
[...]
daten schreiben
Code:
Dim f,fs,datei,datum,laenge
 
Set f= CreateObject("filectl.file")
Set fs = CreateObject("filectl.filesystem")
 
datei="storage card2\Log_Prozess.csv"
datum="20"&Right(Date,2)&"."&Mid(Date,4,2)&"."&Left(Date,2)
 
If fs.dir("\"&datei) = "" Then
    f.open datei, 2
    f.LinePrint "Logbuch der Pumpe"
    f.LinePrint "Datum (JJJJ.MM.TT);"&"Uhrzeit;"&"Schaltspiele;"&"Betriebsstunden [h]
    f.Close
End If
 
f.open datei, 8
f.LinePrint Datum&";"&Time&";"&Schaltspiele_täglich&";"& Betriebsstunden
f.Close

Harald
 
Zurück
Oben