Sunteți pe pagina 1din 19

A Norma IEC 61131

A criao de diversos modelos de equipamentos dedicados automao


industrial gerou uma grande variedade de equipamentos e como conseqncia uma
incompatibilidade das caractersticas com referncia a programao dos mesmos.

Para atender s demandas da comunidade industrial internacional, foi formado


um grupo de trabalho dentro da International Electrotechnical Commission (IEC) para
avaliar o projeto completo de controladores lgicos programveis, incluindo hardware,
instalao, testes, documentao, programao e comunicao.

Algumas foras tarefas de especialistas foram ento estabelecidas para


desenvolver as diferentes partes do padro. A fora-tarefa 3 recebeu o objetivo
primrio de desenvolver um novo padro de linguagens de programao de
controladores programveis, este foi o primeiro esforo internacional efetivo para a
padronizao das linguagens de programao para a automao industrial. A tabela 1
apresenta o estado atual da norma IEC 61131, que normaliza o projeto de
controladores lgicos programveis:

Parte Ttulo Contedo Publicao


Parte 1 General Definio da terminologia e conceitos. 2003 (2
Information Ed.)

Parte 2 Equipment Teste de verificao e fabricao 2003 (2


requirements eletrnica e mecnica. Ed.)
and tests

Parte 3 Programmable Estrutura do software do CLP, linguagens 2003 (2


Languages e execuo de programas. Ed.)

Parte 4 User guidelines Orientaes para seleo, instalao e 2004 (2


manuteno de CLPs. Ed.)

Parte 5 Communications Funcionalidades para comunicao com 2000 (1


outros dispositivos. Ed.)
Parte 6 Reservada

Parte 7 Fuzzy Control Funcionalidades de software, incluindo 2000 (1


Programming blocos funcionais padres para tratamento Ed.)
de lgica nebulosa dentro de CLPs.

Parte 8 Guidelines for Orientaes para implementao das 2003 (2


the Application linguagens IEC 1131-3. Ed.)
and
Implementation
of Programming
Languages
Tabela 5.1. Partes da norma IEC 61131

Atualmente, apenas algumas especificaes e testes de certificao esto


disponveis para esta norma, fazendo com que o nmero de produtos certificados seja
modesto. Mas, j perceptvel a tendncia dos fabricantes em atender s
caractersticas da parte 3 da norma IEC 61131.

IEC 61131 Parte 3: Padronizao Internacional de Linguagens, estrutura


de software e execuo de programas em CLPs

A figura a seguir apresenta a linha do tempo descritiva da evoluo dos


esforos de normalizao e de definio de linguagens de programao de CLPs, a
comear pelo ano de 1970, um ano aps a instalao do primeiro CLP em uma fbrica
nos Estados Unidos.
NEMA Programmable Controllers Committee formed (USA)
GRAFCET (France)
DIN 40719, Function Charts (Germany)
NEMA ICS-3-304, Programmable Controllers (USA)
IEC SC65A/WG6 formed
DIN 19 239, Programmable Controller (Germany)
IEC 65A(Sec)38, Programmable Controllers
MIL-STD-1815 Ada (USA)
IEC SC65A(Sec)49, PC Languages
IEC SC65A(Sec)67
IEC 848, Function Charts
IEC 64A(Sec)90
IEC 1131-3
Type 3 report
recommendation

IEC 61131-3
name change
70 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96

Figura 5.2. Evoluo da padronizao das linguagens de programao.

Linguagens de Programao na IEC 61131

Existem cinco tipos bsicos de linguagem que normalmente so encontradas


em controladores programveis e so padronizadas pela norma IEC 61131-3:

Linguagens Textuais

- Texto Estruturado (Strutured Text ST)

- Lista de Instrues (Instruction List IL)

Linguagens Grficas

- Diagrama Ladder (LD)

- Diagrama Blocos Funcionais (Function Block Diagram FBD)

Dentro dos elementos comuns definidos pela norma existe o Seqenciamento


Grfico de Funes ou Sequential Function Chart (SFC).

O SFC descreve graficamente o comportamento seqencial de um programa de


controle e derivado das tcnicas de modelagem por Redes de Petri e da norma IEC
848 que define o padro Grafcet.
A partir destes dois padres, o SFC possui alteraes necessrias para se
viabilizar a converso de um modelo com representao padro em um conjunto de
elementos de controle de execuo adequados a projetos de automao.

O SFC consiste de passos, interligados com blocos de aes e transies. Cada


passo representa um estado particular do sistema sendo controlado. Cada elemento
ou programa nesta linguagem pode ser programado em qualquer linguagem textual ou
grfica IEC, incluindo-se o prprio SFC quando disponvel na ferramenta de
programao em questo.

