Você está na página 1de 97

# IST / DEEC / API

Industrial Automation
(Automação de Processos Industriais)

## PLC Programming languages

http://users.isr.ist.utl.pt/~jag/courses/api1213/api1213.html

## Slides 2010/2011 Prof. Paulo Jorge Oliveira

Rev. 2011-2013 Prof. José Gaspar
IST / DEEC / API

Syllabus:
Chap. 2 – Introduction to PLCs [2 weeks]
...

## Chap. 3 – PLC Programming languages [2 weeks]

Standard languages (IEC-61131-3):
Ladder Diagram; Instruction List, and Structured Text.
Software development resources.

...
Chap. 4 - GRAFCET (Sequential Function Chart) [1 week]

Page 2
IST / DEEC / API Chap. 3 - PLC Programming languages

## PLC Programming languages

(IEC 1131-3 changed to IEC 61131-3)
If %I1.0 THEN
%Q2.1 := TRUE
ELSE
%Q2.2 := FALSE
END_IF

## Instruction List Sequential Function Chart

1
(GRAFCET)
(1) m
LD %M12 2 Direita
AND %I1.0 (2) b
ANDN %I1.1 3 Carrega
OR %M10 (3) p
ST %Q2.0 4 Esquerda
(2) a

Page 3
IST / DEEC / API

## A program is a series of instructions

that directs the PLC to execute
actions.

## Relay ladder logic, the standard

programming language, is based on
electromagnetic relay control.
Input Output
Instructions Instructions

N S

Page 4
IST / DEEC / API Chap. 3 - PLC Programming languages

## Ladder diagram Types of operands:

Page 5
IST / DEEC / API Chap. 3 - PLC Programming languages

## Ladder diagram Types of operands:

Page 6
IST / DEEC / API Chap. 3 - PLC Programming languages

Basic Instructions
Load Normally open contact: contact is active (result is 1)
when the control bit is 1.
Normally closed contact: contact is active (result is 1)
when the control bit is 0.

## Contact in the rising edge: contact is active during a scan cycle

P
where the control bit has a rising edge.

## Contact in the falling edge: contact is active during a scan cycle

N
where the control bit has a falling edge.

## %I1.0 %Q2.0 I1.0

P t
Q2.0

t
Page 7
IST / DEEC / API Chap. 3 - PLC Programming languages

Basic Instructions

Page 8
IST / DEEC / API Chap. 3 - PLC Programming languages

Basic Instructions
Store The result of the logic function activates the coil.

## The inverse result of the logic function activates the coil.

S
The result of the logic function energizes the relay
(sets the latch).

R
The result of the logic function de-energizes the relay
(resets the latch)..

## %I1.0 %Q2.0 I1.0

N S t
Q2.0

t
Page 9
IST / DEEC / API Chap. 3 - PLC Programming languages

Basic Instructions
Store operands

Page 10
IST / DEEC / API Chap. 3 - PLC Programming languages

Relays with latch and unlatch

Page 11
IST / DEEC / API Chap. 3 - PLC Programming languages

Relay-type instructions

Example:

Page 12
IST / DEEC / API Chap. 3 - PLC Programming languages

Basic Instructions
AND AND of the operand with the result of the previous
logical operation.

## AND of the operand with the inverted result of the previous

logical operation.

P
AND of the rising edge with the result of the previous
logical operation.

N
AND of the falling edge with the result of the previous
logical operation.

## %I1.0 %I1.0 %Q2.0 I1.0

N P S t
Q2.0

t
Page 13
IST / DEEC / API Chap. 3 - PLC Programming languages

Basic Instructions
OR
OR of the operand with the result of the previous
logical operation.

## OR of the operand with the inverted result of the previous

logical operation.

## OR of the rising edge with the result of the previous

P logical operation.

## OR of the falling edge with the result of the previous

N logical operation.

Page 14
IST / DEEC / API Chap. 3 - PLC Programming languages

Basic Instructions
XOR

Page 15
IST / DEEC / API Chap. 3 - PLC Programming languages

Input Output
Instructions Instructions

N S

## The outputs that have a TRUE logical function, evaluated

from the left to right and from the top to the bottom, are
energized (Schneider, Micro PLCs).

Page 16
IST / DEEC / API Chap. 3 - PLC Programming languages

Example:

Page 17
IST / DEEC / API Chap. 3 - PLC Programming languages

Example:

Page 18
IST / DEEC / API Chap. 3 - PLC Programming languages

Example:

Page 19
IST / DEEC / API Chap. 3 - PLC Programming languages

## Note: it is important to study the constraints and potentialities of the

development tools.
Page 20
IST / DEEC / API Chap. 3 - PLC Programming languages

