Stop HMI event emails with a PLC bypass bit

8 min read · Published November 13, 2026

The panel sends cleaning-mode emails because its email events trigger on PLC bits that the bypass never touched. Put a normally closed contact on the bypass bit C3 in every rung that drives an email event bit, and run the 90-minute bypass timer in the main program where the scan reaches it. Writing 77 to DF11 and DF12 changes only what the screen shows.

If the cleaning-mode bypass you built copies 77 into DF11 and DF12 and the panel still sends emails, the reason is simple: the panel's email events trigger on PLC bits, and nothing in that bypass touched a bit. The copy changed what the screen prints. The email event reads the PLC address it is mapped to, and the rungs watching the temperature and ultrasonic sensors kept setting that address through the whole wash. The fix that works is one rung-level change: a normally closed contact on the bypass bit C3, in series, in every rung that drives an email event bit such as C5 or C7. The 90-minute bypass timer then belongs in the main program, because a timer inside a subroutine only accumulates on the scans that call that subroutine.

Why the emails kept coming

An HMI email event is event-triggered. The panel watches the PLC address behind each configured event and fires when that address turns on. DF11 and DF12 are display data: the panel reads them and prints them on screen. Writing 77 to both registers changes the printed number and nothing else.

Meanwhile the PLC rungs that compare the temperature and ultrasonic readings against their trip points keep running through cleaning, and cleaning fluid in the lines trips those comparisons easily. So the rung sets C5, C5 fires the email event, and the event pulls DF11 and DF12 into the message body. The substitute values shaped the message; they never touched the trigger.

The same rule drives the panel's other triggered behavior. A bit turns on and the panel acts, whether the action is a screen change, a text update or an email. Event-triggered screen changes on an HMI show the same pattern for screen navigation: gate the bit and you gate every action hanging off it.

Symptoms and what each points to

  • 77 shows in DF11 and DF12, and the emails still arrive. Display data was never the trigger. Find the address behind each email event in the panel's event configuration, then gate the rung that sets it.
  • C3 follows the cleaning button, and the inbox still fills. No rung that drives an email bit has an inhibit condition. Add the normally closed contact described below.
  • The bypass ends late, or never ends. The 90-minute timer sits in a subroutine that is not called on every scan, so the elapsed value moves only while the call condition holds. Watch the timer value and check the call.
  • Emails stop during cleaning and never come back. The timer's done bit never ran to clear C3, or C3 was left latched on. Monitor C3 and the timer's done bit across the whole window.
  • An email arrives while C5 and C7 are monitored off. The event is mapped to an address other than the two you are watching. Re-read the event configuration and trace each mapped address back to its rung.

Check the bypass bit and the event addresses

Two checks before you edit any rung:

  1. Select cleaning mode on the panel and watch C3 in the PLC monitor. It must turn on when you select cleaning mode and turn off when cleaning ends. If it does not follow the button, fix the panel-to-PLC write first; an inhibit built on a bit that never changes inhibits nothing.
  2. Open the email event configuration in the panel's software and read off the PLC address behind each event. In the setup this article follows, the two events map to C5 and C7. Confirm your own addresses there, because the rungs you gate are the rungs that drive those addresses.

Then watch one cleaning cycle live with C5 and C7 on the monitor. The bits turn on during cleaning just as they do in normal operation, which confirms the trigger path is live and shows you every rung that needs the contact.

The fix: a normally closed contact in every email rung

In each rung that energizes an email event bit, add a normally closed contact on C3 in series, ahead of the coil. A normally closed contact passes power flow while C3 is off and blocks it while C3 is on.

  • Cleaning mode off: C3 is off, the contact passes power flow, and every email rung behaves exactly as it did before the change.
  • Cleaning mode on: C3 is on, the contact opens, and the rung cannot energize its email bit no matter what the sensor comparisons do. No rising edge on the bit, no email.

Gate every rung that drives an email event bit. Two configured events means two gated rungs; one left open keeps sending its mail through the whole wash. One check belongs before you do this: if any of these events tells a person to act on a condition that is still dangerous during cleaning, leave that rung outside the contact and gate only the nuisance triggers that fire on cleaning fluid.

Move the 90-minute timer into the main program

A timer instruction accumulates only on scans that execute its rung with power flow at the timer input. A subroutine's instructions execute only on the scans that call it. Put the timer in a subroutine and give the call a condition that can drop out, and the elapsed value freezes between calls; the bypass window stretches far past 90 minutes or never closes.

Keep the bypass timing in the main body instead. C3 turning on enables the timer, the timer counts toward its 90-minute preset, and its done bit clears C3 at the end of the window. The main scan reaches that logic every cycle, so the elapsed value moves whenever cleaning mode is on, and the done bit always runs to close the window. Conditional logic in front of the timer decides when it counts.

