Chapter 7. PROGRAMMABLE Logic Controller: Dr. T.C. Chang School of Industrial Engineering Purdue University
Chapter 7. PROGRAMMABLE Logic Controller: Dr. T.C. Chang School of Industrial Engineering Purdue University
9/21/2014
T.C. Chang
Chapter 7. PROGRAMMABLE
LOGIC CONTROLLER
Dr. T.C. Chang
School of Industrial Engineering
Purdue University
7- 2
9/21/2014
T.C. Chang
FUNCTIONS OF CONTROLLERS
1) on-off control,
2) sequential control,
3) feedback control, and
4) motion control.
7- 3
9/21/2014
T.C. Chang
CONTROL DEVICES
1) mechanical control - cam, governor,
etc.,
2) pneumatic control - compressed air,
valves,etc.
3) electromechanical control - switches,
relays, a timer, counters, etc,
4) electronics control - similar to
electromechanical control, except uses
electronic switches.
5) computer control.
7- 4
9/21/2014
T.C. Chang
PROGRAMMABLE LOGIC
CONTROLLER
Invented in 1968 as a substitute for hardwired relay panels.
"A digitally operating electronic apparatus which uses a
programmable memory for the internal storage of instructions
by implementing specific functions such as logic sequencing,
timing, counting, and arithmetic to control, through digital or
analog input/output modules, various types of machines or
processes. The digital computer which is used to perform the
functions of a programmable controller is considered to be
within this scope. Excluded are drum and other similar
mechanical sequencing controllers."
National Electrical Manufacturing Association (NEMA)
7- 5
9/21/2014
T.C. Chang
VENDORS
MODICOM - GOULD
ALLEN-BRADLEY
GE
SQUARE-D
etc.
7- 6
9/21/2014
T.C. Chang
PLC
CPU
System
User Ladder
Diagram
Working
memory
registers
Input
Flag
Output
Input
Module
Output
Module
7- 7
9/21/2014
T.C. Chang
An Large Size PLC
The main module
measures 19 x 20 x 14.5.
have upto 10,000 I/O points
supports all functions
expansion slots to
accommodate PC and
other communication
devices.
Allen-Bradley PLC-3
7- 8
9/21/2014
T.C. Chang
A Small Size PLC
Measures 4.72x 3.15 x
1.57.
32 I/O points
Standard RS 232 serial
communication port
Allen-Bradley MicroLogix 1000
7- 9
9/21/2014
T.C. Chang
SWITCHES
DPST
SPDT
N o n - l o c k i n g
L o c k i n g
N o r m a l l y O p e n N o r m a l l y C l o s e d
M u l t i p l e T h r o w
P 1
P 2
M u l t i p l e P o l e
B r e a k - b e f o r e - m a k e
M a k e - b e f o r e - b r e a k
7- 10
9/21/2014
T.C. Chang
TERMS
Throw - number of states
Pole - number of connecting moving parts (number of individual
circuits).
SPDT
DPST
A serial switch box (A-B box) has
two 25 pin serial ports to switch from.
Input
Output
A B
Knob
How is this switch classified?
7- 11
9/21/2014
T.C. Chang
TYPES OF SWITCHES
Selector switches
Pushbutton switches
Photoelectric switches
Limit Switches
Proximity switches
Level switches
Thumbwheel switches
Slide switches
RATING:
24 Volts AC/DC
48 Volts AC/DC
120 Volts AC/DC
230 Volts AC/DC
TTL level
(Transistor-to-transistor
5V)
Isolated Input
7- 12
9/21/2014
T.C. Chang
RELAYS
A switch whose operation is activated by an electromagnet is called a "relay"
contact
coil
input
Relay coil
R1
R1
Output contact
7- 13
9/21/2014
T.C. Chang
COUNTER
Digital counters output in the form of a relay contact when a preassigned
count value is reached.
Register
Accumulator
contact
input
reset
output
Input
Reset
Output
Count 0 1 2 3 4 5 0 1
5
7- 14
9/21/2014
T.C. Chang
TIMER
A timer consists of an internal clock, a count value register, and an
accumulator. It is used for or some timing purpose.
Clock
Accumulator
contact
reset
output
Register
Contact
Time 5 seconds.
Clock
Reset
Output
Count
1 2 3 4 0 5
7- 15
9/21/2014
T.C. Chang
AN EXAMPLE OF RELAY LOGIC
L1
LS1
PB1
LS2
R1
R1
R1
TIMER
R2
PR=5
For a process control, it is desired to have the process start (by turning
on a motor) five seconds after a part touched a limit switch. The
process is terminated automatically when the finished part touches a
second limit switch. An emergency switch will stop the process any
time when it is pushed.
LS1
PB1
LS2
R1
TIMER
5
Motor
R2
7- 16
9/21/2014
T.C. Chang
PLC ARCHITECTURE
Programmable controllers replace most of the relay panel wiring by
software programming.
Processor
I/O
Modules
Memory
Power
Supply
Program
Loader
Printer
Cassette
Loader
EPROM
Loader
Switches
Machines
Peripherals
External Devices
PC
A typical PLC
7- 17
9/21/2014
T.C. Chang
PLC COMPONENTS
1. Processor Microprocessor based, may allow arithmetic
operations, logic operators, block memory moves,
computer interface, local area network, functions, etc.
2. Memory Measured in words.
ROM (Read Only Memory),
RAM (Random Access Memory),
PROM (Programmable Read Only Memory),
EEPROM (Electric Erasable Programmable ROM),
EPROM (Erasable Programmable Read Only Memory),
EAPROM (Electronically Alterable Programmable
Read Only Memory), and
Bubble Memory.
7- 18
9/21/2014
T.C. Chang
PLC COMPONENTS
3. I/O Modular plug-in periphery
AC voltage input and output,
DC voltage input and output,
Low level analog input,
High level analog input and output,
Special purpose modules, e.g., high speed timers,
Stepping motor controllers, etc. PID, Motion
4. Power supply AC power
5. Peripheral hand-held programmer (HHP)
CRT programmer
operator console
printer
simulator
EPROM loader
graphics processor
network communication interface
modular PC
7- 19
9/21/2014
T.C. Chang
Discrete I/O
AC Voltage I/O
DC Voltage I/O
numerical input and output
special-purpose modules, for example, high-
speed timers, and stepping motor controllers
7- 20
9/21/2014
T.C. Chang
Analog I/O
Analog inputs:
Flow sensors
Humidity sensors
Potentiometers
Pressure sensors
Temperature sensors
Analog outputs:
Analog meters
Analog valves and actuators
DC and AC motor drives
7- 21
9/21/2014
T.C. Chang
Some Special I/O
Thermocouple input
Low level analog signal, filtered, amplified, and digitized before
sending to the processor through I/O bus.
Fast input
50 to 100 microsecond pulse signal detection.
ASCII I/O
Communicates with ASCII devices.
Stepper motor output
Provide directly control of a stepper motor.
Servo interface
Control DC servo motor for point-to-point control and axis positioning.
PID control
The Proportional Integral Derivative is used for closed loop process
control.
Network module
7- 22
9/21/2014
T.C. Chang
A Hand Held Programmer
An Allen-Bradley hand-held programmer for MicroLogix 1000
7- 23
9/21/2014
T.C. Chang
LADDER DIAGRAM
A ladder diagram (also called contact symbology) is a means of
graphically representing the logic required in a relay logic system.
A
R1
PB1
PB2
R1
R1
start
emergency stop
Rail
Rung
7- 24
9/21/2014
T.C. Chang
PLC WIRING DIAGRAM
External
switches
Stored program
01 02 20
20
20
11
01
02
03
11
12
C
PLC Input
Output
A
B
7- 25
9/21/2014
T.C. Chang
Input Connections
AC DC TTL
7- 26
9/21/2014
T.C. Chang
Output Connections
AC DC TTL
7- 27
9/21/2014
T.C. Chang
SCAN
A PLC resolves the logic of a ladder diagram (program) rung by rung,
from the top to the bottom. Usually, all the outputs are updated based on
the status of the internal registers. Then the input states are checked
and the corresponding input registers are updated. Only after the I/Os
have been resolved, is the program then executed. This process is run
in a endless cycle. The time it takes to finish one cycle is called the
scan time. In some controllers the idle state is eliminated. In this case,
the scan time varies depends on the program length.
begin
Input
Output
Resolve
logic
Idle
Scan cycle
7- 28
9/21/2014
T.C. Chang
PLC Programming
Ladder Diagram - most common
Structure Text Programming (ST)
Functional Block Programming (FB)
Instruction List (IL)
Sequential Function Chart (SFC)
7- 29
9/21/2014
T.C. Chang
PLC Ladder Diagram
INSTRUCTIONS
1) Relay,
2) Timer and counter,
3) Program control,
4) Arithmetic,
5) Data manipulation,
6) Data transfer, and
7) Others, such as sequencers.
7- 30
9/21/2014
T.C. Chang
LOGIC STATES
ON : TRUE, contact closure, energize, etc.
OFF: FALSE, contact open , de-energize, etc.
(In the notes we use the symbol "~" to represent
negation. AND and OR are logic operators. )
Do not confuse the internal relay and program with the external
switch and relay. Internal symbols are used for programming.
External devices provide actual interface.
7- 31
9/21/2014
T.C. Chang
AND and OR LOGIC
PB1 R1 PB2
R2
R1 = PB1.AND.PB2
R2 = PB2.AND.~PB4
PB3 PB4
PB1 R1
PB2
R1 = PB1 .OR. PB2
AND
OR
7- 32
9/21/2014
T.C. Chang
COMBINED AND & OR
R1 = PB1 .OR. (PB2 .AND. PB3)
PB1 R1
PB2
pb3
7- 33
9/21/2014
T.C. Chang
RELAY
A Relay consists of two parts, the coil and the contact(s).
Contacts:
a. Normally open -| |-
b. Normally closed -|/|-
c. Positive transition sensing -|P|-
d. Negative transition sensing -|N|-
Coil:
a. Coil -( )-
b. negative coil -(/)-
c. Set Coil -(S)-
d. Reset Coil -(R)-
( )
7- 34
9/21/2014
T.C. Chang
Relay (continue)
Coil:
e. Retentive memory Coil -(M)-
f. Set retentive memory Coil -(SM)-
g. Reset retentive memory Coil -(RM)-
h. Positive Transition-sensing Coil -(P)-
h. Negative Transition-sensing Coil -(N)-
(set coil latches the state, reset coil deenergize the set coil.
retentive coil retain the state after power failure.)
7- 35
9/21/2014
T.C. Chang
TIMERS AND COUNTERS
Timers:
a. Retentive on delay -(RTO)-
b. Retentive off delay -(RTF)-
c. Reset -(RST)-
Counter:
a. Counter up -(CTU)-
b. Counter down -(CTD)-
c. Counter reset -(CTR)-
RTO counting stop counting
resume
RTF stop counting stop
True False True
Input
RTO reach PR value, output ON
RTF reach PR value, output OFF
PR value in 0.1 second
7- 36
9/21/2014
T.C. Chang
SEQUENCER
Sequencers are used with machines or processes involving
repeating operating cycles which can be segmented into
steps.
Output
Step A B C Dwell time
1 ON OFF OFF 5 sec.
2 ON ON OFF 10 sec.
3 OFF OFF ON 3 sec.
4 OFF ON OFF 9 sec.
7- 37
9/21/2014
T.C. Chang
A-B PLC
I/O points are numbered, they correspond to the I/O slot on the
PLC.
For A-B controller used in our lab
I/O uses 1-32
Internal relays use 033 - 098
Internal timers/counters/sequencers use 901-932
Status 951-982
7- 38
9/21/2014
T.C. Chang
PROGRAMMING EXAMPLE 1
Part
microswitch
Bar code reader
Stopper
Conveyor
Machine
Robot
id description state explanation
MSI microswitch 1 part arrive
R1 output to bar code reader 1 scan the part
C1 input from bar code reader 1 right part
R2 output robot 1 loading cycle
R3 output robot 1 unloading cycle
C2 input from robot 1 robot busy
R4 output to stopper 1 stopper up
C3 input from machine 1 machine busy
C4 input from machine 1 task complete
7- 39
9/21/2014
T.C. Chang
SOLUTION
01
02
03
04
05
11
12
13
14
15
Input
Output
Programmable
Controller
PLC
MS1
C1
C2
C3
C4
R1
R2
R3
R4
01 14
11
02
14 04 03
14
12
13 05 03
Rung 1. If part arrives and no
part is stopped, trigger the
bar code reader.
Rung 2. If it is a right part,
activate the stopper.
Rung 3. If the stopper is up,
the machine is not busy
and the robot is not busy,
load the part onto the
machine.
Rung 4. If the task is
completed and the robot is
not busy, unload the
machine.
7- 40
9/21/2014
T.C. Chang
Structured Text Programming
a high level language
used to express the behavior of functions,
function blocks and programs
In IEC 1131-3 standard, it has a syntax very
similar to PASCAL
strongly typed language
Functions:
assignments
expressions
statements
operators
function calls
flow control
7- 41
9/21/2014
T.C. Chang
Data Types
SINT short integer 1 byte
INT integer 2 bytes
DINT double integer 4 bytes
LINT long integer 8 bytes
USINT unsigned short integer 1 byte
UINT unsigned integer 2 bytes
UDINT unsigned double integer 4 bytes
ULINT unsigned long integer 8 bytes
REAL real 4 bytes
LREAL long real 8 bytes
TIME time duration
DATE calendar date
TOD time of day
DT date and time of day
STRING character strings
BOOL boolean 1 bit
BYTE byte 1 byte
WORD 16 bit bit string 16 bits
DWORD 32 bit bit string 32 bits
LWORD 64 bit bit string 64 bits
7- 42
9/21/2014
T.C. Chang
Derived Data Types
TYPE (* user defined data types, this is a comment*)
pressure : REAL;
temp : REAL;
part_count : INT;
END_TYPE;
Structure:
TYPE data_packet:
STRUCT
input : BOOL;
t : TIME;
out : BOOL;
count : INT;
END_STRUCT;
END_TYPE;
7- 43
9/21/2014
T.C. Chang
Variable Declarations
VAR
I,j,k : INT;
v : REAL;
END_VAR
Local variable:
Use VAR, VAR_INPUT,
VAR_OUTPUT, VAR_IN_OUT,
VAR_GLOBAL,
VAR_EXTERNAL for different
variable types.
7- 44
9/21/2014
T.C. Chang
Operators and Expressions
( ) parenthesized expression
function( ) function
** exponentiation
- negation
NOT Boolean complement
+ - * / math operators
MOD modulus operation
< > <= >= comparison operators
= equal
<> not equal
AND, & Boolean AND
XOR Boolean XOR
OR Boolean OR
Y := X+1.0;
y := a AND b;
v := (v1 + v2 + v3)/3
output := (light = open) OR
(door = shut);
7- 45
9/21/2014
T.C. Chang
Condition Statements
IF a > 100 THEN
redlight := on;
ELSEIF a > 50 THEN
yellowlight := on;
ELSE
greenlight := on;
END_IF;
CASE dial_setting OF
1 : x := 10;
2 : x := 15;
3 : x := 18;
4,5: x := 20; (* 4 or 5 *)
ELSE
x := 30;
END_CASE
7- 46
9/21/2014
T.C. Chang
Iteration Statements
FOR I:= 0 to 100 BY 1 DO
light[I] := ON;
END_FOR
I := 0;
WHILE I < 100 DO
I := I + 1;
light[I] := on;
END_WHILE
I := 0;
REPEAT
I := I + 1;
light[I] := on;
UNTIL I > 100;
END_REPEAT
7- 47
9/21/2014
T.C. Chang
Functions
FUNCTION add_num : REAL
VAR_INPUT
I,J : REAL
END_VAR
add_num := I + J;
END_FUNCTION
Call a function:
x:= add_num(1.2, 5.6);
Built-in Functions:
ABS, SQRT, LN, LOG, EXP, SIN, COS, TAN, ASIn, ACOS,
ATAN, ADD, MUL, SUB, DIV, MOD, EXPT, MOVE), logic
functions (AND, OR, XOR, NOT), bit string functions (SHL,
SHR shift bit string left and right , ROR, ROL rotate bit
string), etc.
7- 48
9/21/2014
T.C. Chang
Programs
PROGRAM example7.1
VAR_INPUT
MSI : BOOL;
C1 : BOOL;
C2 : BOOL;
C3 : BOOL;
C4 : BOOL;
END_VAR
VAR_OUTPUT
R1 : BOOL : FALSE;
R2 : BOOL : FALSE;
R3 : BOOL : FALSE;
R4 : BOOL : FALSE;
END_VAR
R1 := MS1 AND (NOT R4);
R2 := R4 AND (NOT C3) AND (NOT C2);
R3 := C4 AND (NOT C3);
R4 := C1;
END_PROGRAM
7- 49
9/21/2014
T.C. Chang
Functional Block Programming
Functional block (FB) is a well packaged element of
software that can be re-used in different parts of an
application or even in different projects. Functional
blocks are the basic building blocks of a control system
and can have algorithms written in any of the IEC
languages.
7- 50
9/21/2014
T.C. Chang
An Up Counter Function Block
The algorithm in Structured Text:
FUNCTION BLOCK CTU
VAR_INPUT
CU : BOOL;
R : BOOL;
PV : INT;
END_VAR
VAR_OUTPUT
Q : BOOL;
CV : INT;
END_VAR
IF R THEN
CV := 0;
ELSEIF CU
AND (CV < PV) THEN
CV := CV + 1;
END_IF;
Q := (CV >= PV);
END_FUNCTION_BLOCK
CU : input to be counted
R : reset
PV : preset value
Q : contact output
CV : counter value.
7- 51
9/21/2014
T.C. Chang
A PID Control Function Block
block diagram
Vout K E T Edt T
p r d
dE
dt
control algorithm
SP set point
PV sensor feedback
KP proportional error gain
TR integral gain
TD derivative gain
AUTO calculate
XOUT output to process
XO manual output adjustment
cycle time between execution
7- 52
9/21/2014
T.C. Chang
Instruction List Programming
A low level language which has a structure similar to an
assembly language. Since it is simple, it is easy to learn
and ideally for small hand-held programming devices.
Each line of code can be divided into four fields: label,
operator, operand, and comment.
e.g.
LD MS1
ST R1
loop ANDN C3
7- 53
9/21/2014
T.C. Chang
Operators
Operator Modifiers Description
LD N load operand into
register
ST N store register
value into operand
S set operand true
R reset operand
false
AND N, ( Boolean AND
& N, ( Boolean AND
OR N, ( Boolean OR
XOR N, ( Boolean XOR
ADD ( addition
SUB ( subtraction
MUL ( multiplication
DIV ( division
GT ( greater than
GE ( greater than and equal
to
EQ ( equal
NE ( not equal
LE ( less than and equal to
LT ( less than
JMP C, N jump to label
CAL C, N call function block
RET C, N return from function or
function block
) execute last deferred
operator
Modifier N means negate. ( defers the
operator. C is a condition modifier, the
operation is executed if the register value is true.
7- 54
9/21/2014
T.C. Chang
Instruction List for Example 1
PROGRAM example7.1
VAR_INPUT
MSI : BOOL;
C1 : BOOL;
C2 : BOOL;
C3 : BOOL;
C4 : BOOL;
END_VAR
VAR_OUTPUT
R1 : BOOL : FALSE;
R2 : BOOL : FALSE;
R3 : BOOL : FALSE;
R4 : BOOL : FALSE;
END_VAR
LD MS1
ANDN R4
ST R1
LD R4
ANDN C3
ANDN C2
ST R2
LD C4
ANDN C3
ST R3
LD C1
ST R4
END_PROGRAM
7- 55
9/21/2014
T.C. Chang
Sequential Function Chart
(SFC)
A graphics language used for depicting sequential
behavior. The IEC standard grew out of the French
standard Grafcet which in turn is based on Petri-net. A
SFC is depicted as a series of steps shown as rectangular
boxes connected by vertical lines. Each step represent a
state of the system being controlled. The horizontal bar
indicates a condition. It can be a switch state, a timer, etc.
A condition statement is associated with each condition
bar. Each step can also have a set of actions. Action
qualifier causes the action to behave in certain ways. The
indicator variable is optional. It is for annotation
purposes.
7- 56
9/21/2014
T.C. Chang
SFC
Action Qualifiers:
N non-stored, executes while the
step is active
R resets a store action
S sets an action active
L time limited action, terminates
after a given period
D time delayed action.
P a pulse action, executes once in
a step
SD stored and time delayed
DS time delayed and stored
SL stored and time limited
7- 57
9/21/2014
T.C. Chang
SFC for Example 1