ASCII File in WinCC Variable einlesen

uz71

Level-1
Beiträge
100
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo

Wer kennt eine möglichkeit Werte aus einem ACSSII File (***.txt) auszulesen und dann in WinCC Variablen zu schreiben. Wenn möglich mit VBS für WinCC.
Gruss
uz
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ascii

Hallo Praktikant

unser Mann der mir die ASCII Fils zur Verfügung stellt ist zur Zeit nicht erreichbar, ich werde wenn ich die Daten habe noch mal bei dir nachfragen.
Ist eine PN dann ok?
Gruss
uz
 
Daten aus Tab-Datei lesen

hi,

das auslesen ist kein problem,
kannst du mal 2-3 datensätze posten

so short


Hallo Praktikant!
Ich bin neu hier und habe den Beitrag gerade gelesen. Ich bin Neuling was VBS angeht, soll jetzt aber auch aus einer *.tab Datei Daten auslesen und diese in Variablen schreiben. Ich habe allerdings keine Ahnung wie das funktioniert. Gibt es da eine Möglichkeit einen Quelltext mit Kommentaren zu bekommen? In WinCC finde ich nur die möglichkeit Datensätze zu importieren oder zu lesen. Aber das sind ja csv-Dateien.
 
Der Datensatz ist in diesem Sinne keiner. Ich bekomme über Netzwerk eine Tab Datei, in der untereinander weg Werte eingetragen sind.
Z.B. Di= 53.000
Da= 132.000
n= 17
u.s.w

Diese Werte muss ich dann auslesen , in Variablen schreiben und an eine externe Steuerung weiterleiten.
Wie gesagt, das Problem ist eben das VB-Script. :confused: Mein Chef möchte dat gerne so und ich habe jetzt den Forschungsauftrag am Hals. Sonst arbeite ich zwar mit WinCC aber ohne VB Scripts. Dat tue ich jetzt zum ersten mal.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Leider nicht. Ich bekomme jedes mal eine neue Textdatei. Dieses macht die ganze Sache ja noch schwieriger. Eventuell muß ich mich da mit der Firma noch einmal auseinandersetzen. Aber soweit bin ich noch nicht. Ich müsste erstmal wissen, wie ich eine solche Datei überhaupt einlesen kann und die Werte in Variablen schreibe. Das würde mir erstmal reichen. Danke schon einmal für die Mühe.;)
 
hi, das macht es nicht schwerer sondern leichter, wenn du mir jetzt noch alle möglichen variablen nennst, mache ich das script fertig.
da ich allerdings in china bin und es hier schon etwas später als in deutschland ist, werde ich das script heute wohl nicht mehr fertig bekommen.
aber morgen ist ja auch noch ein tag. :)

ich wuerde dir dann ein miniprojekt schicken
 
hier mal wie du das auch selber hinbekommst. ;)

