Show decimal flow values on an HMI numeric display

6 min read · Published November 7, 2026

A numeric display shows whole numbers when its scaling endpoints match the meter span in whole units. Raise the second endpoint tenfold, 4095 counts to 1000 for a 100 GPM meter, and set one fractional digit, and the panel formats tenths on its own. Keep one conversion path: scale in the panel for display-only values, or in the PLC when logic also needs the engineering units.

A numeric display shows whole numbers because its two scaling points match the meter span in whole units. The fix is a panel setting, not new ladder logic: raise the second display endpoint tenfold and set one decimal place in the object. For a 100 GPM meter on a 12-bit analog channel, that is Point 2 PLC value 4095 with Display value 1000, plus one fractional digit. The PLC program, the analog card and the transmitter keep the scaling they already have. What follows gives the exact fields, the arithmetic behind them, the three-flow check before the screen goes back into service, and the rule that keeps the conversion in one place.

What you need

  • The panel project open in its configuration software, with the numeric display object placed on the flow screen
  • The analog input channel configured for the transmitter's 4-20 mA signal, and the address where the channel writes the raw count
  • The transmitter's span in engineering units, 0 to 100 GPM in the worked example below
  • A way to download the project to the panel and an independent flow reading, such as a panel gauge or a test meter, for the final check

Set the scaling points and the decimal place

Work on the display object only. The values below follow the 0 to 100 GPM example; substitute your own span and counts in the same fields.

  1. Check the raw count first. With the process in a safe state, watch the raw count at the analog channel's address while flow changes. If the count is stuck, pegged at full scale, or moving on the wrong channel, sort that out at the card first; a display change only hides a bad input.
  2. Open the object's Scaling tab and tick the Scaling check box. Two reference points appear.
  3. Enter the points in tenths. For Point 1 PLC value enter 0 and for Display value enter 0. For Point 2 PLC value enter 4095 and for Display value enter 1000. The second display value is ten times the 100 GPM span, so the scaled result arrives in tenths and the panel can place a decimal point inside it. The same rule holds on any count range: a 16-bit channel that tops out near 32767 gets the same treatment with its own top count.
  4. Correct the low point if the channel does not start its counts at 4 mA. Some input channels park the 4 mA live zero above zero counts; on a 12-bit channel documented that way, 4 mA sits at 1024 counts, so Point 1 PLC value becomes 1024 with Display value 0 and Point 2 stays at 4095 and 1000. The channel's own configuration data gives the count to use.
  5. Set one decimal place and enough digits. In the object's digit settings, set Fractional Digits to 1 and the total digit count to 4, enough to hold 100.0. The scaled result of 1000 now renders as 100.0.
  6. Download the change, then run the three-flow check below before operators rely on the screen.

If the flow can read below zero, the two points must cover the signed range: define points on both sides of zero and test a below-zero reading before the line runs. Scale negative analog values on an HMI panel works through that arithmetic.

Worked example: 0 to 4095 counts across 0 to 100 GPM, shown to a tenth

The inputs, and where each comes from:

  • Raw span 0 to 4095 counts: a 12-bit analog channel, 0 counts at 4 mA and 4095 counts at 20 mA.
  • Meter span 0 to 100 GPM across the same 4-20 mA signal, linear, so 4 mA is 0 GPM and 20 mA is 100 GPM.
  • Display target: one decimal place, so full scale renders as 100.0.
  • Test reading: 2048 counts, a mid-span value read during a stable run.

The rule, in words: the panel interpolates linearly between the two points.

scaled tenths = (raw count - Point 1 PLC value) x (Point 2 Display value - Point 1 Display value)
 / (Point 2 PLC value - Point 1 PLC value) + Point 1 Display value

At the 2048 test reading:

(2048 - 0) x (1000 - 0) / (4095 - 0) + 0 = 2048 x 1000 / 4095 = 2,048,000 / 4095 = 500.1

The panel carries 500 tenths and, with one fractional digit, renders 50.0. The true value at 2048 counts is 2048 / 4095 x 100 = 50.0 GPM, so the screen agrees. Endpoint checks: 4095 x 1000 / 4095 = 1000 tenths, rendered 100.0 at full scale, and 0 maps to 0.0 at zero flow.

Resolution: 100 GPM spread over 4095 counts is 100 / 4095 = 0.024 GPM per count, so the tenth on screen steps about every 4 counts. The tenths digit is formatting laid over that count; the channel resolves about 0.024 GPM, and transmitter accuracy is whatever its datasheet states.

