How to test IEC 61850 / GOOSE using the MTS-5100

Modern electric power utilities have been increasing their standardization on IEC 61850 communications within substations in recent years. It is becoming common for substations to use IEC 61850 GOOSE (Generic Object Oriented Substation Events) as a replacement for individually-wired signals between protective relays and other equipment. GOOSE messages allow low-latency, real-time transmission of events over an Ethernet network (copper or fiber) which would previously have required a large number of individual signal wires. Each network message encodes a potentially large number of signals such as protection element operate indications, breaker status and blocking signals.

Typical GOOSE testing configuration using the Manta MTS-5100

To meet the challenge of testing those systems, the software for the Manta MTS-5000 and MTS-5100 Protective Relay Testing Systems includes IEC 61850 GOOSE messaging capabilities. As is always the case with Manta test equipment, we have made simplicity and ease-of-use our top priorities. GOOSE messaging integrates seamlessly with the other features of the test-set software, so apart from some initial set-up, testing using GOOSE messages is the same as traditional testing using relay inputs and output contacts.

This article explains how to use Manta relay testing systems to test substations and equipment with IEC 61850 GOOSE messaging. When it was written, the latest released MTS-5×00 software version was 2.04, so the description herein relates to that software version.


There are two basic aspects to the IEC 61850 GOOSE messaging software feature:

  • Subscribing to receive GOOSE messages, and using the point values in those messages as though they were physical status inputs. The messages would normally originate in relays and other equipment on the substation network.
  • Publishing GOOSE messages that mimic those which would be sent by substation equipment that has been disconnected, to inject point values that simulate substation events.

Message layouts can be programmed using three methods:

  • Listening to Ethernet traffic, to discover messages that are being sent by relays and other equipment. This is often the most convenient way to configure tests in which the test set has to subscribe to incoming GOOSE messages.
  • Loading a standard SCL / ICD file (“Substation Configuration Language” / “IED Capability Description”), containing GOOSE definitions. The format of those files is specified by IEC 61850-7-X standard documents, and they’re generated by a lot of relay configuration utilities, such as SEL acSELerator Architect®. If your substation uses GOOSE messaging, you may already have the required files.
  • Loading a previously-saved file. Once you have the GOOSE configuration the way you want it, you can save the entire configuration to a setting file, and restore that file for a subsequent testing session. As with any type of setting file, those can also be moved from one test set to another.

As of Version 2.04, the MTS-5×00 software supports only binary (SPS, DPS) point types. It does not, for example, use the analog points found in some GOOSE messages. If you require improvements to this feature, please contact us with your request.

GOOSE input points may be used in Manual Test or any of the Productivity Modes. They also appear in the waveform display and sequence of events for the Waveform Playback feature.

GOOSE output points may be defined in Manual Test or a Productivity Mode to assert and deassert based on the same “function” settings used for contact outputs:

  • “Off” or “On”
  • 51A/B breaker feedback
  • Permissive / Unblock
  • On during a selected fault state or a custom set of fault states
  • Mimicking an input

As of software version 2.04, GOOSE outputs are not supported in Waveform Playback.

Example, Using Two Test Sets

The idea of this section is to let you get a feel for how the feature works, using an example.

We’ll use one test set (an MTS-5000) as the publisher, and one (an MTS-5100) as the subscriber. Screen captures are used to show what’s happening on each test set. Both test sets were running Version 2.04.

Preparing Each Test Set

To use the IEC 61850 / GOOSE feature, you need to enable real-time networking. It’s disabled by default, as of Version 2.04, because on rare occasions it prevents the FTP and HTTP servers from working with certain network configurations. It’s easy to disable later, if there’s a problem, so enabling it is risk-free.

From the main menu on each test set (MTS-5000 shown here), press F10 “Setup”…

MTS-5000: Press F10 to enter the "Setup" menu

then F5 “Set up Network”,…

Press F5 to enter the "Set up Network" menu

then F6 “Advanced”.

Press F6 to enter the "Advanced" menu to enable real-time networking

If the “Enable Real-Time Networking” setting is set to “Off”, change it to “On” and press F10 “Save”. When the message appears asking you to do so, cycle power to the test set. If the setting already “On”, you can just press F1 a few times to get back to the main menu.

Make sure the MTS-5000 or MTS-5100 has real-time networking enabled to use IEC 61850 GOOSE features

Now Real-Time Networking is enabled, and you’re ready to use IEC 61850 GOOSE messaging. Repeat the process for the other test set.

Publishing a GOOSE from the MTS-5000

To get to the IEC 61850 menu, press the F5 key from the main menu:

Press the F5 key to enter the IEC61850 GOOSE messaging menu

That key is programmable, and if it’s programmed for some other function you can also get to the menu by pressing F8 (Comm / Remote) then F5.

