Implementierung des Control Models in WinCC OA

Um die Anzahl der benötigten Peripherieadressen zu reduzieren, werden in der WinCC OA Implementierung die Attribute der Datenstrukturen SBOw und Cancel auf eine virtuelle Adresse abgebildet. Außerdem ermöglichen User-Bits die Übertragung von Informationen die für die Unterscheidung verschiedener Services benötigt werden. Der WinCC OA 61850/61400 Client interpretiert erhaltene Werte und Bit-Muster und erstellt die Datenstruktur die für den Aufruf des benötigten Services notwendig ist.

Die Bits die zur Konfiguration einer Steueroperation verwendet werden, befinden sich per Default auf Userbyte 1. Mit Hilfe des Config-Eintrags userByteCommandMode können diese Bits auf ein anderes Userbyte abgebildet werden. Zur Auswahl eines bestimmten Services ist die Einstellung der ersten beiden Bits relevant. Im folgenden Beispiel werden nur diese beiden Bits behandelt. Eine komplette Beschreibung des Command-Bytes finden Sie in der Tabelle unten.

Anmerkung: Das Userbyte CommandMode wird nur für die Write-Richtung verwendet und hat keinen Einfluss auf Userbyte-Einstellungen für die Receive-Richtung.

Die verschiedenen Operationen werden durch das Beispiel der Positionsänderung von CSWI (Switch Controller) mit der physikalischen Adresse protectionDevice.TestDevice1CTRL/Q1CSWI1$ST$Pos dargestellt. Die Adressen die in diesem Beispiel verwendet werden, sind durch den IEC-Standard definiert.

Der Wert um diesen Schalter zu bedienen hat die physikalische Adresse protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$stVal

Der Datentyp von stVal ist abhängig vom steuerbaren Objekt. In diesem Beispiel ist es BITSTRING, was beispielsweise auf ein INTEGER-Datenpunktelement abgebildet werden kann. Ist der IEC-Datentyp von ctlVal ein analoger Wert, so ist der tatsächliche Datentyp möglicherweise ein Integer oder Float. In diesem Fall wäre die Peripherieadresse:

  • Integer: protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$stVal$i

  • Float: protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$stVal$f

Virtual Addresses

Der IEC 61850 Treiber verwendet die folgenden virtuellen Adressen:

  • protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$operVal - wird zum Senden von select- und cancel-Befehlen verwendet

  • protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$error - wird verwendet um Fehler- oder Response-Codes zu erhalten

  • protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$addCause - wird verwendet um zusätzliche Informationen zu Fehlern zu erhalten

Diese Adressen sind virtuelle Adressen die vom WinCC OA IEC 61850 Client verwendet werden. Sie existieren NICHT am Gerät und scheinen daher auch nicht beim Browsen auf. Um die virtuelle Adresse schnell zu definieren, kopieren Sie die Adresse von protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$ctlVal, ändern Sie das letzte Element des Strings manuell und verwenden Sie diesen String für die _address-Configs der entsprechenden Datenpunktelemente.

Voraussetzungen für die Konfiguration:

operVal muss den gleichen Datentyp wie ctlVal haben und als Ausgangsadresse konfiguriert werden.

error und addCause müssen vom Typ INT32 sein und als Eingangsadressen mit Empfangsmodus "spontan" konfiguriert werden. Da diese Adressen nicht am Gerät existieren dürfen sie NICHT zu einem Datensatz hinzugefügt werden. Die Werte die auf diese Datenpunktelemente geschrieben werden, kommen von der Antwort die der Treiber vom Gerät nach Senden eines Befehls erhält, oder wenn für einen Befehl ein Timeout vorliegt.

Es wird empfohlen diese virtuellen Adressen zu kontrollieren, da sie genaue Informationen darüber liefern wie ein Gerät auf einen Befehl vom Client reagiert. Durch die Response Codes für object selected (50), operation cancelled (51) und command successfully issued (100) kann der Operator sofort erkennen, dass der entsprechende Befehl korrekt ausgegeben wurde.

Configuration Attributes

Die unten angeführten Attribute kennzeichnen einen Befehl.

Control Model Typ (ctlModel)

Der Control Model Typ wird vom Wert des Attributs protectionDevice.TestDevice1CTRL/Q1CSWI1$CF$Pos$ctlModel bestimmt

Folgende Werte sind möglich:

Operation Wert
Direkt mit normaler Sicherheit 1
Select before operate mit normaler Sicherheit 2
Direkt mit erweiterter Sicherheit 3
Select before operate mit erweiterter Sicherheit 4

Damit dieses Attribut gelesen wird, muss es Teil eines Datensatzes oder einer Pollgruppe sein.

SBO Timeout (sboTimeout)

Der Timeout für Select before operate Befehl wird vom Wert des Attributs protectionDevice.TestDevice1CTRL/Q1CSWI1$CF$Pos$sboTimeout definiert. Dieser Wert bestimmt, wie lange ein Befehl bedienbar ist, nachdem er ausgewählt wird.

Damit dieses Attribut gelesen wird, muss es Teil eines Datensatzes oder einer Pollgruppe sein.

Anmerkung: Dieses Attribut ist nicht immer lesbar und ist optional. In diesem Fall wird der Timeout vom Hersteller definiert.