Code:
[SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][SIZE=2] textfile,fs,laenge,i,parameter,wert,zeile[/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] fs = CreateObject("Scripting.FileSystemObject")[/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] TextFile = fs.OpenTextFile("daten.txt", 1) [/SIZE][SIZE=2][COLOR=#008000]'datei öffnen zum lesen[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Do[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]While[/COLOR][/SIZE][SIZE=2] textfile.AtEndOfStream <> [/SIZE][SIZE=2][COLOR=#0000ff]true[/COLOR][/SIZE]
[SIZE=2]zeile = TextFile.ReadLine[/SIZE]
[SIZE=2]i=InStr(zeile,"=") [/SIZE][SIZE=2][COLOR=#008000]'trennzeichen suchen[/COLOR][/SIZE]
[SIZE=2]laenge = Len(zeile)[/SIZE]
[SIZE=2]parameter=Left(zeile,i-1)[/SIZE]
[SIZE=2]wert = Right(zeile,laenge - i -1)[/SIZE]
[SIZE=2][COLOR=#008000]'zuweisungen[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE][SIZE=2] parameter = "Di" [/SIZE][SIZE=2][COLOR=#0000ff]Then [/COLOR][/SIZE][SIZE=2][COLOR=#ff0000]ptvar1[/COLOR][/SIZE][SIZE=2] = wert / 1000 [/SIZE][SIZE=2][COLOR=#008000]'wegen 3 Nachkommastellen[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE][SIZE=2] parameter = "Da" [/SIZE][SIZE=2][COLOR=#0000ff]Then [/COLOR][/SIZE][SIZE=2][COLOR=#ff0000]ptvar2[/COLOR][/SIZE][SIZE=2] = wert[/SIZE]
[SIZE=2][COLOR=#008000]'usw[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Loop[/COLOR][/SIZE]
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hi, das macht es nicht schwerer sondern leichter, wenn du mir jetzt noch alle möglichen variablen nennst, mache ich das script fertig.
da ich allerdings in china bin und es hier schon etwas später als in deutschland ist, werde ich das script heute wohl nicht mehr fertig bekommen.
aber morgen ist ja auch noch ein tag. :)

ich wuerde dir dann ein miniprojekt schicken


Ach Du schande.:( Ich habe leider noch nicht alle Daten. Einige kann ich dir aber mitteilen. Die anderen bräuchte ich dann ja nur anpassen,gell? Allerdings habe ich auch noch keine Adressen. Aber die brauchst Du ja auch nicht, oder? Wenn doch, sag noch einmal bescheid. Aber die holt sich WinCC doch automatisch glaube ich.:confused:

dmin, dmax, Laenge_innen, Laenge_aussen, n, L_stu, L_sto

Die kommen auch in der Reihenfolge in der Textdatei vor.

Mehr angaben habe ich noch nicht. Aber wie gesagt, den Rest kann ich dann ja anpassen.
Ich danke Dir schon einmal und wünsche eine angenehme Nachtruhe. Wir hören bzw. lesen dann von einander
 
hier mal wie du das auch selber hinbekommst. ;)

Code:
[SIZE=2][COLOR=#0000ff]Dim[/COLOR][/SIZE][SIZE=2] textfile,fs,laenge,i,parameter,wert,zeile[/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] fs = CreateObject("Scripting.FileSystemObject")[/SIZE]
[SIZE=2][COLOR=#0000ff]Set[/COLOR][/SIZE][SIZE=2] TextFile = fs.OpenTextFile("daten.txt", 1) [/SIZE][SIZE=2][COLOR=#008000]'datei öffnen zum lesen[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Do[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]While[/COLOR][/SIZE][SIZE=2] textfile.AtEndOfStream <> [/SIZE][SIZE=2][COLOR=#0000ff]true[/COLOR][/SIZE]
[SIZE=2]zeile = TextFile.ReadLine[/SIZE]
[SIZE=2]i=InStr(zeile,"=") [/SIZE][SIZE=2][COLOR=#008000]'trennzeichen suchen[/COLOR][/SIZE]
[SIZE=2]laenge = Len(zeile)[/SIZE]
[SIZE=2]parameter=Left(zeile,i-1)[/SIZE]
[SIZE=2]wert = Right(zeile,laenge - i -1)[/SIZE]
[SIZE=2][COLOR=#008000]'zuweisungen[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE][SIZE=2] parameter = "Di" [/SIZE][SIZE=2][COLOR=#0000ff]Then [/COLOR][/SIZE][SIZE=2][COLOR=#ff0000]ptvar1[/COLOR][/SIZE][SIZE=2] = wert / 1000 [/SIZE][SIZE=2][COLOR=#008000]'wegen 3 Nachkommastellen[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE][SIZE=2] parameter = "Da" [/SIZE][SIZE=2][COLOR=#0000ff]Then [/COLOR][/SIZE][SIZE=2][COLOR=#ff0000]ptvar2[/COLOR][/SIZE][SIZE=2] = wert[/SIZE]
[SIZE=2][COLOR=#008000]'usw[/COLOR][/SIZE]
[SIZE=2][COLOR=#0000ff]Loop[/COLOR][/SIZE]


Hallo KalEl!
Danke für deine Mühe. Werde ich dann mal probieren.;)
 
Hallo KalEl!

Habe das mal so eingegeben. Da sacht er mir aber das LEFT eine unbekannte Prozedur oder ein unbekanntes Argument ist. :( Wie gesagt, ich habe da nicht viel Ahnung von. Wenn ich den Quellcode so sehe, kann ich das zwar irgendwie nachvollziehen, nur selber drauf kommen tue ich da nicht. In der angesprochenen Zeile frage ich doch nur ab, was links(also vor dem Trennzeichen) steht, richtig? Kann es sein, das WinCC diese Anweisung,oder wie immer man das nennt, nicht kennt? Gibt es da eine andere Möglichkeit?:confused:
 
Man, das ging ja super schnell. Werde das dann mal probieren.
Danke erstmal. Werde mich dann morgen melden und Dir sagen ob es läuft. Was machst Du eigentlich in China wenn ich fragen darf;)
 
Zurück
Oben