Download as pdf or txt
Download as pdf or txt
You are on page 1of 40

Programmable Logic Controller(PLC)

Seminar: Distributed Real-time Systems


Outline

2
History and basic idea
General structure of a PLC based system
P
Programming
i a PLC - Basic
B i structure
t t
Programming languages
Real-life
Real life examples

Programmable Logic Controller | Stefan Reichel | 23.06.2010


3

History and basic idea

Programmable Logic Controller | Stefan Reichel | 23.06.2010


History and basic idea

Control-Chain
Closed-Loop Control

Si l
Input-Signal l l
Control-Signal
Control Actor Process

Sensor

Programmable Logic Controller | Stefan Reichel | 23.06.2010


History and basic idea

Situation:
Hundred or thousands of relays, closed-loop controllers in cars
Complete rewiring for new model creation needed

Programmable Logic Controller | Stefan Reichel | 23.06.2010


History and basic idea

6
General Motors Hydramatic requests proposal for an alternative
Winner Bedford Associates with 084
F
Foundation
d ti off Modicon,
M di MOd l DIgital
MOdular DI it l CONtroller
CONt ll
Richard (Dick) Morley inventor of PLC
1969 invention of solid-state
solid state sequential logic solver

Programmable Logic Controller | Stefan Reichel | 23.06.2010


History and basic idea

A programmable logic controller (PLC) or programmable controller is


a digital computer used for automation of electromechanical
processes.

Programmable Logic Controller | Stefan Reichel | 23.06.2010


8

Structure of PLC based systems

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Structure of PLC based systems

BUS e.g. Ethercat, CAN

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Structure of PLC based systems

10
Severall SPS types available
Hardware SPS
S ft SPS
Soft
Slot SPS

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Structure of PLC based systems

11

Ethernet
PSU CPU RAM ROM RS

Internal Bus

BI BO AI AO FB

External Bus

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Structure of PLC based systems

12
Two ways of working
Cyclic
E
Event
tbbased
d

Programmable Logic Controller | Stefan Reichel | 23.06.2010


13

Programming a PLC system

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC

14
PLC Programming process:

Creating a new ST project.

Defining the labels to be used in an ST program.

Creating an ST program.

Converting (compiling) the created ST program


into an executable sequence program.

Correcting the program if a convert (compile)


error occurs.

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC

15
IEC 61131-3 international standard defines PLC programming
languages and concepts

IEC 61131-3 Programming languages

Text-based Graphical

Instruction-List Structured-Text Ladder-Diagram Sequential Function


Chart
Function Block
Diagram

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC

16
PLC configuration structure

Task Task
Program Program
Program Program
Program Program
FBs FCs FBs FCs
FBs
FBs FCs FBs
FBs FCs
FBs
FBs FCs FBs
FBs FCs
FBs FCs FBs FCs
FBs FCs FBs FCs

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC

17 Input Output

Function

Functions are reusable


Various predefined functions:
Class Functions
Bool AND, NOT, OR, XOR
Mathematic ADD, SUB, NEG, DIV, MUL, MOD
Casting BYTE_TO_WORD, INT_TO_REAL
Numeric SIN, TAN, COS, LN, LOG
Comparator EQ, LT, GT
Bit-Operations
Bit Operations SHL, SHR, ROL, ROR
Selection LIMIT, MIN, MAX

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC

18 Input Output

Function-Block

Function blocks are reusable


Accessable as instances with own state object orientation
Various predefined functions blocks available

Class Function blocks


Timer TP, TON, TOF
Trigger F_TRIG, R_TRIG
Flip-Flops SR, RS
Counter CTU,, CTD,, CTUD

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC

19
PLC resource addresssing
g

I/O Identification Source Type


AT % I for Input X Bit
Q for Output B Byte
W Word
D DoubleWord

Addresssing example:
AT %IX1.2
AT %IW6

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC - Variables

20
Variable declaration:
NAME ADDRESS: DATATYPE :=INIT; (**)

VAR
Sensor AT%IX0.1 :Bool :=false; (*Beispiel*)
END_VAR;

VAR INPUT
X: REAL;
Y: REAl;
END VAR;
;

