Você está na página 1de 16

IST / DEEC / SSC LEEC / MEEC 2005-2006

Automação
de
Processos Industriais

Linguagens de Programação de PLCs


Instruction List
http://www.isr.ist.utl.pt/~pjcro/cadeiras/api0506/api0506.html

Docentes:

Prof. Paulo Oliveira Prof. Pedro Lima


pjcro @ isr.ist.utl.pt pal @ isr.ist.utl.pt
Tel: 21 8418053 ou 2053 (interno) Tel: 21 8418274 ou 2274 (interno)
API P. Oliveira Pág. 1

IST / DEEC / SSC Automação de Processos Industriais

Programa da Cadeira:

Cap. 2 - Introdução aos PLCs


...
Cap. 3 - Linguagens de Programação de PLCs [2 semanas]

Descrição de linguagens standard (IEC-1131-3).

Ladder Diagrams; Instruction List; Structured Text.

Ambientes de desenvolvimento.
...
Cap. 4 - GRAFCET (Sequential Function Chart) [2 semanas]

API P. Oliveira Pág. 2

1
IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Linguagens de programaç
programação de PLCs
(IEC 1131-
1131-3)
Ladder Diagram Structured Text
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

API P. Oliveira Pág. 3

IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

ANI1 AI3 LDV50


A( =P9 =CSW9
OI2 NO PE
O( OM1
ANC9 OI4
AQ9 =Z9
) NO
) AC9
=Q9 =M1
... ...

API P. Oliveira Pág. 4

2
IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list
Instruções Básicas

Load

Contacto aberto: contacto efectuado


LD enquanto o bit de controlo está a 1.
Contacto fechado: contacto efectuado
LDN enquanto o bit de controlo está a 0.

Contacto efectuado durante um ciclo quando se


LDR P
detecta um flanco ascendente no bit de controlo.

Contacto efectuado durante um ciclo quando se


LDF N
detecta um flanco descendente no bit de controlo.

API P. Oliveira Pág. 5

IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list
Instruções Básicas
Store

O resultado da função lógica activa o coil.


ST

STN O resultado negado da função lógica activa o coil.

O resultado da função lógica é armazenado no relé


S S
associado (sets the latch).

O resultado da função lógica é limpa o estado do relé


R R
associado (resets the latch)

API P. Oliveira Pág. 6

3
IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list
Instruções Básicas

AND

AND do operando com o resultado


AND da operação lógica anterior.

ANDN AND do operando com a negação


do resultado da operação anterior.

P
AND do flanco ascendente com o
ANDR resultado da operação anterior.

AND do flanco descendente com o


ANDF N
resultado da operação anterior.

API P. Oliveira Pág. 7

IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list
Instruções Básicas
OR

OR do operando com o resultado


OR da operação lógica anterior.

ORN OR do operando com a negação do


resultado da operação anterior.

OR do flanco ascendente com o


ORR P resultado da operação anterior.

OR do flanco descendente com


ORF o resultado da operação anterior.
N

API P. Oliveira Pág. 8

4
IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

Exemplo:

API P. Oliveira Pág. 9

IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list
Instruções Básicas
XOR

...
LD %I1.1
XOR %M1
ST %Q2.3
LD %M2
XOR %I1.2
ST %Q2.2
...
API P. Oliveira Pág. 10

5
IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

Relés temporizados
Ou
Timers

API P. Oliveira Pág. 11

IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list Características:

Relés temporizados Identificador: %TMi 0..63 no TSX37

Ou Entrada: IN para activação


Timers
Modo: TON On delay
TOFF Off delay
TP Monoestável
%TMi
IN Q Base de Tempo: TB 1mn (def.), 1s,
100ms, 10ms
MODE: TON
TB: 1mn
Valor programado: %TMi.P 0...9999 (def.)
TM.P: 9999 tempo=TB*TMi.P
MODIF: Y Valor Actual: %TMi.V 0...TMi.P (pode ser
lido ou testado)

Modificação: Y/N modificação a partir


de terminal
API P. Oliveira Pág. 12

