12. Seal-In Circuits Explained


0
Categories : PLC Foundations

Seal-In Circuits Explained

A seal-in circuit is one of the most important basic patterns in PLC ladder logic and relay logic.

It is commonly used when an operator presses a momentary Start pushbutton, but the machine or motor needs to continue running after the button is released.

In simple words:

A seal-in circuit allows a momentary command to hold itself ON until a stop condition breaks the circuit.

Typical example:

Press Start  → Motor turns ON
Release Start → Motor stays ON
Press Stop → Motor turns OFF

Seal-in logic is very common in:

Motor starters
Conveyors
Pumps
Fans
Blowers
Machine cycle start logic
Run commands
Control relays

The PLC training material explains this same idea using relay logic: after the pushbutton is released, the control relay remains energized because a seal-in contact provides another current path.


Why Seal-In Circuits Are Needed

Most Start pushbuttons are momentary.

That means:

Pressed = ON
Released = OFF

If you connect a motor command directly to a momentary Start button, the motor would only run while the button is being held.

Example:

Start button pressed → Motor ON
Start button released → Motor OFF

That is not what we usually want.

For most motor control circuits, we want this:

Start button pressed once → Motor starts
Motor keeps running
Stop button pressed → Motor stops

That is the purpose of the seal-in circuit.


Basic Seal-In Concept

The basic seal-in circuit uses two paths:

1. Start pushbutton path
2. Seal-in holding path

The Start pushbutton starts the output.

The seal-in contact keeps the output energized after Start is released.

In PLC ladder logic, the seal-in contact is usually a contact from the same command bit or from a real feedback bit.


Basic Ladder Logic Example