VAR_OUTPUT
ERGEBNIS: INT;
END VAR;

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC - Variables

21
Several variable types:
yp

VAR_INPUT Input variables


VAR_OUTPUT Output
p variables
VAR Local variables
VAR_GLOBAL Global variables
VAR_IN_OUT Variable can be changed and returned
VAR_RETAIN Variable keeps value after power off
VAR_PERSISTANT Variable keeps value after software
redeployment

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC - Datatypes

22

Programmable Logic Controller | Stefan Reichel | 23.06.2010


23

Programming Languages

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC - IL

24
Instruction list,, assembler like programming
p g g language
g g
Very lightweight language
Every line consists of command and operand
Several commands defined,, extract:

Command Description
LD Load variable
ST Store variable
JMP Jump
JMPC Conditional jump
CAL Call of a function/program/block

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC - IL

25
Instruction list,, example:
p

a (b (c -d)) = e

LD A
AND (B
OR (C
ANDN (D
)
)
)
ST E

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC Structured text

26
Structured text,, close to high
g languages
g g like c,, pascal
p
Every command ends with a semicolon
Allows conditions like if/case and loops
Assignments
g with :=

IF (TEMP > 20) THEN CASE f OF


HEATER :=
: OFF; 1: a:=3;
COOLER := ON; 2: a:=5;
ELSIF (TEMP < 19) 3: a:=2;
HEATER := ON; ELSE a:=0;
COOLER := OFF; END CASE;
END_IF;

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC Structured text

27
Structured text support
pp several loop
p types
yp

FOR a:=0 TO 10 BY 1 DO WHILE b > 1 DO REPEAT a:= b * c;


c:=a + 4;
; b:= b/2;
/ ; UNTIL a > 1000;
;
END_FOR; END_WHILE; END_REPEAT;

Function and function block calls


MYFB(IN:=a, IN:=b); c:= MYFC(a,b);
c:= MYFB.Q;
MYFB Q;

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC Structured text

28
Our example:
p

a (b (c -d)) = e

e := a AND (b OR (C ANDN d));

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC Ladder diagram

29
Ladder diagram,
g graphical
,g p programming
p g g language
g g
Close to circuit diagram
Power flow from left to right

Symbol Description
--|| ||-- Opener,if
p , on state is transfered
--|/|-- Closer,if off state is transfered
--| NOT |-- Negation
--() Output relais
--P-- Detection of positive change 01
--N--
N Detection of nefative change 10

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC Structured text

30
Our example:
p

a (b (c -d)) = e

a = I/0
b = I/1

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC Function block

31
Function block diagram,
g graphical
,g p programming
p g g language
g g
Based on function and function block composition

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC Function Block

32
Our example:
p

a (b (c -d)) = e

c
d ANDN

b OR

a AND e

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Programming a PLC SFC

33
Sequencial
q Function Chart,, g graphical
p programming
p g g language
g g
Only used for sequencial data flows
Consists of actions and transitions

Programmable Logic Controller | Stefan Reichel | 23.06.2010


34

Real-Life examples

Programmable Logic Controller | Stefan Reichel | 23.06.2010


Real-Life examples

35

Folienmaster | Max Mustermann | 7. Oktober 2007


Real-Life examples

36

Folienmaster | Max Mustermann | 7. Oktober 2007


Real-Life examples

37

Folienmaster | Max Mustermann | 7. Oktober 2007


Real-Life examples

38

Folienmaster | Max Mustermann | 7. Oktober 2007


References

39 Speicherprogrammierbare Steuerungen, Matthias Seitz,


ISBN: 978-3-446-41431-0
http://www.software.rockwell.com/corporate/reference/Iec1131/st.cfm
http://www.sps-lehrgang.de/kontaktplan-kop/
http://www.plcmanual.com/plc-programming
http://www.plcsimulator.net/plc.php
http://www.amci.com/tutorials/tutorials-what-is-programmable-logic-controller.asp
http://www.scantime.co.uk/_docs/Mi/Structured%20Text%20Prog%20Manual.pdf

Programmable Logic Controller | Stefan Reichel | 23.06.2010


40

Thank you for your patience

Programmable Logic Controller | Stefan Reichel | 23.06.2010

You might also like