Studio 5000 Logix Designer ยท ControlLogix ยท the execution model

The Controller Organizer

Open any Logix project and you meet the same tree: the controller holds Tasks, tasks hold Programs, programs hold Routines. One Continuous task runs forever in the background; Periodic tasks cut in on a fixed clock; Event tasks fire on a trigger. Click through the tree and watch the scheduler run it.

๐Ÿ”ด Continuousโฒ๏ธ Periodic๐Ÿ”” Event
01 ยท The tree, running

Tasks โ†’ Programs โ†’ Routines

The left is a real Controller Organizer for a palletizing line. Click a Task to expand it. The scheduler on the right shows the truth: MainTask (continuous) runs whenever nothing else needs the CPU, while Pack_10ms (periodic) preempts it every 10 ms โ€” the highlighted routine is executing right now. Continuous doesn't mean "uninterruptible," it means "fills the gaps."

scheduler โ€” newest on the rightscans: 0

MainTask (continuous) Pack_10ms (periodic) Fault (event)
MainTask scan: ~6 ms

Notice the yellow periodic slices land on an exact 10 ms grid โ€” Logix guarantees their timing by preempting the continuous task. If a periodic task can't finish before its next due time, you get a task overlap fault: the classic Logix performance trap.

02 ยท Tag scope

No addresses โ€” and scope is everything

Logix has no %I0.0. Every value is a named tag with a data type, and the question that matters is scope: a controller-scoped tag is global โ€” any program can read it. A program-scoped tag is private to its program, so two programs can both have a Step tag that never collide. Tap to compare.

๐ŸŒ CONTROLLER-SCOPED

Visible to every program โ€” use for shared things: LineSpeed, EStop_OK, produced/consumed tags, and all I/O tags. One source of truth across the whole controller.

๐Ÿ”’ PROGRAM-SCOPED

Private to one program. Infeed.Step and Palletizer.Step are different tags โ€” reuse the same program twice and its locals never clash. Encapsulation, the Logix way.

This is why an Add-On Instruction (next track) is so clean: it carries its own local tags, so dropping it 50 times never pollutes the controller tag database.

03 ยท Check yourself

The overlap trap

You put heavy logic in a 10 ms Periodic task, but it takes 12 ms to execute. What happens?