Industrial Automation

4-20 mA Formula: Convert mA to Pressure, Level, Temp

EDWartens Engineering Team
11 min read
4-20 mA Formula: Convert mA to Pressure, Level, Temp

The short answer

The 4-20 mA formula is PV = LRV + (I - 4) / 16 x (URV - LRV), where I is the loop current in mA, LRV is the value the transmitter is ranged to at 4 mA and URV the value at 20 mA. The reverse is I = 4 + 16 x (PV - LRV) / (URV - LRV). So 12 mA on a 0 to 10 bar transmitter is 5 bar, and 12 mA on a -50 to 150 °C transmitter is 50 °C, not 75 °C. A Siemens S7 analog input reports that same 12 mA as 13824 out of 27648.

If you just want the number, the free 4-20 mA Scaling Calculator does it in both directions and gives the raw PLC count. The rest of this page shows the working, so you can do it in an interview or on a loop sheet without a phone.

Four terms you need first

  • LRV (lower range value): the process value at 4 mA. Often 0, but not always.
  • URV (upper range value): the process value at 20 mA.
  • Span: URV - LRV. A -50 to 150 °C transmitter has a span of 200 °C, not 150.
  • Live zero: 4 mA, not 0 mA, means "bottom of range". A dead loop reads 0 mA, so a broken wire can never be mistaken for an empty tank.

The current span is always 16 mA (20 - 4). That gives one number worth memorising: every 1 mA is 6.25% of span. 8 mA is 25%, 12 mA is 50%, 16 mA is 75%.

The formula, step by step

The 4-20 mA formula as four steps: subtract 4, divide by 16, multiply by span, add the lower range value
The 4-20 mA formula as four steps: subtract 4, divide by 16, multiply by span, add the lower range value
  1. Subtract the live zero: I - 4.
  2. Divide by the current span: (I - 4) / 16. This is the fraction of range, 0 to 1.
  3. Multiply by the process span: x (URV - LRV).
  4. Add the lower range value: + LRV.

Percent of span is step 2 multiplied by 100: % = (I - 4) / 16 x 100.

The reverse formula: value to mA

Going the other way is the same straight line read backwards:

  1. Subtract LRV from the value: PV - LRV.
  2. Divide by the span: (PV - LRV) / (URV - LRV).
  3. Multiply by 16 and add 4.

You need the reverse when you simulate a value with a loop calibrator, set an alarm on the transmitter itself, or work out what an analog output must send to a valve positioner for a given opening.

Worked example 1: pressure

A pressure transmitter is ranged 0 to 10 bar. The multimeter in series reads 13.6 mA.

  • 13.6 - 4 = 9.6
  • 9.6 / 16 = 0.6 (60% of span)
  • 0.6 x 10 = 6
  • 6 + 0 = 6 bar

Reverse: the process engineer wants a high alarm at 7.5 bar. 7.5 / 10 = 0.75; 0.75 x 16 = 12; 12 + 4 = 16 mA.

Worked example 2: level

A DP level transmitter on a vertical tank is ranged 0 to 4,000 mm. It reads 9.2 mA.

  • 9.2 - 4 = 5.2
  • 5.2 / 16 = 0.325
  • 0.325 x 4,000 = 1,300 mm

If the tank is a vertical cylinder 2.5 m in diameter, the volume is pi x 1.25² x 1.3 = about 6.38 m³. The mA gives you height; the tank geometry gives you volume. For a horizontal cylinder the height-to-volume relation is not linear, which is why PLCs use a strapping table there.

Note that a DP transmitter measures pressure, not height. Liquid density is taken into account when the transmitter is ranged (the 20 mA point is set at the pressure that 4,000 mm of that liquid produces). If the liquid changes, the range must change too, or the level reading is wrong even though the formula is right. Our post on calibrating a pressure transmitter covers how the range points are checked.

Worked example 3: temperature with a negative range

