SIMATIC Information Server - SIMATIC Information Server aufsetzen, um WinCC OA datenbasierte Reports anzuzeigen

Mit dem SIMATIC Information Server haben Sie jederzeit transparenten Zugriff auf Anlageninformationen. Es können Dashboards und Reports interaktiv erstellt und verwaltet werden und diese sind jederzeit über das Web verfügbar. Das Berichtssystem basiert auf die Microsoft SQL Server Reporting Services.

Die Microsoft SQL Server Reporting Services XML-Datenerweiterung kann Reporting Daten vom gSOAP-Interface zurückgeben. Der WinCC OA Reporting-Service stellt das Interface zur Verfügung. Die Datenerweiterung wird defaultmäßig mit Reporting Services geliefert und eine Installation von weiterer Software ist nicht erforderlich.

Zwei gebrauchsfertige Templates werden mit der WinCC OA -Installation geliefert. Sie finden die Templates unter wincc_oa_path /data/Reporting/Templates/InformationServer.

Dieses Kapitel beschreibt wie der SIMATIC Information Server aufgesetzt werden kann, um Reports, die auf WinCC OA -Daten basieren, anzuzeigen. Gehen Sie wie folgt vor:

XML-Datenquelle erstellen

  1. Öffnen Sie das Template WinCC_OA _AlarmTable.rdl aus dem Verzeichnis wincc_oa_path /data/Reporting/Templates/InformationServer. Wenn Sie ein neues Template erstellen wollen, verwenden Sie als Vorlage die gebrauchsfertigen Templates ( wincc_oa_path /data/Reporting/Templates/InformationServer).

  2. Erstellen Sie eine XML-Datenquelle (embedded) indem Sie die WinCC OA"-Datenquelle rechts im Microsoft SQL Server Report Builder-Fenster selektieren (siehe Abbildung unterhalb). Wenn Sie ein neues Report-Template erstellen, stellen Sie sicher, dass Ihr Template den folgenden Code enthält:

<DataSources>

<DataSource Name="WinCCOA">

<DataSourceReference>/Datasources/WinCC OA</DataSourceReference>

<rd:SecurityType>Integrated</rd:SecurityType>

<rd:DataSourceID>7261b98e-86e0-459e-8228-1466ecfc5007</rd:DataSourceID>

</DataSource>

</DataSources>

Fügen Sie den Code zum Anfang der Template-Datei hinzu (siehe Abbildung unterhalb).

Abbildung 1. WinCC_OA_AlarmTable.rdl file

Sobald Ihr Template den Code oberhalb enthält, kann die Datenquelle unter Data Sources im Microsoft SQL Server Report Builder selektiert werden.

Abbildung 2. XML-Datenquelle im Microsoft SQL Server Report Builder

Datensätze für die XML-Datenquelle erstellen

Die Reporting Services XML-Datenerweiterung akzeptiert reine SOAP-Anfragen nicht und benötigt die XmlDP-Sprache, aus der, die eigentlichen SOAP-Bodies generiert werden.

  1. Erstellen Sie neue Datensätze für Ihre XML-Datenquelle durch einen Rechtsklick auf das Datasets-Verzeichnis und über die Option Dataset.... Fügen Sie einen Namen, selektieren Sie die "Use a dataset embedded in my report"-Option und selektieren Sie den Abfragetyp (Query Type) "Text" sowie fügen Sie XmlDP-Abfrage-Strings zu dem Query-Eingabefeld hinzu:

<Query>

<Method Namespace="urn:Siemens.OA" Name="alertGetPeriod">

<Parameters>

<Parameter Name="startTime" Type="string">

<DefaultValue>1970-01-01T01:00:00</DefaultValue>

</Parameter>

<Parameter Name="endTime" Type="string">

<DefaultValue>2016-07-15T01:00:00</DefaultValue>

</Parameter>

<Parameter Name="alertAttribute" Type="string">

</Parameter>

Die Abfrage enthält den Funktionsnamen und die Parameternamen. Es können der Funktionsname sowie die Parameter je nach Funktion (siehe Reporting-Funktionen) geändert werden - siehe auch die Markierung in der Abbildung unterhalb.

Abbildung 3. Microsoft SQL server Report Builder - Dataset Properties

  1. Auf der linken Seite des Fensters selektieren Sie die "Fields"-Option. Geben Sie die Felder, die über die spezifische Funktion zurückgegeben werden, an (siehe die Reporting-Funktionen der Onlinehilfe).

ACHTUNG

Bindestriche können nicht für Feldernamen verwendet werden!

Abbildung 4. Microsoft SQL server Report Builder - Dataset fields

  1. Selektieren Sie die Optionen Collation, Case sensitivity usw. (siehe Abbildung unterhalb).

Abbildung 5. Microsoft SQL server Report Builder - Dataset options
  1. Dynamisache Parameterwerte müssen im "Parameter"-Bereich der Datensatz-Eigenschaften definiert werden.

Abbildung 6. Microsoft SQL server Report Builder - Dataset parameters

ACHTUNG

Achten Sie darauf, dass bei der numerischen Interpretation der Datenpunktwerte graphisch (z.B. in Diagrammen) die Reporting Services XML-Erweiterung die numerischen Daten, die vom gSOAP-Interface zurückgegeben werden, als Strings speichert. Dies kann zu unerwartetem Verhalten führen, wenn Werte auf Systemen mit gemischten Sprachkonfigurationen interpretiert werden sollen. Der SOAP-Wert 123.456 könnte z.B. als 123456 interpretiert werden, weil ein Komma anstatt eines Punktes als Decimaltrenner erwartet wird. Dies kann mit fixen Parsing-Ausdrücken anstatt Werten, vermieden werden.

=Double.Parse(Fields!value.Value, System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))

Abbildung 7. Parsing-Ausdruck in der WinCC_OA_LineChart.rdl-Datei

Beispielabfragen

Eine reguläre SOAP-Abfrage (im Microsoft SQL Server Report Builder), um die Namen der verfügbaren WinCC OA Datenpunkte zurückzugeben, könnte wie folgt aussehen:

<?xml version="1.0"?>

<SOAP-ENV:Envelope

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

<SOAP-ENV:Body>

<m:dpNames xmlns:m="urn:Siemens.OA">

<dpPattern xsi:type="xsd:string">Reporting*</dpPattern>

<dpType xsi:type="xsd:string">ANALOG1</dpType>

</m:dpNames>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

This is the corresponding XmlDP query:

<Query>

<Method Namespace="urn:Siemens.OA" Name="dpNames">

<Parameters>

<Parameter Name="dpPattern" Type="string">

<DefaultValue>Reporting*</DefaultValue>

</Parameter>

<Parameter Name="dpType" Type="string">

<DefaultValue>ANALOG1</DefaultValue>

</Parameter>

</Parameters>

</Method>

Verwenden Sie die folgende Abfrage, um Runtime-Daten der WinCC OA -Datenpunkte vom gSOAP-Interface abzufragen:

<Query>

<Method Namespace="urn:Siemens.OA" Name="dpGetPeriod">

<Parameters>

<Parameter Name="startTime" Type="date"></Parameter>

<Parameter Name="endTime" Type="date"></Parameter>

<Parameter Name="bonus" Type="integer">

<DefaultValue>0</DefaultValue>

</Parameter>

<Parameter Name="dpName" Type="string"></Parameter>

</Parameters>

</Method>

In diesem Fall werden keine Defaultwerte für die drei der vier Parameter angegeben. Eine zusätzliche Konfiguration im Parameter-Bereich der Datensatz-Eigenschaften ist nicht erforderlich.