-> Hier kostenlos registrieren
Hallo,
Nachdem ich die Sache mit dem Schreiben in die txt datei lösen konnte brauche ich nochmals etwas hilfe....
Die riesige Datenmenge ca 20 X 36 Variablen die ich in die txt Datei schreibe soll auch zurückgeladen werden in den Datenbaustein.
Das hatte auch funktioniert auf einem MP277 nur jetzt auf dem TP 277 läuft es natürlich nicht:shock:
Als Vorlage diente wieder das Read Skript von Siemens selbst.
Dort wird in einer Do While schleife bis zum Ende der Datei die Linie eingelesen, gesplittet und in ein Hifield(j,i) array ausgegeben.
Die eigentlichen Werte die in dem array hinterlegt sind schreiben die in der Do While Schleife noch in eine Variable.
Das mag auch bei deren Beispiel mit 3 Variablen gut funktionieren. Aber bei über 700 Variablen (Erfassungsszyklus 2s (nicht zu ändern wegen der write funktion)) dauert das gut und gerne 50 Minuten, da immer alles neu durchläuft.
Habe schon einige Dinge Probiert (blau) geändert usw...
Aber ich weis nicht warum genau das nicht in den DB geschrieben wird?!
Ich lese einen String aus der Datei ja aus und will das dann auswerten und zum Beispiel als Bool in den DB schreiben- Dafür habe ich das Cint oder CBool benutzt- läuft aber auch nicht...
Oh mann...
entschuldigt mein generve damit, bin wohl schon zu alt für solche programmierung
...
Do While fe.EOF= False
MyZf = fe.LineInputstring
field = Split(MyZf, ";") 'Aufteilen der Zeile in die einzelnen Strings
For i=0 To 1 'Wert von HiField x hier nach To zählt die Spalten
field(i) = Replace(field(i), " ", "")'Leerzeichen rausnehmen
HiField(j,i) = field(i) 'schiebe field in Hifield
Next
Daten(j,i) = Hifield(j,i)
j = j + 1
Loop
SmartTags("Programm.Schritt[1].Vorw_INT.Var_1") = Daten(10,1) or CBool(HiField(10,1))'Typ: BOOL
…
SmartTags("Programm.Schritt[1].Vorw_INT.Var_44") = HiField(45,1)'Typ: DINT
SmartTags("Programm.Schritt[1].Vorw_INT.Var_45") = CInt(HiField(45,1))'Typ: INT
….
SmartTags("Programm.Schritt[20].Vorw_INT.Var_1") = HiField(510,1)'Typ: BOOL
…
SmartTags("Programm.Schritt[20].Vorw_INT.Var_44") = HiField(710,1)'Typ: DINT
SmartTags("Programm.Schritt[20].Vorw_INT.Var_45") = HiField(772,1)'Typ: INT
Nachdem ich die Sache mit dem Schreiben in die txt datei lösen konnte brauche ich nochmals etwas hilfe....

Die riesige Datenmenge ca 20 X 36 Variablen die ich in die txt Datei schreibe soll auch zurückgeladen werden in den Datenbaustein.
Das hatte auch funktioniert auf einem MP277 nur jetzt auf dem TP 277 läuft es natürlich nicht:shock:
Als Vorlage diente wieder das Read Skript von Siemens selbst.
Dort wird in einer Do While schleife bis zum Ende der Datei die Linie eingelesen, gesplittet und in ein Hifield(j,i) array ausgegeben.
Die eigentlichen Werte die in dem array hinterlegt sind schreiben die in der Do While Schleife noch in eine Variable.
Das mag auch bei deren Beispiel mit 3 Variablen gut funktionieren. Aber bei über 700 Variablen (Erfassungsszyklus 2s (nicht zu ändern wegen der write funktion)) dauert das gut und gerne 50 Minuten, da immer alles neu durchläuft.
Habe schon einige Dinge Probiert (blau) geändert usw...
Aber ich weis nicht warum genau das nicht in den DB geschrieben wird?!
Ich lese einen String aus der Datei ja aus und will das dann auswerten und zum Beispiel als Bool in den DB schreiben- Dafür habe ich das Cint oder CBool benutzt- läuft aber auch nicht...
Oh mann...
entschuldigt mein generve damit, bin wohl schon zu alt für solche programmierung

Do While fe.EOF= False
MyZf = fe.LineInputstring
field = Split(MyZf, ";") 'Aufteilen der Zeile in die einzelnen Strings
For i=0 To 1 'Wert von HiField x hier nach To zählt die Spalten
field(i) = Replace(field(i), " ", "")'Leerzeichen rausnehmen
HiField(j,i) = field(i) 'schiebe field in Hifield
Next
Daten(j,i) = Hifield(j,i)
j = j + 1
Loop
SmartTags("Programm.Schritt[1].Vorw_INT.Var_1") = Daten(10,1) or CBool(HiField(10,1))'Typ: BOOL
…
SmartTags("Programm.Schritt[1].Vorw_INT.Var_44") = HiField(45,1)'Typ: DINT
SmartTags("Programm.Schritt[1].Vorw_INT.Var_45") = CInt(HiField(45,1))'Typ: INT
….
SmartTags("Programm.Schritt[20].Vorw_INT.Var_1") = HiField(510,1)'Typ: BOOL
…
SmartTags("Programm.Schritt[20].Vorw_INT.Var_44") = HiField(710,1)'Typ: DINT
SmartTags("Programm.Schritt[20].Vorw_INT.Var_45") = HiField(772,1)'Typ: INT