Learn PLCs free
Evidence-led guide3 621 words

Ladder Logic Contacts, Coils and Power Flow

Read direct and negated contacts as Boolean tests, combine series and parallel paths, understand coil writes, and troubleshoot ladder logic by scan order.

PPI
PLC Programming IO Editorial Team
Sourced guidance with documented review and correction standards

Review status: Editorially reviewed against cited IEC 61131-3:2025, Rockwell Automation, Schneider Electric, CODESYS and Siemens documentation; exact vendor instruction, controller scan, initialization, retention, I/O mapping, safety design and site procedures require verification

Direct answer

In ladder logic, a contact reads or tests a Boolean value and a coil writes a Boolean value. A direct contact (--| |--) passes the incoming rung condition when its assigned bit is 1/TRUE. A negated contact (--|/|--) passes it when the assigned bit is 0/FALSE. Contacts in series implement an AND relationship; parallel branches implement an OR relationship. The resulting rung condition reaches a coil or another output instruction on the right.

An ordinary coil normally writes both states: true rung condition writes 1, and false rung condition writes 0. A set/latch coil writes 1 only when enabled; its false rung does not undo the prior set. A reset/unlatch coil writes 0 only when enabled. Exact prescan, postscan, retention and restart behavior is controller-specific.

The contact symbol is a software test, not a physical contact specification. A negated ladder contact does not prove that the field device is physically normally closed, de-energize-to-trip, fail-safe or part of a safety function. Trace the full chain: physical state → electrical input → raw PLC bit → mapped/application bit → contact truth → rung result → coil writer → output mapping → physical feedback.

Conceptual PLC training workbench showing separate ladder rungs with a direct contact, series contacts, parallel contacts and ordinary coils
Separate rungs isolate the three foundations: a Boolean test, series AND logic and parallel OR logic; the illustration is not a physical wiring or safety circuit.

Read ladder power flow as Boolean evaluation

Power flow is a model, not electrical current

Ladder Diagram (LD) inherited the visual grammar of relay schematics: vertical rails, horizontal rungs, contact-like conditions and coil-like results. IEC 61131-3 defines Ladder Diagram as a graphical programmable-controller language. The left rail supplies a conceptual TRUE condition into a network; the software evaluates elements and connections toward the right.

No electrical current flows through a drawn software contact. Online editors often color a path green or blue to show a true rung condition, but that highlight only reports evaluated program state. It cannot prove input voltage, output current, actuator motion, network health, execution frequency or the absence of another later writer.

Ladder surface Software meaning What it does not prove
left rail starting TRUE condition for evaluating a network/rung energized control voltage exists in a cabinet
direct contact assigned Boolean is TRUE and incoming path is true physical contact is normally open or field signal is healthy
negated contact assigned Boolean is FALSE and incoming path is true physical device uses a normally closed contact
blue/green highlight editor reports true/evaluated path at that observation continuous truth between screen refreshes or physical output state
coil writes a Boolean according to its instruction semantics a physical relay coil is energized
branch alternate Boolean path combines with neighboring paths parallel field wiring exists

Separate bit state, contact truth and rung truth

Three values can be confused:

  1. Bit state is the assigned variable's current 0 or 1.
  2. Contact truth is the direct or negated test result for that bit.
  3. Rung-condition-out is contact truth combined with the incoming path and every series/parallel element before it.

A direct contact assigned to a 1 bit can still sit on a false branch if an earlier series condition is false. A negated contact assigned to 0 is true, yet the final rung may remain false because another required path is missing.

Apply the contact truth table

Direct contact tests for one

A direct contact is true when its assigned Boolean is true. Rockwell calls this XIC, Examine If Closed; other systems may call it normally open, direct contact, examine-on or simply contact. The most portable mental model is “test whether the assigned Boolean equals TRUE.”

Negated contact tests for zero

A negated contact is true when its assigned Boolean is false. Rockwell calls it XIO, Examine If Open; other systems use normally closed, inverted or negated contact. Read it as “test whether this Boolean equals FALSE,” not as a claim about field hardware.

