×
Siemens Industry Online Support
Siemens AG
Beitragstyp: FAQ Beitrags-ID: 59604194, Beitragsdatum: 24.03.2015
(19)
Bewerten

Wie greifen Sie mit SIMATIC WinCC (TIA Portal) auf einem Panel über ein Skript auf Prozessdaten in einer Datei zu?

  • Beitrag
  • Betrifft Produkt(e)
VB-Skripte erlauben das Speichern beliebiger auf dem Bediengerät vorliegender Daten auf einem USB-Wechseldatenträger. Dieser FAQ erläutert die Programmierung entsprechender Skripte.

Dieser FAQ beschreibt, wie Sie Informationen in der SIMATIC WinCC (TIA Portal) Runtime in eine Datei schreiben bzw. aus einer Datei lesen können. Für die Realisierung dieser Funktionen wird VB-Skript verwendet. Um Informationen in einer Textdatei abzuspeichern bzw. auszulesen, muss der Zugriff auf das Dateisystem von Microsoft Windows CE ermöglicht werden. Der Zugriff erfolgt über das "FileSystemObject".
Dieser FAQ gilt für SIMATIC WinCC (TIA Portal) in den Ausprägungen Comfort, Advanced und Professional für folgende Bediengeräte: Comfort Panels und Panels der 277er Reihe und höher.

Hinweise

  • Verwenden Sie Skripte nur dann für das Speichern von Daten, wenn die WinCC Standardmechanismen (Speichern von Datenarchiven etc.) für Ihre Anwendung nicht ausreichend sind!
  • Der vorgestellte Mechanismus ist abhängig vom Betriebssystem Ihres Bediengeräts und der verwendeten Projektierungssoftware. Beachten Sie die weiterführenden Hinweise am Ende des Artikels für Informationen zur Behandlung anderer Konfigurationen.

Dokumentation von VB-Skript.Befehlen in WinCC (TIA Portal)
Informationen zu den einzelnen VB-Skript-Befehlen finden Sie im WinCC (TIA Portal) Hilfesystem in der Registerkarte "Inhalt", sowie im WinCC Advanced Handbuch (Beitrags-ID: 109755202), unter dem kapitel 13 "Prozesse visualisieren > Kapitel 9 "Mit Systemfunktionen und Runtime Scripting arbeiten".
 


Bild 01

Inhalt des Beitrags

  • Beispiel zum Speichern von Informationen in einer Textdatei bzw. csv-Datei
  • Beispiel zum Auslesen von Informationen aus einer Textdatei bzw. csv-Datei
  • Beispielprojekt

Anleitung
In der folgenden Tabelle wird beschrieben, wie das Speichern und Lesen aus Dateien, in WinCC (TIA Portal) projektiert wird.
Es werden folgende Dateiformate verwendet:

  • csv
  • txt

Hinweis
In diesem Beispiel werden nur interne Variablen verwendet. Alternativ können auch Variablen mit Steuerungsanbindung verwendet werden.
In diesem Beispiel wird exemplarisch das Schreiben und Lesen von Dateien auf einer Speicherkarte gezeigt. Bei Verwendung eines anderen Speichermediumsmuss dies im Skript entsprechend angepasst werden.
 

Nr. Vorgehensweise
1 Variablen anlegen
  • Öffnen Sie den Variablen-Editor über "Projektnavigation > HMI_1 > HMI-Variablen > Alle Variablen anzeigen".
  • Fügen Sie vier interne Variablen mit folgender Bezeichnung hinzu:
     
Variable

Datentyp

bExtension Bool
szMaterial WString
nPressure Int
nTemperature Int

 


Bild 02
2 Objekte hinzufügen
  • Fügen Sie ein neues Bild mit dem Namen "ImportExportData" unter "Projektnavigation > Bilder" hinzu.
  • Fügen Sie zwei Rechtecke in das Bild ein.
  • Fügen Sie ein symbolisches E/A-Feld sowie drei konventionelle E/A-Felder ein.
  • Fügen Sie eine Schaltfläche und neun Textfelder ein.
  • Positionieren Sie alle Objekte und geben Sie folgende Texte ein:
     
    • "Prozesswerte"
    • "Druck"
    • "Temperatur"
    • "Werkstoff"
    • "Textdatei"
    • "mbar"
    • "°C"
    • "Einstellungen"
    • "Extension"
       
  • Erstellen Sie eine Textliste mit dem Namen "Extension" vom Typ "Wert/Bereich" 
  • Fügen Sie folgende Einträge ein:
     
    • 0 =>  ".txt"
    • 1 =>  ".csv"
       