Devido a sua estrutura geral ser mais adequada representao global de


projetos de automao e de programas de grande porte, o SFC funciona tambm
como uma ferramenta de comunicao entre equipes de projetistas, integrando
pessoas de diferentes formaes, departamentos e pases. A figura a seguir
exemplifica um trecho de cdigo em SFC:

Step 1 N FILL

Transition 1

Step 2 S Empty

Transition 2

Step 3

Figura 5.3. Sequenciamento Grfico de Funes (SFC)

Linguagens Textuais

Texto Estruturado (Strutured Text ST)

uma linguagem de alto nvel muito poderosa, com razes em Pascal e C.


Contm todos os elementos essncias de uma linguagem de programao moderna,
incluindo condicionais (IF-THEN-ELSE e CASE OF) e iteraes (FOR, WHILE e
REPEAT).
Exemplo:
I:=25;
WHILE J<5 DO
Z:= F(I+J);
END_WHILE

IF B_1 THEN
%QW100:= INT_TO_BCD(Display)
ENDIF

CASE TW OF
1,5: TEMP := TEMP_1;
2: TEMP := 40;
4: TEMP := FTMP(TEMP_2);
ELSE
TEMP := 0;
B_ERROR :=1;
END_CASE

Figura 5.4. Texto Estruturado (ST)

Lista de Instrues (Instruction List IL)

Consiste de uma seqncia de comandos padronizados correspondentes a


funes. Assemelha-se a linguagem Assembler.

O programa representado pela linguagem descritiva Se as entradas E00 e E01


estiverem ligadas, ento ligar sada S80 Pode ser representado em lista de instrues
por:
A E00 : Contato E00
AND A E01 : EM SRIE Contato E01
= S80 : = Acionamento de sada S80

Linguagens Grficas

Diagrama Ladder (LD)

A linguagem Ladder , conforme mencionado anteriormente, a linguagem de


programao de PLCs mais comum e a mais difundida, tambm conhecida como
lgica de diagrama de contatos, pois se assemelha tradicional notao de diagramas
eltricos e de painis de controle a rels. O mesmo esquema eltrico apresentado no
exemplo anterior pode ser representado em diagrama Ladder por:

Figura 5.5. Diagrama Ladder (LD)

Diagrama de Blocos Funcionais (Function Block Diagram FBD)


O diagrama funcional uma forma grfica de representao de instrues ou
comandos que devem ser executados. baseado em blocos funcionais, por exemplo,
uma porta AND. Estes blocos so em geral utilizados dentro de lgicas ladder. O
programa representado pela linguagem descritiva Se as entradas E00 e E01
estiverem ligadas, ento ligar sada S80 pode ser representado em blocos funcionais
por:

Figura 5.6. Diagrama de Blocos Funcionais (FBD)

Estrutura de Software e Execuo de Programas na IEC 61131

Existem elementos comuns da norma que so usados por todas as linguagens


de programao IEC 61131 citadas. Um dos aspectos mais importantes da
programao de qualquer sistema a capacidade de decompor o software em partes
menores.

A norma prev que sejam desenvolvidos ambientes de programao capazes


de decompor programas complexos em diferentes elementos de software, os quais
possuem uma interface padronizada e bem definida entre os mesmos. O modelo de
software (software model) consiste em um conjunto de conceitos que definem uma
infra-estrutura para decomposio em partes do projeto de automao.

A programao baseada na norma IEC orientada para o desenvolvimento de


programas tanto a partir da abordagem de cima para baixo (top-down) como de baixo
para cima (botton-up).
Norma IEC 61131-3
De cima
para baixo

Elementos Comuns

Linguagens de Programao
De baixo
para cima

Figura 5.7. Desenvolvimento up-down e top-down.

Utilizando-se o modelo proposto pela norma ISA 88 utilizada em sistemas de


controle de batelada, para a modularizao de processos industriais em combinao
com as estruturas definidas pelo modelo de software da IEC61131, pode-se utilizar a
estrutura na figura seguinte para uma melhor compreenso do problema:

Abordagem Fsica Abordagem Funcional


D
ec

n al
om

io
nc
po

Aplicao
u

rea do Processo Gesto


si

/F

ca
o

gi
F

Unidade Produtiva Operao


L
si
ca

Programa
/F

a
un

ur
c

ut
io

tr
na

Mdulo de Equipamento Sequenciamento


Es
l

Funcional
Bloco

Mdulo de Controle Controle e Proteo

Figura 5.8. Modelo de projeto hierrquico adaptado da norma ANSI/ISA 88

