IEC 61850 GOOSE protocol

Description of the IEC 61850 GOOSE protocol implementation in the Typhoon HIL toolchain.

IEC 61850 (IEC 61850 – Communication Networks and Systems in Substations) standard defines GOOSE protocol (Generic Object Oriented Substation Event) as a publisher/subscriber type communication. This protocol is used for information exchange between IEDs (IED – Intelligent Electronic Device) in a Substation over the Ethernet.

IEC 61850 defines a special XML based language used for describing a substation and substation elements called SCL (Substation Configuration Language). Different levels of substations can be described using this language, so different files can exist, such as:

  • ICD (IED Capability Description) – it defines the complete capability of IED
  • SSD (System Specification Description) – it contains complete specification of a substation automation system, including single line diagram for the substation and its functionalities (logical nodes)
  • SCD (Substation Configuration Description) – it describes complete substation details. It contains substation, communication, IED and Data type template sections.
Figure 1. GOOSE communication inside the Substation

GOOSE protocol is an event-based protocol. The concept of GOOSE communication is that the publisher periodically sends messages and when an event happens (ex. Trip, Contactor closed …), it sends a burst of messages with new data. Because the protocol is publisher/subscriber based, there is no confirmation that the sent message is correctly received by the subscriber, so the message burst minimalizes the chance of message loss.

All messages are published under a topic. The subscriber receives all messages from the system, but filters and parses only the messages sent within the subscribed topic.

Since the GOOSE protocol is publisher/subscriber based, communication is possible only inside the local network (LAN).

GOOSE Publisher

GOOSE Publisher component dialog window is shown in Table 1.

Table 1. GOOSE Publisher
component component dialog window component parameters

GOOSE Publisher

  • Path to configuration file
  • GOOSE control block
  • Execution rate

GOOSE Publisher component is configured by importing a file that describes the Publisher device. If the file is properly formatted, GOOSE publisher data will be processed and all the extracted IEDs that are defined and all GOOSE Control Blocks for each IED will be listed in the IED and GOOSE Control Block property. Use the combo box to select the GOOSE message structure to be sent as shown in Figure 2.

Figure 2. Selecting GOOSE Control Block

GOOSE Publisher signal processing block has only one input terminal that can be either scalar or vector. The signal size of this input terminal is defined through configuration file, specifically through the GOOSE Data Set information (Figure 3). GOOSE Data Set specifies what data parameters are sent via GOOSE message.

If the signal size of the input terminal is vector, signal should be fed to GOOSE Publisher block through Bus Join component. Bus Join concatenates signals into vector. The order in which the data is concatenated into vector needs to be the same as the order they appear in GOOSE Data Set information. This information is available by clicking the Data preview button in component property window once the configuration is successfully loaded. This is illustrated in Figure 3.

Figure 3. GOOSE Publisher input signal

It is important to emphasize that there can exist more than one GOOSE Publisher block inside the model and GOOSE Control Blocks can be defined through different configuration files.

To successfully establish GOOSE communication, all devices communicating through GOOSE messages must be connected to the same network.

GOOSE Subscriber

GOOSE Subscriber component dialog window is shown in Table 2.

Table 2. GOOSE Subscriber
component component dialog window component parameters

GOOSE Subscriber

  • Path to configuration file
  • IED
  • Data set name
  • Execution rate

GOOSE Subscriber component is configured by importing a file that describes the Subscriber device. If the file is properly formatted, GOOSE subscriber data will be processed and all the extracted IEDs that are defined and all data sets for each IED will be listed in the IED and Data set name property. Use the combo box to select the data set to be received as shown in Figure 4.

Figure 4. Selecting GOOSE Data Set

GOOSE Subscriber signal processing block has only one output terminal that can be either scalar or vector. The signal size of this input terminal is defined by the configuration file, specifically by the selected GOOSE Data Set information. GOOSE Data Set specifies what data parameters are received via GOOSE message.

If the input signal is a vector it should be split into scalars using Bus Split component. The order in which the data is sorted on the output of Bus Split is the same as the order they appear in GOOSE Data Set information. This is illustrated in Figure 5.

Figure 5. GOOSE Subscriber output data

It is important to emphasize that there can exist more than one GOOSE Subscriber block inside the model andl GOOSE Data Sets can be defined through different configuration files.

To successfully establish GOOSE communication, all devices communicating through GOOSE messages must be connected to the same network.

Time synchronization

If there is a need for time synchronization, please take a look at Time synchronization.

Virtual HIL support

Virtual HIL currently does not support this protocol. When using a Virtual HIL environment (e.g. when running the model on a local computer), inputs to this component will be discarded and outputs from this component will be zeroed.