plc programming

57
7- 1 08/14/22 ©T.C. Chang Chapter 7. PROGRAMMABLE LOGIC CONTROLLER Dr. T.C. Chang School of Industrial Engineering Purdue University

Upload: shaarib-khan

Post on 26-Oct-2014

600 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: PLC Programming

7- 104/07/23

©T.C. Chang

Chapter 7. PROGRAMMABLE

LOGIC CONTROLLER

Dr. T.C. ChangSchool of Industrial EngineeringPurdue University

Page 2: PLC Programming

7- 204/07/23

©T.C. Chang

FUNCTIONS OF CONTROLLERS

1) on-off control,

2) sequential control,

3) feedback control, and

4) motion control.

Page 3: PLC Programming

7- 304/07/23

©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.

Page 4: PLC Programming

7- 404/07/23

©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)

Page 5: PLC Programming

7- 504/07/23

©T.C. Chang

VENDORS

MODICOM - GOULD

ALLEN-BRADLEY

GE

SQUARE-D

etc.

Page 6: PLC Programming

7- 604/07/23

©T.C. Chang

PLC

CPU

System

User LadderDiagram

Working memoryregisters

Input

Flag

Output

Input Module

OutputModule

Page 7: PLC Programming

7- 704/07/23

©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

Page 8: PLC Programming

7- 804/07/23

©T.C. Chang

A Small Size PLC

• Measures 4.72”x 3.15” x 1.57”.

• 32 I/O points

• Standard RS 232 serial communication port

Allen-Bradley MicroLogix 1000

Page 9: PLC Programming

7- 904/07/23

©T.C. Chang

SWITCHES

DPSTSPDT

Non-locking Locking

Normally Ope n Normally Close d

Multiple Throw

P1

P2

Multiple Pole

Break-before-make Make -before -bre ak

Page 10: PLC Programming

7- 1004/07/23

©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) hastwo 25 pin serial ports to switch from.

InputOutput

A B

Knob

How is this switch classified?

Page 11: PLC Programming

7- 1104/07/23

©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

Page 12: PLC Programming

7- 1204/07/23

©T.C. Chang

RELAYSA switch whose operation is activated by an electromagnet is called a "relay"

contact

coil

input

Relay coil

R1

R1Output contact

Page 13: PLC Programming

7- 1304/07/23

©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

Page 14: PLC Programming

7- 1404/07/23

©T.C. Chang

TIMERA 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 40 5

Page 15: PLC Programming

7- 1504/07/23

©T.C. Chang

AN EXAMPLE OF RELAY LOGIC

L1

LS1 PB1 LS2 R1

R1

R1TIMER 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.

LS1PB1

LS2

R1

TIMER

5Motor R2

Page 16: PLC Programming

7- 1604/07/23

©T.C. Chang

PLC ARCHITECTUREProgrammable controllers replace most of the relay panel wiring by

software programming.

ProcessorI/O Modules

MemoryPower Supply

Program Loader

Printer

Cassette Loader

EPROM Loader

Switches

Machines

Peripherals External Devices

PC

A typical PLC

Page 17: PLC Programming

7- 1704/07/23

©T.C. Chang

PLC COMPONENTS1. 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.

Page 18: PLC Programming

7- 1804/07/23

©T.C. Chang

PLC COMPONENTS3. 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

Page 19: PLC Programming

7- 1904/07/23

©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

Page 20: PLC Programming

7- 2004/07/23

©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

Page 21: PLC Programming

7- 2104/07/23

©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

Page 22: PLC Programming

7- 2204/07/23

©T.C. Chang

A Hand Held Programmer

An Allen-Bradley hand-held programmer for MicroLogix 1000

Page 23: PLC Programming

7- 2304/07/23

©T.C. Chang

LADDER DIAGRAMA ladder diagram (also called contact symbology) is a means of

graphically representing the logic required in a relay logic system.

A

R1PB1 PB2

R1

R1

start emergency stopRail

Rung

Page 24: PLC Programming

7- 2404/07/23

©T.C. Chang

PLC WIRING DIAGRAM

Externalswitches

Stored program

01 02 20

20

20 11

01

02

03

11

12

C

PLCInput OutputA

B

Page 25: PLC Programming

7- 2504/07/23

©T.C. Chang

Input Connections

AC DC TTL

Page 26: PLC Programming

7- 2604/07/23

©T.C. Chang

Output Connections

AC DC TTL

Page 27: PLC Programming

7- 2704/07/23

©T.C. Chang

SCANA 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

Resolvelogic

Idle

Scan cycle

Page 28: PLC Programming

7- 2804/07/23

©T.C. Chang