## Imbricated (nested) contacts and alternative solution

Page 21
IST / DEEC / API Chap. 3 - PLC Programming languages

## Contacts in the vertical and alternative solution

Page 22
IST / DEEC / API Chap. 3 - PLC Programming languages

Another example:

## Solves the problem of disallowed right to

left scanning (FDBC in fig5.30).

Page 23
IST / DEEC / API Chap. 3 - PLC Programming languages

## Ladder diagram Temporized Relays or Timers

Page 24
IST / DEEC / API Chap. 3 - PLC Programming languages

## Ladder diagram Temporized Relays or Timers (pneumatic)

The instantaneous contacts change state as soon as the timer coil is powered.
The delayed contacts change state at the end of the time delay.
Page 25
IST / DEEC / API Chap. 3 - PLC Programming languages

## Ladder diagram Temporized Relays or Timers

On-delay, provides time delay Off-delay, provides time delay when the
when the relay coil is energized. relay coil is de-energized.

## Tables: Relay symbols used for timed contacts.

Page 26
IST / DEEC / API Chap. 3 - PLC Programming languages

## Ladder diagram Temporized Relays or Timers

Page 27
IST / DEEC / API Chap. 3 - PLC Programming languages

## Ladder diagram Temporized Relays or Timers

Page 28
IST / DEEC / API Chap. 3 - PLC Programming languages

## Temporized Relays Identifier: %TMi 0..63 in the TSX37

Input: IN to activate
or Timers (PLC)
Mode: TON On delay
TOF Off delay
TP Monostable
%TMi
IN Q Time basis: TB 1mn (def.), 1s,
100ms, 10ms
MODE: TON
TB: 1mn
Programmed value: %TMi.P 0...9999 (def.)
period=TB*TMi.P
TM.P: 9999 Actual value: %TMi.V 0...TMi.P
MODIF: Y (can be read or tested)

## Modifiable: Y/N can be modified from

the console

Page 29
IST / DEEC / API Chap. 3 - PLC Programming languages

TON mode
Temporized Relays

or Timers (PLC)

%TMi
IN Q

MODE: TON
TB: 1mn

TM.P: 9999
MODIF: Y

App. example: start ringing the alarm if N sec after door open there is no disarm of the alarm.

Page 30
IST / DEEC / API Chap. 3 - PLC Programming languages

TOF mode
Temporized Relays

or Timers (PLC)

%TMi
IN Q

MODE: TOF
TB: 1mn

TM.P: 9999
MODIF: Y

App. example: turn off stairways lights after N sec the lights’ button has been released.

Page 31
IST / DEEC / API Chap. 3 - PLC Programming languages

Works as a monostable or as a pulse generator
Temporized Relays (with pre-programmed period)

or Timers (PLC)

%TMi
IN Q

MODE: TP
TB: 100msec

TM.P: 5
MODIF: Y

App. example: positive input edge give a controlled (fixed) duration pulse to start a motor.
Page 32
IST / DEEC / API Chap. 3 - PLC Programming languages

## Two alternative representations

Page 33
IST / DEEC / API Chap. 3 - PLC Programming languages

## Timers implementation in the Allen-Bradley PLC-5:

Page 34
IST / DEEC / API Chap. 3 - PLC Programming languages

## Timers operation in the Allen-Bradley PLC-5

EN

TT

DN

EN = Enable Bit
TT = Timer-Timing Bit
DN = Done Bit

Page 35
IST / DEEC / API Chap. 3 - PLC Programming languages

## Example of timer on-delay

Page 36
IST / DEEC / API Chap. 3 - PLC Programming languages

## Example of a timer on-delay that sets an output after a count-down

Page 37
IST / DEEC / API Chap. 3 - PLC Programming languages

## Example of timer on-delay

Page 38
IST / DEEC / API Chap. 3 - PLC Programming languages

## Coil is energized if the switch remains closed for 12 seconds

Page 39
IST / DEEC / API Chap. 3 - PLC Programming languages

## • When the pressure augments, PS1 detects the increase and

activates the main motor.

## • 15 seconds later the main

drive motor starts.

Page 40
IST / DEEC / API Chap. 3 - PLC Programming languages

## Example of timer programmed as off-delay

Page 41
IST / DEEC / API Chap. 3 - PLC Programming languages

## Example of timer programmed as off-delay

Page 42
IST / DEEC / API Chap. 3 - PLC Programming languages

## Example of timer programmed as off-delay

Page 43
IST / DEEC / API Chap. 3 - PLC Programming languages

## Example of timers programmed as off-delay and on-delay

Page 44
IST / DEEC / API Chap. 3 - PLC Programming languages

Timers

Animated demonstration:

Page 45
IST / DEEC / API Chap. 3 - PLC Programming languages

