Build a zero centered analog meter scale on an HMI panel

9 min read · Published November 10, 2026

An analog meter puts zero at the dial midpoint once its data type accepts negative entries: set Floating PT 32 and a Display Range of -181 to 180, turn off Tick Numbers, and print the compass headings with static text. When one face cannot carry both halves of a full rose, stack two meters split at 271 to 90 and 91 to 270 degrees and switch visibility with one PLC bit.

An analog meter puts zero at the middle of its dial once the data type behind the object accepts a negative number. Set a signed type, enter a Display Range of -181 to 180, and north sits at the midpoint, with 181 degrees of counterclockwise travel on the left and 180 clockwise on the right. The built-in tick numbers then print signed values, so turn them off and set the compass headings with static text. When one meter cannot present both halves of a full rose, two meters stacked over one graphic and switched by a PLC bit carry the job. The steps below cover the settings, the label mapping, a worked example for an antenna rotator dial, and the checks to run before an operator trusts the needle.

Why won't the meter accept a zero centered scale?

The data type on the meter object decides it: an unsigned type such as BCD int 16 only allows positive entries in the Display Range, while a signed 32-bit floating-point type such as Floating PT 32 accepts -181 to 180 and puts zero at the midpoint.

The entry field looks like the obstacle; the type behind it decides what the field may hold. A 16-bit BCD word stores two digits per byte and carries no sign position, so with BCD int 16 selected the range only takes zero and above. Floating PT 32 is IEEE 754 single precision, 32 bits with a sign bit at the front, so the same field holds -181 with no complaint.

The type also has to match the word the PLC sends, and that is where the classic wrong-number failures live. If the meter already runs and shows a huge positive number where a small negative belongs, set the signed decimal data format before you touch the range. If it prints digits that belong to no value you recognize, the register is probably BCD read as binary, and reading a BCD analog register as plain binary walks through that case.

Record the current data type and range before you change anything, so the original display comes back in one step if you need it.

What do you need before you change the scale?

You need four things: the meter object's properties dialog with the current data type and Display Range written down, the PLC word behind the meter with its encoding, the two travel limits in degrees, and one known physical direction to test the needle against.

  • The analog meter object's properties dialog, open, with the current data type and range noted.
  • The PLC word behind the needle, its address, and its encoding: signed travel from north, or a plain 0 to 360 heading.
  • The dial's two travel limits; the rotator box this article follows stops at 181 degrees counterclockwise and 180 degrees clockwise.
  • One direction you know on site, a tower due south or a ridge due west, to hold the needle against.

If the PLC stores a plain heading, plan the conversion to a signed offset in the PLC logic before the value reaches the meter; the arithmetic is in the FAQ at the end of this page.

How do you enter a negative display range?

Open the meter's properties, switch the data type to Floating PT 32, and enter -181 as the Display Range minimum and 180 as the maximum; those two entries put north at the midpoint and leave room for the 181st degree of counterclockwise travel.

  1. Open the analog meter object's properties and note the current data type and Display Range.
  2. Change the data type to Floating PT 32. If the dialog lists other types that hold negative samples and the PLC sends an integer word, match the word; both ends of the wire have to agree.
  3. Type -181 into the Display Range minimum and 180 into the maximum.
  4. Save, run the screen, and drive the value to 0, then +90, then -90. The needle belongs at top center, then at each horizontal extreme.
  5. If the minimum still refuses the minus sign, the type is still unsigned; go back to step 2 and pick a type the dialog lets hold a negative sample.

Everything else in the object stays as it is. The needle maps the range linearly, so each degree of travel takes the same slice of the sweep and zero lands halfway without another setting.

How do you replace tick numbers with compass labels?

Turn off the meter's Tick Numbers setting and place every heading with a static text object, because a numeric tick generator prints the signed value and a compass face needs 270 and 360 where the meter would print -90 and 0.

Clear the Tick Numbers option and the printed numbers disappear while the needle keeps tracking the signed range. Add one static text object per heading, run the value out to that heading, and nudge the text until it sits where the needle points. The meter object puts tick text only where its own layout puts it; your text goes exactly where the face needs it.

The rule behind the labels: a heading east of north prints its own value, and a heading west of north prints 360 plus the signed value.

Printed label PLC value Position on the face
360 / 0 0 top center, north
45 +45 upper right
90 +90 right, horizontal
135 +135 lower right
180 +180 right end, south
225 -135 lower left
270 -90 left, horizontal
315 -45 upper left
180 -180 left end, south

Sample dial images that pair -90 with 180 and -45 with 270 were drawn for a -90 to 90 face; on a -181 to 180 face those two needle positions carry 270 and 315, so derive every label from your own range and the rule above. The same static-text move fills label gaps in other objects; adding trend plot axis labels when the widget controls are missing is the identical trick on a trend plot.

Worked example: what does the dial show at each heading?

On a dial set to -181 to 180, the needle sits on the 270 mark when the PLC value is -90, because a heading west of north equals 360 plus the signed value: 360 + (-90) = 270.

