You are on page 1of 6

PLCopen

for efficiency in automation


PO Box 2015, 5300 CA Zaltbommel, Netherlands, T. *.31.418.541139, F. *.31.418.516336, www.plcopen.org

IEC 61131-3: a norma para programao


IEC 61131-3 o primeiro esforo real para a padronizao das linguagens de programao para a automao industrial. Como este um apelo mundial, esta uma norma independente de qualquer empresa. IEC 61131-3 a terceira parte da famlia IEC 61131. Esta consiste de: Parte 1 General Overview Parte 2 Hardware Parte 3 Programming Languages Parte 4 User Guidelines Parte 5 Communication Existem muitas formas de entender a parte 3 da norma. Vamos identificar algumas: o resultado da Fora Tarefa 3, Linguagens de Programao, dentro do IEC TC65 SC65B o resultado do trabalho rduo de 7 empresas internacionais somando dezenas de anos de experincia no campo da automao industrial aprox. 200 pginas de texto, com cerca de 60 tabelas, incluindo tabelas de caractersticas a especificao da sintaxe e semntica de uma sute unificada de linguagens de programao, incluindo o modelo geral de software e uma linguagem de estruturao. Outra elegante forma dividir a norma em duas partes (vide figura 1): 1. Elementos Comuns (Common Elements) 2. Linguagens de programao (Programming Languages)

Elementos Comuns
Tipagem de Dados
Dentro dos elementos comuns, os tipos de dados so definidos. A tipagem de dados previne erros na fase inicial. usada para definio do tipo de qualquer parmetro usado. Isto evita, por exemplo, a diviso de uma data por um inteiro. Os tipos de dados comuns so Boolean, Integer, Real, Byte e Word, mas tambm Date, Time_of_Day e String. Baseado nisto, possvel definir os nossos tipos de dados pessoais, chamados de tipos derivados. Desta forma, pode-se definir uma entrada analgica como tipo de dado e reutiliz-la inmeras vezes.

Variveis
Variveis so associadas somente para endereos explcitos de hardware (entradas e sadas por ex.) nas configuraes, recursos e programas. Desta forma, cria-se um alto nvel de independncia do hardware, proporcionando a reutilizao do software. O escopo das variveis normalmente limitado unidade de organizao nas quais elas so declaradas (escopo local). Isto significa que os nomes delas podem ser reutilizados em outras partes sem nenhum conflito, eliminando outra fonte de erros muito comum, dados corrompidos pelo programa. Se as variveis tiverem escopo global, estas devem ser declaradas como tal (VAR_GLOBAL). A cada parmetro pode ser atribudo um valor inicial na partida a quente e a frio do sistema, de forma a se garantir os valores corretos.

Configurao, Recursos e Tarefas

Norma IEC 61131-3


Elementos Comuns

Para melhor entendimento, vamos observar o modelo de software, como definido pela norma (veja a seguir):
Configuration Resource Task Task Resource Task Task FB Function Block

Linguagens de Programao

Program

Program FB FB

Program

Program FB FB Execution control path

Access path

Vamos olhar para estas partes com mais detalhes:

No nvel mais alto, o software deve resolver um problema particular de controle que pode ser formulado como uma Configurao (Configuration). Uma configurao especfica para um sistema de controle particular, incluindo a disposio do