Status Selected (stSeld)

Dieses Attribut kann beobachtet werden, um herauszufinden, ob ein Select-Request erfolgreich war. Hierfür muss die Adresse protectionDevice.TestDevice1CTRL/Q1CSWI1$ST$Pos$stSeld gelesen werden.

Anmerkung: Dieses Attribut ist optional. Der Befehl wird ausgewählt, wenn das Attribut TRUE ist, jedoch gibt es keine Anzeige welcher Client ihn ausgewählt hat. Um zu bestimmen, ob der Select-Request erfolgreich war, muss die Antwort auf die Select-Operation ausgewertet werden.

Damit dieses Attribut gelesen wird, muss es Teil eines Datensatzes oder einer Pollgruppe sein.

Determine if a request was successful

Um zu ermitteln, ob ein Objekt von einem bestimmten Client erfolgreich ausgewählt wurde, muss das Element OperError überprüft werden. Weitere Details finden Sie unter Response Codes.

Direct Control with normal and enhanced security

Bit pattern: 00

Operation: Schreiben der benötigten Werte auf protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$stVal

Zwischen normaler und erweiterter Sicherheit wird durch die Konfiguration des Peripheriegeräts unterschieden.

Select before operate control with normal security

Bit Pattern: 01

Befehlsablauf:

  1. Wert schreiben auf protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$operVal.

  2. Warten bis protectionDevice.TestDevice1CTRL/Q1CSWI1$ST$Pos$stSeld TRUE wird oder bis am Element protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$error der Wert 50 erhalten wird

  3. Schreiben des benötigten Wertes auf protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$ctlVal. Akzeptiert das Gerät den Befehl wird der Wert 100 auf protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$error geschrieben.

Abbildung 1. Schreiben von 1 (=off) auf das Schutzgerät

Select before operate control with enhanced security

Bit Pattern: 11

Befehlsablauf:

  1. Schreiben des benötigten Wertes auf protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$operVal.

    Der eigentlich aufgerufene Service ist SelectWithValue

  2. Warten bis protectionDevice.TestDevice1CTRL/Q1CSWI1$ST$Pos$stSeld TRUE wird oder bis am Element protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$error der Wert 50 erhalten wird.

  3. Schreiben des benötigten Wertes auf protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$ctlVal. Akzeptiert das Gerät den Befehl wird der Wert 100 auf protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$error geschrieben.

Abbildung 2. Schreiben von 2 (=on) auf das Schutzgerät

Time activated operation

Um eine Operation zu einer bestimmten Zeit zu aktivieren, können die oben beschriebenen Befehle verwendet werden. Zusätzlich muss noch die Zeit an protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$operTm übergeben werden.

Anmerkung: Für diesen Service ist ein Control-Skript erforderlich, da der Aufruf in einem dpSet erfolgen muss.

Cancel

Bit Pattern: 10

Operation: Wert schreiben auf protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$operVal. Akzeptiert das Gerät den Befehl wird der Wert 51 auf protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$error geschrieben.

Abbildung 3. Abbrechen (Cancel) einer Operation

Response

Um vom Gerät eine Antwort (=Response) zu erhalten, sind die Adressen wie folgt zu parametrieren. Diese Adressen sind ebenso virtuelle Adressen der WinCC OA Implementierung und können nicht auf dem Peripheriegerät gefunden werden. Diese Adressen müssen für spontane Kommunikation konfiguriert werden.

Die Response-Codes werden von einem Control Model-spezifischen Service übermittelt. Die folgenden beiden Adressen müssen für spontane Kommunikation konfiguriert werden, müssen aber nicht Teil eines Datensatzes sein.

Error codes

Configure: protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$error

Im Fall eines Fehlers wird der Error-Code für eine durchgeführte Operation erhalten. Diese Adresse wird auch verwendet um positive Antworten zu kontrollieren. Nähere Informationen finden Sie unter Error Codes.

Additional information

Configure: protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$addCause

Diese Adresse wird nur geschrieben, wenn einer der erweiterten Modi verwendet wird. Nähere Informationen finden Sie unter addCause

CommandMode Typdefinition für Bits (1- 8)

Bits Beschreibung
Bit1, Bit2

Diese zwei Bits repräsentieren den Servicetyp.

BIT1 BIT2 Beschreibung
0 0 DO
1 0 Cancel
0 1 SBO
1 1 SBOw
Bit3, Bit4

These two bits represent check condition in command bits.

BIT3 BIT4 Description
0 0 no-check
0 1 synchro-check
1 0 interlocking check
1 1 both
Bit5

This bit represents the test status. The service parameter Test indicates if the client sends a control service for test purposes only. True indicates test is performed.

All service requests belonging to one control sequence must carry the same test status.

Bit6

This bit represents the automatic mode status.

TRUE: automatic mode is set

FALSE: automatic is not set

This bit modifies the originator category, see also origin.orCat.

Bit7

This bit represents the maintenance status.

TRUE: Maintenance is set

FALSE: Maintenance is not set

If this bit is set, origin.orCat settings are ignored and the originator category is set to maintenance.

Bit8 Bit 8 - periphBlkd indicates "No action" to the client and may be used for testing or engineering.