Tags
Tag Path Format
Allen Bradley PLCs expose data as "tags" with hierarchical paths.
Globally Scoped Tags:
AssemblyIndex
Module10.ModeAuto
Module10.PositionAxis[2]
Locally Scoped Tags (within program):
Program:Station1.FaultNumber
Program:Station1.Values.Reals[0]
Data Types:
- Booleans, integers, floats, strings
- Simple types and complex structures
- Arrays and nested objects
Choosing Which Tags to Collect
One of the most common questions we hear is: "What tags does MachineMetrics need?"
The short answer is: very few. The better question is: what do you want to see?
What MachineMetrics Needs
To report utilization and production, MachineMetrics only needs three data items:
| Data Item | What It Tells Us | Typical Tag Type | Example Tag Names |
|---|---|---|---|
| Execution | Is the machine actively producing right now? | BOOL | Machine_Running, In_Cycle, Auto_Active |
| Part Count | How many parts have been completed? | DINT (cumulative counter) | Part_Count_Total, Parts_Produced |
| Part Name | What part, job, program, or recipe is running? | STRING | Part_Number, Recipe_Name, Program_Name |
That is all MachineMetrics requires. Everything beyond this is up to you.
- Execution should only be true when the machine is actually producing. A tag that stays on while the machine sits idle (for example, waiting on upstream equipment) will overstate utilization.
- Part Count should be a cumulative counter that increments once per good part. Avoid counters that reset every batch, and avoid noisy sensor signals (such as a part present switch) that can trigger more than once per part.
- Part Name can be a part number, job number, program name, or recipe name. Use whichever best identifies what is being produced.
What You Should Collect
An Allen Bradley PLC can run almost any type of equipment, so there is no standard tag list. A furnace, an assembly line, and a coating system will have completely different tags, and the useful data on each is completely different too.
Start by asking: what questions do we want this data to answer?
- Why is the machine stopping? → fault codes, alarm bits, downtime reasons
- Are we producing good parts? → reject counts, inspection pass/fail, measurements
- Is the process running within spec? → temperatures, pressures, flows, speeds
- When does equipment need maintenance? → cycle counters, tool or consumable counters
Then work with your controls engineer or machine integrator to find the tags in the PLC program that answer those questions.
Example Tag Sets by Application
These examples show the kind of data customers commonly collect beyond the minimum. Your tag names will be different.
Heat Treat Furnace
| Data | Example Tags | Why It Matters |
|---|---|---|
| Zone temperatures | Zone1_Temp, Zone2_Temp, Setpoint_Temp | Verify parts are processed in spec |
| Atmosphere / pressure | Furnace_Pressure, Gas_Flow | Process consistency |
| Recipe | Recipe_Name, Recipe_Step | Traceability per load |
| Alarms | Over_Temp_Alarm, Door_Open | Downtime and quality root cause |
Assembly Line
| Data | Example Tags | Why It Matters |
|---|---|---|
| Station status | Station1_Running, Station1_Starved, Station1_Blocked | Find the bottleneck station |
| Part present / complete | Part_Present, Cycle_Complete | Count and track flow through the line |
| Rejects | Reject_Count, Reject_Reason_Code | Quality tracking and Pareto of failure points |
| Station faults | Station3_Fault_Code, Press_Fit_Fail | Identify where and why failures happen |
Coating or Vacuum Process System
| Data | Example Tags | Why It Matters |
|---|---|---|
| Chamber pressure | CCH_Baratron_Pressure | Process verification |
| Heater zones | HCH1_TC1_Temp, HCH1_TC2_Temp | Temperature uniformity |
| Gas flow | MFC1_Flow, MFC2_Flow | Process consistency |
| Recipe | Recipe_Name, Program_Number | Traceability per run |
Paint Booth / Environmental Monitoring
| Data | Example Tags | Why It Matters |
|---|---|---|
| Temperature and humidity | Booth1_Temp, Booth1_RH | Finish quality depends on conditions |
| Differential pressure | Booth1_DP_Supply, Booth1_DP_Exhaust | Airflow and filter condition |
Automated or Robotic Cell
| Data | Example Tags | Why It Matters |
|---|---|---|
| Cell state | Cell_Auto, Cell_Faulted, Robot_Waiting | Separate machine time from handling time |
| Program | Program_Name | Track what is running |
| Faults | Robot_Fault_Code, Safety_Fence_Open | Downtime root cause |
Presses, Forming, and Finishing Equipment (stamping, orbital forming, swaging, tumbling)
| Data | Example Tags | Why It Matters |
|---|---|---|
| Stroke / cycle counter | Stroke_Count, Cycle_Count | Production and maintenance intervals |
| Force or tonnage | Peak_Force, Tonnage | Quality verification per part |
| Cycle time | Last_Cycle_Time | Performance tracking |
| Faults | Fault_Code, Overload_Alarm | Downtime root cause |
What to Send Us
Once you have decided what you want to collect, send your MachineMetrics engineer a tag list including:
- The tag name exactly as it appears in the PLC (including program scope, for example
Program:Station1.Fault_Code) - The data type (BOOL, DINT, REAL, STRING)
- A short description of what the tag means
- Which tags represent execution, part count, and part name
Collect what you will act on. A focused list of meaningful tags is more useful than every tag in the PLC, and keeps the data easy to review and report on.