Ladder Diagram
Ladder Diagram
Ladder Diagram
IEC11313LadderDiagram
Origins of Ladder Diagram
The Ladder Diagram (LD) programming
language originated from the graphical
representation used to design an electrical
control system
Control decisions were made using relays
After a while Relays were replaced by logic
circuits
Logic gates used to make control decisions OR
AND
Finally CPUs were added to take over the
function of the logic circuits
I/O Devices wired to buffer transistors
Control decisions accomplished through
programming
Relay Logic representation (or LD) was CPU
developed to make program creation and
maintenance easier
Computer based graphical representation of
wiring diagrams that was easy to understand
Reduced training and support cost
What is a Rung?
A rung of ladder diagram code can contain both input and
output instructions
Input instructions perform a comparison or test and set the rung
state based on the outcome
Normally left justified on the rung
Output instructions examine the rung state and execute some
operation or function
In some cases output instructions can set the rung state
Normally right justified on the rung
B AND F
Branches
OR
IF ((A OR B) AND (NOT C) AND D) THEN E=1; F=1 END_IF
Ladder Logic Execution
Rungs of Ladder diagram are solved from Left to
right and top to bottom
Branches within rungs are solved top left to bottom
right
Ladder Rung
A D E
Left Power Rail Right Power Rail
B
Branch
F G H
P S
I J K
R
Non Retentive Coils
The referenced bit is reset when processor power is cycled
Coil -( )-
Sets a bit when the rung is true(1) and resets the bit when the rung is
false (0)
PLC5 calls this an OTE Output Enable
Negative coil -( / )-
Sets a bit when the rung is false(0) and resets the bit when the rung is
True(1)
Not commonly supported because of potential for confusion
Set (Latch) coil -(S)-
Sets a bit (1) when the rung is true and does nothing when the rung is
false
Reset (Unlatch) Coil -(R)-
Resets a bit (0) when the rung is true and does nothing when the rung is
false
Contacts
Normally Open Contact -| |-
Enables the rung to the right of the instruction if the rung to the left
is enabled and underlining bit is set (1)
Normally Closed Contact -|/|-
Enables the rung to the right of the instruction if the rung to the left
is enabled and underlining bit is reset (0)
Positive transition contact -|P|-
Enables the right side of the rung for one scan when the rung on
left side of the instruction is true
Allen Bradley PLC5 uses -[ONS]-
Negative transition contact -|N|-
Enables the right side of the rung for one scan when the rung on
left side of the instruction is false
Retentive Vs Non-retentive Operation
Definitions
Retentive values or instructions maintain their last state
during a power cycle
Non-retentive values or instructions are reset to some
default state (usually 0) after a power cycle
IEC1131 permits values to be defined as retentive
A contradiction to this is ladder diagram where 3
instructions are classified as retentive
In most PLCs only timer and coil instructions operate
as non-retentive
Retentive Coils
The referenced bit is unchanged when processor
power is cycled
Retentive coil -(M)-
Sets a bit when the rung is true(1) and resets the bit when the
rung is false (0)
Set Retentive (Latch) coil -(SM)-
Sets a bit (1) when the rung is true and does nothing when the
rung is false
PLC5 uses OTL Output Latch
Reset Retentive (Unlatch) Coil -(RM)-
Resets a bit (0) when the rung is true and does nothing when
the rung is false
PLC5 uses OUT Output Unlatch
Transition Sensing Coils
Positive transition-sensing coil -(P)-
Sets the bit bit (1) when rung to the left of the
instruction transitions from off(0) to on(1)
The bit is left in this state
PLC5 use OSR (One Shot Rising)
Negative transition-sensing coil -(N)-
Resets the bit (0) when rung to the left of the
instruction transitions from on(1) to off(0)
The bit is left in this state
PLC5 uses OSF (One Shot Falling)
IEC Comparison Instructions in Ladder
If the rung input (EN) is enabled, the instruction performs
the operation and sets the rung output (ENO) based on
the comparison
Example: when EN is true, EQ (=) function compares In1 and to
In2 and sets ENO
Comprehensive instruction set
EQ(=), GT (>), GE (>=), LT (<), LE (<=), NE (<>)
EQ
EN ENO
Tank1_Level
100.000 IN1
Tank_max
IN2
78.251
Timers in Ladder Diagram
There three timer instructions in
Pump_Tmr
IEC1131
TP - Pulse timer TON
IN Q
TON - Timer On Delay
TOF - Timer Off Delay T#200ms PT ET 178
Time values
Time base is 1msec (1/1000 of a
sec)
Pump_Tmr
Values entered using duration literal
format TON
IN ENO
Two possible visualizations
Depending on use of EN/ENO Q
Pump_Tmr_DN
Q = Comparison output IN
results Q
PT
Varies with timer types ET |
0
PT = Preset Time
ET = Elapse Time On-Delay (TON) Timing
IN
Q
PT
ET |
0
CD
... CV |
0
QD LD
PV
CV|
0
R
LD
Execution Control Elements
CALL / RETURN Instructions
Jump / Label Instructions Used to encapsulate logic and call it as a subroutine
Jump to a label skips a block of Causes execution to change between functions or subroutines
CAL - Passes control to another named function
code without it being scanned PLC5 uses JSR
RET - Exits a function and returns control back to the calling
LBL - Named target for a jump routine
operation
JMP - Performs a jump when
the rung conditions are true
|Skip_Calc|
|||(JMP)|
|...|
|Skip_Calc|
|[LBL]...
CAL
CAL
RET RET
Different Instruction Presentations
The look and feel of IEC 1131-3 is somewhat different from
the 1Million+ PLCs that Allen Bradley has running in
factories throughout the world
TON (EN)
ADD Pump_Tmr
Timer
Source A Tank1_In
100.000 Preset 200.000 (DN)
Source B Offsetr
Accum 178.251
78.251
Destination Tank_Level
178.251 Pump_Tmr
TON
+ IN ENO
EN ENO
Tank1_In Tank_Level Pump_Tmr_DN
100.000 178.251 Q
Offsetr
T#200ms PT ET 178
78.251
1 Rung of Logic
1 Instruction
11 Rungs of Logic Minutes to code and debug
17 Instructions
Hours to code and debug
Rockwell Automation
Instruction Extension to IEC1131-3
FIFO & LIFO - FFL, FFU, LFL, LFU
File math and search - FAL, FSC
Table operations - SRT, STD, AVE
Sequencers - SQI, SQL, SQO, SDS
Diagnostics - DDT, DFA, FBC
Compare - CMP, MEQ
Compute - CPT, NEG
Data moves - MVM, COP, BTD
Program Control - AFI, NOP, MCR, TND
Interrupt Services - UID, UIE
Retentive Timer - RTO
Ladder Loop Instruction - FOR, NXT
Process - PID
Motion - 30+ instructions to perform closed loop servo control