What do ladder contacts and coils do?
Think of a ladder diagram as a series of conditions evaluated by the controller. A normal open-style contact tests whether its assigned Boolean expression is true. A negated or normally closed-style contact tests whether that expression is false. A coil writes a Boolean result according to the vendor language and instruction semantics. The symbols do not, by themselves, tell you how a field switch is wired.
| Illustrative symbol | Meaning in a basic Boolean rung | Common beginner mistake |
|---|---|---|
--[ A ]-- | Condition A is true | Assuming A must be a physically normally-open pushbutton |
--[/ B ]-- | Condition B is false | Assuming it identifies the wiring of the field device |
--( C )-- | Stores the evaluated result in C in this simplified example | Confusing a program output with a verified machine-safe output |
Series conditions represent logical AND; parallel branches can represent OR. Most environments also provide timers, counters, comparisons and function blocks. Controller scan behavior, duplicate coil handling, retained values and special instructions vary by vendor, so check the actual programming manual.
The current IEC 61131-3:2025 specification defines ladder diagram alongside structured text and function block diagram. A Schneider Electric language reference provides a readable description of contacts, coils and LD networks.
Example: an imaginary tank-fill request
This single rung calculates a simulated request flag. It does not start a pump or control hardware. Suppose the training screen has two independent Boolean variables: Level_Low indicates a request to fill, and Level_High indicates that the high threshold is reached.
LEFT RAIL RIGHT RAIL |----[ Level_Low ]----[/ Level_High ]----( Fill_Request )----| Boolean equivalent: Fill_Request := Level_Low AND (NOT Level_High);
Because the two contacts are in series, the flag is true only when Level_Low is true and Level_High is false. This logic intentionally contains no latch, automatic refilling strategy, physical level instrumentation or safety system. It is a beginner’s Boolean example, not a complete process-control strategy.
Predict the truth table before running it
| Level_Low | Level_High | Fill_Request | Why? |
|---|---|---|---|
| False | False | Off | The low-level request is absent. |
| True | False | On | Low-level request is present and high-level indication is absent. |
| True | True | Off | High-level indication blocks the request. |
| False | True | Off | The low-level request is absent; high-level indication also blocks it. |
In particular, the pair Level_Low = true and Level_High = true is intentionally shown in this exercise. Conflicting sensor values can be an important diagnostic scenario; a real design needs an explicit specification for instrument failures rather than silently accepting this illustration as adequate protection.
Try a safe, repeatable simulator exercise
- Write a one-sentence specification: the request flag is true only when the low condition is true and the high condition is false.
- Create three Boolean tags:
Level_Low,Level_HighandFill_Request. Use simulator-only tags disconnected from physical I/O. - Implement the equivalent rung: use one direct condition, one negated condition and one output flag. Vendor symbols and instruction names may differ.
- Test every truth-table row: record expected versus observed values; then invert one condition to observe an intentional failure and restore the correct version.
- Document your work: save a screenshot, a tag list, the four test results and a short paragraph explaining why it works and what it does not protect against.
Do not connect this exercise to field outputs, bypass safeguards, change a production controller, or treat normal program logic as a safety-rated circuit. Physical training hardware requires appropriate qualified instruction and safe isolation procedures.
What should you learn after one rung?
Next, practice OR branches, seal-in/latching patterns in simulation, on-delay timers, counters, comparison instructions, state sequencing and explicit fault detection. Before connecting programming skills to plant equipment, learn electrical schematics, digital and analog I/O, HMI behavior, change control and commissioning responsibilities.
Technical sources and editorial scope
- IEC 61131-3:2025, current programming-language standard and scope.
- Schneider Electric: IEC 61131-3 programming languages, contacts, coils and networks.
This introductory example is an original teaching illustration prepared with AI assistance and checked against the references above by PLC & SCADA Jobs. It is not a vendor-certified lesson or an independently practitioner- or safety-reviewed implementation. Actual products differ; follow the official manual and a qualified training supervisor for real systems. Our job listings link to the employers’ own application destinations.