IEC 61850-8-1 / 7-48 min read

Worked Example: GOOSE Retransmission, Time Allowed to Live and a confRev Mismatch, Step by Step

Follow a transformer trip GOOSE from the first frame to the steady heartbeat, unplug the publisher to see the subscriber declare the stream lost, then break the intertrip with a one-sided confRev change.

Scenario

PublisherP_T1, transformer T1 protection, GOOSE with the trip of T1
SubscriberB_J01, 33 kV incomer bay controller, supervised by LGOS
RepetitionHeartbeat MaxTime 1000 ms; retransmission intervals doubling after a change
Tool61850 Academy, Labs 6 and 7 (speed 0.01× to read frames)

Step-by-step calculation

Step 1: Cause a change and read the burst

With the clock at 0.01×, apply a permanent fault on T1 and open the Sniffer. P_T1 increments stNum once, because the data changed, then repeats the same message with sqNum 1, 2, 3 and so on.

stNum changes only when the data changes. sqNum counts repetitions of the same state and restarts at 0 on the next change.

Step 2: Why time allowed to live grows

Each message tells the subscriber how long to wait for the next one. Right after a change the repeats are close together, so the time allowed to live is short; as the intervals double up to MaxTime, it grows with them. A subscriber that hears nothing within the time allowed to live treats the data as lost.

Step 3: Unplug the publisher

Restore the plant, return to 1× and unplug the P_T1 cable in Network. B_J01 keeps waiting for the next heartbeat, which never comes.

On a real system this alarm is your first sign of a broken GOOSE link. Without supervision the subscriber would silently keep the last value.

Step 4: Change confRev on the publisher only

Plug the cable back, then in IEDs → P_T1 raise the GOOSE confRev from 1 to 2, as happens when a new data set is loaded only into the publisher. B_J01 decodes GOOSE members by position, so it rejects a stream whose confRev differs from what it was configured for.

Step 5: See the consequence, then fix it

Apply a permanent fault on T1 again. P_T1 trips its own breaker, but the intertrip to J01 never arrives and J01 stays closed. Set B_J01's expected confRev to 2 and the subscription returns to ok.

Result summary

CheckRequirementActualStatus
stNum changes once per data changeYes+1 at the fault✓ PASS
Repeats carry the same stNum, rising sqNumYessqNum 1, 2, 3 …✓ PASS
Lost publisher detectedWithin about 2 × MaxTimeabout 2 s✓ PASS
Intertrip with one-sided confRev changeDeliveredLost✗ FAIL
GOOSE repeats a changed state quickly and then settles to the MaxTime heartbeat; the time allowed to live in each message lets the subscriber detect a lost publisher in about two heartbeats. A confRev change on one side only makes the subscriber reject the stream, so a protection intertrip can disappear without any fault on the publisher.

Key insight: Whenever a GOOSE data set changes, raise confRev and reload the publisher and every subscriber; then prove the link with a test trip and the LGOS status.

Try it with your own numbers

Every input in this example is editable in the live calculator — no signup needed.

Open 61850 Academy (IEC 61850 training simulator) calculator →

Frequently asked questions

Which LGOS attribute shows the received confRev?

LGOS.ConfRevNum reports the confRev being received; LGOS.St goes false when the subscription is not healthy.

Can I see the same in a real capture?

Yes. Open a Wireshark capture in the GOOSE & SV Capture Analyzer: it checks stNum, sqNum, time allowed to live and confRev against the SCD.

More in IEC 61850, SCADA & Substation Automation

← Back to all worked examples