← ComputingSphere

Reading room · Case study · 30 October 2026

NEED_TIME never clears: 9,705 DNP3 time writes in 10 minutes

IIN1.4 NEED_TIME is how a DNP3 outstation asks to be synced. The master writes the time, the outstation applies it and clears the flag. When the outstation does not clear it, a master that syncs on every NEED_TIME it sees, without a limit, turns one request into a loop.

The setup

RTU 51 sets NEED_TIME and keeps it set whatever the master writes: in the field this is an RTU whose time comes from GPS or IRIG-B and which ignores DNP3 time writes, or a firmware bug. The master writes the time whenever it sees the flag. Ten minutes of capture.

What the capture shows

10 minutesValue
Responses from the RTU10,011
Responses with NEED_TIME set10,011
Time writes (WRITE g50) from the master9,705, about 16 a second
Normal data polls304
Writes rejected by the RTU0
  • Every write is answered with SUCCESS. The request was accepted; the flag says it was not applied, or not enough to satisfy the outstation.
  • The master spends 97% of its requests on this RTU writing the time. On a multidrop line or a shared gateway, every other outstation waits behind it.
  • Over a full hour the same pattern produced more than 58,000 writes, and each of them left NEED_TIME set.

What to change

  • On the master: limit time syncs per outstation (for example, at most one a minute) and raise an alarm when NEED_TIME survives a write. A sync that does not clear the flag is a fault to report, not a reason to try again at once.
  • On the outstation: decide which time source has priority. If GPS or IRIG-B owns the clock, configure the RTU not to request DNP3 time, as in the GPS case.
  • Check after every sync that the flag actually clears: the response to the write, and the next poll.

Try it on your own capture

ComputingSphere DNP3 counts time syncs per outstation and per hour, and reports the syncs after which NEED_TIME was still set. It only reads what already went over the wire. This capture is among the examples of every free account, to reproduce every number here; or upload your own: the Free plan covers 1,000 messages a month.

More cases