OPC HDA Server CNS
In diesem Kapitel wird die OPC HDA CNS Funktionalität des WinCC OA OPC HDA Servers näher beschrieben. Durch diese Erweiterung können CNS-Views auf den Adressraum eines Servers abgebildet werden. Das bedeutet, dass der Server-Adressraum unabhängig von der Datenpunktstruktur des jeweiligen WinCC OA Projekts frei definiert werden kann.
Bei Verwendung von CNS werden keine Datenpunktgruppen benötigt. Die gewünschte Struktur der CNS-View kann entweder über den Anlagenmodell Editor oder über die entsprechenden Control-Funktionen angelegt werden.
Konfiguration
Die View die auf den Adressraum abgebildet werden soll muss auf dem internen Datenpunktelement Config.CNSView vom Typ _OPCPvssServer eingetragen werden. Jedem Server kann immer nur eine View zugewiesen werden.
Der OPC HDA Server überprüft das Datenpunktelement Config.CNSView nur beim Start. Soll daher eine andere View auf den Adressraum abgebildet werden, muss der Server neu gestartet werden nachdem die neue View-ID auf dem Datenpunktelement eingetragen wurde. Wenn eine ungültige View-ID angegeben wird, kommt es zu folgender Fehlermeldung und der Server wird beendet:
SEVERE, 54, Unexpected state, CNSViewBrowser, Constructor, View 'View13' doesn't exist!
Der WinCC OA Systemname und der Viewname selbst sind kein Teil des Server-Adressraums. Die erste Ebene die im Server-Adressraum angezeigt wird, entspricht dem konfigurierten Root-Knoten der über den Config-Eintrag rootNode definiert werden kann. Die Nodes der CNS-View werden im Adressraum unterhalb des definierten Root-Knotens angezeigt.
AccessLevel
Um festzulegen, welche Nodes einer View im Adressraum angezeigt werden, bzw. wie auf den Wert einer Variable zugegriffen werden kann, muss das AccessLevel-Attribut verwendet werden. Um den AccessLevel einer Node zu definieren muss das Keyword OA:OPC mit einem Wert vom Typ UINTEGER_VAR auf der UserData der Node gespeichert werden (entweder automatisch über Anlagenmodell Editor - OPC oder mit cnsSetProperty). Der AccessLevel einer Node wird auf alle Child-Nodes vererbt, für die der AccessLevel nicht explizit gesetzt wird.
Feld | Bit | Beschreibung |
---|---|---|
History | 3 |
Definiert, ob die historischen Werte des entsprechenden Knoten über den OPC HDA Server abgefragt werden können und der Knoten im Adressraum angezeigt wird. 0: Werte können nicht abgefragt werden 1: Werte können abgefragt werden |
Inheritance | 31 |
Definiert ob der AccessLevel von dieser Node vererbbar oder nur für diese eine Node gültig ist. 0: Vererbbar 1: Nicht vererbbar |
Abbildung im Server-Adressraum
Bei CNS können Datenpunkte zu Nodes einer CNS View hinzugefügt werden. Ist einer Node ein Datenpunktelement zugewiesen und der AccessLevel definiert, wird das Objekt für diese Node im Adressraum als LEAF-Item repräsentiert und zeigt den aktuellen Wert des zugewiesenen Datenpunktelements.
Nodes ohne Datenpunktelementzuweisung werden im Adressraum als BRANCH-Item dargestellt.
Folgende Punkte müssen bei der Abbildung einer View auf den Adressraum berücksichtigt werden:
-
Eine Node ohne AccessLevel wird nicht abgebildet außer wenn zumindest eine der Child-Nodes mit einem Datenpunktelement verknüpft ist und dessen AccessLevel definiert ist
-
Eine Node mit definiertem AccessLevel der kein Datenpunktelement zugewiesen ist, wird nicht auf den Adressraum abgebildet, außer wenn sie zumindest eine Child-Node mit zugewiesenem Datenpunktelement hat
-
Eine Parent-Node mit zugewiesenem Datenpunktelement ohne definiertem AccessLevel wird als BRANCH-Item auf den Adressraum abgebildet, wenn für eine der Child-Notes der AccessLevel definiert ist.
-
Die Struktur der Objekte im Adressraum entspricht der verlinkten Datenpunktelementstruktur. Wird einer Node eine Datenpunktelementstruktur zugewiesen, hängt der OPC HDA Server alle Elemente der verlinkten Struktur an die entsprechende Node.
Anmerkung: Die Datenpunktelementnamen einer verlinkten Struktur werden für die OPC HDA Item-ID verwendet. Sollte es durch die verlinkte Struktur zu Konflikten mit CNS Nodes mit der gleichen Node-Id kommen, wird vom Server eine Fehlermeldung im LogViewer ausgegeben. In diesem Fall bleiben sich bereits im Adressraum befindende Nodes unverändert und die neuen, konfliktverursachenden Nodes werden dem Adressraum nicht hinzugefügt.
Die Attribute einer CNS View werden folgendermaßen auf den Adressraum abgebildet:
CNS View | Adressraum | Kommentar |
---|---|---|
ID-Pfad | ItemID | Der gesamte ID-Pfad der entsprechenden Node (ohne Systemname und View-Name). |
UserData (OA:OPC) | AccessLevel | AccessLevel (Lesen/Schreiben) einer CNS Node wird in dessen UserData gespeichert. |
Zusätzliche Informationen
Änderungen an der CNS View
Folgende Änderungen an der verwendeten CNS-View werden zur Laufzeit sofort auf den Adressraum abgebildet:
-
Erstellen neuer Nodes
-
Löschen von bestehenden Nodes
-
Änderungen an der Node-ID
-
Verknüpfen von Datenpunktelementen mit Nodes
-
Löschen von Datenpunktelementverknüpfungen mit Nodes
-
Änderungen an dem AccessLevel von Nodes
Wenn in WinCC OA Änderungen an Datenpunkttypen vorgenommen werden (z.B. Hinzufügen neuer Elemente oder Ändern vom Datentyp eines Elements), dessen Datenpunktelemente mit einer Node verlinkt sind, können diese nicht zur Laufzeit in den Adressraum übernommen werden. In diesem Fall muss der Server neu gestartet werden.
Beispiel für Abbildung von View auf Server
Das folgende Beispiel zeigt, wie eine View auf den Adressraum eines OPC UA Servers abgebildet wird.
CNS View | Datenpunktverknüpfung | AccessLevel definiert | Abgebildet auf Server | ||
---|---|---|---|---|---|
N1 | Nein | Nein | Ja | ||
N1_1 | Ja | Nein | Ja (als BRANCH) | ||
N1_1_1 | Ja | Ja | Ja | ||
N1_2 | Nein | Ja | Nein | ||
N1_3 | Ja | Ja | Ja | ||
N1_3_1 | Ja | Nein | Ja |