A temperature transmitter is ranged -50 to 150 °C. It reads 12 mA.

  • 12 - 4 = 8
  • 8 / 16 = 0.5
  • 0.5 x 200 (the span, 150 - (-50)) = 100
  • 100 + (-50) = 50 °C

The common wrong answer is 75 °C, from taking half of 150. It forgets that the range starts at -50. Another check: 6.4 mA gives (2.4 / 16) x 200 - 50 = -20 °C, and 0 °C needs 4 + 16 x (50 / 200) = 8 mA.

One exception: square-root flow

An orifice plate or DP flow element produces a differential pressure proportional to the square of flow. If the transmitter outputs linear DP (no square-root extraction), then flow % = square root of DP %. At 12 mA, DP is 50% but flow is about 70.7%. Check whether square-root extraction is done in the transmitter or in the PLC, and make sure it is done exactly once. Doing it twice, or not at all, is a classic commissioning fault.

Lookup table: mA, percent and raw counts

Lookup table of 4, 8, 12, 16 and 20 mA against percent, a 0-10 bar range, a -50 to 150 C range and raw PLC counts
Lookup table of 4, 8, 12, 16 and 20 mA against percent, a 0-10 bar range, a -50 to 150 C range and raw PLC counts
mA% of span0-10 bar-50 to 150 °CSiemens S7 countAB 1769 eng. units
400-5004000
8252.5069128000
12505501382412000
16757.51002073616000
20100101502764820000

Raw PLC counts by brand

The PLC never sees milliamps. The analog card converts the current to an integer, and your program scales that integer. The general formula is the same straight line:

count = rawLo + (I - 4) / 16 x (rawHi - rawLo), and PV = LRV + (count - rawLo) / (rawHi - rawLo) x span.

Platform4 mA20 mANotes
Siemens S7-1200, S7-1500, S7-300027648Overrange up to 32511 (about 22.8 mA), undershoot down to -4864 (about 1.185 mA)
Allen-Bradley 1769 Compact I/O, Engineering Units format400020000One count per microamp, so the raw value reads like a meter
Allen-Bradley 1756 ControlLogix analogset in configset in configThe module can scale to floating-point engineering units you enter
Mitsubishi FX and Q seriesmode-dependentmode-dependentThe input mode sets the digital range; read the module manual
Generic 12-bit card04095Typical of low-cost modules
Generic 16-bit signed032767Offered as a preset in our calculator

Why does Siemens use 27648 rather than 32767? It leaves room above and below the nominal range, so the card can still report a value for a signal slightly over 20 mA or under 4 mA before it declares overflow or underflow. In TIA Portal the usual way to scale is NORM_X then SCALE_X; our NORM_X and SCALE_X guide walks through it with the same numbers. Raw ranges also depend on how the channel is configured, so check the card's manual before trusting any table, including this one.

Worked count example: a Siemens card on the 0 to 10 bar transmitter reads 20736. 20736 / 27648 = 0.75, so the pressure is 7.5 bar and the loop current is 16 mA.

NAMUR NE43: when a reading is a fault

A 4-20 mA signal can carry a fault, but only if the transmitter and the PLC agree on where the fault zone starts. NAMUR recommendation NE43 is the convention most transmitters follow:

CurrentWhat it means
3.8 to 20.5 mAMeasurement range. The value is valid, including slight under- and over-range of the process
3.6 to 3.8 mABelow range. The transmitter is saturated low, but has not declared a failure
20.5 to 21.0 mAAbove range. Saturated high, not yet a failure
3.6 mA or lessFailure signal, low (downscale alarm)
21.0 mA or moreFailure signal, high (upscale alarm)
About 0 mANo loop current: open wire, blown fuse or no 24 V supply
Checklist of NAMUR NE43 limits and how a PLC should react to each current band
Checklist of NAMUR NE43 limits and how a PLC should react to each current band

