Iai - 2-3 - CLP

Fazer download em pptx, pdf ou txt
Fazer download em pptx, pdf ou txt
Você está na página 1de 108

Automação

Industrial
Industrial
Automation
Automation Industrielle
Industrielle Automation

K_TIT

POST_START_TIMER_MOD TIT_REF_MAX_START TIT_RATE_LIM_UP


MAX_INT

TIT_ERROR I P WFD_TIT
TIT_REF_TAB lim PID
N_GT
D

100 TD_TIT
0 TIT_RATE_LIM_DN
FAULT_STATE[tit1_oor]

OR
FAULT_STATE[tit2_oor]

TIT 17.3

2.3 Controladores Lógicos Programáveis


Programmable Logic Controllers
Automates Programmables
Speicherprogrammierbare Steuerungen
Controladores Lógicos Programables

Prof. Eng. Eletr. Luis Fernando Espinosa Cocian


2014 Departamento de Engenharia Elétrica - ULBRA
COCIAN

2.3.1 CLPs: Definição e Mercado

2.1 Instrumentação
2.2 Controle
2.3 Controladores Lógicos Programáveis
2.3.1 CLPs: Definição e Mercado
2.3.2 CLPs: Tipos
2.3.3 CLPs: Funções e construção
2.3.4 Controle Contínuo e Discreto
2.3.5 Linguagens de Programação de CLPs
2.3.5.1 Linguagens IEC 61131
2.3.5.2 Blocos de Função
2.3.5.3 Execução dos Programas
2.3.5.4 Entrada/Saída (Input / Output)
2.3.5.5 Texto Estruturado (ST)
2.3.5.6 Fluxogramas Seqüenciais (SFC)
2.3.5.7 Lógica Ladder
2.3.5.8 Lista de Instruções (IL)
2.3.5.9 Ambiente de programação

Automação Industrial 2/99 2.3 Controladores Lógicos


COCIAN

Controladores Lógicos Programáveis (CLP): Definição


PLC = Programmable Logic Controller
AP = Automates Programmables industriels
SPS = Speicherprogrammierbare Steuerungen
Definição: “pequenos computadores dedicados às tarefas de automação
em ambiente industrial”
Controle por relés, acionadores analógicos pneumáticos e hidráulicos
Antigamente:
Hoje: Computadores de tempo real com numerosas entradas e saídas

Função: Medição, Controle, Proteção

