Programmable Logic Controller(PLC) Seminar: Distributed Real-time Systems
Outline Outline 2 History and basic idea General structure of a PLC based system Programming a PLC - Basic structure P i PLC B i t t Programming languages Real-life examples 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 History and basic idea 4 Control-Chain Closed-Loop Control Input-Signal Si l l l Control-Signal Actor Control Process Sensor Programmable Logic Controller | Stefan Reichel | 23.06.2010
History and basic idea 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 History and basic idea 6 General Motors Hydramatic requests proposal for an alternative Winner “Bedford Associates” with 084 Foundation of Modicon, MOdular DIgital CONtroller F d ti f M di MOd l DI it l CONt ll Richard (Dick) Morley inventor of PLC 1969 invention of solid-state sequential logic solver 1969 invention of solid state sequential logic solver Programmable Logic Controller | Stefan Reichel | 23.06.2010
History and basic idea 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 Structure of PLC based systems 9 BUS e.g. Ethercat, CAN Programmable Logic Controller | Stefan Reichel | 23.06.2010
Structure of PLC based systems Structure of PLC based systems 10 Severall SPS types available Hardware SPS S ft SPS Soft SPS Slot SPS Programmable Logic Controller | Stefan Reichel | 23.06.2010
Structure of PLC based systems Structure of PLC based systems 11 Ethernet PSU CPU RAM ROM RS Internal Bus AI AO BI BO FB External Bus Programmable Logic Controller | Stefan Reichel | 23.06.2010
Structure of PLC based systems Structure of PLC based systems 12 Two ways of working Cyclic E Event based t b 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 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 Converting (compiling) the created ST program into an executable sequence program. Correcting the program if a convert (compile) Correcting the program if a convert (compile) error occurs. Programmable Logic Controller | Stefan Reichel | 23.06.2010
Programming a PLC 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 Chart Function Block Diagram Programmable Logic Controller | Stefan Reichel | 23.06.2010
Programming a PLC Programming a PLC 16 PLC configuration structure Task Task Program Program Program Program Program Program FCs FBs FCs FBs FCs FCs FCs FCs FBs FBs FBs FBs FCs FCs FCs FCs FBs FBs FBs FBs FCs FCs FCs FBs FBs FBs FCs FCs FCs FBs FBs FBs FCs FCs FBs FBs FCs FCs FBs FBs … FCs FBs FCs FBs Programmable Logic Controller | Stefan Reichel | 23.06.2010
Programming a PLC Programming a PLC 17 Input Output Function Functions are reusable Various predefined functions: Various predefined functions: Class Functions Bool Bool AND, NOT, OR, XOR 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 SHL, SHR, ROL, ROR Selection LIMIT, MIN, MAX Programmable Logic Controller | Stefan Reichel | 23.06.2010
Programming a PLC Programming a PLC 18 Input Output Function-Block Function blocks are reusable Accessable as instances with own state object orientation 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 Programming a PLC 19 PLC resource addresssing g I/O Identification Source Type AT % AT % I for Input I for Input X Bit 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 Programming a PLC - Variables 20 Variable declaration: NAME ADDRESS: DATATYPE :=INIT; (**) VAR 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 Programming a PLC - Variables 21 Several variable types: yp VAR_INPUT Input variables VAR_OUTPUT Output variables p 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 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 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: , Command Description LD LD Load variable 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 Programming a PLC - IL 25 Instruction list , example: , p a ∧ (b ∨ ( c ∧ -d)) = e LD A AND (B AND (B OR (C ANDN (D ) ) ) ST E Programmable Logic Controller | Stefan Reichel | 23.06.2010
Programming a PLC – Structured text 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 IF (TEMP > 20) THEN 1: 1: a:=3; a:=3; HEATER : HEATER := OFF; OFF; 2: a:=5; COOLER := ON; 3: a:=2; ELSIF (TEMP < 19) ELSE a:=0; HEATER := ON; END CASE; COOLER := OFF; END_IF; Programmable Logic Controller | Stefan Reichel | 23.06.2010
Programming a PLC – Structured text Programming a PLC – Structured text 27 Structured text support several loop types pp p 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 c:= MYFC(a,b); MYFB(IN:=a, IN:=b); c:= MYFB Q; c:= MYFB.Q; Programmable Logic Controller | Stefan Reichel | 23.06.2010
Programming a PLC – Structured text 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 Programming a PLC – Ladder diagram 29 Ladder diagram, graphical programming language g , g p p g g g g Close to circuit diagram Power flow from left to right Symbol Description --| |-- | | Opener,if on state is transfered p , --|/|-- Closer,if off state is transfered --| NOT |-- Negation --() Output relais --P-- Detection of positive change 0 1 Detection of nefative change 1 0 Detection of nefative change 1 0 --N-- N Programmable Logic Controller | Stefan Reichel | 23.06.2010
Programming a PLC – Structured text Programming a PLC – Structured text 30 Our example: p a ∧ (b ∨ ( c ∧ -d)) = e a = I/0 b = I/1 b = I/1 … Programmable Logic Controller | Stefan Reichel | 23.06.2010
Programming a PLC – Function block Programming a PLC – Function block 31 Function block diagram, graphical programming language g , g p p g g g g Based on function and function block composition Programmable Logic Controller | Stefan Reichel | 23.06.2010
Programming a PLC – Function Block Programming a PLC – Function Block 32 Our example: p a ∧ (b ∨ ( c ∧ -d)) = e c ANDN d b OR a a e e AND AND Programmable Logic Controller | Stefan Reichel | 23.06.2010
Recommend
More recommend