ABB PLC Lab Manual · Lab 12 of 20 · Ladder Programming for Machines

ABB PLC Tag Mapping and Ladder Program Structure (%MW, HMI)

Turn a pile of rungs into a program anyone can maintain. Split the conveyor into mapped POUs, number and comment networks, apply one tag naming standard, and build the status and command words that the HMI and Modbus will read.

2,500+ engineers trained 4.9/5 Google rating 21+ years, Chinchwad, Pune Real AC500-eco + ACS580 trainer kits
Lab 12 of 20 · 60 minutes · Level: Intermediate
Quick answer

Structure the AC500 program as a fixed call order in PLC_PRG: Input_Mapping, Mode_Logic, Sequence, Alarms, Motor_Logic, Output_Mapping, then HMI_Mapping. Inside each POU, one network does one job and has a comment. Use prefixes such as DI_, DO_, Cmd_, Sts_, Alm_ and HMI_ for every tag, and pack values for the HMI or Modbus into words in the memory (%MW) area or symbolic HMI tags.

  • One POU per job, called in a fixed order from PLC_PRG
  • One network = one function, with a comment that says why
  • Prefixes tell you where a tag comes from and who may write it
  • HMI and Modbus read packed words, not hundreds of loose bits
HardwareKit (CP604 HMI optional)
SoftwareLabs 7–11 logic
Time60 minutes

“Network mapping” in a PLC program means two things: how the networks (rungs) and POUs are organised, and how internal data is mapped out to the network, meaning the HMI and other devices. Both are what separate a training exercise from a maintainable machine program.

Step 1: Split the Program into Mapped POUs

Application structure 15 minutes
AC500 conveyor program structurePLC_PRG calls Input_Mapping, Mode_Logic, Sequence, Alarms, Motor_Logic, Output_Mapping and HMI_Mapping in order each scan.PLC_PRGcalls in orderInput_MappingDI_ → In_Mode_LogicAuto / ManualSequenceStep 0–50AlarmsAlm_ bits, wordMotor_LogicCmd_ bitsOutput_MappingCmd_ → DO_HMI_MappingSts_/Alm_ words
Call order within one PLC scan
Select any device in the drawing

Click any POU to see what belongs in it.

Fig. 1 One scan of the conveyor program. The moving dots show the call order.
1Read inputsCPU copies field to %I
2Input_Mappingcondition
3Mode + Sequencedecide
4Alarmsdetect/latch
5Output_MappingCmd_ → DO_
6Write outputs%Q to field

Step 2: Apply a Tag Naming Standard

Naming rules 10 minutes
PrefixMeaningWritten byExample
DI_ / DO_Physical digital input / outputHardware / Output_Mapping onlyDI_Start_PB, DO_Motor_Run
AI_ / AO_Analog input / output (raw)Hardware / Output_MappingAI_Speed_Raw
Cmd_Command from logicMotor_Logic, SequenceCmd_Motor_Run
Sts_Status for displayLogicSts_Auto_Mode
Alm_Latched alarm bitAlarms onlyAlm_MPCB_Trip
HMI_Command or value exchanged with HMIHMI or HMI_MappingHMI_Start_Cmd
Par_Setpoint / parameterHMI, retainedPar_RunOn_Time
T_ / C_Timer / counter instanceDeclared onceT_Warn, C_Parts

Tag name builder

Pick a prefix and type the device and function. The builder checks the rules and writes the declaration line.

Step 3: Organise Networks Inside Each POU

Ladder networks 10 minutes
  • Start each POU with a network that only holds a comment: purpose, author, version.
  • One network, one output: never drive two unrelated coils from one network.
  • Write the comment as the reason: “Stop motor if contactor feedback missing for 2 s”, not “Motor rung”.
  • Group networks with comment headers: Inputs used / Interlocks / Outputs.
  • Keep networks in the order they act: conditions before the result that uses them.
NetworkMotor_Logic contentComment example
001HeaderMotor_Logic v1.2: combines manual, auto and alarms into motor commands
002Cmd_Motor_RunRun forward if manual jog forward OR auto step 30, and no motor alarm
003Cmd_Motor_RevReverse only in manual jog; blocked while forward is commanded
004Sts_Motor_RunningRunning = command AND contactor feedback, for HMI and tower lamp

Step 4: Map Data to the HMI and Network as Words

HMI_Mapping 15 minutes

An HMI or a Modbus master reads blocks of words far more efficiently than hundreds of single bits. Pack bits into words in HMI_Mapping, and keep a word map document that the HMI engineer uses too.

