4–20 mA Analog Scaling Calculator
This free 4–20 mA scaling calculator turns a loop current into the engineering value your transmitter actually means — and back again. Enter the loop current and the transmitter's range, and it scales the 16 mA span linearly: 4 mA is the bottom of the range, 20 mA is the top, and everything in between is proportional. It is for controls, automation, and instrumentation engineers commissioning a transmitter, checking a PLC analog input, or working out what current a setpoint should produce. No account, no spreadsheet — the method and its limits are shown below.
Convert a loop current to its engineering value — or a value back to mA — for any transmitter range.
Linear 4–20 mA scaling only. Below 4 and above 20 mA the formula extrapolates outside the calibrated range — treat those readings as process, calibration, or wiring problems, not process values. Square-root or other transmitter curves are not modeled; verify against the transmitter datasheet and PLC scaling before commissioning.
The formula
A 4–20 mA loop is linear by design: the 4 mA "live zero" is the bottom of the range, and the 16 mA span above it covers the full range. That is the whole method — one subtraction, one proportion:
Forward (current → engineering value) Value = Low + ((mA − 4) / 16) × (High − Low) Reverse (engineering value → current) mA = 4 + 16 × ((Value − Low) / (High − Low)) Percent of span Span% = (mA − 4) / 16 × 100%
| Variable | Meaning | Where it comes from |
|---|---|---|
| mA | Loop current, in milliamps | The transmitter, a loop calibrator, or the PLC analog input reading |
| Low / High | The transmitter's calibrated range, in engineering units | The transmitter datasheet / nameplate — e.g. 0–100 psi, −50 to 150 °C |
| Value | The scaled engineering value | What this calculator returns (forward direction) |
| Span% | Where the signal sits between 4 and 20 mA | (mA − 4) / 16 — 12 mA is always 50% of span, whatever the range |
Why 4 mA instead of 0: the live zero is what makes fault detection possible. A loop reading 0 mA is not "bottom of range" — it means no current at all, which is a broken wire, a dead transmitter, or no loop power. A loop reading 3 mA is below range, not a small value. If the range started at 0 mA, a dead loop and a bottom-of-range reading would be indistinguishable.
What each input means
| Input | Unit | What breaks if you get it wrong |
|---|---|---|
| Loop current (mA) | mA | The only live measurement. A reading taken with the loop unpowered, or from the wrong channel, scales into a confident-looking wrong value — check the channel and the loop power before trusting the result |
| Engineering low | Engineering units | The value at 4 mA. This is the most common error: entering 0 when the transmitter is ranged −50 to 150 °C shifts every result by 50 °C. Copy it from the transmitter's calibration, not from a guess |
| Engineering high | Engineering units | The value at 20 mA. A re-ranged transmitter (e.g. re-ranged from 0–100 to 0–60 psi) with the old high still entered gives a proportional error across the whole span |
| Engineering unit | Text | Cosmetic only — psi, bar, °C, %, L/min — but it stops the classic mistake of scaling a pressure transmitter's output and reading it as temperature |
Worked examples
Example 1 — pressure, forward. A pressure transmitter ranged 0–100 psi reads 12 mA.
- (12 − 4) / 16 = 0.50 — 50% of span
- 0 + 0.50 × (100 − 0) = 50 psi
- Endpoints check: 4 mA = 0 psi, 20 mA = 100 psi.
Example 2 — temperature, forward, with a negative low. A temperature transmitter ranged −50 to 150 °C reads 8 mA.
- (8 − 4) / 16 = 0.25 — 25% of span
- −50 + 0.25 × (150 − (−50)) = −50 + 50 = 0 °C
- This is the example that catches the low-value error: entering 0 instead of −50 as the low would give 50 °C — wrong by the full offset.
Example 3 — reverse. What current should a 0–100 psi transmitter produce at 75 psi?
- (75 − 0) / (100 − 0) = 0.75
- 4 + 16 × 0.75 = 16 mA
Example 4 — flow, both directions. A flow transmitter ranged 0–1,000 L/min reads 18.4 mA: 0 + ((18.4 − 4) / 16) × 1,000 = 900 L/min. In reverse, 250 L/min on the same range = 4 + 16 × 0.25 = 8 mA.
What the result tells you
- Scaled value — the engineering value at the entered current, in the unit you entered.
- % of span — where the signal sits between 4 and 20 mA. 12 mA is 50% of span on every range; the span % is the quick sanity check when you switch between transmitters.
- Status — in range (4–20 mA), underrange (below 4 mA, but above 0), overrange (above 20 mA), or 0 mA (likely open loop / unpowered). An underrange or overrange reading is a real measurement outside the calibrated range, not a calculator error — treat it as a process or calibration problem, and a 0 mA reading as a wiring/power problem first.
Common mistakes
- Using 0 as the low when the range starts below zero. See Example 2: a −50 °C low entered as 0 shifts every result by 50 °C. Always copy low and high from the transmitter's calibration.
- Treating 0 mA as a valid reading. 0 mA is not the bottom of the range — 4 mA is. A 0 mA loop is broken, unpowered, or on the wrong channel.
- Scaling against the wrong range after a re-range. Transmitters get re-ranged in the field; the PLC scaling, the datasheet, and the nameplate can disagree. If the scaled value looks proportionally wrong across the span, the high value is the first suspect.
- Forgetting the loop is linear only inside 4–20 mA. Below 4 and above 20 mA the transmitter is outside its calibrated behaviour — the formula still produces a number, but it is an extrapolation, not a measurement. Flag it, don't trust it as a process value.
- Mixing up units between the transmitter and the PLC. Scaling in psi against a PLC configured in bar (or vice versa) gives a clean-looking result that is wrong by the conversion factor. The unit field on this page is there to force that check.
FAQ
How do you convert 4–20 mA to psi?
Use Value = Low + ((mA − 4) / 16) × (High − Low), with Low and High in psi. For a 0–100 psi transmitter at 12 mA: 0 + ((12 − 4) / 16) × 100 = 50 psi. The same formula works for any unit — only the range values change.
What is 12 mA in a 4–20 mA loop?
50% of span, on any range: (12 − 4) / 16 = 0.50. On a 0–100 psi range that is 50 psi; on a −50 to 150 °C range it is 50 °C. The span % is range-independent; the engineering value is not.
Why does 4–20 mA start at 4 mA and not 0 mA?
So a dead loop can be told apart from a bottom-of-range reading. 4 mA is the live zero: a loop at 0 mA has no current, which means a broken wire, a failed transmitter, or no loop power — not a process value of zero.
What does a 4–20 mA reading below 4 mA mean?
The signal is underrange — below the transmitter's calibrated bottom. Above 0 mA, that usually means the process is genuinely below range or the transmitter needs calibration. At exactly 0 mA, suspect wiring or loop power first.
How do you convert an engineering value back to 4–20 mA?
mA = 4 + 16 × ((Value − Low) / (High − Low)). For 75 psi on a 0–100 psi range: 4 + 16 × 0.75 = 16 mA. Useful when setting a calibrator or checking what current a PLC setpoint should produce.
Is 4–20 mA scaling always linear?
For a standard linear transmitter, yes, inside 4–20 mA. Some transmitters are configured for square-root extraction (common on differential-pressure flow) or other curves — if yours is, this linear formula does not apply, and the transmitter's configuration, not this calculator, decides the curve.
Related tools and reading
- Modbus RTU Timing Calculator — the other fieldbus-side check on the same project: polling, baud, and response timing.
- 24VDC Power Supply Sizer — loop-powered transmitters draw from the panel supply; check the supply still has headroom.
- EtherCAT Cycle Time
- EtherCAT PDO Size
- EtherCAT Distributed Clock Checker
- CODESYS Task & Jitter
- Enclosure Cooling
- Historian Storage
- All calculators — browse every calculator on the hub.
Scaling the rest of the loop?
The free Controls Toolkit includes editable Excel workbooks and printable PDF worksheets for system sizing, network planning, and commissioning. Free by email signup.