WinCC Flex String Variable auslesen und in CSV Datei speichern

chrispit

Level-1
Beiträge
2
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
ich will ein Script im Wincc flexible erweitern. Momentan speichert das Script nur einen Zeitstempel und einige Variablen. Das funktioniert tadellos.
Nun möchte ich einen String (34 Zeichen) aus dem HMI lesen und in die Tabelle einfügen. Deklariert habe ich das so :

Dim Typ(34)
CStr Typ(34) = "00DB Typverwaltung.GRUNDMASCHINE.F_NUMMER"

Die Werte werden dann so geschrieben:
'Werte schreiben

EditDatei1.WriteLine MeinDatum &" "&MeineZeit&";"& Typ(34)& ";" &(SmartTags("00_SCHICHT_GESAMT") &";"& SmartTags("00_SCHICHT_GUT")&";" & SmartTags("00_SCHICHT_AUSSCHUSS") &";" & SmartTags("00_SCHICHT_NACHARBEIT")&";" & SmartTags("00_SCHICHT_EINRICHTEN")&";" & SmartTags("01_Z_AUSSCHUSS")&";" & SmartTags("02_Z_AUSSCHUSS")&";" & SmartTags("07_Z_AUSSCHUSS")&";" & SmartTags("03_Z_AUSSCHUSS") &";" & SmartTags("04_Z_AUSSCHUSS") &";" & SmartTags("05_Z_AUSSCHUSS") &";" & SmartTags("06_Z_AUSSCHUSS") &";"& SmartTags("08_Z_AUSSCHUSS") &";" & SmartTags("09_Z_AUSSCHUSS") &";" & SmartTags("19_Z_AUSSCHUSS") &";" & SmartTags("02_Z_NACHARBEIT") &";" & SmartTags("04_Z_NACHARBEIT") &";" & SmartTags("09_Z_NACHARBEIT")&";" & SmartTags("19_Z_NACHARBEIT")&";") & SmartTags("12_Z_AUSSCHUSS")&";"
EditDatei1.Close
Set EditDatei1 =Nothing
Set Datei1 =Nothing
Set File_system_Objekt_1 =Nothing


Leider funktioniert das so nicht.
Nun meine Fragen : Wie wird denn ein String mit 34 Zeichen deklariert ?
Mit welchem Befehl wird der Inhalt des Strings ausgelesen ?
 
Leider funktioniert das so nicht.
schreibe es so:
Code:
Dim Typ
Typ = "00DB Typverwaltung.GRUNDMASCHINE.F_NUMMER"

EditDatei1.WriteLine MeinDatum &" "& MeineZeit & ";" & Typ & ";" & ...


Nun meine Fragen : Wie wird denn ein String mit 34 Zeichen deklariert ?
Gar nicht bzw. wie alle anderen VBS-Variablen mit Dim varxyz . In VBS kann der Datentyp einer VBS-Variablen nicht deklariert werden. Der Datentyp ergibt sich automatisch durch eine Zuweisung und kann sich bei der nächsten Zuweisung auch wieder ändern.
Du kannst allerdings eine HMI-Variable als String bzw. WString projektieren (und dabei eine max Länge festlegen) und deren Wert an eine VBS-Variable zuweisen: Typ = SmartTags("MeineStringVariable")


Mit welchem Befehl wird der Inhalt des Strings ausgelesen ?
Durch Lesen der HMI-Variable (SmartTags), siehe oben.

Achtung: wenn Du HMI-Variablen mit PLC-Anbindung im Skript verwendest, dann müssen diese Variablen VOR der Verwendung aktualisiert werden. Das Skript wartet nicht, bis die aktuellen Werte aus der SPS gelesen wurden. Besonders bei Strings kann es sogar vorkommen, daß der String bei Verwendung noch gar nicht komplett aus der SPS gelesen wurde. Ein garantiert aktuell und konsistent und vollständiges Lesen von Variablen aus der PLC ins HMI geht nur als Rezeptur oder mit einem selbstgebastelten Handshake. siehe auch die Forumssuche nach GetDataRecordTagsFromPLC

Harald
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Harald,
danke für die Hilfe.
Habe meinen Fehler gefunden.
diese Deklaration habe ich nun benutzt.
Die Variable die ich benutzt habe war noch in einem Unterordner angelegt.
Typ = SmartTags("TYPVERWALTUNG\00DB Typverwaltung.GRUNDMASCHINE.F_NUMMER_0")
Nachdem ich das gefunden habe, funktioniert das Schreiben des Strings in eine csv-Datei.
 
Zurück
Oben