Tags
TagMeaning
DI_Start_PBStart pushbutton input
DI_Stop_PB_OKStop circuit healthy
DI_Overload_OKMotor overload healthy
Motor_Run_CommandInternal motor run command
Logic Concept
Start_PB OR Motor_Run_Command
AND Stop_OK
AND Overload_OK
THEN Motor_Run_Command
Ladder Concept
DI_Start_PB
----] [----------------+----] [----] [----( Motor_Run_Command )
                       |   DI_Stop_OK DI_Overload_OK
Motor_Run_Command      |
----] [----------------+

This creates the holding path.


How It Works Step by Step

Step 1 — Motor Stopped

Before Start is pressed:

DI_Start_PB = 0
Motor_Run_Command = 0
DI_Stop_PB_OK = 1
DI_Overload_OK = 1

The rung is false because Start is not pressed and the seal-in bit is not ON.

Result:

Motor_Run_Command = 0

Step 2 — Operator Presses Start

When the operator presses Start:

DI_Start_PB = 1
DI_Stop_PB_OK = 1
DI_Overload_OK = 1

The rung becomes true.

Result:

Motor_Run_Command = 1

Step 3 — Seal-In Contact Turns ON

Now that Motor_Run_Command is ON, the branch contact using Motor_Run_Command also becomes true.

So when the operator releases Start:

DI_Start_PB = 0
Motor_Run_Command = 1

The seal-in branch keeps the rung true.

Result:

Motor_Run_Command stays ON

Step 4 — Operator Presses Stop

When Stop is pressed, the healthy Stop bit turns OFF:

DI_Stop_PB_OK = 0

The rung becomes false.

Result:

Motor_Run_Command = 0

Once the command turns OFF, the seal-in branch also turns OFF.


Seal-In Circuit in Plain English

A basic seal-in rung says:

Run the motor if Start is pressed OR the motor is already commanded to run,
as long as Stop is OK and Overload is OK.

This is the key idea.

(Start OR Already Running) AND Safety/Stop Conditions OK = Run Command

Seal-In Contact vs Start Pushbutton

The Start pushbutton is only needed to begin the operation.

The seal-in contact keeps the operation active.

PartFunction
Start PushbuttonMomentary command to start
Seal-In ContactMaintains the command after Start is released
Stop ContactBreaks the seal-in circuit
Overload ContactDrops the command if motor protection trips
Output CoilMotor run command or starter command

Electrical Relay Seal-In vs PLC Seal-In

Seal-in circuits existed before PLCs.

In a traditional relay control circuit, the auxiliary contact of a relay or contactor is wired in parallel with the Start pushbutton.

In a PLC, the seal-in contact is usually a virtual contact reading a PLC memory bit.

Relay Seal-In
Physical auxiliary contact holds the coil energized.
PLC Seal-In
PLC memory bit or feedback input holds the command true.

Both perform the same logical function, but they are implemented differently.


Important: Command Seal-In vs Feedback Seal-In

This is where the topic becomes very important for real industrial troubleshooting.

There are two common methods:

Command-based seal-in
Feedback-based seal-in

1. Command-Based Seal-In

A command-based seal-in uses the same output command bit to hold itself ON.

Example:

Motor_Run_Command seals in Motor_Run_Command

This is simple and common in training examples.

Problem

The PLC may command the motor to run, but the real contactor may not actually energize.

Example:

Motor_Run_Command = 1
DO_Motor_Starter = 1
But the contactor coil circuit is open
Motor does not run

The PLC “thinks” the output is ON, but the real device may not have responded.

The industrial instrumentation text warns about this type of situation: if the PLC output remains energized while the contactor did not actually energize, clearing the fault later can cause the motor to start unexpectedly.


2. Feedback-Based Seal-In

A feedback-based seal-in uses a real auxiliary contact or feedback signal to hold the command ON.

Example:

Motor_Running_Feedback seals in Motor_Run_Command

In this method, the PLC only seals in the motor command if the real field device proves it energized.

Typical feedback sources:

Contactor auxiliary contact
Motor starter auxiliary contact
VFD running status
Relay feedback
Drive status bit

The source material shows that connecting a contactor auxiliary contact to a PLC input allows the PLC to sense the real-time contactor status and use that feedback as the seal-in contact instead of only relying on the output command bit.


Safer Industrial Seal-In Logic

A more professional motor seal-in may use feedback.

Tags
TagMeaning
DI_Start_PBStart pushbutton
DI_Stop_PB_OKStop circuit OK
DI_Overload_OKOverload OK
DI_Motor_FBMotor starter auxiliary feedback
Motor_Run_CommandInternal motor run command
DO_Motor_StarterPhysical output to starter
Logic Concept
DI_Start_PB OR DI_Motor_FB
AND DI_Stop_PB_OK
AND DI_Overload_OK
THEN Motor_Run_Command

This means:

Start the motor when Start is pressed.
Keep it running only if real feedback proves the starter energized.

This is safer than only sealing in with the output command.


Why Feedback Seal-In Is Better

Feedback seal-in helps prevent this dangerous situation:

Operator presses Start.
PLC output turns ON.
Motor does not actually start because of a coil circuit problem.
Operator releases Start.
PLC output stays latched.
Someone clears the field problem.
Motor starts unexpectedly.

With feedback seal-in:

Operator presses Start.
PLC output turns ON.
If contactor does not actually energize, feedback stays OFF.
When Start is released, command drops out.
Motor will not start unexpectedly later.

That is a better industrial behavior.


Seal-In vs Latch/Unlatch

A seal-in circuit and latch/unlatch instructions are related, but they are not the same style.

Seal-In Using OTE

A seal-in rung usually uses an OTE coil and a holding branch.

Rung true  → command ON
Rung false → command OFF

This is usually easier to troubleshoot.

Latch/Unlatch Using OTL/OTU

A latch/unlatch circuit uses retentive instructions.

OTL = latch bit ON
OTU = unlatch bit OFF

The uploaded material explains that set/reset or latch/unlatch coils are retentive instructions: once energized, they retain the memory bit until the opposite instruction changes it.


When to Use Seal-In vs Latch/Unlatch

Use Seal-In Logic For:
Normal motor run commands
Conveyor run commands
Pump run commands
Simple maintained machine commands
Easy-to-read start/stop logic
Use Latch/Unlatch Carefully For:
Fault latches
Alarm latches
Cycle started memory
Step sequence memory
Mode selection
Events that must stay stored until reset

For beginners, seal-in logic is often easier to understand because the rung shows exactly what conditions are keeping the command ON.


Basic Seal-In With Stop and Fault

A more realistic seal-in should include fault logic.

Requirement

Motor runs when:

Start is pressed OR motor is already running
AND Stop circuit is OK
AND Overload is OK
AND No fault is active
Logic Concept
(Start_PB OR Motor_Run_Command)
AND Stop_OK
AND Overload_OK
AND NOT Fault_Active
= Motor_Run_Command
Ladder Concept
DI_Start_PB
----] [----------------+----] [----] [----]/[----( Motor_Run_Command )
                       |   Stop_OK  OL_OK  Fault_Active
Motor_Run_Command      |
----] [----------------+

This is a very common PLC pattern.


Seal-In With HMI Start

In real machines, a motor may start from:

Local Start PB
HMI Start Button
Auto Sequence Start

So the start branch may include multiple sources.

DI_Local_Start_PB
----] [----------------+
                       |
HMI_Start_Command      +---- Stop_OK ---- OL_OK ---- NOT Fault ----( Motor_Run_Command )
----] [----------------+
                       |
Auto_Start_Command     |
----] [----------------+
                       |
Motor_Run_Command      |
----] [----------------+

This means any valid start source can begin the command, and the seal-in branch keeps it active.


Seal-In With Stop Request

Some programs use a Stop request bit instead of only the physical Stop input.

Example:

Stop_Request = Physical Stop PB OR HMI Stop OR Fault Stop

Then the seal-in logic may use:

Start_Request OR Motor_Run_Command
AND NOT Stop_Request
AND Permissive_OK
THEN Motor_Run_Command

This is useful when multiple conditions can stop the machine.


Recommended Professional Structure

A good industrial structure separates the logic:

1. Input Mapping
2. Start/Stop Requests
3. Permissives
4. Faults
5. Run Command Seal-In
6. Output Mapping
7. Feedback Verification

Example:

DI_Start_PB → Start_Request
DI_Stop_PB_OK → Stop_OK
DI_Overload_OK → Motor_Permissive_OK
Start_Request + Seal-In → Motor_Run_Command
Motor_Run_Command → DO_Motor_Starter
DI_Motor_FB → Motor_Running_Status
Command ON but Feedback OFF after timer → Fault

This is much more professional than one huge rung.


Feedback Failure Fault

In real equipment, feedback should often be monitored.

Fault Requirement

If the PLC commands the motor to run, but feedback does not turn ON after a short time, generate a fault.

Example:

Motor_Run_Command = ON
DI_Motor_FB = OFF
Timer reaches 2 seconds
Fault_MotorFailedToStart = ON

This catches problems such as:

Bad starter coil
Blown fuse
Open wire
Bad auxiliary contact
Contactor not pulling in
VFD not responding
Overload problem
Control voltage missing

This is a very useful troubleshooting feature.


Practical Example: Conveyor Seal-In

Inputs
DI_Start_PB
DI_Stop_PB_OK
DI_EStop_OK
DI_Overload_OK
DI_Conveyor_FB
Outputs
DO_Conveyor_Starter
DO_Run_Light
DO_Fault_Light
Internal Tags
Conveyor_Start_Request
Conveyor_Permissive_OK
Conveyor_Run_Command
Conveyor_Running_Status
Flt_Conveyor_FailedToStart
Logic Flow
Start PB → Start Request
Stop OK + EStop OK + Overload OK → Permissive OK
Start Request OR Feedback → Run Command
Run Command → Starter Output
Starter Feedback → Running Status
Command without feedback → Fault

That is a realistic industrial approach.


Common Beginner Mistakes

Mistake 1 — Seal-In Without Stop Condition

Bad:

Start OR Motor_Run_Command = Motor_Run_Command

Problem:

Nothing stops the motor.

Always include stop, overload, fault, and safety-related permissive conditions.


Mistake 2 — Using Output Command as Proof

Bad assumption:

DO_Motor_Starter = 1, so the motor is running.

Better thinking:

DO_Motor_Starter = command.
DI_Motor_FB = proof.

Command and feedback are not the same.


Mistake 3 — Using Latch/Unlatch Everywhere

Latch/unlatch can be useful, but overusing it can make logic harder to troubleshoot.

A simple seal-in rung with OTE is often easier to read.


Mistake 4 — No Feedback Fault

If the PLC commands a device but does not verify feedback, the system may not detect that the field device failed to operate.

This can hide real problems.


Automation Technician Notes

When troubleshooting a seal-in circuit, ask:

Did the Start request turn ON?
Is the Stop circuit OK?
Are all permissives healthy?
Is any fault active?
Did the command bit turn ON?
Did the physical output turn ON?
Did the field device actually energize?
Did the feedback turn ON?
Is the seal-in branch using command or real feedback?
Is a reset required after a fault?

A seal-in problem is not always a Start button problem.

Sometimes the seal-in drops because:

Stop_OK is false
Overload_OK is false
Fault_Active is true
Feedback did not prove
Permissive dropped
Output mapping is missing
The command is overwritten later

Troubleshooting Example

Problem

Operator presses Start. Motor runs only while the Start button is held.

Possible Causes
Seal-in branch is missing
Seal-in contact/tag is wrong
Motor_Run_Command is not staying ON
Stop_OK drops out
Overload_OK drops out
Feedback seal-in is used, but feedback never turns ON
Wrong contact type: XIC/XIO issue
Output command is being reset later
Best Troubleshooting Path
1. Watch DI_Start_PB online.
2. Watch Start_Request.
3. Watch Stop_OK and Overload_OK.
4. Watch Motor_Run_Command.
5. Watch the seal-in branch contact.
6. Watch physical output DO_Motor_Starter.
7. Watch feedback DI_Motor_FB.
8. Check for fault or reset logic dropping the command.

Key Terms
TermMeaning
Seal-In CircuitLogic that holds a command ON after a momentary Start
Holding ContactContact in parallel with Start that maintains the rung
Start PushbuttonMomentary input used to begin operation
Stop CircuitCondition that breaks the seal-in path
CommandPLC request to energize a device
FeedbackProof from the field device that it actually responded
Auxiliary ContactContact used to prove relay/contactor status
OTEOutput Energize instruction
OTLOutput Latch instruction
OTUOutput Unlatch instruction
RetentiveMemory that stays stored until changed or reset
Non-RetentiveMemory that turns OFF when rung goes false
Failed To StartFault when command is ON but feedback does not prove

Final Thoughts

A seal-in circuit is one of the most important patterns in ladder logic.

It allows a momentary Start command to become a maintained Run command until a Stop, overload, fault, or permissive condition breaks the circuit.

For training, a command-based seal-in is easy to understand. But in real industrial machines, a feedback-based seal-in or feedback verification is often better because it confirms the field device actually responded.

The key lesson is:

Command tells the machine what to do.
Feedback proves that it actually happened.

When you understand seal-in circuits, motor control, conveyor control, pump logic, and start/stop troubleshooting become much easier.

Leave a Reply

Your email address will not be published. Required fields are marked *