How to make an HMI button blink when the panel has no blink option

6 min read · Published November 15, 2026

The compact panel's button object has no blink property. Build the flash from two stacked, identically configured buttons whose visibility alternates on one PLC phase bit and its inverse, so exactly one stays touchable at every instant. Use a single visibility object for pure state, or the backlight and a function-key LED for pure attention.

Build the blink from one repeating timer and two buttons. Stack two identical buttons at the same coordinates, toggle one PLC phase bit every 500 ms, drive the bright button's visibility from phase bit = 1 and the dim button's from phase bit = 0, and exactly one button is on screen and touchable at every instant. The two shades read as a blink, and the command never disappears. There is no blink setting to hunt for: the compact panel's button object simply has none. If the flashing object only indicates a state, one object on visibility is enough. If it only needs to grab attention, the backlight or a function-key LED is the cleaner cue. This page walks the two-button method end to end.

Do not spend a shift searching for it. The compact panel line and the full-size line are programmed in two different editors, and a project from one will not open in the other. Object properties do not carry across, and blink is one of them: the full-size line's objects carry a blink property, the compact line's button does not. Where the property does exist it brings its own faults, such as a blink color that turns blue instead of flashing. Open the button's property pages, check appearance and animation once, then stop searching and start building.

Two different jobs hide behind the phrase "blinking button". A command the operator must press. An indication the operator only reads. The method follows the job.

Method Touch target in the dark phase Use it for
Stacked pair on one phase bit Present A command the operator must press while it blinks
Single object on visibility Absent An indication of state only
Multistate bitmap over a steady button Present where the overlay passes touch Flashing a graphic while the button stays unchanged
Backlight or function-key LED blink Button never changes Pure attention

The stacked pair is the only method that keeps a touch target on screen through every phase, so it is the one for anything the operator presses.

What you need

  • The HMI project open in the editor for that panel line.
  • Access to the PLC program, for one repeating timer and one discrete bit.
  • The finished button, with its label sized to the reading distance.
  • Two shades of one color, a bright and a dim.

Size the label before you copy anything. Capital height in inches is the viewing distance in feet divided by 20, the safer figure for fast reading; 30 ft per inch of letter height is the FHWA planning figure for good light and a settled reader. A label that wraps to two lines gets line spacing of 1.7 times the capital height.

Build the pair: two buttons, one phase bit

  1. Open the button's property pages and confirm there is no blink property under appearance or animation. One look settles it.
  2. Size the label: capital height = viewing distance in feet ÷ 20 ft per inch. Round up to the next font size the editor offers.
  3. Copy the finished button and paste the copy at the same X and Y coordinates. Change the fill shade only: bright on one, dim on the other. Size, label, touch target and command stay identical.
  4. In the PLC, add a repeating timer that toggles one discrete bit, the phase bit, and reset that bit to false on the first scan. Toggle a latched bit; do not ride visibility on the timer's done bit, whose short pulse is a separate subject covered under button visibility gated on a PLC timer done bit.
  5. Set the bright button's visibility to phase bit = 1 and the dim button's visibility to phase bit = 0. One tag now drives two opposite conditions, the mirror of using one PLC tag for an object's two visibility conditions.
  6. Point both buttons at the same command bit, the pattern in making an HMI button turn on a PLC output through a command bit. Permissives and interlocks stay in the PLC, untouched.
  7. Set the timer preset to 500 ms per phase. A full cycle then runs 500 ms + 500 ms = 1.0 s, and each phase stays open long enough for a press aimed inside it to land. Lengthen the preset if the flash reads as flicker on the floor; shorten it if operators walk past it.
  8. Download the PLC program and then the HMI project, so the phase bit exists before the screen asks for it.

Example: a flashing start button read from 10 ft

Inputs: the operator stands at the guard 10 ft from the panel, measured on site. A forklift aisle runs 30 ft from the same screen. The legibility figure is 20 ft per inch of capital height for fast reading. The timer preset is 0.5 s per phase.

Rule: capital height = viewing distance ÷ 20 ft per inch. Full cycle = 2 x the preset.

Arithmetic:

  • Operator at the guard: 10 ft ÷ 20 ft per inch = 0.5 in capitals.
  • Aisle reader: 30 ft ÷ 20 ft per inch = 1.5 in capitals. Take the larger: 1.5 in.
  • Cycle time: 0.5 s + 0.5 s = 1.0 s, and 60 s ÷ 1.0 s = 60 full cycles per minute.

Result: one start button with 1.5 in capitals, bright shade when the phase bit is 1, dim shade when it is 0, flashing 60 cycles a minute.

Decision: the touch target exists in both phases, so the start command is available at every instant, and the PLC still gates it with its own permissives. If this button only indicated "line stopped", a single object on visibility at the same 1.5 in capitals would do the job with half the objects.

Check it before the shift sees it

  • Force the phase bit to 1: the bright button shows and the dim one hides. Force it to 0: the reverse. Never both hidden, never both visible.
  • Press the button in both phases. Each press issues one command and behaves like the original single button.
  • Cycle panel power and restart the PLC. The phase bit comes back false, so the dim button is the one on screen. Startup visibility has traps of its own; see a white screen at startup traced to OFF-state visibility objects.
  • Watch the phase bit and both buttons online for a full minute. The alternation holds with no gap in which no touch target exists.

When another cue does the job

For pure attention, the panel-level cues skip object work entirely. Blink the whole backlight, or blink a function-key LED: on lines that expose the control, the key LEDs are driven from a control word that a function object reads from the PLC, so the key flashes beside the button. These cues are common on shop-floor screens because the button itself never changes and no touch timing is at stake.

An overlay is the other route: leave one steady button in place and blink a multistate bitmap on top of it, so the graphic flashes while the button stays live behind it. Whether an overlay passes touch through depends on how that editor stacks objects, so test a press on the actual panel before the screen goes live.

One safety point

The pair is one command in two skins. Every permissive, interlock and anti-repeat condition stays in the PLC, and a press on either shade meets all of them. A blinking button pulls the eye and invites a press; the PLC logic decides what that press does. Never use the second button to route around an interlock: it writes to the same command bit the original did.

Recommendation: build the stacked pair whenever the blinking object must accept a press, with one phase bit toggled by a repeating timer at 500 ms per phase and the label sized at 20 ft of viewing distance per inch of capitals. Use a single object on visibility when the flash only indicates a state, and the backlight or a function-key LED when the only job is to catch the operator's eye.

Questions

Can the visibility ride on the timer's done bit instead of a toggled bit?

It can, but the done bit of a self-resetting timer is true only for the brief reset interval, so the bright phase lasts a fraction of the preset while the dark phase lasts the whole preset, and the flash looks lopsided. Toggle a latched bit each time the timer finishes and use that bit for visibility, so each phase runs a full 500 ms preset.

Can I blink an outline and leave the button steady?

Yes. Put a border or frame object just behind the button and switch its visibility or color on the phase bit, keeping the button itself visible in both phases. Operators press the same target at every instant, and you configure one blinking object instead of two command buttons. It suits attention cues better than state changes.

Which shade should show when the phase bit is false or stuck?

Put the dim, ordinary shade on the false state and reset the phase bit to false on the PLC's first scan. The screen then starts on the calm button, and if the blink ever stops, what is left is a normal-looking, pressable button instead of a frozen bright flash.

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