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.

IEDSpecifies 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 filenameOnce the selected SCL file has been parsed successfully this field is automatically updated with selected filename. This field is not user modifiable.
SCL_FullPathOnce 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.
GoIDThis 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.
AppIdThis 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 AddressThis 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 ClockIf 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 1StNum

This value is incremented, starting from 0, with every change of whichever of the objects contained within the GOOSE message.

Elmnt 2SqNum

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 3Error

See Table 2 for values description.

Error/Status ValueMeaningDescription
0Transmission DisabledThe block stopped transmitting messages.
1Transmission Enabled

The block completed the send operation successfully (Transmission Enabled).

-3Ethernet Driver Error

The send operation could not be completed (error returned by the Ethernet driver).

-11Driver 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 TypeSupportedNot Supported
BOOLEANX.
INT8X.
INT16X.
INT24.X
INT32X.
INT64X.
INT128.X
INT8UX.
INT16UX.
INT24U.X
INT32UX.
FLOAT32X
FLOAT64X
EnumX
Dbpos.X
Tcmd.X
QualityX
TimestampX
VisString32.X
VisString64.X
VisString129.X
VisString255.X
Octet64.X
Unicode255.X
StructX
EntryTime.X
Check.X
ObjRef.X
Currency.X
PhyComAddr.X
TrgOps.X
OptFlds.X
SvOptFlds.X
Direct FeedthroughNo
Discrete sample timeNo
XHP supportYes
Work offlineNo

OPAL-RT TECHNOLOGIES, Inc. | 1751, rue Richardson, bureau 1060 | Montréal, Québec Canada H3K 1G6 | opal-rt.com | +1 514-935-2323