-> Hier kostenlos registrieren
Hallo liebes SPS Forum,
ich möchte mit einem VBA skript ein Textdokument erstellen und in diesem zeile für zeile Sinamics fehler logen.
anhand einer von Siemens Sinamics error XML habe ich eine Textliste im TIA V16 WinCC erstellt je nach dem welche umrichter fehler nummer ansteht wird der fehler in der Textliste gewählt
und ins Textfile geschrieben.
Dies funktioniert soweit jedoch bekomme ich es nur hin immer in die erste Zeile zu schreiben.
Ich möchte jedoch z.B.: wenn in Zeile 1 schon was steht in die nächste freie (leere) Zeile 2 den Text schreiben.
Kann mir hier wer helfen wie ich das machen kann zum bsp. For schleife mit index?
Zum lesen der Textliste verwende ich im VBA-skript die funktion "LookupText"
Ich habe versucht unten den code anzuhängen.
LG
Frozen
ich möchte mit einem VBA skript ein Textdokument erstellen und in diesem zeile für zeile Sinamics fehler logen.
anhand einer von Siemens Sinamics error XML habe ich eine Textliste im TIA V16 WinCC erstellt je nach dem welche umrichter fehler nummer ansteht wird der fehler in der Textliste gewählt
und ins Textfile geschrieben.
Dies funktioniert soweit jedoch bekomme ich es nur hin immer in die erste Zeile zu schreiben.
Ich möchte jedoch z.B.: wenn in Zeile 1 schon was steht in die nächste freie (leere) Zeile 2 den Text schreiben.
Kann mir hier wer helfen wie ich das machen kann zum bsp. For schleife mit index?
Zum lesen der Textliste verwende ich im VBA-skript die funktion "LookupText"
Ich habe versucht unten den code anzuhängen.
LG
Frozen
Code:
Sub SINAMICS_Error_Log_and_send_NC()
'////////////////////////////////////////////////////////////////
' en: Script for the creating and saving of a text file
' de: Script zum Erstellen und Speichern einer Textdatei
' Created: 14-05-2007
' Version: v0.1
' Author: ZW Released: only for Windows 2k/XP
'////////////////////////////////////////////////////////////////
'**************************************************************************************************************
'* create Sinamics error log textfile - Erstellen einer Textdatei mit Sinamics fehlern *
'**************************************************************************************************************
'Declaration of local tags - Deklaration von lokalen Variablen
Dim fso, f, ts, path , FileExists, folder, Sinamics_Error_output, Language_ID, Index, Textlist, i
Index= 1004 'nur zum Testen listeneintrag 1004-->Wird später durch Umrichter Fehlernummer variable ersetzt
'Definition of folder path+name - Definition des Ordnerpfad+Namen
folder="d:\Log\"
'Definition of file path+name - Definition des Dateipfad+Namen
path = "d:\Log\Sinamics_Error.txt"
'Error Routine - Fehlerroutine
On Error Resume Next
'Create object - Objekt erstellen
Set fso = CreateObject("Scripting.FileSystemObject")
If Err.Number <> 0 Then
ShowSystemAlarm "Error #" & CStr(Err.Number) & " " & Err.Description
Err.Clear
Exit Sub
End If
'create folder if doesn't exist - erstelle Ordner wenn nicht vorhanden
If fso.FolderExists(folder)=False Then
fso.CreateFolder(folder)
End If
'if no file exist a text file will be created – Datei erstellen, wenn kein vorhanden
If Not fso.FileExists(path) Then
fso.CreateTextFile path
End If
Set f = fso.GetFile(path)
If Err.Number <> 0 Then
ShowSystemAlarm "Error #" & CStr(Err.Number) & " " & Err.Description
Err.Clear
Exit Sub
End If
Set ts = f.OpenAsTextStream(2, -1) 'Öffnen Textfile Parameter: 2=für schreiben, -1=öffne die Datei als Unicode
If Err.Number <> 0 Then
ShowSystemAlarm "Error #" & CStr(Err.Number) & " " & Err.Description
Err.Clear
Exit Sub
End If
LookupText Sinamics_Error_output,Index,SmartTags("act_HMI_language_ID_INTERNAL"),"SINAMICS_V5.2_Error_Warnings"
SmartTags("Sinamics_Error_Output_INTERNAL")= Sinamics_Error_output
'Write values into the file - Werte in die Datei schreiben
For i = 1 To 10 'bis zu 10 zeilen
If ts.ReadLine(i) = "" Then
'ts.WriteLine Now(Date & "; "&Time & "; " & Sinamics_Error_output & ";")
ts.WriteLine (Now & "; " & Sinamics_Error_output & ";")
Else
Exit Sub
End If
Next
'Close file - Datei schließen
ts.Close
End Sub