If you get a message saying that you need to enable real-time networking, please see the instructions in “Preparing Each Test Set”, above.

When you first go to the IEC 61850 menu, this is what you see:

MTS-5000 or MTS-5100 IEC 61850 GOOSE messaging menu

There’s a grid in the middle showing all the known GOOSE messages. So far, there are none. The keys down the left side let you load that grid using one of three methods:

  • Load an ICD/SCL File, which would have been produced for configuring the relays and other equipment at the substation. This file can often also be obtained using the relay vendor’s relay configuration software to extract the definitions from a relay. This is the method we’ll use in our example.
  • Restoring a file that you previously saved.
  • Listening on the Ethernet connection and recording whatever GOOSE messages arrive.

To load an ICD/SCL file, press F2. For this example, I placed such a file on the test set using FTP, but you can also use a USB storage device and either copy the file to the test set’s internal flash memory (using the “Files” menu) or load it directly from the USB device.

Select a file from the list using the up and down cursor arrow keys, then press the F5 key to load it.

Press F5 to load GOOSE message definitions from an ICD / SCL file

Some GOOSE message definitions appear at the top of the screen.

Discovered or loaded GOOSE messages appear in the list at the top of the screen

In this case there are three GOOSE messages defined in the ICD file: SEL_710_1 appid 4, SEL_710_1 appid 3 and Sub2Bay2 appid 0.

You can look at the details of each GOOSE by pressing F9 “GOOSE Details”. For example, here are the details for Sub2Bay2:

Viewing the details of a GOOSE message on the MTS-5000 or MTS-5100

Pressing F1 gets us back to the IEC 61850 menu. To publish a GOOSE message, select it in the list using the up/down cursor arrow keys, then press F7 “Publish”.

Press F7 to publish the selected GOOSE message

The state for that GOOSE changes to “Published”, and the F7 key label changes to “Unpublish” when that GOOSE is selected.

The state of the selected GOOSE message changes to "Published"

The MTS-5000 is now sending the Sub2Bay2 GOOSE out at regular intervals, and it will also be sent whenever any of its point values change (once we’ve assigned those, as described later).

The on-screen help says that the next thing to do is to press F8 “Configure GOOSE Points”. Doing so presents a list of “virtual output” points, and we need to assign those to the points in the GOOSE message.

You can use the cursor arrow keys to select a “Virtual Output” row, and turn the rotary dial to select a GOOSE output point for each one. If you’re only publishing a GOOSE with a small number of output points, though, the easy approach is to press F6 “Assign All”. Each virtual output is mapped to one of the binary points in the GOOSE message.

All output points assigned for the published GOOSE message

Subscribing on the MTS-5100

On the MTS-5100, we’ll go to the IEC 61850 menu the same way we did for the MTS-5000: either by pressing F5 from the main menu, or if it has been programmed for another function, by pressing F8 “Comm/Remote” then F5. Apart from appearing on a larger screen, this menu looks the same on the MTS-5100 and the MTS-5000.

MTS-5100 IEC 61850 / GOOSE messaging menu, before loading or discovering GOOSE messages

To define the GOOSE messages we want to receive, we could load an ICD/SCL file or restore a previously-saved setting file. For the purpose of this example, though, we’ll use F5 “Discover GOOSE Messages”.

With the publishing MTS-5000 (configured as described above) and the recieiving MTS-5100 on the same network, pressing F5 starts the discovery process. A progress bar times out after about one minute of discovery (because GOOSE sources normally arrive at least once per minute).

MTS-5100 in the process of discovering GOOSE messages on the network

As GOOSE messages are received, they appear in the upper grid. In this case, we’re connected to the MTS-5000 that’ sending the Sub2Bay2 GOOSE, so that’s what appears.

Each discovered GOOSE message appears in the upper grid

To subscribe to the GOOSE, select it (although in this case there’s only one, so it’s already selected), and press F6 “Subscribe”. The status changes to “Subscribed”, and the help text at the bottom explains what to do next.

After pressing F6 to subscribe, the state of the selected GOOSE message changes to "Subscribed"

As it says, the next thing to do is press F8 “Configure GOOSE Points”, which brings up a list of “Virtual Input” points.

The GOOSE input point assignment / binding screen -- nothing assigned yet

The easy way to assign the points, if there aren’t too many, is to just press F6 “Assign All”. That sets each virtual input to the next binary point in the message.

The GOOSE input point assignment / binding screen after doing "Assign All"

Those binary points are either single-point status (SPS) or double-point status (DPS). Each DPS point appears as four virtual inputs, each corresponding to a possible state of the DPS. For example, if the DPS point is for a breaker status, “Off” and “On” correspond to breaker open and closed, and “Int” corresponds to the intermediate state between those two. “Bad” indicates that the relay or other device has detected a problem with the input, such as both contacts closed when they should be break-before-make.

