Beruflich Dokumente
Kultur Dokumente
Hinweis Die Anwendungsbeispiele sind unverbindlich und erheben keinen Anspruch auf
Vollständigkeit hinsichtlich Konfiguration und Ausstattung sowie jeglicher Eventualitäten.
Die Anwendungsbeispiele stellen keine kundenspezifischen Lösungen dar, sondern sollen
lediglich Hilfestellung bei typischen Aufgabenstellungen bieten. Sie sind für den sach-
gemäßen Betrieb der beschriebenen Produkte selbst verantwortlich. Dieses Anwendungs-
beispiel enthebt Sie nicht der Verpflichtung zu sicherem Umgang bei Anwendung,
Installation, Betrieb und Wartung. Durch Nutzung dieses Anwendungsbeispiels erkennen
Sie an, dass wir über die beschriebene Haftungsregelung hinaus nicht für etwaige
Schäden haftbar gemacht werden können. Wir behalten uns das Recht vor, Änderungen
an diesem Anwendungsbeispiel jederzeit ohne Ankündigung durchzuführen. Bei
Abweichungen zwischen den Vorschlägen in diesem Anwendungsbeispiel und anderen
Siemens Publikationen, wie z. B. Katalogen, hat der Inhalt der anderen Dokumentation
Vorrang.
Für die in diesem Dokument enthaltenen Informationen übernehmen wir keine
Gewähr.
Unsere Haftung, gleich aus welchem Rechtsgrund, für durch die Verwendung der
in diesem Anwendungsbeispiel beschriebenen Beispiele, Hinweise, Programme,
Projektierungs- und Leistungsdaten usw. verursachte Schäden ist ausgeschlossen,
soweit nicht z. B. nach dem Produkthaftungsgesetz in Fällen des Vorsatzes, der
groben Fahrlässigkeit, wegen der Verletzung des Lebens, des Körpers oder der
Gesundheit, wegen einer Übernahme der Garantie für die Beschaffenheit einer
Sache, wegen des arglistigen Verschweigens eines Mangels oder wegen
Verletzung wesentlicher Vertragspflichten zwingend gehaftet wird. Der Schadens-
© Siemens AG 2019 All rights reserved
Security- Siemens bietet Produkte und Lösungen mit Industrial Security-Funktionen an, die den
hinweise sicheren Betrieb von Anlagen, Systemen, Maschinen und Netzwerken unterstützen.
Um Anlagen, Systeme, Maschinen und Netzwerke gegen Cyber-Bedrohungen zu sichern,
ist es erforderlich, ein ganzheitliches Industrial 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.
Der Kunde ist dafür verantwortlich, unbefugten Zugriff auf seine Anlagen, Systeme,
Maschinen und Netzwerke zu verhindern. Systeme, Maschinen und Komponenten sollten
nur mit dem Unternehmensnetzwerk oder dem Internet verbunden werden, wenn und
soweit dies notwendig ist und entsprechende Schutzmaßnahmen (z.B. Nutzung von
Firewalls und Netzwerksegmentierung) ergriffen wurden.
Zusätzlich sollten die Empfehlungen von Siemens zu entsprechenden Schutzmaßnahmen
beachtet werden. Weiterführende Informationen über Industrial Security finden Sie unter
http://www.siemens.com/industrialsecurity.
Die Produkte und Lösungen von Siemens werden ständig weiterentwickelt, um sie noch
sicherer zu machen. Siemens empfiehlt ausdrücklich, Aktualisierungen durchzuführen,
sobald die entsprechenden Updates zur Verfügung stehen und immer nur die aktuellen
Produktversionen zu verwenden. Die Verwendung veralteter oder nicht mehr unterstützter
Versionen kann das Risiko von Cyber-Bedrohungen erhöhen.
Um stets über Produkt-Updates informiert zu sein, abonnieren Sie den Siemens Industrial
Security RSS Feed unter http://www.siemens.com/industrialsecurity.
Inhaltsverzeichnis
Gewährleistung und Haftung ...................................................................................... 2
1 Einführung .......................................................................................................... 4
1.1 Überblick............................................................................................... 4
1.2 Funktionsweise ..................................................................................... 5
1.3 Beschreibung der WinCC-Applikation .................................................. 6
1.3.1 Übersicht und Beschreibung der Umkehrosmose-Anlage ................... 6
1.3.2 Funktionalität der Umkehrosmose-Anlage ........................................... 9
1.4 Verwendete Komponenten ................................................................. 13
2 Archivdaten exportieren mit WinCC .............................................................. 14
2.1 Funktionsweise ................................................................................... 14
2.2 Konfiguration und Projektierung ......................................................... 15
2.2.1 Konfigurationen im Beispielprojekt ..................................................... 15
2.2.2 Projektierung der Skripte zum Export von Archivdaten ..................... 16
2.2.3 Skript zum Export von archivierten Variablen .................................... 16
2.2.4 Skript zum Export von archivierten Meldungen ................................. 28
2.3 Bedienung .......................................................................................... 40
2.3.1 Export von archivierten Variablen mit VBS-Skript .............................. 40
2.3.2 Export von archivierten Meldungen mit VBS-Skript ........................... 40
3 Archivdaten exportieren mit Excel ................................................................ 41
3.1 Funktionsweise Übersicht .................................................................. 41
© Siemens AG 2019 All rights reserved
1 Einführung
1.1 Überblick
Motivation
Um Prozesse von modernen Automatisierungsanlagen zu visualisieren, werden
zahlreiche Prozessgrößen benötigt. Während des Prozessablaufs wird der
Anwender mit Hilfe von Meldungen über Ereignisse informiert. Die vergangenen
Prozessgrößen und Meldungen werden in Archiven abgespeichert und stehen
Ihnen somit jederzeit zur Verfügung.
WinCC speichert die Daten komprimiert und binärcodiert in den Archiven ab. Über
WinCC-Controls können die archivierten Prozessgrößen und Meldungen angezeigt
werden.
Das zugrundeliegende Format eignet sich jedoch nicht, um die Daten zu
analysieren und weiterzuverarbeiten.
Aufgabe
Die Anforderung besteht darin, die Daten in andere Formate, z. B. als „*.csv“- oder
„*.xls“-Datei zu exportieren. Die Daten können anschließend in Office-
Anwendungen, ERP- und MES-Systemen bequem weiterverarbeitet werden.
Abbildung 1-1
© Siemens AG 2019 All rights reserved
Visualisierung
Offic e A pplikationen,
ERP-, MES-System e
*.csv
*.xls
Externes Datenformat
Arc hive
Vorausgesetzte Kenntnisse
Grundlegende Kenntnisse zu WinCC V7 werden vorausgesetzt.
1.2 Funktionsweise
Zum Export der WinCC-Archivdaten wird die Option
SIMATIC WinCC/Connectivity Pack eingesetzt. Sie stellt den
WinCC OLE DB-Provider zur Verfügung.
Der WinCC OLE DB-Provider ermöglicht den transparenten Zugriff auf die WinCC-
Archivdaten.
Abbildung 1-2
Win CC–
Applikation
Offic e Applikationen,
Arc hive
ERP-, MES-Systeme
Projekt Daten
Externes Datenformat
© Siemens AG 2019 All rights reserved
Arc hive
SlowTag Logging
Hinweis Die Umkehrosmose-Anlage ist als WinCC-Projekt ausgeführt und als Download
im Anwendungsbeispiel enthalten.
Abbildung 1-3
© Siemens AG 2019 All rights reserved
Tabelle 1-1
Schaltflächen Beschreibung
Tabelle 1-2
Ventile (V) / Pumpe (P) Beschreibung
V700 Ventil Rohwasser
V701 Ventil Prozesswasser
V702 Ventil Tankabfluss
V703 Ventil Konzentrat
V704 Ventil CO2
V705 Ventil Chemikalie
V706 Ventil Abfluss
P800 Motor/Pumpe für das Rohwasser
Tabelle 1-3
Analoge Einheit Beschreibung
Messstellen
FI100 m3/h Zufluss Rohwasser
FI101 m3/h Abfluss Tank
FI102 m3/h Abfluss außerhalb des Tanks
FI300 l/h Zufluss CO2
FI500 l/h Zufluss Chemikalie
QI901 µs/cm Leitfähigkeit Konzentrat
QI900 µs/cm Leitfähigkeit Prozesswasser
PI200 bar Drucksensor1 Tank
PI201 bar Drucksensor2 Tank
PI202 bar Drucksensor3 Tank
PI203 bar Drucksensor4 Tank
© Siemens AG 2019 All rights reserved
Tabelle 1-4
Nr. Betriebszustand Hinweis
1. Aus Die Anlage befindet sich nach Start des Anwendungsbeispiels
in der WinCC-Runtime im Betriebszustand „Aus“.
Die Ventile und Motoren befinden sich in Grundstellung
(Zustand: „0“). Analoge Messstellen besitzen entweder ihren
Startwert oder den Wert „0“.
Mit der Schaltfläche „STOP“ wird ein Notfalleingriff in die
laufende Anlage simuliert. Die Anlage wird abgeschaltet und
geht in den Betriebszustand „Aus“ über.
2. Anfahren Nach dem „Anfahren“-Prozess geht die Anlage automatisch in
den „Produktion“-Prozess über.
Die Ventile und der Motor öffnen bzw. starten schrittweise.
Alle analogen Messstellen werden mit simulierten Werten
beschrieben.
3. Produktion Alle Ventile und der Motor sind aktiviert. Die analogen
Messstellen werden weiterhin mit simulierten, leicht
schwankenden Werten beschrieben.
4. Abfahren Nach dem „Abfahren“ der Anlage stellt sich wieder der
Betriebszustand „Aus“ ein.
Die Ventile und der Motor schließen bzw. stoppen
schrittweise. Noch aktive Messstellen werden mit simulierten
Werten beschrieben.
Aktionen
Tabelle 1-5
Aktion Aufruf - Trigger Beschreibung
Measurement.bac zyklisch - Steuert die Berechnung von Werten
Timer = 1 s der einzelnen analogen Messstellen,
durch Aufruf der Skripte „MeasMode“
und „Measurement“. Die benötigten
Simulationsparameter werden
innerhalb der Aktion übergegeben.
SimReverseOsmosis.bac zyklisch - Simuliert den Ablauf der
Timer = 1 s Umkehrosmose-Anlage durch Aufruf
der Skripte „StepControl“ und
„ActuatorControl“.
© Siemens AG 2019 All rights reserved
Prozeduren
Tabelle 1-6
Prozedur Aufruf Beschreibung
StepControl.bmo Aktion Simuliert die einzelnen Schritte der
„SimReverseOsmosis“ Anlage über verschiedene
Sequenzen (StartupSequence,
ShutdownSequence,
StopSequence).
MeasMode.bmo Aktion „Measurement“ Simuliert den Zustand der
einzelnen analogen Messstellen.
Measurement.bmo Aktion „Measurement“ Simuliert die Größen der einzelnen
analogen Messstellen.
ActuatorControl.bmo Aktion Simuliert Zustände von Ventilen
“SimReverseOsmosis“ und Motor abhängig vom Zustand
der Anlage.
WriteArchiveToCSV.bmo Trigger Schaltfläche Legt eine „*.csv“-Datei an, greift
„WriteArchiveToCSV“ über den WinCC OLE DB Provider
auf das Archiv zu und schreibt die
Archiveinträge zur Variable
„QI901_ConductivityPermeatIn“ in
diese. Es werden lediglich
Variablennamen, Messzeitpunkt,
die Variablen-ID und Wert
gesichert.
WriteMessagesToCSV. Trigger Schaltfläche Legt eine „*.csv“- Datei an, greift
bmo „WriteMessagesToCSV“ über den WinCC OLE DB Provider
auf das Archiv zu und schreibt die
Archiveinträge, bei denen die
Meldungsnummer <4 ist, in diese.
Es werden lediglich Messzeitpunkt,
Meldungsnummer, -typ und –klasse
gesichert.
Schaltfläche „Anfahren“
• Der Startzeitpunkt wird ermittelt und in das Ausgabefeld „Start“ eingetragen.
• Die Sequenz „StartupSequence“ wird gestartet.
• Die Betriebszustandsanzeige „Status“ wechselt in die Betriebsart „Anfahren“.
• Die Ventile und Motoren öffnen bzw. starten schrittweise. Alle analogen
Messstellen werden mit simulierten Werten beschrieben. Der „Anfahren“-
Prozess enthält folgende fünf Schritte:
Abbildung 1-4
Status:
Anfahren
1
Status:
Aktueller Schritt Produktion
P800: aktiv
=3
Alle analogen Messstellen werden mit simulierten Werten beschrieben. Die Werte sind frei
gewählt und können jederzeit im Skript angepasst werden.
Variablen
Tabelle 1-7
Variablen Startwert Min Max Schrittweite
FI100_FlowRawwater 0 60 150 9
FI101_FlowConcentrate 0 10 7 120
= FI100 –
FI101 +
FI102_SupplyWater - - -
(FI300/1000) +
(FI500/1000)
FI300_FlowCO2 0 1 19 2
FI500_FlowChemicals 0 1 11 1,5
QI900_ConductivityPermeatIn 1511 1310 1556 33
QI901_ConductivityConcentrate 1900 1300 2000 56
PI200_Tank 0 1,1 5,5 0,35
PI201_Tank 0 1,1 5,4 0,32
PI202_Tank 0 1,1 5,3 0,31
PI203_Tank 0 1,1 5,2 0,30
Schaltfläche „Abfahren“
Die Betriebszustandsanzeige „Status“ wechselt in die Betriebsart „Abfahren“.
• Die Sequenz „ShutdownSequence“ wird gestartet.
• Die Ventile und Motoren schließen bzw. stoppen schrittweise. Noch aktive,
analoge Messstellen werden weiterhin mit simulierten Werten beschrieben.
Der „Abfahren“-Prozess enthält folgende sieben Schritte (Schritt 6-12).
Abbildung 1-5
Status:
Abfahren
1
Status:
Aktueller Schritt Aus
V700: zu
=9
• Der Abfahrprozess dauert ca. 25 s bis die Anlage in den Betriebszustand „Aus“
wechselt.
• Die Kurvenaufzeichnung stoppt ereignisgetriggert mit „Aus“ der Anlage.
• Der Stoppzeitpunkt wird ermittelt und in das Ausgabefeld „Aus“ eingetragen.
Schaltfläche „Stopp“
• Die Betriebszustandsanzeige „Status“ wechselt in die Betriebsart „Aus“.
• Die Sequenz „StopSequence“ wird gestartet.
• Die Ventile und Motoren schließen bzw. stoppen sofort, analoge Messstellen
werden auf ihren Startwert zurückgesetzt.
• Die Kurvenaufzeichnung stoppt ereignisgetriggert mit dem „Stop“ der Anlage.
• Der Stoppzeitpunkt wird ermittelt und in das Ausgabefeld „Aus“ eingetragen.
• Die Anlage geht in den Betriebszustand „Aus“ über.
Schaltfläche „Produktion“
Alle Ventile und der Motor sind aktiv (Zustand: „1“). Die analogen Messstellen werden weiterhin
mit simulierten und leicht schwankenden Werten beschrieben (siehe Tabelle 1-7).
Schaltfläche „Aus“
Die Ventile und Motoren befinden sich in Grundstellung (Zustand: „0“). Analoge Messstellen
besitzen entweder ihren Startwert (siehe Tabelle 1-7) oder den Wert „0“.
Tabelle 1-8
Komponente Anzahl Artikelnummer Hinweis
Engineering Station 1 Entwicklungsrechner mit
Windows 7x64 SP1
SIMATIC WinCC V7.4 SP1 1 6AV63.1-....7-4...
SIMATIC
WinCC/Connectivity Pack 1 6AV6371-1DR07-4...
V7.4 SP1
MS SQL Server 2008 R2 1
MS Excel 2007, 2010,
1
2013
Tabelle 1-9
Komponente Dateiname
WinCC-Projekt 38132261_Application_Reverse_Osmosis_PROJ.zip
Excel-Dateien 38132261_Application_Reverse_Osmosis.xls
38132261_Application_Universal_Client.xls
Dokumentation 38132261_ Application_Reverse_Osmosis_DOC_de.pdf
Abbildung 2-1
© Siemens AG 2019 All rights reserved
WinCC/Connectivity Pack
OLE DB Provider
*.csv
Exportierte Daten
• Variable
„QI900_ConductivityPermeatIn“
• Alle Meldungen in den letzten
24 h mit MsgNr. < 4
Archive
Hinweis Die im Kapitel 2 gezeigten Skripte dienen lediglich der Illustration und wurden im
WinCC-Projekt bereits angelegt. Das WinCC-Projekt ist daher nach dem
Anpassen des Rechnernamens sofort lauffähig.
Rechnername anpassen
1. Entpacken Sie die Datei mit dem Namen
„38132261_Application_Reverse_Osmosis_PROJ.zip“ in ein beliebiges
WinCC-Projektverzeichnis auf Ihrem Rechner.
2. Öffnen Sie das WinCC-Projekt mit dem Namen
„WinCC73_SE_UPD8_Connectivity_Pack.MCP“ und passen Sie im Projekt
den Rechnernamen in den Rechnereigenschaften an. Übernehmen Sie hierfür,
über das Kontextmenü unter „Rechner > Eigenschaften“, den
Windows-Rechnernamen ihres PC.
3. Starten Sie WinCC neu.
© Siemens AG 2019 All rights reserved
Script-Debugger
Wenn Sie die VB-Skripte debuggen möchten, können Sie einen Script-Debugger
verwenden. Ab SIMATIC WinCC V6.2 ist er aus lizenzrechtlichen Gründen nicht
mehr im Lieferumfang von SIMATIC WinCC enthalten.
Um die Anzeige und das Debugging von Script-Fehlern zu aktivieren, setzen Sie
unter den Rechnereigenschaften im Register „Runtime“ die folgenden
Einstellungen:
Abbildung 2-2
Debugger starten
Wenn Sie die Funktion "Debugger starten" aktivieren, wird beim Start des ersten
Skripts in der Runtime der Debugger gestartet. Die Funktion dient zur raschen
Fehlersuche während der Projektierungsphase.
Die Funktion "Debugger starten" projektieren Sie für VBS-Skripte in Bildern des
Graphics Designer und für VBS-Skripte in Global Script separat. Aktivieren Sie
dazu das jeweilige Optionskästchen „Starte Debugger“.
Hinweis Weitere Hinweise finden Sie in der Dokumentation „WinCC V7.4 Scripting: VBS,
ANSI-C, VBA“, im Kapitel „So aktivieren Sie den Debugger“
https://support.industry.siemens.com/cs/ww/de/view/109736230/70687471243
Fehlerdialog anzeigen
Ist die Funktion "Fehlerdialog anzeigen" aktiviert, so wird beim Auftreten eines
Fehlers in einem VB-Skript ein Fehlerdialog mit Informationen zu dem
aufgetretenen Fehler angezeigt. Über eine Schaltfläche im Fehlerdialog kann ein
Debugger gestartet werden. Voraussetzung ist ein installierter Debugger für Visual
Basic.
Die Funktion "Fehlerdialog anzeigen" kann für VB-Skripte in Bildern des Graphics
Designer und für VB-Skripte in Global Script separat projektiert werden. Aktivieren
Sie dazu das jeweilige Kontrollkästchen.
© Siemens AG 2019 All rights reserved
Zur besseren Veranschaulichung wird in diesem Beispiel nur die Messstelle QI900
(Leitfähigkeit des erzeugten Prozesswassers) betrachtet. Deren archivierte Werte
werden per Tastendruck in eine „*csv“-Datei geschrieben.
Die gleichzeitige Abfrage mehrerer Messwerte ist alternativ auch in VBS-Code
möglich.
Tabelle 2-1
Nr. Aktion
1. Starten Sie den Global Script VBS-Editor.
2. Wählen Sie das Register „Project Module“ und erstellen Sie einen neuen Ordner
mit dem Namen „WriteArchiveToCSV“.
© Siemens AG 2019 All rights reserved
Nr. Aktion
4. Ändern Sie die Sub-Prozedur in eine Funktion. Ergänzen Sie diese um die
Parameter „ArchiveName“ und „MeasuringPoint“. Speichern Sie das Projekt-
Modul unter dem Namen „WriteArchiveValuesToCSV“ ab.
Tabelle 2-2
Nr. Aktion
1. Beginnen Sie den Code mit der Deklaration der folgenden Variablen:
'Declaration of local Tags
Dim fso 'FileSystemObject
Dim f 'File
Dim ts 'TextStream
Dim path 'Path
Dim StartArchive 'Starttime of Archiving
Dim StopArchive 'Stoptime of Archiving
Dim TimeStamp 'Timestamp for bulding filename
2. Lesen Sie mit nachfolgendem Code den Start- und Stoppzeitpunkt der
Umkehrosmose-Anlage aus. Die internen WinCC-Variablen hierfür sind
„DateTimeLastStart“ und „DateTimeLastStop“. Bei Start und Stopp der Anlage
werden die jeweiligen Zeitpunkte (Format: tt.mm.jjjj hh:mm:ss) in diese
abgespeichert.
'Read Start- and Stoptime of Osmosis
Set StartArchive = HMIRuntime.Tags("DateTimeLastStart")
Set StopArchive = HMIRuntime.Tags("DateTimeLast")
Sofern Start- oder Stoppzeitpunkt fehlen, soll eine Meldung ausgegeben und die
Bearbeitung der Funktion beendet werden.
If StartArchive.Read = "" Or StopArchive.Read = "" Then
MsgBox "Start- or Stoptime of Archiving is missing"
Exit Function
End If
Nr. Aktion
3. Legen Sie den Pfad und Dateinamen fest. Die Variable „path“ beinhaltet den
kompletten Dateinamen mit Pfad in der Form:
C:\Temp\Osmosis_+ Startzeitpunkt +_Messstellenname
Der Startzeitpunkt wird im Anwendungsbeispiel zur Bildung des Dateinamens
verwendet und muss zuvor in ein geeignetes Format gebracht werden.
'Generate String for the *.csv filename and replace ":" with
'"_"
TimeStamp = FormatDateTime(StartArchive.Read, vbGeneralDate)
TimeStamp = Replace(TimeStamp,":", "_")
'Path and name for the *.csv -File
path = "C:\Temp\" & "Osmosis_" & TimeStamp & "_" &
MeasuringPoint & ".csv"
4. Anschließend nutzen Sie den nachfolgenden Code, um das Dateisystem-Objekt
(fso) und das Datei-Objekt (f) unter Verwendung des zuvor gebildeten Pfad- und
Dateinamens (path) zu erzeugen. Zuvor wird geprüft, ob die Datei bereits existiert
und für diesen Fall die Bearbeitung der Funktion nach Ausgabe einer Meldung
beendet werden.
'Create FileSystemObject and *.csv file if it not exist:
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FileExists(path) Then
fso.CreateTextFile(path)
Else
© Siemens AG 2019 All rights reserved
Tabelle 2-3
Feld-Nr. Feldname Typ Bedeutung
0 ValueID Integer (4 Byte) ID des Prozesswerts
1 TimeStamp DateTime Zeitstempel des Prozesswerts
2 RealValue Real (8 Byte) Prozesswert
3 Quality Integer (4 Byte) QualityCode des Prozesswerts
Hinweis Ein Zugriff ist auch ohne Angabe des Rechnernamens möglich (.\WinCC).
Jedoch sinkt dabei die Zugriffsgeschwindigkeit.
Geben Sie beim transparenten Zugriff für „Catalog“ den Namen des WinCC-
Projekts an, z. B.: „Catalog = WinCC_Project_Name“.
Hinweis Geben Sie, um mehrere archivierte Werte gleichzeitig abzufragen, die ValueIDs
oder Variablennamen in Klammern und durch Semikolon getrennt, an (z. B.
„TAG:R,('ValueName_1';'ValueName_2';'ValueName_x'), <TimeBegin>,
<TimeEnd>“).
Die Startzeit- bzw. Stoppzeitpunkte können absolut oder relativ übergeben werden.
Tabelle 2-4
Startzeitpunkt Stoppzeitpunkt Abgefragter Zeitbereich
Hinweis Der Zeitstempel der Prozesswerte wird in UTC (koordinierte Weltzeit) abgelegt.
Daher muss bei Angabe der Startzeit- und Endzeitpunkte in absoluter Form die
regionale Zeitzone und ggf. Sommer- und Winterzeit berücksichtigt werden.
Hinweise zum Umrechnen der lokalen Rechnerzeit in UTC finden Sie unter:
https://support.industry.siemens.com/cs/ww/de/view/24201113
Hinweis Die Abfrage mit „ValueID“ ist performanter als die Abfrage über
„ArchiveName\Tagname“. Die ValueID ist jedoch nicht mit der Reihenfolge der
Variablen im Tag-Logging-Editor identisch. Die ValueID eines Tags kann über
den SQL Server Management Studio ermittelt werden. Öffnen Sie die Tabelle
„dbo.Archive“ in der Runtime-Datenbank des Projekts über das SQL Server
Management Studio. Die ValueID ist in der ersten Spalte der Tabelle aufgelistet.
Tabelle 2-5
Nr. Aktion
1. Deklarieren Sie die weiteren Variablen:
Dim Pro 'Provider
© Siemens AG 2019 All rights reserved
Nr. Aktion
2. Lesen Sie mit dem nachfolgenden Code den Rechnernamen und die GUID des
Projekts aus den Umgebungsvariablen „@LocalMachineName“ und
„@DataSourceNameRT“, in die zuvor deklarierten, lokalen Variablen ein.
'Read the name of the PC-Station and the DSN-Name from
'WinCC-RT
Set MachineNameRT = HMIRuntime.Tags("@LocalMachineName")
Set DSNRT = HMIRuntime.Tags("@DatasourceNameRT")
Mit Hilfe dieser Variablen bilden Sie den „ConnectionString“.
'Preparing the Connection-String
'First instance of WinCCOLEDB
Pro="Provider=WinCCOLEDBProvider.1;"
'Name of Runtime-Database
DSN="Catalog=" & DSNRT.Read & ";"
'Data Source
DS= "Data Source=" & MachineNameRT.Read & "\WinCC"
'Build the complete String:
ConnString = Pro + DSN + DS
3. Bauen Sie mit der Anwendung des „ConnectionString“ die Verbindung zur
Datenbank auf:
'Make Connection
© Siemens AG 2019 All rights reserved
Nr. Aktion
4. Für die Abfrage der Daten in der WinCC-Datenbank wird der „Command-Text“
benötigt.
In diesem Anwendungsbeispiel wird für die Abfrage die relative Zeitangabe
verwendet. Der Startzeitpunkt ist die Differenz zwischen Startzeit- und
Endzeitpunkt. Die Abfrage umfasst dadurch den Zeitraum „Archiv-Ende minus
Zeitdifferenz bis Archiv-Ende“ (siehe Tabelle 2-4).
Die volle Zeitdifferenz wird zunächst in der Einheit Sekunden gebildet und erst
anschließend in das Zeitformat „Tage:Stunden:Minuten:Sekunden“ umgerechnet.
Bei der Formatierung werden auch die führenden Nullen bei Zahlenwerten größer
10 erzeugt.
'Duration between Start an Stop in seconds:
Duration = DateDiff ("s",StartArchive.Read,StopArchive.Read)
'Split the Duration in days, hours, minutes and seconds:
DurationMin = Fix(Duration/60)
DurationSec = Duration - (DurationMin * 60)
DurationHour = Fix(DurationMin/60)
DurationMin = DurationMin -(DurationHour * 60)
DurationDay = Fix(DurationHour/ 24)
DurationHour = DurationHour - (DurationDay * 24)
'Creating leading zeros:
DurationSec = Right("00" & DurationSec,2)
DurationMin = Right("00" & DurationMin,2)
© Siemens AG 2019 All rights reserved
Hinweis Beachten Sie im Umgang mit Zeit- und Datumsformat in WinCC und Visual
Basic, dass das Datumsformat von der in Windows eingestellten Region
abhängig ist. Der VBS-Code ist so gestaltet, dass Datum und Uhrzeit
unabhängig von diesen rechnerspezifischen Einstellungen ausgewertet werden.
© Siemens AG 2019 All rights reserved
Tabelle 2-6
Nr. Aktion
1. Die nachfolgende Schleife schreibt die Datensätze (Messstellennamen, Variablen-
ID, den Zeitstempel (UTC), den Prozesswert) zeilenweise in die „*.csv“-Datei. Zuvor
wird einmalig eine Zeile mit den Spaltenüberschriften erzeugt. Hierbei wird die
aktuelle Runtime-Spracheinstellung berücksichtigt (HMIRuntime.Language; 1031 =
deutsch, 1033 = englisch).
Das RecordSet wird bei jedem Durchlauf auf den nächsten Datensatz gestellt.
'write recordsets To *.csv-File
'Header in *.csv-File
Language = HMIRuntime.Language
Select Case Language
Case 1031 'German = 1031
ts.WriteLine ("Tag-Name;ValueID;Datum/Zeit;Prozesswert")
'MsgBox "Tag-Name;ValueID;Datum/Zeit;Prozesswert"
Case 1033 'English = 1033
ts.WriteLine ("Tag-Name;ValueID;Date/Time;Process-Value")
© Siemens AG 2019 All rights reserved
'MsgBox "Tag-Name;ValueID;Date/Time;Process-Value"
End Select
Nr. Aktion
2. Am Ende des Skriptes wird die Verbindung zur Datenbank beendet und die Objekte
freigegeben.
' Close all
ts.Close
RecSet.Close
Set ReCset = Nothing
Set Command = Nothing
conn.Close 'Close connection
Set Conn = Nothing
Set fso = Nothing
Set f = Nothing
Set ts = Nothing
End Function
3. Speichern Sie das Skript. Das Skript steht nun zum Aufruf zur Verfügung.
© Siemens AG 2019 All rights reserved
Tabelle 2-7
Nr. Aktion
1. Öffnen Sie das Bild „ReverseOsmosis.Pdl“ im Graphics Designer.
2. Öffnen Sie den Eigenschaften-Dialog der Schaltfläche „Export Variable“ und öffnen
Sie unter „Ereignisse > Maus > Mausklick > VBS-Aktion“ den VBS-Editor.
© Siemens AG 2019 All rights reserved
3. Rufen Sie das zuvor erstellte Skript mit dem folgenden Code auf.
Sub OnClick(Byval Item)
Dim ArchiveName
Dim MeasuringPoint
ArchiveName = "Prozesswertarchiv"
MeasuringPoint = "QI900_ConductivityPermeatIn"
Call WriteArchiveValueToCSV (ArchiveName, MeasuringPoint)
End Sub
4. Speichern Sie das Bild.
Tabelle 2-8
Nr. Aktion
1. Starten Sie im WinCC-Anwendungsbeispiel den Global VBS-Editor.
© Siemens AG 2019 All rights reserved
Nr. Aktion
2. Sofern Kapitel 2.2.3 bereits bearbeitet wurde, kann Schritt Nr. 2 entfallen.
Wählen Sie das Register „Project Module“ und erstellen Sie einen neuen Ordner mit
dem Namen „WriteArchiveToCSV“.
4. Ändern Sie den Namen der Prozedur und speichern Sie das Projekt-Modul unter
dem Namen „WriteArchiveMessagesToCSV“.
Tabelle 2-9
Nr. Aktion
1. Deklarieren Sie die folgenden Variablen:
'Declaration of local Tags
Dim fso 'FileSystemObject
Dim f 'File
Dim ts 'TextStream
Dim path 'path
Dim StartTime 'Date and Time when writing is triggerd
Dim TimeStamp 'Timestamp for bulding filename
2. Legen Sie den Pfad und Dateinamen fest. Die Variable „path“ beinhaltet den
kompletten Dateinamen mit Pfad in der Form:
C:\users\<Benutzername>\Documents\Osmosis_ + Startzeitpunkt + _Messages.csv
Lesen Sie mit nachfolgendem Code die aktuelle Systemzeit aus und legen Sie
© Siemens AG 2019 All rights reserved
Nr. Aktion
3. Nutzen Sie den nachfolgenden Code um das Dateisystem-Objekt (fso) und das
Datei-Objekt (f) unter Verwendung des zuvor gebildeten Pfad- und Dateinamens
(path) zu erzeugen. Zuvor wird geprüft, ob die Datei bereits existiert. Für diesen Fall
die Bearbeitung der Funktion nach Ausgabe einer Meldung beendet.
'Create FileSystemObject and *.csv file if it not exist:
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FileExists(path) Then
fso.CreateTextFile(path)
Else
MsgBox "File already exist:" & vbCrLf & path
Exit Sub
End If
Im Anschluss wird die „*csv“-Datei mit dem TextStream-Objekt (ts) für das
Schreiben geöffnet.
'Create File-Object and open this File
Set f = fso.GetFile(path)
Set ts = f.OpenAsTextStream(2,-2)
'iomode = 2, Writing
'format = -2, TristateUseDefault
'*.csv-File is now ready for Writing
© Siemens AG 2019 All rights reserved
Für die Abfrage der Meldearchivdaten wird ein SQL-Befehlssatz gebildet. Ein
Meldearchivdatensatz ist entsprechend Tabelle 2-10 aufgebaut. Die Feldnamen
können in der SQL-Abfrage direkt angesprochen werden.
Tabelle 2-10
Feld-Nr. Feldname Typ Bedeutung
1 MsgNr Integer (4 Byte) Meldenummer
2 State Small Integer 2 Byte Status der Meldung
3 DateTime DateTime 8 Byte Zeitstempel der Meldung
(Datum Uhrzeit ohne
Millisekunden)
4 Ms Small Integer 2 Byte Zeitstempel der Meldung
(Millisekunden)
5 Instance VarChar(255) Instanzname der Meldung
6 Flags1 Integer 4 Byte (nur interne Verwendung)
7 PValueUsed Integer 4 Byte Verwendete Prozesswerte
Hinweis Ein Zugriff ist auch ohne Angabe des Rechnernamens möglich (.\WinCC).
Jedoch erfolgt er dabei mit geringerer Performance.
Geben Sie beim transparenten Zugriff für "Catalog" den Namen des WinCC-
Projektes an, z. B.: "Catalog=WinCC_Project_Name".
Tabelle 2-11
Parameter Beschreibung
ViewName Name der Datenbanktabelle. Die Tabelle muss in der gewünschten
Sprache angegeben werden. Der "ViewName" für die fünf
europäischen Sprachen lautet beispielweise:
Parameter Beschreibung
Condition Gibt die Bedingung(en) für die Meldearchiv-Abfrage an.
Beispiele für Abfragen:
DateTime>'2003-06-01' AND DateTime<'2003-07-01'
DateTime>'2003-06-01 17:30:00'
MsgNr = 5
MsgNr in (4, 5)
State = 2
Hinweis
Bei DateTime können nur absolute Zeitangaben verwendet werden.
Beispiel:
Der „CommandText“ liest alle deutschen Einträge der Meldung Nummer 5, die
nach dem 01.01.2016 erfasst wurden:
“ALARMVIEWEX:Select * FROM ALGVIEWEXDEU WHERE MsgNr=5 and DateTime >
‘2016-01-01’“
Ab WinCC V7.2 wird UNICODE unterstützt. Daher hat sich der Archivzugriff von
Hinweis
Alarmen geändert. Bei älteren Versionen von WinCC (kleiner V7.2) wird über
ALARMVIEW (anstatt ALARMVIEWEX) auf das Alarmarchiv zugegriffen.
Hinweis Der Startzeit- und Stoppzeitpunkt können absolut oder relativ übergeben werden
(siehe Tabelle 2-4).
Tabelle 2-12
Nr. Aktion
1. Deklarieren Sie die weiteren Variablen:
'Declaration of Script Tags
Dim Pro 'Provider
Dim DSN 'Data Source Name
Dim DS 'Data Source
Dim ConnString 'Connection String
Dim MachineNameRT 'Name of the PC from WinCC-RT
Dim DSNRT 'Data Source Name from WinCC-RT
Dim Conn 'Connection to ADODB
Dim CommandText 'Command-Text
Dim SqlSec 'Duration of Production-Cycle
Dim SqlMin 'Duration of Production-Cycle
Dim SqlHour 'Duration of Production-Cycle
Dim SqlDay 'Duration of Production-Cycle
Dim SqlMonth 'Duration of Production-Cycle
Dim SqlYear 'Duration of Production-Cycle
© Siemens AG 2019 All rights reserved
Nr. Aktion
4. Die Abfrage der Daten in der Datenbank erfolgt über den „ CommandText“.
In diesem Beispiel wird der zuvor gespeicherte Startzeitpunkt der Abfrage
(Betätigung der Schaltfläche) erfasst. Dieser Zeitpunkt muss in die Darstellungsform
“YYYY-MM-DD hh:mm:ss“ umformatiert werden.
Auch hier müssen bei der Formatierung die führenden Nullen bei Zahlenwerten
kleiner 10 erzeugt werden.
'FormatStarttime for SQL-Statement
'Fomat needed for StartTime: jjjj-mm-dd hh:mm:ss
'Date and time 24 hours before
StartTime = DateAdd("h", -24, StartTime)
'Split in years, months, days, hours, minutes, seconds
SqlSec = Second(StartTime)
SqlMin = Minute(StartTime)
SqlHour = Hour(StartTime)
SqlDay = Day(StartTime)
SqlMonth = Month(StartTime)
'Creating leading zeroes
SqlSec = Right("00" & sqlSec,2)
SqlMin = Right("00" & sqlMin,2)
SqlHour = Right("00" & sqlHour,2)
© Siemens AG 2019 All rights reserved
Nr. Aktion
6. Anschließend wird das Command-Objekt erzeugt und die Abfrage mit dem zuvor
erzeugten „CommandText“ ausgeführt.
Der RecordSet wird auf das Command-Objekt gesetzt und anschließend auf den
ersten Datensatz gestellt, in dem die zuerst erfasste und somit älteste Meldung
gespeichert ist.
'Create the recordset, read the records and set the first
recordset:
Set Command = CreateObject("ADODB.Command")
Command.CommandType = 1
Set Command.ActiveConnection = Conn
Command.CommandText = CommandText
Set RecSet = Command.Execute
RecSet.MoveFirst
Hinweis Beim Arbeiten mit Zeit und Datum in WinCC und Visual Basic ist zu beachten,
dass das Datumsformat von den in Windows aktuellen Regioneneinstellungen
abhängt. Der VBS-Code sollte so gestaltet werden, dass Datum und Uhrzeit
unabhängig von diesen rechnerspezifischen Einstellungen ausgewertet werden
können.
© Siemens AG 2019 All rights reserved
Tabelle 2-13
Nr. Aktion
1. Das Schreiben der Datensätze wird mit folgender Schleife erledigt. Im Beispiel
werden die folgenden Recordset-Felder aus dem Datensatz gelesen und in die
„*.csv“-Datei geschrieben.
• DateTime (Zeitstempel)
• MsgNr (Meldenummer)
• Text1 (Ereignistext1)
• Classname (Meldeklasse)
• Typename (Meldetyp)
Zuvor wird einmalig eine Zeile mit den Spaltenüberschriften erzeugt, auch hier wird
die aktuell eingestellte Runtime-Sprache berücksichtigt.
Das RecordSet wird bei jedem Durchlauf auf den nächsten Datensatz gestellt.
'write recordsets To *.csv-File
'Header in CSV-File
Language = HMIRuntime.Language
Select Case Language
© Siemens AG 2019 All rights reserved
'writing recordsets
Do While Not RecSet.EOF
ts.WriteLine(RecSet.Fields("DateTime").Value & ";" &
RecSet.Fields("MsgNr").Value & ";" &
RecSet.Fields("Text1").Value & ";" &
RecSet.Fields("Classname").Value & ";" &
RecSet.Fields("Typename").Value)
RecSet.MoveNext
Loop
Nr. Aktion
2. Am Ende des Skriptes wird die Verbindung zur Datenbank beendet und die Objekte
freigegeben.
' Close all
ts.Close
RecSet.Close
Set RecSet=Nothing
Set Command = Nothing
conn.Close 'Close connection
Set Conn = Nothing
Set fso = Nothing
Set f = Nothing
Set ts = Nothing
3. Speichern Sie dieses Skript.
4. Das Script ist anschließend für den Aufruf verfügbar. Das Skript benötigt keine
Parameter.
Tabelle 2-14
Nr. Aktion
1. Öffnen Sie das Bild „ReverseOsmosis.Pdl“ im Graphics Designer.
2. Öffnen Sie den Eigenschaften-Dialog der Schaltfläche „Export Meldungen“ und
öffnen Sie unter „Ereignisse > Maus > Mausklick > VBS-Aktion“ den VBS-Editor.
3. Erstellen Sie nachfolgenden Code für den Aufruf des zuvor erstellten VBS-Skripts:
Sub OnClick(ByVal Item)
WriteArchiveMessagesToCSV
End Sub
4. Speichern Sie das Bild.
2.3 Bedienung
2.3.1 Export von archivierten Variablen mit VBS-Skript
Tabelle 2-15
Nr. Aktion Anmerkung
1. Starten Sie die Runtime.
Abbildung 3-1
© Siemens AG 2019 All rights reserved
WinCC/Connectivity Pack
OLE DB Provider
*.XLS
Excel Client
Archive
“Osmose”-Client
• Der Excel-Client „38132261_Application_Reverse_Osmosis.xls” weist eine
ähnliche Darstellung wie das zugehörige WinCC-Projekt auf.
• Das Zeitintervall bei der Abfrage (Prozesswerte und Meldungen) ist frei
einstellbar.
• Das gleichzeitige Auslesen aller relevanter Prozesswerte der Osmose-Anlage
und deren übersichtliche Darstellung ist möglich.
• Die enthaltenen Skripte sind auf leichte Nachvollziehbarkeit hin optimiert. Auf
Plausibilitätsabfragen und UTC-Zeitanpassungen wurde daher bewusst
verzichtet, um die Übersichtlichkeit zu bewahren.
• Vor dem Einsatz des Clients müssen im jeweiligen Skriptaufruf der Name des
Servers und der Name der WinCC RT-Datenbank angepasst werden.
„Universal“-Client
• Der Excel-Client „38132261_Application_Universal_Client.xls“ ist unabhängig
vom jeweiligen WinCC-Projekt einsetzbar.
• Das Auslesen der Daten aus der WinCC-Runtime-Datenbank eines OS-
Servers als auch eines SIMATIC Process Historian ist möglich.
• Die individuelle Zusammenstellung der Prozesswert- und
Meldungsinformationen ist möglich.
© Siemens AG 2019 All rights reserved
• Die freie Wahl der Interpolation von fehlenden Werten (Prozesswerte) wird
unterstützt.
• Das Zeitintervall bei der Abfrage (Prozesswerte und Meldungen) ist frei
einstellbar.
• Die Konvertierung zwischen UTC (WinCC-Runtime-Datenbank) und lokaler
Zeit (Excel-Client) wird automatisch vorgenommen.
• Der Zugriff auf die Archive verschiedener Sprachen (Meldungen) wird
unterstützt.
• Die Nutzung von Filtern wie Zeitspanne und Meldungstyp (Meldungen) werden
unterstützt.
• Eine Interpretation der Platzhalter in den Meldungstexten (Meldungen) ist
möglich.
• Anpassungen von Skripten im Excel-Client sind nicht erforderlich, der Excel-
Client ist für jedes WinCC-Projekt nutzbar.
• Plausibilitätsabfragen bezüglich Falscheingaben (z. B. Zeitformat) im Excel-
Client erfolgen automatisch.
3.2 “Osmose”-Client
3.2.1 Funktionsweise Details
In diesem Kapitel erhalten Sie Informationen, die es Ihnen erleichtern, die Excel-
Applikation zu erweitern, oder an Ihre individuellen Bedürfnisse anzupassen.
Hinweis Dieses Kapitel ist für Sie nur relevant, wenn Sie die programmtechnische
Umsetzung interessiert, oder wenn Sie Änderungen am Excel-Client vornehmen
möchten.
Es werden Grundkenntnisse der VBA-Programmierung vorausgesetzt.
Der SQL-Befehl
Dieser Abschnitt wird Ihnen helfen, die Funktion des SQL-Befehls für das Auslesen
der Daten zu verstehen. Sollten Sie über grundlegende Kenntnisse der
Programmierung in VBA und der Datenbanksprache SQL verfügen, werden Sie
nach der Lektüre in der Lage sein, die Applikation bei Bedarf in verschiedenen
Punkten zu erweitern.
Hinweis Der hier verwendete SQL-Befehl enthält eine Modifikation, welche speziell für die
© Siemens AG 2019 All rights reserved
Tabelle 3-1
Schritt Erläuterung
1. MeasuringPoint = "FI100_FlowRawwater"
Geben Sie hier den Namen der WinCC-Variable an, deren Werte aus WinCC Runtime
ausgelesen werden soll; hier: FI100_FlowRawwater.
2. ExcelSheetName = "FI100"
Geben Sie hier den Namen des Excel-Arbeitsblatts an, in das die ausgelesenen Werte
geschrieben werden sollen; hier: FI100.
3. ErrorNumber = WriteArchiveValue(MeasuringPoint, ExcelSheetName)
Die Funktion “WriteArchiveValue” wird mit den zuvor definierten Parametern aufgerufen.
Als Rückgabewert dient die Variable „ErrorNumber“.
4. If ErrorNumber > 0 Then GoTo ErrorHandler
Ist der Rückgabewert größer 0, wird die weitere Verarbeitung abgebrochen und das
© Siemens AG 2019 All rights reserved
Fehlerhandling aufgerufen.
3 'Make Connection
Set Conn = CreateObject("ADODB.Connection")
Conn.ConnectionString = ConnString
Conn.CursorLocation = 3
Conn.Open
5 'Create the recordset, read the records and set to first redcordset
© Siemens AG 2019 All rights reserved
RecSet.MoveNext
ActualRow = ActualRow + 1
Loop
Tabelle 3-2
Schritt Erläuterung
1. Pro = "Provider=WinCCOLEDBProvider.1;"
Der Provider-Variablen wird eine Instanz des WinCC OLE DB-Providers zugewiesen;
hier: Provider=WinCCOLEDBProvider.1;
DSN = "Catalog=" & cDSNRT & ";"
Der Data Source Name-Variablen wird der Datenquellenname zugewiesen;
hier: Catalog=CC_WinCC73__17_09_14_13_34_26R;
DS = "Data Source=" & cMachineNameRT & "\WinCC"
Der Data Source-Variablen wird die MS SQL Server-Instanz als Datenquelle zugewiesen;
hier: Data Source=HMI-1\WinCC
2. ConnString = Pro + DSN + DS
Der Connection String-Variablen werden die definierten Einzelvariablen als ganze
Zeichenkette zugewiesen; hier:
Provider=WinCCOLEDBProvider.1;Catalog=CC_WinCC73__17_09_14_13_34_26R;Data
Source=HMI-1\WinCC
3. Set Conn = CreateObject("ADODB.Connection")
Conn.ConnectionString = ConnString : Conn.CursorLocation = 3 : Conn.Open
Über den Abstraktions-Layer von ADODB wird eine Verbindung zur SQL-Datenbank von
WinCC geöffnet.
4. CommandText = "TAG:R,'" & cArchiveName & "\" & MeasuringPoint & "','" &
StartArchive & ".000','" & StopArchive & ".000','TIMESTEP=" & TimeStep & ",5'"
Definition der zu lesenden Variablen, mit folgenden Angaben:
• Archivname („cArchivename“)
© Siemens AG 2019 All rights reserved
• Archivvariable („MeasuringPoint“)
• Startzeit („StartArchive“) des auszulesenden Zeitraums im Archiv im UTC-Format
• Endzeit („StopArchive“) des auszulesenden Zeitraums im Archiv im UTC-Format
• Angabe des Zeitraums („TimeStep“) zwischen zwei Variablenwerten und des
Aggregationstyps zur Verdichtung
Hinweis:
Weitere Angaben zur Verdichtung („TimeStep“) und dem Aggregationstyp („5“) finden Sie
unter „Optionale Anpassungen zum Auslesen des Variablenarchivs“.
5. Set Command = CreateObject("ADODB.Command")
Command.CommandType = 1 : Set Command.ActiveConnection = Conn
Command.CommandText = CommandText : Set RecSet = Command.Execute
RecSet.MoveFirst
Über den Abstraktions-Layer von ADODB („Command“) werden über die geöffnete
Verbindung zur SQL-Datenbank („Conn“) die Werte der definierten Variablen
(„CommandText“) ausgelesen, und einem Feld („RecSet“) zugewiesen.
6. Do While Not RecSet.EOF
With Worksheets(ExcelSheetName)
.Cells(ActualRow, 1).Value = MeasuringPoint
.Cells(ActualRow, 2).Value = RecSet.Fields("ValueID").Value
.Cells(ActualRow, 3).Value = RecSet.Fields("TimeStamp").Value
.Cells(ActualRow, 4).Value = RecSet.Fields("RealValue").Value
End With
RecSet.MoveNext : ActualRow = ActualRow + 1
Loop
Das gesamte Feld („RecSet“) wird über eine Schleife zeilenweise in das Excel-Arbeitsblatt
(„ExcelSheetName“) geschrieben. Dabei werden für jede Zeile vier Spalten beschrieben:
• der Variablenname („ExcelSheetName”)
• die Variablenkennung ("ValueID")
• der Zeitstempel ("TimeStamp") im UTC-Format
• der Variablenwert ("RealValue")
Tabelle 3-3
Schritt Erläuterung
1. ExcelSheetName = "Alarms"
Geben Sie hier den Namen des Excel-Arbeitsblatts an, in das die ausgelesenen Meldungen
geschrieben werden sollen; hier: Alarms.
2. Call WriteAlarms(ExcelSheetName)
Das Unterprogramm “WriteAlarms” wird mit dem zuvor definierten Parameter aufgerufen.
© Siemens AG 2019 All rights reserved
3 'Make Connection
Set Conn = CreateObject("ADODB.Connection")
Conn.ConnectionString = ConnString
Conn.CursorLocation = 3
Conn.Open
5 'Create the recordset, read the records and set the first recordset
Set Command = CreateObject("ADODB.Command")
© Siemens AG 2019 All rights reserved
Command.CommandType = 1
Set Command.ActiveConnection = Conn
Command.CommandText = CommandText
Set RecSet = Command.Execute
RecSet.MoveFirst
RecSet.MoveNext
ActualRow = ActualRow + 1
Loop
Tabelle 3-4
Schritt Erläuterung
1. Pro = "Provider=WinCCOLEDBProvider.1;"
Der Provider-Variablen wird eine Instanz des WinCC OLE DB-Providers zugewiesen;
hier: Provider=WinCCOLEDBProvider.1;
DSN = "Catalog=" & cDSNRT & ";"
Der Data Source Name-Variablen wird der Datenquellenname zugewiesen;
hier: Catalog=CC_WinCC73__17_09_14_13_34_26R;
DS = "Data Source=" & cMachineNameRT & "\WinCC"
Der Data Source-Variablen wird die MS SQL Server-Instanz als Datenquelle zugewiesen;
hier: Data Source=HMI-1\WinCC
2. ConnString = Pro + DSN + DS
Der Connection String-Variablen werden die definierten Einzelvariablen als ganze
Zeichenkette zugewiesen; hier:
Provider=WinCCOLEDBProvider.1;Catalog=CC_WinCC73__17_09_14_13_34_26R;Data
Source=HMI-1\WinCC
3. Set Conn = CreateObject("ADODB.Connection")
Conn.ConnectionString = ConnString : Conn.CursorLocation = 3 : Conn.Open
Über den Abstraktions-Layer von ADODB wird eine Verbindung zur SQL-Datenbank von
WinCC geöffnet.
4. CommandText = "ALARMVIEWEX:Select * FROM ALGVIEWEXENU WHERE DateTime
>'" & StartArchive & "' AND DateTime <'" & StopArchive & "'"
Definition der zu lesenden Meldungen, mit folgenden Angaben:
• Sprache der auszulesenden Meldungen („ALGVIEWEXENU“)
© Siemens AG 2019 All rights reserved
Speicherort
Die Applikation muss nicht gesondert installiert werden. Kopieren Sie die Datei
„38132261_Application_Reverse_Osmosis.xls“ direkt an den von Ihnen
gewünschten Speicherort. Diese Excel-Datei enthält den gesamten Quellcode in
Form von Makros, welche im Hintergrund ausgeführt werden.
Applikationsaufruf
Starten Sie die Applikation durch Doppelklicken auf die Excel-Datei.
Sobald sich die Applikation geöffnet hat, kann, abhängig von Ihren Excel-
Einstellungen, die folgende Warnung erscheinen:
Abbildung 3-2
© Siemens AG 2019 All rights reserved
Die Ursache hierfür liegt dann darin, dass Ihre Makro-Sicherheit in Excel auf „High“
gesetzt ist. Ändern Sie diese Einstellung entsprechend.
Übersicht
Die Abbildung 3-3 zeigt die Applikation direkt nach ihrem ersten Aufruf. Welche
Oberfläche angezeigt wird, ist abhängig davon, welches Register während des
letzten Speichervorgangs aktiv war. Die Eintragungen sind ebenfalls jene, die beim
letzten Speichern vorlagen.
Abbildung 3-3
3. Ändern Sie den Namen des PCs (2), auf dem die WinCC Runtime läuft;
hier: HMI-1.
Hinweis Der Name kann in WinCC Runtime auch über die Systemvariable
"@LocalMachineName" ausgelesen werden.
© Siemens AG 2019 All rights reserved
4. Ändern Sie den Data Source Name der WinCC Runtime-Datenbank (2);
hier: CC_WinCC73__17_09_14_13_34_26R.
Hinweis • Achten Sie darauf, dass der Data Source Name der WinCC Runtime-Datenbank mit
einem „R“ endet.
• Der Data Source Name kann in WinCC Runtime auch über die Systemvariable
„@DatasourceNameRT" ausgelesen werden.
• Alternativ können Sie auch den Schritten 2 bis 4 in Tabelle 4-1 folgen, um unter
„Databases“ den Data Source Name der WinCC Runtime-Datenbank auszulesen.
• Alternativ können Sie auch den Namen „CC_ExternalBrowsing“ verwenden.
5. Geben Sie den Namen des Variablenarchivs (2) der WinCC Runtime an;
hier: Prozesswertarchiv.
Tabelle 3-5
Ohne Interpolation Mit Interpolation Bedeutung
1 (FIRST) 257 (FIRST_INTERPOLATED) Erster Wert
2 (LAST) 258 (LAST_INTERPOLATED) Letzter Wert
3 (MIN) 259 (MIN_INTERPOLATED) Minimalwert
4 (MAX) 260 (MAX_INTERPOLATED) Maximalwert
5 (AVG) 261 (AVG_INTERPOLATED) Mittelwert
6 (SUM) 262 (SUM_INTERPOLATED) Summe
7 (COUNT) 263 (COUNT_INTERPOLATED) Anzahl der Werte
Tabelle 3-6
ViewName (europäische Sprachen) Sprache der Meldetexte
ALGVIEWEXDEU Deutsche Meldearchivdaten
ALGVIEWEXENU Englische Meldearchivdaten
ALGVIEWEXESP Spanische Meldearchivdaten
ALGVIEWEXFRA Französische Meldearchivdaten
ALGVIEWEXITA Italienische Meldearchivdaten
© Siemens AG 2019 All rights reserved
Tabelle 3-7
ViewName (asiatische Sprachen) Sprache der Meldetexte
ALGVIEWEXCHS chinesische (simplified) Meldearchivdaten
ALGVIEWEXCHT chinesische (traditionell) Meldearchivdaten
ALGVIEWEXJPN japanische Meldearchivdaten
ALGVIEWEXKOR koreanische Meldearchivdaten
3.2.3 Bedienung
Basisschritte
1. Setzen Sie das WinCC-Projekt
„38132261_Application_Reverse_Osmosis_PROJ.zip“, wie in Kapitel 2.2.1
„Konfigurationen im Beispielprojekt“ beschrieben, in die Runtime.
2. Öffnen Sie den mitgelieferten Excel-Client
„38132261_Application_Reverse_Osmosis.xls“.
3. Nehmen Sie die Einstellungen entsprechend dem Kapitel 3.2.2 „Konfiguration
und Projektierung“ am Excel-Client vor.
Variablenwerte lesen
1. Wählen Sie das Register „Plant“ an.
2. Geben Sie den Startzeitpunkt der Archivabfrage im Format „YYYY-MM-DD
hh:mm:ss“ an. Die Uhrzeit wird dabei im UTC-Format angegeben.
Hinweis:
Es erfolgt keine Plausibilitätsprüfung.
3. Geben Sie den Endzeitpunkt der Archivabfrage im Format „YYYY-MM-DD
hh:mm:ss“ an. Die Uhrzeit wird dabei im UTC-Format angegeben.
Hinweis:
Es erfolgt keine Plausibilitätsprüfung.
4. Geben Sie das Abfrage-Intervall in Sekunden an.
© Siemens AG 2019 All rights reserved
Abbildung 3-7
2
3
4
5
Meldungen lesen
1. Wählen Sie das Register „Alarms“ an.
2. Geben Sie den Startzeitpunkt der Archivabfrage im Format „YYYY-MM-DD
hh:mm:ss“ an. Die Uhrzeit wird dabei im UTC-Format angegeben.
Hinweis:
Es erfolgt keine Plausibilitätsprüfung.
3. Geben Sie den Endzeitpunkt der Archivabfrage im Format „YYYY-MM-DD
hh:mm:ss“ an. Die Uhrzeit wird dabei im UTC-Format angegeben.
Hinweis:
Es erfolgt keine Plausibilitätsprüfung.
4. Klicken Sie auf die Schaltfläche „ReadAlarms“
Abbildung 3-8
2
4
3
© Siemens AG 2019 All rights reserved
3.2.4 Fehlerhandling
Tabelle 3-8
Fehler Mögliche Ursache
Zugriff auf Variablenarchiv und/oder Meldearchiv
• Der Excel-Client versucht das Variablenarchiv
auszulesen, aber das WinCC-Projekt wurde
nicht gestartet (RT nicht aktiv).
• Der Excel-Client versucht das Variablenarchiv
auszulesen, aber für den abgefragten
Zeitraum existieren keine Werte.
• Der Excel-Client versucht das Meldearchiv
auszulesen, aber für den abgefragten
Zeitraum existieren keine Werte.
Folgemeldung Zugriff auf Variablenarchiv
• Der Excel-Client versucht das Variablenarchiv
auszulesen, aber das WinCC-Projekt wurde
nicht gestartet (RT nicht aktiv).
• Der Excel-Client versucht das Variablenarchiv
auszulesen, aber für den abgefragten
Zeitraum existieren keine Werte.
Zugriff auf Meldearchiv
• Der Excel-Client versucht das Meldearchiv
auszulesen, aber das WinCC-Projekt wurde
© Siemens AG 2019 All rights reserved
3.3 „Universal“-Client
3.3.1 Funktionsweise Details
In diesem Kapitel erhalten Sie Informationen, die es Ihnen erleichtern, das Register
„Alarms“ der bestehenden Anwendung zu erweitern oder es an Ihre individuellen
Bedürfnisse anzupassen.
Hinweis Dieses Kapitel ist für Sie nur relevant, wenn Sie die programmtechnische
Umsetzung interessiert oder wenn Sie Änderungen an der Applikation
vornehmen möchten.
Es werden Grundkenntnisse der VBA-Programmierung vorausgesetzt.
Der SQL-Befehl
Dieser Abschnitt wird Ihnen helfen, die Funktion des SQL-Befehls für das Auslesen
der Daten zu verstehen. Sollten Sie über grundlegende Kenntnisse der
Programmierung in VBA und der Datenbanksprache SQL verfügen, werden Sie
nach der Lektüre in der Lage sein, die Applikation bei Bedarf in verschiedenen
Punkten zu erweitern.
© Siemens AG 2019 All rights reserved
Hinweis Der hier verwendete SQL-Befehl enthält eine Modifikation, welche speziell für die
Kommunikation mit dem WinCC OLE DB-Provider erforderlich ist. Dadurch
weicht der Befehl teilweise vom festgelegten Standard ab.
SQL-Beispiel
Folgendes Beispiel zeigt einen SQL-Befehl, welcher alle Filteroptionen der
Applikation verwendet.
"ALARMVIEW: SELECT TOP 65000 * FROM AlgViewEnu WHERE DateTime >
'2009-3-17 0:0:0' AND DateTime < '2009-3-17 23:59:59' AND (CLASS = 1
OR CLASS = 10) AND (Text2 = 'WEIGHT' OR (Text2 = '@2%s@' AND PText2
= 'WEIGHT') ) ORDER BY DateTime ASC"
Tabelle 3-9
Befehlselement Erklärung Var1 Opt2
ALARMVIEW: Bei der relevanten Datenbank handelt es sich um diejenige (-) (-)
für den Alarmview (provider-spezifischer Zusatz).
SELECT * Gesucht sind alle Datenfelder (Spalten) in der noch zu (-) -
bestimmenden Tabelle bzw. dem View.
TOP 65000 Die Anzahl der von der Abfrage zurück gelieferten (-) (-)
Meldungen beträgt 65000.
FROM AlgViewEnu Die Datensätze befinden sich in dem View x -
„AlgViewEnu“.
Dieser Name enthält wiederum mehrere Informationen:
• Alg: Präfix für AlarmLogging
• View: Es handelt sich um einen View (nicht um eine
Tabelle).
• Enu: Es handelt sich um die Alarme der englischen
Projektierung.
Hinweis:
Ein View enthält, im Gegensatz zu einer Tabelle, keine
© Siemens AG 2019 All rights reserved
Meldesprachen hinzufügen
In der vorliegenden Applikation können Sie zwischen den archivierten Meldungen
in fünf verschiedenen Sprachen wählen. Da WinCC aber weltweit eingesetzt wird,
ist es denkbar, dass Sie auf Meldungen weiterer Sprachen zugreifen möchten.
In diesem Abschnitt wird beschrieben, wie die Sprachauswahl momentan realisiert
wird und wie Sie sie bei Bedarf Ihren Wünschen entsprechend anpassen können.
Es kann nicht gewährleistet werden, dass das im Nachfolgenden beschriebene
Vorgehen in jedem Fall zum Erfolg führt. Dies hängt vor allem davon ab, ob Name
und Aufbau des zur Sprache gehörenden Views mit der Struktur der bereits
implementierten Sprachen übereinstimmt.
Übersicht
Zum Ändern der Meldesprache geht der Anwender vor, wie unter „Bedienung –
Grundeinstellungen bearbeiten“ beschrieben. Die Sprache wird über die Klappliste
„Language“ ausgewählt, welche die Applikation bei der Erstellung des SQL-Befehls
abfragt.
In folgender Tabelle wird ein Überblick über die aktuell verfügbaren Sprachen, die
zugehörigen Einträge in der Klappliste und die Namen der jeweiligen Views
gegeben.
Tabelle 3-10
Sprache Klapplisteneintrag Name des Views
© Siemens AG 2019 All rights reserved
Erläuterung
Wie Sie der obigen Übersicht entnehmen können, unterscheiden sich die Namen
der Views stets nur in ihren letzten drei Buchstaben, welche dazu verwendet
werden, die Meldesprache festzulegen.
Des Weiteren wird deutlich, dass die ersten drei Buchstaben der
Klapplisteneinträge in fast allen Fällen den letzten drei Buchstaben der View-
Namen entsprechen.
Vorgehen
Um den SQL-Befehl in der benötigten Form zu erstellen, wird folgender Code
verwendet (VBAProject > Microsoft Excel Objects > Sheet2 >
cmdAlarmRead_Click):
Nach der Zuweisung des konstanten Teils des SQL-Befehls wird überprüft, ob der
selektierte Eintrag der Klappliste mit „Eng“ beginnt. Ist dies der Fall, so wird dem
Befehl „Enu“ angehängt. Andernfalls werden die ersten drei Buchstaben des
Klapplisteneintrags angehängt.
© Siemens AG 2019 All rights reserved
Sprache hinzufügen
Um eine Meldesprache zur bestehenden Auswahl hinzuzufügen, gehen Sie wie
folgt vor:
Tabelle 3-11
Schritt Beschreibung
1. Erweitern der Um die Klappliste zu erweitern, bearbeiten Sie die
Klappliste Initialisierungsanweisungen im Modul „VBAProject >
Microsoft Excel Objects > ThisWorkBook >
Workbook_Open“.
Fügen Sie den bestehenden Befehlszeilen eine weitere
Meldesprache in der Form cmbAlarmLang.AddItem
"English" hinzu.
2. Überprüfen der Ermitteln Sie mit Hilfe Ihres SQL Server Management
Bezeichner Studios, welchen Namen der zu dieser Sprache
gehörende View hat.
3. Fall 1: Keine weitere Sollten die ersten drei Buchstaben Ihres
Änderung erforderlich Klapplisteneintrags mit den letzten drei Buchstaben des
View-Namens übereinstimmen, so ist keine weitere
Änderung erforderlich.
4. Fall 2: Erweitern der Wenn sich die Buchstaben unterscheiden, erweitern Sie
If-Anweisung im oben vorgestellten Code-Auszug die If-Anweisung um
ein geeignetes ElseIf-Glied.
© Siemens AG 2019 All rights reserved
Meldearten hinzufügen
Die Applikation ist in der vorliegenden Version in der Lage, die archivierten
Meldungen nach bis zu sechs verschiedenen Meldearten zu filtern.
In WinCC existieren neben diesen sechs, am häufigsten auftretenden Arten
allerdings noch sieben weitere. Zusätzlich besteht die Möglichkeit, eigene
Meldearten zu erstellen.
Somit ist es möglicherweise erforderlich, den Filter um diese zu erweitern.
Analog zum vorangegangenen Abschnitt wird hier zunächst die aktuelle
Umsetzung vorgestellt, um anschließend eine Änderungsmöglichkeit aufzuzeigen.
Übersicht
Die Verwendung des Filters für Meldearten werden unter „Bedienung –
Filtereinstellungen bearbeiten“ eingehend beschrieben. Mit Hilfe der
Optionskästchen werden die einzelnen Arten ausgewählt und beim Erstellen des
SQL-Befehls an diesen angefügt.
Vorgehen
Folgender Code realisiert die erforderliche Erweiterung des SQL-Befehls
„VBAProject > Microsoft Excel Objects > Sheet2 >
cmdAlarmRead_Click“:
'Apply filter
If chkAlarmAlarms.Value = True Or _
chkAlarmWarnings.Value = True Or _
chkAlarmASPLCMessages.Value = True Or _
chkAlarmOSPLCMessages.Value = True Or _
chkAlarmOperatingMessages.Value = True Or _
chkAlarmSystemMessages.Value = True Then
Abbildung 3-9
Start
Is
No
filter selected
?
Yes
boolIsFirst = True
Append prefix to strSQL
?
No
Is
No
element selected
?
Yes
Add suffix to
strSQL
End
Sprache hinzufügen
Um die Filterelemente um eine weitere Meldeart zu erweitern, folgen Sie den
Anweisungen der nachstehenden Tabelle:
Tabelle 3-12
Schritt Beschreibung
1. Blattschutz Bevor Sie das für die Erweiterung notwendige Steuerelement
aufheben einfügen können, müssen sie den Blattschutz von Excel
aufheben.
Dies ist versionsabhängig und in der Hilfe von Excel
beschrieben.
2. Steuerelement Fügen Sie den bereits vorhandenen Optionsfeldern ein
einfügen weiteres hinzu und geben Sie diesem einen repräsentativen
Namen.
Hinweis:
Um Layoutprobleme zu vermeiden, entkoppeln Sie die
Positions- und Größeneigenschaften des Steuerelements von
den Zelleneigenschaften:
1. Öffnen Sie den Menupunkt „Format > Control…“.
2. Wechseln Sie zum Reiter „Properties“.
3. Wählen Sie „Dont move or size with cells“.
4. Bestätigen Sie die Änderungen.
© Siemens AG 2019 All rights reserved
Hinweis:
Sie finden eine Übersicht über die Codierung der im aktuellen
Projekt verwendeten Meldearten mit Hilfe des SQL Server
Management Studio.
1. Wählen Sie beim Start der Applikation Ihren WinCC
Server.
2. Navigieren Sie zu folgender Tabelle (Beispiel):
„Databases > CC_OS_1__09_03_19_18_33_31 > Tables
> dbo.MSMsgGroup“
3. Entnehmen Sie dieser Tabelle die entsprechende
Kodierung aus der Spalte „GROUPDAT“. Die relevanten
Einträge sind vom „TYPE“ 3.
4. Blattschutz Stellen Sie den Blattschutz wieder her. Dies ist
setzen versionsabhängig und in der Hilfe zu Excel beschrieben.
Übersicht
Der Vorgang zur Anpassung der Meldungsstruktur wird unter „Bedienung –
Meldungsstruktur anpassen“ ausführlich beschrieben. Die Einstellungen werden in
einem eigenen Fenster vorgenommen. Nach Bestätigung der Änderungen wird der
Arbeitsbereich der Anwendung automatisch angepasst.
© Siemens AG 2019 All rights reserved
Vorgehen
Die Meldungsstruktur beeinflusst die Applikation in den verschiedensten
Bereichen. Für die Erweiterung ist dabei lediglich wichtig zu wissen, wie die
notwendigen Basisinformationen initialisiert werden. Alle weiteren Abläufe passen
sich den jeweiligen Einstellungen an (solange diese der Programmlogik
entsprechen).
Die Grundlage für die Meldungsstruktur bilden drei Arrays:
Tabelle 3-13
Array Inhalt
strAlarmDataNames Enthält die Namen, die dem Benutzer zur Auswahl
angezeigt werden. Die gegenwärtigen Einträge
entsprechen den Namen, die auch bei der Bearbeitung der
WinCC-Meldungsstruktur im Graphics Designer verwendet
werden.
Hinweis:
Diese Namen unterscheiden sich von denen, die in der
Datenbank verwendet werden. Sie dienen dazu, dem
Benutzer ein möglichst intuitives Verständnis zu
ermöglichen.
intAlarmRecordSetID Enthält die Position einer jeden Meldeinformation innerhalb
des Record-Set.
© Siemens AG 2019 All rights reserved
Hinweis:
Nach der Anforderung der Meldungen über den SQL-Befehl
werden diese als Record-Set zurückgeliefert.
Ein Record-Set ist in seinem Aufbau immer gleich, solange
sich weder die Datenquelle (der View), noch die abgefragte
Struktur (SELECT *) ändern. Aufgrund dieser Tatsache hat
jede Information in diesem Record-Set eine feste Position.
dblAlarmColumnWidth Enthält die Spaltenbreite, die einer Meldeinformation
standardmäßig zugeordnet ist.
Hinweis:
Bei der Anpassung der Meldestruktur wird für jede
ausgewählte Meldeinformation die Breite der zugewiesenen
Spalte automatisch angepasst (siehe unter „Bedienung –
Meldungsstruktur anpassen“). Dies geschieht, um eine
möglichst optimale Darstellung der Meldungen zu
gewährleisten.
Die Deklaration der Arrays wird mit Hilfe einer Konstanten vorgenommen, sodass
eine einheitliche Struktur sichergestellt werden kann „VBA-Project > Modules >
MngAlarmPositions“:
Public strAlarmDataNames(1 To MAX_ALARM_DATA_COLUMNS) As String
Diese Konstante entspricht der Anzahl der Meldeinformationen, welche
standardmäßig bei 38 liegt.
Das Ansprechen der Arrays, z. B. bei ihrer Initialisierung, erfolgt über weitere
Konstanten, von denen jede jeweils einer Meldeinformation entspricht „VBA-Project
> Modules > MngAlarmPositions > InitializeAlarmArrays“:
strAlarmDataNames(C_DATE_TIME) = "Date / Time"
Dies führt zur Verbesserung der Lesbarkeit des Quellcodes und zu
Vereinfachungen bei der Vornahme von Änderungen.
Meldungsstruktur erweitern
Um die Meldungsstruktur zu erweitern, ist lediglich die Anpassung der Konstanten
und Array-Initialisierungen erforderlich. Gehen Sie dazu, wie in folgender Tabelle
beschrieben, vor:
Tabelle 3-14
Schritt Beschreibung
1. Anpassen der Geben Sie unter „VBA-Project > Modules > ConstantsAlarm“
Maximalwert- für die Konstante MAX_ALARM_DATA_COLUMNS die neue
konstante Anzahl der Meldeinformationen ein.
Hinweis:
Über die Konstante passt sich die Applikation an die
geänderten Gegebenheiten an. Ein korrekter Wert für diese
Konstante ist daher essentiell.
2. Hinzufügen der Fügen Sie im selben Modul zu den bereits vorhandenen
Index-Konstanten Index-Konstanten (z. B. C_PRIORITY) so viele hinzu, wie
erforderlich.
Hinweis:
Achten Sie darauf, dass Sie die neuen Nummern fortlaufend
vergeben und Sie dabei nicht über den in
MAX_ALARM_DATA_COLUMNS festgelegten Wert kommen.
3. Erweitern der Im Modul „VBA-Project > Modules > MngPositions >
Array- InitializeArrays“ findet die Initialisierung der vorgestellten
Initialisierung Arrays statt.
Fügen Sie in jedes der drei Arrays so viele Elemente ein, wie
Sie Meldeinformationen hinzufügen möchten und füllen Sie
diese mit den zugehörigen Daten (siehe Tabelle 3-13).
Speicherort
Die Applikation muss nicht gesondert installiert werden. Kopieren Sie die Datei
„38132261_Application_Universal_Client.xls“ direkt an den von Ihnen gewünschten
Speicherort. Diese Excel-Datei enthält den gesamten Quellcode in Form von
Makros, welche im Hintergrund ausgeführt werden.
Applikationsaufruf
Starten Sie die Applikation durch Doppelklicken auf die Excel-Datei.
Sobald sich die Applikation geöffnet hat, kann, abhängig von Ihren Excel-
Einstellungen, die folgende Warnung erscheinen:
Abbildung 3-10
© Siemens AG 2019 All rights reserved
Die Ursache hierfür liegt dann darin, dass Ihre Makro-Sicherheit in Excel auf „High“
gesetzt ist. Ändern Sie diese Einstellung entsprechend.
Abbildung 3-11
Abbildung 3-12
Die Umschaltung zwischen „Tags“ und „Alarms“ erfolgt über die Auswahl des
entsprechenden Registers am unteren Rand des Excel-Fensters.
Abbildung 3-13
Abbildung 3-14
© Siemens AG 2019 All rights reserved
Jeder der drei markierten Bereiche erfüllt seine eigene Funktion, die Sie der
nachfolgenden Tabelle 3-15 entnehmen können.
Tabelle 3-15
Bereich Funktion
Bedienleiste Über die Bedienleiste nehmen sie alle erforderlichen
Einstellungen vor. Hierzu gehören unter anderem die Auswahl
der Datenquelle und die Festlegung des Meldungs- bzw.
Prozesswertfilters.
Eine genauere Beschreibung dieses Bereiches finden Sie
unter „Konfiguration und Projektierung – Aufbau der
Bedienleiste“.
Spaltenüberschriften Die Spaltenüberschriften bestimmen den Aufbau der
dargestellten Meldungen.
Hinweis:
Sie können sowohl die Reihenfolge, als auch die
Zusammensetzung Ihren Wünschen entsprechend anpassen.
Das genaue Vorgehen ist unter „Bedienung –
Meldungsstruktur anpassen“ beschrieben.
Meldungen Dieser Bereich enthält die ausgelesenen Meldungen bzw.
(Register „Tags“: Prozesswerte mit dem von Ihnen gewählten Aufbau.
Prozesswerte)
Abbildung 3-15
© Siemens AG 2019 All rights reserved
Die Tabellenansicht
Die Darstellung der empfangenen Archivdaten ist variabel und ermöglicht es Ihnen,
eine für Sie optimale Struktur festzulegen. Für Prozesswerte können
beispielsweise verschiedene statistische Funktionen ausgeführt und deren
Ergebnis angezeigt werden.
Die Tabellenansicht für die Darstellung der Meldungen ist der Chronikliste des
WinCC-Meldesystems nachempfunden. Die Anzeige der verschiedenen
Meldeblöcke kann, ähnlich dem Original, individuell gestaltet werden (siehe unter
„Bedienung – Meldungsstruktur anpassen“).
3.3.3 Bedienung
Dieser Abschnitt beschreibt wie Prozesswerte und Meldungen aus den Archiven
ausgelesen werden können. Mit Ausnahme der Erläuterung des Filters wird dies
beispielhaft anhand des Vorgehens für Meldungen geschehen, da die
Unterschiede zur Behandlung von Prozesswerten sehr gering sind.
Applikationsaufruf
Tabelle 3-16
Nr. Beschreibung
1. Starten Sie die Applikation.
Hinweis:
Nach dem Start der Applikation ist es möglich, dass diese kurze Zeit nicht reagiert.
Dies liegt dann daran, dass das Netzwerk ausgelastet ist und die Auflistung der
verfügbaren Rechner nur langsam voranschreitet.
Grundeinstellungen bearbeiten
In den Grundeinstellungen nehmen Sie Einstellungen vor, die in den meisten
Fällen für die gesamte Sitzung gleichbleiben. Hierzu gehört die Festlegung des
Quellrechners und der Meldesprache.
Tabelle 3-17
Beschreibung Bedienelement
1. Wählen Sie das Register „Alarms“ aus.
Hinweis:
Es ist erforderlich, dass auf dem hier
angegebenen Rechner die WinCC-Runtime
gestartet ist, da der WinCC-OLEDB-Provider
mit deren Diensten kommuniziert.
Zusätzlich ist zu beachten, dass nur die auf
diesem Rechner lokal vorhandenen Daten
gelesen werden. Sollten Sie einen CAS
(Central Archive Server) verwenden, so
müssen Sie zwischen diesem
(Langzeitarchiv) und dem OS-Server
(Kurzzeitarchiv) wählen, um die Meldungen
eines bestimmten Zeitbereichs zu erhalten.
Beschreibung Bedienelement
3. Wählen Sie in der Klappliste die Sprache aus,
in der die zu exportierenden Meldungen
projektiert wurden.
Folgende Sprachen stehen dabei zur
Auswahl:
• Deutsch
• Englisch
• Französisch
• Italienisch
• Spanisch
Hinweis:
Die Sprachauswahl ist für Prozesswerte nicht
verfügbar.
Filtereinstellungen bearbeiten
Mithilfe der Filtereinstellungen sind Sie in der Lage, die zurück gelieferten
Archivdaten auf diejenigen zu reduzieren, die Sie bezüglich Tag, Zeitbereich und
Zeitintervall (Prozesswerte) bzw. Zeit, Art und Herkunft (Meldungen) tatsächlich
© Siemens AG 2019 All rights reserved
Tabelle 3-18
Beschreibung Bedienelement
1. Legen Sie in den beiden Eingabefeldern den
Zeitbereich fest, in welchem die gesuchten
Archivdaten entstanden sind.
Achten Sie hierbei darauf, dass die Start- vor
der Endzeit liegt.
Standardmäßig ist das aktuelle Datum von
0 – 24 Uhr eingestellt.
Hinweis:
Die Eingabe von Zeit und Datum muss in
einer festgelegten Form erfolgen:
YYYY-MM-DD hh:mm:ss
Zusätzlich muss sichergestellt sein, dass die
Eingabe in sich logisch ist (z. B. keinen 30.
Februar, keine 70 Minuten, u.ä.). Ist der Wert
beim Verlassen des Eingabefeldes ungültig,
so wird eine Warnung erscheinen und der
zuvor eingetragene Wert wiederhergestellt.
Beschreibung Bedienelement
2. Für das Register „Tags“:
Klicken Sie zum Auslesen der archivierten
Prozesswerte (Tags) bzw. der projektierten
(Anlagen-) Bereiche auf die Schaltfläche
„Read Tags“ / „Areas“.
Hinweis:
Um das Auslesen durchführen zu können,
muss zuvor der entsprechende Host
ausgewählt worden sein.
Fehlerbehandlung:
Wenn Sie folgende Meldung erhalten, so ist
die Kommunikation mit der Datenbank
fehlgeschlagen:
„Area“ / „Tag determination failed“ +
Fehlerbeschreibung.
Mögliche Ursachen hierfür sind:
• Netzwerkprobleme (Host nicht
erreichbar)
• Fehlende Rechte (Gleicher Benutzer und
gleiche Passwörter erforderlich)
• OS nicht in Runtime
Sobald Sie die Informationen ausgelesen
haben, stellt Ihnen die entsprechende
© Siemens AG 2019 All rights reserved
Hinweis:
Um die Zahl der ausgelesenen Prozesswerte
ohne großen Informationsverlust zu senken,
kann das Zeitintervall verwendet werden.
Das Zeitintervall erlaubt es, alle
Prozesswerte, die in jeweils einem
bestimmten Zeitraster aufgetreten sind (z.B.
alle Werte in einer Minute oder Stunde)
zusammenzufassen. Für diese Menge von
Werten können dann Auswertungen (z.B.
Maximalwert, Minimalwert, Summe)
vorgenommen werden. Dieses Prinzip wird in
Abbildung 3-16 veranschaulicht.
Für das Register „Alarms“:
Zum Filtern nach verschiedenen Arten
(Klassen) von Meldungen stehen Ihnen
insgesamt sechs Optionskästchen zur
Verfügung, die Sie beliebig kombinieren
können. Wenn Sie hier keine Auswahl treffen,
dann wird das Filtern nach Meldungen
deaktiviert.
Beschreibung Bedienelement
5. Für das Register „Tags“:
Wählen Sie aus, ob eine Interpolation
stattfinden soll.
Hinweis:
Die Interpolation erfordert ein Zeitintervall
ungleich null.
Hinweis Sie sollten die Möglichkeiten des Filters nutzen, um die Auswahlkriterien so weit
wie möglich einzugrenzen. Dadurch reduzieren Sie die Menge der relevanten
© Siemens AG 2019 All rights reserved
Archivdaten und somit die Zugriffszeit auf die Datenbank und die anschließende
Verarbeitungszeit.
Für Meldungen wird die Zahl der zurück gelieferten Datensätze zusätzlich durch
den SQL-String auf 65000 begrenzt.
Abbildung 3-16
Meldungsstruktur anpassen
Das Anpassen der Meldungsstruktur (Auswahl der Meldeblöcke) erlaubt es Ihnen,
die empfangenen Meldungen individuell in einer für Sie optimalen Weise
darzustellen.
Sollte die Meldungsstruktur bereits Ihren Wünschen entsprechen, können Sie
diesen Punkt überspringen.
© Siemens AG 2019 All rights reserved
Abbildung 3-17
In der nachfolgenden Tabelle wird beschrieben, wie Sie die Meldungsstruktur Ihren
individuellen Bedürfnissen anpassen können.
Tabelle 3-19
Beschreibung Bedienelement
1. Klicken Sie auf die Schaltfläche „Adapt
Structure“.
Das Dialogfeld „Data Selection" wird geöffnet.
2. Selektieren Sie in der linken Liste „Available
Data“ das Element, welches Sie zu der
Auswahl hinzufügen möchten, und klicken Sie
auf die Schaltfläche „->“.
Neue Elemente der rechten Liste „Selected
Data“ werden stets hinter dem aktuell
angewählten Element in dieser Liste
eingefügt.
Hinweis:
Das Anpassen der Datenstruktur führt zur
Löschung aller aktuell aufgelisteten
Meldungen. Es erfolgt keine zusätzliche
Abfrage nach Bestätigung der Änderungen.
5. Nachdem Sie die Änderungen bestätigt
haben, werden alle Spaltenüberschriften und
Meldungen gelöscht. Anschließend werden
die neuen Spaltenüberschriften eingetragen
und die Spaltenbreiten angepasst.
Hinweis:
Wenn Sie keine Spalten zur Anzeige
ausgewählt haben, wird der spätere
Lesevorgang vorzeitig abgebrochen. In der
Statuszeile wird der Text „No Data to be read“
angezeigt.
Hinweis Beim Starten der Applikation ermittelt diese aus den Einträgen im Teilbereich
„Spaltenüberschriften“ des Arbeitsbereiches automatisch die zuletzt
verwendeten Einstellungen für die Meldungsstruktur.
Achten Sie bei der Auswahl der Informationen für Prozesswerte darauf, dass
dort jede Information außer dem Zeitstempel und dem Quality-Code einen
eigenen Lesevorgang auslöst. Die Ursache hierfür liegt in der Funktionsweise
der zugehörigen SQL-Abfrage.
Meldungen lesen
Nachdem Sie nun alle Einstellungen vorgenommen haben, können Sie die
gewünschten Meldungen nun aus dem Archiv lesen.
Tabelle 3-20
Beschreibung Bedienelement
1. Klicken Sie auf die Schaltfläche „Read“, um
die Meldungen, die dem Filter entsprechen,
aus dem Archiv auszulesen.
Achtung:
Die Betätigung der Schaltfläche „Read“ führt
© Siemens AG 2019 All rights reserved
Hinweis Nach dem Auslösen des Lesebefehls wird zunächst die SQL-Abfrage erstellt und
ausgeführt. In dieser Zeit ist die Applikation nicht reaktionsfähig, da sie auf eine
Antwort des SQL-Servers warten muss. Je nach Anzahl der angeforderten
Meldungen kann dies bis zu einigen Minuten dauern.
Anschließend wird die Aufbereitung (Ersetzen der Platzhalter) und Auflistung der
einzelnen Meldungen durchgeführt. Während dieses Vorgangs ist die
Aktualisierung des Arbeitsbereiches deaktiviert, um den Meldungsdurchsatz zu
erhöhen und in der Statusleiste wird der Fortschritt des Prozesses angezeigt.
3.3.4 Fehlerhandling
• Lesefehler
– Vorgang:
Öffnen der Datenbank und Auslesen der Meldungen
– Meldung:
„Error during Open“ + Fehlerbeschreibung
– Mögliche Ursache:
WinCC ist auf dem Server nicht in Runtime.
© Siemens AG 2019 All rights reserved
• Verarbeitungsfehler
– Vorgang:
Ordnen und Interpretieren der Meldeblöcke; Eintragen der Meldungen
– Meldung:
„Error during Processing“ + Fehlerbeschreibung
– Mögliche Ursache:
Die Struktur der Datenbank und somit auch die der zurück gelieferten
Meldungen hat sich geändert.
Tabelle 4-1
© Siemens AG 2019 All rights reserved
Nr. Aktion
1. • Starten Sie WinCC-Explorer. Öffnen Sie das WinCC-Projekt. Aktivieren Sie die
Runtime.
• Wechseln Sie über die Schaltfläche „Umkehr-Osmose“ in das Bild
„ReverseOsmosis.Pdl“.
• Starten Sie die Umkehrosmose-Anlage über die Schaltfläche „ANFAHREN“.
Warten Sie, bis die Anlage den Status „Produktion“ erreicht hat.
• Nach wenigen Minuten Laufzeit fahren Sie die Anlage über die Schaltfläche
„ABFAHREN“ herunter.
• Legen Sie eine inhaltslose Datei „TagsToCSV.csv“ und „AlarmsToCSV.csv“ im
Verzeichnis Ihrer Wahl an.
2. Starten Sie unter „Start > Programme > Microsoft SQL Server“ das „SQL Server
Management Studio“.
Nr. Aktion
3. • Melden Sie sich an.
• Wählen Sie dafür als Server type „Database Engine“, als Servername „<Ihr
Computername>\WINCC“ und als Authentication „Windows Authentication“ (es
wird ihr aktueller Benutzer verwendet).
• Verbinden Sie sich über die Schaltfläche „Connect“ mit dem SQL Server.
4. • Klicken Sie mit der rechten Maustaste auf die Datenbank für Runtime- und
© Siemens AG 2019 All rights reserved
Nr. Aktion
5. Klicken Sie die Schaltfläche „Next“.
6. Wählen Sie als Datenquelle den „WinCC OLE DB-Provider for Archives“ und klicken
Sie anschließend auf die Schaltfläche „Properties“.
© Siemens AG 2019 All rights reserved
7. • Geben Sie als Data Source „.\WinCC“ und als Katalog den Namen der WinCC
Runtime-Datenbank ein.
• Geben Sie als WinCC Runtime-Datenbank entweder
– „CC_WinCC73__16_02_15_16_22_51R“, oder
– „CC_ExternalBrowsing“ an.
• Verlassen Sie anschließend die Masken mit den Schaltflächen „OK“ und
„Next“.
Nr. Aktion
8. • Wählen Sie als Datenziel „Flat File Destination“ und die Datei
„TagsToCSV.csv“ (für Variablenexport).
• Aktivieren Sie das Häkchen „Column names in first data row“, um die
Spaltenüberschriften in die erste Zeile der „*.csv“-Datei zu schreiben.
• Verlassen Sie die Maske mit der Schaltfläche „Next“.
© Siemens AG 2019 All rights reserved
9. • Aktivieren Sie die Option „Write a query to specify the data to transfer“, um in
der nächsten Maske die SQL-Abfrage anzugeben.
• Setzen Sie den Wizard über die Schaltfläche „Next“ fort.
Nr. Aktion
10. • Tragen Sie hier die gewünschte SQL-Abfrage ein. Der Aufbau der Abfrage
entspricht der Beschreibung in Kapitel 2.2.3 bzw. Kapitel 2.2.4.
• In diesem Beispiel wird das Archiv-Tag „QI900_ConductivityPearmeatIn“ aus
dem Prozesswertarchiv aus dem Zeitraum der letzten 30 Minuten abgefragt:
„TAG:R,‘Prozesswertarchiv\QI900_ConductivityPermeatIn‘,’0000-00-00
00:30:00.000’, ’0000-00-00 00:00:00.000’”
Achtung
Achten Sie bei der Eingabe des Textstrings auf die amerikanische
Schreibweise bei Hochkomma und Anführungszeichen (siehe Bild).
• Verlassen Sie die Maske über die Schaltfläche „Next“.
© Siemens AG 2019 All rights reserved
Nr. Aktion
11. Stellen Sie als Spaltenbegrenzung „Column delimiter“ das Semikolon ein.
© Siemens AG 2019 All rights reserved
12. • Das Ergebnis der Abfrage können Sie über „Preview“ prüfen.
• Schließen Sie den Dialog mit der Schaltfläche „OK“.
Vorschau Variable QI900:
Nr. Aktion
13. Aktiveren Sie anschließend das Speichern des „SSIS-Package“ im Windows-
Dateisystem ohne Schutzfunktion und verlassen Sie die Maske mit „Next“.
© Siemens AG 2019 All rights reserved
Hinweis
Für das Beispielprojekt wird keine Schutzfunktion benötigt. Im Produktivbetrieb
sollte diese, je nach Anwendung, eingerichtet werden.
14. Geben Sie Dateiname und Speicherort für das „SSIS-Package“ an und klicken Sie
auf die Schaltfläche „Next“.
Nr. Aktion
15. In der Folgemaske werden die eingestellten Parameter zusammengefasst. Mit der
Schaltfläche „Finish“ wird der Export gestartet.
© Siemens AG 2019 All rights reserved
Hinweis Es kann auch über die ValueID anstatt des Variablennamens auf das Archiv
zugegriffen werden. Dies ist performanter als der symbolische Name (z. B.
„TAG:R,4,’0000-00-00 00:30:00.000’, ’0000-00-00 00:00:00.000’”).
Eine Abfrage mehrerer Archivvariablen mit einer SQL-Anweisung ist mit einer
Auflistung von ValueIDs möglich. Diese wird in der SQL-Abfrage in Klammern
gesetzt, die ValueIDs werden mit Semikolon getrennt angegeben.
(z. B. „TAG:R,(4,8,12),’0000-00-00 00:30:00.000’, ’0000-00-00 00:00:00.000’”).
Die ValueID der Archiv-Tags können Sie der Tabelle „dbo.Archive“ entnehmen.
Öffnen Sie dieses „Tables>dbo.Archive“ über das Kontextmenü „Select Top
1000 Rows“
Hinweis Achten Sie bei der Eingabe des Textstrings auf die amerikanische Schreibweise
bei Hochkomma und Anführungszeichen.
5 Wissenswertes
5.1 Grundlagen
5.1.1 SIMATIC WinCC/Connectivity Pack
Um sich mit einem WinCC-Archiv verbinden zu können, ist eine der nachfolgenden
Bedingungen zu erfüllen.
• Bestandteil eines WinCC Runtime-Projekts
• Im SQL-Manager über „Attach Database“ angebunden
• Über den Archive Connector angebunden
Tabelle 5-1
WinCC Funktion für
Produkt Option Add-on2
integriert1 Datenaustausch
SIMATIC WinCC x - - Zugriffsmöglichkeit über:
• OPC DA
SIMATIC - x - Zugriffsmöglichkeit über:
WinCC/Connectivity • OPC UA
Pack
Der Nachfolger von OPC mit
allen Zugriffsmöglichkeiten,
wie DA, HDA und A&E
© Siemens AG 2019 All rights reserved
• OPC XML DA
Online-Werte der Variablen
• OPC HDA
Archivierte Prozesswerte
• OPC A&E
Meldungen und Alarme
• WinCC OLE DB-Provider
Archivierte Prozesswerte/-
meldungen
SIMATIC - x - Konfigurationstool und
WinCC/IndustrialData Laufzeitumgebung für den
Bridge Datenaustausch zwischen
verschiedenen Datenquellen
(Providern) und Datenzielen
(Consumern). Auch
Standalone einsetzbar.
Hinweis:
Ab WinCC V7.4 „*.txt“-,
„*.csv“-, „*.html“-, „*.xml“-
Formate zulässig.
SIMATIC Information - - x Ermöglicht den Report in
Server verschiedenen Formaten
abzuspeichern, darunter
auch „*.xls“-Format.
PM-OPEN EXPORT - - x Export von Online-Werten
und Archivdaten in
Textdateien („*.ascii“,
„*.csv“, „*.html“, „.*xml“).
6 Anhang
6.1 Service und Support
Industry Online Support
Sie haben Fragen oder brauchen Unterstützung?
Über den Industry Online Support greifen Sie rund um die Uhr auf das gesamte
Service und Support Know-how sowie auf unsere Dienstleistungen zu.
Der Industry Online Support ist die zentrale Adresse für Informationen zu unseren
Produkten, Lösungen und Services.
Produktinformationen, Handbücher, Downloads, FAQs und Anwendungsbeispiele
– alle Informationen sind mit wenigen Mausklicks erreichbar:
https://support.industry.siemens.com
Technical Support
Der Technical Support von Siemens Industry unterstützt Sie schnell und kompetent
bei allen technischen Anfragen mit einer Vielzahl maßgeschneiderter Angebote
– von der Basisunterstützung bis hin zu individuellen Supportverträgen.
Anfragen an den Technical Support stellen Sie per Web-Formular:
www.siemens.de/industry/supportrequest
© Siemens AG 2019 All rights reserved
Serviceangebot
Unser Serviceangebot umfasst folgendes:
• Plant Data Services
• Ersatzteilservices
• Reparaturservices
• Vor-Ort und Instandhaltungsservices
• Retrofit- und Modernisierungsservices
• Serviceprogramme und Verträge
Ausführliche Informationen zu unserem Serviceangebot finden Sie im
Servicekatalog:
https://support.industry.siemens.com/cs/sc
6.3 Änderungsdokumentation
Tabelle 6-2
© Siemens AG 2019 All rights reserved