Você está na página 1de 47

Introdução POU Configuração Tipos de dados Variáveis Linguagens

Aula 10 – IEC 61131-3

ECAi06 - Automação de Sistemas Industriais I


Prof. Luiz Felipe Pugliese

UNIFEI - Universidade Federal de Itajubá


Campus Itabira

07 de Maio de 2019

1 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Nova referência bibliográfica

IEC 61131-3: Programming Industrial Automation Systems


Autor: Karl-Heinz John, Michael Tiegelkamp;
Edição: 2a Edição;
Editora: Springer;
Ano: 2010;
ISBN: 978-3-642-12014-5.

2 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Introdução

Norma IEC 61131-3


IEC: International Electrotechnical Comission;
Anteriormente conhecida como IEC 1131;
IEC 61131: requerimentos para hardware e software de CLPs;
A terceira parte, IEC 61131-3, trata das linguagens de progra-
mação.

3 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Introdução

Fabricantes
Diminuição de custos;
Diferenciação se dá por recursos adicionais para segmentos es-
pecı́ficos;
Inserção de pequenos fabricantes no mercado.

Usuários
Facilita trabalhar com CLPs de vários fabricantes ao mesmo
tempo;
Redução de custos e tempo de treinamento.

4 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

POU

POU – Program Organization Unit


A aplicação em um CLP é dividida em unidades individuais, chama-
das POU, ou Unidades Organizacionais de Programa. Podem ser
dos seguintes tipos:
Programas;
Blocos de funções (ou blocos funcionais);
Funções.

5 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

POU

Programas
Constituem os “programas principais” do CLP;
Em CLPs com multitasking, pode-se ter mais de um“programa
principal” rodando simultaneamente;
Pode associar diretamente variáveis a endereços fı́sicos do CLP;
Exemplo:
Controle de uma esteira;
Controle de uma turbina a vapor.

6 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

POU

Blocos de Funções
Principais unidades de estruturação dos programas;
Possuem variáveis “com memória”;
Exemplo:
Temporizador;
Controlador PID;
Filtro.

7 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

POU

Blocos de funções padrão


SR, RS;
R TRIG, F TRIG;
CTU, CTD, CTUD;
TP, TON, TOF.

8 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

POU

Funções
Mesma entrada sempre resulta na mesma saı́da;
Devem retornar um valor;
Função seno;
Raiz quadrada;
Função E lógico;

9 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

POU

Algumas funções padrão


ABS, SQRT, LN, LOG, EXP, SIN, COS, TAN, ATAN;
ADD, MUL, SUB, DIV, MOD;
SHL, SHR;
AND, OR, XOR, NOT;
GT, GE, EQ, LT, LE, NE.

10 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

POU
Estrutura
Tipo e nome;
Declaração de variáveis;
Código.

11 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

POU

12 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Configuração

Elementos de configuração
Configuração;
Recurso;
Tarefa;
POU.

13 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Configuração

14 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Configuração

Configuração
Corresponde ao sistema completo do CLP, com todos os seus
recursos, controlando um determinado sistema.

Recurso
Corresponde a uma CPU do sistema do CLP, com possı́vel
capacidade de multitasking.

Tarefa
Propriedades de execução de programas e blocos de funções
(execução única ou cı́clica; prioridade)

15 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Configuração

16 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Configuração

17 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Configuração

18 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Tipos de dados

19 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Tipos de dados

Tempos
Utilizados para especificar valores de tempo (ex: 3 minutos e 8
segundos);
Especificação: T# ou t# acompanhado de uma sequência que
pode indicar dias (d), horas (h), minutos (m), segundos (s) ou
milissegundos (ms);
Exemplos:
T#18ms
t#3m4s
t#6h8m22s

20 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Tipos de dados

Tempos
Mais exemplos:
T#12d3h10s
t#6d 4h 10m 20s
T#10d3.5h
t#30h

21 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Tipos de dados

Datas e horas
Tipos: DATE, TIME OF DAY, DATE AND TIME;
Armazenar data e hora de alarmes;
Controlar eventos com base em determinada data e hora;
Cálculo de tempos de operação, etc.
D# : Data
TOD# : Hora
DT# : Data e hora

22 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Tipos de dados

Datas e horas
Exemplos:
D#1995-01-13 – 13 de janeiro de 1995.
TOD#15:12:30 – 15 horas, 12 minutos e 30 segundos.
DT#2015-09-24-10:05:00

23 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Tipos de dados

Definidos pelo usuário


Além dos tipos pré-definidos, o usuário pode definir seus próprios
tipos.

24 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Tipos de dados

Tipos derivados
Palavras chave para construtores de tipos: TYPE

TYPE
PRESSURE: REAL;
END_TYPE;

25 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Tipos de dados

Estruturas – STRUCT
Exemplo: definir um tipo para designar um sensor de pressão que
deverá conter
Valor corrente da pressão como variável analógica;
Status do dispositivo: operante ou faltoso;
Data da calibração;
Máximo valor seguro de operação;
Número de alarmes no perı́odo de operação atual.

26 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Tipos de dados

TYPE PRESSURE_SENSOR:
STRUCT
INPUT: PRESSURE;
STATUS: BOOL;
CALIBRATION: DATE;
HIGH_LIMIT: REAL;
ALARM_COUNT: INT;
END_STRUCT;
END_TYPE;

27 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Tipos de dados