Destaques Instrumentação
Medição de vazão, temperatura, posição….e também atuadores (bom
Controle
Controladores lógicos programáveis com periféricos digitais & field b
Visualização
As Interfaces Homem Máquina (HMI ou IHM) em CLP
(quando existirem) são limitadas a controlar os displays do
operador 2.3 Controladores Lógicos
Automação Industrial 3/99
COCIAN

CLP Simples
Rede (field Entradas
bus) digitais

Entradas e saídas
analógicas
Saídas
digitais

Automação Industrial 4/99 2.3 Controladores Lógicos


COCIAN

CLP em um rack

CPU1 CPU2

Conexões seriais
Conexão
redundante do
bus de campo Entradas/saídas
I/O

Automação Industrial 5/99 2.3 Controladores Lógicos


COCIAN

Exemplo: controle de turbinas em laboratório de teste

Automação Industrial 6/99 2.3 Controladores Lógicos


COCIAN

CLP: funções

CLP = PMC: Proteção, Medição e Controle


(PLC = PMC: Protection, Measurement and Control)
(SPS = MSR = Messen, Schützen, Regeln)

•Medição


Controle (Comando e Regulação)

•Proteção

• Registro de Eventos
• Comunicação
• Interface Homem-Máquina

Automação Industrial 7/99 2.3 Controladores Lógicos


COCIAN

CLP: Características

de número de periféricos: 20..100 I/O por CPU, alta densidade de fiação, fácil mo
tradas/Saídas binárias e analógicas com níveis padronizados
• opera em ambiente agressivo, requer construção robusta, proteção contra
poeira, água e riscos mecânicos, ruído eletromagnético, vibração,
temperaturas extremas (-30C..85C), às vezes colocado diretamente no campo.
• programação: alguns ainda bastante primitiva com teclados na
própria máquina, ou com notebooks para descarregar programas.
• conexão em rede permitindo a programação desde as estações de trabalho
e conexões com SCADA
conexão field bus para os I/Os remotos
• primitiva interface Homem-Máquina para manutenção, através de displays
de LCD ou conexão com notebooks em linhas seriais (RS232C) ou wireless.
conômicos - €1000.- .. €15.000.- para o sistema completo.
ltos valores estão no software de aplicação (licenças €20.000 ..€50.000)

Automação Industrial 8/99 2.3 Controladores Lógicos


COCIAN

CLP: Localização na arquitetura de controle

Rede empresarial
Estação de Estação do Estação de
engenharia operador supervisão gateway

Bus de Controle
(ex.: Ethernet)

CLP
grandes

COM1

COM 2
Estação de Controle

COM1
CLP

COM 2
COM1

CPU
CPU

CPU
com field bus

I/O
CLPs gateway
I/O
I/O
I/O
I/O
I/O

I/O
I/O
I/O
I/O
I/O direto
Field Bus Field Bus

COM

COM

COM
COM
CPU

CPU

CPU
COM
I/Os diretamente conectados
I/O
I/O
I/O
I/O

I/O
I/O
I/O
Estações de Campo FB
gateway Dispositivos de Campo
Pequenos CLPs
Concentradores de dados,
não programáveis, CLPs muito simples
porém configuráveis
Bus de sensores (ex: ASI)

Automação Industrial 9/99 2.3 Controladores Lógicos


COCIAN

Por que fontes 24V / 48 V?

… Após a planta perder a


energia elétrica, os
operadores podiam ler os
instrumentos conectando
baterias temporárias…
[IEEE Spectrum Nov 2011
sobre Fukushima]

Foto TEPCO

Automação Industrial 10/99 2.3 Controladores Lógicos


COCIAN

Global Players

Total de vendas em 2004: 7000 Mi€

Fonte: ARC Research, 2005-10

Automação Industrial 11/99 2.3 Controladores Lógicos


COCIAN

2.3.3 CLPs: Tipos

2.1 Instrumentação
2.2 Controle
2.3 Controladores Lógicos Programáveis
2.3.1 CLPs: Definição e Mercado
2.3.2 CLPs: Tipos
2.3.3 CLPs: Funções e construção
2.3.4 Controle Contínuo e Discreto
2.3.5 Linguagens de Programação de CLPs
2.3.5.1 Linguagens IEC 61131
2.3.5.2 Blocos de Função
2.3.5.3 Execução dos Programas
2.3.5.4 Entrada/Saída (Input / Output)
2.3.5.5 Texto Estruturado (ST)
2.3.5.6 Fluxogramas Seqüenciais (SFC)
2.3.5.7 Lógica Ladder
2.3.5.8 Lista de Instruções (IL)
2.3.5.9 Ambiente de programação

Automação Industrial 12/99 2.3 Controladores Lógicos


COCIAN

Tipos de CLP
(1) CLP Compactos
Construção monolítica
Mono-processador
Conexão Field bus

(2) CLP Modulares


Construção modular (painel)
Sistemas mono e multi-processador
Conexão Field bus e LAN
Small Micro Memory Card (MMC)

(3) Soft-PLC
Produtos de automação baseados em Windows NT ou CE
Uso diretos da CPU e co-processadores

Automação Industrial 13/99 2.3 Controladores Lógicos


COCIAN

CLP Compactos

cortesia ABB cortesia ABB cortesia ABB

Construção monolítica (uma-peça)


Carcaça fixa
Quantidade fixa de I/O (maioria deles binários)
Sem capacidade computacional (sem MMC)
Pode ser estendido e conectado em rede por uma extensão do
bus de campo
Às vezes conexão LAN (Ethernet, Arcnet)
Monoprocessador
Produtos típicos: Mitsubishi MELSEC F, ABB AC31, SIMATIC S7
custo: € 2000

Automação Industrial 14/99 2.3 Controladores Lógicos


COCIAN

Controlador específico (exemplo: Turbina)

ustado para uma aplicação específica, produzido em série


Porta de Relés e
programação fusíveis
Entradas para
termopares

I/O binários,
Rede CAN
RS232 com a
HMI

Cortesia Turbec

custo: € 1000.-

Automação Industrial 15/99 2.3 Controladores Lógicos


COCIAN

CLPs Modulares

ajustados às necessidades de uma aplicação Ambiente de


desenvolvime
RS232 nto
colocados em racks de 42 cm (19“)
(altura 6U ( = 233 mm) ou 3U (=100mm)
alta capacidade de processamento (várias CPUs) LAN

grande escolha de placas de I/O


painel
concentração de grande número de I/Os bus paralelo
courtesy ABB

placas de interface para vários field bus fieldbus

requer classificação dos sinais Alimentação

IHM primitiva ou sem


CPU CPU I/O I/O binário
custo-eficiente se o rack pode ser completado Analógic
fieldbus
o
alimentação 110-220V~ , 24V= ou 48V= (redundante)
custo ~ €10.000 para um rack completo

Automação Industrial 16/99 2.3 Controladores Lógicos


COCIAN

Pequenos CLPs modulares

cortesia ABB
cortesia Backmann

Montagem em trilho DIN, alimentação 24V


baratos (€5.000)
Não à prova de água,
Sem ventilador
Extensíveis por um bus paralelo (flat cable ou trilho)

Automação Industrial 17/99 2.3 Controladores Lógicos


COCIAN

Controladores específicos

Bus de dados

Três CLPs conectados por um bus de dados


nstrução especial: sem ventiladores, grande faixa de temperaturas, vibração

Automação Industrial 18/99 2.3 Controladores Lógicos


COCIAN

Compacto ou modular?

Extensão
€ field bus

CLP compacto
(número fixo de I/Os)

CLP modular (número variável de I/Os

Limite de I/O
local

# Módulos de I/O

Automação Industrial 19/99 2.3 Controladores Lógicos


COCIAN

PC Industrial

cortesia INOVA

cortesia MPI

quitetura Wintel (também: Motorola, PowerPC), Compete com CLP


MI (LCD, touch-screen,…) modulares sem I/O local
odularidade limitada pelo invôlucro Conexão fieldbus
C104, PC-Cards, IndustryPack) embutida,
custo: € 2000.-
rsões de painel com PCI ou Compact-PCI

Automação Industrial 20/99 2.3 Controladores Lógicos


COCIAN

Soft-PLC (o PC como CLP)

• PC como estação de trabalho de engenharia


• PC como interface homem-máquina (Indusoft, Intellution, Wonder
23 12 • PC como processador de tempo-real
4 2 2 • PC assistido por um Co-Processador (placa ISA-104 ou PC104)
3
3 • PC como gateway fieldbus para um sistema de I/O distribuído

Módulos de I/O

Automação Industrial 21/99 2.3 Controladores Lógicos


COCIAN

Dispositivos de Proteção

subestação Transformadores Comunicação com o operador


de medição Interface humana
para status e
ajustes de
Ir parâmetros
Is
It
Ur Interface de programação
Us
UT

Relé de proteção

Os dispositivos de proteção são CLPs altamente especializados que medem as correntes e voltagens
em uma subestação elétrica, além de outras variáveis (posição das chaves) para detectar situações
que podem danificar o equipamento (sobrecorrentes, curtocircuitos, sobreaquecimento) e disparar os
sistemas de interrupção (trip) para proteger a subestação.
Além disso, ele registra os distúrbios e envia relatórios para o sistema SCADA.
Amostragem:4,8 kHz, tempo de reação: < 5 ms. custo: € 5000

Automação Industrial 22/99 2.3 Controladores Lógicos


COCIAN

Mercado Compartilhado

% CLPs instalados

Micro: 15 a 128 pontos 32%


Médio: 128 - 512 pontos 29%
Grande: > 512 pontos 20%
Nano: < 15 pontos 7%
PC 6%
Software PLC 4%
Controle integrado 2%

Fonte: Control Engineering, Reed Research, 2002-09

Automação Industrial 23/99 2.3 Controladores Lógicos


COCIAN

Critérios de Comparação – Exemplo

Marca Siemens Hitachi


Número de Pontos 1024 640
Memória 10 KB 16 KB
Linguagem de • Lógica Ladder • Lógica Ladder
Programação • Instruções • Instruções
• Símbolos lógicos
• Símbolos lógicos
• Terminal portátil
• Basic
• Terminal portátil

Ferramentas de Programação
• Gráfica no PC • Gráfica no PC
Download não sim
Tamanho por 250 I/Os 2678 cm2 1000 cm2

Espaço para label 5.3 mm2 6 mm2


por linha/ponto 7 caracteres 6 caracteres

Rede 10 Mbit/s 19.2 kbit/s


Montagem Trilho DIN gabinete

Automação Industrial 24/99 2.3 Controladores Lógicos


COCIAN

2.3.3 CLPs: Funções e construção

2.1 Instrumentação
2.2 Controle
2.3 Controladores Lógicos Programáveis
2.3.1 CLPs: Definição e Mercado
2.3.2 CLPs: Tipos
2.3.3 CLPs: Funções e construção
2.3.4 Controle Contínuo e Discreto
2.3.5 Linguagens de Programação de CLPs
2.3.5.1 Linguagens IEC 61131
2.3.5.2 Blocos de Função
2.3.5.3 Execução dos Programas
2.3.5.4 Entrada/Saída (Input / Output)
2.3.5.5 Texto Estruturado (ST)
2.3.5.6 Fluxogramas Seqüenciais (SFC)
2.3.5.7 Lógica Ladder
2.3.5.8 Lista de Instruções (IL)
2.3.5.9 Ambiente de programação

Automação Industrial 25/99 2.3 Controladores Lógicos


COCIAN
Implementação

• O CLP opera periodicamente


• Amostra os sinais do sensores e os converte em formato digital
usando um conversor AD
• Calcula o sinal de controle e o converte na forma analógica para os
atuadores.

1. Espera por interrupções do clock


2. Lê as entradas que vem do sensor
3. Calcula o sinal de controle
4. Envia a saída para o atuador
5. Atualiza as variáveis de controle
6. Repete

Waiwera Organic Winery, Distillation Plant

Automação Industrial 26/99 2.3 Controladores Lógicos


COCIAN

Arquitetura Geral dos CLPs


RS 232 Ethernet

Clock flash controlador controlador


CPU ROM
Tempo-Real EPROM porta serial ethernet

Bus de extensã

bus paralelo buffers

controlador Conversores Conversores Saídas Entrada I/Os


fieldbus A/D D/A Digitais Digital externos

Condicionamento Amplificadores Condicionamento


de sinais Relés de sinais
de potência

field bus Entradas e Saídas diretas

Automação Industrial 27/99 2.3 Controladores Lógicos


COCIAN

O caminho do sinal

y y(i) y(i)

time time time

Variável filtragem Conversor 011011001111 Conversor Variável


analógica & amostragem amplificador Analógica
escalamento
A/C D/A
(ex.: 4..20mA) Ex.: -10V..10V

processamento
1
Variável transistor Variável
binária filtro amostragem
(ex.: 0..24V)
ou relé binária
0001111

memória
contador não-volátil
y

tempo

Automação Industrial 28/99 2.3 Controladores Lógicos


COCIAN

Partes internas de um dispositivo de proteção

Automação Industrial 29/99 2.3 Controladores Lógicos


COCIAN

Fluxo de sinais em um IED

Automação Industrial 30/99 2.3 Controladores Lógicos


COCIAN

2.3.4 Controle Contínuo e Discreto

2.1 Instrumentação
2.2 Controle
2.3 Controladores Lógicos Programáveis
2.3.1 CLPs: Definição e Mercado
2.3.2 CLPs: Tipos
2.3.3 CLPs: Funções e construção
2.3.4 Controle Contínuo e Discreto
2.3.5 Linguagens de Programação de CLPs
2.3.5.1 Linguagens IEC 61131
2.3.5.2 Blocos de Função
2.3.5.3 Execução dos Programas
2.3.5.4 Entrada/Saída (Input / Output)
2.3.5.5 Texto Estruturado (ST)
2.3.5.6 Fluxogramas Seqüenciais (SFC)
2.3.5.7 Lógica Ladder
2.3.5.8 Lista de Instruções (IL)
2.3.5.9 Ambiente de programação

Automação Industrial 31/99 2.3 Controladores Lógicos


COCIAN

Compatibilizando o mundo analógico e binário

Controle discreto Regulação analógica

Automação Industrial 32/99 2.3 Controladores Lógicos


COCIAN

A evolução do CLP

Mundo Binário Mundo Analógico


Controle de relés Controladores pneumáticos e
Seqüenciadores pneumáticos eletromecânicos
I1

A
B

C
P1
P2

combinatorial seqüencial Regulação, controladores

Processos discretos Processos contínuos

Controladores Lógicos Programáveis


(Programmable Logical Controllers, Speicherprogrammierbare Steuerungen, Automates Programmables)

Automação Industrial 33/99 2.3 Controladores Lógicos


COCIAN

Plantas Contínuas (lembrando)

Exemple: motores de tração, fornos, vasos de pressão,...


O estado das plantas contínuas é descrito por variáveis de estado contínuas (analógicas) tais
como temperatura, tensão, velocidade, etc.
Existe uma relação fixa entre a saída e a entrada, descrita por um modelo contínuo na
forma de uma função de transferência F.
Esta função de transferência pode ser expressa por um conjunto de equações diferenciais.
Se as equações são lineares, a função de transferência pode ser expressa pela
transformada de Laplace ou Z.
y

(1+Ts)
x F(s) = y
(1+T1s + T2 s )
2 time

As plantas contínuas são normalmente reversíveis e monotônicas.


Esta é a condição para permitir à sua regulação

A constante de tempo do sistema de controle deve ter pelo menos uma ordem de magnitude
menor que a menor constante de tempo da planta.

A principal tarefa de um sistema de controle para uma planta contínua é a sua regulação

Automação Industrial 34/99 2.3 Controladores Lógicos


COCIAN

Plantas Discretas (lembrando)


b
init c+d
2 3 4
a e
Exemplos:
c + ¬d e
Elevadores, 1
semáforos,
armazéns, etc. 7 6 5

A planta é descrita por variáveis que tomam valores bem definidos e não
sobrepostos.
A transição de um estado para outro é abrupta e é ocasionado por um
evento externo.
As plantas discretas são normalmente reversíveis mas não monotônicas,
i.e., negar o evento que ocasionou a transição não reverterá a planta para
o estado anterior.
Exemplo: um elevador não retorna ao andar anterior quando o botão de chamada é liberado.

AAs
principal
plantastarefa de um
discretas sãosistema de por
descritas controle com uma
máquinas planta finitas
de estados discretaou por
éredes
o seude
controle
Petri. seqüencial.

Automação Industrial 35/99 2.3 Controladores Lógicos


COCIAN

Comparação entre Controle Contínuo e Discreto

"combinatorial"1) "seqüencial"

ex.: lógica ladder, lógica CMOS ex.:GRAFCET, Redes de Petri


A B

Out = A · B lógica
A
NOT C ladder

Out = (A + B) · C

I1

Blocos
analógico de
P1
construção
P2

1) Não realmente combinatorial: os blocos podem ter memória

Automação Industrial 36/99 2.3 Controladores Lógicos


COCIAN

2.3.5 CLPs: Linguagens de Programação

2.1 Instrumentação
2.2 Controle
2.3 Controladores Lógicos Programáveis
2.3.1 CLPs: Definição e Mercado
2.3.2 CLPs: Tipos
2.3.3 CLPs: Funções e construção
2.3.4 Controle Contínuo e Discreto
2.3.5 Linguagens de Programação de CLPs
2.3.5.1 Linguagens IEC 61131
2.3.5.2 Blocos de Função
2.3.5.3 Execução dos Programas
2.3.5.4 Entrada/Saída (Input / Output)
2.3.5.5 Texto Estruturado (ST)
2.3.5.6 Fluxogramas Seqüenciais (SFC)
2.3.5.7 Lógica Ladder
2.3.5.8 Lista de Instruções (IL)
2.3.5.9 Ambiente de programação

Automação Industrial 37/99 2.3 Controladores Lógicos


COCIAN

O longo caminho até a norma IEC 61131

A indústria de CLP precisou concordar com


• Tipos de dados (operações somente podem ser executadas com tipos apropriados)
• Linguagens de programação
• Estrutura de software (unidades de organização do programa para modularidade e
encapsulamento)
• Sistema de manipulação de eventos discretos
• Execução
NEMA Formado o Comitê para os Controladores Programáveis (EUA) Levou 20 anos para fazer uma norma…
GRAFCET (França)
DIN 40719, Function Charts (Alemanha)
NEMA ICS-3-304, Controladores Programáveis (EUA)
IEC SC65A/WG6
DIN 19 239, Controladores Programáveis (Alemanha)
IEC 65A(Sec)38, Controladores Programáveis
MIL-STD-1815 Ada (USA)
IEC SC65A(Sec)49, Linguagens PC
IEC SC65A(Sec)67
IEC 848, Function Charts
IEC 64A(Sec)90
IEC 1131-3
Relatório de
recomendação Tipo 3
IEC 61131-3
Alteração do
70 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 nome
Fonte: Dr. J. Christensen

Automação Industrial 38/99 2.3 Controladores Lógicos


COCIAN

Linguagens de “Tempo-Real"

Extensão das linguagens procedurais linguagens desenvolvidas para


para expressar o tempo execução cíclica e tempo-real
(“apresentam rotinas para influenciar a (“linguagens orientadas à aplicação")
temporização da execução das rotinas e os
fluxos de controle”)
• ADA • Lógica ladder
• Real-Time Java • Linguagem de blocos de função
• MARS (TU Wien) • Listas de instruções
• Forth • GRAFCET
• “C” com características de real- • SDL
time
• etc.… etc...

Não conseguiram se impor De ampla aceitação na indústria de controle


Padronizadas pela norma IEC 61131

Automação Industrial 39/99 2.3 Controladores Lógicos


COCIAN

As cinco linguagens de programação da norma IEC 61131-3


http://www.isagraf.com

Function Block Diagram (FBD) Linguagens gráficas Sequential Flow Chart (SFC)
AUTO CALC1
START STEP
DI CALC PUMP

V IN1 OUT >=1 DO T1


MAN_ON V N ACTION D1 D1_READY
STEP A
ACT IN2
D ACTION D2 D2_READY
T2
N ACTION D3 D3_READY
STEP B
Ladder Diagram (LD)
D ACTION D4 D4_READY
CALC1 T3

AUTO CALC PUMP


IN1 OUT
ACT Linguagens textuais Structured Text (ST)
IN2
MAN_ON VAR CONSTANT X : REAL := 53.8 ;
Z : REAL; END_VAR
VAR aFB, bFB : FB_type; END_VAR

bFB(A:=1, B:=‘OK’);
Instruction List (IL) Z := X - INT_TO_REAL (bFB.OUT1);
A: LD %IX1 (* PUSH BUTTON *) IF Z>57.0 THEN aFB(A:=0, B:=“ERR”);
ANDN %MX5 (* NOT INHIBITED *) ELSE aFB(A:=1, B:=“Z is OK”);
ST %QX2 (* FAN ON *) END_IF

Automação Industrial 40/99 2.3 Controladores Lógicos


COCIAN

Importância da norma IEC 61131

A norma IEC 61131-3 é a linguagem de automação mais importante na indústria.

80% de todos os CLPs a suportam, todos os novos desenvolvimentos estão baseados nela.

Dependendo do país, uma linguagem é mais popular.

Mais informação:
http://www.plcopen.org/pages/tc1_standards/downloads/plcopen_iec61131-3_feb201
4.pptx
http://www.plcopen.org/pages/pc2_training/downloads/index.htm

Automação Industrial 41/99 2.3 Controladores Lógicos


COCIAN

2.4.2.1 Linguagem de Diagramas de Blocos de Função (FBD)

2.1 Instrumentação
2.2 Controle
2.3 Controladores Lógicos Programáveis
2.3.1 CLPs: Definição e Mercado
2.3.2 CLPs: Tipos
2.3.3 CLPs: Funções e construção
2.3.4 Controle Contínuo e Discreto
2.3.5 Linguagens de Programação de CLPs
2.3.5.1 Linguagens IEC 61131
2.3.5.2 Entrada/Saída (Input & Output)
2.3.5.3 Diagramas de Blocos de Função (FBD)
2.3.5.4 Execução dos Programas
2.3.5.5 Texto Estruturado (ST)
2.3.5.6 Fluxogramas Seqüenciais (SFC)
2.3.5.7 Lógica Ladder
2.3.5.8 Lista de Instruções (IL)
2.3.5.9 Ambiente de programação

Automação Industrial 42/99 2.3 Controladores Lógicos


COCIAN

Conectando Input/Output, Método 1: Blocos dedicados de I/O

As Entradas e Saídas do CLP devem ser conectadas às variáveis

IN_1 OUT_1

Os blocos de I/O são configurados para estar


relacionados em grupos correspondentes de I/O.

Automação Industrial 43/99 2.3 Controladores Lógicos


COCIAN

Conectando Input/Output, Método 2: Configuração de Variáveis

Todas as variáveis do programa devem ser declaradas com nome e tipo, valor inicial e volatilidade.
A variável pode estar conectada a uma saída ou à uma entrada, possuindo um endereço de I/O.
Muitas propriedades podem ser configuradas: valor default, valor em caso de falha, armazenamento
na falha de energia,…
Essas variáveis podem não estar conectadas como entradas ou saídas a um bloco de função

Endereços predefinidos

Automação Industrial 44/99 2.3 Controladores Lógicos


COCIAN

2.4.2.1 Linguagem de Diagramas de Blocos de Função (FBD)

2.1 Instrumentação
2.2 Controle
2.3 Controladores Lógicos Programáveis
2.3.1 CLPs: Definição e Mercado
2.3.2 CLPs: Tipos
2.3.3 CLPs: Funções e construção
2.3.4 Controle Contínuo e Discreto
2.3.5 Linguagens de Programação de CLPs
2.3.5.1 Linguagens IEC 61131
2.3.5.2 Entrada/Saída (Input & Output)
2.3.5.3 Diagramas de Blocos de Função (FBD)
2.3.5.4 Execução dos Programas
2.3.5.5 Texto Estruturado (ST)
2.3.5.6 Fluxogramas Sequenciais (SFC)
2.3.5.7 Lógica Ladder
2.3.5.8 Lista de Instruções (IL)
2.3.5.9 Ambiente de programação

Automação Industrial 45/99 2.3 Controladores Lógicos


COCIAN

Linguagem de Diagramas de Blocos de Função (FBD)

(Function Block Languages, Funktionsblocksprache, langage de blocs de fonctions)


(Também conhecidos como "Function Chart" ou "Function Plan" - FuPla)

As linguagens de blocos de função expressam programas “combinacionais” na forma


parecida dos circuitos eletrônicos.

Elas se baseiam em uma grande variedade de funções pré-definidas e


personalizadas

Esta linguagem é parecida com a linguagem Matlab/Simulink usada em simulações.

Automação Industrial 46/99 2.3 Controladores Lógicos


COCIAN

Exemplos de Diagramas de Blocos de Função (FBD)

Exemplo 1:

A
B & C

Exemplo 2:
Entradas externas Saídas externas

Trigger T &
S Spin
Running

Reset R

Linguagem de programação gráfica muito parecida aos diagramas


elétricos e de blocos.

Eles frequentemente representam lógicas combinacionais, porém os


blocos podem ter memória (ex.: flip-flops).

Automação Industrial 47/99 2.3 Controladores Lógicos


COCIAN

Elementos dos Diagramas de Blocos de Função (FBD)

Bloco de Função Sinais de entradaparâmetros


Sinais de saída

Bloco de execução
Exemplo setpoint PID "contínua“,
independente,
medição motor
Sem efeitos colaterais

O bloco de dados é definido por:


• Interface de fluxo de dados (número e tipo de sinais de entrada/saída
• Comportamento de Caixa-Preta (semântica funcional, ex.: na forma te
SinaisConexões que carregam o pseudo-contínuo fluxo de dados
Conectam os blocos de função

setpoint (setpoint)
Exemplo (setpoint)

Automação Industrial 48/99 2.3 Controladores Lógicos


COCIAN

Exemplo de Diagramas de Blocos de Função (FBD)

Automação Industrial 49/99 2.3 Controladores Lógicos


COCIAN

Regras dos Diagramas de Blocos de Função (FBD)

Existem duas regras para conectar os blocos de função com os sinais


• Cada sinal é conectado a exatamente uma fonte.
A fonte pode ser uma saída de um bloco de função ou um sinal da planta.

O tipo do pino de saída, o tipo do pino de entrada e o tipo de sinal
devem ser idênticos
Por conveniência, o plano de função deve ser desenhado de forma que
os sinais fluam da esquerda para a direita e de cima para baixo. Alguns
editores impõem regras adicionais.
Retroações são exceções a esta regra. Neste caso a direção do sinal é
identificada por uma seta. (Alguns editores proíbem retroações – neste
caso deve se usar variáveis globais.
a
b x

c y

Automação Industrial 50/99 2.3 Controladores Lógicos


COCIAN

Tipos de Unidades Organizadas de Programação (POUs)

1) Funções
- fazem parte da biblioteca básica.
- não têm memória.
Exemplos: somador, multiplicador, seletor,…

2) Blocos Elementares de Função (EFB)


- fazem parte da biblioteca básica.
- possuem memória individual (dados estatísticos).
- podem ter acesso às variáveis globais (efeitos colaterais!)
Exemplos: contador, filtro, integrador,….

3) Programas (Blocos Componentes)


- definidos pelo usuário ou específicos da aplicação
- podem ter memória
- podem ser configuráveis (fluxo de controle não é visível na linguagem FBD)
Exemplos: controlador PID, Proteção contra sobre-correntes, Seqüência de motores,…
(uma biblioteca de blocos componentes pode ser encontrada na norma IEC 61804-1)

Automação Industrial 51/99 2.3 Controladores Lógicos


COCIAN

Biblioteca de Blocos de Função

O programador escolhe os blocos em uma biblioteca, analogamente ao


engenheiro de hardware que escolhe os circuitos integrados num
catálogo.
Esta biblioteca indica a pinagem de cada bloco, a sua semântica e o seu
tempo de execução.
O programador pode estender a biblioteca pela definição de macros de
blocos de função for a os elementos da biblioteca.

Se alguns blocos são frequentemente usados, eles podem ser


programados em uma linguagem externa (ex.: micro-códigos em C)
seguindo regras específicas.

Automação Industrial 52/99 2.3 Controladores Lógicos


COCIAN

Biblioteca de funções para plantas discretas

Blocos básicos
Combinações lógicas (AND, OR, NOT, XOR)
Flip-flop
Seletor m-diferente-de-n
Multiplexadores m-para-n
Temporizadores
Contadores
Memórias
Seqüenciamento

Blocos compostos
Display
Entradas manuais, touch-screen
Blocos de segurança (intertravamento)
Sinalização de alarmes
Registro

Automação Industrial 53/99 2.3 Controladores Lógicos


COCIAN

Blocos analógicos de função para controle contínuo

Blocos básicos
Somador / Subtrator
Multiplicador / Divisor
Integrador / Diferenciador
Filtro
Valor Mínimo / Máximo
Raiz quadrada
Gerador de Função
Funções de Regulação
Controladores P, PI, PID, PDT2
Ajuste do setpoint
Regulação por fração e multi-componente
Variação/ajuste de parâmetros
Regulação de 2-pontos
Regulação de 3-pontos
Limitação do valor de saída
Gerador de rampas
Regulação Adaptativa
Controle de velocidade de motores (Drive)

Automação Industrial 54/99 2.3 Controladores Lógicos


COCIAN

Biblioteca de Funções para aplicações especializadas

MoveAbsolute
Axis Axis
AXIS_REF AXIS_REF
BOOL Execute Done BOOL
REAL Position CommandAborted BOOL
REAL Velocity Error BOOL
REAL Acceleration ErrorID WORD
REAL Deceleration
REAL Jerk
MC_Direction Direction

Blocos padronizados são definidos em bibliotecas. Ex.: Controle de movimento ou Robótica.

Automação Industrial 55/99 2.3 Controladores Lógicos


COCIAN

Biblioteca IEC 61131-3 (extrato)


Elementos binários Elementos analógicos

GT greater than somador


AND and GT ADD
LT less than
LE less equal
OR SUB subtrator
or TON timer on
IN Q delay
XOR exclusive-or PT ET
MUL multiplicador
CTU
SR CU
S1 up counter DIV divisor
R Q0
flip-flop RESET Q (CTD counter down)
PV ET
R_TRIG INT
positive SEL PV integrador
S1 Q0 edge selector
Init

Mais detalhes: http://www.zpss.aei.polsl.pl/content/dydaktyka/PC/PLC_IEC61131-3.pdf

Automação Industrial 56/99 2.3 Controladores Lógicos


COCIAN

Exercício: Gerador de dente de serra

exercício: construir um gerador em dente de serra


(assimétrico) com os elementos da norma IEC
61131 mostrados na página anterior.

5s 12s
75%

0%

-25%

Automação Industrial 57/99 2.3 Controladores Lógicos


COCIAN

Especificando o comportamento dos Blocos de Função


Diagramas de Tempo:
0 T
x y x

y
T

Tabela Verdade:
x1 x2 y
x1 S 0 0 Estado anterior

x2 R 0 1 0
1 0 1
1 1 1

t
Fórmula Matemática: x dx y
Kpx  Kd  Ki  xd
dt 0

Descrição Textual: Calcula a valor médio quadrático (rms) da entrada com filtro constante
igual…

Automação Industrial 58/99 2.3 Controladores Lógicos


COCIAN

Especificação dos Blocos de Função (SBD) em Texto Estruturado (ST)

Automação Industrial 59/99 2.3 Controladores Lógicos


COCIAN

Decomposição dos Blocos de Função

Um bloco de função descreve uma interface de fluxo de dados.


O seu corpo pode ser implementado de várias maneiras:
Bloco elementar O corpo é implementado em uma linguagem externa
(micro-código, assembly, java, IEC 61131 ST):
procedure xy(a,b:BOOLEAN; VAR b,c: BOOLEAN);
begin
......
= ....
end xy;

Bloco Composto O corpo é implementado como um programa de blocos de


função. Cada pino de entrada (ou saída) é implementado
como uma entrada (ou saída) do bloco de função.
Todos os sinais devem aparecer na interface para evitar
efeitos colaterais.

Automação Industrial 60/99 2.3 Controladores Lógicos


COCIAN

Segmentação dos Blocos de Função

Um programa aplicativo é decomposto em segmentos (“Programas”) para facilitar a


leitura, interpretação e depuração. Cada segmento será representado em uma página
de impressão (ex.:A4).
• Dentro de um segmento as conexões são representadas graficamente.
• Entre segmentos, as conexões são expressas pelo nome dos sinais.
Segmento A

X1
M2 M1

Y1

Segmento B

X2 Y2
M1

X3 M2

Automação Industrial 61/99 2.3 Controladores Lógicos


COCIAN

2.3.5.3 Execução dos Programas

2.1 Instrumentação
2.2 Controle
2.3 Controladores Lógicos Programáveis
2.3.1 CLPs: Definição e Mercado
2.3.2 CLPs: Tipos
2.3.3 CLPs: Funções e construção
2.3.4 Controle Contínuo e Discreto
2.3.5 Linguagens de Programação de CLPs
2.3.5.1 Linguagens IEC 61131
2.3.5.2 Diagramas de Blocos de Função (FBD)
2.3.5.3 Execução dos Programas
2.3.5.4 Entrada/Saída (Input / Output)
2.3.5.5 Texto Estruturado (ST)
2.3.5.6 Fluxogramas Seqüenciais (SFC)
2.3.5.7 Lógica Ladder
2.3.5.8 Lista de Instruções (IL)
2.3.5.9 Ambiente de programação

Automação Industrial 62/99 2.3 Controladores Lógicos


COCIAN

Execução dos Blocos de Função

Segmento ou POU A X01 X


(program organization unit) F1 F2
B
F4
X02
C F3 Y

function F1
Código de máquina: input1 A
input2 B
Os blocos de função são traduzidos para output X01
a linguagem de máquina (código
F2
intermediário, IL) que é interpretado ou X01
compilado para a linguagem assembly X
(ou assembler). F3
B
Os blocos são executados em seqüência, C
X02
normalmente do canto superior esquerdo F4
ao inferior esquerdo X
X02
A seqüência é repetida a cada x ms. Y

Automação Industrial 63/99 2.3 Controladores Lógicos


COCIAN

Entrada-Saída dos Blocos de Função

Tempo de execução:
Leitura Escrita
das nas
entradas saídas
I X O I X O I X O
tempo
execução Período individual

Os blocos de função são executados de forma cíclica.


das as entradas são lidas da memória ou da planta (possivelmente cacheada)
• o segmento é executado
• os resultados são escritos na memória ou direcionados para a planta
(possivelmente para um cache)

A ordem de execução dos blocos geralmente não interessa.


Para acelerar os algoritmos e evitar cascateamento é útil impor uma ordem de execução
para os blocos.

diferentes segmentos podem ser atribuídos a diferentes períodos individuais.

Automação Industrial 64/99 2.3 Controladores Lógicos


COCIAN

Execução em Paralelo

Os blocos de função são particularmente adaptáveis para processamento em paralelo


(processadores paralelos).

O desempenho é limitado pela necessidade de troca de sinais das memórias


compartilhadas.

Não são usados semáforos porque eles podem bloquear uma execução e tornar o
processo não-determinístico.

processador processador processador entrada/


1 2 3 saída

Memória Memória Memória Memória


compartilhada compartilhada compartilhada compartilhada

Automação Industrial 65/99 2.3 Controladores Lógicos


COCIAN

Configuração do Programador

O programador divide o programa em tarefas (às vezes chamadas de


páginas ou segmentos) que podem ser executados com períodos
diferentes.
programador atribui a cada tarefa (página) um período de execução

Como o tempo de execução de cada bloco de uma tarefa é fixo, o tempo


de execução também é fixo.

As operações de atendimento a eventos são encapsuladas em blocos, por


exemplo, para a transmissão de mensagens.
Se o tempo de execução dessas tarefas não é suficiente, elas
continuarão sendo executadas no background.

O período de execução sempre terá a prioridade maior.

Automação Industrial 66/99 2.3 Controladores Lógicos


COCIAN

Motor de execução da norma IEC 61131

configuração
recurso recurso
tarefa tarefa tarefa tarefa

programa programa programa programa

FB FB FB FB

Variáveis globais e I/O direto Variáveis representadas

Caminho de acesso

Funções de comunicação

legenda: Caminho de execução do controle


ou Caminho de acesso às variáveis
FB Blocos de função
variáveis

Automação Industrial 67/99 2.3 Controladores Lógicos


COCIAN

2.3.5.4 Entradas e Saídas

2.1 Instrumentação
2.2 Controle
2.3 Controladores Lógicos Programáveis
2.3.1 CLPs: Definição e Mercado
2.3.2 CLPs: Tipos
2.3.3 CLPs: Funções e construção
2.3.4 Controle Contínuo e Discreto
2.3.5 Linguagens de Programação de CLPs
2.3.5.1 Linguagens IEC 61131
2.3.5.2 Diagramas de Blocos de Função (FBD)
2.3.5.3 Execução dos Programas
2.3.5.4 Entrada/Saída (Input / Output)
2.3.5.5 Texto Estruturado (ST)
2.3.5.6 Fluxogramas Seqüenciais (SFC)
2.3.5.7 Lógica Ladder
2.3.5.8 Lista de Instruções (IL)
2.3.5.9 Ambiente de programação

Automação Industrial 68/99 2.3 Controladores Lógicos


COCIAN

Conectando as Entradas e Saídas, Método 1: blocos dedicados de I/O

As Entradas de Saídas do CLP deve estar conectadas a variáveis.

IN_1 OUT_1

Os blocos de I/O são configurados para estar relacionados com grupos de I/O
correspondentes.

Automação Industrial 69/99 2.3 Controladores Lógicos


COCIAN

Conectando as Entradas e Saídas, Método 2: Configuração de variáveis

Todas as variáveis devem ser declaradas com o nome e tipo, valor inicial e volatilidade.
Uma variável pode estar conectada a uma entrada ou saída, dando a ela um determinado endereço
de I/O.
Várias propriedades devem ser ajustadas: o valor default, valor de segurança, armazenamento na
falha de energia,…
Essas variáveis podem não ser conectadas como entradas ou como saída de resposta de um bloco
de função.

Endereços predefinidos

Automação Industrial 70/99 2.3 Controladores Lógicos


COCIAN

2.3.5.5 Texto Estruturado (ST)

2.1 Instrumentação
2.2 Controle
2.3 Controladores Lógicos Programáveis
2.3.1 CLPs: Definição e Mercado
2.3.2 CLPs: Tipos
2.3.3 CLPs: Funções e construção
2.3.4 Controle Contínuo e Discreto
2.3.5 Linguagens de Programação de CLPs
2.3.5.1 Linguagens IEC 61131
2.3.5.2 Diagramas de Blocos de Função (FBD)
2.3.5.3 Execução dos Programas
2.3.5.4 Entrada/Saída (Input / Output)
2.3.5.5 Texto Estruturado (ST)
2.3.5.6 Cartas de Funções Seqüenciais (SFC)
2.3.5.7 Lógica Ladder
2.3.5.8 Lista de Instruções (IL)
2.3.5.9 Ambiente de programação

Automação Industrial 71/99 2.3 Controladores Lógicos


COCIAN

Texto Estruturado (ST)

(Structured Text, Strukturierte Textsprache, langage littéral structuré)

Linguagem similar ao Pascal, (if, while, etc…)

As variáveis definidas no ST pode ser usadas em outras linguagens.

É usada para a manipulação e implementação de blocos complexos.

Cuidado: escrever programas em texto estruturado pode quebrar as regras de tempo-real!

Automação Industrial 72/99 2.3 Controladores Lógicos


COCIAN

Tipos de Dados
Já que os Blocos de Função possuem um determinado tipos, os tipos de conexão e das
entradas e saídas devem iguais.

• Na configuração dos FB (blocos de função) assim como no ST (texto estruturado) são


definidos Tipos Elementares de Dados.

Tipos binários: Tipos analógicos:


BOOL 1 REAL (Real32)
BYTE 8 LREAL (Real64)
WORD 16
DWORD 32

• Os Tipos Derivados (Derived Types) são definidos pelo usuário e devem ser declarados em
Structured Text
subrange,
enumerated (enumerações),
arrays (vetores),
structured types (structs)
(e.g. AntivalentBoolean2)

As variáveis podem receber valores iniciais e ser declaradas como não-voláteis (RETAIN).

Automação Industrial 73/99 2.3 Controladores Lógicos


COCIAN

61131 Tipos Elementares de Dados


No. Keyword Data Type Bits
1 BOOL Boolean 1
2 SINT Short integer 8
3 INT Integer 16
4 DINT Double integer 32
5 LINT Long integer 64
6 USINT Unsigned short integer 8
7 UINT Unsigned integer 16
8 UDINT Unsigned double integer 32
9 ULINT Unsigned long integer 64
10 REAL Real numbers 32
11 LREAL Long reals 64
12 TIME Duration depends
13 DATE Date (only) depends
14 TIME_OF_DAY or TOD Time of day (only) depends
15 DATE_AND_TIME or DT Date and time of day depends
16 STRING Character string
17 BYTE Bit string of length 8 8
18 WORD Bit string of length 16 16
19 DWORD Bit string of length 32 32
20 LWORD Bit string of length 64 64
21 variable length double-byte string

Automação Industrial 74/99 2.3 Controladores Lógicos


COCIAN

Exemplo de Tipos Derivados

TYPE
ANALOG_CHANNEL_CONFIGURATION
STRUCT
RANGE: ANALOG_SIGNAL_RANGE;
MIN_SCALE : ANALOG_DATA ;
MAX_SCALE : ANALOG_DATA ;
END_STRUCT;
ANALOG_16_INPUT_CONFIGURATION :
STRUCT
SIGNAL_TYPE : ANALOG_SIGNAL_TYPE;
FILTER_CHARACTERISTIC : SINT (0.99)
CHANNEL: ARRAY [1..16] OF ANALOG_CHANNEL_CONFIGURATION;
END_STRUCT ;
END_TYPE

Automação Industrial 75/99 2.3 Controladores Lógicos


COCIAN

2.3.5.6 Fluxogramas Seqüenciais (SFC)

2.1 Instrumentação
2.2 Controle
2.3 Controladores Lógicos Programáveis
2.3.1 CLPs: Definição e Mercado
2.3.2 CLPs: Tipos
2.3.3 CLPs: Funções e construção
2.3.4 Controle Contínuo e Discreto
2.3.5 Linguagens de Programação de CLPs
2.3.5.1 Linguagens IEC 61131
2.3.5.2 Diagramas de Blocos de Função (FBD)
2.3.5.3 Execução dos Programas
2.3.5.4 Entrada/Saída (Input / Output)
2.3.5.5 Texto Estruturado (ST)
2.3.5.6 Fluxogramas Seqüenciais (SFC)
2.3.5.7 Lógica Ladder
2.3.5.8 Lista de Instruções (IL)
2.3.5.9 Ambiente de programação

Automação Industrial 76/99 2.3 Controladores Lógicos


COCIAN

Fluxogramas Seqüenciais (SFC)

(Sequential Flow Chart,Ablaufdiagramme, diagrammes de flux en séquence - grafcet)

START STEP

T1

N ACTION D1 D1_READY
STEP A STEP B
D ACTION D2 D2_READY

T2

A linguagem SFC descreve seqüências de operações e interações entre


processos paralelos.
Ela deriva das linguagens Grafcet e SDL (usada para protocolos de
comunicação, e a sua fundamentação matemática surge das redes de
Petri.
Automação Industrial 77/99 2.3 Controladores Lógicos
COCIAN

SFC: Elementos

S0
Condição do evento
"1"
("1" = sempre verdadeiro) transições
Sa Exemplo de condição de transiçã

Ea Ec = ((varX & varY) | varZ)


estados Sb

Eb
token
Sc exemplo: Sc é verdadeiro, S0, Sa, Sb são falso

O programa seqüencial consiste de estados conectados por transições.

Um estado é ativado pela presença de um token (a variável correspondente fica TRUE).

O token deixa o estado quando a condição de transição (evento) na saída do estado for
verdadeira.
Somente uma transição acontece de cada vez, e o período de execução é um
parâmetro de configuração.
Automação Industrial 78/99 2.3 Controladores Lógicos
COCIAN

SFC: Estado Inicial

Os estados que iniciam a sua existência com um token são


chamados estados iniciais.

Todos os estados iniciais recebem exatamente um token, os outros recebem

A inicialização toma lugar explicitamente no start-up.

Em alguns sistemas, a inicialização pode ser disparada por um


programa do usuário (pino de inicialização em um bloco de função).

Automação Industrial 79/99 2.3 Controladores Lógicos


COCIAN

SFC: Chaveamento e execução em paralelo

"1"
token switch
:o token atravessa a primeira transição
ativa (de forma aleatória se ambos Ea e Eb são verdadeiros) Sa

Ea Eb

Sc
Sb
Ec
Sd

Ed
token forking
: quando a transição Ee é verdadeira, o token
É replicado a todos os estados conectados Se

Ee

Sf Sg
token :join
quando todos os tokens estão presentes
e a transição Ef é verdadeira, um único token é repassado.
Ef

Automação Industrial 80/99 2.3 Controladores Lógicos


COCIAN

SFC: Ações P1, N e P0

Estado1 P1 State1_P1: faça no


início
N State1_N: faça
enquanto
P0 State1_P0: faça no fim

P1 (na subida do pulso) uma ação é executada uma vez na entrada do


pulso.
P0 (na queda do pulso) uma ação é executada quando o estado é deixado
pelo token.
N (não-armazenado) uma ação é executada continuamente enquanto o
token estiver nesse estado.

As ações P1 e P0 podem ser substituídas por estados adicionais.

As ações são descritas por um bloco de código escrito, por exemplo, em


texto estruturado.

Automação Industrial 81/99 2.3 Controladores Lógicos


COCIAN

SFC: regras gráficas

O fluxo de entrada e saída de um estado é sempre na mesma linha vertical


(simplifica a estrutura).

Os caminhos alternativos são desenhados de forma que nenhum caminho é


colocado diretamente no fluxo vertical (ou senão significa que este é o
caminho preferencial).

Deslocamento intencional para


evitar a preferência óptica de um
caminho.

Prioridade:
• O caminho alternativo mais à esquerda
tem a maior prioridade. A prioridade diminui para à direita.

• Loop: a saída tem prioridade maior que o retorno ao laço.

Automação Industrial 82/99 2.3 Controladores Lógicos


COCIAN

SFC: Exercício
Variáveis:
Entradas: In0, In1, In2, In3;
Saídas:
Trap = {0: fechado; 1: aberto}
Speed = {+20: +1 m/s; +1: +5 cm/s}
Register = {0: fechado; 1: aberto}
Valores negativos: direção oposta
Register = {0: fechado; 1: aberto
+speed

In0 In1 In2 In3

Gera “1” assim que a placa do veículo (1cm) estiver sobre o sensor.

: deixar o veículo até tocar I0 com velocidade reduzida e abrir a válvula Trap por 5s (esvaziar o veículo
speed = 5 cm/s entre I0 e I1 ou entre I2 e I3, speed = 1 m/s entre I1 e I2.
1 – Movimentar o veículo de I0 a I3
2 – Parar o veículo quando chegar a I3.
3 - Abrir o tanque durante 5s.
4- Retornar a I0
5 – Abrir a válvula Trap e esperar 5s.
Repetir os cinco passos indefinidamente.

Automação Industrial 83/99 2.3 Controladores Lógicos


COCIAN

SFC: Construindo subprogramas

Elemento T (transition)
::=
OU: OU:

transição Seqüência TCaminhos alternativos

Elemento S (state)
::=
OU: OU: OU:

estado Seqüência S
Caminhos paralelos laço

Os meta-símbolos T e S definem estruturas – podem não aparecer


como elementos no fluxograma.
Um fluxograma pode somente conter os símbolos estado e transição.

Automação Industrial 84/99 2.3 Controladores Lógicos


COCIAN

SFC: Estruturando Fluxogramas

Cada fluxograma sem um gerador de token pode ser redesenhado


como um fluxograma estruturado (com a possível duplicação de
partes do programa).
Não estruturado estruturado

A
a
A
B
a
b d
B d
C
b
c
C
c B' b

A' a

Automação Industrial 85/99 2.3 Controladores Lógicos


COCIAN

SFC: Estruturas complexas

As regras gerais servem para construir redes, denominadas pelas normas


DIN e IEC como fluxogramas.

Problemas com redes gerais: Solução:


Laços fechados Assistência através do editor de fluxogramas.
mortos
Multiplicação incontrolada de tokens

Automação Industrial 86/99 2.3 Controladores Lógicos


COCIAN

Blocos de Função e Fluxogramas

Blocos de Função: Fluxogramas Seqüenciais:


Controle contínuo (tempo) Controle discreto (tempo)

Muitas aplicações de CLP misturam o controle contínuo e discreto.


Um CLP pode executar blocos de função e fluxogramas de forma alternativ
É possível a comunicação entre essas partes do programa.

Princípio:

O fluxograma em si pode ser considerado um bloco


de função com entradas binárias (transições) e saídas
binárias (estados).

Automação Industrial 87/99 2.3 Controladores Lógicos


COCIAN

Executando Fluxogramas como blocos

Um bloco de função pode ser implementado de três formas diferentes

procedure
xy(...);
begin
...
end xy;

externo (ST) Blocos de função fluxograma

Os blocos de função e os fluxogramas se comunicam com sinais binários

Automação Industrial 88/99 2.3 Controladores Lógicos


COCIAN

Fluxogramas ou Blocos de Função?

Uma tarefa pode ser escrita indiferentemente como blocos de função


ou como fluxogramas (na maioria das vezes).
A aplicação pode decidir qual representação é a mais apropriada:

Fluxograma Blocos de Função

S
a
"1"
b R c

NOT d
c

d
a

Automação Industrial 89/99 2.3 Controladores Lógicos


COCIAN

Fluxogramas ou Blocos de Função? (2)

Fluxograma Blocos de Função


init ≥
"1" S
R A
A &
a
a
B S
b
R B
C c &
b
S
R C
&
c

Neste exemplo, o fluxograma parece ser mais apropriado.

Automação Industrial 90/99 2.3 Controladores Lógicos


COCIAN

2.3.5.7 Lógica Ladder

2.1 Instrumentação
2.2 Controle
2.3 Controladores Lógicos Programáveis
2.3.1 CLPs: Definição e Mercado
2.3.2 CLPs: Tipos
2.3.3 CLPs: Funções e construção
2.3.4 Controle Contínuo e Discreto
2.3.5 Linguagens de Programação de CLPs
2.3.5.1 Linguagens IEC 61131
2.3.5.2 Diagramas de Blocos de Função (FBD)
2.3.5.3 Execução dos Programas
2.3.5.4 Entrada/Saída (Input / Output)
2.3.5.5 Texto Estruturado (ST)
2.3.5.6 Fluxogramas Seqüenciais (SFC)
2.3.5.7 Lógica Ladder
2.3.5.8 Lista de Instruções (IL)
2.3.5.9 Ambiente de programação

Automação Industrial 91/99 2.3 Controladores Lógicos


COCIAN

Lógica Ladder

(Ladder Logic, Kontaktplansprache, langage à contacts)

A lógica ladder é a linguagem de programação mais antiga dos CLPs.

Ela se baseia diretamente nas lógicas de relés feitas pelos eletricistas.

É amplamente usada no mundo.

Não é recomendada para novos projetos.

Automação Industrial 92/99 2.3 Controladores Lógicos


COCIAN

Lógica Ladder (2)

Contato fechado
origem: 02
circuitos 01 Bobina do
elétricos relé

03 50
contato aberto

01 02
diagrama ladder 50 barramentos
03
correspondente

50 05 A “bobina" 50 é usada para


44 Mover outro(s) contato(s)

Automação Industrial 93/99 2.3 Controladores Lógicos


COCIAN

Lógica Ladder (3)

O plano de contatos ou linguagem de “lógica ladder”permite uma


fácil transição dos diagramas da lógica de relés para a
programação de funções binárias.
Ela é bastante apropriada para expressar lógicas combinacionais.

Ela não é bem adequada para a programação de controle de


processos (não possui elementos analógicos.

Os principais símbolos da lógica ladder são:

Contato normalmente aberto

Contato normalmente fechado

Bobina de relé

Automação Industrial 94/99 2.3 Controladores Lógicos


COCIAN

Lógica Ladder (4)

As combinações binárias são expressas por contatos de relé em série e par


Representação em lógica ladder
Equivalente "CMOS"
Série + 01
01 02
50 50
02

A bobina 50 é ativa (flui corrente) quando 01 é ativo e 02 é inativo

Paralelo + 01
40 01

02 40
02

A bobina é ativa (flui corrente) quando 01 for ativo ou 02 for inativo.

Automação Industrial 95/99 2.3 Controladores Lógicos


COCIAN

Lógica Ladder (5)

A lógica ladder é mais intuitiva para expressões binárias complexas que


as linguagens literais.
Expressão textual
1 2 3 4
50 !N 1 & 2 STR 3 & N 4 STR N 5
5 6 & 6 / STR & STR = 50

0 1 4 5 12
50 !0 & 1 STR 2 & 3 / STR STR 4
2 3 6 7 & 5 STR N 6 & 7

/ STR & STR STR 10


10 11 & 11 / STR & 12 = 50

Automação Industrial 96/99 2.3 Controladores Lógicos


COCIAN

Lógica Ladder (6)

A lógica ladder deriva do tempo da tecnologia a relés.


Como os CLPS substituíram os relés, as suas novas capacidades
não podem mais serem expressas em termos de relés.
A linguagem de plano de contatos foi estendida para expressar funções:

00 01
Expressão literal:
FUN 02 200
!00 & 01 FUN 02 = 200

A intuição de contatos e bobinas foi perdida.


A introdução de “funções” que influenciam o fluxo de controle em si, é problemá
O plano de contato é – matematicamente – uma representação funcional.
A introdução de fluxos de controle mais ou menos escondidos
destrói a proteção dos efeitos colaterais e dificultam a leitura dos
programas.

Automação Industrial 97/99 2.3 Controladores Lógicos


COCIAN

Lógica Ladder (7)

A lógica ladder não fornece:

• sub-programas (blocos), nem


• encapsulamento de dados, nem
• tipos de dados estruturados.

Ela não se adapta à reutilização de módulos.

A IEC 61131 não prescreve os requisitos mínimos para um


compilador/interpretados tal com o número de lógicas por página,
nem especifica o mínimo de recursos a serem implementados.

Desta forma, ela não deve ser usada para grandes programas feitos
por pessoas diferentes.

Ela é bem limitada quando consideramos valores analógicos (ela


possui somente contadores)
→ usada em manufatura, não em processos de controle.

Automação Industrial 98/99 2.3 Controladores Lógicos


COCIAN

2.3.6 Lista de Instruções

2.1 Instrumentação
2.2 Controle
2.3 Controladores Lógicos Programáveis
2.3.1 CLPs: Definição e Mercado
2.3.2 CLPs: Tipos
2.3.3 CLPs: Funções e construção
2.3.4 Controle Contínuo e Discreto
2.3.5 Linguagens de Programação de CLPs
2.3.5.1 Linguagens IEC 61131
2.3.5.2 Diagramas de Blocos de Função (FBD)
2.3.5.3 Execução dos Programas
2.3.5.4 Entrada/Saída (Input / Output)
2.3.5.5 Texto Estruturado (ST)
2.3.5.6 Fluxogramas Seqüenciais (SFC)
2.3.5.7 Lógica Ladder
2.3.5.8 Lista de Instruções (IL)
2.3.5.9 Ambiente de programação

Automação Industrial 99/99 2.3 Controladores Lógicos


COCIAN

Lista de Instruções
(Instruction Lists, Instruktionsliste, liste d'instructions)

A lista de instruções é uma


linguagem de máquina da
programação de CLPs.

Parecida com o assembler.

Possui 21 instruções (ver na


tabela).

São definidos três


modificadores:
“N” nega o resultado
“C” faz o resultado ser
condicional
“(” atrasa o resultado.

Todas as operações
relacionam um registrador
de resultados ou
acumulador.
Automação Industrial 100/ 2.3 Controladores Lógicos
COCIAN

Exemplo de Lista de Instruções

A lista de instruções é a forma mais eficiente de escrever código,


mas somente por especialistas.

De outra forma, a IL não deve ser usada, porque esta linguagem:

• não fornece estrutura de código


• possui uma semântica muito fraca
• depende da máquina

Automação Industrial 101/ 2.3 Controladores Lógicos


COCIAN

2.3.5.9 Ambiente de Programação

2.1 Instrumentação
2.2 Controle
2.3 Controladores Lógicos Programáveis
2.3.1 CLPs: Definição e Mercado
2.3.2 CLPs: Tipos
2.3.3 CLPs: Funções e construção
2.3.4 Controle Contínuo e Discreto
2.3.5 Linguagens de Programação de CLPs
2.3.5.1 Linguagens IEC 61131
2.3.5.2 Diagramas de Blocos de Função (FBD)
2.3.5.3 Execução dos Programas
2.3.5.4 Entrada/Saída (Input / Output)
2.3.5.5 Texto Estruturado (ST)
2.3.5.6 Fluxogramas Seqüenciais (SFC)
2.3.5.7 Lógica Ladder
2.3.5.8 Lista de Instruções (IL)
2.3.5.9 Ambiente de programação

Automação Industrial 102/ 2.3 Controladores Lógicos


COCIAN

Características do Ambiente de Programação

Um ambiente de programação de CLPs (ABB, Siemens, CoDeSys,…) permite:

- Programar o CLP em uma das linguagens da norma IEC 61131.

- Definir as variáveis (nome e tipo).

- Relacionar às variáveis com as entradas e saídas (binárias, analógicas).

- Simulação.

- Fazer download dos programas para o CLP e atualizar o firmware.

- Ler programas do CLP.

- Monitoração do CLP.

- Documentação e impressão.

Automação Industrial 103/ 2.3 Controladores Lógicos


COCIAN

Ambiente de Programação 61131

Configuração,
editor,
compilador,
bibliotecas
símbolos Notebook/
laptop
código

Monitoraçã
firmware o de
variáveis e
download forçament
o para
depuração
rede

CLP

Automação Industrial 104/ 2.3 Controladores Lógicos


COCIAN

Manutenção dos Programas

A fonte dos programas do CLP está geralmente no laptop do técnico.

Esta cópia é frequentemente modificada, e é difícil de controlar os originais em uma base de


dados de processo, especialmente se muitas pessoas trabalham na mesma máquina.

Assim, pode ser conveniente ser capaz de reconstruir os programas fonte a partir da memória do
CLP (chamado de recuperação, back-tracking, Rückdokumentation, reconstitution).

Isto supõe que a lista de instruções do CLP possam ser mapeadas diretamente em
representações gráficas -> conjunto de regras de como mostrar a informação.

Os nomes das variáveis, blocos e comentários devem ser mantidos claros no texto, de outra
forma, o código, mesmo que correto, pode não ser legível.

Automação Industrial 105/ 2.3 Controladores Lógicos


COCIAN

É A IEC 61131 FB uma linguagem orientada a objeto?

Não realmente, ela não suporta herança.

Os blocos não são recursivos.

Porém ela suporta a definição de interface (tipagem de sinais), instâncias, encapsulamento e


alguma forma de polimorfismo.

Automação Industrial 106/ 2.3 Controladores Lógicos


COCIAN

Limitações da IEC 61131

- Não levou em conta a distribuição da execução de programas em vários dispositivos.

- Não levou em conta a execução de programas disparados por eventos. Os blocos podem ser
disparados por variáveis booleanas (mas isto é somente razoável).

Automação Industrial 107/ 2.3 Controladores Lógicos


COCIAN

Avaliação

1. Quais são as linguagens de programação definidas na norma IEC


61131 e para que elas são usadas?
2. Na linguagem de blocos de função, quais são os dois elementos de
programação?
3. Como é executado um programa num CLP e porque é feito desta
forma?
4. Desenhar um diagrama ladder e o seu correspondente diagrama de
funções.
5. Desenhar um fluxograma seqüencial para implementar um contador
de 2 bits.
6. Programar uma gerador de função de dente de serra usando blocos
de função.
7. Como são tratadas as entradas e saídas do processo na linguagem
de blocos de função?
8. Programar um seqüenciador para uma máquina de balas alimentada
por moedas.
9. Programar um gerador de rampas
108/ para o controle de velocidade
2.3 Controladores de
Lógicos
Automação Industrial

Você também pode gostar