Your trend shows 2100 because the PLC stores the temperature in tenths of a degree, and a trend trace plots the register word exactly as stored. Add five tenths, divide by ten into a spare register, and point the trace at that; the raw value keeps feeding control and alarms.
Your trend is doing its job: it plots the register word exactly as the PLC holds it. The control program keeps the temperature in tenths of a degree so the logic holds 0.1 °F resolution, and 2100 tenths are 210.0 °F. If your trend editor offers no scaling field on the trace, and many do not, the PLC has to supply a value that is already divided. One short rung does it: add 5 to the tenths word, divide by 10, and write the result to a spare register. Point the trace there and it plots 210. The raw register keeps feeding control and alarms untouched; the scaled copy exists only for the display. The sections below cover the checks, the rung, the rounding arithmetic, and the binary case.
Why does the trend plot 2100 when the process sits at 210 °F?
Because the register holds tenths of a degree: 2100 counts are 210.0 °F, and the trace plots the word exactly as stored. Check the trace's properties for a scale field first; when there is none, the PLC has to hand the trend a value already divided by ten.
Match what you see to a cause before touching any logic:
- Trend and data view both read ten times high. The register stores tenths. The rung in this article fixes it.
- Trend shows numbers unrelated to the temperature. The editor is reading the word in the wrong number format, BCD where the logic wrote binary or the reverse. The article on nonsense numbers from a PLC BCD analog register walks that fault.
- Scaled value looks right in the data view but the trend still plots raw. The trace address still points at the old register. Repoint it once the rung below exists.
One reading settles the cause: hold the process at a known temperature and write down the raw word. A thermometer at 210 °F with the register showing 2100 is tenths storage.
What should you confirm in the PLC before writing any logic?
Confirm three things before you write a rung: what the raw word reads at a known temperature, whether the word is BCD or binary, and which register nothing else writes. The format check alone decides between the shift and the divide.
- Trace the analog conversion to its result register. A 12-bit channel delivers 0 to 4095 counts, and the rung that maps those counts into degrees shows you where the tenths value lands; the article on why the scale value differs from the PLC analog input covers that mapping.
- Decide the format from the data view. Switch it to hexadecimal: a BCD word shows the same digits in hex as in decimal, so a stored 2100 appears as 16#2100, while binary 2100 appears as 16#0834. One glance settles BCD versus binary.
- Pick the spare register from the cross-reference, never from memory. Open the address usage list and choose a word no other rung reads or writes. The examples here use V1400 for the raw value and V2000 for the trend copy; substitute your own addresses.
How do you scale the value without touching the raw register?
Give the trend its own register: load the raw tenths word, add the constant 5, shift right one BCD digit (4 bits), and store the result. The raw register keeps driving control and alarms at full 0.1 °F precision, and the display word costs four instructions.
On confirmed BCD data the rung reads:
Those mnemonics are the form this case was written in; the same job on any platform reads load, add constant 5, divide by 10, store. Where the data is BCD, the shift replaces the divide, because removing one 4-bit decimal digit leaves the whole degrees.
Order matters. The add comes first so the dropped digit rounds the result: 2109 (210.9 °F) plus 5 gives 2114, and the shift leaves 211, the nearest degree. Skip the add and the same word plots 210, a full 0.9 °F off.
Worked example: how does 2100 become 210 on the trend?
The oven sits at 210.0 °F and V1400 holds 2100. The rung computes 2100 + 5 = 2105, shifts off the last BCD digit, and writes 210 to V2000; the trace plots 210 °F, and every result the rung produces lands within 0.5 °F of the true reading.
Step through it:
- Raw word: 2100, which is 210.0 °F held in tenths.
- Add: 2100 + 5 = 2105. The 5 sits in the tenths position.
- Shift: one BCD digit leaves the word, so 2105 becomes 210, and the discarded 5 is what turns the truncation into rounding.
- Store: V2000 holds 210 and the trace plots 210 °F.
Two boundary cases confirm the behavior. A warmer oven at 210.6 °F stores 2106; 2106 + 5 = 2111, and the shift leaves 211, the nearest degree. At the low end, 30.9 °F stores 309; 309 + 5 = 314; the shift leaves 31 °F. Without the add, both would truncate: 2109 to 210 and 309 to 30.
What changes when the register is binary instead of BCD?
Use the divide instruction, not the shift: a 4-bit shift divides a binary word by 16, so binary 2100 shifted would plot 131. Add 5 first, then integer-divide by 10, and the result still lands within half a degree of the true temperature.
The hex view told you this during the checks: 16#0834 has no decimal digits inside, so each 4-bit group is worth 16. Replace SHFR K4 with the integer divide: load the word, add 5, divide by 10, store. A reading of 213.7 °F stores 2137; 2137 + 5 = 2142; 2142 ÷ 10 = 214 with remainder 2, and the trend copy holds 214.
Unsigned 16-bit binary holds 0 to 65535, so tenths storage reaches 6553.5 before the word saturates. If the program keeps a floating-point real, divide by 10.0 once and let the trace plot the decimal; no integer rounding is needed.
How do you point the trend at the new register and check it?
Edit the trace address from the raw register to the scaled one, download during a window the line can spare, and check it at two known temperatures: 2103 raw must plot 210, and 309 raw must plot 31.
- Run the cross-reference again after the download: exactly one rung writes the spare register, and it updates every scan.
- Make the change during a window when the process tolerates a download, and confirm afterwards that alarms and outputs still follow the raw tenths register, because the display rung should write only its own word.
- Walk the trace through a rounding boundary. Warm the process past 210.5 °F and watch the plot step from 210 to 211; a truncating rung waits until 211.0 °F, so its step arrives half a degree late.
- Keep the units label honest: the trace plots whole degrees, so label it °F. If the display-side unit and scale settings confuse you, the article on setting raw and engineering units on an HMI trend covers that side.
- If the curve then runs ten times low, the divide is applied twice or the trace still sees the raw word; the mirror fault has its own article on fixing an HMI value that shows ten times too small.
Recommendation: Trend a spare register the PLC maintains. Add 5 to the tenths word, divide by 10, and point the trace at the result; use the 4-bit BCD shift in place of the divide only after the hex view has confirmed BCD digits. Keep the raw register untouched for control and alarms, and check the curve at two known temperatures before the crew relies on it.
When does a separate shop-floor screen earn its place?
When the number matters to people who never open the HMI: a wall screen beside the line can carry the current temperature or the shift's target in letters read across the floor, while the HMI trend stays the operator's tool for the curve behind it.
A trend answers the operator at the panel; it does little for a crew 20 ft away. When the temperature or the batch status concerns everyone, a shop-floor signage screen fed offline from a memory card or USB stick carries the same figure in large type. Size the type to the distance: plan 30 ft of viewing distance per inch of capital height, so a 4 in figure reads from about 120 ft. Our shop-floor signage screens take that job; the HMI keeps the curve and the wall keeps the headline.
Questions
Why add five before dividing by ten?
The 5 is half of the divisor 10, and truncating after adding half the divisor rounds to the nearest whole unit: 309 tenths becomes 31 with the offset and 30 without it. The rule scales with the divisor, so add 50 before dividing by 100, or 0.5 before dropping a decimal place.
How wrong does a 4-bit shift land on binary data?
Four bit positions divide a binary word by 16, so binary 2100 shifted right plots 131, the result of 2100 divided by 16, and a second shift would divide by 256. The shift matches divide-by-10 only where every 4-bit group holds one decimal digit, which is what BCD means.
What about temperatures below zero?
The add-five and shift rung shown here is written for positive BCD values. Negative readings need signed arithmetic, and integer division rounds negative results differently from platform to platform, so check how your PLC's divide treats signed numbers before reusing the 5-tenths offset on a below-zero process.
How large a temperature does the BCD method handle?
A 16-bit BCD word holds four digits, 0 to 9999. Stored in tenths of a degree that covers 0.0 to 999.9 °F. A process running at 1200 °F stores 12000 tenths, which overflows four BCD digits, so such programs keep binary words and use the divide instruction instead.
Planning information, not legal or engineering advice. Rules differ by place: check codes and permits with your local authority and your licensed trades.