-> Hier kostenlos registrieren
Hallo liebe Forumsmitglieder,
ich steh seit geraumer Zeit vor ein Problem welches auch durch Support von Siemens nicht gelöst worden ist.
Problem: Ich muss eine CSV Datei einlesen(30 Zeilen lang) und diese Werte dann in die CPU bringen. Die CSV sieht folgender maßen aus
550-40-8Y28202172745458ZAAB F4N !
650-30-8Y28202178745458ZAAB F4N !
……
Voraussetzung: Panel PC, S7 1500
HMI Variable = DB_FZ_Daten_Test_Fahrzeug{0}_FZdaten{0} usw. bis zur 30 (DB_FZ_Daten_Test_Fahrzeug{30}_FZdaten{30})
So das Einlesen und das Einspielen der Werte (555 und 40) in die CPU funktioniert. Leider wird der 3 Teilstring irgendwie nicht richtig gelesen d.h. ich bekomme nur den ersten Char und danach hört das Script auf zu arbeiten. Verwende ich aber den 3 Teilstring nicht werden alle SKID_NR und STP eingelesen und an die CPU übergeben.
Nun meine Frage kennt jemand das Problem und könnte helfen?
Danke schon mal im Vorraus.
MFG Daniel
ich steh seit geraumer Zeit vor ein Problem welches auch durch Support von Siemens nicht gelöst worden ist.
Problem: Ich muss eine CSV Datei einlesen(30 Zeilen lang) und diese Werte dann in die CPU bringen. Die CSV sieht folgender maßen aus
550-40-8Y28202172745458ZAAB F4N !
650-30-8Y28202178745458ZAAB F4N !
……
Voraussetzung: Panel PC, S7 1500
HMI Variable = DB_FZ_Daten_Test_Fahrzeug{0}_FZdaten{0} usw. bis zur 30 (DB_FZ_Daten_Test_Fahrzeug{30}_FZdaten{30})
So das Einlesen und das Einspielen der Werte (555 und 40) in die CPU funktioniert. Leider wird der 3 Teilstring irgendwie nicht richtig gelesen d.h. ich bekomme nur den ersten Char und danach hört das Script auf zu arbeiten. Verwende ich aber den 3 Teilstring nicht werden alle SKID_NR und STP eingelesen und an die CPU übergeben.
Code:
Sub Read_data_FZ()
Dim fso, f, splitdata, Line, FileName, i,j
Dim SKID,STP,Pin_String
FileName ="D:\Projects\Datenbackup1.csv"
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.openTextFile(FileName, 1,0,-2)
i=0
Do While Not f.AtEndOfStream '<> True 'String
Line = f.ReadLine
SKID="DB_FZ_Daten_Test_Fahrzeug{"+CStr(i)+"}_SKID_NR"
STP="DB_FZ_Daten_Test_Fahrzeug{"+CStr(i)+"}_Stellplatz"
splitdata = Split(Line, "-")
SmartTags(SKID) = CInt(splitdata(0))
SmartTags(STP) = CInt(splitdata(1))
Pin_String = splitdata(2)
For j=1 To 30 Step 1
SmartTags("DB_FZ_Daten_Test_Fahrzeug{"+CStr(i)+"}_FZdaten{"+CStr(j)+"}") = CByte(Mid(Pin_String,j,1))
Next
i=i+1
Loop
fso.Close
Set f = Nothing
Set fso = Nothing
ShowSystemAlarm "Readout of the data was successful!"
End Sub
Nun meine Frage kennt jemand das Problem und könnte helfen?
Danke schon mal im Vorraus.
MFG Daniel
Zuletzt bearbeitet: