Você está na página 1de 16

Benefícios da norma IEC61131-3 aplicada a CLP s

João Aristides Bottura Filho


bottura@atos.com.br

Abstract

This article aims to show all the benefits and advantages the norm IEC61131-3,and evaluating the
necessity for more advanced hardware platforms to support it.
Since the advent of PLC's, many languages have been used to write programs for machines and
processes and the result of this lack of standardization reflects the need of trainings in different
equipments and formation of specific maintenance teams for each manufacturer.
The direct consequence, many times not recognized by the users, is the loss of time and money.
To reduce this problem, a group formed in IEC (International Electro-technical Commission) defined
some aspects for PLC's, such as characteristics of the hardware, installation, tests, communication
and programming.

Resumo

O objetivo deste artigo é mostrar todos os benefícios e vantagens que a norma IEC61131-3 trás,
avaliando a necessidade de plataformas de hardware mais avançadas para suportá-la.
Desde o advento dos CLP s, muitas linguagens têm sido utilizadas para escrever programas para
máquinas e processos e o resultado desta falta de padronização acaba se refletindo na necessidade
de treinamentos em diferentes equipamentos e formação de equipes de manutenção específicas
para cada fabricante. A conseqüência direta, muitas vezes não percebida aos usuários, é a perda de
tempo e dinheiro.
Para atenuar este problema, um grupo formado na IEC ( International Electro-technical Commission )
definiu vários aspectos para os CLP s, tais como características do hardware, instalação , testes ,
comunicação e programação.

1. Introdução

Entre as principais vantagens da norma podemos destacar a facilidade que o usuário tem em
estruturar a programação em elementos funcionais ou POU´s (Program Organization Units) e poder
escolher a linguagem em que irá programar determinada parte do projeto. Além disso, utilizando um
ambiente de programação universal, o aprendizado das linguagens da norma, permitirá ao usuário
usar este conhecimento em diferentes sistemas de programação (diferentes fabricantes).
Os programas ou parte deles poderão ser exportados para sistemas de diferentes fabricantes
tornando a linguagem altamente portável.
Especificamente a IEC61131-3 trata das 5 linguagens mais utilizadas em todo o mundo : Function
Block Diagram (FBD), Ladder Diagram (LD), Sequential Function Chart (SFC), Structured Text (ST),
and Instruction List (IL).

Outro aspecto a ser abordado é a evolução tecnológica das CPU´s , pois a nova metodologia de
programação proposta pela norma acaba exigindo CPU´s mais velozes e com maior capacidade de
memória, porém a evolução das famílias de novos microcontroladores tem contribuído para que a
implementação da norma em nível de hardware possa ser feita de forma a não haver queda de
performance dos sistemas.
2. Paradigma de programação
As vantagens da norma IEC 6131-3, poderão ser atenuadas caso não atentemos para a mudança no
modo de programação proposto pela norma.

Esta mudança está relacionada à utilização dos Functions e Functions Blocks possíveis de serem
criados pelo usuário, dando a vantagem de poderem ser reutilizados em novas aplicações, reduzindo
com isto o tempo de desenvolvimento da aplicação e também e o tempo de partida do
sistema/processo.

Esta nova maneira de programar nos leva a quebra de um paradigma de programação para
controladores, pois em função de restrições tecnológicas até então existentes, éramos obrigados a
criar programas em ambientes que não possuíam recursos de reusabilidade, o que produz no jargão
de programação, verdadeiras lingüiças de códigos.

Mas o que é um paradigma ?

Paradigma é um modelo, um padrão de comportamento normalmente aceito por todos, senso


comum, praticas consagradas .

Exemplo , o auto-atendimento de carros num posto de gasolina é feito por um frentista, nos EUA
predomina o auto-atendimento.

No Brasil a tentativa de mudar este paradigma não teve sucesso, seja por motivos corporativos ou
mesmo por facilidade do usuário, esta prática ainda não foi quebrada ou mudada.

Os paradigmas normalmente representam um obstáculo a um novo conceito, a novas idéias.

Nesta linha, podemos dizer que a programação de Controladores Programáveis está 200 anos
atrasado !!

Esta constatação pode ser relacionada ao processo de manufatura praticado em meados de 1800,
onde a criação de um produto era visto como arte !

Podemos citar como exemplo um fabricante de arma de fogo daquele tempo:

Aprendi a fazer cada arma com meus ancestrais: um longo período de treinamento .

Hoje sou responsável pela fabricação de cada revólver que assino .

São verdadeiras obras de arte!

As atividades envolvidas na fabricação da arma eram todas elas realizadas por um único artesão :

Cunhar a coronha
Forjar o cabo
Fabricar parafusos
Aparafusar coronha no cabo
Fabricar gatilho
Encaixar tambor
Finalizar o revolver

Conseqüências marcantes dos processos artesanais:

Processo de fabricação artesanal é lento, penoso e caro.


Qualidade dos produtos varia com a habilidade do artesão.

Processo inviabiliza a padronização do desempenho dos produtos.

A manutenção dos produtos em campo é quase impossível, pois apenas o artesão original poderia
reparar as suas criações.
Naquela mesma época, um famoso inventor americano,
Eli Whitney começava a viver seu paradigma particular,
pois ganhara uma licitação do governo americano para
produzir 10.000 mosquetes em 24 meses.
Para saber mais :
www.eliwhitney.org

Na época, a principal fábrica de construção de armas era a Springfield. Baseado na sua produção, o
volume de 5.000 mosquetes seria entregue em 10 anos.

Desta forma Whitney deveria encontrar uma forma diferente, para que pudesse alcançar a meta
pretendida.

Mudanças propostas ou Paradigma de Whitney :


Montar os mosquetes compondo partes padronizadas, livremente intercambiáveis

Especialistas seriam responsáveis por fabricar cada tipo de parte.


Um padrão rigorosamente definido assegurava que as partes eram funcionalmente idênticas.

Montadores seriam responsáveis por montar as partes e testar o produto final.

Vantagens do modelo :
desempenho dos mosquetes fabricados era muito semelhante, com poucas variações entre si.

O processo de produção, com base em componentes, tornava cada mosquete mais barato.

Cada funcionário se tornava especialista em uma parte do mosquete, o que melhorava a qualidade
global do produto.

A manutenção envolvia o conceito de substituição de partes intercambiáveis.

Comparação com a maneira atual de programação

Trazendo este fragmento da história para nossa realidade de programação de CLP´s, ainda
identificamos traços marcantes dos artesões da época de 1800 em nossos programadores :

Cada programa é criado por um único programador, sendo raramente adequado para construir outros
programas.

A manutenção por outro programador do programa criado é uma verdadeira aventura,


pois o entendimento muitas vezes não é claro em função da forma e métodos que o
programador original utilizou em sua obra de arte
3. Revolução industrial para software dos Controladores (IEC61131-3) :
O sucesso na nova forma de se programar, baseia-se em identificar e dividir o programa em
módulos, em partes que quando corretamente codificadas, poderão ser reutilizadas em outras
aplicações.
A norma IEC61131-3 contribuí de forma marcante neste processo, pois dá aos programadores a
possibilidade de se construir uma biblioteca de Function e Functions Blocks de usuário, cujas
instâncias (Function Block) são utilizadas várias vezes na mesma aplicação e também para montar
novas soluções.

Como exemplo desta técnica, vamos ilustrar o controle de uma Bomba de recalque, com as
seguintes variáveis de entrada :

O diagrama em Ladder para fazer o controle é mostrado na figura abaixo :

O que é um function e um function Block de usuário ?


Após ter sido criado o Function Block de usuário, o mesmo poderá ser declarado nos Programs ,
sendo possível declarar quantos Functions Block do tipo Pump forem necessários.

Veja que após a criação do componente chamado Pump por um especialista, a montagem de um
programa que utiliza este componente, pode ser feita por um profissional que não tenha tanto
conhecimento em desenvolver componentes (montador) .

4. Riscos e Benefícios na utilização da norma IEC61131-3


Benefícios em Potencial

Desenvolvimento mais rápido

Com a norma IEC ninguém vai se tornar um super programador a partir do momento que começar a
utilizá-la, nem vai virar um coelhinho e fazer os programas rapidinhos.
Você vai aproveitar componentes de outros projetos, não vai fazer teste de todas as funções, e
apenas irá testar os novos módulos criados.
O aumento na velocidade de desenvolvimento é uma conseqüência das atividades que não precisam
ser realizadas na sua totalidade ao criar-se um novo sistema.

Custo reduzido de desenvolvimento com mais qualidade :

Crio menos, portanto invisto menos tempo para programar utilizando componentes prontos.
Faço uso de componentes já consolidados (com qualidade)
A modularização facilita na verificação da funcionalidade do programa.
A montagem da aplicação pode ser feita por uma mão de obra não especializada, pois está sendo
feito a montagem dos componentes
Facilidade de manutenção:
O melhor plano de manutenção tem como proposta a construção de um produto de qualidade .
No caso de produtos construídos com Functions e Functions block, por terem uma qualidade
intrínseca maior, demandam um esforço menor de manutenção.

Localização de defeitos

A localização dos defeitos fica restrita a montagem dos componentes, e nos mecanismos de solução.
O mecanismo de solução referem-se à entrada de dados do projeto, ou seja toda a especificação da
funcionalidade da planta/ processo, onde algum detalhe pode não ter sido observado ou informações
não devidamente prospectadas durante a fase de especificação fará com que modificações /
correções sejam necessárias.

Na parte da montagem, temos a intervenção de uma mão de obra que não necessariamente precisa
ter uma alta qualificação, pois estará trabalhando na montagem dos componentes padronizados e
funcionais do sistema.
Logicamente que nesta etapa, ajustes e mesmos modificações são previsíveis e aceitáveis.

Diagrama geral

Culpa do Estagiário
Montagem

Não identifiquei 100% as


Mecanismo de solução necessidades do projeto

Ao longo do tempo fica livre de


Biblioteca do usuário bugs e é utilizada em todos os
programas da empresa
Biblioteca do Fabricante
Estável desde o início
Reparo de defeitos

Um problema comum em produtos desenvolvidos de forma convencional é a cascata de reparos .


O reparo de um defeito tende a revelar outro defeito e assim sucessivamente.

Rotina 1

Subrotina 1

Rotina 2

Rotina 3

Rotina 3

No caso de um processo centrado em Functions e Functions Block, o programa é construído com


um maior grau de modularidade e por apresentar módulos definidos, a chance das alterações
ficarem confinadas nos Functions é bem maior.

5. Riscos da transição para a tecnologia de objetos


5.1 Maturidade da tecnologia

A Norma IEC61131-3 ainda não esta presente em todos os fabricantes de controladores.


Mesmo os que dizem que a seguem, não possuem todos os recursos que a norma disponibiliza.
A implantação da norma muitas vezes passará por estágios, onde as linguagens irão paulatinamente
sendo incorporadas às novas versões dos aplicativos.
Isto faz com que a haja um freio natural na disseminação da norma, cabendo ao usuário saber
dimensionar de forma consistente as fases que deverá percorrer até que o próprio fornecedor ofereça
todos os recursos da norma.

5.2 Padronização

A norma oferece um conjunto de instruções básicas, que todo fabricante de CP´s necessita ter,
porém deixa em aberto a possibilidade de que o fabricante complemente o set de instruções com
aquelas que achar mais conveniente para seus usuários.
Esta resolução da norma é benéfica pois não engessa o ciclo de criação e desenvolvimento de novas
instruções .
Por outro lado acaba criando uma enorme dificuldade quando o usuário tenta migrar determinados
trechos de programa entre diferentes CP´s (diferentes fabricantes).
Para estas situações , a PLCopen (ver item sobre divulgação da norma) criou um selo de
conformidade denominado Portability Level , onde são definidos os requisitos de portabilidade que
os fabricantes devem respeitar ao exportar um determinado Function ou Function Block.
6. Divulgação da norma

È praticamente impossível passar em poucas páginas todo o volume de informações que a norma
demanda, sendo de extrema conveniência que o leitor complemente seu conhecimento da norma
com leituras adicionais.
Neste sentido , existem dois importantes sites sobre a norma que o leitor deve visitar :

6.1 Site oficial da norma é o www.plcopen.org, onde desde sua fundação em 1992, a
PLCopen se tornou numa associação profissional mundial com cerca de 100 membros e escritórios
na Europa, EUA e Japão. Isto mostra claramente o sucesso da norma mundial IEC 61131-3 e o
objetivo da PLCopen como uma promotora independente desta norma para programação de
controladores industriais.

A PLCopen, como uma organização ativa no Controle Industrial, está criando uma alta eficiência para
o desenvolvimento do software aplicativo: em um único projeto assim como em um alto volume de
produtos. É embasada em ferramentas padrões disponíveis, para as quais extensões são e serão
definidas. Com resultados como a biblioteca para Motion Control, Segurança, Especificação XML,
Níveis de Reutilização e Conformidade, a PLCopen faz sólidas contribuições para a comunidade,
estendendo a independência entre o software e o hardware, assim como a reutilização de código e
integração com ferramentas externas de software.

6.2 Site www.IEC61131.com.br , que é o primeiro site brasileiro a divulgar a norma, tendo como
missão além da divulgação da norma, também promover a troca de informações entre os usuários
de controladores programáveis.
7. Mudança do patamar tecnológico
Em sistemas (hardware) que originalmente não suportavam a construções em IEC61131, caso
passem a fazê-lo, inevitavelmente haverá uma queda de performance (velocidade de
processamento).
Este efeito acontece em função de que determinadas estruturas da norma como Function e Function
Block demandam maior quantidade de memória e também de maior tempo para mudança de
contexto, que acontece quando há a passagem de parâmetros para a estrutura interna das funções
criadas.
Além desta demanda, outras funções inerentes aos CP´s de primeira linha como a programação on-
line e redundância, fazem com que uma quantidade maior de memória sejam necessária para
implementá-las.

A favor da implantação da norma, os novos microcontroladores já trazem incorporado em suas


estruturas diversas facilidades antes só disponível em controladores de base PC.

Esta nova geração de microcontroladores está dando suporte a criação de novos produtos industriais,
que passaram a comportar estruturas complexas, além de terem melhorado a velocidade de
processamento.

Como exemplo, podemos destacar a família Blackfin de microcontroladores da Analog Device, cujas
características podem ser observadas na tabela abaixo :

Microcontrolador ADSP BF537

Características básicas :

Programação RISC (Reduced Instruction Set Computing) : que torna a busca das instruções mais
rápidas.

Freqüência de core de até 600Mhz: Os processadores convencionais possuem freqüência de até


50 Mhz

Freqüência de periféricos de até 133Mhz : Os periféricos normalmente para estes processadores


são SDRAM´s e memórias Flash em geral

32 K byte de memória Cache : Trata-se de uma porção de memória que roda na mesma
freqüência do core, utilizada para antecipar as próximas instruções tornando o processamento mais
rápido, pois o core busca a próxima instrução na Cachê e não na memória externa

10 níveis de pipeline - O pipeline é uma forma de aumentar o poder de processamento do


controlador, onde as instruções subseqüentes são lidas durante determinados ciclos de execução das
instruções anteriores. Está técnica pode levar o microprocessador a executar uma instrução por ciclo
de clock .

Suporte para até 512Mbyte de SDRAM : As SDRAM (Synchronous Dinamic RAM ) , são memórias
RAM de alta freqüência, são utilizadas para receber firmware do microcontrolador , fazendo com que o mesmo
possa rodar mais rápido quando comparado com as memórias Flash .

Vários tipos de Periféricos : Ex : Canais de comunicação (UART´s) , Serial Peripheral Interface


(SPI) , 10/100 timing MAC Controller , Real Time Clock (RTC) , etc .
8. Informações sobre a norma
A norma IEC61131, teve seu inicio em 1979 com um grupo de trabalho dentro da IEC ( International
Electrotechinical Commission) e em 1992 foram publicados os primeiros trabalhos.
A norma foi dividida em 8 partes , sendo a IEC61131-3 a que trata das linguagens de programação
, onde daremos mais atenção neste trabalho

Componentes da norma :

Parte Título Conteúdo


1 General Information Definições da terminologia e
conceitos
2 Equipment requirements Teste
and tests
3 Programming languages Linguagens de programação com
definição de suas estruturas e
execução
4 User Guidelines Orientação para seleção, instalação
e manutenção de CP´s
5 Messaging service Definição de blocos de comunicação
specification entre equipamentos
6 - Não há informações sobre esta parte
da norma ( não utilizada)
7 Fuzzy Control Padrões para tratamento de lógica
Programming Fuzzy em CP´s
8 Guidelines for the Orientação para implementação das
implementation of linguagens IEC61131-3
languages for
programmable controllers

A Norma IEC 61131-3 incentiva o desenvolvimento de programas estruturados.

Neste sentido a norma permite que o programador inicie seu trabalho criando partes funcionais do
projeto como functions ou functions Block ou então criando a estrutura principal do projeto , esta
facilidade em programar recebe o nome de programação top-down ' ou ' bottom-up '.

Top Down

Common Elements

Programming Languages
Bottom Up
Linguagens de programação:

A norma possui 5 linguagens , sendo 3 gráficas e 2 funcionais. O resumo das linguagens pode ser
visto no quadro abaixo :

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


Sequencial Function Chart

Texto Lista de Diagrama Diagrama


Estruturad instruções Ladder Blocos
o (IL) (LD) Funcionais
(ST) Instruction (FBD)
Strutured List Function
Text Block
Diagram

TEXTUAIS GRÁFICAS

Exemplos de codificação de um comando composto por dois contatos e uma saída feito nas
linguagens IL,ST,FBD e Ladder :

Instruction List Structured Text


LD A
ANDN B C:= A AND NOT B
ST C

Function Block Diagram Ladder Diagram

AND
A C A B C
B -| |--|/|----------------( )
A linguagem SFC : Seqüencial Function Chart

A linguagem SFC descreve um comportamento sequencial do programa de controle, sendo portando


muito utilizado em processos de batelada, onde a característica seqüencial é predominante.
Pode ser utilizado para descrever as etapas macros do processo tais como
Partida,Carga,Aquecimento, mistura, Drenagem ,etc .
Em cada etapa do processo as ações poderão ser descritas em qualquer uma das quatro linguagens
da norma ( IL, Ladder,Strutured Text ou Function Blocks).

Histórico:
A linguagem SFC é derivado do Grafcet ( Graphe Fonctionnel de Command Etape-Transition).cuja
origem veio da representação de processos baseados nas Redes de Petri.
Em 1988, foi publicado o padrão IEC848, baseado na linguagem Grafcet, sendo que a norma
IEC61131 -3 introduziu pequenas modificações no padrão IEC848, visando acoplar esta linguagem
às demais linguagens da norma.

Como exemplo , na figura xx temos um reator a ser controlado

Agitator

Feed valve
Acidic reagent

Alkali reagent
Temperature
sensor
pH sensor

Heater band

Harvest valve
A figura yy apresenta os principais elementos da construção em SFC do controle do reator

Passo (STEP) Inicial

Transição Qualificador da ação


Start
Ação
Chave_Liga=1

S1 N Inicialização

S2 N Carga dos produtos


(Bombeamento)
ReatorCheio=1

S3 N Aquecimento

S4 N Fermentação

TimerFerm=1

S5 N Descarga

S6 N Limpeza

Chave_Liga=0
STOP
Palavras chaves utilizadas na norma:

Raiz de um Aplicativo baseado em IEC61131-3

Configuration
Data types

Functions

Function Blocks

Programs
Task Preemptive
Task Non- Preemptive

Task

Configuration (configuração)
Configuração no Âmbito da norma IEC não deve ser confundida com o termo normalmente usado
para expressar os passos para definição de parâmetros e setups para um sistema, ou seja
configurando um sistema .
Configuration portanto, define a planta, o sistema, que pode conter um ou mais equipamentos
interagindo entre si, através de interfaces de comunicação padronizada pela norma.

Resource (Recurso)
Dentro de cada configuração podem existir um ou mais recursos. Um recurso é basicamente qualquer
elemento com capacidade de processamento, responsável pela execução do programa.

POU - Program Organization Unit,


Denomina uma estrutura genérica de programação, podendo existir um POU para Program, Function
e Function Block.
Program mais precisamente: um POU do tipo PROGRAM - Categoria que se enquadra o programa
principal propriamente dito, podendo o usuário criar mais de um, permitindo assim modularizar o
projeto.

Program
Equivale ao programa principal propriamente dito, porém na norma a prática de dividir o projeto em
trechos menores é uma regra, dando origem à criação de vários Programs pelo usuário.
Podem ser escritas em qualquer uma das quatro linguagens.
Function

As functions são elementos que quando executados com um certo conjunto de valores de entrada
(parâmetros) produzem um único dado como resultado.
As funções não são instanciáveis isto é, só existem em tempo de execução, não sendo necessário
um identificador para alocação de memória.
As operações aritméticas são exemplos comuns de funções.

Function Block

Os function Block diferentemente das functions podem ser instanciadas, o que permite persistência
de dados, ou seja, os valores de suas variáveis são preservados entre uma execução e outra.
Exemplos: Blocos PID, Contadores, temporizadores Filtros etc

Uma instância, é um conjunto de dados armazenado em uma estrutura definida pelo tipo de function
Block, e identificados pelo número da instância criada.

Task

Outro termo abstrato definido pela norma e pode ser entendido como sendo uma informação
adicional ao program , que diz ao controlador quando executar determinado program.

As tasks podem ser programadas por :

base de tempo: O Program associado a esta task é executado a cada período definido pelo usuário
por evento: O programa associado a esta task é executado na transição de um estado interno
booleano

Prioridade: define a ordem em que os programs serão executados, começando o de maior prioridade
com o menor índice.

Task preemptivos: interrompem a execução de uma task de menor prioridade, podendo ser
definidas por base de tempo ou por evento externo como exemplo uma entrada digital ou analógica.

Task não preemptivos: não interrompem a task corrente (aguarda a vez), podendo ser definidas
também por base de tempo ou estados interno do controlador

Data types

Define os tipos de dados permitidos pelo controlador.


O usuário também pode definir estruturas de dados, dando origem a um novo tipo de dado.

Exemplos de data types da norma:

TIPO Descrição Bits Faixa


INT Integer 16 -32768 a 32767
UINT Unsigned integer 16 0 a 65535
DINT Double integer 32 -2E31 a 2E31
Real Real (ponto flutuante) 32 +/-10E+/-38
9. CONCLUSÕES

A norma IEC 61131-3 , nos mostra uma nova forma de programar Controladores Programáveis,
onde dentre tantas vantagens , se destaca a possibilidade de criação dos Functions e Functions
Blocks, que são componentes reutilizáveis, que quando corretamente entendidos e utilizados, farão
com que as aplicações se tornem mais versáteis e modulares, dando como resultado uma redução do
tempo de desenvolvimento, teste e implantação de sistemas de automação.

Estes benefícios só serão obtidos caso haja uma conscientização por parte do corpo gerencial das
empresas em dar a oportunidade , o espaço para que a transição possa ocorrer de forma gradual.

O risco desta transição existe, pois a maturidade desta nova tecnologia ainda não atingiu um nível
ideal de acomodação , principalmente no que se refere à troca de componentes entre fabricantes.

Em contrapartida, os novos hardwares estão cada vez mais aptos a acomodar a programação
IEC61131-3, em função do aumento de performance e também do aumento da capacidade de
endereçamento.

Não é difícil prever que daqui a pouco mais de 2 anos, a norma não será mais uma novidade para
entre os usuários de CP´s .
È um processo irreversível, e quem agora apostar nesta transição certamente terá um diferencial
competitivo importante sobre seus concorrentes.

10. REFERÊNCIAS BIBLIOGRÁFICAS

E-3 Programmable controllers-part 3;Título: Programming Languages ;Editora: IEC

Italo , Programação orientada a objetos , notas de aula curso MBIS.

Karl-Heinz John,Michael Tiegelkamp; Título: Programming Industrial Automation Systems;


Editora: Springer

Bonfatti, Monari,Sampieri ;Título:IEC61131-3 Programming Methodology;AlterSys

TORRES, GABRIEL ; Título: Redes de Computadores: Curso Completo ; Editora: Axcel Books.

11. DADOS DO AUTOR

João Aristides Bottura Filho


Atos Automação Industrial Ltda.
Rua Arnoldo Felmanas, 201 Vila Friburgo
CEP: 04774-010 São Paulo SP
Telefone: 5547-7439
FAX: 5686-9194
E-mail: bottura@atos.com.br

Você também pode gostar