You are on page 1of 75

# What is a Ladder ?

• Rails

• Rungs

## • The two vertical lines in a ladder are called “Rails" and

are attach to opposite poles of a power supply.

## • Horizontal lines in a ladder diagram are called “Rungs "

each one representing a unique parallel circuit branch
between the poles of the power supply. PLC scans the
rungs of ladder logic from left to right , starting from the
top rung to the bottom rung.

001

002

003

## In Ladder logic, programming is done using registers. There are four

kinds of registers:

## • Inputs and Outputs : are pointers to the actual terminal strip

connectors on the PLC. If you energize an input, let's say 5th of group 1
of rack 1, then I:011/5 will have an on status

• Internal relays : are just about the same as Inputs and Outputs
except that they don't point to any hardware. They just hold an ON /
OFF value inside of the PLC's memory.

• Data registers : are used for data like integers and hexadecimal
Logical Continuity
Each rung of ladder logic generally consists of two components.

• Conditional Instructions

• Output Instructions

If there is a path of true conditional instructions, then the rung goes true
and outputs occur.

## SW-4 SW-5 LIGHT-2

Types of Instructions
• Bit Instructions ( Input , Output , One Shot )

• Timer Instructions

• Counter Instructions

• Compare Instructions

• Math Instructions

## • Block Transfer Instructions

• PID Instruction
Bit Instructions
Input Instructions:

## I:011 BIT STATUS INSTRUCTION

ON TRUE
15

I:011
OFF FALSE

15
Bit Instructions
Input Instructions:

## I:022 BIT STATUS INSTRUCTION

ON TRUE
15

I:022
OFF FALSE

15
Bit Instructions
Output Instructions:

## O:033 RUNG STATUS BIT STATUS

TRUE ON

15
O:033
FALSE OFF

15
Bit Instructions
Output Instructions:

## OTL ( Output Latch ) L

Bit O:033/15 remains high even after rung is false. OTL can
only turn-on a bit.
O:033 RUNG STATUS BIT STATUS

L
TRUE ON

15
O:033
FALSE NO CHANGE
L
15
Bit Instructions
Output Instructions:

## OTU ( Output Unlatch ) U

Bit O:033/15 turns OFF when the rung is true. OTU can only
turn-off a bit.

## O:033 RUNG STATUS BIT STATUS

U
TRUE OFF

15
O:033
FALSE NO CHANGE
U
15
Bit Instructions
One Shot Instruction :

## • One-shot is used when it is required to enable the output

only for one program scan upon a false – to – true transition of
the conditions preceding the ONS instruction.

## • ONS reference bit can be stored in a Binary or Integer file.

Bit Instructions
One Shot Instruction :

Scan – 1 ONS

Scan – 2 ONS

Scan – 3 ONS

Scan - 4 ONS
Logic Gates
Timer instructions
Timer Instruction Structure :

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

## T4:0 EN TT DN Internal Use Only

Preset Value ( 16 Bit )
Accumulated Value ( 16 bit )

T f : s

## Structure No. ( 0-999 )

File No. ( 3-999 , Default = 4 )
File Type ( T )
Timer instructions
Timer Control Word :

.PRE • Specifies the value which the timer should reach before the
Preset bit processor sets/resets the .DN bit.
• Range : 0 – 32,767
.ACC • Number of time increments the instruction has counted
Accumulator bit • Counting starts from the value entered in this word.
( Typical value = 0 )
.TT • This bit is set the timer is timing
Timer timing
Time base • 1 Sec : Range = 32767 time base intervals ( 9.1 hours )
• 0.01 Sec : Range = 32767 time base intervals ( 5.5 minutes )
Timer instructions
Timer On Delay ( TON ) :

## This instruction is used to delay turning ON an output.

TON

TIMER ON DELAY EN
Timer
Time base
Preset DN
Accum
Timer instructions
TON – Status Bits :

## Rung ACC EN TT DN Timer

False =0 0 0 0 Reset

## True =PRE 1 0 1 Timed out

Timer instructions
TON – Example :

I:011 TON

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 3 DN
Accum 0
T4:0 O:012

TT 12

T4:0 O:012

DN 13
Timer instructions
TON – Example :

I:011 TON

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 3 DN
Accum 1
T4:0 O:012

## TT Sets o/p when timer is running 12

T4:0 O:012

DN 13
Timer instructions
TON – Example :

I:011 TON

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 3 DN
Accum 2
T4:TT O:012

## TT Sets o/p when timer is running 12

T4:0 O:012

DN 13
Timer instructions
TON – Example :

