HMI shows large positive numbers: set the signed decimal data format

6 min read · Published November 8, 2026

A panel that shows a huge positive number where the PLC holds a negative value is reading a signed 16-bit register as unsigned, so every negative reading lands 65,536 counts high: -10 becomes 65,526. Set the numeric point's data format to signed decimal, listed as signed INT 16 in many tools, and confirm against a signed-decimal data view.

When a panel answers a negative temperature with a huge positive number, the value in the PLC is almost always intact. The panel's numeric object is reading a signed 16-bit register as unsigned, and an unsigned read of any negative value lands 65,536 counts high: a true -10 °C becomes 65,526 counts. The fix is a data format change on the HMI point, to signed decimal, offered by many configuration tools as signed INT 16. Check the register in a signed data view first, change only the point's format, and confirm one negative and one positive reading before the screen goes back into service.

What the symptom points to

Match what the screen shows against this list before you open any settings.

  • Negative values sit about 65,536 counts too high, positive values correct. The point is set to unsigned decimal. Both formats read every value from 0 to 32,767 identically, so the fault stays invisible until the process first crosses zero. This page fixes that case.
  • The value tracks the process but reads ten times too large or too small. That is scaling or a misplaced decimal point, not a sign format. A trend value that reads ten times too large and decimal flow values on a numeric display each cover one of those settings.
  • The digits look unrelated to the real value. The register is probably being read in the wrong number system, most often binary coded decimal. A panel showing nonsense numbers from a BCD register is that fault, with its own format setting.
  • The magnitude is right but the minus sign is missing on a bipolar sensor. An input around zero that loses only its sign has a related fault with a distinct cause; the lost sign on bipolar RTD temperatures article covers it.

If large positive numbers appear only where negatives belong, work through the rest of this page.

Why the same bits give two numbers

A 16-bit register holds 16 bits. Signed and unsigned are two reading rules applied to those bits, and the register favors neither. Signed reading, two's complement, treats the top bit as a minus and spans -32,768 to +32,767. Unsigned reading spans 0 to 65,535. Every pattern with the top bit clear reads the same under both rules. Every pattern with the top bit set is negative when read signed and exactly 65,536 counts higher when read unsigned. A true -10 °C shows as 65,526 counts, a true -1 °C as 65,535 counts, a true -100 °C as 65,436 counts.

The panel has not added anything to your value. There is one copy of the number, and the display applied the wrong rule to it.

The same bits travel unchanged over a network. A Modbus client that reads the word as unsigned shows the identical off-by-65,536 number, and the cure there is the client's register format; a page on signed versus unsigned Modbus register interpretation works the same arithmetic for a Modbus setup.

Check the register before touching the panel

Open a data view in the PLC programming software, enter the register address, V3003 in this example, and set the view's format to signed decimal. Put it next to the loop's process-variable reading.

  • Signed data view and process variable agree: the PLC holds the right value, so the fault is the panel's data format. Go to the fix below.
  • They disagree: the fault sits upstream of the panel. The module may be writing to a different address, or the register and the displayed process value are not the same quantity. Sort that out first, because a format change at the panel would then mask a real error.

One trap catches people here: the value button on the programming toolbar can repeat the panel's wrong number, because the button applies the same unsigned reading to the address. Treat only a data view formatted as signed decimal as the reference.

Set the point to signed decimal

  1. Open the panel project in its configuration software and select the numeric object that shows the value on screen.
  2. Open that object's data format setting. A 16-bit decimal field offers unsigned decimal and signed decimal.
  3. Change unsigned decimal to signed decimal. Where the software names integer types explicitly, choose signed INT 16.
  4. Leave the address, the scaling and the PLC program untouched. The change affects interpretation only: same bits, different reading rule.
  5. Check that the format is applied to the object the operator actually sees, not to a spare diagnostic field on another screen.
  6. Transfer the project to the panel by your normal procedure and watch the live value.

Worked example: a true -10 °C displayed as 65,526 counts in V3003

Inputs.

  • Register: V3003, one 16-bit data word in the PLC.
  • True process value: -10 °C, confirmed in a signed decimal data view and matching the loop's process-variable display.
  • Panel display: 65,526 counts, read off the numeric object.
  • Panel format: unsigned decimal, the setting found on that object.

Rule. For a 16-bit two's complement word, a negative signed value S appears as S + 65,536 counts when the same bits are read unsigned. Negative signed values occupy the upper unsigned range, 32,768 to 65,535.

Arithmetic.

  • Forward: 65,526 counts = -10 °C + 65,536 counts. The panel's number matches the signature exactly.
  • Reverse: -10 °C = 65,526 counts - 65,536 counts.
  • Bits: 65,526 in binary is 1111 1111 1111 0110. The top bit is set, so a signed read is negative; negating in two's complement gives 65,536 - 65,526 = 10, so the value is -10 °C.

Result. The register holds the correct value. The display is wrong by exactly 65,536 counts, and only while the true value is negative.

Decision. A gap of exactly 65,536 counts on negative readings, with positive readings correct, is the signed/unsigned signature: set the object's data format to signed decimal (signed INT 16) and change nothing in the PLC. Values from 0 to 32,767 read identically under both formats, so the fault cannot appear until the process drops below 0 °C. That is why a screen can look perfect through a warm spell and fail on the first cold morning.

Verify before the screen goes back in service

Check the panel at both signs of the process value.

  • At a negative value, the panel and the signed decimal data view must show the same number: -10 °C and -10 °C, never 65,526 counts.
  • At a positive value, they must still agree. Positive values read the same under both formats, but the check costs one glance.
  • Confirm the object still points at V3003 and that its format now reads signed decimal.

If the sign is right but the magnitude or decimal point is off, the next setting is scaling: scaling negative analog values on an HMI panel covers that adjustment. If the panel and the signed data view still disagree after the format change and the address check, the panel is reading a different register than the module is writing, so trace the address on both ends.

Recommendation: When negative process values show as large positive numbers, format the register as signed decimal in a data view first. If that view matches the loop's process variable, change only the panel point's data format to signed decimal, choosing signed INT 16 where the type list offers it, and keep the address and the PLC program untouched. Verify one negative and one positive reading before release. Use the signed 32-bit type when the source is a double word; the offset there is 4,294,967,296 counts. Do not add an offset in the PLC to make the panel agree: a shift that satisfies the display corrupts the value for every trend, alarm and log entry reading the same register.

Questions

Does the same fix apply to a 32-bit register?

Yes, with larger numbers. A signed 32-bit integer spans -2,147,483,648 to 2,147,483,647. Read as unsigned, any negative value lands in the upper half and is off by exactly 4,294,967,296 counts, so -10 displays as 4,294,967,286. Choose the signed 32-bit type in the point's data format list and confirm it with a signed data view before changing anything else.

Can I subtract 65,536 in the PLC instead of changing the panel?

That trade moves the fault. Once the register holds a shifted value, a data view or a second panel set to signed shows the shift, and alarms, trends and logs reading the register inherit it. Fix the display's data format instead; the register should hold the true signed value.

The sign is correct now. How do I get the decimal point back?

The decimal place is a separate setting on the same numeric object. A module that reports tenths of a degree writes 155 for 15.5 °C, so set the point's decimal-place count to 1 after choosing the signed format. If the digits are wrong by a factor of ten instead, the scaling multiplier is the setting to check.

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