Scenario: a rotator with 181 degrees of counterclockwise travel and 180 degrees clockwise, the position arriving as a signed 32-bit float, west of north stored as a negative offset from north.

  • North stop: value 0, needle top center on the 360/0 mark.
  • Due east: +90, needle at the right horizontal, on the 90 mark.
  • Clockwise limit: +180, needle on the right-end 180 mark.
  • Due west: -90, and 360 + (-90) = 270, needle at the left horizontal on the 270 mark.
  • Counterclockwise limit: -181, and 360 + (-181) = 179, needle one degree past the left-end 180 mark. That extra degree is the 181st degree of travel the dial spec asks for.

The range spans 361 units and zero sits 181 units from the left end, half a unit right of the range's true center, which is half a degree on the face; the printed 360 mark and the needle still meet at top center. Crossing north reads -5, 0, +5 in order, so the needle sweeps through the top without a jump, and both ends of the face name south, one reached from the west side and one from the east side, the way a rotator box prints its dial.

When do you stack a second meter on the first?

Stack a second meter over the first when the face must read as one continuous compass rose: the top meter covers 271 degrees to 90 degrees, the bottom covers 91 degrees to 270 degrees, and a PLC visibility bit makes the idle pointer disappear.

A single signed face spreads the south marks across its two ends, with 135 on the lower right and 225 on the lower left, and that reads fine at arm's length. When the face has to look like the printed rose on a rotator box, south centered at the bottom of the dial and north at the top, the split does it: the bottom meter owns 91 to 270 with south at its center, the top owns 271 through 0 to 90 with north at its center.

  1. Scale a plain heading word, 0 to 359, in the PLC from the raw position signal.
  2. Feed the top meter a signed offset from north, heading minus 360 for headings 271 to 359 and the heading itself for 0 to 90, and enter -89 as its minimum and 90 as its maximum.
  3. Feed the bottom meter the plain heading held to the 91 to 270 interval, and enter 91 as its minimum and 270 as its maximum.
  4. Drive both meters' visibility from one PLC bit, on for headings 271 to 359 and 0 to 90 and off for 91 to 270, so the idle pointer disappears and one needle shows at a time.
  5. Draw a static graphic under both meters carrying the circle and the degree labels, since the meters print no numbers once Tick Numbers is off.
  6. Run the beam across 90 to 91 and across 270 to 271 and watch the handoff: one needle visible at every heading, no gap and no overlap.

The switch is the same one-bit pattern that shows two text states on an HMI from one PLC bit. Keep the visibility condition to a single tag even though the top region spans two heading intervals; using one PLC tag for an object's visibility shows why that holds.

Recommendation: Build the single-meter face first: signed type, Display Range -181 to 180, Tick Numbers off, static text labels at the marks in the table above. Add the two-meter overlay when the face has to read as a continuous printed rose, because the split puts north and south at the centers of their halves instead of at the two ends of one face.

How do you check the dial before operators rely on it?

Check five needle positions against physical directions before anyone relies on the dial: 0 at top center, +90 on the east mark, -90 on the 270 mark, +180 on the right end, and -181 one degree past the left 180 mark.

  • Drive the value to every mark in the table and confirm the needle lands on it; the five positions above plus -45 and -135 cover both halves.
  • Slew across north and watch the needle cross top center while the value reads -5, 0, +5 in order.
  • On the overlay face, run the handoff at 90 to 91 and 270 to 271 and confirm the idle meter's pointer disappears while the bit holds it off.
  • Put a second person at the antenna or use the known direction from your site list; needle and beam have to agree at two directions minimum.
  • If the position arrives as a 4 to 20 mA signal, a transmitter sagging under the 4 mA live zero, 3.8 mA for instance, reads below the bottom of scale; a minimum value on the scaled input erases that negative undershoot and parks the needle at the end of travel. Scaling negative analog values on an HMI panel covers the scaling side.
  • If some marks land right and others sit at strange values, the word encoding is mixed; why the scale value differs from the PLC analog input starts that diagnosis.

Questions

My PLC stores a plain 0 to 360 heading. What value does the meter need?

Convert to a signed offset before the value reaches the meter: headings 0 to 180 pass through unchanged, and headings 181 to 359 convert as heading minus 360, so 270 becomes -90 and 181 becomes -179. Send that word in the signed type the meter now uses, and the needle tracks through north without a jump. Keep the raw heading word too if you plan the two-meter overlay, because the bottom meter reads its plain 91 to 270 interval.

How many static text labels does a full rotator face need?

Nine: 360/0 at the top center, 45, 90 and 135 down the right side, 180 at the right end, 225, 270 and 315 up the left side, and a second 180 at the left end. Both 180 marks name the same direction, south, reached from the east side and from the west side. At 45-degree steps the face stays readable at arm's length; halve the step to 22.5 degrees only if the panel is large enough for the extra eight labels.

Can a signage display show this dial instead of the HMI panel?

No. A signage display plays stored images and video from its own player; it reads no PLC register and takes no live video input, so it cannot follow the antenna. Keep the dial on the HMI panel, which talks to the PLC. A separate signage screen earns its place on a different job: shift notices, safety messages and schedules around the building, played offline from storage.

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