PLC B i t t. ▫ Programming a PLC - Basic structure. ▫ Programming languages. ▫
Real-life ... Programmable Logic Controller | Stefan Reichel | 23.06.2010 ..... http:/
/www.scantime.co.uk/_docs/Mi/Structured%20Text%20Prog%20Manual.pdf.
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 4
Control-Chain Closed-Loop Control Si l Input-Signal
Control
l l Control-Signal
Actor
Sensor
Programmable Logic Controller | Stefan Reichel | 23.06.2010
Process
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
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 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
8
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
S ft SPS Soft
Slot SPS
Programmable Logic Controller | Stefan Reichel | 23.06.2010
Structure of PLC based systems 11
PSU
CPU
RAM
ROM
Ethernet 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 tb 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
Graphical 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 FCs FBs FCs FBs FBs FCs FBs FBs FCs FBs FCs FBs
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
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 Q for Output
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:
DATATYPE
:=INIT;
VAR Sensor AT%IX0.1 END_VAR;
:Bool
:=false; (*Beispiel*)
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 VAR_OUTPUT VAR VAR_GLOBAL VAR_IN_OUT VAR_RETAIN VAR_PERSISTANT
Input variables Output p variables 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 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 HEATER := : OFF; COOLER := ON; ELSIF (TEMP < 19) HEATER := ON; COOLER := OFF; END_IF;
CASE f OF 1: a:=3; 2: a:=5; 3: a:=2; ELSE a:=0; END CASE;
Programmable Logic Controller | Stefan Reichel | 23.06.2010
Programming a PLC – Structured text 27
Structured text support several loop pp p types 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 programming g ,g p 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, graphical programming g ,g p 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 Function Chart,, g graphical programming q p 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