Você está na página 1de 59

Padro

IEC 61131
09 de maro de 2010

OBJETIVOS
Desenvolvimento de habilidades bsicas para programao
no padro IEC 61131-3;

Capacitar o entendimento de uma programao IEC;


Conhecer as caractersticas das linguagens da norma.

BENEFCIOS
Reduo nos gastos com recursos humanos (em treinamento,
depurao, manuteno e consultoria);
Tcnicas de Programao usadas em mais ambientes
(Controle Industrial Geral);
Combinar harmoniosamente diferentes componentes de
diferentes locaes, empresas, paises ou projetos.
Modularizar o problema de controle;
Estruturar a programao do controlador;
Reutilizar software e conhecimento;

IEC 61131
Trata-se de um padro IEC (Internacional Electrotechnical
Commission) para CLPs;

nico padro global para programao de controle industrial;


Primeiras partes publicadas em 1992;
Uma interface de programao padro permite as pessoas
com diferentes habilidades e formaes, criar elementos
diferentes de um programa durante estgios diferentes do
ciclo de vida de um software: especificao, projeto,
implementao, teste, instalao e manuteno.

PARTES

IEC 61131 - Linguagens


O padro inclui a definio da linguagem Sequential Function
Chart (SFC), usada para estruturar a organizao interna do
programa, e de quatro linguagens:

Lista de Instruo (IL);


Diagrama Ladder (LD);
Diagrama de blocos de funes (FBD);
Texto Estruturado (ST).

CERTIFICAO DE PRODUTOS
PLCOpen uma associao independente que promove uma
padronizao na implementao da norma IEC 61131-3.
Atuao:
Divulgao da norma;
Definio de interfaces comuns;
Certificao de produtos;
Recomendaes sobre utilizao da norma.
WWW.PLCOPEN.ORG

IDENTIFICADORES

O primeiro caracter no pode ser um dgito.


Caracter underline mltiplos no so permitidos.
Identificador no pode incluir espao.
Embora os identificadores possam ter qualquer tamanho,
apenas os 6 primeiros caracteres so considerados para
unicidade.
Palavras chaves: No usar identificadores que coincidam com
as palavras chaves da linguagem.
(***********************************)
(* Comentrios devem ser envolvidos por *)
(***********************************)

TIPOS DE DADOS
Inteiro;
Real (ponto flutuante);
Data e hora;

String;
Booleana, Byte e Word.

INTEIROS

Um CLP no precisa suportar todos estes tipos de dados.

PONTO FLUTUANTE

DURAO (TEMPO)
Medio de intervalos de tempo ou definio de timeouts;

DATAS
Armazenar a data e tempo de eventos e alarmes.
Escalonar eventos de controle baseado em data e hora. Por
exemplo aquecer automaticamente um reator em
determinada hora.

Armazenar quando um sistema foi desenergizado e recuperou


para calcular tempo de down time. Medio de intervalos de
tempo ou definio de timeouts;

DATAS

DATAS

STRING

Armazenar nome de bateladas: 'JOB_X32A3;


Armazenar texto de mensagens para operador;
Armazenar mensagens para outros sistemas;
Caracteres no printveis devem ser inseridos na notao:
$Cdigo_hexadecimal_do_caracter;
$0D$0A
Alimenta linha e retorna carro;

STRING

Exemplos:
'Fim da batelada AX45_65'
'Fim do relatrio $N'
'$01$02$10 - 3 caracteres com cdigo decimal 1, 2 e 16
- string nulo

BIT STRING

Uma varivel do tipo BOOL tem dois estados: TRUE e FALSE.


Bit strings so definidos da mesma forma que uma varivel
inteira:
146
2#1101
etc

VALORES INICIAIS

TIPOS DE DADOS DERIVADOS


Devemos usar as palavras chaves para construtores de tipos:
TYPE
PRESSURE: REAL;
END_TYPE;

ESTRUTURA
Uma estrutura construda atravs de um construtor de estruturas:
STRUCT
END_STRUCT;

Vamos definir um novo tipo para designar um sensor de presso