If some alerts come from the PLC itself instead of the panel, the same gating rule applies at the rung that asserts the Boolean event. PLC email alerts from a Boolean event builds one of those rungs.

Keep DF11 and DF12 live

With the trigger gated at the bit, the substitute values have no job left, so delete the logic that copies 77 into DF11 and DF12. The operators watching the panel during cleaning then keep seeing the real temperature and ultrasonic readings, which is when those numbers matter most: they show when the loop has drained and the process values are coming back to normal. If the screen also has to carry a cleaning notice, do that with a screen switch on the panel and keep the process data running underneath.

Example: two email events on a washdown line

The panel has two email events configured: a high temperature event mapped to C5 and a low ultrasonic level event mapped to C7. The cleaning-mode toggle writes C3. The bypass timer runs in the main program with a 90-minute preset; 90 minutes is 5,400 seconds (90 x 60), so a seconds-based timer takes a preset of 5400.

At 10:00 the operator selects cleaning mode. C3 turns on, and on the same scan the normally closed C3 contacts in both email rungs open while the timer's enable goes true.

At 10:20 the cleaning fluid in the loop drives the temperature reading past its trip point. The comparison in the C5 rung is true, but power flow stops at the open C3 contact. C5 stays off, the panel never sees the edge, and no email goes out. The ultrasonic rung behaves the same way through the fill and drain, so C7 stays off too.

At 10:00 plus 90 minutes = 11:30, the timer's done bit clears C3. Both contacts close, the sensor comparisons take the rungs back over, and the next genuine trip sends its email as designed.

The same timer in a subroutine with a conditional call freezes instead. Suppose the call condition drops out at an elapsed value of 27 minutes: the timer holds 27 minutes for the rest of cleaning, the done bit never comes on, and C3 stays on until someone clears it by hand. Watching the elapsed value during cleaning shows the difference directly; it climbs while the subroutine is called and sits still when it is not.

Verify both modes before you call it done

  1. Cleaning mode off: monitor C3, C5, C7, DF11 and DF12. Live sensor values on screen, C3 off, and the next real trip fires its email exactly as before the change.
  2. Cleaning mode on: C3 on, and both email bits stay off for the whole window even with the sensor readings parked past their trip points. The inbox stays quiet.
  3. The window itself: watch the elapsed value climb, and confirm the done bit clears C3 at 5,400 seconds without anyone touching the panel.
  4. After the window: the next genuine trip sends its email, and DF11 and DF12 still show live values the whole time.

Two failures point away from this fix. An email during cleaning with C3 on and both bits monitored off means the event is mapped to an address you have not found; go back to the event configuration and read the mapped address again. And a genuine trip after the window that sends nothing is a delivery problem, not a gating one; sending HMI alarm emails over a cellular router covers that side of the chain.

Recommendation

Recommendation: Gate every rung that drives an email event bit with a normally closed contact on the bypass bit, run the bypass timer in the main program where the scan reaches it every cycle, and keep the sensor registers live. If your cleaning cycles vary in length, leave the bypass as a manual toggle and skip the timer; if the length is predictable, set the preset above your longest cycle so a slow wash is not cut off with the email logic already live.

A wall board for the crew is a separate job from the HMI. A shop-floor signage display plays its own show offline and cannot read the PLC, so a cleaning schedule or shutdown checklist on it is content you prepare ahead of time, and the gating above still lives in the PLC logic. Our shop-floor screens cover that kind of board.

Questions

Do I still need to write 77 to DF11 and DF12 during cleaning?

No. Once the email event bits are gated at the rung, the substitute values have no effect on the inbox and only hide the live temperature and ultrasonic readings from operators. Delete the copy logic that loads 77 into DF11 and DF12. If the screen has to show a cleaning notice, use a screen switch on the panel and keep the process values running underneath.

What happens if cleaning runs longer than the 90-minute preset?

The timer's done bit clears C3 at 90 minutes whether the line is finished or not, so the email logic comes back while cleaning fluid is still in the loop and nuisance emails resume. Set the preset above your longest measured cleaning cycle, or leave C3 as a manual toggle with no timer and have the operator close the bypass once the line is back on product.

Does the same normally closed contact stop other panel events during cleaning?

Yes. Screen changes, triggered text and banners that fire from a PLC bit all hang off addresses, and a normally closed contact on the bypass bit in the rung that sets each address blocks them for the same window. Gate each rung separately, and gate new rungs the same way when events are added later so nothing slips past the inhibit.

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