Anda di halaman 1dari 40

Programmable Logic Controller(PLC)

Seminar: Distributed Real-time Systems

Outline
2

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

Programmable Logic Controller | Stefan Reichel | 23.06.2010

History and basic idea

Programmable Logic Controller | Stefan Reichel | 23.06.2010

History and basic idea


4

Control-Chain Closed-Loop Control


Si l Input-Signal

Control

l l Control-Signal

Actor

Process

Sensor

Programmable Logic Controller | Stefan Reichel | 23.06.2010

History and basic idea


5

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 Foundation of M di F d ti f Modicon, MOd l DI it l CONt ll MOdular DIgital CONtroller Richard (Dick) Morley inventor of PLC 1969 invention of solid-state sequential logic solver solid state

Programmable Logic Controller | Stefan Reichel | 23.06.2010

History and basic idea


7

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

Structure of PLC based systems

Programmable Logic Controller | Stefan Reichel | 23.06.2010

Structure of PLC based systems


9

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 Soft S ft SPS Slot SPS

Programmable Logic Controller | Stefan Reichel | 23.06.2010

Structure of PLC based systems


11 Ethernet RS

PSU

CPU

RAM

ROM

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 Event b E t based 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


Instruction-List Structured-Text Ladder-Diagram

Graphical

Sequential Function Chart Function Block Diagram

Programmable Logic Controller | Stefan Reichel | 23.06.2010

Programming a PLC
16

PLC configuration structure Task Program Program Program FCs FBs FCs FBs FBs FCs FBs FBs FCs FBs FCs FBs Task Program Program Program FCs FBs FCs FBs FBs FCs FBs FBs FCs FBs FCs FBs

Programmable Logic Controller | Stefan Reichel | 23.06.2010

Programming a PLC
17 Input Output

Function

Functions are reusable Various predefined functions:


Class Bool Mathematic Casting Numeric Comparator Bit Operations Bit-Operations Selection Functions AND, NOT, OR, XOR ADD, SUB, NEG, DIV, MUL, MOD BYTE_TO_WORD, INT_TO_REAL SIN, TAN, COS, LN, LOG EQ, LT, GT SHL, SHR, ROL, ROR 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 Timer Trigger Flip-Flops Counter

Function blocks TP, TON, TOF F_TRIG, R_TRIG SR, RS CTU, CTD, CTUD , ,

Programmable Logic Controller | Stefan Reichel | 23.06.2010

Programming a PLC
19

PLC resource addresssing g


I/O Identification AT % Source I for Input Q for Output Type X Bit 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:


VAR Sensor AT%IX0.1 END_VAR; VAR INPUT X: REAL; Y: REAl; END VAR; ; VAR_OUTPUT ERGEBNIS: INT; END VAR;

DATATYPE

:=INIT;

(**)

:Bool

:=false; (*Beispiel*)

Programmable Logic Controller | Stefan Reichel | 23.06.2010

Programming a PLC - Variables


21

Several variable types: yp VAR_INPUT VAR_OUTPUT VAR VAR_GLOBAL VAR_IN_OUT VAR_RETAIN VAR_PERSISTANT Input variables Output variables p Local variables Global variables Variable can be changed and returned Variable keeps value after power off 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 language , p g g g g Very lightweight language Every line consists of command and operand Several commands defined, extract: , Description Load variable Store variable Jump Conditional jump Call of a function/program/block

Command LD ST JMP JMPC CAL

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 languages like c, pascal , g g g ,p Every command ends with a semicolon Allows conditions like if/case and loops Assignments with := g
CASE f OF 1: a:=3; 2: a:=5; 3: a:=2; ELSE a:=0; END CASE;

IF (TEMP > 20) THEN HEATER := OFF; : COOLER := ON; ELSIF (TEMP < 19) HEATER := ON; COOLER := OFF; END_IF;

Programmable Logic Controller | Stefan Reichel | 23.06.2010

Programming a PLC Structured text


27

Structured text support several loop types pp p yp


FOR a:=0 TO 10 BY 1 DO c:=a + 4; ; END_FOR; WHILE b > 1 DO b:= b/2; / ; END_WHILE; REPEAT a:= b * c; UNTIL a > 1000; ; END_REPEAT;

Function and function block calls


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

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, graphical p g programming language g ,g p g g g Close to circuit diagram Power flow from left to right Symbol --| |-|| --|/|---| NOT |---() --P---N-N Description Opener,if on state is transfered p , Closer,if off state is transfered Negation Output relais Detection of positive change 01 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, graphical p g programming language g ,g p g 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 a

OR AND

Programmable Logic Controller | Stefan Reichel | 23.06.2010

Programming a PLC SFC


33

Sequencial Function Chart, graphical p g programming language q ,g p g 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