que dever conter:
1. O valor corrente da presso como uma varivel analgica.
2. O status do dispositivo: operante ou faltoso
3. A data da calibrao
4. O mximo valor seguro de operao
5. O nmero de alarmes no perodo de operao corrente.

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

ENUMERAES
Serve para nomear os diferentes status de um valor:
TYPE MODO_DO_DISPOSITIVO:
(INICIALIZANDO, EXECUTANDO, STANDBY, FALHA);
END_TYPE

FAIXAS
Pode-se definir faixa de valores de segurana para variveis:
TYPE
MOTOR_VOLTS: INT(-6..+12);
END_TYPE

O compilador deve assegurar que apenas valores dentro da


faixa designada sejam atribudos s variveis.

ARRAYS
Pode ser constitudo de mltiplos valores dos tipos de dados
elementares ou derivados.
TYPE TANQUE_PRESSURE:
ARRAY [1..20] OF PRESSURE;
END_TYPE
TYPE PTIO_DE_TANQUES:
ARRAY [1..3, 1..4] OF TANQUE_PRESSURE;
END_TYPE

INICIALIZAO DE VARIVEIS
TYPE PRESSURE:
REAL:=1.0; (* Default 1 bar *)
END_TYPE
TYPE MODO_DO_DISPOSITIVO:
(INICIALIZANDO, EXECUTANDO, STANDBY, FALHA):= STANDBY;
END_TYPE

TYPE VESSEL_PRESS_DATA:
ARRAY[1..20] OF PRESSURE:= 10(1.1), 5(1.3), 5(1.7);
END_TYPE

INICIALIZAO DE VARIVEIS
TYPE PRESSURE_SENSOR:
STRUCT
INPUT: PRESSURE:= 2.0;
STATUS: BOOL := 0;
CALIBRATION: DATE:= DT#1994-01-10;
HIGH_LIMIT: REAL := 30.0;
ALARM_COUNT: INT :=0;
END_STRUCT;
END_TYPE

(* substitui default *)
(* Default 0 *)
(* Data de instalao *)
(* Limite default *);
(* Sem alarmes *)

INICIALIZAO DE VARIVEIS
Redefinindo valores defaults de membros de estruturas:
TYPE GAS_PRESSURE_SENSOR:
PRESSURE_SENSOR(PRESSURE:=4.0, HIGH_LIMIT:=40.0);
END_TYPE

Todos os tipos derivados de GAS_PRESSURE_SENSOR


herdaro os novos valores default.

DEFINIO DE VARIVEIS
Devem ser definidas no incio das Program Organisation Units
(POUs):
Programas
Blocos de Funes
Funes
Uma lista de variveis declarada dentro da especificao do tipo
de varivel:
ESPECIFICAO_DE_TIPO
A, B, C: REAL;
IN1, IN2: INT;
END_ESPECIFICAO_DE_TIPO

VARIVEIS INTERNAS OU LOCAIS


So declaradas dentro de uma POU;
VAR
VELOCIDADE_MEDIA: REAL;
INIBE: BOOL;
END_VAR

VARIVEIS DE ENTRADA
So as variveis de entrada para uma POU e so supridas por
uma fonte externa.
VAR_INPUT
SetPoint: REAL;
Max_Count: SINT;
END_VAR

VARIVEIS DE SADA
So as variveis de sada de uma POU e fornecem valores que
sero escritos em um dispositivo externo. So requeridas por
programas e blocos de funo, mas no por funes.
VAR_OUTPUT
Message: STRING(10);
Status: BOOL;
END_VAR

VARIVEIS DE ENTRADA/SADA
So as variveis que agem tanto como entrada como sada
podendo ser modificadas em uma POU. O valor de uma
varivel de entrada e sada armazenado numa varivel que
externa POU.
TYPE MODO_DO_DISPOSITIVO:
(INICIALIZANDO, EXECUTANDO, STANDBY, FALHA):= STANDBY;
END_TYPE
VAR_IN_OUT
AUTO: MODO_DO_DISPOSITIVO;
END_VAR

VARIVEIS GLOBAIS
Podem ser configuradas no nvel de configurao, resource ou
programa e acessadas por POUs por meio de uma declarao
de varivel externa.
VAR_GLOBAL
Velocidade_Linha: REAL;
Numero_Job: INT;
END_VAR