Bild 03
3 Skript, Textliste und Variablen anbinden
  • Erstellen Sie ein Skript mit der Bezeichnung "Write_data". Klicken Sie dazu in der Projektnavigation auf "Skripte > VB-Skripte > Neue VB-Funktion hinzufügen".
  • Binden Sie das Skript "Write_data" an die Schaltfläche "Datei speichern" unter "Eigenschaften > Ereignisse > Klicken" an.
  • Verbinden Sie die Textliste "Extension" mit dem symbolischen E/A-Feld "Extension".
  • Binden Sie folgende Variablen an die entsprechenden Objekte an:
      
    Variable/Skript Objekttyp Objekt für ...
    iPressure E/A-Feld Druck
    iTemperature E/A-Feld Temperatur
    szMaterial E/A-Feld Werkstoff
    bExtension Symbolisches E/A-Feld Extension

 


Bild 04
4 Skript erstellen - Teil 1
  • Ergänzen Sie das Skript "Write_data" mit dem Beispielcode (siehe Bild 05).

    Hinweis
    Weitere Informationen zu den VB-Skript-Befehlen erhalten Sie im Handbuch zu WinCC (TIA Portal) und am Ende des FAQ unter "Weiterführende Informationen".

Beschreibung des Quellcodes

  • <Zeilen 10 - 15> Deklaration von lokalen Variablen (sind nur innerhalb des Skriptes gültig).
  • <Zeile 18> Die Variable "mode" wird für das Öffnen der Datei initialisiert (8 = Append).
  • <Zeilen 21-29> Bei der Variable "bExtension" handelt es sich um eine globale Variable, die im gesamten WinCC (TIA Portal) Projekt verwendet werden kann. Mittels dieser Variable wird die Dateiendung über das symbolische E/A-Feld ausgewählt.
    Hinweis
    Die Variable "delimiter" dient als Trennzeichen und muss länderspezifisch angepasst werden!
  • <Zeile 32> Die "On Error Resume Next"-Anweisung wird benötigt, für den Fall eines Laufzeitfehlers im Skript. Sobald ein solcher Fehler auftritt, wird automatisch die nachfolgende Zeile ausgeführt, in der die Fehlerroutine enthalten ist.
    Hinweis
    Wenn diese Anweisung fehlt, und es zu einem Fehler kommt, wird das Skript beendet.
  • <Zeile 35> Die Funktion "CreateObject("FileCtl.File")" erzeugt ein Objekt, das auf das Dateisystem von Windows CE zugreift.
  • <Zeilen 38-42> Der Quellcode beinhaltet die Fehlerroutine bei einem Laufzeitfehler. Sollte ein Laufzeitfehler auftreten, wird eine Fehlermeldung im Meldefenster ausgegeben, das Skript wird anschließend beendet.
    Hinweis
    Durch die Verwendung von "FileCtl.File" kann nur auf das Dateisystem von Windows CE zugegriffen werden. Wird dieses Skript auf einem PC mit einem anderen Betriebssystem gestartet, dann entsteht im Skript ein Laufzeitfehler und das Skript wird abgebrochen.

 


Bild 05

 

5 Skript erstellen - Teil 2
  • <Zeile 45> Durch die Methode "Open" des erstellten Objekts "fo" wird mittels des Parameters "path" (Pfadname) und "mode" die angegebene Datei geöffnet.

file.Open Pfadname, Modus, [Zugriff], [Sperrung], [Größe]

  • <Zeilen 48-52> Fehlerroutine, die durchlaufen wird, wenn die entsprechende Datei, oder der Pfadname, nicht existiert.
  • <Zeilen 55-57> In diesem Abschnitt wird überprüft, ob es sich um eine neue, oder bereits bestehende Datei handelt. Wenn die Datei neu ist, wird eine Kopfzeile hinzugefügt.
  • <Zeilen 60> Die Methode "LinePrint" des Objekts "fo" schreibt den angegebenen Textstring in die geöffnete Datei. Es können auch Variablen- oder Rückgabewerte von Methoden in die Datei geschrieben werden.
    Mit der "Now"-Funktion wird ein Zeitstempel  in die Datei geschrieben.
  • <Zeile 63> Die Datei wird mit der Methode "Close" geschlossen.
  • <Zeile 66> Die Schlüsselanweisung "Nothing" wird benötigt, um die Objektvariablen, die mit dem Befehl "Set" den Objekten zugewiesen wurden, zu trennen.
  • <Zeile 68> Übergibt eine benutzerdefinierte Systemmeldung an das HMI-Meldesystem.

 


