Engineering · PLC · Project 10 of 15 · Conveyors and doors · Level 2
Part counter with batch stop
Count boxes with a photo-eye. After 5 boxes the belt stops and a lamp lights until RESET.

You will learn
A counter (CTU) adds one every time its input turns from OFF to ON. It does not count while the input stays on, so one box counts once. When the count reaches the preset the done bit turns on.
How it works
- Press START and keep pressing Put a box.
- Each box passing the photo-eye adds 1 to the counter.
- At 5 the belt stops and the lamp lights. Press RESET to start a new batch.
In real life
Packing lines, bottling plants and bag counters.
Inputs, outputs and addresses
The same signals on seven PLC brands. Inputs and outputs are numbered in order; check your own hardware and software, because addresses depend on the model and module position.
| Name | What it is | Type | Siemens S7-1200 | Allen-Bradley CompactLogix | Mitsubishi iQ-F FX5U | Delta DVP / AS | Omron CP2E | Schneider M241 | Inovance H5U |
|---|---|---|---|---|---|---|---|---|---|
| START | START push-button | Input | %I0.0 | Local:1:I.Data.0 | X0 | X0 | 0.00 | %IX0.0 | X0 |
| STOP | STOP push-button (N.C.) | Input | %I0.1 | Local:1:I.Data.1 | X1 | X1 | 0.01 | %IX0.1 | X1 |
| RESET | Counter RESET button | Input | %I0.2 | Local:1:I.Data.2 | X2 | X2 | 0.02 | %IX0.2 | X2 |
| PE | Photo-eye (ON when a box blocks the beam) | Input | %I0.3 | Local:1:I.Data.3 | X3 | X3 | 0.03 | %IX0.3 | X3 |
| CONV | Conveyor contactor | Output | %Q0.0 | Local:2:O.Data.0 | Y0 | Y0 | 100.00 | %QX0.0 | Y0 |
| FULL | Batch full lamp | Output | %Q0.1 | Local:2:O.Data.1 | Y1 | Y1 | 100.01 | %QX0.1 | Y1 |
Ladder diagram (shown for Siemens, live state)
Green wires carry power in the moment captured below. Switch the brand and the language in the simulator.
Structured text, Siemens SCL
(* Siemens S7-1200, CPU 1214C DC/DC/DC - TIA Portal - SCL *)
(* Rung 1: Run until the batch is full *)
"CONV" := ("START" OR "CONV") AND "STOP" AND NOT "C1".Q;
(* Rung 2: Count each box (rising edge) *)
"C1"(CU := "PE", R := "RESET", PV := 5);
(* Rung 3: Reset counter *)
(* Rung 4: Batch full lamp *)
"FULL" := "C1".Q;Structured text, Allen-Bradley
(* Allen-Bradley CompactLogix 5069 (L306ER) - Studio 5000 Logix Designer - Structured Text *)
(* Rung 1: Run until the batch is full *)
CONV := (START OR CONV) AND STOP AND NOT Counter1.DN;
(* Rung 2: Count each box (rising edge) *)
Counter1.PRE := 5;
Counter1.CUEnable := PE;
Counter1.Reset := RESET;
CTUD(Counter1);
(* Rung 3: Reset counter *)
(* Rung 4: Batch full lamp *)
FULL := Counter1.DN;Try this
- Watch the counter value inside the CTU block.
- Change the preset to 3.
Parts to buy
The links open a search on each store, so you see what is in stock today. Check the model, voltage and price before you order.
This is a learning tool. It teaches the logic, not the exact keystrokes of each vendor’s software. Check the manual of your own PLC.