Neste modelo, a linguagem adotada pela ISA 88 para a programao de


sistemas de batelada a SFC.

Modelo de Software

Considerando-se o contexto de um programa de um Controlador Lgico


Programvel, todo o programa tem que evoluir e interagir com o ambiente onde est
inserido. No possvel, portanto, se definir a estrutura de um programa de CLP sem
um bom entendimento das interfaces e interaes com o sistema de controle e com a
planta externa.

Conforme mencionado anteriormente, quando um CLP est em modo de


execuo (modo run), so necessrias as seguintes interfaces:

 Interfaces de Entrada/Sada: permite o acesso aos dispositivos ou


cartes de E/S para leitura dos sinais do processo como: presses,
nveis, temperaturas, etc..., assim como fazer o comando dos
atuadores.

 Interfaces de comunicao: muitos sistemas necessitam trocar


informaes com outros CLPs, IHMs, etc.

 Interfaces de sistema: corresponde interface entre o programa do


CLP e o hardware do mesmo, a fim que ocorra um correto
funcionamento.

A figura a seguir apresenta o modelo de software definido pela IEC 61131-3:


Configurao
Recurso Recurso caminho de acesso

Tarefa Tarefa Tarefa Tarefa FB


Bloco de
Funo

Programa Programa Programa Programa


Varivel
FB FB FB FB

Variveis globais e de Representao direta


Caminho do controle
de execuo

Caminho de acesso

Funo de Comunicao

Figura 5.9. Modelo de software IEC 61131-3

Configurao

No nvel mais alto, o software para um sistema de controle est contido em


uma configurao. Uma configurao corresponde ao software necessrio para um
nico CLP. Porm, em sistemas mais complexos podem existir diversas configuraes
ou uma configurao com diversos CLPs, as quais interagem entre si atravs de
interfaces de comunicao padronizadas pela norma.
Configurao no mbito da norma IEC no deve ser confundida com o termo
normalmente usado para expressar os passos para definio de parmetros e setups
para um sistema, ou seja, configurando um sistema.

Recurso

Dentro de cada configurao podem existir um ou mais recursos. Um recurso


basicamente qualquer elemento com capacidade de processamento, responsvel pela
execuo dos programas. Uma caracterstica dos recursos que eles so uma diviso
de software, entretanto tambm podem refletir uma diviso no hardware. Cada recurso
deve ser independente, no podendo ser influenciado por outros recursos.
Programas

Um programa IEC pode ser construdo a partir de diferentes elementos de


software escritos em qualquer uma das diferentes linguagens da norma.
Tipicamente, um programa consiste de um cdigo de execuo, capaz de
trocar dados atravs das conexes de software. Um programa pode acessar as
variveis do CLP e se comunicar com outros programas. A execuo de diferentes
partes de um programa pode ser controlada usando Tasks.
Segundo a norma, programa uma montagem lgica de todos os elementos
de linguagens e construes necessrias para o processamento de sinal requerido
para o controle de uma mquina ou processo por um sistema controlador
programvel.

Blocos Funcionais

O conceito de blocos funcionais um dos mais importantes da norma IEC61131-3,


para permitir o projeto de software de forma hierrquica e estruturada. blocos
funcionais podem ser utilizados para a criao de elementos de software totalmente
reutilizveis, desde a criao de outros blocos funcionais mais simples, at programas
mais complexos.
As principais caractersticas dos blocos funcionais so que estes possuem um
conjunto de dados, os quais podem ser alterados por um algoritmo interno. Somente o
conjunto de dados mantido na memria para uma determinada instncia do bloco
funcional.
Blocos funcionais podem ser utilizados para a criao de outros blocos funcionais
(blocos derivados), aumentando ainda mais a capacidade de reutilizao do software.

Funes

Funes so elementos de software que no aparecem no modelo de software.


Funes no possuem persistncia, existindo apenas em tempo de execuo, assim
como sub-rotinas. Portanto, sempre produzem o mesmo resultado para o mesmo
conjunto de entradas.
Funes tm apenas uma sada, sem considerar a sada ENO para controle de
execuo, ao contrrio dos Blocos de Funes que podem ter vrias. O resultado
pode ser um tipo de dado simples de mltiplos elementos (vetores e estruturas). As
funes trigonomtricas so os tipos mais comuns de funes.

Reutilizao de Programas, Blocos Funcionais e Funes

Pela norma, programas, blocos funcionais e funes so considerados Unidades de