hardware, recursos de processamento, endereamento de memria para I/O e demais capacidades do sistema. Dentro da configurao pode-se definir um ou mais recursos (Resources). Pode-se entender um recurso como um elemento com capacidade de processamento dos programas IEC. Dentro de um recurso, uma ou mais tarefas ( Tasks) podem ser definidas. Tarefas controlam a execuo de um conjunto de programas ou blocos funcionais. Estas podem ser executadas periodicamente ou quando da ocorrncia de um evento especfico, tal como a mudana de uma varivel. Programas (Programs) so constitudos de um nmero de diferentes elementos escritos usando qualquer uma das linguagens definidas pela IEC. Tipicamente, um programa consiste de uma rede de Funes (Functions) e Blocos Funcionais (Function Blocks), os quais so capazes de trocar dados. Funes e Blocos Funcionais so os blocos bsicos de construo, contendo uma estrutura de dados e um algoritmo. Vamos fazer uma comparao com um CLP convencional: este contm um recurso, executando uma tarefa, controlando um programa, processando de forma cclica. A IEC 61131-3 acrescenta muito mais capacidade, tornando-o aberto para o futuro. Um futuro que inclui multi-processamento e programas disparados por eventos. E este futuro no est longe: basta olhar para os sistemas distribudos ou sistemas de controle de tempo-real. A IEC 61131-3 apropriada para uma ampla faixa de aplicaes, sem a necessidade de se aprender linguagens de programao adicionais.

so baseados nos FBs padres, mas tambm nos completamente novos, FBs customizados so permitidos pela norma: isto estabelece um framework. As interfaces de funes e blocos funcionais so descritas da mesma forma:
FUNCTION_BLOCK Example VAR_INPUT: X : BOOL; Y : BOOL; END_VAR VAR_OUTPUT Z : BOOL; END_VAR (* statements of functionblock body *) END_FUNCTION_BLOCK

As declaraes acima descrevem a interface para um bloco funcional com dois parmetros booleanos de entrada e um parmetro booleano de sada.

Programas

Com os anteriormente mencionados blocos bsicos de construo, podemos dizer que um programa uma rede de Funes e Blocos Funcionais. Um programa pode ser escrito em qualquer uma das linguagens de programao definidas.

Sequenciamento Grfico de Funes, SFC


Step 1 N
Transition 1

Unidades de Organizao de Programas

Na IEC 61131-3, os Programas, Blocos Funcionais e Funes so chamadas de Unidades de Organizao de Programas (POUs).

FILL

Funes
A IEC definiu funes padres e funes definidas pelos usurios. Funes padres so, por exemplo, ADD(ition), ABS (absolute), SQRT, SINus e COSinus. Funes definidas pelo usurio, uma vez definidas, podem ser usadas inmeras vezes.

Step 2

S
Transition 2

Empty

Blocos Funcionais, FBs

Step 3

Blocos Funcionais so equivalentes aos circuitos integrados, CIs, representando uma funo de controle especializada. Estes contm dados e um algoritmo, de modo que eles preservam os estados passados (uma das principais diferenas das Funes). Possuem tambm uma interface bem definida e escondem o seu contedo, tais como os CIs. Desta forma, os FBs proporcionam uma separao clara entre diferentes nveis de programadores e equipes de manuteno. Uma malha de temperatura (PID) um excelente exemplo de Bloco Funcional. Uma vez definido, este pode ser usado inmeras vezes, no mesmo programa, em diferentes programas, ou mesmo em diferentes projetos, tornando-o altamente reutilizvel. Blocos Funcionais podem ser escritos em qualquer uma das linguagens IEC, e em muitos casos mesmo na linguagem C. Neste sentido, eles podem ser definidos pelo usurio. Blocos Funcionais Derivados

O SFC descreve graficamente o comportamento seqencial de um programa de controle. derivado das redes de Petri e da norma IEC 848 Grafcet, com as alteraes necessrias para converter a representao de uma documentao padro para um conjunto de elementos de controle de execuo. O SFC estrutura a organizao interna do programa e ajuda a decompor o problema de controle em partes gerenciveis, enquanto mantm a sua viso geral. O SFC consiste de Passos, interligados com blocos de Aes e Transies. Cada passo representa um estado particular do sistema sendo controlado. Uma transio associada com uma condio, a qual, quando verdadeira, causa a desativao do passo anterior mesma e a ativao do passo seguinte. Passos so ligados com blocos de aes, desempenhando uma determinada ao de controle. Cada elemento pode ser