Truth table showing direct ladder contact false at bit zero and true at bit one, with negated contact having the opposite results
Contact truth is a deterministic Boolean test: direct passes a true bit; negated passes a false bit.
Assigned bit Direct contact Negated contact
0 / FALSE false/open logical path true/closed logical path
1 / TRUE true/closed logical path false/open logical path

Translate physical devices in two steps

Suppose a pushbutton has a physical normally closed contact and the PLC input bit is 1 while the circuit is healthy. A direct ladder contact on that input is true in the healthy state. If the wire opens or the button is pressed, the input falls to 0 and the direct ladder contact becomes false. The physical NC contact led to a direct software test—not a negated one.

Conversely, a physical normally open sensor can produce a bit that is 0 until actuated. A negated contact on that bit would be true while the sensor is inactive. Physical contact form and ladder symbol are two different layers.

Layer Question Evidence source
process what real condition exists? observed state and approved process instrumentation
device what output behavior does the sensor/switch provide? exact device datasheet and wiring drawing
electrical input what voltage/current reaches the PLC point? approved qualified-person test and module documentation
raw bit what Boolean/status does the input module publish? online raw I/O data plus connection quality
application mapping is raw data inverted, buffered, filtered or quality-gated? mapping routine, alias and cross-reference
ladder contact does this instruction test TRUE or FALSE? exact vendor instruction semantics

Combine contacts with series and parallel paths

Series contacts implement AND

Two direct contacts A and B in series allow a true path only when A = TRUE and B = TRUE. Adding a negated contact changes only its operand test. For example, direct A in series with negated B means A AND NOT B.

Parallel branches implement OR

Two contacts A and B on parallel branches produce a true combined path when either branch is true. The logic is A OR B. If each branch contains series elements, solve each branch first and then OR the branch results.

Ladder logic comparison showing series A and B contacts as AND and parallel A or B contacts as OR
Series requires every condition in one path; parallel provides alternate paths. Complex networks are combinations of those two operations.
Ladder arrangement Boolean expression True cases
A then B in series A AND B only A=1, B=1
direct A then negated B A AND NOT B only A=1, B=0
A parallel B A OR B A=1 or B=1 or both
two branches: A-B and C-D (A AND B) OR (C AND D) either complete branch true
A then branch B/C A AND (B OR C) A true plus either B or C

Do not simplify a network by visual impression. Write the Boolean expression or enumerate a truth table. Pay particular attention to branches that join after an interlock: a misplaced branch can bypass a condition that was intended to constrain every path.

Understand ordinary, set and reset coils

Ordinary coil writes both true and false

An ordinary IEC coil stores the incoming Boolean result. Rockwell OTE sets or clears its target according to the rung condition. Schneider and CODESYS describe the ordinary coil similarly. Therefore the false state of the rung is an active write of false, not “nothing happens.”

This matters when two ordinary coils target the same bit: the later executed writer can overwrite the earlier result. It also matters when a routine stops executing; a bit may no longer be written in the same way, and platform-specific prescan/postscan or task behavior becomes relevant.

Set and reset coils write one state selectively

A set/latch coil writes TRUE when its rung is true and normally performs no opposite write while its rung is false. A reset/unlatch coil writes FALSE when its rung is true and normally performs no opposite write while its rung is false. They form explicit state memory only when ownership, initialization and reset paths are designed.

Timeline comparing ordinary ladder coil writing one and zero with set coil writing one and reset coil writing zero only on true rung execution
An ordinary coil follows the rung both ways; set and reset coils make one-sided writes and therefore require an explicit paired lifecycle.
Coil family True rung action False rung action Main design obligation
ordinary / direct / OTE write bit TRUE write bit FALSE exactly one final owner and known execution
negated coil write inverse of rung result also writes inverse make inversion visible and justified
set / latch / OTL write TRUE no corresponding FALSE write at this instruction every reset/initialization/recovery path defined
reset / unlatch / OTU write FALSE no corresponding TRUE write at this instruction pair with intended set owner and priority rules
edge/pulse coil vendor-specific one-cycle/edge behavior vendor-specific state/storage exact execution interval and edge memory proven