Organizao de Programas (POU). A principal finalidade destes elementos a
possibilidade de reutilizao atravs de instncias (exceto as funes, que no so
persistentes). Desta forma, a reutilizao pode ser em macro, por programas, ou em
micro escala por blocos funcionais. A recursividade no permitida por norma dentro
de uma POU por motivos de estabilidade e de segurana da aplicao.
A utilizao de Function Blocks e Functions padres, d-se atravs de bibliotecas
fornecidas pelo fabricante do CLP, ou pela criao de blocos e funes especficos
definidos pelo usurio para atender s necessidades do processo.

Tipo de Aplicado como Comentrio


POU
Instncia de Permite reutilizao no nvel macro, como programas
Programa
um Programa para reatores, transportadores, caldeiras, etc.
Instncia de Possibilita a reutilizao desde simples a complexas
Bloco
um Bloco estratgias de controle e algoritmos, como controle
Funcional
Funcional PID, filtros, motores, etc.
Usada para tratamento comum de dados, como lgica
Funo Funo
E, OU, seno, cosseno, soma e etc.

Tabela 5.10. Exemplos de Reutilizao de POUs

Tarefas (Tasks)

Uma Task um mecanismo de escalonamento muito til para sistemas de


tempo real, que executa Programas ou Blocos funcionais periodicamente ou em
resposta a um evento (mudana de estado de alguma varivel booleana), permitindo a
execuo de programas em diferentes taxas.
A necessidade de se executar programas em taxas diferentes tem por objetivo
atender as exigncias de tempo de resposta do processo controlado e de otimizar o
uso da capacidade de processamento do CLP.
Um forno, por exemplo, que possui uma capacidade trmica muito grande,
pode ser controlado por um algoritmo que executa uma vez a cada minuto,
permanecendo estvel. J as funes de intertravamento de segurana de uma
mquina ferramenta devem ser executadas, por exemplo, a cada 5 ms. A cada tarefa
podemos atribuir um perodo de execuo e uma prioridade.

A norma IEC assume que tarefas em diferentes recursos sempre executam de


forma independente. Entretanto, em algumas implementaes, pode ser necessrio a
utilizao de mecanismos de sincronizao.
Neste contexto, uma simples execuo de um Programa ou Blocos funcionais
implica que todos os elementos de software dentro dos mesmos so processados uma
vez.
A norma IEC no define nenhum mecanismo implcito para execuo de
Programas. Ou seja, um Programa ou Blocos funcionais ficar aguardando a sua
execuo at que seja associado a uma determinada Tarefa e esta seja ativada por
uma execuo peridica ou por um determinado evento (trigger).
Um Bloco funcional devidamente associado a uma tarefa, ser executado na
mesma Tarefa do Programa onde esteja contido (programa pai).
Existem 2 tipos diferentes de Task: Preemptivas e No-Preenptivas, sendo
estas orientadas a eventos (trigger) ou a tempo (peridicas).
Quando existem tarefas mltiplas, normalmente so atribudos diferentes
intervalos e prioridades para cada uma. Para permitir o funcionamento das tarefas,
podem ser utilizados dois mtodos de escalonamento, o preemptivo e o no-
preemptivo. O mtodo adotado por um CLP pode alterar significantemente o
comportamento do sistema.

Task no-preemptiva
Uma tarefa no-preemptiva sempre completa seu processamento, uma vez
iniciado, se sofrer interrupes. O intervalo entre a execuo de Tasks pode variar
muito neste tipo de escalonamento.
Task preemptiva
recomendado para sistemas que devam apresentar comportamento
determinstico no tempo. Neste sistema quando o intervalo de uma Task de maior
prioridade vence, a Task em execuo sofre preempo ( suspensa) e a nova Task
de prioridade maior passa a executar imediatamente. Quando a Task de maior
prioridade termina, a Task suspensa anteriormente volta a executar do ponto onde
parou.

Variveis de escopo Local e Global

A norma exige a declarao de variveis dentro de diferentes elementos de


software, tais como Programas e Blocos Funcionais. As variveis podem utilizar
nomes com significado abrangente (simblicos) e serem de diferentes tipos de dados
definidos por norma.
Podem ser de alocao dinmica ou associadas a posies de memria
(representao direta). O escopo das variveis local ao elemento de software que as
declara, permitindo acesso dentro do prprio elemento que pode ser uma
Configurao, Recurso, Programa, Bloco Funcional ou Funo. Variveis tambm
podem ser de escopo global, sendo acessadas por todos os elementos contidos no
mesmo, incluindo os elementos aninhados.

A seguir um exemplo da utilizao de variveis globais, onde a varivel


EFETIVO_TEMP utilizada no Programa_1 (Program) e no FB_1 (Function Block)
contido no Programa_2 (Program):
CONFIGURAO

RECURSO