programado em qualquer linguagem IEC, incluindo o prprio SFC. possvel o uso de seqncias alternativas e mesmo paralelas, tais como as normalmente usadas em aplicaes de bateladas. Por exemplo, uma seqncia usada para o processo primrio, a segunda para a monitorao das restries operacionais. Devido a sua estrutura geral, o SFC funciona tambm como uma ferramenta de comunicao, integrando pessoas de diferentes formaes, departamentos e pases.

Linguagens de Programao
So definidas quatro linguagens pela norma. Isto significa que suas sintaxes e semnticas foram definidas, eliminando a chance de dialetos. Uma vez aprendidas, possvel o uso de uma variedade de sistemas baseados nesta norma. As linguagens consistem de 2 textuais e 2 grficas: Textuais Lista de Instrues, IL Texto Estruturado, ST Grficas: Diagrama Ladder, LD Diagrama de Blocos Funcionais, FBD
Instruction List (IL)
LD A C:= A AND NOT B ANDN B ST C

conjunto de blocos grficos interligados, como nos diagramas de circuitos eletrnicos. Se parece com um sistema em termos do fluxo de sinais entre elementos de processamento. Texto Estruturado uma linguagem de alto nvel muito poderosa, com razes em Ada, Pascal e C. Contm todos os elementos essenciais de uma linguagem de programao moderna, incluindo condicionais (IF-THEN-ELSE e CASE OF) e iteraes (FOR, WHILE e REPEAT). Estes elementos tambm podem ser aninhados. Esta linguagem excelente para a definio de blocos funcionais complexos, os quais podem ser usados em qualquer outra linguagem IEC. Exemplo em ST:
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

Structured Text (ST)

Top-down versus bottom-up


Top Down

Function Block Diagram (FBD)


AND A B C

Ladder Diagram (LD)


A B C

Common Elements

-| |--|/|----------------( )

Programming Languages
Bottom Up

Na figura anterior, as quatro linguagens descrevem a mesma lgica de programa. A escolha da linguagem de programao depende: da formao do programador do problema a resolver do nvel da descrio do problema da estrutura do sistema de controle da interface com outras pessoas/departamentos Todas as quatro linguagens so interligadas: elas proporcionam uma plataforma comum, com uma ligao com a experincia existente. Neste sentido, elas tambm funcionam como uma ferramenta de comunicao, integrando pessoas de diferentes formaes. Diagrama Ladder tem sua origem nos EUA. baseada na representao grfica da Lgica de Rels. Lista de Instrues a contraparte europia. Como uma linguagem textual, se assemelha ao assembler. Diagrama de Blocos Funcionais muito usada na indstria de processos. Expressa o comportamento de funes, blocos funcionais e programas como um

A norma tambm permite duas formas para o desenvolvimento de programas: top-down e bottom-up. possvel especificar toda uma aplicao dividindo-a de cima para baixa em parte menores, declarando as variveis, e assim por diante. Ou pode-se comear de baixo, a partir de funes e blocos funcionais derivados, por exemplo. Em ambos os caso, o ambiente de desenvolvimento ir auxili-lo durante todo o processo.

Implementaes
O atendimento completo s exigncias da norma IEC 61131-3 no simples. Por esta razo, a norma permite a implementao parcial em vrios aspectos. Isto cobre o nmero de linguagens, funes e blocos funcionais suportados. Tambm d uma liberdade maior para os fabricantes, mas os usurios devem ficar atentos durante o processo de seleo. Novas verses podem tambm ter um nvel de implementao dramaticamente alto. Muitos ambientes de programao IEC atuais oferecem tudo esperado para os modernos ambientes:

uso do mouse, menus, telas grficas, suporte para mltiplas janelas, uso de hipertexto, verificao durante a programao, etc. Fique atento, pois estas so caractersticas no definidas pela norma: um ponto onde os fabricantes podem se diferenciar.

Concluso
As implicaes tcnicas da norma IEC 61131-3 so muitas, deixando bastante espao para crescimento e diferenciao. Isto torna esta norma propensa para evoluir muito neste sculo. A norma IEC 61131-3 causar um grande impacto em toda indstria de controle industrial. Certamente a norma no ficar restrita para o mercado de CLPs convencionais. Atualmente, a norma j adotada no mercado de Motion Control, sistemas distribudos e sistemas de controle baseados em PC/Softlogic, incluindo pacotes SCADA. E as reas de aplicao continuam crescendo.