In the PLC, that means: clamp or flag values between 20 and 20.5 mA rather than showing 103% as if it were real, raise a "transmitter fault" alarm at or below 3.6 mA and at or above 21 mA, and decide what the logic does with a failed signal (hold last value, go to a safe state, or switch to a redundant transmitter). Whether a failed transmitter drives low or high is usually a jumper or setting on the transmitter, so check it matches what the logic expects. When the reading looks wrong and it is not obviously a fault, our 4-20 mA loop troubleshooting guide gives the measurement order.

Using the free calculator

The 4-20 mA Scaling Calculator needs no sign-up. You enter:

  • Range low and range high, the values at 4 and 20 mA, and a unit (bar, °C, m³/h, anything).
  • The direction: mA to value, value to mA, or percent to mA.
  • The analog card's raw range: Siemens S7 (0-27648), 16-bit signed (0-32767), or Custom, where you type the counts at 4 and 20 mA (use 4000 and 20000 for an Allen-Bradley card in engineering-units format).

It returns the current, percent of span, the engineering value and the raw count, and warns you when the current is below 3.8 mA or above 20.5 mA.

Mistakes that cost an afternoon

  1. Forgetting the LRV. Any range that does not start at zero (-50 to 150 °C, 2 to 12 bar) breaks the "percent of URV" shortcut.
  2. Scaling twice. The transmitter is ranged 0-10 bar, the card is set to engineering units, and the PLC code scales again. The HMI then shows nonsense that is "nearly right".
  3. Square-root in two places, or in neither, on DP flow.
  4. Mixing up the card's range. Using 32767 in the code when the Siemens card reports 27648 makes every reading about 16% low.
  5. Ignoring the fault zone. A loop sitting at 3.5 mA is a fault, not "slightly below zero".

Learn it free

The free Instrumentation for PLC Engineers course covers converting between milliamps, percent and engineering units, scaling with NORM_X and SCALE_X, alarming on the scaled value, and holding a safe state when the signal cannot be trusted. If you are starting from zero, Industrial Instrumentation and Process Control covers pressure, level, flow and temperature measurement and the 4-20 mA calculation in both directions, including square-root flow. For the PLC side in depth, see Siemens TIA Portal PID Compact and Analog Processing. All three are free to learn with an account; the EDWartens Certificate of Completion is optional.

Frequently asked questions

Q: What is the formula to convert 4-20 mA to engineering units?
A: PV = LRV + (I - 4) / 16 x (URV - LRV), where LRV and URV are the values at 4 mA and 20 mA. For 12 mA on a 0 to 10 bar transmitter, that is 0 + 8 / 16 x 10 = 5 bar.

Q: What percentage is 12 mA in a 4-20 mA loop?
A: 50%. Each milliamp is 6.25% of span, so 8 mA is 25%, 12 mA is 50% and 16 mA is 75%.

Q: Why does Siemens use 27648 for 20 mA?
A: The S7 analog cards map the nominal range to 0 to 27648 and keep the counts above and below it for overrange and undershoot, up to 32511 and down to -4864 on a 4-20 mA channel. That lets the card report a slightly out-of-range signal before it declares a fault.

Q: What does 3.6 mA or 21 mA mean on a transmitter?
A: Under NAMUR NE43, 3.6 mA or less and 21 mA or more are failure signals from the transmitter. The valid measurement range is 3.8 to 20.5 mA.

Q: How do I convert mA back to a value with a negative range?
A: Use the same formula with the real LRV. On a -50 to 150 °C range, 12 mA is -50 + 0.5 x 200 = 50 °C.

Learn this, free

The courses that teach this

Every lesson, the written notes and the practice are free with an account. Only the certificate is optional and paid.

Start Your Engineering Career at EDWartens

Join as a Junior Engineer at Wartens Automation Pvt Ltd. Get hands-on PLC SCADA training, a Wartens Experience Certificate, and a job guarantee with a fee refund (conditions apply).