VARIVEIS EXTERNAS
So declaradas dentro de POUs e propiciam acesso a variveis
globais definidas no nvel de configurao, resource ou
programa.
VAR_EXTERNAL
Velocidade_Linha: REAL;
Numero_Job: INT;
END_VAR

VARIVEIS DE REPRESENTAO DIRETA


So variveis que permitem acessar diretamente as posies
de memria dos CLPs. Todas comeam com o caracter %
seguido de duas letras;
A memria de um CLP pode ser dividida em trs regies
lgicas:

VARIVEIS DE REPRESENTAO DIRETA

%I100
%IX100
%IW122
%IW10.1.21
21 *)
%QL100
%MW132

(* Memria de entrada bit 100 *)


(* Memria de entrada bit 100 *)
(* Memria de entrada palavra 122 *)
(* Poderia representar: Rack 10, Mdulo 1, canal

(* Memria de sada long word 100 *)


(* Poiso de memria 132 *)

RETENO
Indica que as variveis seguintes sero colocadas em memria
retentiva, isto que mantm o seu valor em caso de perda de
alimentao do CLP.
VAR_OUT RETAIN
PRODUCAO_ACUMULADA: REAL;
END_VAR

CONSTANTE
Indica que os valores de uma lista de variveis no podem ser
modificados.
No pode ser utilizado com variveis de sada.
(* Define velocidade inicial e relao entre engrenagens como
constantes *)
VAR CONSTANT
StartUp_Speed: REAL := 12.3; (* m/s *)
GearRatio: SINT := 12;
END_VAR

AT
usado para fixar a posio de memria do CLP para alguma
varivel particular que possui um identificador.
Todas as variveis que no tiverem o atributo AT sero
endereadas automaticamente pelo compilador.
(* Define que o array de varredura de dados ir comear na posio *)
(* de memria word 10, e que as sadas digitais no bit 120 *)
VAR
SCAN_DATA AT %IW10: ARRAY[1..8] OF SINT;
DIG_OUTPUTS AT%QX120: ARRAY[0..15] OF BOOL;
END_VAR

AT
Tambm possvel usar o atributo AT para declarar que
determinados tipos de dados existem em certas posies de
memria.
(* Declara que a posio de memria 100 ocupada por um inteiro e que
a posio 210 ocupada por um real *)
VAR
AT %IW100: INT;
AT %QD210: REAL;
END_VAR

INICIALIZAO DE VARIVEIS
Durante a declarao de uma varivel podemos atribuir um
valor de inicializao que sobrescreve o valor default definido
pelo tipo de dados.
VAR
Process_Runs: INT := 10;
Max_tem: REAL := 350.0;
END_VAR
VAR
(* Define palavra na posio de entrada 100 para valor binrio 1001 *)
AT %I100: WORD:= 2#0000_1001;
END_VAR

INICIALIZAO DE VARIVEIS
VAR_OUTPUT
(* Mensagem inicial para operador *)
Message: STRING(21) := Operacional;
(* Estabelece perfil de velocidade *)
Speeds: ARRAY[1..4] OF REAL := 10.1, 2(20.5), 33.1;
END_VAR
VAR_GLOBAL
SENSOR1: PRESSSURE_SENSOR( PRESSURE := 4.0,
HIGH_LIMIT:= 50.0);
END_VAR

LINGUAGENS DE PROGRAMAO

IL Lista de Instrues
Linguagem textual de baixo nvel (linguagem de mquina);
Baseada em comandos load, store, move, add;

Apresentam alta eficincia em pequenas aplicaes (como


sensores/atuadores inteligentes) ou na otimizao de partes
de uma aplicao;
Utiliza o registrador IL do processador.

ST Texto Estruturado
Linguagem textual de alto nvel (similar ao Pascal, C, etc.) =>
incorporando uma srie de conceitos intuitivos;

Utilizao na implementao de procedimentos complexos,


que so difceis de expressar com linguagens grficas tais
como linguagem de algoritmos de otimizao de processo e
inteligncia artificial;

ST Texto Estruturado
Expresses de atribuio de valor:
Var1:= Var2;

Expresses de seleo (if, then, else, case, etc.):


IF Var1= 0.0 THEN
Var2 := Var3/(2.0*Var4)
ELSE
Var2 := Var3/Var5;

Expresses relacionadas a elaborao de loops (for, while,


repeat, etc.):
FOR I:=1 TO 1000 BY 2 DO
Var2 := Var2 1;
END_FOR

ST Texto Estruturado
Expresses de controle do fluxo do programas (return, exit,
etc.) :

Expresses relacionadas a funes e blocos funcionais:


Monitor (In:=IX5)

Chamada de bloco funcional

Var1 := Monitor.Q

Uso da sada de um bloco de funes

LD - Ladder
Trata-se de uma linguagem grfica baseada em smbolos e
esquemas eltricos, tais como rels, contatos e bobinas,
proporcionando um entendimento intuitivo das funes de
inter-travamento, sendo muito bem aceita pelos profissionais
da rea de automao e controle de processos.

LD - Ladder
Bobinas:
Bobinas inversas.
Bobinas sensveis a borda de subida ou descida.
Bobinas de memorizao .
Bobinas de set/reset.
Temporizadores
On delay.
Off delay.
Do tipo pulso.
Comandos para manipulao do fluxo
Return, jump..

LD - Ladder

FDB Diagrama de Blocos Funcionais


Linguagem grfica que permite ao usurio construir
procedimentos combinacionais complexos utilizando-se de
blocos lgicos padres como, AND, OR, NOT, etc. para
representao de equaes booleanas.
Muito utilizado no desenvolvimento de dispositivos
automatizados de baixo custo.

SFC Grafcet
Tambm conhecido pelo nome de GRAFCET => divide o processo
em um nmero definido de passos separados por transies.
Ncleo do IEC 61131-3 => as outras linguagens so utilizadas
apenas para descrever as aes realizadas a cada passo, bem como
as lgicas combinatrias envolvidas.
Oferece muitas vantagens aos usurios e programadores =>
modelagem de problemas complexos de automao.
Problema pode ser sub-dividido em vrias partes => programao
mais simples.
Fcil visualizao das seqncias de operaes, alterao de
especificao e a deteco de falhas conceituais no programa.

SFC Grafcet
O diagrama funcional GRAFCET dever atender as seguintes
exigncias:
Aplicabilidade a todo sistema lgico de controle para descrio de
um automatismo industrial, no importando sua complexidade ou
tecnologia utilizada (eltrica, mecnica, pneumtica, eletrnica
atravs de software ou hardware dedicado, etc.);
Possibilidade de uma descrio completa do sistema, onde as
evolues podero ser expressas seqencialmente, ou seja, a
possibilidade de uma decomposio das etapas;
Possibilidade de ser utilizada na descrio de processos
combinatrios, fornecendo assim ao automatismo uma descrio
seqencial mais fcil de ser analisada e compreendida.

SFC Grafcet

SFC Grafcet

SFC Tipos de aes


Condicionais: A execuo de uma ao pode ser submissa a
uma condio lgica entre varivel de entrada ou de outra
etapa, isto , mesmo o estado de uma etapa sendo ativo pode
haver aes condicionais que no sejam executadas pois sua
condio momentaneamente falsa.
Impulsionais: A ativao da ao ocorrer durante um tempo
determinado, quando a etapa torna-se ativa;
Contnuas: A ao permanece sendo executada enquanto a
etapa estiver ativa.

SFC Transies e Receptividade

SFC Principais funes


Funes Lgicas: As receptividades podem ser compostas por
mais de uma varivel, ligada atravs de uma das funes
lgicas AND, OR ou NOT. As variveis podem ser
representadas por etapa, transio, entrada ou sada.
Temporizador: Uma receptividade pode se tornar verdadeira,
aps um determinado tempo de ativao de uma
determinada etapa.
Mudana de Estado: Uma receptividade pode avaliar ou
mudar o estado de uma varivel. As variveis podem ser uma
determinada etapa, transio, entrada ou sada.

Você também pode gostar