Ter uma norma sobre uma ampla rea de aplicao proporciona muitos benefcios para os usurios e programadores. Os benefcios da adoo da norma so vrios, dependendo da rea de aplicao. Alguns exemplos so: reduo do desperdcio de recursos humanos, no treinamento, depurao, manuteno e consultoria destinar maior ateno para a soluo de problemas atravs da reutilizao de software em alto nvel eliminao de erros e dificuldade de entendimento utilizao de melhores tcnicas de programao em um ambiente mais amplo: indstria de controle em geral combinao de diferentes componentes de diferentes programas, locais, empresas e mesmo pases

A PLCopen uma associao mundial independente de produtos e fabricantes que suporta a norma IEC 61131-3. Atravs da implementao desta norma em muitos ambientes de desenvolvimento, os usurios podero escolher entre diferentes marcas e tipos de controladores com pouqussimo treinamento e intercambiar aplicaes com o mnimo de esforo. A organizao PLCopen trabalha com a promoo da adoo da norma, assim como realar a norma no sentido tcnico. Este ltimo inclui certificaes e intercmbio. Membros da PLCopen podem participar dos comits, e como tal ter informaes em avano, uma forte identidade, assim como influenciar nos resultados. Alm disso, eles podem usar a logomarca da PLCopen para a sua promoo. Os comits que trabalham com a PLCopen e seus resultados so descritos resumidamente a seguir.

Melhorias da norma pela PLCopen

suportados para atender s exigncias de compatibilidade. Adicionalmente, a PLCopen estende a norma para suportar a reutilizao dos blocos funcionais definidos pelo usurio (derivados) entre diferentes PSEs. Nvel Conformidade, CL. Com a ampla faixa de reas de aplicao da norma IEC 61131-3, nem todas implementaes utilizam exatamente os mesmos tipos de dados. Para comportar isto, a certificao de acordo com o Nvel Conformidade, CL, implica que o fornecedor da PSE selecione os tipos de dados pelo seu produto em concordncia com a declarao de conformidade. Todas as caractersticas da IEC so testadas. Isto significa que embora o teste seja to tipo Sim/No (conformidade e no-conformidade), podem existir diferenas entre dois produtos certificados. Estas diferenas podem influenciar a reutilizao dos blocos funcionais definidos pelo usurio. O nmero total de tipos de dados definidos pela norma 26 (tabelas 10 e 12 da norma). Esta faixa vai desde sinais digitais simples ON/OFF (BOOL) at estruturas potencialmente complexas. Portanto, CL tem 26 opes: tipo de dado suportado e nosuportado. Somente os tipos de dado suportados so usados para teste. Adicionalmente, o Nvel Reutilizao, RL, dedicado a fazer com que as unidades de programao Funo e Blocos Funcionais sejam reutilizveis em diferentes PSEs. Isto feito atravs do intercambio em uma forma de texto simples da linguagem ST. Para representao em outra linguagem, uma ferramenta de converso de/para ST pode ser includa. Esta a maior, mas natural, contribuio da PLCopen para a norma IEC 61131-3. Historicamente, existe um nvel de entrada chamado de Nvel Bsico, BL , para mostrar o comprometimento com a norma. Embora mais limitado, possvel desenvolver aplicaes baseadas nele. BL proporciona um ponto de entrada para os fabricantes, mostrando o comprometimento deles com a norma. Para os usurios, este nvel proporciona uma interpretao uniforme da norma, especialmente importante se eles tem que trabalhar com sistemas de diferentes fabricantes. Especificaes detalhadas da maioria das linguagens da norma IEC 61131-3 esto quase prontas. O trabalho continua para as linguagens restantes. Os procedimentos de teste de compatibilidade e credenciamento para os laboratrios de teste foram estabelecidos. Laboratrios independentes tm sido credenciados e um crescente nmero de produtos tem sido