“Retentive” in an instruction description does not automatically guarantee power-loss persistence, download behavior or nonvolatile storage. Those are controller, memory, project and configuration properties. Test transitions through program/run mode, power cycle, download, first scan and fault recovery where relevant.

Build and critique a seal-in rung

See how the holding contact works

A conventional start/stop seal-in pattern has a momentary start request in parallel with a contact that reflects the run memory, while a stop/permit condition constrains both paths. On start, the coil becomes true. On the next evaluation, the run contact becomes true and maintains the path after the start request is released. Removing the stop/permit path makes the ordinary coil false, which opens the run contact.

Conceptual three-stage ladder seal-in sequence from idle through start to a run contact maintaining the true rung, followed by a stop event
The run contact is feedback from the software run bit; the illustrated stop is an ordinary control condition, not a safety stop or physical wiring design.

Test the cases the textbook diagram omits

Case Question the design must answer
PLC starts with run bit false does the equipment remain stopped until a new permitted request?
PLC starts with run bit true can stored/mapped state cause an unintended restart?
start remains stuck true does a stop release remain effective, and what happens when stop clears?
stop/permit chatters is the command stable, diagnosed and safe for the process?
output feedback fails does command time out and identify the missing response?
auto mode also requests run which mode owns the command, and can manual/auto overlap?
communication is lost do stale HMI requests persist, expire or become invalid?
task/routine is skipped does command state freeze, clear or get written elsewhere?

A seal-in rung is ordinary command memory, not a safety function. Emergency stop, guard monitoring and other required risk-reduction functions need the validated safety system, appropriate devices, diagnostics, architecture and lifecycle.

Treat scan order and multiple writers as first-class behavior

Later writes can win within one execution

Many PLC programs execute ordered rungs/routines. If rung 1 writes a bit true and a later rung 2 writes the same bit false, later logic can determine the value observed after those executions. Siemens explicitly warns that when the same coil address appears in multiple program locations, the last calculation can determine the physical output update. Rockwell warns about operands being overwritten.

The exact scheduler can be more complex than a single top-to-bottom scan: tasks can preempt, routines can be conditional, I/O can update asynchronously and external systems can write tags. “Last rung wins” is therefore a useful local warning, not a universal concurrency model.

Find every direct and indirect writer

Use cross-reference and instruction usage tools, then include indirect writers:

Writer surface Why a simple coil search can miss it
ordinary/set/reset coil same bit may appear under aliases or multiple routines
move/copy/fill a word, array or structure write can overwrite a member bit
structured text assignment sits outside ladder routine searches
HMI/SCADA/external client network write does not look like a coil
message or produced/consumed data ownership and update timing differ from local logic
force displayed/physical behavior can be overridden outside normal rung result
module/technology object controller or module updates a structure member

One final command owner is easier to test: other routines produce requests, permissives and interlocks; one arbitration routine writes the final application command; one mapping layer writes the physical output.

Use edge contacts and one-shots deliberately

An edge is an event relative to stored history

A rising-edge instruction is true for one execution when a condition changes from false to true according to its stored prior state. A falling-edge instruction responds to true-to-false. Rockwell provides ONS/OSR/OSF variants; IEC systems provide rising/falling transition contacts or function blocks according to implementation.

“One scan” means one execution of that instruction in its task/routine context. If the routine is called conditionally or the task runs at a different interval, the observed pulse and history behavior can differ from a naive continuous-scan assumption.

Edge risk Failure mode Better evidence
reused storage two events interfere through one memory bit unique documented edge instance/storage
conditional routine call history is not updated while routine is skipped test entry/exit and first re-execution
input pulse shorter than task interval event never sampled device/module capture, faster task or engineered event mechanism
HMI bit held true edge occurs once, then no repeats command handshake and timeout/reset contract
power/mode transition first execution creates or suppresses an edge exact controller prescan/initialization tests
event triggers non-idempotent action duplicate/missed event corrupts count/sequence transaction/sequence ownership and diagnostics

