Automation Glossary • Wrong DNP3 Analog Values

How to Fix Wrong DNP3 Analog Values and Scaling

Merobix Engineering • • 6 min read

The field transmitter is right, the RTU display is right, and the value on the master is wrong - too big, too small, negative when it should not be, or pinned at a ceiling the process ignores. Wrong-value problems in DNP3 are almost always a translation fault in one of three places: the variation the value travels in, the scaling applied at each end, or the sign interpretation. The failure signatures differ enough that the number itself usually tells you which one you have.

Back to Blog

Wrong DNP3 Analog Values in one line: When a DNP3 analog value reads wrong at the master, compare the raw transmitted value against the displayed one and match the error's shape to its cause: values that plateau at a fixed ceiling suggest a 16-bit variation clipping a larger count; values wrong by a clean multiplicative factor suggest scaling applied twice or not at all; large positive values appearing as negatives suggest a signed-unsigned mismatch. Fix the variation or the scaling at one designated place, and re-verify with two well-separated test values.

First Checks

Capture the value at every hop: the field instrument, the RTU's local display or configuration tool, the raw value in the DNP3 response (from a protocol capture or the master's raw-value diagnostic), and the final tag at the master. The hop where correct becomes wrong is where the fault lives, and this single exercise usually cuts the search space in half.

Also establish scope: one point wrong points at that point's configuration; a whole block wrong by the same factor points at a template or a units convention; everything wrong points at a gateway or master profile setting. And note the shape of the error - a constant offset, a clean multiple, a hard ceiling, or a sign flip each tell a different story, which the following sections take in order of likelihood.

Values Pinned at a Ceiling: Variation Clipping

A value that tracks correctly until it sticks at one number - classically a count near the top of the 16-bit signed range - is being carried in a 16-bit integer variation while the source produces bigger numbers. The outstation clips or saturates, and the master faithfully displays the clipped count. The tell is a trend with a flat roof at a suspiciously binary-looking value while the process kept rising.

Test by requesting the point in a 32-bit or floating-point variation from a diagnostic tool and seeing the full value appear. Fix by changing the default static and event variations for the point - or the class - so the delivered format can hold the full range, on whichever end controls variation selection in your setup. The format menu the two ends negotiate from is described in DNP3 object groups and variations. After the change, re-check the event variation separately: fixing the static read while events still travel 16-bit leaves trends correct on integrity polls and clipped between them, which is a maddening intermittent until you spot it.

Values Off by a Clean Factor: Scaling Applied Twice or Not at All

A value wrong by exactly a power of ten, or exactly the span ratio, means scaling happened in the wrong number of places. DNP3 carries numbers, not units: whether a point travels as raw counts for the master to scale, or as engineering units the outstation already scaled, is a per-point convention - and when both ends scale, or neither does, the result is a clean multiplicative error. A transmitter spanned 0 to 500 that reads 250 in the field and 12500 at the master has been scaled twice by the span-to-count ratio; one reading 2.5 has had a scale-down applied to an already-scaled value.

Fix by designating one owner of scaling per point and disabling the other end's transformation - many fleets standardize on the outstation delivering engineering units, or on documented raw counts converted at the master through a consistent table, the approach described in piecewise linear scaling tables. Then verify with two well-separated field values, because a single test point cannot distinguish correct scaling from an offset and a slope error cancelling at that value.

Negative Surprises: Sign and Float Mismatches

A healthy large value that appears as a large negative one is a signed-unsigned disagreement: one end treats the top bit as sign, the other as magnitude. It surfaces only when values cross the halfway point of the range, which is why it hides through commissioning and appears months later at high flow. The fix is aligning the interpretation - usually by moving the point to a variation and mapping where the convention is explicit rather than assumed.

Gibberish values - astronomically large, tiny, or not-a-number - suggest a floating-point variation being parsed as integer or vice versa, typically after a gateway in the middle remapped formats. Confirm by reading the raw octets in a capture and decoding them both ways; the interpretation that yields the field value is the right one, and the end decoding otherwise is the one to fix. Gateways deserve special suspicion here: a protocol converter with its own type table is a third place for formats to disagree.

When to Escalate

Escalate to the device or gateway vendor when the raw value in the capture is itself wrong - the outstation is transmitting a number that disagrees with its own local display, which is an acquisition or firmware fault upstream of everything this guide covers. Attach the capture, the local reading, and the point configuration export; that triad makes the defect undeniable and reproducible.

Before closing any wrong-value ticket, sweep for siblings: the error you just fixed was probably applied by template, and the points that share the template share the fault - some of them in ranges the process has not visited yet. A one-hour audit of scaling and variations across the point list, informed by the fixed example, routinely turns up several more latent instances of the same bug at a fraction of the diagnostic cost.

Frequently Asked Questions

Why is my DNP3 analog value stuck at 32767?

That is the top of the 16-bit signed integer range, and a value parked there means the point is traveling in a 16-bit variation while the source count exceeds it - the outstation saturates at the maximum representable value. Request the point in a 32-bit or floating-point variation, or rescale the source so the count fits, and check the event variation as well as the static one.

Should DNP3 outstations send raw counts or engineering units?

Either works; mixing conventions per point without documentation is what fails. Delivering engineering units from the outstation keeps the master simple and survives master migrations; delivering raw counts centralizes calibration knowledge at the master. Pick one convention per fleet where possible, record the exceptions explicitly in the point map, and make sure exactly one end owns the transformation for every point.

The value is right on integrity polls but wrong between them - why?

The static and event paths carry the same point in independently configured variations, and yours disagree: integrity polls deliver a correct wide format while events deliver a clipped or differently scaled one. Trends then correct themselves at each full poll and drift wrong between. Align the event variation and any event scaling with the static configuration and the sawtooth disappears.

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.

Merobix is not affiliated with, endorsed by, or sponsored by these organizations; their names are used only to identify the standards and products discussed.

More in Process Control & Loop Tuning
VFD Analog Reference Scaling  •  Bipolar signal scaling  •  Wrong scaling range  •  Fix Modbus scaling mismatch  •  Set Up Engineering Unit Scaling  •  All Process Control & Loop Tuning →
Free SCADA operator training
Merobix University - 70 video lessons & 261 quiz questions, from first login to compliance reporting. No demo call required.
Start free →