Resultados Tcnicos
Os comits tcnicos, TCs, com representantes dos membros da PLCopen, trabalham em itens especficos. Dentro do TC1 Normas, a PLCopen coleta propostas de seus membros para o grupo de trabalho IEC 65B WG7, desenvolve uma posio conjunta, e distribui as informaes relativas. Isto foi objetivado especificamente na segunda edio da norma, a qual foi publicada no incio de 2003. TC2 - Funes define bibliotecas comuns de Funes e Blocos Funcionais para reas de aplicao especficas. Um exemplo a biblioteca de Blocos Funcionais para aplicaes de Motion Control. Esta padronizao integra os aspectos de segurana e controle de movimento no controle industrial. Como tal, proporciona uma visualizao e entendimento comum para os usurios: programadores assim como equipes de implantao e manuteno. Com mltiplas implementaes desta biblioteca, a reutilizao de software e a escala dos sistemas de controle so muito mais fceis, mesmo atravs de diferentes arquiteturas e marcas de controladores. O intercmbio de partes de programas atravs do Nvel Reutilizao da PLCopen (veja a seguir para maiores detalhes) desempenha um importante papel aqui.

Certificao e Testes de Conformidade

TC3 Certificao define um sistema de certificao para os Ambientes de Suporte a Programao, PSE (ambientes de desenvolvimento). Cada PSE pode ser testado para mostrar que compatvel com um subconjunto da norma IEC 61131-3 especificado pela PLCopen. A norma possui um grande nmero das chamadas Tabelas de Caractersticas e a PLCopen definiu quais elementos destas tabelas devem ser

certificados. Para um lista completa consulte o website www.plcopen.org. TC4 Comunicaes trabalha na relao entre a comunicao e as linguagens de programao, tal como o mapeamento do Profibus e CANopen via IEC 61131-5 sobre a IEC 61131-3. TC5 Software Seguro prepara recomendaes para a aplicao da norma IEC 61131-3 numa adaptao para aplicaes de alta confiabilidade (Safety Systems), especialmente para as novas normas para sistemas seguros IEC 61508 e 61511. TC6 XML trabalha na especificao de esquemas XML para todas as linguagens, assim como projetos inteiros. Esta especificao ir proporcionar a base para intercmbio, assim como a integrao com outras ferramentas de software, incluindo ferramentas de desenvolvimento de alto nvel, ferramentas de documentao e verificao.

Benefcios da Afiliao
A afiliao na PLCopen tem muitos benefcios para fabricantes e institutos. A PLCopen suporta fortemente a comunidade de usurios. Para isto, foram criadas categorias de afiliao adicionais. Atravs da afiliao com a PLCopen, faz-se uma declarao clara do seu comprometimento com a norma IEC 61131-3, se tornando mais visvel como tal, podendo-se usar o logo da PLCopen, e ter acesso a informaes em avano assim como influenciar no trabalho realizado. Para maiores informaes, favor acessar o website www.plcopen.org, assim como a revista eletrnica, para a qual voc pode se inscrever no website.

Eventos Promocionais
Uma importante tarefa da PLCopen informar usurios/programadores sobre os benefcios da padronizao da programao de controle industrial. Isto feito via: o website da PLCopen: www.plcopen.org ; publicao de um folheto gratuito (newsletter) impresso e eletrnico, chamado PLCopening; publicaes na imprensa; participao em conferncias e mostras; organizao de conferencias e seminrios prprios, como o ICP em Outubro; Os Comits Promocionais PC1, PC3 e PC4 suportam estas atividades. Membros da PLCopen so mais bem vistos no mercado como apoiadores de padres abertos. PC2 Treinamento Comum definiu uma base comum para treinamento. Esta inclui certificao. Neste sentido, centros de treinamento certificados para treinamento na norma IEC 61131-3 podem ser facilmente identificados.

Traduo: Marcos Fonseca Diretor da Diviso de Tecnologia da Automao ATAN Sistemas www.atan.com.br