ABB PLC Lab Manual · Lab 07 of 20 · I/O Mapping & Program Transfer

Your First ABB Ladder Program: Motor Start/Stop Logic

Turn the classic start/stop circuit into ladder logic on the AC500-eco. Draw the seal-in rung, use the NC stop button correctly, add E-stop and MPCB interlocks, and run it in the on-page simulator before you download.

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

A motor start/stop in ladder uses a seal-in (latching) rung: a Start NO contact in parallel with a contact of the motor output, in series with the Stop input and the permissives, driving the motor output coil. Because the Stop button is wired NC, its input is TRUE when not pressed, so it appears as a normally open contact in the rung.

  • The parallel motor contact “seals in” the coil after Start is released
  • An NC-wired Stop is programmed with a normally open contact
  • Put every permissive (E-stop OK, MPCB OK) in series in the same rung
  • Simulate first, download second
HardwareKit (optional for this lab: simulator)
SoftwareProject with mapped I/O (Labs 5–6)
Time45 minutes

Every PLC programmer writes this circuit first, and many write it wrong: the classic mistake is an NC contact on an NC-wired stop button, which means the motor can never start. We will do it right and explain why.

Step 1: From Hardwired Circuit to Ladder

Concept 10 minutes
Hardwired elementPLC equivalentLadder symbol
Start push button (NO)DI_Start_PBNormally open contact ┤ ├
Stop push button (NC)DI_Stop_PB (TRUE when not pressed)Normally open contact ┤ ├
Contactor auxiliary contact (seal-in)DO_Motor_Run used as a contactNormally open contact in parallel with Start
E-stop / MPCB in series with coilDI_EStop_OK, DI_MPCB_OKNormally open contacts in series
Contactor coilDO_Motor_RunCoil ( )
1Press StartDI_Start_PB = TRUE
2Rung truecoil energised
3Seal-inDO_Motor_Run contact closes
4Release Startrung stays true
5Press StopDI_Stop_PB = FALSE, rung breaks

Step 2: Open PLC_PRG in the Ladder Editor

Automation Builder LD editor 5 minutes
  1. Under the application, double-click PLC_PRG. If it was created in another language, add a new POU Motor_Logic of type Program in LD and call it from PLC_PRG.
  2. Insert a new network (rung). Add a contact and type DI_Start_PB (use input assistance with F2 to pick the variable).
  3. Add a parallel contact under it and enter DO_Motor_Run.
  4. Add series contacts DI_Stop_PB, DI_EStop_OK, DI_MPCB_OK.
  5. End the rung with a coil DO_Motor_Run.
  6. Add a second network: contact DO_Motor_Run → coil DO_Start_Lamp.

Step 3: Run the Rung in the Simulator

Interactive simulator 10 minutes

Start/stop ladder simulator

Hold Start for a moment, release it, then press Stop. Try the E-stop and an MPCB trip while running.

Inputs (click / hold)
Outputs
%QX0.0 Motor run
%QX1.0 Start lamp
001 Motor start/stop with seal-inDI_Start_PB%IX0.1DI_Stop_PB%IX0.2DI_EStop_OK%IX0.0DI_MPCB_OK%IX1.4DO_Motor_Run%QX0.0DO_Motor_Run%QX0.0002 Start push button lamp shows motor runningDO_Motor_Run%QX0.0DO_Start_Lamp%QX1.0

Green contact = passing power. Orange moving wire = rung is true and the output is energised.

The same logic in Structured Text (you will meet ST properly in Lab 18):

ST
DO_Motor_Run := (DI_Start_PB OR DO_Motor_Run) AND DI_Stop_PB AND DI_EStop_OK AND DI_MPCB_OK;
DO_Start_Lamp := DO_Motor_Run;

Step 4: Build, Download and Test on the Kit

AC500-eco online 15 minutes
  1. Build the project and fix any errors (undeclared variable = typo in a tag name).
  2. Download and run (Lab 8 explains every option).
  3. Press Start: the contactor pulls in and the Start lamp lights. Release Start: it stays on.
  4. Press Stop: it drops. Press E-stop while running: it drops and does not restart when the E-stop is reset.
  5. Watch the rung online: energised parts are highlighted, exactly like the simulator.
Expected result: the motor starts only with Start, stays on after release, and stops with Stop, E-stop or an MPCB trip. It never restarts by itself.

Practice Exercise

Exercise

Add a second Start button at the conveyor (DI_Start_PB2) and a second Stop button (DI_Stop_PB2, NC). Decide which go in parallel and which in series, then test both in the simulator logic on paper.

Troubleshooting

SymptomLikely causeFix
Motor never startsNC contact used for an NC-wired stop buttonUse a normally open contact for DI_Stop_PB
Motor stops when Start is releasedSeal-in contact missing or wrong variableParallel contact must be DO_Motor_Run
Motor restarts after E-stop resetStart PB stuck or wired NCCheck DI_Start_PB is FALSE at rest
Build error: identifier not definedTypo or variable not mappedUse F2 input assistant to pick the mapped variable

Frequently asked questions

What is a seal-in contact in ladder logic?

A contact of the output placed in parallel with the Start button so the rung stays true after Start is released. It replaces the auxiliary contact used in hardwired start/stop circuits.

Why use a normally open contact for an NC stop button?

The NC button gives TRUE when not pressed. A normally open contact passes power when its input is TRUE, so the rung works normally and opens when Stop is pressed or a wire breaks.

Should I use SET/RESET coils for start/stop?

You can, but a seal-in rung is easier to read and automatically drops on power loss. Use SET/RESET when the state must be held across many rungs.

Which languages does Automation Builder support?

The IEC 61131-3 languages: Ladder (LD), Function Block Diagram (FBD), Structured Text (ST), Instruction List (IL) and Sequential Function Chart (SFC), plus CFC.

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