PROGRAMA_1 PROGRAMA_2
VARIVEIS GLOBAIS

FB_1 FB_2
EFETIVO_TEMP

Figura 5.11. Variveis Globais

Variveis de representao direta

Posies de memria do CLP podem ser acessadas usando variveis de


representao direta. A representao direta permite a leitura e escrita de dados em
posies conhecidas de memria, tais como entradas, sadas e endereos internos.
As variveis de representao direta tm seu uso restrito aos Programas no
permitindo que Blocos Funcionais faam acesso direto para garantir a reutilizao dos
blocos. A notao utilizada padronizada para permitir a portabilidade.

Todas comeam com o caracter % seguido de uma ou duas letras.

Sinal inicial Identificao de Tamanho


DESCRIO
(IEC std) memria do dado

M X (1 bit) Acesso variveis booleanas.

(Acesso Acesso variveis com 16 bits


(16
memria) W de tamanho:
bits)
INT, UINT e WORD.
Acesso variveis com 32 bits
(32
% I D de tamanho:
bits)
(Entrada fsica do DINT, UDINT, DWORD,
CLP) (32 TIME, DATE, TOD e
T
bits) DATE_AND_TIME.
(32 Acesso variveis com 32 bits
R
Q bits) de tamanho: REAL
(Sada fsica do O contedo dessa regio
CLP) A (8 bits) definido pelo usurio conforme
a necessidade do projeto.
Exemplos de acesso a dados utilizando a nomenclatura IEC61131-3:
%I0.0 Leitura de sinal da entrada E0 da CPU (slot 0, entrada 0)
%IW8.0 Leitura de sinal da entrada proveniente de uma placa analgica (slot 8,
entrada 0)
%Q0.0 Escrita de sinal na sada S0 da CPU (slot 0, sada 0)
%QW8.0 Escrita de sinal na sada proveniente de uma placa analgica (slot 8,
sada 0)
%MX1 Acesso leitura/escrita de varivel booleana na memria do CLP
%MW1 Acesso leitura/escrita de varivel de 16 bits na memria do CLP
%MD1
%MT1 Acesso leitura/escrita de varivel de 32 bits na memria do CLP
%MR1
%MA1 Acesso leitura/escrita de varivel de 8 bits na memria do CLP

Tabela 5.12. Sintaxe de Representao Direta de Variveis

Atributos de variveis:

 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. So declaradas utilizando Retain.

 Constante: Indica que os valores de uma lista de variveis no podem ser


modificados.

Caminho de Acesso (Access Paths):

Os caminhos de acesso permitem a transferncia de dados entre diferentes


configuraes. Cada configurao pode definir um nmero de variveis para acesso
por configuraes remotas. A norma assume que estaro disponveis mecanismos de
comunicao para troca de informaes, no abordando a forma a ser adotada.
Fluxo de controle

A norma IEC no define os mecanismos para controle de execuo dos


elementos de software, os quais so dependentes da implementao. Entretanto, so
definidos os comportamentos na partida e parada do sistema:

Partida:

Quando uma configurao parte, todas as variveis globais so inicializadas e


todos os recursos so atividados.

Quando um recurso parte, todas as variveis dentro do recurso so


inicializadas e todas tarefas so habilitadas.

Uma vez habilitada as tarefas, todos os programas e blocos funcionais


associados s mesmas executaro quando a tarefa estiver ativa.

Parada:

Quando uma configurao para, todos os recursos da mesma param.

Quando um recurso para, todas as tarefas so desabilitadas, interrompendo a


execuo dos programas e blocos funcionais.

Deve ser observado que um programa somente controla a execuo dos


blocos funcionais associados mesma tarefa. Entretanto, os blocos funcionais podem
ser associados a tarefas distintas, no sendo necessariamente sincronizados com os
programas.

Exemplos de sistemas reais aplicando o modelo de software IEC

Em aplicaes com somente uma CPU, o modelo a ser adotado ser


constitudo por uma configurao e um recurso, podendo ter um ou mais programas.
Conforme figura 7:
Figura 5.13. Configurao com um nico CLP

Em aplicaes de grande porte com diversos CLPs, pode-se considerar uma


nica configurao que se refere planta, com diversos recursos, onde cada CLP
corresponder a um recurso. Conforme figura 8:

Figura 5.14. Configurao com diversos CLPs

Aplicaes com mais de uma planta ou reas interligadas, com o uso de


diversos CLPs podem ser considerados como uma ou vrias configuraes. Conforme
figura 9:
CONFIGURAO CONFIGURAO
RECURSOS

RECURSOS

CONFIGURAO

Figura 5.15. Configurao com diversas estaes.

S-ar putea să vă placă și