What Is a DNP3 Data Set?
Standard DNP3 objects carry one kind of value at a time - an analog input here, a binary input there. Data sets are the exception: a way to bundle several different values into one user-defined structure and move it as a unit. They are less common than core objects, so integrators often meet them for the first time in an unfamiliar device. This page explains what a DNP3 data set is, how it is defined, and when it earns its complexity.
DNP3 Data Set in one line: A DNP3 data set is a user-defined structure that bundles several values of possibly different types - analog, binary, string, time - into a single object moved as a unit. A data set prototype and descriptor define the layout, and the data set present-value and event objects carry the actual data. Data sets let a device report a related group of values together with one definition, rather than as separate points, at the cost of extra configuration.
Bundling Mixed Values Into One Object
Core DNP3 objects are homogeneous: a group 30 analog input variation carries analog values, a group 1 binary input carries statuses. A data set breaks that mold by letting a device define a structure that holds a mix - for example an analog measurement, a status bit, a timestamp, and a text label - and report them together as one addressable object. This is useful when a set of values only makes sense as a unit and you want them to travel and be timestamped together.
The layout is not fixed by the standard; it is described by the device using a data set prototype and a data set descriptor. The prototype names the element types and order, and the descriptor ties the prototype to actual point sources. The present-value and event data set objects then carry the live data laid out per that definition. Because the structure is self-described, a master that understands data sets can parse a device's custom bundle without hard-coded knowledge of it, much as the object group and variation scheme makes ordinary points self-describing.
When Data Sets Are Worth It
Data sets add configuration overhead: you have to define prototypes and descriptors on both ends, and not every master fully supports them. For most SCADA point maps, plain analog and binary objects are simpler and entirely sufficient, and the point index scheme keeps them organized without any custom structures. So the default answer for a typical outstation is that you probably do not need data sets.
Where they earn their keep is when a device genuinely produces compound records - a metering event that must carry a value, a quality flag, and a timestamp as an inseparable unit, or a structured report that should stay together. In those cases a data set delivers the whole record with one definition and one event, rather than forcing the master to correlate several separate points by timestamp. The judgment call is whether the coupling of the values justifies the extra definition work, which is a device-specific decision to make against the outstation's device profile.
The Four Object Groups Behind a Data Set
Data sets occupy four dedicated object groups in the standard, and the division of labor between them is what makes the feature self-describing. Groups 85 and 86 carry the definitions; groups 87 and 88 carry the data laid out according to those definitions.
| Group | Role |
|---|---|
| 85 | Data set prototype - the reusable element layout, naming the types and their order |
| 86 | Data set descriptor - binds a prototype to the device's actual data sources |
| 87 | Present value - the current contents of a data set, read on demand |
| 88 | Event - a snapshot of the data set captured when its trigger condition occurs |
The reading order follows from the table: a master that wants to use a device's data sets first reads the group 85 prototypes and group 86 descriptors to learn the structures, and only then can it parse the group 87 and 88 payloads. Skipping that discovery step is why a generic poll of an unfamiliar device can return data set bytes the master cannot interpret.
How Data Set Events Reach the Master
Once defined, a data set event behaves like any other DNP3 event. The snapshot is assigned to an event class, held in the outstation's event buffer, and delivered either when the master runs a class data scan or through an unsolicited response, with the same confirmation and retry behavior as ordinary events. That is the payoff of the design: the exotic part is only the structure definition, while the transport machinery is the one integrators already know.
The practical wrinkle is buffer arithmetic. A data set event is one logical event but carries the whole bundle, so each occurrence consumes considerably more buffer space than a single analog or binary event. On a device that generates data set events at any real rate, buffer capacity and the polling or unsolicited strategy need to be checked together, or a communications outage will overflow the buffer and drop compound records that cannot be reconstructed from other points.
Checking Support Before You Commit
Data sets only work when both ends implement them, and support is far from universal - many otherwise complete master drivers stop at the core static and event groups. Before designing a map around data sets, confirm two documents: the outstation's device profile, which states whether groups 85 through 88 are implemented and how many data sets the device supports, and the master or gateway driver's conformance documentation for the same groups. A short bench test that reads the prototypes and descriptors with a protocol test tool settles the question faster than any datasheet reading.
It is also worth agreeing on a fallback before committing. Most devices that offer data sets can expose the same values as individual points; mapping them that way sacrifices the atomic, single-timestamp delivery but works with every master. Deciding up front which mode the integration uses - and recording the choice in the point map - avoids the awkward mid-project discovery that one end speaks a structure the other cannot parse.
Frequently Asked Questions
How is a DNP3 data set different from ordinary objects?
Ordinary objects carry one type of value. A data set bundles several values of possibly different types into one user-defined structure, defined by a prototype and descriptor, so related values travel and are timestamped together as a unit.
What defines a DNP3 data set layout?
A data set prototype names the element types and their order, and a data set descriptor binds that prototype to real point sources. The present-value and event data set objects then carry the live data in that layout, so the structure is self-described.
Do most DNP3 systems need data sets?
No. Plain analog and binary objects cover the vast majority of point maps with less configuration. Data sets are worth the overhead only when a device produces compound records that must stay together as a unit, and both master and outstation support them.
Which DNP3 object groups carry data sets?
Groups 85 through 88. Group 85 holds the prototypes that name the element types and order, group 86 holds the descriptors that bind a prototype to real data sources, group 87 carries the present values, and group 88 carries data set events. A master reads 85 and 86 first to learn the layout, then parses 87 and 88 against it.
What if my master does not support data sets?
Then it cannot parse groups 85 through 88 at all, no matter how correctly the outstation is configured. The options are a driver or firmware update on the master side, or configuring the device to expose the same values as individual analog, binary, and counter points. The individual-point route loses the guaranteed single-snapshot grouping, so related values must be correlated by timestamp instead.
Sources and verification
This page references the protocol specifications published by the organizations below. Editions, product capabilities, and documentation change over time - confirm current requirements and specifications directly with the source.
- Overview of DNP3 (IEEE Std 1815) - DNP Users Group
Merobix is not affiliated with, endorsed by, or sponsored by these organizations; their names are used only to identify the standards and products discussed.
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.