Sei sulla pagina 1di 47

Introdução a

Norma IEC 61131–3


para Programação de
Controladores

Marcos Fonseca, M.Sc.


ATAN Sistemas
Maio de 2002
N o r m a I EC 6 1 1 3 1

Em 1992, o IEC publicou a norma IEC 61131, a qual


estabelece padrões para Controladores Programáveis

A norma 61131 é dividida em 5 partes


„ 61131-1 - Informações gerais

„ 61131-2 - Requisitos de hardware

„ 61131-3 - Linguagens de programação

„ 61131-4 - Guia de orientação ao usuário

„ 61131-5 - Comunicação

Outras três partes estão em fase de elaboração


„ 61131-6 - Reservada

„ 61131-7 - Programação utilizando Lógica Fuzzy

„ 61131-8 - Guia para implementação das linguagens

585-17/01 2
I EC 6 1 1 3 1 -3

M o d e l o d e So f t w a r e

Configuração

Função de Comunicação
585-17/01
I EC 6 1 1 3 1 -3

M o d e l o d e So f t w a r e

Configuração

Recurso Recurso

Função de Comunicação
585-17/01
I EC 6 1 1 3 1 -3

M o d e l o d e So f t w a r e

Configuração
Recurso Recurso

Tarefa Tarefa Tarefa Tarefa

Função de Comunicação
585-17/01
I EC 6 1 1 3 1 -3

M o d e l o d e So f t w a r e

Configuração
Recurso Recurso

Tarefa Tarefa Tarefa Tarefa

Programa Programa Programa Programa

Caminho do controle
de execução

Função de Comunicação
585-17/01
I EC 6 1 1 3 1 -3

M o d e l o d e So f t w a r e

Configuração
Recurso Recurso Variável
caminho de acesso

Tarefa Tarefa Tarefa Tarefa FB


Bloco de
Função

Programa Programa Programa Programa


Variável
FB FB FB FB

Variáveis globais e diretas


Caminho do controle
de execução

Caminho de acesso

Função de Comunicação
585-17/01
I EC 6 1 1 3 1 -3

M o d e l o d e So f t w a r e x CL P Co n v e n c i o n a l

Configuração
Recurso Recurso Variável
caminho de acesso

Tarefa Tarefa Tarefa Tarefa FB


Bloco de
Função

Programa Programa Programa Programa


Variável
FB FB FB FB

Variáveis globais e diretas


Caminho do controle
de execução

Caminho de acesso

Função de Comunicação
585-17/01
I EC 6 1 1 3 1 -3

Mecanismo de execução

CLP tradicional CLP IEC 61131

Lê Task 1 periódica período_1


entradas
Task 2 evento event_id
Executa
programa Task 3 evento event_id

...
Define
saídas Task N periódica período_N

„ Ambiente multitarefa (preemptivo ou não)


„ Usuários devem definir cada variável antes
de usá-la

585-17/01 9
I EC 6 1 1 3 1 -3

Combina linguagens de SDCD e CLP numa solução única


Objetivo: tornar SW de CLP modular, reutilizável e portável

N o r m a I EC 6 1 1 3 1 -3

Elementos Comuns

Linguagens de Programação

585-17/01
El e m e n t o s Co m u n s

Convenção de nomes

Endereçamento simbólico Endereçamento físico

DIGESTOR_1

SEQUÊNCIA

FATOR_H

CONTROLE_TEMP

DIGESTOR_1
DIGESTOR_1.SEQUÊNCIA
DIGESTOR_1.SEQUÊNCIA.FATOR_H
DIGESTOR_1.SEQUÊNCIA.FATOR_H.CONTROLE_TEMP
DIGESTOR_1.SEQUÊNCIA.FATOR_H.CONTROLE_TEMP.TIC101_VP 17051021

585-17/01 11
El e m e n t o s Co m u n s

Convenção de nomes

„ Tornam o banco de dados e a estratégia de controle mais


claros e perceptíveis
„ Segue hierarquia top-down

„ Nome embutido no nível de recurso, o computador ou


sistema externo solicita dado pelo nome ao invés de
buscar endereço
„ Facilita integração com outros sistemas: administrativo,
gestão
„ Facilita e exportação da base de dados

