You don't write timers and PID loops from scratch β Control Expert ships them as EFBs (Elementary Function Blocks): pre-built, tested, certified blocks for timing, counting, comms, maths and control. They live in the Library Manager, versioned, alongside your own DFBs. Browse the toolbox, then drive a real TON timer.
The Library Manager palette is on the left, grouped like the real thing. Click any EFB to read what it does β and the TON timer is fully live: toggle its IN and watch the elapsed time ramp to the preset, then Q go true. This is the on-delay timer behind half the logic you'll ever write.
Every EFB instance gets its own private data (just like a DFB) β so you can have fifty TONs all timing independently. The Library Manager tracks each block's version, so you upgrade the standard library deliberately, not by accident (more in the deep dives).
π§° EFB β Schneider's, written in C, certified and fast. Timers, counters, comms (READ_VAR/WRITE_VAR), PID, maths. You can't edit them; you trust them.
π§ DFB β yours, written in any IEC language (Track 04). Your machine's reusable logic. Both sit in the Library Manager side by side and both get private per-instance memory.
The discipline: build a project library of your vetted DFBs, version it, and every machine pulls from that one source. The same idea the CODESYS and Siemens academies call "library types" β one blessed copy, controlled updates.
You need to keep a fan running for 30 seconds after its start signal drops (a run-on timer). Which EFB?