I:011 TON

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 3 DN
Accum 3
T4:0 O:012

TT 12

T4:0 O:012

## DN Sets o/p when timer is done timing 13

Timer instructions
TON – Example :

I:011 TON

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 3 DN
Accum 3
T4:0 O:012

TT 12

T4:0 O:012

DN 13
Timer instructions
Timer Off Delay ( TOF ) :

## This instruction is used to delay turning OFF an output.

TOF

TIMER ON DELAY EN
Timer
Time base
Preset DN
Accum
Timer instructions
TOF – Status Bits :

## Rung ACC EN TT DN Timer

True =0 1 0 1 Reset

## False =PRE 0 0 0 Timed out

Timer instructions
TOF– Example :

I:011 TOF

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 3 DN
Accum 0
T4:0 O:012

TT 12

T4:0 O:012

## DN Sets o/p when timer is not timing 13

Timer instructions
TOF– Example :

I:011 TOF

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 3 DN
Accum 1
T4:0 O:012

T4:0 O:012

## DN Sets o/p when ACC < PRE 13

Timer instructions
TOF– Example :

I:011 TOF

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 3 DN
Accum 2
T4:0 O:012

T4:0 O:012

## DN Sets o/p when ACC < PRE 13

Timer instructions
TOF– Example :

I:011 TOF

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 3 DN
Accum 3
T4:0 O:012

T4:0 O:012

## DN Resets o/p when ACC = PRE 13

Timer instructions
TOF– Example :

I:011 TOF

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 3 DN
Accum 0
T4:0 O:012

TT 12

T4:0 O:012

DN 13
Timer instructions
Retentive Timer ( RTO ) :

## A Retentive Timer lets the timer stop without resetting the

accumulated value.

RTO

TIMER ON DELAY EN
Timer
Time base
Preset DN
Accum
Timer instructions
RTO – Status Bits :

## Rung ACC EN TT DN Timer

False =0 0 0 0 Reset

## False <PRE 0 0 0 Partially

timed
True =PRE 1 0 1 Timed out

## False =PRE 0 0 1 Timed out

Timer instructions
RTO– Example :

I:011 RTO

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 5 DN
Accum 0
T4:0 O:012

TT 12

T4:0 O:012

DN 13
Timer instructions
RTO– Example :

I:011 RTO

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 5 DN
Accum 1
T4:0 O:012

## TT Sets o/p when timer is timing 12

T4:0 O:012

DN 13
Timer instructions
RTO– Example :

I:011 RTO

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 5 DN
Accum 2
T4:0 O:012

## TT Sets o/p when timer is timing 12

T4:0 O:012

DN 13
Timer instructions
RTO– Example :

I:011 RTO

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 5 DN
Accum 2
T4:0 O:012

## TT Resets o/p when timer is not timing 12

T4:0 O:012

DN 13
Timer instructions
RTO– Example :

I:011 RTO

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 5 DN
Accum 3
T4:0 O:012

## TT Sets o/p when timer is timing 12

T4:0 O:012

DN 13
Timer instructions
RTO– Example :

I:011 RTO

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 5 DN
Accum 4
T4:0 O:012

## TT Sets o/p when timer is timing 12

T4:0 O:012

DN 13
Timer instructions
RTO– Example :

I:011 RTO

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 5 DN
Accum 5
T4:0 O:012

TT 12

T4:0 O:012

## DN Sets o/p when timer is done timing 13

Timer instructions
RTO– Example :

I:011 RTO

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Rung is false but DN
Preset 5
ACC is not reset
Accum 5
T4:0 O:012

TT 12

T4:0 O:012

DN 13
Timer instructions
RTO– Example :

I:011 RTO

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 5 DN
Accum 5
T4:0 O:012

TT 12

T4:0 O:012

DN 13
I:011 T4:0
RES
13 Timer reset required to reset ACC
Timer instructions
RTO– Example :

I:011 RTO

TIMER ON DELAY EN
12 Timer T4:0
Time base 1.0
Preset 5 DN
ACC reset Accum 0
T4:0 O:012

TT 12

T4:0 O:012

DN 13
I:011 T4:0
RES
13
Counter Instructions
Counter Instruction Structure :

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

C5:0 CU CD DN OV UN
Preset Value ( 16 Bit )
Accumulated Value ( 16 bit )

T f : s

## Structure No. ( 0-999 )

File No. ( 3-999 , Default = 5 )
File Type ( C )
Counter Instructions
Counter Control Word :

