What Is a DNP3 Static Object Variation?
The same DNP3 point can appear in a message half a dozen ways, and the difference is the variation. Two big families of variation exist for most point types - static and event - and choosing between them is one of the highest-leverage decisions in a point map. This page explains what a static object variation is, how it differs from an event variation, and why the choice directly sets how much a poll costs.
DNP3 Static Object Variation in one line: A DNP3 static object variation encodes the current value of a point, as read on a static or Class 0 poll, and comes in forms that differ by data width and whether quality flags are included. It contrasts with an event variation, which encodes a change and can add a timestamp. Choosing a variation with or without flags and with or without time controls both what information a value carries and how many bytes it occupies on the wire.
Static Variations Versus Event Variations
For most point types DNP3 defines two families of object: a static object that carries the present value, and an event object that carries a change. An analog input, for example, has static variations under one group and event variations under another. A static read returns the value now; an event read returns the log of changes since the master last looked. This is the object-level expression of the broader DNP3 class data split between static and event data.
Within each family, variations differ in encoding. A static analog input can be a 32-bit integer, a 16-bit integer, a floating-point value, and each of those can include or omit a quality flags byte. Event variations add the option of a timestamp. So the same physical measurement can be a bare 16-bit number in one poll and a flagged, time-tagged 32-bit float in another - identical meaning, very different byte cost.
Why the Variation Choice Controls Bandwidth
Because the variation sets the byte width, flags, and timestamp, it directly determines how large each point is on the wire. A remote site on a slow radio or metered cellular link feels this immediately: a point map built from 32-bit floats with flags on every point produces far more traffic than one that uses the smallest variation that still carries the needed information. This is the same bandwidth lever described under object groups and variations, viewed from the static-versus-event angle.
The practical rule is to match the variation to the point. Status points that only need order and time belong in flagged, time-tagged event variations. High-count analog values that rarely need sub-unit precision may not need a 32-bit float. The device profile lists which variations an outstation supports, and the master usually can request a specific variation or accept the outstation's default. Getting this right is a quiet but real contributor to a link that stays inside its bandwidth and power budget.
Byte Cost by Variation: A Concrete Comparison
The standard fixes the size of each static analog-input variation, so the byte cost per point is knowable before anything goes on the wire. For the analog input static group the encodings are:
| Static variation | Encoding | Octets per point |
|---|---|---|
| 32-bit integer with flag | 4-octet value plus 1 flag octet | 5 |
| 16-bit integer with flag | 2-octet value plus 1 flag octet | 3 |
| 32-bit integer without flag | 4-octet value | 4 |
| 16-bit integer without flag | 2-octet value | 2 |
| Single-precision float with flag | 4-octet value plus 1 flag octet | 5 |
Now scale it symbolically. With N analog points read every static poll, moving from a 5-octet flagged variation to a bare 16-bit one saves 3 octets per point, or 3 times N per poll, before headers. Multiply by the polls per day and that arithmetic is the whole argument: on a metered or slow link the variation choice is a recurring cost paid on every scan, and it compounds with point count the way any per-point overhead does.
Checking Support in the Device Profile
An outstation does not implement every variation, and the master cannot conjure one the device never built. The DNP3 device profile document is where support is declared: which variations each group offers, which one answers when the master asks for variation 0, and whether the choice is configurable per point or only globally. Reading it before designing the point map avoids the classic integration stall where the master requests a specific variation and the outstation answers with an error or silently substitutes its default.
Variation 0 deserves a special note. Requesting variation 0 means send your default, which delegates the encoding decision to the outstation's configuration. That is convenient at commissioning, but it means the byte cost of every poll is set by whatever the outstation happens to default to. A bandwidth-sensitive design should either pin the requested variation explicitly or confirm and deliberately set the outstation default during setup, then record the decision in the point database.
Integer Variations, Scaling, and the Over-Range Flag
Choosing a 16-bit integer variation buys bandwidth with a range constraint: a signed 16-bit value spans -32768 to 32767, a limit fixed by the encoding itself. A measurement that exceeds the scaled span cannot be represented, and a flagged variation will signal that through the over-range bit while a flag-less one simply clips with no indication at all. That is the quiet argument for keeping flags on any integer point whose full-scale value could plausibly be approached in operation.
The scaling itself lives in the outstation - typically an RTU or gateway configuration that maps engineering units into the integer span. When the instrument is re-ranged, that mapping must be revisited or the reported values silently shift meaning without any protocol error appearing. Treat the variation choice, the scaling, and the instrument range as one decision recorded together in the point database, not three settings owned by three different people.
Frequently Asked Questions
What is the difference between a static and an event variation?
A static variation carries the current value of a point, returned on a static or Class 0 poll. An event variation carries a recorded change and can include a timestamp. Both describe the same point; they differ in whether they report state now or a logged transition.
Do all DNP3 variations include quality flags?
No. Many point types offer variations both with and without a flags byte. Including flags tells the master about quality such as online, restart, or over-range, at the cost of an extra byte per point on every read.
Why does variation choice affect bandwidth?
The variation sets the width of each value and whether flags and a timestamp are attached. Larger variations mean more bytes per point per poll, which matters on slow or metered links where a whole point map is read repeatedly.
What does requesting variation 0 do?
Variation 0 in a read request tells the outstation to respond with its configured default variation for that object group. It is not an encoding itself; it delegates the choice. That makes commissioning easy but leaves the per-point byte cost up to the outstation's configuration, so bandwidth-sensitive designs usually pin an explicit variation in the request or verify and set the outstation default deliberately.
What happens if the master requests a variation the outstation does not support?
The outstation cannot fabricate an unsupported encoding, so the request fails, typically with an error indication rather than data. The supported set is declared in the device profile, which is why checking it before building the point map is a standard integration step. If a needed variation is absent, the choices are to accept the default, pick another supported variation, or change the outstation configuration where the product allows it.
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.