„ Uso de Literais: -12, 0.45, 2#1010, FALSE, TRUE,


Time#14ms
„ Etc

585-17/01 12
El e m e n t o s Co m u n s

Tipos de dados

„ Elementares (Bool, INT, Real, Time, Date, String, Byte,


Word, etc…)
„ Genéricos

z ANY

z ANY - NUM

z ANY - BIT

z STRING

z ANY - DATE

z TIME

z DERIVADOS

„ Derivados (enumerated, subrange, array, struct)

585-17/01 13
El e m e n t o s Co m u n s

Variáveis (Declaração, Atribuição de tipos, Inicialização)

„ Elemento simples
Consiste de um único elemento de um tipo de dado
Ex:
%QX75 e %Q75 Bit de saída 75
%IW215 Palavra de entrada 215
%IW2.5.7.1 (hierárquico) Canal 1, módulo 7, rack 5,
barramento 2

„ Múltiplos elementos
z Array - Coleção de dados do mesmo tipo

Ex: Vetores, matrizes


z Structure - Estrutura de dados (Registro)

585-17/01 14
El e m e n t o s Co m u n s

Unidades de Organização de Programas (POU)


„ Função (Function)

„ Bloco de Função (Function Block)

„ Programa (Program)

Características
„ Fornecidas pelo fabricante (software, equipamentos, etc…)

„ Desenvolvidas pelo usuário

„ Não recursivas

585-17/01 15
El e m e n t o s Co m u n s

Função

„ Deve ser declarada


„ Quando executada produz um elemento de dado simples
ou múltiplo (array ou structure)
„ Pode ser invocada nas linguagens textuais como
operando
„ Não possui memória de estados. Isto é, invocar uma
função com os mesmos argumentos (parâmetros de
entrada), sempre produzirá o mesmo valor (saída)
„ Type overloading: a função pode trabalhar com todos os
tipos de dados de um tipo genérico
„ Uma função pode ser utilizada na declaração de outra
POU

585-17/01 16
El e m e n t o s Co m u n s

Exemplo de função

Example Explanation
+-----+ Graphical use of ADD function
| ADD | (No formal parameter names)
B---| |---A
C---| |
D---| |
+-----+

A := ADD(B,C,D); Textual use of ADD function

+-----+ Graphical use of SHL function


| SHL | (Formal parameter names)
B---|IN |---A
C---|N |
+-----+

A := SHL(IN := B,N := C); Textual use of SHL function

585-17/01 17
El e m e n t o s Co m u n s

Funções Padrões

Classe Funções
Conversão de tipo *_TO_**, TRUNC,
BCD_TO_**,
*_TO_BCD
Numéricas ABS, SQRT, LN, LOG, EXP, SIN, COS,
TAN, ASIN, ACOS, ATAN
Aritméticas ADD (+), MUL (*), SUB (-), DIV (/),
MOD, EXPT (**), MOVE (:=)
Deslocamento de Bit SHL, SHR, ROR, ROL
Booleanas AND (&), OR (>=1), XOR, NOT
Seleção SEL, MAX, MIN, LIMIT, MUX
Comparação GT (>), GE (>=), EQ (=),
LE (<=), LT (<), NE (<>)
String LEN, LEFT, RIGHT, MID, CONCAT,
INSERT, DELETE, REPLACE, FIND
Tempo ADD (+), SUB (-), MUL (*), DIV (/),
CONCAT,
DATE_AND_TIME_TO_TIME_OF_DAY,
DATE_AND_TIME_TO_DATE
Enumerações SEL, MUX, EQ, NE

585-17/01 18
El e m e n t o s Co m u n s

Funções Derivadas

Podem ser criadas usando-se


z Funções padrões ou derivadas

z Tipos de dados padrões ou derivados

z Qualquer uma das linguagens IL, ST, LD, ou FBD

z Linguagens adicionais

585-17/01 19
El e m e n t o s Co m u n s

Bloco de Função ou Bloco Funcional

„ Deve ser declarado


„ Quando executado produz um ou mais valores

„ Instanciação: várias instâncias (identificador + estrutura


de dados) podem ser criadas
„ Possui memória de dados: todas as variáveis internas e
de saída são mantidas entre as execuções de um bloco
de função
„ Pode ser invocado pelas linguagens textuais

