Documentation Home Page ◇ RT-LAB Home Page
Pour la documentation en FRANÇAIS, utilisez l'outil de traduction de votre navigateur Chrome, Edge ou Safari. Voir un exemple.
OpIEC61850 GOOSE Publisher
Block
Mask
Description
The OpIEC61850 GOOSE Publisher block basically behaves as a transmission unit of Generic Object Oriented Substation Event (GOOSE) messages (command, control or status). OpIEC61850 GOOSE Publisher block gets all the necessary information to transmit a specific GOOSE message from SCL file. In order to subscribe to a unique GOOSE message it is necessary to start a transmission using its Multi-cast address of publication as well as its identifier (AppId).
This block adjusts automatically its inputs depending on the number of Data Objects (DOs) comprised within the selected GOOSE message.
Parameters
Ethernet Adapter | Specifies the name of the Ethernet adapter interface (string, 64 characters max.) to be used for communication to IEC61850 network. To verify which ethernet devices are available on a RedHat system, execute the following command: # ifconfig The available network interfaces are printed. Fill up this field with the name of the network interface to be used by GOOSE Publisher block. |
---|---|
IED | Specifies the Intelligent Electronic Device that sends the desired GOOSE message under monitoring. The IED name may represent a physical equipment placed within an IEC61850 communication network. |
Select SCL file... | This checkbox opens up a file selection window allowing user to browse and parse desired SCL file (default file extensions, .icd, .cid, or .scd) to find all GOOSE message definitions within the IED specified by "IED" parameter. Note: IED parameter should be specified before browsing for SCL file, otherwise an error message window could be thrown pointing out this fact. |
SCL filename | Once the selected SCL file has been parsed successfully this field is automatically updated with selected filename. This field is not user modifiable. |
SCL_FullPath | Once the selected SCL file has been parsed successfully this field is automatically updated with SCL file's relative path to model locationl. This field is not user modifiable. |
GoID | This pop-up menu contains the entire list of GOOSE messages comprised within current IED. This menu is automatically updated with the information retrieved from SCL file. See Characteristics and Limitations section. |
AppId | This field is automatically updated with the GOOSE message Application ID retrieved from SCL file. This field is not user modifiable. This ID should be unique within the entire IEC61850 network. |
MAC Destination Address | This field is automatically updated with the MAC multi-cast destination address where the GOOSE message will be published (e.g. '01-0C-CD-04-00-00'). The MAC address must respect the following format 'hh-hh-hh-hh-hh-hh', where h represents an hexadecimal digit. This field is not user modifiable. |
External Clock | If it is checked, the goose publisher will be synchronized with an external clock that receives in the clock input field. Otherwise, the block uses system time. This option allows us to use Spectracom TSync PCIe board along with Goose Publisher block to synchronize the time with GPS instead of system time. |
Inputs
Enable (En): This input controls the transmission of GOOSE messages. An input of 1 activates transmission and value of 0 disables it.
Test: This input controls directly the GOOSE Header field "test"; If input value is TRUE GOOSE message will be transmitted with test flag equal to TRUE informing to all subscribers that Object Input Data is the result of a testing.
Object Input Data: This input(s) is dynamically created depending on the structure of the GOOSE message; the number of object data outputs and their size (number of vector elements) added to the Simulink block shall depend on the DataSet associated to GSEControl block in selected SCL file, i.e.
If GSEControl uses a DataSet named "Goose_TRIP5",
<GSEControl ... datSet="Goose_TRIP5" name="CB_Goose_TRIP5"/>Note1
and this DataSet consists of two object definitions "Op5" and "Op6" with two attributes each (intA and intB),
<DataSet name="Goose_TRIP5">
<FCDA ... doName="Op5" daName="intA" fc="ST"/>
<FCDA ... doName="Op5" daName="intB" fc="ST"/>
<FCDA ... doName="Op6" daName="intA" fc="ST"/>
<FCDA ... doName="Op6" daName="intB" fc="ST"/>
</DataSet>Note1
so the Simulink block shall look like this:
Figure 1 shows the two additional object data inputs added to the block which are represented by a 2-element vector. The order of object outputs and their attributes is the same order followed in DataSet definition, this can be exemplified as follows:
1st Object Input -> Op5 = [intA intB]
2nd Object Input -> Op6 = [intA intB]
The labels on each input of the form OpN[...] meanthat input OpN might contain just a partial number of attributes containedwithin the object, or all of them, since the data set was built using severalFCDA elements is it not possible to know if all attributes are present in<DataSet element.
On the other hand, if we have a <DataSet definition as follows:
<DataSet name="Goose_TRIP5">
<FCDA ... doName="Op5" fc="ST"/>
<FCDA ... doName="Op6" fc="ST"/>
</DataSet>Note1
so the Simulink block shall look like this:
Figure 2 shows the two additional object data inputs added to the block which are represented by a 2-element vector. The order of object outputs and their attributes is the same order followed in DataSet definition, this can be exemplified as follows:
1st Object Input -> Op5 = [intA intB]
2nd Object Input -> Op6 = [intA intB]
The labels on each input of the form OpN.All meanthat all attributes of object OpN respecting the constraint "fc" are present at the Simulink blockinput.
Note1: Ellipsis denotes that there might be more parameters for DataSet and/or GSEControl sections which are not relevant for this explanation.
Clock: If the mask parameter "external Clock" is checked, this input should receive external clock. This input will accept a bus of 3 signals with timestamp information. The first signal should represent number of second elapsed since first January 1970, commonly known as unix epoch time. It means that it has to increment at each second. The Goose Publisher uses this signal to timestamp the outgoing packets. The more accurate this epoch time input will be, the more accurate will be the timestamp of the outgoing packets. The second signal of this bus should be an incrementing counter representing the current microsecond. The third signal must be a binary value (0 or 1) that represents the synchronization state of the timestamp. If the timestamp is synchronized with an accurate external source such as a GPS, the value applied to this signal should be set 1 and otherwise it should be 0. This value will appear in each time qualify byte of the data frames to indicate the validity of the timestamp.
Ideally, the timestamp input should come from an accurate synchronization source. Otherwise, there is no guarantee on the data sampling, reported data rate and fraction of second information. The Goose Publisher block has been validated with a GPS synchronized Spectracom TSync PCIe card. A control block for this card is available in RT-LAB and it provides the signals required by the Goose Publisher block for an accurate timestamp.
Outputs
Status: This output is a 3-element vector which is organized in the following manner:
Elmnt 1 | StNum | This value is incremented, starting from 0, with every change of whichever of the objects contained within the GOOSE message. |
---|---|---|
Elmnt 2 | SqNum | This value is incremented, starting from 0, with every GOOSE message received without any modification to its objects' value. If any change is detected for whichever of the objects this count is RESET to zero. |
Elmnt 3 | Error | See Table 2 for values description. |
Error/Status Value | Meaning | Description |
---|---|---|
0 | Transmission Disabled | The block stopped transmitting messages. |
1 | Transmission Enabled | The block completed the send operation successfully (Transmission Enabled). |
-3 | Ethernet Driver Error | The send operation could not be completed (error returned by the Ethernet driver). |
-11 | Driver Init Error | The driver didn't initialize properly. |
Characteristics and Limitations
When selecting a new SCL file, for Matlab versions prior to 2009B, GoID pop-up menu is automatically updated when pressing "Apply" button on block's mask. For Matlab v2009B and later it is necessary to close the mask by pressing "OK" button to get updated this pop-up menu.
Consider the following scenario: There are two or more OpIEC61850 GOOSE Publisher blocks within the same Simulink model pointing to different SCL files and same IED. This scenario is NOT supported if any GOOSE message definition within IED is different across files; therefore the last block to be updated shall be the one to determine which GOOSE message definition shall be taken for all blocks falling into this case.
For structure types the user cannot access specific members, only the entire contents of the structure can be entered to Simulink input.
The following table shows which of the IEC61850 pre-defined basic types are supported (per standard 61850-6 © IEC:2009(E)).
Basic Type | Supported | Not Supported |
---|---|---|
BOOLEAN | X | . |
INT8 | X | . |
INT16 | X | . |
INT24 | . | X |
INT32 | X | . |
INT64 | X | . |
INT128 | . | X |
INT8U | X | . |
INT16U | X | . |
INT24U | . | X |
INT32U | X | . |
FLOAT32 | X | |
FLOAT64 | X | |
Enum | X | |
Dbpos | . | X |
Tcmd | . | X |
Quality | X | |
Timestamp | X | |
VisString32 | . | X |
VisString64 | . | X |
VisString129 | . | X |
VisString255 | . | X |
Octet64 | . | X |
Unicode255 | . | X |
Struct | X | |
EntryTime | . | X |
Check | . | X |
ObjRef | . | X |
Currency | . | X |
PhyComAddr | . | X |
TrgOps | . | X |
OptFlds | . | X |
SvOptFlds | . | X |
Direct Feedthrough | No |
---|---|
Discrete sample time | No |
XHP support | Yes |
Work offline | No |
OPAL-RT TECHNOLOGIES, Inc. | 1751, rue Richardson, bureau 1060 | Montréal, Québec Canada H3K 1G6 | opal-rt.com | +1 514-935-2323
Follow OPAL-RT: LinkedIn | Facebook | YouTube | X/Twitter