ASCII File in WinCC Variable einlesen

Zuviel Werbung?
-> Hier kostenlos registrieren
Hätte ich mir ja denken können. :rolleyes: Habe das Projekt geöffnet. Aber ich finde gar kein Script. Du hast es anscheinend mit Protool erstellt. Ich habe es in WinCC migriert(oder so ähnlich). ÄHHHH, aber wie gesagt, ich finde kein Script. Und die Button sind auch mit keiner funktion hinterlegt.:confused:
Mache ich da jetzt einen Fehler?
 
Quatch.:twisted: Ich habe es mit WinCC flexible geöffnet. Deshalb muss das konvertiert werden. Aber ein script habe ich trotzdem nicht. Wird das vielleicht nicht mit konvertiert? Das weiß ich nämlich jetzt nicht.:confused:
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich habe es mit wincc 6.0 SP3a erstellt.
script zum dialog oeffnen :

Code:
Sub OnClick(Byval Item)        
Dim strFilename, Dialog, fso
Dim Filename

Set Filename = HMIRuntime.Tags("Filename")
Set Dialog = CreateObject("MSComDlg.CommonDialog")

'Explorer-Dialog zum Speichern von Dateien
'Titelzeile
Dialog.MaxFileSize = 260 ' Init buffer (NECESSARY!)
'Dialog.Flags = &H1004 ' Datei muss vorhanden sein
Dialog.Flags = &H0004 ' datei muss nicht vorhanden sein

'Filter setzen
Dialog.Filter = "All Files (*.*)|*.*|"  & "TAB Files (*.tab) |*.tab|"

Dialog.DialogTitle = "Open Variable"

' Filter auf den Eintrag tab setzen
Dialog.FilterIndex = 2

'Flags setzen: Explorer-Dialog mit langen Dateinamen
Dialog.Flags = &H1814

Dialog.ShowOpen
'Dialog.ShowSave

' Dateiname in die variable schreiben
Filename.Value = Dialog.Filename 
Filename.Write ,1

Set Dialog = Nothing
End Sub
script zum datei lesen:

Code:
Sub OnClick(Byval Item)                     
'SPEICHER RESERVIEREN
Dim Filename
Dim fso, TABfile
Dim zeile
Dim var
Dim datensatz
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dim dmax
Dim dmin
Dim L_sto
Dim L_stu            'DIE VARIABLEN AUS DER DATEI MUESSEN NAMENSGLEICH
Dim Laenge_aussen    'IM VARIABLENHAUSHALT VORHANDEN SEIN !!!!
Dim Laenge_innen
Dim n
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

'OBJEKTE UND VARIABLEN VERBINDEN
Set Filename         = HMIRuntime.Tags( "Filename" )

'FILEOBJEKT ERZEUGEN (WINDOWS-SCRIPT FUNKTION)
Set fso             = CreateObject( "Scripting.FileSystemObject" )

'DATEI ZUM LESEN ÖFFNEN
Set TABfile         = fso.OpenTextFile( Filename.Read(1) ,1, True )    

'DATEI BIS ZUM ENDE EINLESEN
Do While TABfile.AtEndOfStream <> True

    'ZEILE KOMPLETT EINLESEN                        
    zeile             = TABFile.ReadLine

    'ZEILE ZERLEGEN DAS GLEICHZEICHEN WIRD ALS TRENNZEICHEN BENUTZT                                     
    datensatz         = Split( zeile, "=", -1, 1 )                    

    'VARIABLE DYNAMISCH VERBINDEN    
    Set var         = HMIRuntime.Tags( datensatz(0) )                 

    'WERT SCHREIBEN
    var.Write( datensatz(1) ),1                                     

Loop

End Sub
 
das script ist vbscript. unter protool läuft das.
wincc kenne ich nicht. wincc sollte left aber auch kennen.
zur ausführung wird, denke ich, ohnehin der wsh(windows scripting host) von windows benutzt.

ja, left liesst den linken teil einer zeichenkette.

