For a straightforward setup, I recommend one BOOL tag per alarm, with a Value trigger of 1 in the HMI.
1. Back up the existing applications
Before editing:
- Save a copy of the Studio 5000
.ACDfile. - Back up the FactoryTalk View ME application using Application Manager.
- Keep the currently working
.MERruntime file. - Record the PLC address, HMI address, communications shortcut, and terminal runtime version.
2. Decide how each alarm should behave
Write down these items before programming:
| Item | Example |
|---|---|
| Alarm condition | Infeed photoeye blocked longer than 3 seconds |
| PLC alarm tag | ALM_Infeed_Jam |
| Operator message | “Infeed jam. Clear obstruction, then press Reset.” |
| Activation delay | 3 seconds |
| Clearing behavior | Condition clears automatically, or operator reset required |
| Equipment response | Activate Can Stop |
| Popup required | Yes |
| Reset permitted when | Photoeye is clear |
Acknowledging an alarm and resetting a machine fault are separate actions. Acknowledgment means the operator has seen the message. Reset changes the fault state through PLC logic.
3. Create the PLC alarm tags in Studio 5000
Under Controller Tags, create:
| Tag | Data type | Purpose |
|---|---|---|
Infeed_PE_Blocked |
BOOL | True when the photoeye is blocked |
TMR_Infeed_Jam |
TIMER | Measures how long it remains blocked |
ALM_Infeed_Jam |
BOOL | Alarm condition read by the HMI |
HMI_Fault_Reset_PB |
BOOL | Optional operator reset command |
Use controller-scoped tags for this example.
Set External Access appropriately:
ALM_Infeed_Jam: Read Only.HMI_Fault_Reset_PB: Read/Write.
Define the input meaning explicitly: Infeed_PE_Blocked = 1 must mean the beam is blocked, regardless of the physical sensor’s electrical polarity.
4. Program the alarm condition
Choose one of these approaches.
Option A: Alarm automatically clears when the condition disappears
| Rung | Instructions | Function |
|---|---|---|
| 0 | XIC Infeed_PE_Blocked → TON TMR_Infeed_Jam, PRE 3000 |
Times a continuous blockage for 3 seconds |
| 1 | XIC TMR_Infeed_Jam.DN → OTE ALM_Infeed_Jam |
Activates the alarm after the delay |
When the photoeye clears, the timer resets and the alarm BOOL becomes false.
Option B: Alarm stays latched until a valid reset
| Rung | Instructions | Function |
|---|---|---|
| 0 | XIC Infeed_PE_Blocked → TON TMR_Infeed_Jam, PRE 3000 |
Times the blockage |
| 1 | XIC TMR_Infeed_Jam.DN → OTL ALM_Infeed_Jam |
Latches the alarm |
| 2 | XIC HMI_Fault_Reset_PB → XIO Infeed_PE_Blocked → OTU ALM_Infeed_Jam |
Clears it only when Reset is pressed and the photoeye is clear |
For Option B, configure the HMI Reset button as Momentary. Keep machine-stop and restart behavior in the PLC logic.
Make sure the alarm routine is actually called by the executing program.
5. Verify PLC-to-HMI communications
In FactoryTalk View Studio ME:
- Open the HMI application.
- Expand FactoryTalk Linx—called RSLinx Enterprise in older versions.
- Open Communication Setup.
- Select the existing PLC shortcut, or create one such as
PLC. - Under Design (Local), associate the shortcut with the correct controller.
- Apply the association.
- Check Runtime (Target) and verify the controller path the terminal will use.
- Copy the Design configuration to Runtime only when that path is also correct for the terminal.
The Design configuration supports development testing; Runtime defines the terminal’s communications. A working desktop test does not prove the terminal path is correct. rockwellautomation.com
6. Add the alarm trigger
In the application tree:
- Expand Alarms.
- Double-click Alarm Setup.
- Select the Triggers tab.
- Click Add.
- Use the Tag Browser to select
ALM_Infeed_Jamthrough your PLC shortcut. - Set Trigger type to Value.
- Give the trigger a descriptive label, such as
Infeed_Jam.
For the initial setup, leave optional acknowledgment and handshake connections unassigned. Those connections require additional PLC/HMI coordination. Rockwell’s Alarm Setup editor separates trigger configuration, messages, and advanced display settings. rockwellautomation.com
7. Add the alarm message
On the Messages tab, add a row:
| Setting | Entry |
|---|---|
| Trigger | Select the trigger created in Step 6 |
| Trigger Value | 1 |
| Message | Infeed jam. Clear obstruction, then press Reset. |
| Display | Checked if you want an automatic popup |
For an automatically clearing alarm, use a message such as:
Infeed photoeye blocked longer than 3 seconds. Check for an obstruction.
The Display checkbox requests the configured alarm popup. Messages can still be recorded and shown in alarm objects when this checkbox is unchecked. rockwellautomation.com
Repeat Steps 6–7 for each BOOL alarm tag.
8. Select the popup display and enable alarms at startup
- Open the Advanced tab in Alarm Setup.
- Select the alarm display to open, commonly the existing
[ALARM]display. - Review the alarm update rate, notification hold time, and history capacity.
- Save Alarm Setup.
- Open the application’s Startup editor.
- Verify that Alarms is selected.
Both the display selection and Startup setting matter. literature.rockwellautomation.com
9. Create an operator alarm screen
Create a display named something like Alarm_Screen.
Include:
| Object | Purpose |
|---|---|
| Alarm Status List | Shows alarm status; configure for active alarms as needed |
| Alarm List | Shows alarm history |
| Acknowledge Alarm | Acknowledges the selected alarm |
| Acknowledge All | Acknowledges the applicable unacknowledged alarms |
| Return / navigation button | Returns to the operating screen |
| Separate Fault Reset button | Sends HMI_Fault_Reset_PB to the PLC, if required |
Check the alarm objects’ trigger filters so your new alarms are included.
Alarm buttons are available under Objects → Advanced → Alarm. Rockwell provides separate objects for alarm lists, status lists, banners, and acknowledgment controls. rockwellautomation.com
Do not use an acknowledgment button as your PLC fault-reset command. Wire the separate Reset button to the reset tag and let the PLC enforce reset conditions.
10. Test the complete application
Use Test Application, then verify the following with a controlled test condition:
| Test | Expected result |
|---|---|
| Alarm BOOL changes from 0 to 1 | Correct message appears |
| Alarm activates | Popup opens if configured |
| Operator acknowledges while fault remains | Alarm is acknowledged; PLC fault remains active |
| Condition clears with automatic-clear logic | Alarm BOOL returns to 0 |
| Reset pressed while photoeye remains blocked | Latched fault stays active |
| Photoeye clears, then Reset is pressed | Latched fault clears |
| Two alarms activate together | Both messages appear in the appropriate list |
| Operator navigates away and returns | Alarm status remains available |
Use a dedicated test tag or an approved commissioning method. Avoid forcing a live machine output just to test an HMI message.
11. Build and transfer the runtime application
- Save the HMI application.
- Select Application → Create Runtime Application.
- Choose a runtime version supported by the terminal.
- Create the new
.MER. - Transfer it with ME Transfer Utility or your established transfer method.
- Load and run the application on the PanelView.
- Verify the terminal’s PLC communications.
- Repeat the alarm activation, acknowledgment, clearing, and reset tests on the actual terminal.
Also check the terminal’s date and time so alarm timestamps are useful.
12. Document the finished alarms
Record each alarm’s:
- PLC tag and activation logic.
- HMI trigger type and trigger value.
- Message and popup behavior.
- Clearing and reset conditions.
- Test result, tester, and date.
If you use a DINT alarm word instead
The trigger setup changes when multiple alarms occupy bits in one DINT.
For example, if the trigger is the whole tag HMI_Alarm_Word with trigger type Bit:
| Studio 5000 bit | ME Trigger Value |
|---|---|
HMI_Alarm_Word.0 |
1 |
HMI_Alarm_Word.1 |
2 |
HMI_Alarm_Word.2 |
3 |
HMI_Alarm_Word.3 |
4 |
ME Bit trigger values are bit positions starting at 1. Use Bit to report simultaneous alarms. LSBit prioritizes the lowest active bit rather than reporting every active bit simultaneously. rockwellautomation.com
For your first implementation, the individual BOOL → Value trigger → Trigger Value 1 method will be easier to follow and troubleshoot.
#How-to-add-alarms-in-factory-talk-view-studio