Retentive Timers
Switch-off region

Switch-on region

Motor accumulated
motion (rotation)
defines the on/off
timing.

Page 46
IST / DEEC / API Chap. 3 - PLC Programming languages

## Example of retentive timers

Page 47
IST / DEEC / API Chap. 3 - PLC Programming languages

Retentive Timers

Animated demonstration:
(search on the Schneider PLC or discuss implementation)

Page 48
IST / DEEC / API Chap. 3 - PLC Programming languages

Example:

• SW ON to start operation

## • Before motor starts,

lubrificate 10 s with oil.

• SW OFF to stop.
(lubrificate 15 s more).

## • After 3 hours of pump

operation, stop motor and
signal with pilot light.

## • Reset available after

servicing.

Page 49
IST / DEEC / API Chap. 3 - PLC Programming languages

Page 50
IST / DEEC / API Chap. 3 - PLC Programming languages

Page 51
IST / DEEC / API Chap. 3 - PLC Programming languages

## Timers for very long time intervals

Page 52
IST / DEEC / API Chap. 3 - PLC Programming languages

Example of a semaphore

Page 53
IST / DEEC / API Chap. 3 - PLC Programming languages

## Example of a semaphore in both directions

Page 54
IST / DEEC / API Chap. 3 - PLC Programming languages

Example

of a

semaphore

in both

directions

Page 55
IST / DEEC / API Chap. 3 - PLC Programming languages

Counters

Some applications...

Page 56
IST / DEEC / API Chap. 3 - PLC Programming languages

Implementation of Counters

## Internal structure representation

Page 57
IST / DEEC / API Chap. 3 - PLC Programming languages

Implementation of Counters
Two alternative representations:

## Coil-formatted counter and reset Block-formatted counter

instructions instruction

Page 58
IST / DEEC / API Chap. 3 - PLC Programming languages

Up-counters

Usage of an
incremental up-counter
and the corresponding
temporal diagram:

## PB1 increments counting

PB2 resets the counting
Page 59
IST / DEEC / API Chap. 3 - PLC Programming languages

Example:
Counting parts

Page 60
IST / DEEC / API Chap. 3 - PLC Programming languages

Example

## 1. Start conveyor motor

2. Passing cases increment counter
3. After 50 cases, stop motor

Page 61
IST / DEEC / API Chap. 3 - PLC Programming languages

Up/down-counters

Usage of an incremental
up-down-counter
and the corresponding
temporal diagram:

## PB1 increments counting

PB2 decrements the counting
PB3 resets the counter

Page 62
IST / DEEC / API Chap. 3 - PLC Programming languages

Up/down-counters

Example:

## Finite parking garage

Page 63
IST / DEEC / API Chap. 3 - PLC Programming languages

Example:

Page 64
IST / DEEC / API Chap. 3 - PLC Programming languages

Example:
Count
24 hours clock

Reset

Page 65
IST / DEEC / API Chap. 3 - PLC Programming languages

Example:

## Memory time of event

Internal relay OFF stops clock

Page 66
IST / DEEC / API Chap. 3 - PLC Programming languages

Incremental Encoder

## counter measures rotation angle or

rotation speed (if divided by time)

Page 67
IST / DEEC / API Chap. 3 - PLC Programming languages

Incremental Encoder

Example:
counter as a ”length sensor”

Page 68
IST / DEEC / API Chap. 3 - PLC Programming languages

## Example with counters and timers (cont.):

Specs:

• Starts M1 conveyor
upon pushing button .

## • After 15 plates stops M1

and starts conveyor M2 .

## • M2 operates for 5 seconds and

then stops.

• Restart sequence.

Page 69
IST / DEEC / API Chap. 3 - PLC Programming languages

## Example with counters and timers (cont.):

Specs:

• Starts M1 conveyor
upon pushing button .

## • After 15 plates stops M1

and starts conveyor M2 .

## • M2 operates for 5 seconds and

then stops.

• Restart sequence.

Page 70
IST / DEEC / API Chap. 3 - PLC Programming languages

## Example with counters and timers (cont.):

Specs:

• Starts M1 conveyor
upon pushing button .

## • After 15 plates stops M1

and starts conveyor M2 .

## • M2 operates for 5 seconds and

then stops.

• Restart sequence.

Page 71
IST / DEEC / API Chap. 3 - PLC Programming languages

## To use a timer to command a counter, to implement large periods of time.

Page 72
IST / DEEC / API Chap. 3 - PLC Programming languages

Counters

Example:

Page 73
IST / DEEC / API Chap. 3 - PLC Programming languages

## Value progr.: %Ci.P 0...9999 (def.)