drück im script mal die rechte maustaste. dort kannst du dir die zur verfügung stehenden vb-funktionen anzeigen lassen.
zumindest ist das in protool so. :)
 
warum sagst du das nicht gleich, das du flexible meinst. :(

ihr solltet das schon genau angeben, da wincc und wincc flexible 2 verschiedene welten sind.:twisted:

unter flex muss mein script laufen.

das script vom praktikanten wird unter flex evtl nicht funktionieren.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Alles klar, danke. Habe meinen Fehler gerade gefunden. Habe vor dem ersten echten Wert eine Zeile ohne = Zeichen gehabt. Daher macht der das nicht. Er erkennt dann in der ersten Zeile kein Trennzeichen und gibt daher die Fehlermeldung raus. Danke erstmal damit und mit dem anderen Vorschlag komme ich erstmal weiter. Wenn ich nicht weiter weiß, kann ich ja noch einmal nachfragen.:p
 
Asche auf mein Haupt. Tut mir echt leid:( . Werde es morgen probieren, vielleicht geht es ja doch. Muß jetzt leider was anderes erledigen. Werde es morgen früh aber sofort testen. Vielen Dank noch einmal.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@praktikant

sehr interessantes script.
split kannte ich gar nicht :oops: ist aber gut. habe das bisher auch immer so gemacht wie kalel.

ich dachte bis dato, dass man in vb-script keine dialoge benutzen kann.
bisher mache ich das immer mit der inputbox, was nicht unbedingt professionell ist. ;)

funktioniert leider nur dann siehe auch hier
Anmerkung:
Diese Variante funktioniert nur, wenn auf dem System die VB-Entwicklungsumgebung installiert ist. Andernfalls lässt sich der CommonDialog nicht per "CreateObject" aktivieren. Eine Alternative wäre dann, den CommonDialog per API zu aktivieren. Wie das geht, erfahren Sie in unserem Workshop: Mit VB die Windows-Standard-Dialoge nutzen.

auf systemen wo dies nicht der fall ist kommt die meldung:
'Keine Lizenz für die Verwendung dieser Klasse vorhanden'


ich habe nun probiert
Code:
Declare Function GetOpenFileName Lib "comdlg32" Alias "GetOpenFileNameA" (lpOpenfilename As OpenFilename) As Long
dann bekomme ich aber leider einen sysntaxfehler ab zeichen 9. :(

werde mich damit auf jeden fall mal auseinandersetzen, da dies eine sehr willkommene erleichterung für meine scripte wäre.
 
:( :( :( :( Ihr hattet beide Recht. Das Script läuft leider nicht. Jetzt hast du dir in China die ganze arbeit umsonst gemacht. Das ist aber doch sch....! Dachte eigentlich das Flexible das alles kann was WinCC und Protool können. Da hat sich Siemens ja mal wieder richtig was einfallen lassen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da hast Du recht. :) Ich bin gerade dabei das zu ändern, damit das bei flex auch klappt. Einen kleinen Teilerfolg habe ich sogar schon erzielt. Ist zwar mit viel Leserei verbunden, aber wenn es hilft und ich es dann noch verstehe, dann geht es ja. Sollte ich es zum laufen kreigen, stelle ich das hier auch zur verfügung. Kombiniere deine Lösung mit der von KalEl. Kann aber noch dauern, da ich ja nun beim Besten Willen nicht so eine VB-Beule bin wie Ihr zwei.:p Trtzdem vielen vielen Dank noch einmal. So habe ich wenigstens einen Ansatz.
 
Praktikant!
Ob Du es glaubst oder nicht, ich habe es zum laufen bekommen:ROFLMAO: . Ich danke Dir noch einmal für Deine Hilfe. Viel Glück und gutes gelingen in China. Kann ich Dir auch mal eine PN schicken wenn ich wieder Deine Hilfe brauche?:rolleyes:
 

Anhänge

  • Datei öffnen und einlesen.doc
    24 KB · Aufrufe: 114
Zurück
Oben