6
IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

Relés temporizados
Ou
Timers

API P. Oliveira Pág. 13

IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

Exemplo:

API P. Oliveira Pág. 14

7
IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

Contadores

Aplicações típicas
API P. Oliveira Pág. 15

IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list Características:


Contadores Identificador: %Ci 0..31 no TSX37

Valor programado: %Ci.P 0...9999 (def.)


Valor Actual: %Ci.V 0...Ci.P (não pode ser escrito)
%Ci
Modificação: Y/N modificação a partir de terminal
R E
S Entradas: R Reset Ci.V=0
CP: 9999
MODIF: Y D S Preset Ci.V=Ci.P
CU Count Up
CU CD Count Down
CD F
Saídas: 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

API P. Oliveira Pág. 16

8
IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

Contadores
Exemplo:

API P. Oliveira Pág. 17

IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

Processamento Numérico

Funções Algébricas e Lógicas

API P. Oliveira Pág. 18

9
IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

Processamento Numérico

Funções Aritméticas

API P. Oliveira Pág. 19

IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

Processamento Numérico

Exemplo de uso
de Funções Aritméticas

API P. Oliveira Pág. 20

10
IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

Processamento Numérico

Exemplo de uso
de Funções Aritméticas

API P. Oliveira Pág. 21

IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

Processamento Numérico

Funções Lógicas

API P. Oliveira Pág. 22

11
IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

Processamento Numérico

Exemplo de uso de Funções Lógicas

API P. Oliveira Pág. 23

IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

Estruturas de Controlo de Fluxo

Sub-rotinas (imbrincadas)

Chamada e retorno

Exemplo:

API P. Oliveira Pág. 24

12
IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

Estruturas de Controlo de Fluxo

Saltos condicionais e Incondicionais

API P. Oliveira Pág. 25

IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

Estruturas de Controlo de Fluxo

Exemplo de uso de
Saltos condicionais e
Incondicionais

API P. Oliveira Pág. 26

13
IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

Estruturas de Controlo de Fluxo

Instruções de Halt

Nota: pára todos os processos

Máscaras de eventos

API P. Oliveira Pág. 27

IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

Existem outras instruções mais avançadas (ver manual de referência)


• Mono-estável

• Registos de 256 words (LIFO ou FIFO)

• DRUM Programador ciclico

• Comparadores

• Shift-registers
...
• Funções de manipulação de floats

• Funções de conversão de bases e de tipo

API P. Oliveira Pág. 28

14
IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Instruction list

Manipulação de Tabelas Numéricos

API P. Oliveira Pág. 29

IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Linguagem DOLOG80
PLC AEG A020 Plus:

Entradas:
•20 binárias com fotoacopladores
•4 analógicas (8 bits, 0-10V)

Saídas:
•16 binárias por relés de 2A
•1 analógica (8 bits, 0-10V)

Interface de programação: RS232

Processador:
•8031
•2Kbytes de RAM
•2K de EEPROM => 896 instruções.

Tempo médio de ciclo: 6.5 ms


API P. Oliveira Pág. 30

15
IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

PLC AEG A020 Plus


Linguagem DOLOG80
OPERANDOS

• I1 a I20 entradas binárias

• Q1 a Q16 saídas binárias

• M1 a M128 memórias auxiliares

• T1 a T8 timers com base de


tempo de 100ms

• T9 a T16 timers com base de


tempo de 25ms

• C1 a C16 contadores de 16 bits


API P. Oliveira Pág. 31

IST / DEEC / SSC Cap. 3 - Linguagens de Programação de PLCs

Linguagem DOLOG80 (cont.)


Exemplo de Contadores:

AI1 AI3 LDV50


A( =P9 =CSW9
OI2 NO PE
O( OM1
ANC9 OI4
AQ9 =Z9
Legenda: Stop = I1
) NO Start = I2
) AC9 Proximidade = I3
=Q9 =M1 Reset = I4
Contador = C9
... ... Internal relay = M1
Motor = Q9
API P. Oliveira Pág. 32

16