Bild 06
6 Runtime starten
  • Transferieren Sie das WinCC (TIA Portal) Projekt auf das Bediengerät und starten Sie die Runtime.
    Hinweis
    Das Skript kann, auf Grund des unterschiedlichen File Systemszwischen Projektierungsrechner und Panel, nicht ausgetestet (debugged) werden.
  • Tragen Sie einen Druck, eine Temperatur und eine Werkstoffbezeichnung ein.
  • Betätigen Sie die Schaltfläche "Daten speichern".
  • Wählen Sie im symbolischen E/A-Feld ".csv" aus und betätigen Sie die Schaltfläche erneut.
  • Beenden Sie die Runtime des Bediengerätes.

  


Bild 07
7 Textdatei öffnen
Wenn Sie die beiden Dateien auf der Speicherkarte abspeichern, können Sie diese über einen Kartenleser an einem PC einlesen und mit den entsprechenden Programmen öffnen.
  • Öffnen Sie die Datei mit der Extension ".txt".
  • Anschließend können Sie die Datei schließen.

 


Bild 08
  • Öffnen Sie die Datei mit der Extension ".csv", zum Beispiel mit Excel.
  • Schließen Sie die Excel-Anwendung.

 


Bild 09
Tabelle 01

Beispiel zum Auslesen von Information aus einer txt- bzw. csv-Datei
In der nachstehenden Tabelle wird erläutert, wie Informationen aus einer txt- bzw. csv-Datei ausgelesen werden und in WinCC (TIA Portal) dargestellt werden können. Für die Darstellung werden E/A-Felder verwendet. Aus diesem Grund wird nur der letzte Eintrag ausgegeben.

Hinweis
Da in diesem Beispiel nach dem letzten Eintrag gesucht wird, wird die Skriptlaufzeit mit der Größe der Datei steigen. Generell ist die Projektierung nicht abhängig vom zuvor beschriebenen Beispiel. Es werden aber Komponenten daraus verwendet.
 

Nr. Vorgehensweise
1 Variablen anbinden
  • Öffnen Sie den Variablen-Editor über "Projektnavigation > HMI_1 > HMI-Variablen > Alle Variablen anzeigen".
  • Fügen Sie drei interne Variablen mit folgender Bezeichnung hinzu:
     
    Variable

    Datentyp

    szdate WString
    szString_1 WString
    iValue_1 Int
    iValue_2 Int

 
Hinweis

Wenn Sie nicht auf das vorherige Beispiel aufbauen, fügen Sie auch die Variable "bExtension" vom Typ "Bool" hinzu.

 


Bild 10
2 Objekte hinzufügen
  • Wechseln Sie in das Bild "ImportExportData".
  • Fügen Sie ein Rechteck in das Bild ein.
  • Binden Sie - falls nicht schon vorhanden - ein symbolisches E/A-Feld sowie vier konventionelle E/A-Felder ein.
  • Fügen Sie eine Schaltfläche und fünf Textfelder ein .
  • Positionieren Sie alle Objekte gemäß dem Bild 11 und geben Sie folgende Texte ein:
     
    • "Datum"
    • "Wert_1"
    • "Wert_2"
    • "String_1"
    • "Textdatei"
    • "Einstellungen"  (falls noch nicht vorhanden)
    • "Extension" (falls noch nicht vorhanden)
       
  • Erstellen Sie - falls nicht schon vorhanden - eine Textliste "Extension" mit folgenden Einträgen:
     
    • 0 =>  ".txt"
    • 1 =>  ".csv"

 


Bild 11
3 Skript, Textliste und Variablen anbinden
  • Kopieren Sie das Skript "Write_data" und ändern Sie den Namen in "Read_data" (Änderungen im Skript werden unter Punkt 5 vorgenommen)
  • Binden Sie das Skript "Read_data"  an die Schaltfläche "Datei lesen" unter "Eigenschaften > Ereignisse > Klicken" an.
  • Verbinden Sie - falls nicht schon vorhanden - die Textliste "Extension" mit dem symbolischen E/A-Feld "Extension".
  • Binden Sie folgende Variablen an die entsprechenden Objekte an:
     
    Variable/Skript Objekt Objekt für...
    szDate E/A-Feld Datum
    iValue_1 E/A-Feld Wert_1
    iValue_2 E/A-Feld Wert_2
    szString_1 E/A-Feld String_1

 


