Problem Details: 0 mA Is Not 0%
A 4-20 mA current loop encodes the process variable linearly between a live zero of 4 mA and full scale at 20 mA. When the loop current collapses to 0 mA, the measurement chain has failed — the transmitter is no longer driving the loop at all. This condition is commonly called the dead zero problem.
| Loop Current | Meaning | Typical Controller Action |
|---|---|---|
| 0 mA | Dead zero: no current circulating. Open circuit, lost transmitter power, or dead input channel. | Raise loop-fault / input-fault alarm; hold or force safe output |
| Below ~3.6 mA | Generally treated as a fault / under-range condition, not a valid measurement | Bad-quality flag on the analog tag |
| 4.00 mA | 0% of span (for example 0 °C or 0 psi) | Normal |
| 4.00-20.00 mA | 0-100% of calibrated span, linear | Normal |
| 20.00 mA | 100% of span | Normal |
Root Causes
Group causes by where the loop current is interrupted. The loop is a series circuit: power supply → transmitter → field wiring → receiver input resistor → back to supply. Any single break anywhere produces 0 mA everywhere.
| Category | Specific Cause | Field Symptom |
|---|---|---|
| Wiring | Broken, cut, or crushed signal cable; pulled-out terminal; corroded ferrule; disconnected field junction-box terminal | 0 mA; infinite resistance across the loop with power removed |
| Power | Loss of 24 VDC loop supply to a 2-wire transmitter; failed loop power supply; tripped breaker or blown fuse on the instrument power rail | 0 mA on multiple loops fed from the same supply/fuse |
| Device | Internal transmitter electronics failure; failed output stage; device stuck in a non-driving state | 0 mA on one loop only; transmitter display dark or frozen |
| Barrier / isolator | Failed intrinsic-safety barrier, signal isolator, or loop splitter in the path | Correct current on the field side, 0 mA on the controller side |
| Receiver | Failed analog input channel; open sense resistor; module not powered or removed from the rack | Controller reads 0 mA while a series meter reads 4-20 mA |
Diagnostic Procedure
Work from the control room outward; each step localizes the break to one side of a boundary.
- Read the raw counts, not the engineering-unit tag. Scaling can mask the fault. Confirm the raw input word is at or below the value that corresponds to 0 mA rather than sitting at the 4 mA endpoint.
- Check whether neighboring loops are also dead. Multiple simultaneous dead zeros on one card or one power rail point to a shared supply, fuse, or breaker — not to a field instrument.
- Verify the loop supply voltage at the marshalling terminals with the loop connected. A 2-wire transmitter needs its rated minimum terminal voltage; measure and compare against the transmitter datasheet before condemning the device.
- Measure loop current in series at the marshalling terminals using a milliamp meter or the test jacks. If the meter reads a valid 4-20 mA there, the break is downstream in the input module or its wiring.
- Move to the field terminals at the transmitter and repeat the series measurement. Valid current at the transmitter but 0 mA at the panel isolates the fault to the field cable, junction box, barrier, or isolator.
- Force the transmitter output using its loop-test / fixed-current function (via the local keypad or a HART communicator, if the device supports it) and command a known value such as 12 mA. If the forced current does not appear, the transmitter output stage or its power feed is the problem.
- Ohm out the cable with the loop de-energized and both ends disconnected. Check conductor continuity, conductor-to-conductor short, and conductor-to-shield/ground leakage.
- Substitute a known-good source. Inject 4, 12, and 20 mA from a calibrator directly into the input channel. If the channel tracks the injection, the receiver is healthy.
Distinguishing Dead Zero from a Genuine Zero Process Value
The confusion arises when the operator sees 0 in engineering units on the HMI. Two very different loop states can produce a displayed zero, and the control logic must separate them.
| Observation | Genuine 0% Process | Dead Zero Fault |
|---|---|---|
| Series milliamp reading | 4.00 mA (within calibration tolerance) | 0 mA |
| Loop terminal voltage at transmitter | At or above the transmitter's minimum operating voltage | Zero or below the minimum |
| Signal behaviour | Sits at the low endpoint, still responds to process changes | Flat, dead, no response to any stimulus or forced output |
| Neighbour loops | Unaffected | Frequently also dead if a shared supply or fuse failed |
Detection Logic and Configuration
Do not rely on the operator noticing a flat trend. Configure the analog input path to declare the fault explicitly.
- Enable open-wire / under-range detection on the analog input module where the hardware provides it, and map the resulting channel status bit into the tag's quality flag.
- Add an under-range comparison in logic. A current below the low fault threshold (commonly treated as roughly 3.6 mA and below) is not a measurement — latch a fault, freeze the last good value or substitute a safe default, and inhibit any PID loop using that variable from integrating on garbage.
- Do not clamp silently. Modules or scaling blocks that clamp everything below 4 mA to 0% will hide the dead zero completely. Scale from raw counts so an under-range value remains visible, or read the module's status word.
- Set the transmitter's failure mode deliberately. Devices that support a namur-style failure output can drive high or low on internal diagnostics, but note that an internal failure drive-low is still a nonzero current — a true 0 mA reading indicates a loss of the loop itself, not a diagnostic alarm.
Sample under-range interlock, expressed generically:
// Raw scaling: AI_Counts -> AI_mA (module dependent)
LOOP_FAULT := (AI_mA <= 3.6) OR (AI_mA >= 21.0) OR NOT CH_Status_OK;
PV_GOOD := NOT LOOP_FAULT;
IF LOOP_FAULT THEN
PV := PV_LastGood; // hold, do not fall to 0%
PID.Auto := FALSE; // drop the controller to manual / safe output
ELSE
PV_LastGood := PV;
END_IF;
Repair and Verification
- Restore the failed element: reterminate the conductor, replace the fuse or reset the breaker, replace the transmitter, barrier, isolator, or input module.
- Re-energize and confirm the loop supply voltage at the transmitter terminals under load.
- Force the transmitter output to 4, 12, and 20 mA and confirm the controller raw value and engineering-unit value at each point. Record the deviation.
- Return the transmitter to normal output and confirm the reading tracks a real process change or a known reference.
- Deliberately re-test the detection path: disconnect one loop conductor briefly (where safe and permitted) and confirm the
LOOP_FAULTbit sets and the HMI raises a bad-quality alarm instead of showing a plausible 0%. - Clear the latched fault, confirm normal quality returns, and log the root cause against the tag so repeat failures on the same fuse, cable run, or device family become visible.
FAQ
Why does a 4-20 mA loop use 4 mA instead of 0 mA for zero?
The 4 mA live zero keeps current flowing even at 0% of span, so a broken wire or dead transmitter produces 0 mA and is immediately distinguishable from a legitimate zero measurement. A 0-20 mA or 0-10 V signal cannot make that distinction.
What current level should I treat as a loop fault?
Anything at or below roughly 3.6 mA is generally treated as a fault or under-range condition rather than a valid process value, and 0 mA specifically means the loop is open or unpowered. Configure the under-range comparison in logic and flag the tag as bad quality.
How do I tell if the fault is in the field wiring or the input card?
Measure loop current in series at the marshalling terminals. A valid 4-20 mA there with 0 mA reported by the controller isolates the fault to the input module or its panel wiring; 0 mA at the marshalling terminals pushes the fault out into the field cable, barrier, or transmitter.
My HMI shows 0 in engineering units. Is the process actually at zero?
Not necessarily. Check the raw counts or measure the loop current: a genuine 0% reads 4.00 mA, while a dead zero reads 0 mA. Scaling blocks that clamp under-range values to 0% will hide the difference entirely.
Several loops went to 0 mA at the same time. Where do I look first?
Check the shared 24 VDC loop power supply, its fuse, and the feeding breaker before touching any field instrument. Simultaneous dead zeros across multiple loops almost always trace back to a common power source or a de-energized input module.