WordBit / valueContentDirection
HMI_Status_Wordbit 0Sts_Auto_ModePLC → HMI
bit 1Sts_Manual_ModePLC → HMI
bit 2Sts_Motor_RunningPLC → HMI
bit 3Sts_Batch_DonePLC → HMI
HMI_Alarm_Wordbit 0–7Alm_ bits (Lab 13)PLC → HMI
HMI_Command_Wordbit 0HMI_Start_Cmd (pulse)HMI → PLC
bit 1HMI_Stop_Cmd (pulse)HMI → PLC
bit 2HMI_Reset_Cmd (pulse)HMI → PLC
HMI_Part_CountINTC_Parts.CVPLC → HMI
Par_RunOn_TimeINT (s)Run-on presetHMI → PLC
ST
(* HMI_Mapping: pack status bits into one word *)
HMI_Status_Word.0 := Sts_Auto_Mode;
HMI_Status_Word.1 := Sts_Manual_Mode;
HMI_Status_Word.2 := Sts_Motor_Running;
HMI_Status_Word.3 := Sts_Batch_Done;
HMI_Part_Count    := C_Parts.CV;
(* unpack HMI command bits, then clear them so they act as pulses *)
HMI_Start_Cmd := HMI_Command_Word.0;
HMI_Command_Word := 0;
Symbolic or %MW?

ABB CP600 panels can use symbolic tags imported from the PLC project, which is easiest. For Modbus TCP/RTU access from other devices, place the words in the CPU's Modbus-mapped %MW area and document the register numbers. On AC500 V2 the %MW area uses segment.offset notation (for example %MW1.0); check the CPU's Modbus address table before fixing register numbers.

Practice Exercise

Exercise

Reorganise your Labs 7–11 logic into the POU structure of Fig. 1 without changing behaviour. Prove it by running the Lab 11 checklist again. Then add HMI_Status_Word and check its value online while you operate the kit.

Troubleshooting

SymptomLikely causeFix
Output ignores HMI commandHMI_Mapping runs after Motor_LogicCall HMI_Mapping (unpack) before logic or split pack/unpack
HMI button acts twiceCommand bit not clearedClear command words after reading them
Wrong bit on HMIBit numbering differs (0- vs 1-based)Agree a word map; test each bit
Tag renamed, HMI brokenHMI used old symbol nameRe-import symbols in the HMI project

Frequently asked questions

How should I organise an ABB AC500 ladder program?

Use PLC_PRG only to call POUs in a fixed order: input mapping, mode, sequence, alarms, motor logic, output mapping and HMI mapping. Keep one function per network with a clear comment.

What is a good PLC tag naming convention?

Use a prefix for the source and owner of the tag (DI_, DO_, Cmd_, Sts_, Alm_, HMI_, Par_), then the device and function, with underscores and no spaces.

Why pack bits into words for the HMI?

Words transfer faster and keep the HMI–PLC interface small and documented. One alarm word can carry 16 alarm bits.

What does %MW mean on an AC500 PLC?

%MW is the memory word area. It is used for internal data and, on AC500, is the area that Modbus masters can read and write. Check your CPU's Modbus address table for the exact mapping.

Reviewed by Bhawesh Kumar SinghIndustrial Automation Trainer and Industry 4.0 Consultant · Softwell Automation · 21+ years industry experience

Get the full ABB PLC syllabus + free demo class

Share your details. A Softwell training advisor will call you within 24 hours with batch dates, fees and AC500 hardware access options.

No spam. Used only to share course details for this enquiry.

Practise every lab on real ABB hardware

AC500-eco PLC, ACS580 drive and HMI trainer kits: live online, Pune classroom or corporate in-plant training.

Request Course Details
Verified learning pathway

Discuss This Technical Course

Explore practical curriculum, software, hardware and batch options for this technology.

Content reviewed: 14 October 2026

ABB PLC & Automation Builder Learning Path

Follow the full 20-lab ABB AC500-eco practical series in order, or start from the ABB PLC Lab Manual hub.

  1. Lab 1: Automation Builder Installation & AC500-eco Setup
  2. Lab 2: Connect AC500-eco PLC via Ethernet
  3. Lab 3: Create a New Automation Builder Project
  4. Lab 4: AC500-eco IO Configuration
  5. Lab 5: Digital Input Mapping
  6. Lab 6: Digital Output Mapping
  7. Lab 7: First Ladder Program: Start/Stop
  8. Lab 8: Download a Program to AC500-eco
  9. Lab 9: Upload a Program from AC500-eco
  10. Lab 10: Online Monitoring, Force & Write
  11. Lab 11: Timers & Counters in Ladder
  12. Lab 12: Network & Tag Mapping
  13. Lab 13: Alarm Mapping & Fault Latching
  14. Lab 14: Tower Lamp Logic
  15. Lab 15: Emergency Stop & Interlocks
  16. Lab 16: Manual Mode Logic
  17. Lab 17: Auto Mode Sequence Logic
  18. Lab 18: Structured Text (ST) Programming
  19. Lab 19: AC500-eco to ACS580 Modbus RTU Setup
  20. Lab 20: Control ACS580 via Modbus RTU
  21. ABB AC500 PLC Selection Guide
☎ Call WhatsApp ✉ Email Enquire Now