Enumerações
Nomear diferentes estados de um valor.
TYPE MODO_DO_DISPOSITIVO:
(INICIALIZANDO, EXECUTANDO, STANDBY, FALHA);
END_TYPE;

28 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Tipos de dados

Faixas
Pode-se definir uma faixa de valores para variáveis;
O compilador deve assegurar que apenas valores dentro da faixa
designada sejam atribuı́dos às variáveis.

TYPE
MOTOR_VOLTS: INT(-6..+12);
END_TYPE;

29 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Tipos de dados

Arrays
Podem ser constituı́das de tipos de dados elementares ou deri-
vados.
TYPE TANQUE_PRESSURE:
ARRAY[1..20] OF PRESSURE;
END_TYPE;

TYPE PATIO_DE_TANQUES:
ARRAY[1..3, 1..4] OF TANQUE_PRESSURE;
END_TYPE;

30 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Tipos de dados

Valores iniciais
Definição de um valor default para um tipo de dados criado.

TYPE
PRESSURE: REAL := 1.0;
END_TYPE;

31 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Variáveis

Endereçamento simbólico
O programador não precisa associar manualmente o endereço
de todas variáveis a endereços fı́sicos;
Resulta em programação mais simples e confiável.

Nomes de variáveis
Letras maiúsculas ou minúsculas, dı́gitos de 0 a 9, sı́mbolo su-
blinhado “ ”;
Deve começar com letra ou “ ”;
Não é permitido utilizar dois ou mais “ ”consecutivos;
Não é permitido utilizar espaços em branco;
Letras maiúsculas e minúsculas tem o mesmo significado;
Não é permitido utilizar palavras reservadas.
32 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Variáveis

Declaração de variáveis
Todas as variáveis utilizadas pelas POUs devem ser definidas
no inı́cio destas.

33 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Variáveis

34 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Variáveis

VAR
Variáveis internas que não necessitam ser conhecidas ou pro-
cessadas externamente por outras POUs.

VAR OUTPUT
Fornecem valores que serão transferidos para uma POU externa.

VAR INPUT
Alimentadas externamente por uma outra POU;
Só pode ser modificada na POU de origem.

35 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Variáveis

VAR IN OUT
Combina as caracterı́sticas de VAR INPUT e VAR OUTPUT;

VAR GLOBAL
Só podem ser declaradas por programas;
Pode ser lida e escrita por diversas POUs;
Visı́vel só para POUs que a declararem como VAR EXTERNAL.

36 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Variáveis

Atributos de variáveis
RETAIN: Memória retentiva. Mantém o valor da variável mesmo
em caso de falta de energia.

VAR_OUT RETAIN
Velocidade : INT;
END_VAR

37 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Variáveis

Atributos de variáveis
CONSTANT: Valor da variável não pode ser modificada durante
execução da POU.

VAR CONSTANT
FREQ : INT := 60;
END_VAR

38 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Variáveis

Atributos de variáveis
AT: Aloca variável de um programa em um determinado endereço.
Melhor maneira de definir entradas e saı́das fı́sicas do CLP.
Primeiro caractere: %;
Segundo caractere: I (entrada), Q (saı́da), M (memória);
Terceiro caractere: X (bit – opcional), B (byte), W (word);
Última parte: localização na memória

VAR
BT_DESL AT %I2.3 : BOOL;
Temperatura AT %IW3 : WORD;
LAMP AT %Q1 : BOOL;
END_VAR

39 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Variáveis

Atributos de variáveis
R EDGE e F EDGE: Indicam variáveis booleanas que reconhecem
bordas de subida ou descida. Exclusivo para VAR INPUT.

40 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Linguagens

Linguagens de programação
Visando atender aos diversos segmentos da indústria, a norma IEC
61131-3 define cinco linguagens de programação.

Linguagens textuais
Lista de Instruções (IL - Instruction List);
Texto Estruturado (ST - Structured Text).

Linguagens gráficas
Diagrama Ladder (LD - Ladder Diagram);
Diagrama de Blocos de Funções (FBD - Function Block Diagram);
Diagrama Funcional Sequencial (SFC - Sequential Function Chart).

41 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Lista de Instruções – IL

IL
Linguagem de baixo nı́vel, semelhante a assembly;
Indicado para sistemas de pequeno porte e aplicações simples;
Resulta em excelente desempenho.

42 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Texto Estruturado – ST

ST
Linguagem de alto nı́vel, inspirada em Pascal;
Instruções IF-THEN-ELSE, CASE OF, FOR, WHILE, REPEAT;
Adequada para cálculos complexos.

43 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Diagrama Ladder – LD

LD
Baseada na lógica de relés e contatos elétricos;
Fácil entendimento;
Estrutura de software fraca;
Suporte limitado para sequências complexas.

44 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Diagrama de Blocos de Funções – FBD

FBD
Semelhante aos diagramas de eletrônica digital;
Favorece desenvolvimento hierárquico e modular;
Suporte limitado para iterações e condicionais.

45 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

SFC
SFC
Permite descrição de ações sequenciais, paralelas e alternativas;
Estrutura POUs em etapas separadas por transições.

46 / 47
Introdução POU Configuração Tipos de dados Variáveis Linguagens

Leitura complementar

Livro Capı́tulos
Franchi e Camargo 4
John e Tiegelkamp 1, 2, 3, 6

47 / 47