Troubleshoot from field condition to feedback

Follow the evidence chain left to right

Ladder troubleshooting chain from field and raw input through contact, rung, coil, output and feedback, with scan-order overwrite inset
A true contact or coil is one boundary of evidence; the inset shows why a later writer can invalidate an earlier green rung.
Symptom First discriminating evidence Likely boundary Avoid
field device active, raw input false module/channel status, connection, electrical signal and exact mapping field wiring, supply, module or wrong point inverting ladder contact first
raw input true, direct contact false exact tag/alias, online project match and data type/member wrong operand or stale/mismatched project assuming editor highlight is live truth
contacts true, rung false upstream series element, branch joins and instruction errors misunderstood Boolean path forcing rung result
rung true, ordinary coil false instruction execution, duplicate/indirect writer and task order later writer or routine not executing as assumed adding another coil to “reinforce” it
coil bit true, output tag false arbitration/mapping, force, mode, interlock and output owner application-to-I/O mapping rewiring before checking mapping
output tag true, field output off module status, output supply/load, protection and feedback I/O/electrical/load boundary treating coil highlight as voltage proof
set bit will not reset reset rung truth, task/routine call, tag identity and other set writers missing/unexecuted reset or priority conflict power cycling as logic repair
bit flickers trends with task timestamps, all writers and input quality bounce, race, asynchronous or duplicate ownership adding arbitrary debounce everywhere

Capture a reproducible ladder incident

Record controller/project identity, mode, task/routine execution, timestamp, raw input and quality, mapped tags, rung conditions, coil target, every writer, forces, output module state and physical feedback. A screenshot without project revision, time and tag values is weak evidence. A trend can reveal changes between screen refreshes.

Use the PLC input and output troubleshooting guide for the physical-to-tag path and the intermittent PLC fault guide for time-correlated evidence.

Review ladder rungs for maintainability

Apply a rung-quality checklist

Review gate Pass question
intent does the comment explain behavior and consequence, not restate symbols?
naming do tags describe process meaning, state and ownership?
polarity is the healthy/active/fault meaning explicit across physical and software layers?
ownership is there one final writer, or is arbitration fully documented?
execution is task/program/routine scheduling and conditional calling understood?
state are set/reset, initialization, restart and recovery cases tested?
timing are one-shots, pulses, timers and feedback windows proven against task timing?
diagnostics can a maintainer see which permit/interlock blocks the command?
safety are required safety functions outside ordinary control logic and validated?
tests do normal, boundary, fault, restart and restoration cases trace to requirements?

Long rungs are not automatically bad, but invisible ownership is. Break reusable calculations or equipment behavior into clear units without hiding the decisive final command path. Expose reason bits for permissives and interlocks so operators see why a rung is false.

Diagnostic answer map for search and AI-assisted troubleshooting

User or AI query Concise answer Required qualification
What does a ladder contact do? It tests a Boolean and passes the incoming rung condition when that test is true. Direct tests 1; negated tests 0.
Is a normally closed PLC contact a physical NC switch? No. The drawn negated contact tests a false bit. Trace device, wiring, raw bit and mapping separately.
What does a ladder coil do? It writes a Boolean based on the instruction and incoming rung condition. Ordinary, set, reset and edge coils differ.
What is ladder power flow? A left-to-right graphical representation of Boolean truth through a network. It is not electrical current or proof of field output.
Are series contacts AND logic? Yes, every series condition in that path must be true. Negated contacts contribute NOT of their assigned bit.
Are parallel contacts OR logic? Yes, any complete true branch can pass the rung condition. Check where branches begin and rejoin.
Why is a green rung output off? Another writer, mapping, force, module fault or electrical/load issue may exist. Follow coil bit through final output and feedback.
What is the difference between OTE and OTL? OTE writes true and false with the rung; OTL writes true when enabled and otherwise does not clear it. OTU/reset and restart behavior must be designed.
What does last rung wins mean? A later executed write to the same bit can overwrite an earlier write. Tasks, external writes and asynchronous data make global order more complex.
Is a seal-in rung a safety circuit? No, it is ordinary software command memory. Required safety functions need validated safety architecture.

