What Is an IEC 61850 Dataset?
Every IEC 61850 report and GOOSE message is built around a dataset, so integrators need to understand what a dataset is and how it is put together. This page explains the dataset - the ordered collection of data references that a control block publishes - and how the grouping decision shapes both reports and peer-to-peer messaging.
IEC 61850 Dataset in one line: An IEC 61850 dataset is a named, ordered list of data references - specific data objects or attributes - collected so a control block can publish them together. Report control blocks and GOOSE control blocks each point at a dataset; the dataset defines exactly what data travels in each message. Datasets are usually defined in LLN0 of a logical device.
The Package a Control Block Sends
A control block does not publish the whole data model; it publishes a dataset. The dataset is the specific list of data references - down to individual data objects or attributes - that should travel together in a report or GOOSE message. You might build one dataset of all the status points a SCADA client needs, another of the measurements it trends, and a separate, tight dataset of just the trip signals a GOOSE publisher sends to a peer relay. The grouping is an engineering decision, not a fixed part of the device.
Because the dataset is ordered, the position of each member is significant - subscribers, especially GOOSE subscribers, often key off the index of a member rather than its name for speed. That is why changing a dataset's membership or order after subscribers are configured is dangerous: it can silently shift what a subscriber reads. Datasets are typically defined in the logical device's LLN0 node, right beside the control blocks that use them.
How Datasets Bind to Reporting and GOOSE
A report control block references a dataset and adds trigger and optional-field rules on top of it: the dataset says what data, the RCB says when and with what metadata. A GOOSE control block references a dataset and publishes it as a Layer 2 message when any member changes. Same dataset concept, two delivery mechanisms - which is why understanding the dataset is prerequisite to configuring either.
Getting datasets right is often where reporting problems start. A member with the wrong data attribute constraint will not trigger as expected; a bloated dataset floods the link on every integrity cycle. The dataset is the deliberate, minimal package you choose to send, and it is verified in the SCD, alongside the GOOSE subscriptions that consume it.
Fixed, Configurable, and Dynamic Datasets
Devices differ in how datasets come to exist, and the difference decides your engineering workflow. Some IEDs ship with fixed datasets that you can reference but not edit. Most allow datasets to be defined at configuration time in SCL and loaded with the device configuration. A subset also supports dynamic creation, where a client builds a dataset at runtime over MMS services - convenient for ad hoc clients, but often non-persistent, meaning the dataset can vanish on a device restart and take the client's reporting down with it.
The device's capability declaration in its ICD states which of these it supports, along with any limits on dataset count and size - those limits are device-specific, so the file, not habit, is the reference. For permanent SCADA and automation interfaces, prefer datasets defined in the configuration and locked into the SCD: they survive restarts, they appear in the engineering record, and they are visible to whoever maintains the system after you. Reserve dynamically created datasets for temporary diagnostic clients that can rebuild their own state.
A Worked Walkthrough: One Breaker, One Dataset
Take a bay device and a SCADA client that needs breaker position and health. The engineering sequence: decide the consumer first - say a buffered report to the station client - then choose members: the breaker position with its quality and timestamp, the device health indication, perhaps an operation counter. Give the dataset a name that says what it is for, place it in LLN0, and order the members deliberately, because the order is part of the contract with every subscriber that will ever read it.
- Name the consumer and the delivery mechanism the dataset will feed.
- List the members down to data object or attribute, with the functional constraint each needs.
- Order the members and record that order in the project documentation.
- Create the dataset in LLN0 with the engineering tool and bind the control block to it.
- Load the configuration, browse the device with a test client, and confirm membership and order match the SCD.
- Freeze it: any later change is a coordinated modification of every subscriber.
Dataset Design Habits That Age Well
Group by consumer and by rate of change, not by convenience. Status points that change rarely and measurands that change constantly have different reporting needs, and mixing them in one dataset forces compromise trigger settings and noisy reports. Keep event-driven datasets tight - the ones feeding buffered reports and peer-to-peer messaging - and let integrity or polled mechanisms carry the bulk. The distinction between buffered and unbuffered reporting drives this: buffered datasets carry the events you cannot afford to lose across a connection outage, so their membership should be exactly the points with alarm or sequence-of-events significance.
Name and document relentlessly. A dataset named DS3 with fourteen members is a maintenance trap; one named after its consumer and purpose is self-explaining. Keep a simple register per device: dataset name, members in order, bound control blocks, and subscribing clients. When a point must be added years later, that register is the difference between a controlled change and an outage caused by an index shift nobody remembered mattered.
When Datasets Misbehave in Service
A report that arrives without an expected point usually traces to a member defined against the wrong functional constraint or the wrong attribute level - the value came through but the quality did not, or vice versa. A client that stops making sense right after a configuration download has usually met an index shift: the dataset gained or lost a member and every position after the change now maps to different data. Both faults pass superficial checks because messages still flow; only comparing live content against the SCD member list exposes them.
Two more patterns round out the list. A link that floods on every integrity cycle points to a bloated dataset that should be split by consumer. And reporting that dies after a device restart, for a client that had worked for months, is the signature of a dynamically created dataset that was never persisted - the client rebuilt its connection but the dataset it referenced no longer exists. The recovery pattern is the same each time: reconcile the live device against the SCD, then fix whichever one is wrong.
Frequently Asked Questions
What is in an IEC 61850 dataset?
An ordered list of data references - specific data objects or data attributes from the model - grouped so a control block can publish them together in a report or GOOSE message. It is the definition of exactly what data travels in each message.
Why does dataset member order matter?
Because subscribers, especially GOOSE subscribers, often key off a member's index for speed rather than its name. Changing membership or order after subscribers are configured can silently shift what each subscriber reads, so datasets are frozen once wired.
Where are datasets defined?
Usually in the LLN0 node of a logical device, right beside the report control blocks and GOOSE control blocks that reference them. The SCD file is the authoritative record of a dataset's membership and the control blocks bound to it.
How many members should a GOOSE dataset have?
As few as the function needs. Peer-to-peer messages exist to carry a handful of critical signals quickly, and every extra member enlarges the message, complicates subscriber configuration, and widens the blast radius of any change. Device limits on dataset size are model-specific, so check the capability declaration, but the engineering answer is minimalism.
Can I add a member to an existing dataset later?
Mechanically yes, but treat it as a coordinated change, not an edit. Appending at the end is safer than inserting, since insertion shifts the index of every following member and index-based subscribers will silently read the wrong data. Update the SCD, every subscriber, and the documentation together, and re-test the consumers before returning the scheme to service.
Automation services
Need help turning this into a working system?
Merobix integrates SCADA, programs Allen-Bradley and Siemens PLCs, and designs and fabricates industrial control panels.
Meeting requests are reviewed before confirmation.