.PRE • Specifies the value which the counter should reach before the
Preset bit processor sets/resets the .DN bit.
• Range : – 32,767 to + 32,767
.ACC • Number of false-true transitions instruction has counted
Accumulator bit
.CU • Bit SET when rung containing count-up instruction is true
Count-up enable
.CD • Bit SET when rung containing count-down instruction is true
Count-down enable
.DN • Bit SET when PRE = ACC
Done bit
.OV • Bit SET when counter has counted above upper limit +32,767
Overflow bit
.UN • Bit SET when counter has counted below lower limit - 32,767
Underflow bit
Counter Instructions
Counter Value Range :
0
-1 1

-32,767 +32,767
UV Set OV Set
Counter Instructions
Count-up ( CTU ) :

Each time rung goes from false – true ACC value increases by 1

CTD

Count Down EN
Counter
Preset
Accum DN
Counter Instructions
CTU Status - Bits :

Rung ACC CD DN
True <PRE 1 0

False <PRE 0 0

True >=PRE 1 1
False >=PRE 0 1
Counter Instructions
Count-down ( CTD ) :

Each time rung goes from false – true ACC value decreases by 1

CTD

Count Down EN
Counter
Preset
Accum DN
Counter Instructions
CTD Status - Bits :

Rung ACC CD DN
True <PRE 1 0

False <PRE 0 0

True >=PRE 1 1
False >=PRE 0 1
Counter Instructions
Counter Reset ( RES ) :

## Reset instruction is an output instruction that resets a timer or

counter. It is set when its rung is true. Address of reset instruction
is the address of timer/counter it is resetting.

RES
Compare Instructions
Equal To ( EQU ) :

## EQU is used to test whether two value are equal. If source A is

equal to Source B than output is energized.

EQU

EQUAL O:012
Source A N7:9
Source B N7:10
12
Compare Instructions
Greater Than Or Equal To ( GEQ ) :

## GEQ is used to test whether Source A is greater than Source B.

Source A or Source B can be value or addresses that contain
values.

GEQ

## Greater Than Or Equal O:012

Source A N7:9
Source B N7:10
12
Compare Instructions
Greater Than ( GRT ) :

## GRT is used to test whether Source A is greater than Source B.

Source A or Source B can be value or addresses that contain
values.

GRT

## Greater Than O:012

Source A N7:9
Source B N7:10
12
Compare Instructions
Less Than Or Equal To ( LEQ ) :

## LEQ is used to test whether Source A is less than or equal to

Source B. Source A or Source B can be value or addresses that
contain values.

LEQ

## Less Than Or Equal O:012

Source A N7:9
Source B N7:10
12
Compare Instructions
Less Than ( LES ) :

## LES is used to test whether Source A is less than Source B. Source

A or Source B can be value or addresses that contain values.

LES

## Less Than O:012

Source A N7:9
Source B N7:10
12
Compare Instructions
Limit Test ( LIM ) :

## LIM is an input instruction that is used to test for value inside of

outside of a specified limit. When the value being monitored is
within limit the output goes true. Low / High Limit can be a value

LIM
O:012
Limit Test ( CIRC)
Low Limit N7:10
Test N7:11
High Limit N7:12 12
Compute Instructions

## Compute instructions evaluate arithmetic operations using an

expression or a specific arithmetic instruction. Following are
commonly used math instructions:

## MUL : Multiply two values

Compute Instructions
Arithmetic Status Flags:

## The arithmetic status flags are stored in Bits-0, 1, 2 & 3 of

Word 0 of the processor status file.

## S:0/0 • CARRY ( C ) • Sets when Carry is generated

S:0/1 • OVERFLOW ( V ) • Sets when overflow is generated
S:0/2 • ZERO ( Z ) • Sets if result is zero
S:0/3 • SIGN (S ) • Sets if result is negative

## • You can use either Integer or Floating point values.

• If source is floating point , Destinations should also be a
floating point address else result will be rounded off
• If you enter BCD or ASCII values, processor treats those
values as integers.
Compute Instructions
Compute Instruction ( CPT ):

## Compute instruction is an output instruction. Its operation is

defined by the expression given in the instruction. This
instruction can perform various operations other than
computing like:

## • Clear data of the destination address

CPT
• Convert data type at source to COMPUTE
data type specified at destination
Destination

Expression
Compute Instructions
Valid CPT Operators:

## Enhanced PLC processors support more operators ( Sine, Cosine,

Tangent, AND, OR, XOR etc. )

## Type Operator Description Example

