Funktionalität der C#-API

Dieses Kapitel gibt einen Überblick über die unterschiedlichen funktionalen Möglichkeiten der C#-API:

Multithreading

Die WinCC OA C#-Manager-API kann in einer Multithreaded-Umgebung verwendet werden. Das bedeutet, dass die C#-Clientapplikation mehrere Threads verwenden kann, um WinCC OA-Daten zu bearbeiten. Die Kommunikation mit WinCC OA und der Zugriff auf die DP-Identifikationen wird intern in einem einzelnen Kommunikationsthread in serielle Reihenfolge gebracht.

Anmerkung:

Beachten Sie, dass C# Manager API nur die Möglichkeit bietet Threadsichere C#-Applikationen zu entwickeln. Es ist jedoch in der Verantwortung des Benutzers /des Entwicklers korrekte Applikationen zu entwickeln.

Asynchrone und synchrone Funktionsaufrufe

WinCC OA-Funktionen der C#-Manager-API werden als synchrone und asynchrone Versionen zur Verfügung gestellt, wenn die Versionen sinnvoll sind (es ist z.B. nicht sinnvoll eine synchrone dpConnect() anzubieten aber eine synchrone dpGet() ist sinnvoll).

Folgende Muster/Syntaxen stehen für den asynchronen Funktionszugriff zur Verfügung:

  • EAP (Event based Asynchronous Pattern) für Abfrage/Anmeldungsfunktionen (z.B.: dpConnect())

  • TAP (Task based Asynchronous Pattern) für Anfrage-Rückantwort-Funktionen (z.B.: dpGet())

Anmerkung:

Wenn Sie in der C#-Applikation hohe Leistung benötigen, sollten die asynchronen Versionen der Funktionen verwendet werden. Wenn wiederum Einfachheit eine Rolle spielt, verwenden Sie die synchronen Versionen.

Manager Events

Mit der Hilfe der C# Manager-API ist es möglich wichtige System- und Datenpunkt-Events abzufragen. Es werden z.B. C#-Events für die folgenden Situationen geboten:

  • Statusänderung der Managerverbindung - ausgelöst durch Verbindungsverlust zu einem WinCC OA-Projekt.

  • Redu-Umschaltung (ausgelöst durch Redu-Umschaltung)

    - Redu-Umschaltung auf aktiv

    - Redu-Umschaltung auf passiv

  • Verbindung zu einem Dist-System (ausgelöst durch eine Verbindung mit einem entfernten System/durch Trennung der Verbindung)

    - Dist-System verbunden

    - Dist-System getrennt

  • Änderungen im Datenmodell

    - DP erstellt, gelöscht, umbenannt

    - DP-Alias geändert, gelöscht

    - DP-Beschreibung geändert, gelöscht

Native C#-Datentypen

WinCC OA-Datentyp C#-Datentyp
FLOAT_VAR double
INTEGER_VAR int
UINTEGER_VAR Uint
LONG_VAR Long
ULONG_VAR Ulong
BIT_VAR Bool
TEXT_VAR String
CHAR_VAR

Char

ACHTUNG: Ein Char-Zeichen hat einen anderen Wertebereich als WinCC OA CharVar. Daher werden die erlaubten max- und min-Werte als konstante Byte-Member “MinCharValue” und “MaxCharValue” in der Klasse OaVariant definiert.

BLOB_VAR byte[]
TIME_VAR

DateTime

ACHTUNG: Ein DateTime in C# hat einen anderen Wertebereich als WinCC OA TimeVar. Daher werden die erlaubten max- und min-Werte in der UTC-Zeit als statische DateTime-Membern “MinTimeValue” und “MaxTimeValue” in der Klasse OaVariant definiert.

BIT32_VAR Eigene C# Klasse: Bit32
BIT64_VAR Eigene C# Klasse: bit64
LANGTEXT_VAR Eigene C# Klasse: LocalizedString
DPIDENTIFIER_VAR Eigene C# Klasse: OaDpIdentifier

ANYTYPE_VAR

MIXED_VAR

Wird automatisch in einen wirklichen (enhaltenen) Datentyp konvertiert
DYNXXX_VAR IEnumarable<> des Ausgangstyp

C# API-Klassen

Die C#-API enthält einzelne Klassen, um auf die unterschiedlichen Datenmodelle eines WinCC OA-Projektes zuzugreifen

  • ProcessValues – Zugriff auf aktuelle Prozesswerte und Konfigurationsdaten

    z.B. Werte der WinCC OA-Datenpunkte abfragen oder ändern usw.

  • Alerts – Zugriff auf aktuelle Alarme

    z.B.: aktuelle Alarme und Alarmwerte abfragen.

  • ValueHistory – Zugriff auf historische Prozesswerte

    z.B.: historische Datenpunktwerte abfragen usw.

  • AlertHistory – Zugriff auf historische Alarmdaten

    z.B.: historische Alarme abfragen usw.

  • ProcessModel – Lesen/Schreiben/ändern das Datenmodell des Projektes

    z.B.: erstellen, löschen, Datenpunkte umbenennen, usw.

  • TypeModel – DpTyp-bezogene Funktionalität

    z.B.: Alle Datenpunkte eines angegebenen DPTyps zurückliefern. usw.

  • PlantModel – CNS-bezogene Funktionalität

    z.B.: CNS-Ansichten und Trees erstellen und editieren usw.

  • ProjectEnvironment - Zugriff auf die Konfiguration des aktuellen Projektes

    z.B.: die Data-und Event Hosts- und Ports abfragen usw.

  • RuntimeSystem - Zugriff auf die Laufzeit- und Systeminformation

    z.B.: den lokalen Systemnamen und die lokale ID sowie die verbundenen Systeme und aktuellen Projektsprachen usw. abfragen

Klassen- und Funktionsdokumentation

Die folgende C#-Online-Hilfe bietet eine grobe Übersicht der C# manager API-Funktionalität. Eine detaillierte Klassen- und Funktionsdokumentation für die WinCC OA C# API finden Sie im Verzeichnis “api/csharp_docu” von <wincc_oa_path>/api/Csharp_docu/index.html . Das ist eine HTML-basierte Dokumentation. Um die Hilfe zu öffnen, öffnen Sie die Seite index.html in einem Browser.

Wie die C#-API installiert werden kann, siehe Kapitel Installation.