„ Um bloco de função pode ser usado na declaração de


outro bloco de função ou programa (instanciação)

585-17/01 20
El e m e n t o s Co m u n s

Exemplo de bloco de função

FUNCTION_BLOCK DEBOUNCE FUNCTION_BLOCK


(*** External Interface ***) (** External Interface **)
VAR_INPUT +---------------+
IN : BOOL ; (* Default = 0 *) | DEBOUNCE |
DB_TIME : TIME := t#10ms ; (* Default = t#10ms *) BOOL---|IN OUT|---BOOL
END_VAR TIME---|DB_TIME ET_OFF|---TIME
VAR_OUTPUT OUT : BOOL ; (* Default = 0 *) +---------------+
ET_OFF : TIME ; (* Default = t#0s *) (** Function Block Body **)
END_VAR
VAR DB_ON : TON ; (** Internal Variables **) DB_ON DB_FF
DB_OFF : TON ; (** and FB Instances **) +-----+ +----+
DB_FF : SR ; | TON | | SR |
END_VAR IN----+------|IN Q|-----|S1 Q|---OUT
| +---|PT ET| +--|R |
(** Function Block Body **) | | +-----+ | +----+
DB_ON(IN := IN, PT := DB_TIME) ; | | |
DB_OFF(IN := NOT IN, PT:=DB_TIME) ; | | DB_OFF |
DB_FF(S1 :=DB_ON.Q, R := DB_OFF.Q) ; | | +-----+ |
OUT := DB_FF.Q ; | | | TON | |
ET_OFF := DB_OFF.ET ; +--|--O|IN Q|--+
DB_TIME--+---|PT ET|--------------ET_OFF
END_FUNCTION_BLOCK +-----+
END_FUNCTION_BLOCK

585-17/01 21
El e m e n t o s Co m u n s

Blocos de Função Padrões


Biestáveis Comunicação (IEC 61131-5)
+-----+ +-----+ Conexão CONNECT
| SR | | RS |
BOOL---|S1 Q1|---BOOL BOOL---|S Q1|---BOOL Verificação de Dispositivos STATUS, USTATUS
BOOL---|R | BOOL---|R1 | Aquisição de Dados READ, USEND, URCV
+-----+ +-----+
Controle WRITE, SEND, RCV
Detecção de Borda
+--------+ +--------+
Alarmes NOTIFY, ALARM
| R_TRIG | | F_TRIG |
BOOL---|CLK Q|---BOOL BOOL---|CLK Q|---BOOL
+--------+ +--------+
Contagem
+-----+ +-----+
| CTU | | CTD |
BOOL--->CU Q|---BOOL BOOL--->CD Q|---BOOL
BOOL---|R | BOOL---|LD |
INT---|PV CV|---INT INT---|PV CV|---INT
+-----+ +-----+
+------+
| CTUD |
BOOL--->CU QU|---BOOL
BOOL--->CD QD|---BOOL
BOOL---|R |
BOOL---|LD |
INT---|PV CV|---INT
+------+
Temporização
+-------+ +-------+
| TON | | TOF |
BOOL---|IN Q|---BOOL BOOL---|IN Q|---BOOL
TIME---|PT ET|---TIME TIME---|PT ET|---TIME
+-------+ +-------+
+-------+ +-------+
| TP | | RTC |
BOOL---|IN Q|---BOOL BOOL---|IN Q|---BOOL
TIME---|PT ET|---TIME DT-----|PDT CDT|-----DT
+-------+ +-------+

585-17/01 22
El e m e n t o s Co m u n s

Blocos de Função Derivados

Podem ser criados usando-se


z Blocos de função padrões ou derivados

z Tipos de dados padrões ou derivados

z Qualquer uma das linguagens: IL, ST, LD, FBD ou SFC

z Linguagens adicionais

585-17/01 23
El e m e n t o s Co m u n s

Programa

É um agrupamento lógico dos elementos necessários à


todas as linguagens de programação, para o processamento
de sinais desejado

„ Deve ser declarado


„ Permite a instanciação somente dentro de um recurso

585-17/01 24
El e m e n t o s Co m u n s

Exemplo de programa +----------------------------+


¦ ¦
¦ +===+===+ (* Main sequence *)
¦ |¦START¦|
¦ +===+===+
¦ ¦
¦ +--------------------*----------+
| | |
¦ + READY.X & SINGLE_PB + READY.X & DOUBLE_PB
| | |
¦ +--+---+ +-+-----+ +---+----+ +-+-----+
¦ ¦SINGLE+-¦N¦CYCLE¦ ¦DOUBLE_1+--¦N¦CYCLE¦
¦ +--+---+ +-+-----+ +---+----+ +-+-----+
CONFIGURATION AGV_CONTROL | | |
¦ *---------+ + DONE.X
RESOURCE AGV_PROC: SMALL_PC ¦ ¦ + DONE.X & DOUBLE_PB ¦
¦ ¦ +---------------------+
AGV_1 | | |
+--------------------+ ¦ ¦ +-----+-----+
| AGV | ¦ + DONE.X & NOT DOUBLE_PB ¦DOUBLE_WAIT¦
%IX1---|SINGLE_PB FWD_MOTOR|---%QX1 ¦ ¦ +-----+-----+
%IX2---|DOUBLE_PB REV_MOTOR|---%QX2 | | |
%IX3---|LEFT_LS | ¦ ¦ + READY.X
%IX4---|RIGHT_LS | | | |
+--------------------+ ¦ ¦ +---+----+ +-+-----+
¦ ¦ ¦DOUBLE_2+--¦N¦CYCLE¦
¦ ¦ +---+----+ +-+-----+
| | |
¦ ¦ + DONE.X
| | |
¦ +---------------------+---------+
¦ ¦
¦ +----+-----+
¦ ¦NON_REPEAT¦
¦ +----+-----+
¦ ¦
¦ +NOT(SINGLE_PB OR DOUBLE_PB)
¦ ¦
+-----------------------------+

585-17/01 25
Linguagens

Linguagens de Programação

„ Textuais
z IL - Lista de Instruções

z ST - Texto Estruturado

„ Gráficas

z LD - Ladder

z FBD - Diagrama de Blocos de Função

„ Organização de Programas

z SFC - Funções Gráficas de Seqüenciamento

„ Outras (dependente do produto)

z Flow Chart

z C

z Etc.

585-17/01 26
Linguagens

Batch e estruturação geral do programa


(Sequencial Function Charts)

Funções Gráficas de Sequenciamento (SFC)

Texto Lista de Ladder Blocos de


Estruturado Instruções Função (Batch
ISA88)
(ST) (IL) (LD) (FBD)

TEXTUAIS GRÁFICAS
Mais Controle lógico Controle lógico
flexível e sequencial e regulatório

Baixo nível
Otimização ou pequenas aplicações

585-17/01 27
Linguagens

IL - Lista de Instruções

Características
„ Linguagem de Baixo Nível

„ Semelhante ao Assembler

„ Recomendada para pequenas aplicações ou otimização


de código

585-17/01 28
Linguagens

IL - Lista de Instruções

Estrutura
Label Operator Operand Comment
START: LD %IX1 (* PUSH BUTTON *)
ANDN %MX5 (* NOT INHIBITED *)
ST %QX2 (* FAN ON *)

585-17/01 29
Linguagens

IL - Instruction List

585-17/01 30
Linguagens

ST - Texto Estruturado

Características
„ Linguagem de alto nível

„ Semelhante ao Pascal (ISO 7185)

„ Ideal para

z Tomada de decisões

z Declarações (Variáveis, POUs, Configurações, etc.)

z Cálculos

z Implementação de algoritmos (IF-THEN-ELSE; CASE;


REPEAT-UNTIL; WHILE-DO)
z Definição de ações (SFC)

z Utilização de literais

z Criação de blocos

z Etc.

585-17/01 31
Linguagens

ST - Structured Text

585-17/01 32
Linguagens

LD - Ladder Diagram

Características

„ Baseada no diagrama elétrico de contatos


„ Adequada para controle discreto, combinacional e
seqüencial (intertravamento)
„ Utiliza blocos de função para controle regulatório e
funções especiais

585-17/01 33
Linguagens

LD - Ladder Diagram

585-17/01 34
Linguagens

FBD - Diagrama de Blocos de Função

Características
„ Baseada no diagramas de circuitos (Diagrama Lógico)

„ Adequada para controle discreto, seqüencial, regulatório,


etc.
„ Representação de fácil interpretação

„ Blocos expansíveis em função do nº de parâmetros de


entrada
„ São disparados por parâmetros externos, enquanto os
algoritmos internos permanecem escondidos (= OOP)
„ Blocos encapsulam o algoritmo, destacando o fluxo de
informações e o processamento de sinais

Bloco = Função ou Bloco de Função

585-17/01 35
Linguagens

FBD - Function Block Diagram

585-17/01 36
Linguagens

FBD - Function Block Diagram

585-17/01 37
Linguagens

SFC - Funções Gráficas de Seqüenciamento

Características
„ Baseada no Grafcet e Redes de Petri Ö Formulação
Matemática
„ Padrão para programação de processos Batch Ö ISA
SP88
„ Adequada para

z Estruturação de Programas e Blocos de Função

z Controle seqüencial Ö Receitas e Seqüenciamento


Discreto
z Controle de estados Ö Máquina de Estados Finitos e
Algoritmos
z Tomadas de decisão Ö Árvore de decisões

„ Representação de fácil interpretação

„ Rastreabilidade de eventos

585-17/01 38
Linguagens

SFC - Funções Gráficas de Seqüenciamento

„ Permite reduzir o esforço computacional


„ Facilidade de diagnóstico

„ Elementos de programação

z Passo

z Transição

z Ação

z Ramificação

585-17/01 39
Linguagens

SFC - Sequential Function Chart


PASSO P
P
TRANSIÇÃO T
START
AÇÃO A

RAMIFICAÇÃO R
L
T LINK L

L
P
A
CARREGA-
MENTO DE
MATÉRIA- (FUNÇÃO DE
PRIMA LÓGICA LADDER)

L
T
T
R
A
P
P
CARREGA- ( BLOCOS DE
MENTO DE GERAÇÃO
DE VAPOR FUNÇÕES )
LIXÍVIA

585-17/01 40
Linguagens

SFC - Sequential Function Chart

585-17/01 41
Linguagens Adic ionais

Outras Linguagens - Flow Chart, C, Visual Basic, Etc…

„ A norma permite a utilização de linguagens adicionais


para declaração de funções ou blocos de função,
devendo obedecer à mesma forma de chamada e troca de
dados
„ Utilização básica

z Codificação de algoritmos especiais/complexos

z Proteção de código proprietário

z Recursos de programação avançados

z Bibliotecas dedicadas

585-17/01 42
Linguagens Adic ionais

Flow Chart Programming

585-17/01 43
PL COp e n

PLCopen é uma associação independente que promove uma


padronização na implementação da norma IEC 61131-3
„ Atuação

z Divulgação da norma

z Definição de interfaces comuns

z Certificação de produtos

„ Testes de compatibilidade

z Base level

z Reusability level

z Compliance level

„ Recomendações sobre utilização da norma

585-17/01 44
A s p e c t o s Pr á t i c o s

A programação de controladores dentro da metodologia


proposta pela norma IEC 61131-3 implica em

„ Estruturação
„ Modularização
„ Reutilização

As 5 linguagens disponíveis permitem a implementaçao da


metodologia proposta pelo modelo de software definido pela
norma

585-17/01 45
A s p e c t o s Pr á t i c o s

Características básicas dos ambientes de desenvolvimento IEC


61131
„ Ambiente Windows (copy, paste, drag and drop, etc.)

„ Interface gráfica o “desenho” da lógica

„ Auto declaração de variáveis e POUs (gráfica, tabelas, etc.)

„ Diversas bibliotecas de funções e blocos de funções (IEC,


Fuzzy, Motion, etc.)
„ Compilação transparente ao usuário

„ Edição ON-LINE, FORCE, Monitoração de variáveis

„ Simulação / Depuração de programas

„ Configuração / Documentação de I/O

„ Documentação completa da aplicação

„ Etc...

585-17/01 46
Dúvidas ?

Para maiores informações:

ATAN Sistemas – www.atan.com.br


PLCopen – www.plcopen.org

585-17/01 47

Potrebbero piacerti anche