Copy None Copy from A to B Enter Source in Expression
and Desti. in destination
Clear None Set a value to Enter 0 for expression
zero
- Subtract 11 – 4
* Multiply 12 * 3
I ( vertical bar ) Divide 24 I 2
- Negate - N7:0
SQR SQUARE ROOT SQR N7:2
Compute Instructions
CPT - Example:

CPT
I:012
COMPUTE

Destination N7:21
12
Expression
(N7:5 I 5 ) I ( N7:6 )

If input I:012/12 is SET divide value in N7:5 by 5 and divide the result by
value in N7:6. Move the final result to destination address N7:21.
Compute Instructions

## When input condition is true adds Source A and Source B and

stores the result in destination address. Status flags are set in status
file as defined earlier.

I:012

Source A N7:2
12 Source B N7:3

Destination N7:21

If input I:012/12 is SET add values in N7:2 & N7:3 and store the result in N7:21
Compute Instructions
Subtract ( SUB ):

## When input condition is true subtract Source B from Source A and

stores the result in destination address. Status flags are set in status
file as defined earlier.

SUB
I:012
SUBTRACT

Source A N7:2
12 Source B N7:3

Destination N7:21

## If input I:012/12 is SET subtract value in N7:3

from value in N7:2 and store the result in N7:21
Compute Instructions
Divide ( DIV ):

## When input condition is true divide Source A from Source B and

stores the result in destination address. Status flags are set in status
file as defined earlier.

DIV
I:012
DIVIDE

Source A N7:2
12 Source B N7:3

Destination N7:21

## If input I:012/12 is SET divide value in N7:2

by value in N7:3 and store the result in N7:21
Compute Instructions
Multiply ( MUL ):

## When input condition is true divide Source A from Source B and

stores the result in destination address. Status flags are set in status
file as defined earlier.

MUL
I:012
MULTIPLY

Source A N7:2
12 Source B N7:3

Destination N7:21

## If input I:012/12 is SET multiply value in N7:2

and value in N7:3 and store the result in N7:21
Compute Instructions
Clear ( CLR ):

When input condition is true CLR sets all the bits of the destination
word to zero.

CLR
I:012
CLEAR

Destination N7:21
12

## If input I:012/12 is SET , set all bits of word N7:21 to zero

Move Instructions
Move ( MOV ):

## MOV instruction is a output instruction that copies the source

each scan till the rung is true.

## The source and destination data should be same as this

instruction does not perform a conversion.
MOV
I:012
MOVE

Source N7:0
12 Destination N7:21

## If input I:012/12 is SET value in N7:0 is moved to N7:21

Move Instructions

## MOV instruction is a output instruction that copies the source

of data to be masked. The instruction moves data each scan
till the rung is true.

You can use MVM to copy I/O image, Binary or Integer values.

bit to pass or block. ( Set 1 to mask the data ; Set 0 to block )

## Data passed from masked bit overwrites the corresponding bits

in the destination address. Other bits remain unchanged.
Move Instructions
MVM Example:
MVM
Source N7:0
Destination N7:21

## N7:21 Before move 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

N7:0 Source 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Mask F0F0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0

## N7:21 After move 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1

Program Flow
Instructions
Program flow instructions change the flow of ladder program execution.
Following are commonly used program flow instructions

JMP

Jump (JMP) : When Jump instruction is true it lets processor skip rungs.

LBL

Label (LBL ) : Label instruction is the target of the Jump instruction that
has same label number. LBL should be the first instruction
on the rung.
Program Flow
Instructions
Always False (AFI) :

The AFI instruction is a input instruction that is used to make a rung false
when inserted in the condition side of the rung.

AFI
Block Transfer
Instructions
Block-transfer instructions are used to transfer upto 64 words of data
to/from a block transfer module in a local/remote I/O chassis.

• Block-transfer Write (BTW) : is used when you want to transfer data to the
block-transfer module. When the rung goes true the instruction tells the
processor to write data in the the data file specified to the specified

• Block-transfer Read (BTR) : is used when you want to receive data from the
block-transfer module. When the rung goes true the instruction tells the
in the data file
Block Transfer
Instructions
BTW and BTR Structure:

BTW

## BLOCK TRANFR WRITE EN

Rack
Group
Module DN
Control Block
Data file
Length
Continuous
Block Transfer
Instructions
Parameters of Block-transfer instructions:
Rack I/O rack no. ( 00-17 octal for PLC-5/40) of the I/O chassis
in which the module is placed
Group I/O group no. (0-7) which indicates the position of the
module in the I./O chassis
Module Slot no. within the group
Control Block 6 word block transfer file (BT) or 5 word Integer file that
controls the instruction operation
Data File Address of the integer file from/to which processor