PLC Programming

• Ladder Diagram - most common

• Structure Text Programming (ST)

• Functional Block Programming (FB)

• Instruction List (IL)

• Sequential Function Chart (SFC)

Page 29: PLC Programming

7- 2904/07/23

©T.C. Chang

PLC Ladder DiagramINSTRUCTIONS

1) Relay,

2) Timer and counter,

3) Program control,

4) Arithmetic,

5) Data manipulation,

6) Data transfer, and

7) Others, such as sequencers.

Page 30: PLC Programming

7- 3004/07/23

©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 externalswitch and relay. Internal symbols are used for programming.External devices provide actual interface.

Page 31: PLC Programming

7- 3104/07/23

©T.C. Chang

AND and OR LOGIC

PB1 R1PB2

R2

R1 = PB1.AND.PB2 R2 = PB2.AND.~PB4

PB3 PB4

PB1 R1

PB2

R1 = PB1 .OR. PB2

AND

OR

Page 32: PLC Programming

7- 3204/07/23

©T.C. Chang

COMBINED AND & OR

R1 = PB1 .OR. (PB2 .AND. PB3)

PB1 R1

PB2 pb3

Page 33: PLC Programming

7- 3304/07/23

©T.C. Chang

RELAYA 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)-

( )

Page 34: PLC Programming

7- 3404/07/23

©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.)

Page 35: PLC Programming

7- 3504/07/23

©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 ONRTF reach PR value, output OFF

PR value in 0.1 second

Page 36: PLC Programming

7- 3604/07/23

©T.C. Chang

SEQUENCERSequencers 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.

Page 37: PLC Programming

7- 3704/07/23

©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

Page 38: PLC Programming

7- 3804/07/23

©T.C. Chang

PROGRAMMING EXAMPLE 1

Part

microswitch

Bar code reader

Stopper

Conveyor

MachineRobot

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

Page 39: PLC Programming

7- 3904/07/23

©T.C. Chang

SOLUTION

01

02

03

04

05

11

12

13

14

15

InputOutput

Programmable Controller PLC

MS1

C1

C2

C3

C4

R1R2R3

R4

01 14 11

02

14 04 03

14

12

1305 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.

Page 40: PLC Programming

7- 4004/07/23

©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

Page 41: PLC Programming

7- 4104/07/23

©T.C. Chang

Data Types

SINT short integer 1 byteINT integer 2 bytesDINT double integer 4 bytesLINT long integer 8 bytesUSINT unsigned short integer 1 byteUINT unsigned integer 2 bytesUDINT unsigned double integer 4 bytesULINT unsigned long integer 8 bytesREAL real 4 bytesLREAL long real 8 bytes

TIME time durationDATE calendar dateTOD time of dayDT date and time of daySTRING character strings

BOOL boolean 1 bitBYTE byte 1 byteWORD 16 bit bit string 16 bitsDWORD 32 bit bit string 32 bitsLWORD 64 bit bit string 64 bits

Page 42: PLC Programming

7- 4204/07/23

©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;

Page 43: PLC Programming

7- 4304/07/23

©T.C. Chang

Variable Declarations

VARI,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.

Page 44: PLC Programming

7- 4404/07/23

©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);

Page 45: PLC Programming

7- 4504/07/23

©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 OF1 : x := 10;2 : x := 15;3 : x := 18;4,5: x := 20; (* 4 or 5 *)

ELSEx := 30;

END_CASE

Page 46: PLC Programming

7- 4604/07/23

©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

Page 47: PLC Programming

7- 4704/07/23

©T.C. Chang

FunctionsFUNCTION 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.

Page 48: PLC Programming

7- 4804/07/23

©T.C. Chang

ProgramsPROGRAM 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

Page 49: PLC Programming

7- 4904/07/23

©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.

Page 50: PLC Programming

7- 5004/07/23

©T.C. Chang

An Up Counter Function BlockThe 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 : resetPV : preset valueQ : contact outputCV : counter value.

Page 51: PLC Programming

7- 5104/07/23

©T.C. Chang

A PID Control Function Block

block diagram

Vout K E T Edt Tp r ddEdt

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

Page 52: PLC Programming

7- 5204/07/23

©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

Page 53: PLC Programming

7- 5304/07/23

©T.C. Chang

OperatorsOperator Modifiers Description

LD N load operand into register

STN 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.

Page 54: PLC Programming

7- 5404/07/23

©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

Page 55: PLC Programming

7- 5504/07/23

©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.

Page 56: PLC Programming

7- 5604/07/23

©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

Page 57: PLC Programming

7- 5704/07/23

©T.C. Chang

SFC for Example 1