Bild 12
4 Skript anpassen
  • Ändern Sie das Skript "Read_data" wie nachfolgend beschrieben um.

Beschreibung des Quellcodes

  • <Zeilen 10-15> Ändern Sie die Namen der lokalen Variablen (siehe Bild 13).
  • <Zeile 18> Ändern Sie die Initialisierung der Variablen "mode" von 8 (Append) auf 1 (Input).
  • <Zeilen 21-29> Entfernen Sie die nicht mehr benötigte Variable "gap".

 


Bild 13
5 Skript anpassen
  • <Zeilen 54-60> Entfernen Sie den Abschnitt, in dem, in die Datei geschrieben wird.
  • <Zeilen 54-60> Fügen Sie das Lesen aus der Datei ein (siehe Bild 14)

 


Bild 14
6 Runtime starten
  • Transferieren Sie das WinCC (TIA Portal) Projekt auf das Bediengerät und starten Sie die Runtime.

    Hinweis
    Das Skript kann, auf Grund des unterschiedlichen File Systems zwischen Projektierungsrechner und Panel, nicht ausgetestet (debugged) werden.  
     
  • Betätigen Sie die Schaltfläche "Datei lesen".
  • Wählen Sie im symbolischen E/A-Feld ".csv" aus. Betätigen Sie die Schaltfläche erneut.
  • Beenden Sie die Runtime des Bediengerätes.

 


Bild 15
Tabelle 02

Download
In der Anlage  ist das beschriebene Beispielprojekt enthalten.

 Registrierung notwendig  V15 Beispielprojekt (361,0 KB)

 Registrierung notwendig  V14 SP1 Beispielprojekt (322,4 KB)

Hinweis
Der verwendete Quellcode im Script kann nur bei Bediengeräten mit Microsoft Windows CE verwendet werden, da mit diesem Quellcode der Zugriff auf das Dateisystem von anderen Betriebssystemen nicht möglich ist.

Weiterführende Informationen
In den folgenden FAQ-Beiträgen finden Sie ergänzende Informationen zum Speichern von Textdateien mit Scripten:

  • Mit WinCC flexible und windows-basierten Panels: Beitrags-ID 26107211 ("Wie können an einem windows-basierten Panel mit WinCC flexible Informationen in einer Textdatei mit Hilfe eines Skripts gespeichert und ausgelesen werden?")
  • Mit WinCC flexible und PCs: Beitrags-ID 26106418 ("Wie können an einem PC mit WinCC flexible Informationen in einer Textdatei mit Hilfe eines Skripts gespeichert und ausgelesen werden?")
  • Mit WinCC (TIA Portal) und PCs: Beitrags-ID 106501825 ("Wie speichern Sie mit der WinCC (TIA Portal) PC Runtime Informationen mit einem Script in eine Datei?")
  • Welche VBS-Informationen und VBS-Programmierhilfen gibt es in WinCC (TIA Portal)?
    Beitrags-ID: 59885894
  • Wie kann mit einem Comfort Panel ein Word-, Excel- oder PDF-Dokument geöffnet werden?
    Beitrags-ID: 51723931
  • Wie kann ich Runtime-Daten von WinCC exportieren und wieder importieren?
    Beitrags-ID: 850338
  • Wie können Sie mit einem Skript feststellen, ob ein Speicherlaufwerk mit Wechselmedien (USB-Stick, SD-/MMC-Karte) auf einem HMI-Gerät schreibbereit ist?
    Beitrags-ID: 89855157

 

Securityhinweise
Um technische Infrastruktur, Systeme, Maschinen und Netzwerke gegen Cyber-Bedrohungen zu sichern, ist es erforderlich, ein ganzheitliches IT Security-Konzept zu implementieren (und kontinuierlich aufrechtzuerhalten), das dem aktuellen Stand der Technik entspricht. Die Produkte und Lösungen von Siemens formen nur einen Bestandteil eines solchen Konzepts. Weitergehende Informationen über Cyber Security finden Sie unter
https://www.siemens.com/cybersecurity#Ouraspiration.
Unterstützung zur Statistik
Mit dieser Funktion werden die IDs des Suchergebnisses nach gewünschter Anzahl ausgegeben (Format .txt)

Liste generieren
URL kopieren
Diese Seite in neuem Design anzeigen
mySupport Cockpit