Frequently asked questions

What is the difference between a contact and a coil in ladder logic?

A contact reads/tests a Boolean condition and contributes to rung truth. A coil writes a Boolean according to the final incoming rung condition and its coil type. Contacts do not write their assigned bit; coils do.

When is a normally open ladder contact true?

A direct or normally open ladder contact is true when its assigned Boolean is 1/TRUE and the incoming rung path is true. The symbol does not tell you the physical device's contact arrangement.

When is a normally closed ladder contact true?

A negated or normally closed ladder contact is true when its assigned Boolean is 0/FALSE and the incoming path is true. Many vendors use different names, so verify the instruction semantics.

Why use a normally closed physical stop but a direct PLC contact?

If the healthy physical NC loop energizes the PLC input, its input bit is 1 while healthy. A direct ladder contact then tests that healthy 1. Opening the circuit makes the bit and direct contact false. The exact circuit and safety role still require engineered documentation.

Do two contacts in series always mean AND?

They AND their individual Boolean test results along that path. A negated contact contributes the inverse of its assigned bit, so direct A in series with negated B represents A AND NOT B.

Can I use the same output coil more than once?

Many platforms allow it, but later or higher-priority writers can overwrite earlier results and make troubleshooting dependent on execution order. Prefer a single documented final owner and explicit request/arbitration logic.

What is the difference between a seal-in coil and a latch coil?

A seal-in pattern uses an ordinary coil plus its own contact in a parallel holding path; when the constraining path becomes false, the coil writes false. A latch/set instruction makes a one-sided true write and needs a separate reset/unlatch action.

Does a latched PLC bit survive power loss?

Not necessarily. Latch semantics describe what the instruction does when executed or not enabled. Power-loss persistence, downloads, controller mode transitions and nonvolatile behavior depend on the exact controller, memory and configuration.

What does one scan mean for a one-shot?

It means one execution interval of that instruction in its task/routine context. A conditionally called routine or different task period changes the real time and history behavior, so test the exact scheduler.

Why is the output coil true but the machine does not move?

The coil may be an internal command rather than the physical output, a later writer may change it, output mapping/interlocks may block it, or the module/load/process may be faulty. Verify every boundary through physical feedback.

Sources, review scope, and limitations

This guide was reviewed on August 28, 2026 against current public sources. Ladder syntax and execution differ across vendors, controller families, firmware, task schedulers, editors and language profiles. Verify the exact platform and tested project.

The figures are conceptual editorial teaching diagrams, not vendor screenshots, compilable project code, electrical schematics, safety logic or field procedures. Symbols and labels illustrate Boolean relationships only. This page does not authorize online edits, downloads, forces, bypasses, output commands, rewiring, energized measurement or machine testing. Only qualified, authorized personnel following the site risk assessment, change control, hazardous-energy and electrical safe-work procedures, validated safety lifecycle, engineered drawings, exact manufacturer documentation and approved test plan should modify or test an installed control system.

PPI

PLC Programming IO Editorial Team

Industrial automation education, references, and software testing

Sources TrackedVersions RecordedCorrections Accepted

The PLC Programming IO Editorial Team publishes sourced industrial-automation education and documents how material is reviewed, tested, and corrected. A team byline means the publisher is responsible for the page; it does not represent a fictional person or imply an engineering licence.

Coverage:

  • • PLC programming concepts and examples
  • • Vendor software tutorials and comparisons
  • • SCADA, HMI, protocols, and instrumentation
  • • Training, careers, and reference material

Review standard:

  • • Prefer primary and official sources
  • • Record software versions when material
  • • Separate tested facts from estimates
  • • Publish material corrections

Important scope note

This site provides education, not project-specific engineering approval. Safety, code, and compliance decisions require a qualified person with access to the actual machine and jurisdiction.