%Ci Value Actual: %Ci.V 0...Ci.P (only to be read)
R E
Modifiable: Y/N can be modified from
S the console
CP: 9999
MODIF: Y D
Inputs: R Reset Ci.V=0
CU S Preset Ci.V=Ci.P
CD F CU Count Up
CD Count Down

## Outputs: E Overrun %Ci.E=1 %Ci.V=0->9999

D Done %Ci.D=1 %Ci.V=Ci.P
F Full %Ci.F=1 %Ci.V=9999->0

Page 74
IST / DEEC / API Chap. 3 - PLC Programming languages

## CU "0" to "1" => CV is incremented by 1

CU "0" to "1" => CV is incremented by 1 CD "0" to "1" => CV is decremented by 1

## CV ≥ PV => Q:=1 CV ≥ PV => QU:=1

CV ≤ 0 => QD:=1
R=1 => CV:=0
R=1 => CV:=0 LD=1 => CV:=PV
R has precedence over LD

## NOTE: counters are saturated such that no overflow occurs

Page 75
IST / DEEC / API Chap. 3 - PLC Programming languages

Numerical Processing

## Algebraic and Logic Functions

Page 76
IST / DEEC / API Chap. 3 - PLC Programming languages

Numerical Processing

Arithmetic Functions

Page 77
IST / DEEC / API Chap. 3 - PLC Programming languages

Numerical Processing

Example:

Arithmetic functions

## %S18 – flag de overflow

Page 78
IST / DEEC / API Chap. 3 - PLC Programming languages

Numerical Processing

Logic Functions

Page 79
IST / DEEC / API Chap. 3 - PLC Programming languages

Numerical Processing

Example:

Logic functions

Page 80
IST / DEEC / API Chap. 3 - PLC Programming languages

Numerical Processing

## Priorities on the execution of the operations

Page 81
IST / DEEC / API Chap. 3 - PLC Programming languages

Subroutines

## Call and Return

Page 82
IST / DEEC / API Chap. 3 - PLC Programming languages

## Structures for Control of Flux

JUMP instructions:

## Conditional and unconditional

Page 83
IST / DEEC / API Chap. 3 - PLC Programming languages

Example:

Attention to:

programming!...

## • Does not improove the legibility

of the proposed solution.

Page 84
IST / DEEC / API Chap. 3 - PLC Programming languages

Halt

## Stops all processes!

Page 85
IST / DEEC / API Chap. 3 - PLC Programming languages

• Monostable

## • Registers of 256 words (LIFO ou FIFO)

• DRUMs

• Comparators

• Shift-registers

...

## • Functions to convert bases and types

Page 86
IST / DEEC / API Chap. 3 - PLC Programming languages

Numerical Tables

Page 87
IST / DEEC / API Chap. 3 - PLC Programming languages

System information: system bits

See manual
for the remaining
100 bits generated...

Page 88
IST / DEEC / API Chap. 3 - PLC Programming languages

System information: system words

See manual
for the remaining
140 words generated...

Page 89
IST / DEEC / API Chap. 3 - PLC Programming languages

## A program can be built from:

Tasks, that are executed cyclically or periodically.

## Tasks MAST / FAST / AUX are built from:

Sections
Subroutines
Event processing, that is carried out before all other tasks.

## Event processing is built from:

Sections for processing time controlled events
Sections for processing hardware controlled events

## Unity - Project Browser

Page 90
IST / DEEC / API Chap. 3 - PLC Programming languages

Sas (LD)
Oven1 (GRAFCET)
Composed by sections
Execution Cyclic or Periodic PRL (LD)
Chart

POST (IL)
SR0
Drying (LD)

Cleaning (IL)

Page 91
IST / DEEC / API Chap. 3 - PLC Programming languages

## FAST – Fast Task Program

Priority greater than MAST

## • Executed Periodically (1-255ms)

• Verified by a Watchdog, impacts on %S11
• %S31 Enables or disables a FAST
• %S33 gives the execution time for FAST

Page 92
IST / DEEC / API Chap. 3 - PLC Programming languages

## Event Processes – Processes that can react to external changes

(16 in the Micro 3722 EV0 a EV15)

## Priority greater than MAST and FAST!

Event Generators
• Inputs 0 to 3 in module 1, given transitions
• Counters
• Upon telegrams reception
• %S38 Enables or disables event processes
Page 93
IST / DEEC / API Chap. 3 - PLC Programming languages

## Each PLC has limitations in terms of connections

Example:

Page 94
IST / DEEC / API Chap. 3 - PLC Programming languages

It is important to learn the potentialities and ...
the limitations of the developing tools,
i.e. STUDYING the manuals is a MUST.

Page 95
IST / DEEC / API Chap. 3 - PLC Programming languages