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.
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.
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.
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:
-
Wert schreiben auf protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$operVal.
-
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
-
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.
Select before operate control with enhanced security
Bit Pattern: 11
Befehlsablauf:
-
Schreiben des benötigten Wertes auf protectionDevice.TestDevice1CTRL/Q1CSWI1$CO$Pos$Oper$operVal.
Der eigentlich aufgerufene Service ist SelectWithValue
-
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.
-
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.
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.
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.
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.
|
|||||||||||||||
Bit3, Bit4 |
These two bits represent check condition in command bits.
|
|||||||||||||||
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. |