Running a Test

For this example, we’re making the MTS-5000 act like a relay, and using the MTS-5100 to test that pseudo-relay. Just to keep things really simple, we’ll use the Fault button in both cases, so:

  • We’ll press Fault on the MTS-5100 to start the test shot, then
  • We’ll press Fault on the MTS-5000 to simulate a protection element operating in the relay under test, then
  • The MTS-5100 will detect that Fault has been pressed on the MTS-5000 and, treating it as an “operate” event, end the test shot.

On the MTS-5000, we need one of our GOOSE points to change state depending on the fault state it’s generating. Let’s use the “Sub2Bay2 #11” point, which as shown earlier is mapped to virtual output 5.

Pressing F1 a few times gets you to Manual Test, and from there you press F5 “Advanced Settings”, then F2 “Set up I/O and Timers”. In that menu, press F8 “Configure Outputs”.

The MTS-5000 "Configure Outputs" screen

Note that the F3 key label (“Configure”) lets you pick Contact Outputs (the four outputs on the test set’s front panel) or “GOOSE Outputs” (the virtual outputs we defined in the IEC 61850 menu). Pressing it shows the GOOSE outputs.

The MTS-5000 screen for configuring GOOSE outputs in Manual Test or any productivity mode

We want to set virtual output 5 so it turns on when we go into fault (i.e. when we press the Fault button). Select the ”Function” setting for input 5, and turn the rotary dial to select “Fault”.

Configuring GOOSE output 5 to be on during the "Fault" state

Also change GOOSE output 1 to “Off”, because as of Version 2.04 you can’t have two GOOSE output points driven by the same fault state. When we release MTS-5×00 Software Version 2.05, it will remove that restriction.

Setting an unused GOOSE output point

Now we can press F1 twice to return to the Manual Test menu, and each time we go into Fault, virtual output 5 will turn on. The Manual Test screen shows the virtual output states at the bottom, so you can see when virtual output 5 turns on.

While generating "Fault", the configured GOOSE output 5 turns red

Now we have the MTS-5000 producing an indication on “Sub2Bay2 #11” when it is generating Fault. We need to make the MTS-5100 process that indication. In Manual Test / “Advanced Settings” / “Set up I/O and Timers”, we press F7 “Configure Fault State Control”. As was the case for outputs, the F3 “Configure” button lets us switch to GOOSE inputs.

Configuring the MTS-5100 to react to input points in a subscribed GOOSE message

We’ll cursor to input 5 “Sub2Bay2 #11”, then set “Enable In” to “Fault” and “Go To” to “Postfault”, using the rotary dial.

Configuring GOOSE input 5 so it causes a transition from the "Fault" state to "Postfault"

Now virtual input 5 will make the MTS-5100 go from Fault to Postfault. We’re not enabling the Postfault state, though, so it will go from Fault to Off. Pressing F1 twice gets you back to the Manual Test screen.

We’ll start the test shot by making sure both test sets say “Generating Off” in the lower-left corner, pressing Reset if necessary. Then we start the test shot by pressing Fault on the MTS-5100. Notice that GOOSE input 5 is not shown in red, because it’s not indicating “on”.

The publisher hasn't asserted its output point yet, so GOOSE input 5 is not red

Remember that our MTS-5000 is simulating a relay, and that we’re using its Fault state to simulate a relay operation. Pressing Fault on the MTS-5000 causes it to assert GOOSE output 5. On the MTS-5100, we see that GOOSE input 5 asserts, and the test shot ends.

The publishing MTS-5000 has asserted its output bit, so GOOSE input 5 turns red on the MTS-5100

Pressing F6 shows us a test report. Pressing F7 a few times shows us the “fault1” report.

MTS-5100 manual test report, showing a transition caused by a GOOSE input changing state

You can see that the transition from “Fault” to “Off” was caused by “GOOSE Input 5 On”, and that the time spent in fault was 8.9004 seconds (I was cutting and pasting screen captures during that time, so it took a while).

We have simulated what would happen with a real GOOSE-generating relay under test:

  • Test set goes into Fault, generating currents and voltages which would make the relay operate.
  • Relay element operates, causing a GOOSE point to change from “Off” to “On”.
  • Relay sends a GOOSE message over the network, containing that new point value.
  • Test set receives the GOOSE message, extracts the value, and registers the operation of the relay’s protection element.
  • Test set ends the test shot.

For More Information

We have created an application note describing the IEC 61580 / GOOSE Messaging features in more detail, including a reference section. You can download that application note from the “MTS-5000/MTS-5100 Technical Papers and Downloads” area in the user forum:

Click here to request a free demonstration of the MTS-5100, including the IEC 61850 GOOSE messaging features.

Comments are closed.