Decision: full scale needs 1000 tenths, and the four-digit ceiling of 9999 tenths (999.9 shown) sits well above it. Enter 0 and 0, then 4095 and 1000, set Fractional Digits to 1 with 4 total digit positions, and the display reads correctly across the whole span. A span whose scaled endpoint passes 9999 tenths needs more digit positions before it fits.

Check the display at three flows

Compare the panel, the raw count and an independent gauge at three flows. A single endpoint check can pass with a reversed point or a wrong address.

  • Low flow: the display shows the intended low reading, 0.0 in the example.
  • Mid flow: hold a stable reading and compare. The example's 2048 counts must show 50.0; compute your own expectation from your two points.
  • High flow: full scale shows 100.0.

Then sort any mismatch by symptom:

  • Reads ten times too high or too low. A point or the decimal place is off by a factor of ten. Recompute both endpoints and the digit settings; HMI shows the value ten times too small: fix the scaling works that symptom in detail.
  • Right at the endpoints, off in the middle. Check that the transmitter span is linear across its range and that the object reads the channel's address.
  • Scaled value drifts against the channel. Compare at the raw count before adjusting anything; why the scale value differs from the PLC analog input covers that comparison.
  • Shows 1000 where 100.0 belongs. The fractional-digit setting did not take. One panel manual documents the exception in these words: "the number of fractional digits will come from the value of the tag." Where your manual carries that note for the object, set the decimal where the tag value is written; move an HMI numeric entry decimal point from a PLC tag shows that layout.
  • Last digit flickers. The raw count itself is moving. Check signal wiring and the channel's filter setting before smoothing the displayed value.

Keep the conversion in one place

Decide once who owns the scaling, the panel or the PLC, and leave the other side doing none.

Panel owns it when the screen is the only place the GPM value appears. The settings above are the whole conversion, and the ladder keeps its raw count untouched.

PLC owns it when alarms, totals or interlocks also need the GPM value. Scale once in the PLC and store the result in one address, in tenths if the screen shows a decimal; the panel then formats that address with one fractional digit and carries no scaling points of its own. Most platforms give the job one instruction; SCP instruction that scales raw data to engineering units is one documented example, and scale the engineering value once, not in both places states the rule for 4-20 mA analog values.

Mixed ownership shows up as numbers that are visibly wrong: a panel that receives an already-scaled 0 to 100 and still maps its count span to 1000 tenths converts full scale to 100 x 1000 / 4095 = 24 tenths and shows 2.4. One stored engineering-unit value also feeds a trend, an alarm and a total from the same address; the raw-versus-engineering decision behind a trend is the same one, applied in setting raw and engineering units on an HMI trend.

Recommendation: Scale in the panel when the screen is the only place the value appears: Point 1 PLC value 0 with Display value 0, Point 2 PLC value 4095 with Display value 1000 for a 100 GPM meter, Fractional Digits set to 1 with 4 total digit positions, ladder untouched. Scale once in the PLC and let the panel format the stored result when alarms, totals or control logic also need the GPM value.

Questions

How many digit positions does 100.0 need?

Four: three integer positions and one fractional. The four-digit ceiling is 9999 tenths, shown as 999.9, so a span whose scaled endpoint lands above that needs more positions. A 0 to 1000 GPM meter shown to a tenth scales to an endpoint of 10000 and needs five digit positions, so check the object's digit capacity before you download.

Can I add the decimal in ladder logic instead of the panel?

Only if the PLC is to own the scaling. Multiplying the raw count by 10 in the ladder while the panel object still maps its count span to 1000 tenths applies the factor twice, and the screen reads ten times too high. Pick one owner: panel endpoints for a display-only value, or one scaling instruction in the PLC whose result the panel formats.

What changes if the flow can run below zero?

Nothing in the method, but the two scaling points must cover the signed range. For a channel that reports signed counts from -4095 at full reverse to 4095 at full forward on a -100 to +100 GPM meter, enter Point 1 PLC value -4095 with Display value -1000 and Point 2 PLC value 4095 with Display value 1000, then check a below-zero reading before the line runs.

Planning information, not legal or engineering advice. Rules differ by place: check codes and permits with your local authority and your licensed trades.

Keep reading

Build your signAsk for a quote