Вы находитесь на странице: 1из 86

UNIVERSIDADE FEDERAL DO ESPRITO SANTO CENTRO TECNOLGICO DEPARTAMENTO DE ENGENHARIA ELTRICA PROJETO DE GRADUAO

NORMA IEC 61131-3 PARA PROGRAMAO DE CONTROLADORES PROGRAMVEIS: ESTUDO E APLICAO

HUGO CASATI FERREIRA GUIMARES

VITRIA ES SETEMBRO/2005 HUGO CASATI FERREIRA GUIMARES

NORMA IEC 61131-3 PARA PROGRAMAO DE CONTROLADORES PROGRAMVEIS: ESTUDO E APLICAO

Parte manuscrita do Projeto de Graduao do aluno Hugo Casati Ferreira Guimares, apresentado ao Departamento de Engenharia Eltrica do Centro Tecnolgico da Universidade Federal do Esprito Santo, para obteno do grau de Engenheiro Eletricista.

VITRIA ES SETEMBRO/2005 HUGO CASATI FERREIRA GUIMARES

NORMA IEC 61131-3 PARA PROGRAMAO DE CONTROLADORES PROGRAMVEIS: ESTUDO E APLICAO

COMISSO EXAMINADORA:

___________________________________ Prof. Dr. Celso Jos Munaro Orientador

___________________________________ Prof. Dr. Alessandro Mattedi Examinador

___________________________________ Prof. Heliomar Guimares Guzzo Examinador

Vitria - ES, 16 de Setembro de2005

DEDICATRIA

Aos meus pais e professores que sempre almejaram o melhor estudo para seus filhos.

AGRADECIMENTOS Agradeo aos colegas, professores, amigos e parentes pelo apoio e incentivo durante todo o curso. s secretrias Sonia Roubach e Ins Pavan pela pacincia e ajuda quando necessrio durante todo o curso. Agradeo ainda ao meu orientador Celso J. Munaro pelas orientaes e amizade durante as reunies durante todo o perodo do projeto de graduao. E a minha namorada Fonoaudiloga Fernanda pela compreenso e pacincia durante as noites que no pude vela.

ii

LISTA DE FIGURAS Figura 1 Figura 2 Figura 3 Figura 4 Componentes de um sistema de controle industrial .................................. 13 Evoluo dos sistemas de controle desde o final do sculo 19 ................. 15 Componentes de um controlador programvel.......................................... 16 Na programao de baixo nvel, so usados os programas para edio,

assemblagem e depurao no processo de gerao do cdigo de mquina. ............... 17 Figura 5 Programas escritos em linguagem de alto nvel so independentes do

hardware e so traduzidos para o cdigo de mquina pelo compilador. .................... 19 Figura 6 Figura 7 Figura 8 Figura 9 Ciclo de varredura de um Controlador Programvel................................. 20 Custo do Software versus Hardware.......................................................... 23 Evoluo da norma. ................................................................................... 26 Modelo de Software da norma IEC 61131-3............................................. 29

Figura 10 Comunicao externa (remota) usando caminho de acesso .................... 34 Figura 11 Partida/parada do fluxo de controle de um Software IEC. ...................... 35 Figura 12 Decomposio hierrquica do Bloco Funcional PID_Fuzzy. ................. 37 Figura 13 Representao do encapsulamento PID > PID_Auto_Tuning >

PID_Fuzzy................................................................................................................... 38 Figura 14 Exemplo de processamento no-determinstico. ..................................... 39 Figura 15 Esquema da codificao de prioridades das tarefas e distribuio dos

programas, bem como sua execuo........................................................................... 39 Figura 16 Mesmo exemplo no mtodo determinstico. ........................................... 40 Figura 17 Operadores padres do ST no CBF. ....................................................... 45 Figura 18 - Biestvel SR (algoritmo interno em FBD)............................................... 46 Figura 19 - Detector de Borda de Subida (algoritmo interno em ST)......................... 47 Figura 20 Malha de Simulao de Controle de Nvel de um Tanque...................... 48 Figura 21 Esquema de uma partida direta de motor no Ladder............................... 49 Figura 22 Exemplo de programa em FBD. .............................................................. 54 Figura 23 Principais elementos SFC........................................................................ 58 Figura 24 Sistema construdo................................................................................... 59 Figura 25 Malha de controle de nvel implementada............................................... 59 iii

Figura 26

Malha de controle da temperatura do fluido que entra no reservatrio

principal....................................................................................................................... 60 Figura 27 Malha de controle da temperatura do fluido no reservatrio principal. .. 60 Figura 28 Ambiente Control Builder F com representao hierrquica dos

elementos de software IEC. ........................................................................................ 61 Figura 29 Bloco Funcional de Controle da Temperatura Interna do Reservatrio.. 62 Figura 30 Bloco Funcional de Controle da Temperatura do Fludo de Entrada do

Reservatrio. ............................................................................................................... 63 Figura 31 Bloco Funcional de Controle do Nvel do Fludo do Reservatrio......... 64 Figura 32 Programa da Lgica de Controle em SFC............................................... 65 Figura 33 Editando o programa da transio T1...................................................... 66 Figura 34 e 35 Editando a transio em Texto Estruturado..................................... 66 Figura 36 Parmetros do passo Tmp_Inte. .............................................................. 67 Figura 37 Criao do programa em FBD para implementao da malha de controle

de temperatura do reservatrio.................................................................................... 67 Figura 38 e 39 Atribuio do Nome do Programa (Tmp_Inte) e edio do

programa. .................................................................................................................... 68 Figura 40 Inserindo um Bloco Funcional. ............................................................... 68 Figura 41 Escolha do BF.......................................................................................... 69 Figura 42 Bloco Funcional de Controle da Temperatura Interna do Reservatrio.. 69 Figura 43 Adentrando lgica do BF...................................................................... 70 Figura 44 Editando o programa em Texto Estruturado da condio de transio em

T1. ............................................................................................................................... 71 Figura 45 Programa em ST da condio de transio T4......................................... 71 Figura 46 Chamada de Blocos Funcionais na Lista de Instrues. ......................... 72

iv

LISTA DE TABELA Tabela 1 Primeira letra escrita para representar a varivel de representao direta.33 Tabela 2 Segunda letra escrita para representar a varivel de representao direta.33 Tabela 3 Tipos de Unidades de Organizao de Programa. .................................... 36 Tabela 4 Linguagens de Programao. .................................................................... 42 Tabela 5 Representao hierrquica das linguagens................................................ 42 Tabela 6 Operadores padres................................................................................... 43 Tabela 7 Velocidade 1 e 2 e presso. ....................................................................... 44 Tabela 8 Operadores Principais ............................................................................... 53 Tabela 9 Operadores IL de comparao e controle de fluxo ................................... 54 Tabela 10 Pilha de operao .................................................................................... 54

SIMBOLOGIA BF CBF CP Bloco Funcional Control Builder F Controlador Programvel

F - Funo

vi

GLOSSRIO CBF O Control Builder F o programa utilizado para representar os conceitos

da norma IEC 61131-3. CP Entende-se por Controlador Programvel qualquer equipamento de

controle com capacidade de programao, tais como Estao de Engenharia/Operao (Computador de Processo), CLP s, SDCD s, Sistemas Hbridos, etc... Foi utilizado o termo Controlador Programvel por desempenhar funes muito mais complexas que o processamento de lgicas discretas (I/O) do Controlador Lgico Programvel (CLP) tais como o controle de malhas analgicas, capacidade aritmtica, etc... Depuradores ou debuggers executam o programa passo-a-passo, de forma que

possam ser simulados os dados do sistema real, sem a necessidade de conexo com a planta industrial para a depurao de erros. Elementos de Software a configurao define todos os elementos de Software

que interagem entre si para desempenhar as funes de controle. Estao de Engenharia o computador que engenheiro interage com o

Sistema de Controle (CP + E/S + Transdutores + Atuadores) de Processo com um Software de programao e/ou um de superviso. PC Computador Pessoal (Personal Computer). Transio sofrida no significado das palavras ou instrues.

Semntica Sintaxe

Disposio das palavras nas frases ou das instrues num programa.

vii

SUMRIO DEDICATRIA...........................................................................................................I AGRADECIMENTOS............................................................................................... II LISTA DE FIGURAS ...............................................................................................III LISTA DE TABELA.................................................................................................. V LISTA DE TABELA.................................................................................................. V SIMBOLOGIA ..........................................................................................................VI GLOSSRIO ........................................................................................................... VII SUMRIO ..............................................................................................................VIII RESUMO ................................................................................................................. XII 1 INTRODUO EVOLUO DOS SISTEMAS DE CONTROLE ..... 13

1.1 Sistemas de Controles ...................................................................................... 13 1.1.1 Evoluo Histrica.................................................................................. 14 1.1.2 Controladores Programveis................................................................... 15 1.1.2.1 Mtodos de Programao .......................................................... 16 1.1.2.2 Cdigo de Mquina e Assembler .............................................. 16 1.1.2.3 Compilao e Interpretao....................................................... 18 1.1.2.4 Execuo Cclica ....................................................................... 19 1.1.3 SoftPLC................................................................................................... 20 1.2 Motivao para Sistemas Abertos .................................................................... 21 1.2.1 Diferentes Dialetos de Programao ...................................................... 21 1.2.2 Qualidade de Software............................................................................ 21 1.2.3 Custo de Software ................................................................................... 22 1.2.4 Portabilidade de Aplicaes ................................................................... 23 2 A NORMA IEC 61131................................................................................... 25 2.1 Propsito da Norma IEC 61131-3.................................................................... 25 2.2 Certificao de Produtos .................................................................................. 26 2.3 Introduo......................................................................................................... 28 2.4 Modelo de Software IEC .................................................................................. 29 2.4.1 Configuraes ......................................................................................... 30 viii

2.4.2 Recursos.................................................................................................. 30 2.4.3 Programas ............................................................................................... 30 2.4.4 Tarefas (Tasks)........................................................................................ 30 2.4.5 Blocos Funcionais................................................................................... 31 2.4.6 Funes (Functions) ............................................................................... 32 2.4.7 Variveis de Escopo Local e Global....................................................... 32 2.4.8 Variveis de representao direta ........................................................... 32 2.5 Caminhos de Acesso (Access Paths)................................................................ 33 2.6 Fluxo de Controle............................................................................................. 34 2.6.1 Partida ..................................................................................................... 34 2.6.2 Parada ..................................................................................................... 35 2.7 Unidade de Organizao de Programa (POU) ................................................. 36 2.8 Processamento Multitarefas ............................................................................. 38 2.8.1 Escalonamento no-preemptivo ............................................................. 38 2.8.2 Escalonamento preemptivo..................................................................... 40 2.8.3 Otimizao do uso da CPU do controlador; ........................................... 41 3 LINGUAGENS DE PROGRAMAO IEC61131-3 ................................ 42 3.1 Introduo......................................................................................................... 42 3.2 Texto Estruturado (ST) ..................................................................................... 43 3.2.1 Operadores.............................................................................................. 43 3.2.2 Exemplo 1............................................................................................... 44 3.2.3 Exemplo 2............................................................................................... 44 3.2.4 Comandos da Linguagem Texto Estruturado ......................................... 44 Clculos Aritmticos ............................................................................. 44 Comando condicional IF THEN ELSE ................................................. 44 Comando condicional CASE................................................................. 44 Comando de repetio FOR ... DO........................................................ 44 Comando de repetio WHILE ... DO .................................................. 44 Comando de repetio REPEAT ... UNTIL .......................................... 44 EXIT ...................................................................................................... 44 ix

RETURN ............................................................................................... 44 3.2.5 Chamada de Blocos Funcionais.............................................................. 45 3.2.6 Limites do Sistema ................................................................................. 45 3.2.6.1 Ocupao da Memria............................................................... 45 3.3 Diagrama de Blocos Funcionais (FDB) ........................................................... 46 3.3.1 Blocos Funcionais................................................................................... 46 3.3.1.1 Blocos Funcionais Padres........................................................ 46 3.3.1.2 Blocos Funcionais Complexos (criados a partir dos padres) .. 47 3.3.2 Portabilidade entre ST e FBD ................................................................. 47 3.3.3 Exemplo de traduo de uma malha de controle do FBD para o ST...... 48 3.4 Diagrama Ladder (LD)..................................................................................... 49 3.4.1 Exemplo de uma Partida Direta de um Motor com contato selo............ 49 Traduo para o ST da figura 20:..................................................................... 49 3.4.2 Portabilidade para o FBD: ...................................................................... 50 3.4.3 Aplicabilidade de Diagramas Ladder ..................................................... 51 3.5 Lista de Instrues............................................................................................ 53 3.5.1 Semntica................................................................................................ 53 3.5.2 Operadores.............................................................................................. 53 3.5.3 Portabilidade entre IL e outras linguagens IEC...................................... 54 3.5.4 Anlise de Desempenho; ........................................................................ 55 3.6 Sequenciamento Grfico de Funes ............................................................... 56 3.6.1 Estrutura da Rede (Chart) ....................................................................... 56 3.6.2 Anlise de Desempenho ......................................................................... 58 4 APLICAO DA NORMA IEC 61131-3 A UM ESTUDO DE CASO ... 59 4.1 O Ambiente Control Builder F ........................................................................ 60 4.2 Blocos Funcionais ............................................................................................ 61 4.2.1 Bloco Funcional MALHA_T_INTE ...................................................... 62 4.2.2 Bloco Funcional MALHA_T_ENTR ..................................................... 62 4.2.3 Bloco Funcional MALHA_NIVEL ........................................................ 63 4.2.4 Programa principal em Sequenciamento Grfico de Funes................ 64 x

4.3 Instanciao de Blocos Funcionais .................................................................. 71 4.4 Chamada dos Blocos Funcionais na Lista de Instrues ................................. 72 4.5 Portabilidade entre Recursos de programas; .................................................... 72 5 CONCLUSO................................................................................................ 73

APNDICE A ............................................................................................................ 74 APENDICE B ............................................................................................................ 77 REFERNCIAS BIBLIOGRFICAS.................................................................... 82

xi

RESUMO Este trabalho apresenta as vantagens prticas da adoo da Norma IEC 61131-3 que padroniza um modelo de Software para programao de Controladores Programveis utilizando cinco linguagens de programao para desenvolvimento de programas para aplicaes de controle industrial.Ser feita uma introduo com a evoluo dos Sistemas de Controle at os dias atuais bem como a motivao para sistemas abertos onde se deseja minimizar os dialetos de programao encontrados no mercado para as cinco linguagens de programao da norma e se portar aplicaes existentes de uma plataforma de hardware antiga para novos sistemas. No captulo 2, tem-se uma introduo da norma com a trajetria da norma ao longo do tempo, as oito partes da Norma IEC 61131 (sendo que a terceira a que se estuda), sua certificao de produtos (softwares) conforme critrios adotados. E a explanao sobre a Norma IEC 61131-3. Com o Modelo de Software IEC representando todos os nveis de configurao, as Unidades de Organizao de Programas (POU) que replicam os programas, blocos funcionais e funes para reutiliza-los em uma nova programao e dois mtodos de configurao do tempo de ciclo de varredura de uma tarefa que processa os programas. No captulo 3 sero abordadas as cinco linguagens de programao da norma destacando suas particularidades mais importantes respectivamente, como

portabilidades entre linguagens e otimizao do uso da CPU. Para analisar os conceitos da Norma IEC 61131-3 foram programadas, no Ambiente Control Builder F, trs malhas de controle em Diagrama de Blocos Funcionais, para depois inser-las no Sequenciamento Grfico de Funes.

xii

13

1 INTRODUO

EVOLUO DOS SISTEMAS DE CONTROLE

1.1 Sistemas de Controles Todo sistema de controle precisa de algum tipo de controlador para garantir uma operao segura e economicamente vivel. No nvel mais simples, uma planta pode consistir basicamente de um motor eltrico acionando um ventilador para controlar a temperatura de uma sala. No extremo oposto, uma planta pode ser um reator nuclear para produo de energia eltrica. Assim, todos os sistemas de controle so definidos em trs partes: os transdutores, os controladores e os atuadores.

Figura 1

Componentes de um sistema de controle industrial

O controlador monitora o estado real do processo de uma planta atravs de um nmero de transdutores, definido de acordo com a aplicao. Os transdutores convertem as grandezas fsicas em sinais normalmente eltricos, os quais so conectados com as entradas dos controladores. Transdutores digitais (discretos) medem variveis com estados distintos, tais como ligado/desligado ou alto/baixo, enquanto os transdutores analgicos medem variveis com uma faixa contnua, tais como presso, temperatura, vazo ou nvel. Com base nos estados das suas entradas (variveis de processo - PV), o controlador utiliza um algoritmo de controle embutido para calcular os estados das suas sadas (variveis manipuladas - MV). Os sinais eltricos das sadas so

14 convertidos para o processo atravs dos atuadores. Muitos atuadores geram movimentos como vlvulas, motores, bombas e outros e utilizam a energia potencial pneumtica para o acionamento. O operador interage com o controlador atravs dos parmetros de controle (ex: Set Point, Kp, Ki, Kd). Alguns controladores podem mostrar os estados do processo atravs de um display ou tela, que chamado de IHM (Interface Homem Mquina).

1.1.1 Evoluo Histrica Os primeiros sistemas de controle foram desenvolvidos durante a revoluo industrial, no final do sculo 19. As funes de controle eram implementadas atravs de engenhosos dispositivos mecnicos, os quais automatizam algumas tarefas crticas e repetitivas das linhas de montagem da poca. Estes dispositivos tinham de ser desenvolvidos de acordo com a aplicao e devido natureza mecnica tinham vida til reduzida. Nos anos 20, os dispositivos mecnicos foram substitudos pelos rels e contatores. A lgica a rels viabilizou o desenvolvimento de funes de controle digitais mais complexas e sofisticadas mostrando ser uma alternativa de custo vivel para automaes de pequenas mquinas com um nmero limitado de transdutores e atuadores. Atualmente na indstria moderna no existe o uso da lgica a rels. Mesmo porque, o tempo que se perde para entender e alterar uma lgica seqencial com interligaes eltricas torna o trabalho muito difcil e com alto custo de mo de obra. O surgimento na dcada de 70 do circuito integrado (CI), baseado na tecnologia TTL ou CMOS, proporcionou uma melhora significativa no desempenho e vida til dos sistemas de controle. Os primeiros computadores eram grandes, caros, difceis de programar e nada robustos ao ambiente agressivo das indstrias. Os primeiros CLP s (Controlador Lgico Programvel) foram desenvolvidos para atender a demanda na indstria automobilstica norte americana com um conjunto de instrues reduzido, processando somente condies lgicas, de controle digital (discreta).

15 Atualmente, os Controladores Programveis aplicam-se tanto ao controle discreto (I/O) quanto para o controle de malhas analgicas. Diferentes computadores so conectados via rede local (LAN) a um computador supervisrio central, o qual gerencia os alarmes, receitas e relatrios.

1880

1920 Mecnica

1970

1980

1990

2000

Rels CI Computadores CLP Computadores de Processo


Figura 2 Evoluo dos sistemas de controle desde o final do sculo 19

1.1.2 Controladores Programveis Na dcada de 70 surgiu o primeiro Controlador Lgico Programvel (CLP) com uma linguagem de programao simplificada e limitada para atender a demanda industrial em substituio aos sistemas de controle baseados em rels. Com o passar dos anos vrias funes foram incorporadas ao controlador, tais como tratamento de variveis analgicas e algoritmos aritmticos complexos, no se limitando somente a lgicas discretas (I/O). Assim uma definio mais atual, abrangente e j utilizada pelos fabricantes a de Controlador Programvel. Todos os CP s possuem trs partes fsicas (hardware) bsicas para o seu funcionamento: CPU (Unidade Central de Processamento), memria e a unidade de Entradas e Sadas (E/S), todas comunicando atravs de um barramento de comunicao. A CPU coordena todas as tarefas do CP e executa o programa de controle armazenado na memria. Os estados reais do processo so monitorados e amostrados pela unidade de E/S. Toda programao feita atravs de uma estao de engenharia (computador) no qual o programa compilado e carregado na CPU para ser armazenado na memria

16 utilizando-se da rede local (LAN). Os CP s permitem a monitorao das unidades de entrada e sada em tempo real utilizando-se a estao de engenharia, enquanto o programa est sendo executado.
CP Estao de Engenharia

Memria

CPU

Barramento

Unidade de E/S
Mdulos de Entrada Mdulos de Sada

Transdutores Figura 3

Atuadores Componentes de um controlador programvel

1.1.2.1 Mtodos de Programao Todo programa de computador consiste em um nmero de instrues que define para o processador qual o prximo passo a ser executado quando o programa rodado . Como os computadores somente processam informaes binrias, e so muito diferentes de nossas prprias maneiras verbais de descrever aes, na programao, existem dispositivos automticos que so usados para processar e traduzir a descrio verbal (compiladores e interpretador) requerida em uma linguagem prpria do computador. 1.1.2.2 Cdigo de Mquina e Assembler Atravs da combinao das instrues de operaes simples, coletar um dado, armazenar o dado, executar uma operao, etc..., pode-se obter funes complexas, utilizando os cdigos de mquina.

17 Como os cdigos de mquina so binrios ou hexadecimais, a tarefa de programao simplificada com o uso de instrues assembler (cdigo mnemnico, ex.: ADD). Os programas assembler so escritos atravs de um editor, e antes que sejam executados, os cdigos mnemnicos so traduzidos (assemblador) para os cdigos de mquina em hexadecimal. Alm da traduo do programa, o assemblador tambm verifica a sintaxe e calcula os saltos lgicos dentro de um programa.
Incio Escrita usando o editor Assemblagem Depurao Funcionando Corretamente? FIM Sim FIM
Figura 4 Na programao de baixo nvel, so usados os programas para edio, assemblagem e depurao no processo de gerao do cdigo de mquina.

No

LDA IN1 L1 SUB C CMP B BNE L1 ADD D STO OUT1

Assemblador

F6 0A A9 23 12 E3 F8 76 06 A3 45 D3 A2

Algumas desvantagens da programao em assembler consistem basicamente: Faz-se necessrio o conhecimento do funcionamento de computadores para facilitar a programao. O problema deve ser devidamente estruturado para facilitar a utilizao do conjunto de instrues de um determinado computador. O programa final destinado a um tipo de sistema operacional, no sendo facilmente portvel para outros.

Apesar desses entraves, a linguagem assembler permite um timo desempenho e uma melhor utilizao da memria do computador. Vantagens essas, que podem ser

18 determinantes em funo dos recursos de sistema de controle. Por exemplo, a quantidade de instrues a serem executadas num programa pode ser limitada de acordo com a configurao da memria, ou do processador, ou do barramento, ou meio fsico a ser transmitido, etc... Assim, o assembler chamado de linguagem de baixo nvel, em funo do mesmo ser prximo forma como os computadores processam os dados.

1.1.2.3 Compilao e Interpretao A programao facilitada significativamente quando feita utilizando-se de uma linguagem de alto nvel, a qual traduzida para o cdigo de mquina atravs de um programa chamado de interpretador ou compilador. O compilador primeiramente traduz todo o programa para o cdigo de mquina antes mesmo de ser executado. O interpretador traduz o programa instruo por instruo durante a execuo do programa. Isto significa que os programas compilados (C, PASCAL) tm um processamento mais rpido que os interpretados (BASIC). As instrues das linguagens de alto nvel so semelhantes s funes matemticas, sendo, portanto mais intuitivas e fceis de usar. As vantagens da utilizao so: O programador no necessita conhecer configuraes fsicas (hardware) do computador (memria, processador, etc...). O programa portvel para outro computador desde que exista o compilador adequado. As desvantagens dos programas escritos em linguagens de alto nvel so o maior consumo de memria e desempenho inferior em relao s linguagens de mquina.

19
02 0C A7 43 37 E3 F8 86 16 A2 45 A2 05 A3 12 7B

Cdigo Fonte em Pascal Profit:= Income Cost IF Profit>20 THEN PRINT Profitable ELSE PRINT Loss END

Compilador

Figura 5

Programas escritos em linguagem de alto nvel so independentes do hardware e so traduzidos para o cdigo de mquina pelo compilador.

1.1.2.4 Execuo Cclica Sistemas de controle industrial so sistemas de tempo real, o que significa que alteraes nos sinais de entrada exigem uma imediata ao no sinal de sada correspondente. Ou seja, o tempo de reao do sistema de controle deve ser condizente com as necessidades do processo controlado. Por exemplo, na Realcaf tem-se dois Torradores de Caf em que as portas de proteo das 4 correias que acionam o motor do cilindro contm uma chave ON/OFF, que na lgica de controle age como uma interrupo de segurana. Quando algum abrir as portas, o sistema ir desenergizar o motor do cilindro do Torrador. Se o controlador no processar no tempo necessrio o operador poder ficar sem os dedos ou as mos. Conseqncias inaceitveis, prejuzos imensos para a empresa. Para garantir o atendimento s exigncias de um sistema de tempo real, o programa de controle deve monitorar constantemente os sinais de entrada e responder com os sinais de sada no tempo estabelecido de acordo coma aplicao. Para possibilitar isso, o programa compilado executado ciclicamente numa freqncia especfica, ou varredura (scan). Alteraes nos sinais de entrada somente afetaro os

20 sinais de sada no fim de cada ciclo completo de programa. O tempo de ciclo necessrio para o programa determinado pelo atraso mximo permitido para o processo controlado.

L as Entradas

Executa o Programa

Tempo de Ciclo 30 500ms

Atualiza as Sadas

Figura 6

Ciclo de varredura de um Controlador Programvel

1.1.3 SoftPLC Um problema relacionado aos CP s, que os fabricantes utilizam hardware proprietrio para o controlador, com uma linguagem de programao tambm proprietria. Apesar das funes bsicas serem praticamente idnticas, as instrues possuem nomes diferentes e existem regras diferentes para sintaxe dos programas. Isto torna impossvel a comunicao e intercmbio de programas entre sistemas de fabricantes diferentes. Infelizmente, os fabricantes ainda no estabeleceram o SoftPLC como um padro industrial significando que os programas de controle desenvolvidos com um SoftPLC no podem ser transferidos de um para outro fornecedor. Mas tudo indica que caminham para uma soluo nica e otimizada, onde

21 os recursos sero aprendidos entre os fornecedores e o produto final ser um s: Sistemas de Controle Industrial em Tempo Real.

1.2 Motivao para Sistemas Abertos 1.2.1 Diferentes Dialetos de Programao O CP um dos componentes mais crticos da indstria atual. Com a utilizao dos sistemas de controle na maioria das indstrias, incluindo aplicaes que exigem segurana, muito importante que os programas possam ser facilmente entendidos por uma grande parte dos profissionais do cho de fbrica. Alm do programador, o programa de controle deve ser de fcil entendimento para todos os tcnicos, engenheiros e gerentes de processo. Por quase duas dcadas o mercado tem sido dominado por poucos fabricantes que oferecem solues muito parecidas, porm com particularidades nos dialetos de programao. Muitos usurios de CP s tm decidido eleger no mnimo trs fornecedores, com o objetivo principal de minimizar o risco. Em aplicaes reais, isto implica em um maior custo devido ao retrabalho e problemas de comunicao entre produtos de diferentes fabricantes. 1.2.2 Qualidade de Software Quanto mais tarefas da indstria de manufatura e de processos so automatizadas, maiores e mais complexos se tornam os programas, dificultando o gerenciamento dos mesmos. Em muitos casos, so necessrios mais de um programador para o desenvolvimento do programa para automao industrial. A experincia da ATAN [4] mostra que o risco devido a erros de programao cresce exponencialmente com o nmero de programadores envolvidos e com o tamanho do programa. E que as novas plantas industriais apresentam problemas por um longo perodo aps a instalao. As falhas podem parar a linha de produo ou causar danos aos equipamentos e produtos e acidentes aos operadores. Um Software de controle de boa qualidade representa um custo maior, e geralmente desenvolvido pela prpria indstria ou por empresas integradoras de

22 sistemas dedicados ao ambiente industrial. Em ambos os casos, a produo de software e seu custo, competem no mercado aberto, logo os fornecedores de software so motivados a buscar ferramentas e mtodos de desenvolvimento mais eficientes. A grande maioria dos programas de controle escrita utilizando pacotes de Software proprietrio dos fabricantes de produtos de controle, que no dispem de recursos adequados para trabalhar com mdulos para reutilizao de cdigo e para documentao. Portanto a qualidade de software dependente da capacidade intelectual do programador. Antes da norma IEC 61131-3 uma boa engenharia de Software era a meta principal das aplicaes de controle. 1.2.3 Custo de Software Na ltima dcada, a padronizao dos pacotes de Software para os computadores pessoais, tais como processadores de texto e planilhas eletrnicas, tornou-se muito popular, vendendo milhes de cpias e proporcionando aos fornecedores a reduo drstica dos preos de produtos. A distribuio pela Internet ampliou ainda estes limites e hoje so muitas as aplicaes padres disponveis como licenas freeware e shareware, quase sem custo. De forma contrria, os programas para aplicaes de controle so adaptados para caractersticas especficas de uma determinada planta industrial significando que o custo total do desenvolvimento recorre sobre um nico usurio. Muitos usurios (empresas que contratam outras especializadas para o desenvolvimento do Software de controle industrial) consideram difcil absorver o custo total do desenvolvimento do programa de controle. Um usurio sem experincia no desenvolvimento de programas consegue apresentar apenas uma pobre descrio funcional para o desenvolvedor, atendendo parcialmente aos requisitos do usurio. O crescente aumento da velocidade de desenvolvimento do hardware tem levado a uma constante queda nos preos dos computadores pessoais que tem desempenho comparvel aos antigos modelos de processamento centralizados (mainframes) nas quais as interaes interfaces homem-mquina eram acessveis apenas queles que possuam algum conhecimento especfico. Assim o custo total da

23 instalao mais determinado pelo tempo de desenvolvimento do programa de controle. O maior peso dos projetos est na padronizao e reutilizao dos programas do que na busca de uma tima configurao de um controlador.
Custo de Hardware Custo de Desenvolvimento de Software

Figura 7

Custo do Software versus Hardware

A automao de plantas e mquinas pode ser perigosa para o operador ou para os produtos se o software de controle apresentar erros crticos. Portanto, o software depende de um procedimento rigoroso para teste e validao, e bastante demorado para aplicaes reais se o trabalho tem que ser feito com o processo em funcionamento. 1.2.4 Portabilidade de Aplicaes O computador pessoal juntamente com o sistema operacional Windows um padro de fato para as aplicaes de escritrio de todo o mundo. A principal razo para esta grande difuso do uso dos PC s a compatibilidade de Software. Os programas aplicativos desenvolvidos para o Windows podem ser usados em quase todos os PC s espalhados do mundo. Os usurios dos produtos (softwares) no querem um mercado monopolista onde uma empresa fornece um produto que somente ela detm da tecnologia de informao. Mas querem, um mercado onde todos os fabricantes possam apropriar-se dos conceitos estabelecidos e padronizados e a partir da estabelecer o seu produto que poder ter recursos mais aprofundados diferenciando do seu concorrente. Resultando

24 assim, numa economia para as empresas que adquirem seus produtos e aumentando o ramo de aplicaes industriais. Mais de 25 anos aps a introduo dos controladores programveis, este mercado ainda carece de uma padronizao internacional similar ao que ocorreu com os PC s. Muitos fornecedores usam um dialeto de programao proprietrio que funciona apenas com o seu hardware proprietrio. Do lado oposto, a quase totalidade das indstrias usurias de controladores programveis tem uma alta demanda pela portabilidade do software do sistema de controle. Desde que o custo de desenvolvimento de um software bem testado muito maior que o custo do hardware, cada vez maior a necessidade de se portar as aplicaes existentes de uma plataforma de hardware antiga para novos sistemas. Muitos observadores consideram um mistrio o fato de serem necessrios mais de 25 anos para o mercado de controladores programveis promover o estabelecimento de uma padronizao de controladores proposta pela norma IEC 61131-3.

25

2 A NORMA IEC 61131


2.1 Propsito da Norma IEC 61131-3 Durante os ltimos dez a quinze anos uma escala larga de diferentes tcnicas de programao foi utilizada para escrever programas para aplicaes de controle industriais e para Controladores Lgicos Programveis (CLPs). As aplicaes de controle foram desenvolvidas em BASIC, FORTH, em C, no Ingls Estruturado, na Lista de Instrues e em outras numerosas outras linguagens proprietrias incluindo vrios dialetos da programao LADDER. Infelizmente, a nica coisa que pode ser dita de todas estas linguagens de programao que so todas diferentes. Para as pessoas envolvidas com tais sistemas desde tcnicos, o pessoal da manuteno, projetistas de sistemas aos gerentes de planta, isso resulta no uso ineficiente do tempo e do dinheiro. H claramente um desperdcio dos recursos humanos envolvidos no treinamento da equipe de funcionrios para habilitao em muitas linguagens de controle. Felizmente a comunidade industrial internacional reconheceu que um novo padro para controladores lgicos programveis foi requerido. Um grupo de trabalho do International Electrotechnical Commission (IEC Comisso Eletrotcnica

Internacional) foi organizado em 1979 para estudar e avaliar o projeto completo dos controladores lgico programveis, incluindo o projeto do hardware, a instalao, os testes, a documentao, a programao e as comunicaes. O IEC como uma Organizao

organizao irm da International Standardisation Organization (ISO

Internacional de Normatizao) fundada em Genebra na Sua, tem comits e grupos de trabalho formados a partir de representantes da maioria de pases industriais do mundo que pem a frente procedimentos de padronizao. Durante os anos 1990, O IEC publicou vrias partes do padro IEC 61131 que cobre o ciclo completo dos CLP s, que so: Parte 1 Definio da informao geral, da terminologia bsica e dos

conceitos; Publicado em 1992. Parte 2 Exigncias de equipamento e testes eletrnicos e testes

mecnicos de construo e verificao; Publicado em 1992.

26 Parte 3 Estrutura do Software do CLP, execuo do programa e

linguagens de programao; Publicado em 1993. Parte 4 Guia de orientao ao usurio na seleo, instalao e

manuteno de CLP s; Publicado em 1995. Parte 5 servios Facilidade do Software em especificao de mensagens de a comunicar-se com outros dispositivos usando as

comunicaes baseadas em MAP (Manufacturing Messaging Services); Publicado em 1998. Parte 6 Comunicao via facilidade do Software fieldbus para

comunicao de PLC s utilizando IEC fieldbus; Aguardando fechamento do padro fieldbus. Parte 7 em 1997. Parte 8 Guia para implementao das linguagens; Programao utilizando Lgica Nebulosa (Fuzzy); Publicada

Figura 8

Evoluo da norma.

2.2 Certificao de Produtos A associao independente PLCOpen [7] existe desde 1992 com o intuito destinada a promover e suportar o uso da norma IEC 61131-3. A norma IEC apresenta uma tabela de caractersticas padres e exige apenas que os fabricantes indiquem como

27 os produtos so aderentes a estas caractersticas para serem considerados como controladores IEC. As atividades desenvolvidas pela PLCOpen: Especificao de elementos mandatrios para certificao de produtos em diferentes nveis de conformidade com a norma IEC 61131-3; Desenvolvimento de um software de teste baseado nas especificaes de certificao; Realizao de testes e certificao de produtos conforme a norma IEC 61131-3; Divulgao da norma e realizao de eventos para estimular a adoo da norma. Elaborao de bibliotecas de funes e blocos funcionais padronizados para atendimento s necessidades dos usurios da norma; Atuao junto s entidades normatizadoras e usurios para definio de melhorias e sugestes para reviso da norma junto ao IEC; Complementao dos aspectos no cobertos pela norma IEC 61131-3. Os produtos testados e aprovados pela PLCOpen recebem um selo de conformidade de acordo com o nvel de certificao obtido: Nvel Bsico (Base Level): Define as caractersticas mnimas a serem obedecidas para que os produtos sejam considerados como aderentes norma IEC 61131-3 e que utilizam a sintaxe padro; Nvel de Portabiliade (Portability Level): Define os requisitos para que alguns elementos de Software (blocos) possam ser portados entre diferentes produtos compatveis com este nvel; Nvel de Conformidade (Conformity Level):

28

Define a conformidade quanto a quantidade de tipos de dados declarados baseado na IEC 61131-3; Nvel de Re-utilizao (Reusability Level):

Define o quanto o produto reutilizvel baseado na IEC 61131-3;

Nvel de Controle de Movimento (Motion Control):

Certifica Blocos Funcionais de acordo com a especificao do Controle de Movimento;

Full Compliance Level: Define os requisitos para que todos os elementos de Software, incluindo toda uma configurao, sejam conformes e compatveis entre diferentes produtos certificados neste nvel.

2.3 Introduo A norma proporciona 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. So definidas 5 linguagens de programao para o desenvolvimento de mdulos ou componentes de software. A programao orientada para o desenvolvimento de programas a partir da abordagem de cima para baixo (top-down) e de baixo para cima (botton-up), baseada em trs princpios:

29 Modularizao decomposio de qualquer sistema, complexo ou no,

em partes menores capazes de serem gerenciveis; Estruturao forma hierrquica utilizada para a programao em

nveis facilitando a modularizao e reutilizao de blocos; Reutilizao de funes, de blocos funcionais ou programas.

2.4 Modelo de Software IEC Quando um Controlador Programvel est processando o programa carregado na memria so necessrias as seguintes interfaces: Interface de Entrada/Sada: Permite o acesso aos dispositivos para leitura dos sinais do processo como presses, temperaturas, etc..., assim como fazer o comando dos dispositivos de campo, motores, atuadores e outros. Interfaces de Comunicao: Troca de informaes com outros CP s. IHM s, etc... Interfaces de Sistema: Consiste na interface entre o programa do CP e o hardware, para garantir o seu correto funcionamento. So utilizados os servios do sistema, os quais so uma combinao do hardware e firmware do CP.

Figura 9

Modelo de Software da norma IEC 61131-3

30

2.4.1 Configuraes

No nvel mais alto, o software para um sistema de controle est contido numa configurao. Estes elementos podem constituir de CP s, IHM s, dispositivos de comunicao, etc..., desde que os mesmos possuam interfaces compatveis com a norma.

2.4.2 Recursos

Dentro de cada configurao podem existir um ou mais recursos que basicamente so quaisquer elementos com capacidade de processamento, responsveis pela execuo dos programas. Um recurso pode existir fisicamente ou ser apenas uma mquina virtual. Neste ltimo caso, mais de um recurso pode compartilhar independentemente a capacidade de processamento de um computador, ou seja, podem existir uma IHM e um SoftPLC no mesmo computador.

2.4.3 Programas

Um programa IEC pode ser construdo a partir de diferentes elementos de Software, cada qual escrito em qualquer uma das diferentes linguagens da norma. Um programa consiste em um agrupamento lgico dos elementos necessrios todas as linguagens de programao, para o processamento dos sinais desejados. Um programa pode acessar as variveis de E/S e comunicar com outros programas. 2.4.4 Tarefas (Tasks) Uma tarefa pode ser configurada para controlar a execuo de programas ou blocos funcionais, de forma peridica ou engatilhada por eventos (triggers). Uma simples execuo de um programa ou de um bloco funcional implica que todos os elementos de software [1] dentro dos mesmos sero processados de uma s vez (ex: Se

31 dentro figuras de 12 e um 13), Bloco Funcional uma Derivativo programao (veja em nas Ladder.

tivermos

Tudo que est dentro das POU's (programa e bloco funcional, nesse caso), ser executado tambm). A norma IEC no define nenhum mecanismo implcito para execuo de programas. Ou seja, um programa ou bloco funcional 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. A necessidade de se executar programas em perodos diferentes tem por objetivo atender as exigncias de controle de tempo de resposta do processo e de otimizar o uso da capacidade de processamento do CP. Por exemplo, um torrador de caf faz todo ciclo de torra a cada 8 minutos. J a porta de segurana do acoplamento polia + correias do cilindro do torrador tem a lgica de controle executada a cada 200ms para no expor perigo de acidentes aos funcionrios. Assim uma interrupo programada na lgica de funcionamento, fazendo com que o motor do cilindro pare na ocorrncia citada. A cada tarefa podemos atribuir um perodo de execuo e uma prioridade (em ordem decrescente), onde 0 (zero) a maior prioridade. 2.4.5 Blocos Funcionais O conceito de bloco funcional um dos mais importantes da norma IEC 611313, para permitir o projeto de software de forma hierrquica e estruturada. Blocos funcionais podem ser utilizados para a criao de elementos de software [1] totalmente reutilizveis, at programas 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. Os dados possuem persistncia, ou seja, possuem estados internos que so mantidos entre uma execuo e outra. Blocos funcionais podem ser utilizados para a criao de outros blocos funcionais (blocos derivativos), aumentando ainda mais a capacidade de reutilizao do software.

32 2.4.6 Funes (Functions)

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, no possuem estados internos, ou seja, sempre produzem o mesmo resultado para o mesmo conjunto de entradas. No apndice B, tem-se a declarao de todas as Funes e os Blocos Funcionais classificados no Control Builder F. 2.4.7 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. As variveis podem ser de alocao dinmica e associadas a posies de memria (representao direta). O escopo das variveis local aos elementos 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 de software. Variveis globais podem ser declaradas dentro de uma configurao ou recurso. 2.4.8 Variveis de representao direta Posies de memria do CP podem ser acessadas usando variveis de representao direta. A representao direta do endereo de memria permite a leitura e escrita de dados em posies conhecidas de memria, tais como entradas, sadas e endereos internos (o CBF no possui esse endereamento). As variveis de representao direta (variveis locais) tm seu uso restrito aos programas. A notao utilizada padronizada para permitir a portabilidade. Todas comeam com o caractere % seguido de uma ou duas letras, onde a memria do CP pode ser dividida em trs regies lgicas:

33
Primeira Letra I Q M Tabela 1 Interpretao Input: Recebe os valores das variveis analgicas e discretas dos mdulos de entrada. Output: Para armazenar os valores a serem escritos nos dispositivos externos. Memria Interna: Armazena valores intermedirios. Primeira letra escrita para representar a varivel de representao direta.

Segunda Letra Interpretao X Bit B Byte (8 bits) W Word (16 bits) D Double word (32 bits) L Long word (64 bits) Tabela 2 Segunda letra escrita para representar a varivel de representao direta.

Se a segunda letra no mencionada, considerada como bit (X). Exemplos: %IX100 %IW122 %MW132 (*Memria de endereo 100 e entrada bit*) (*Memria de endereo 122 e entrada palavra de 16 bits*) (*Palavra de endereo de memria 132*)

%IW10.1.21 (*Poderia representar uma remota no campo: Rack 10, Mdulo 1, Canal 21*) %QL188 bits*) 2.5 Caminhos de Acesso (Access Paths) Os caminhos de acesso permitem a transferncia de dados entre diferentes configuraes. Cada configurao pode definir um nmero de variveis (leitura, escritas ou ambos) para acesso por configuraes remotas. A norma assume que estaro disponveis mecanismos de comunicao para a troca de informao, no abordando a forma a ser adotada. A parte 5 da norma (IEC 61131-5) define os blocos funcionais que provero os servios para leitura e escrita de variveis em configuraes remotas. (*Memria de endereo 188 e entrada palavra longa de 32

34

Configurao A Recurso 1 Programa X

Configurao B Recurso 2 Programa Y


FB
SPX

FB OUT

SP_OUT

VAR_1 RD_1

FB2 SP

VAR_ACCESS SPX:X.SP_OUT REAL READ_ONLY;

Figura 10

Comunicao externa (remota) usando caminho de acesso

2.6 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 (start-up) e parada (shut-dowmn) do sistema: 2.6.1 Partida 1. Quando uma configurao parte, todas as variveis globais so inicializadas e todos os recursos so ativados; 2. Quando um recurso parte, todas as variveis dentro do recurso so inicializadas e todas as tarefas so habilitadas; 3. Uma vez habilitadas as tarefas, todos os programas e blocos funcionais associados sero executados, quando a tarefa estiver ativa.

35 2.6.2 Parada 1. Quando uma configurao pra, todos os recursos da mesma tambm param; 2. Quando um recurso pra, todas as tarefas so desabilitadas, interrompendo a execuo dos programas e blocos funcionais.

Configurao

Recurso

Tarefas

Programas
Blocos Funcionais

Figura 11

Partida/parada do fluxo de controle de um Software IEC.

36 2.7 Unidade de Organizao de Programa (POU)

A norma IEC descreve programas, blocos funcionais e funes como Unidades de Organizao de Programas (POU Program Organization Units). A principal

caracterstica destes elementos de Software que os mesmos podem ser reutilizados no desenvolvimento de uma aplicao. A reutilizao atravs de cpias ou rplicas de programas e blocos funcionais feita criando-se instncias, as quais so declaradas pelo tipo e possuem uma rea de dados separada na memria do CP. Funes no precisam ser instanciadas, porque s existem em tempo de execuo. A norma IEC estimula a reutilizao desde o nvel mais macro, com programas, at o nvel mais micro, com blocos funcionais e funes. A recursividade no permitida dentro de um POU, para garantir a estabilidade da aplicao.

Tipo de POU Programa

Replicado como Instncia Programa de

Comentrio Permite reutilizao no nvel macro, como programas para reatores, transportadores, caldeiras, etc...

Possibilita a reutilizao desde simples, a Instncia de Bloco Bloco Funcional complexas estratgias de controle e algoritmos, Funcional como controle PID, filtros, motores, etc... Funo Funo Usada para tratamento comum de dados, como lgica E, OU, seno, coseno, soma, etc...

Tabela 3

Tipos de Unidades de Organizao de Programa.

Uma importante caracterstica da norma a nfase dada ao projeto de forma hierrquica. Isto significa que um sistema de controle pode ser dividido em nveis de complexidade de cima para baixo e estruturado de baixo para cima em funo das necessidades de controle. Isto implica na utilizao de blocos funcionais e funes padres, atravs de bibliotecas que podem ser fornecidas pelo fabricante do CP, ou pela criao de blocos especficos definidos pelo usurio para tender s necessidades do processo. O uso de bibliotecas nos blocos padres permite a portabilidade de

37 solues para diferentes sistemas de controle. Na figura 12 temos a extratificao do Bloco Funcional PID_Fuzzy.

ANLISE DE CIMA PARA BAIXO

DEFINIO DO BLOCO FUNCIONAL PID_FUZZY

INSTNCIA PID_AUTO_TUNING1 DO FB PID_AUTO_TUNING

INSTNCIA PID1 DO BLOCO FUNCIONAL PID

CRIAO DO BLOCO FUNCIONAL PID_AUTO_TUNING

BLOCO FUNCIONAL PID

PROGRAMAO DE BAIXO PARA CIMA


Figura 12 Decomposio hierrquica do Bloco Funcional PID_Fuzzy.

38
PID_Fuzzy PID_Auto_Tuning

PID

Figura 13

Representao do encapsulamento PID > PID_Auto_Tuning > PID_Fuzzy.

A despreocupao do entendimento de um algoritmo interno de um Bloco Funcional e sim o entendimento da aplicao e utilizao daquele bloco com as variveis de entrada e sada para a utilizao no programa conforme exemplificado nas figuras 13 e 14 do PID_Fuzzy, uma vantagem muito importante da norma. 2.8 Processamento Multitarefas Quando existem tarefas mltiplas so atribudos diferentes intervalos e prioridades de execuo utilizando-se os mtodos de escalonamento preemptivo e no-preemptivo. O mtodo a ser adotado e os parmetros de tempo definidos podem alterar significativamente o desempenho de processamento do CP e o comportamento do sistema. 2.8.1 Escalonamento no-preemptivo quando uma tarefa sempre executada do incio ao fim, sem interrupes. Ao trmino desta, a prxima com maior prioridade espera do processador ser escalonada. Caso haja empate na prioridade, a tarefa com maior tempo de espera escalonada. O intervalo entre a execuo de tarefas pode variar muito neste tipo de escalonamento. Uma tarefa que demore um pouco mais que o ciclo normal ir atrasar todas as demais tarefas, tornando-se impossvel prever com exatido quando uma das

39 demais tarefas ser executada e caracteriza o sistema como no-determinstico. Esse mtodo apresenta piores respostas de sistemas de controle.
Processamento 100% -TSK1 TSK1 TSK2 TSK4 45 45 35 45 TSK3 TSK1 TSK1 TSK2 TSK1 TSK2 TSK1

45

35

45

35

45

80 0 100 200
Figura 14

300

400

500

600

Tempo (ms)

Exemplo de processamento no-determinstico.

Codificao de Prioridades 0

TSK1 100ms

PGM1 PGM2

Os programas PGM1 e PGM2 so executados pela tarefa TSK1 a cada 100ms.

TSK2 200ms

PGM3 PGM4

Os programas PGM3, PGM4 e PGM5 so executados pela tarefa TSK2 a cada 200ms.

TSK3 300ms

PGM5 PGM6 PGM7

Os programas PGM5, PGM76 e PGM7 so executados pela tarefa pela tarefa TSK2 a cada 300ms. O programa PGM8 executado pela tarefa TSK4 pelo endereo de memria %IX1 na borda de subida, quando a interrupo ocorrer.

TSK4 %IX1

PGM8

Figura 15

Esquema da codificao de prioridades das tarefas e distribuio dos programas, bem como sua execuo.

40 A tarefa 3 (TSK3) atrapalha a execuo da tarefa 1 (TSK1) e conseqentemente das demais em 400ms e adianta TSK1 para o final de TSK3. 2.8.2 Escalonamento preemptivo quando o intervalo de uma tarefa de maior prioridade vence, a tarefa em execuo sofre preempo ( suspensa) e a tarefa de maior prioridade passa a ser executada instantaneamente. Quando a tarefa de maior prioridade termina, a tarefa suspensa volta sua execuo de onde parou.
Termino da execuo de TSK3

Tarefa 3 Interrompida Processamento 100% -TSK1 TSK1 TSK2 TSK4 45 45 35 45 TSK3 TSK1 TSK1

TSK1 TSK2 TSK2

TSK1

45

35

45

35

45

60 0 100 200
Figura 16

300

400

500

600

Tempo (ms)

Mesmo exemplo no mtodo determinstico.

A tarefa 3 foi interrompida em 400ms e terminada sua execuo quando atender a codificao de prioridades das demais tarefas. A parametrizao do intervalo de execuo das tarefas deve acontecer de acordo com a aplicao do programa em questo. Para o melhor desempenho do processador deve-se escolher uma tolerncia de tempo mnimo de execuo tal que no afete os resultados empricos de campo.

41 2.8.3 Otimizao do uso da CPU do controlador; Atravs da configurao ideal do tempo de ciclo de varredura de uma tarefa (limite de tempo estabelecido de acordo com a aplicao dos programas vinculados tarefa) pelo escalonamento em mtodo preemptivo (figura 22) do processamento multitarefas, consegue-se estabelecer um processamento timo e rpido da Unidade Central de Processamento.

42

3 LINGUAGENS DE PROGRAMAO IEC61131-3


3.1 Introduo A norma IEC 61131-3 define 5 linguagens de programao:
Texto Estruturado (ST) Lista de Instrues (IL) Diagrama de Blocos Funcionais (FBD) Diagrama Ladder (LD) Sequenciamento Grfico de Funes (SFC)
Tabela 4 Linguagens de Programao.

Textuais Grficas

SFC ST IL TEXTUAIS
Tabela 5

LD FBD GRFICAS

Representao hierrquica das linguagens.

As linguagens ST, IL, FBD e SFC podem ser usadas dentro de blocos de ao e em transies da programao SFC. A norma IEC 61131-3 define elementos comuns s 5 linguagens de programao com o intuito de padronizar o correto entendimento como variveis e tipos de dados para permitir a utilizao de qualquer linguagem de programao.

43 3.2 Texto Estruturado (ST) uma linguagem de alto nvel com sintaxe similar ao Pascal (ISSO 7185), desenvolvida especificamente para controle industrial usada para descrever o comportamento de: Funes; Blocos Funcionais; Programas; Passos, aes e transies da linguagem SFC. uma linguagem de fcil assimilao para os desenvolvedores de programas, pois permite uma fcil interpretao pelo uso de identificadores de fcil entendimento, associados a comentrios. muito til para o desenvolvimento de clculos aritmticos complexos, pois s digitar a frmula em questo. 3.2.1 Operadores A norma IEC define uma faixa de operadores padres para operaes aritmticas e boolenas.
Operador (...) Funo (...) ** NOT * / MOD + <,>,<=,>= = <> AND,& XOR OR Descrio Expresso com parntesis Lista de parmetros de uma funo Exponenciao Negao Complemento booleano Multiplicao Diviso Operador de mdulo Soma Subtrao Comparao Igualdade Desigualdade E booleano OU Exclusivo booleano OU booleano
Tabela 6 Operadores padres.

Precedncia Maior

: : :

Menor

44 Quando os operadores tm a mesma precedncia, eles so avaliados da esquerda para a direita. Expresses entre parntesis tm a maior precedncia, ou seja, devem ser avaliadas antes das demais, de dentro pra fora.

3.2.2 Exemplo 1 Considere os valores de velocidade e presso:


Velocidade1 Velocidade2 Pressao
Tabela 7

50.0 60.0 30.0

Velocidade 1 e 2 e presso.

Taxa:=Velocidade1/10.0 + Velocidade2/20.0 Taxa:=2.0; 3.2.3 Exemplo 2 StartUp:=A AND B AND C AND D;

SQRT(Pressao + 6.0);

Se A=FALSE, ento o valor FALSE atribudo varivel StartUp e a avaliao da expresso interrompida. 3.2.4 Comandos da Linguagem Texto Estruturado Clculos Aritmticos Comando condicional IF THEN ELSE Comando condicional CASE Comando de repetio FOR ... DO Comando de repetio WHILE ... DO Comando de repetio REPEAT ... UNTIL EXIT RETURN No Control Builder F, todos os operadores do Texto Estruturado podem ser inseridos apertando o boto direito do mouse, conforme a figura 38.

45

Figura 17

Operadores padres do ST no CBF.

3.2.5 Chamada de Blocos Funcionais Podemos chamar ou invocar um bloco funcional atravs de seu nome, tendo como parmetros, valores vlidos para variveis de entrada e sada. 3.2.6 Limites do Sistema O nmero de variveis locais limitado a 65526 para cada programa do ST no Control Builder F. 3.2.6.1 Ocupao da Memria O Texto Estruturado uma linguagem de alto nvel que quando traduzida no cdigo de mquina substancialmente mais longo do que o cdigo de fonte. Em disposies multidimensionais o nmero de elementos individuais aumenta substancialmente. A matriz [1.. 100] X [1.. 100] tipo de dado REAL contm 10.000 elementos e requer aproximadamente 39 kBytes do espao de armazenamento.

46 3.3 Diagrama de Blocos Funcionais (FDB) uma linguagem grfica baseada nos diagramas de circuitos, que representa blocos interconectados destacando o fluxo de sinais entre os elementos. coerente com a Norma IEC 617-12. usada para descrever o comportamento de: Funes; Blocos Funcionais; Programas; Passos, aes e transies da linguagem SFC. Cada funo tambm tem uma sada digital extra, denominada ENO (Enable Output) que definida verdadeira (TRUE) quando a execuo da funo completada com sucesso. Assim comum se encadear a sada ENO de uma funo com a entrada EN da outra para garantir que a cadeia s produzir um resultado correto, quando todas as etapas estiverem corretas. 3.3.1 Blocos Funcionais A norma IEC 617-12 (Graphical symbols for diagrams) define um conjunto bsico de blocos funcionais que so freqentemente usados na definio de blocos mais complexos. 3.3.1.1 Blocos Funcionais Padres
Biestveis SR e RS;

SR BOOL BOOL S1 R Q1 BOOL

S1 R Q1 AND

OR Q1

A entrada Set a dominante. Se S1 = R = 1 ento Q1= 1


Figura 18 - Biestvel SR (algoritmo interno em FBD).

47
Detectores de Bordas de Subida, Descida e Atributo sensvel borda;

R_TRIG BOOL CLK Q BOOL

CLK Q

A sada permanece em 1, durante um ciclo (scan) de execuo no pulso de subida de CLK.

FUNCTION_BLOCK R_TRIG VAR_INPUT CLK : BOOL; END_VAR VAR_OUTPUT Q : BOOL; END_VAR; VAR M: BOOL := 0; END_VAR Q:= CLK AND NOT M; M:= CLK; END_FUNCTION_BLOCK

Figura 19 - Detector de Borda de Subida (algoritmo interno em ST).

Contadores Incremental, Decremental e Incremental/Decremental; Temporizadores de Pulso com atraso na subida e atraso na descida; Relgio de Tempo Real

3.3.1.2 Blocos Funcionais Complexos (criados a partir dos padres)


Integral; Derivada; PID (Proporcional Integral e Derivativo); Rampa; Histerese; Ratio Monitor;

3.3.2 Portabilidade entre ST e FBD Funes que controlam sua execuo explicitamente com o uso de EN (Enable) e ENO (Enable Output), no podem ser traduzidas do FBD para o ST, pois no existe sintaxe no Texto Estruturado para enderear a sada ENO. J no Diagrama de Blocos Funcionais fica difcil a traduo dos operadores condicionais IF...THEN, CASE, FOR, WHILE, REPEAT e o acesso de elementos em um vetor:

48 FOR I:=1 TO 100 DO rate[I]:= 100; END_FOR; 3.3.3 Exemplo de traduo de uma malha de controle do FBD para o ST. O FBD difere na melhor representao e conseqente entendimento mais rpido do sistema por se tratar numa linguagem grfica. Em FBD:
Malha1 Controlador PV Sada 200.0 SP Modelo Carga1 Simulador Vazo Nvel

SEG_ORDEM >= 0.15 ERRO_ALTO

Figura 20

Malha de Simulao de Controle de Nvel de um Tanque.

Em ST: VAR Malha1: Controlador; Carga1: Simulador; END_VAR (*Chamada dos blocos funcionais com conexo entre parmetros*) Malha1(PV:= Carga1.Nvel, SP:=200.0); Carga1(Vazo:= Malha1.Sada, Modelo:= SEG_ORDEM); ERRO_ALTO:= Malha1.Erro>=0.15; Para o projeto de blocos funcionais, em determinados casos pode ser necessrio o desenvolvimento em linguagens no definidas pela norma, tais como o C e Pascal, quando se faz necessrio o acesso a recursos internos do sistema operacional do CP.

49 3.4 Diagrama Ladder (LD) uma linguagem grfica baseada nos diagramas eltricos, que representa contatos e bobinas interconectados destacando a energizao entre os elementos. usada para descrever o comportamento de: Funes Blocos Funcionais Programas Passos, aes e transies em SFC. Uma linha vertical esquerda representa um barramento energizado e direita uma barra de terra, com o fluxo de potncia sempre da esquerda para a direita. A funo de controle definida pela forma como os contatos (abertos ou fechados) so associados para comandar a bobina do rel (serial ou paralelo). 3.4.1 Exemplo de uma Partida Direta de um Motor com contato selo

Figura 21

Esquema de uma partida direta de motor no Ladder.

Cada contato est associado ao estado de uma varivel lgica (booleana). Traduo para o ST da figura 20: Contato_Selo:= (Liga OR Contato_Selo) AND Desliga; Atualmente os Diagramas Ladderexistentes nos mais diferentes fornecedores possuem Funes e Blocos Funcionais alm dos padres definidos pela norma para

50 aumentarem o ramo de aplicaes da linguagem e diferenciarem seus produtos dos demais. Por exemplo, o Diagrama Ladder da RSLogix 500 da Rockwell possui uma adaptao para a utilizao da Funo MOV no Ladder (Apndice A). Ser exemplificado mais adiante uma aplicao real de processo para controle de temperatura e nvel utilizando o RSLogix 500 da Automation Rockwell. 3.4.2 Portabilidade para o FBD: Em LD, temos:

Figura 25

Lgica booleana simples em LD.

51 Em FBD, temos:

Figura 26

Lgica booleana simples em FBD.

Tambm fica difcil a traduo para o FBD, dos operadores condicionais IF...THEN, CASE, FOR, WHILE, REPEAT e o acesso de elementos internos em um vetor conforme declarados na linguagem ST.

3.4.3 Aplicabilidade de Diagramas Ladder O diagrama ladder muito bom para representao de lgica booleana combinacional simples, pela sua facilidade de programao e entendimento. Entretanto, o uso de ladder se torna complicado devido ao tamanho e a complexidade do programa, quando consideramos clculos, controle em malha fechada e sequenciamento de operaes. O diagrama ladder deve ser evitado quando o programa torna-se extenso e complexo, pois isto vai contra a estruturao de software proposto pela norma IEC 61131-3. Quando se tem um programa em Diagrama Ladder

muito extenso, mais de 30 linhas de cdigo, por exemplo, um programador para alterar uma linha da lgica, deve percorrer todas as linhas do incio ao fim para

52 entender qual a linha/lugar que deve ser alterada. J nas linguagens grficas o mesmo no acontece, pois possuem melhor representao em blocos representativos (SFC, FBD e LD).

53 3.5 Lista de Instrues A Lista de Instrues (IL) uma linguagem textual, de baixo nvel, com estrutura semelhante ao assembler, usada para descrever o comportamento de:
Funes Blocos Funcionais Programas Passos, aes e transies em SFC.

A linguagem ideal para resolver problemas simples e pequenos, onde existem poucas quebras no fluxo de execuo do programa. Pela norma, IL uma linguagem adicional, menos amigvel e flexvel e que pode ser usada para produzir cdigo otimizado para trechos de desempenho crtico em um programa. 3.5.1 Semntica Cada instruo ocupa uma linha formada por: Instruo = Operador + Operandos

3.5.2 Operadores
Operadores principais, de comparao e controle de fluxo:
Operador LD ST ST R AND & OR XOR ADD SUB MUL DIV Modificador N N Operando Qualquer Qualquer BOOL BOOL BOOL BOOL BOOL BOOL Qualquer Qualquer Qualquer Qualquer Comentrios Carrega operando no acumulador Armazena acumulador no operando Reset operando para TRUE Reset operando para FALSE E booleno equivalente a E OU booleano OU exclusivo Adio Subtrao Multiplicao Diviso

N,( N,( N,( N,( ( ( ( (

Tabela 8

Operadores Principais

54
Operador GT GE EQ NE LE LT JMP CAL RET ) Modificador ( ( ( ( ( ( C,N C,N C,N Operando Qualquer Qualquer Qualquer Qualquer Qualquer Qualquer Label Nome Comentrios Compara maior que Compara maior ou igual Comparao igual Comparao diferente Comparao menor ou igual Compoarao menor Salta para label Chamada de bloco funcional Retorno de funo ou bloco funcional Executa o ltimo operador adiado

Tabela 9

Operadores IL de comparao e controle de fluxo

3.5.3 Portabilidade entre IL e outras linguagens IEC A traduo de outras linguagens para IL mais fcil que de IL para outras linguagens. Programa em FBD:

SW1 %IX3

AND SR

Test1 Test2

OR

S1

Q1

Start

R Reset
Figura 22 Exemplo de programa em FBD.

Traduo do programa em IL:


Operador LD OR AND AND ST LD ST CAL LD ST Operando Comentrios Test1 (*Acumulador = Test1 *) Test2 (*Acc. = Test1 OR Test2 *) SW1 (*AND SW1 *) %IX3 (* AND entrada 3 *) StartSR.S1 (* Seta entrada de StartSR *) Reset (* Carrega valor de Reset *) StartSR.R (* Armazena na entrada Reset *) StartSR (* Chama bloco funcional StartSR *) StartSR.Q1 (* Carrega sada Q1 *) Start (* e armazena em Start *) Tabela 10 Pilha de operao

55 3.5.4 Anlise de Desempenho; Quando for de conhecimento intelectual e capacidade do programador vantajosa a traduo do cdigo de alto nvel, se possvel, para o de baixo nvel ou a programao direta na Lista de Instrues, pois em partes de programa onde se necessita de melhor desempenho de processamento e alocao de dados na memria, limitados por equipamentos de hardware ou no, a linguagem de baixo nvel a indicada. Toda vez que o programa de baixo nvel for executado a etapa de compilao ser economizada aumentado a performance da CPU.

56 3.6 Sequenciamento Grfico de Funes A linguagem Sequenciamento Grfico de Funes (SFC) baseada nas tcnicas correntes para descrever o comportamento seqencial, sendo usada para: Descrever o comportamento seqencial de um sistema; Como linguagem de estruturao de aes de um programa segundo um modelo top-down. Para descrever o comportamento de baixo nvel de um processo seqencial (ex.: Partida, Bombeando, Esvaziando, etc...) Para representar as fases de um processo por batelada. Universidades francesas desenvolveram uma linguagem de representao de processos seqenciais baseada nas Redes de Petri, o Grafcet (Graphe Fonctionnel de Command Etape-Transition). Grafcet se tornou um padro europeu com a introduo do padro IEC 848: Preparation of function charts for control system. Muitos fabricantes europeus de CP s oferecem Grafcet como uma linguagem grfica. A norma IEC 61131-3 introduziu algumas modificaes no padro IEC 848 visando integrar esta quinta linguagem s demais linguagens da norma. O SFC adotado pela ISA SP 88 para programao de sistemas para controle de bateladas (batch). So mostrados todos os estados de um sistema, todas as possveis mudanas de estado e as respectivas causas. Particionando um problema de controle de forma que todos os aspectos relevantes sejam considerados e executados. Como exemplo, na Realcaf a linguagem SFC usada para descrever toda a linha de produo desde o armazenamento/beneficiamento do caf verde at a embalagem e expedio do caf solvel. Cada passo programado em FBD e as transies em Texto Estruturado. Logo, o Delta V no possui o Diagrama Ladder e a Lista de Instrues, mas no supervisrio trabalha-se com o BASIC. 3.6.1 Estrutura da Rede (Chart) Uma seqncia em SFC composta por uma srie de passos (Steps) mostrados como retngulos conectados por linhas verticais, onde cada passo representa um estado

57 particular programado em qualquer uma das demais quatro linguagens IEC (ST, FBD, LD e IL) e at em SFC. Cada linha de conexo possui uma barra horizontal representando uma transio, a qual associada a uma condio que, quando verdadeira (TRUE), causa a desativao do passo anterior e a ativao do passo seguinte. Uma transio recebe um nome (T1, T2, T3, etc...) e est programada nas linguagens ST, FBD, LD, IL no CBF. Cada passo pode ter uma ou mais aes associadas que representada por um ou mais programas e podem ser descritos utilizando-se uma das quatro linguagens IEC: ST, FBD, LD ou IL. O fluxo de cima para baixo (top-down), mas ramos podem ser usados para retornar para passos anteriores.

Partida Transio ChaveLiga = 1 Enche Condio de Transio

TanqueCheio = 1 Agite Passo

Timer1.ET = T#1h Drena

Varivel de sada de um temporizador externo. ChaveLiga = 0

Para

58
Figura 23 Principais elementos SFC

3.6.2 Anlise de Desempenho Com o particionamento dos problemas, a linguagem SFC traz ganhos de desempenho porque apenas o cdigo relativo aos passos ativos executado.

59

4 APLICAO DA NORMA IEC 61131-3 A UM ESTUDO DE CASO


Em [3] foi construdo um sistema de controle de nvel do reservatrio, controle de temperatura do fludo de entrada e controle de temperatura interna do reservatrio todos programados na linguagem Diagrama Ladder, mostrado no Apndice A e de acordo com [7], com o programa RSLogix 500 da Rockwell.

Figura 24

Sistema construdo

Foi utilizada uma malha de controle (figura 25) para manter o nvel do reservatrio de acordo com um valor pr-determinado:

Figura 25

Malha de controle de nvel implementada.

Uma malha para controlar a temperatura do fludo que entra no reservatrio (figura 26) foi desenvolvida com a utilizao de um sinal Feedforward para supresso, antes mesmo que ocorram, das perturbaes na temperatura do fluido em

60 questo ocasionadas pela constante variao da vazo de entrada em resposta aos diversos pedidos de vazo solicitados pelo processo .

Figura 26

Malha de controle da temperatura do fluido que entra no reservatrio principal.

Por fim, uma malha de controle para manter a temperatura do fludo no reservatrio (figura 27) foi implementada com um aquecedor interno.

Figura 27

Malha de controle da temperatura do fluido no reservatrio principal.

4.1 O Ambiente Control Builder F O ambiente de programao (configurao) do CBF foi projetado de forma que se tenha uma representao hierrquica dos elementos de software e reas para programao de blocos funcionais. Na figura 28 a Configurao foi representada no nvel mais alto (CONF) de acordo com a norma. Logo abaixo se tem uma rea para programao de Blocos Funcionais na linguagem preferida. No mesmo nvel, o Recurso, a Estao de Processo (D-PS) tem todas as tarefas (Tarefa1 e Tarefa2) para a execuo dos programas criados a partir do programador e as tarefas intrnsecas a um sistema de controle que o CBF exige (TASKLIST). Dentro de cada tarefa programada podemos ter ou uma programao em uma das quatro linguagens IEC, LD, FBD, IL e ST ou ento em SFC.

61 Um rascunho (POOL) disponibilizado para a insero das transies e passos no SFC, ou qualquer programao que ache necessrio, pois s arrastar e soltar a programao onde desejar, e for conveniente, na representao hierrquica.

Figura 28

Ambiente Control Builder F com representao hierrquica dos elementos de software IEC.

4.2 Blocos Funcionais Foram utilizadas as trs malhas de controle nas cinco linguagens de programao no CBF. No ambiente CBF a reutilizao de linhas de cdigo foi comprovada quando programadas as malhas de controle na rea de Programao dos Blocos Funcionais (figura 25, 26 e 27). Assim, foi possvel reutilizar os Blocos Funcionais (FB-CLASS) programados pelo usurio na Lista de Programas (PL), ou no Rascunho (POOL), economizando tempo de re-programao minimizando ou eliminando erros, reduzindo o custo do programa final.

62 Os Blocos Funcionais, MALHA_T_INTE, MALHA_T_ENTR e

MALHA_NIVEL (figura 34), foram programados na linguagem Diagrama de Blocos Funcionais, a qual indicada para representar malhas de controle, pela melhor representatividade e interpretao da programao. O detalhamento com comentrios (*comentrios entre asterisco e parntesis*) em linhas de cdigo, faz com que o novo programador ou o mantenedor no perca a linha de pensamento, no precisando sempre retornar ao incio do programa para o entendimento das linhas de cdigo, o que acontece com o diagrama Ladder em propores muito grandes, no qual foi requerido quando se fez necessrio a portabilidade do RSLogix 500 para o CBF.

4.2.1 Bloco Funcional MALHA_T_INTE A lgica de controle de temperatura interna do reservatrio foi programada de acordo com as linhas 2, 11, 12, 13, 14 e 16 do Apndice A.

Figura 29

Bloco Funcional de Controle da Temperatura Interna do Reservatrio.

4.2.2 Bloco Funcional MALHA_T_ENTR A lgica de controle de temperatura do fludo de entrada do reservatrio foi programada de acordo com as linhas 1, 5, 6, 7, 8, 9 e 10 do Apndice A.

63

Figura 30

Bloco Funcional de Controle da Temperatura do Fludo de Entrada do Reservatrio.

4.2.3 Bloco Funcional MALHA_NIVEL A lgica de controle de nvel do reservatrio foi programada de acordo com as linhas 0, 3, 4 e 15 do Apndice A.

64

Figura 31

Bloco Funcional de Controle do Nvel do Fludo do Reservatrio.

4.2.4 Programa principal em Sequenciamento Grfico de Funes Para efeito demonstrativo, utilizei a linguagem seqencial representando as trs malhas de controle sero executadas em paralelo, ou seja, ao mesmo tempo em trs passos diferentes conforme a figura 32.

65

Figura 32

Programa da Lgica de Controle em SFC.

Para se inserir uma POU no SFC, deve-se cri-la primeiramente no Rascunho (POOL), compil-la (Check), para depois inseri-la no programa principal. Uma vez o programa em S0, cada transio criada (T0, T1 e T2) s ir estar satisfeita se: em T0 a Temperatura do Fludo de entrada estiver abaixo de 5374.0 (set point - temp_entrada), em T1 se o Nvel estiver acima de 11122.0 (set point nivel), e em T2 se a Temperatura Interna do Fludo estiver acima de 16383.0 (set point temp_interna), para obedecer a condio de transio entre S0 e os demais passos, conforme as figuras 33, 34 e 35, representando a transio T0.

66

Figura 33

Editando o programa da transio T1.

Figura 34 e 35

Editando a transio em Texto Estruturado

Aps obedecidas as transies (T0, T1 e T2), todos os trs passos respectivos (MALHA_T_ENTR, MALHA_NIVEL e MALHA_INTE) sero iniciados desde cada condio respectiva seja ativada. Cada passo foi implementado a partir de um programa criado no Rascunho (POOL) para que seja inserido no mesmo, conforme as figuras 36, 37, 38 e 39.

67

Figura 36

Parmetros do passo Tmp_Inte.

Figura 37

Criao do programa em FBD para implementao da malha de controle de temperatura do reservatrio.

68

Figura 38 e 39

Atribuio do Nome do Programa (Tmp_Inte) e edio do programa.

Para a edio do programa em FBD, foi inserido o Bloco Funcional MALHA_T_INTE.

Figura 40

Inserindo um Bloco Funcional.

69

Figura 41

Escolha do BF.

Figura 42

Bloco Funcional de Controle da Temperatura Interna do Reservatrio.

Se adentrarmos ao BF MALHA_T_INTE (figura 48), veremos toda a malha implementada em FBD, conforme a figura 35.

70

Figura 43

Adentrando lgica do BF.

Foram implementadas condies de transio em T3, T4 e T5, onde os passos somente sero interrompidos se o sensor de temperatura do fludo de entrada for maior que 5734,0 (temp_entrada), o sensor de nvel for maior que 11122.0 (nvel) e o sensor de temperatura interna (temp_interna) for maior 16383.0. Assim, o SFC ir terminar a execuo somente se as trs condies forme satisfeitas e retornar para S0, iniciando um novo ciclo.

71

Figura 44

Editando o programa em Texto Estruturado da condio de transio em T1.

Figura 45

Programa em ST da condio de transio T4.

4.3 Instanciao de Blocos Funcionais Quando se cria um Bloco Funcional, pode-se inserir uma cpia do mesmo em outro Bloco Funcional ou Programa criando-se um elemento de software com a mesma funo do original (que est na biblioteca do CBF). Assim uma nova varivel ser declarada do tipo do Bloco Funcional em questo.

72 4.4 Chamada dos Blocos Funcionais na Lista de Instrues Cada passo do SFC pode ser escrito tambm na Lista de Instrues. Clicando em Blocks > User function blocks insero no programa. Assim criada uma instncia de cada BF, para

Figura 46

Chamada de Blocos Funcionais na Lista de Instrues.

4.5 Portabilidade entre Recursos de programas; O programa CBF possui a opo de exportar e importar lgicas implementadas e Blocos Funcionais. O programa Freelance 2000 Digitool uma verso mais antiga do CBF e no contm a linguagem ST para programao. Um programa desenvolvido com extenso *.PRO no Freelance 2000 Digitool, no portvel para o CBF com a mesma extenso, mas exportvel / importvel de um programa para o outro.

73

5 CONCLUSO
A norma foi de grande importncia para a padronizao das linguagens de programao que existiam no mercado e portabilidade entre elas, da modularizao ou encapsulamento do elemento de software que se quer reutilizar e pela estruturao do modo como o Modelo de Software IEC organiza seus elementos. Ideal seria se todos os fornecedores industriais padronizassem seus programas para uma soluo de hardware nica, pois quando se quisesse migrar de uma plataforma para outra, se poderia portar a aplicao. J que a necessidade de se portar aplicaes de plataformas antigas para sistemas atuais eminente. Um produto diferenciado do seu concorrente, de acordo com o grau de adequao norma, de acordo com o item 2.2, e a quantidade de recursos a mais que disponibilizado. Assim o mercado absorver o produto com melhor valor agregado. O programa Control Builder F da ABB o produto que mais se aproxima dos conceitos da norma IEC 61131-3, de acordo com [4] e representa hierarquicamente o Modelo de Software IEC (figura 9) representado na figura 28.

74 APNDICE A

75

76

Figura 34

Diagrama Ladder implementado em [4] no RSLogix 500 Industrial Programamming Software for Allen-Bradley SLC 500 Family of Small Programmable Controllers.

77 APENDICE B Funes e Blocos Funcionais As designaes dos blocos so idnticas no Diagrama de Blocos Funcionais, Diagrama Ladder e na Lista de Instrues. Temos abaixo a relao e designao das Funes e Blocos Funcionais descritos no Control Builder F.

Bloco

Funo/Bloco Funcional Counter with analog input Linearization Set point controller Analog input transformation Analog input transformation transient Analog output transformation Scale change Delay function Lead/lag Dead time function Average value in time Maximum value in time Minimum value in time Analog filter in time Time scheduler Binary output Monoflop Timer, switch-on/switch-off delay Timer, switch-on delay Timer, switch-off delay Timer with extern time Time counter Pulse counter Up/down counter Operating time counter Frequency/analog converter Touch button Continuous controller, standard Continuous controller, universal Continuous controller, ratio Step controller, standard Step controller, universal

Designao CT_ANA LIN C_ANA AI_TR AI_TRT AO_TR SCAL DELAY LD_LG TDEAD TAVER TMAX TMIN TFLILT TS M_BOUT MONO_F TONOF TON TOF TIMER CTT CT_P CTUD CT_LT FAC_D TOUCH C_CS C_CU C_CR C_SS C_SU

Tipo* BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF

Analgica

Binria

Controlador

78
Step controller, ratio Two-position controller, standard Two-position controller, universal Three-position controller, standard Three-position controller, universal Controller self-tuning Aquisio Disturbance course log acquisition Trend acquisition Analog monitoring Binary monitoring Binary monitoring of antivalence General monitoring Connection monitoring Event message Horn IDF for unidirectional units IDF for bi-directional units IDF for actuators Dosing circuit Dosing circuit with analog input Extended dosing circuit And Or Xor Not Shift left Shift right Rotate left Rotate right Minimum Maximum Average Equal Greater equal Greater than Less than Less than equal Not equal C_SR C_OS C_OU C_PS C_PU TUNE DISLOG TREND M_ANA M_BIN M_BAV M_GEN M_CONN EVENT HORN IDF_1 IDF_2 IDF_A DOS DOS_A DOS_E AND OR EXOR NOT SHL SHR ROL ROR MIN MAX AVER EQ GE GT LT LE NE BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF F F F F F F F F F F F F F F F F F

Monitorando

Controle em Malha Aberta

Padro/Lgico

Padro/ Operao Bit shift

Padro/ Estatistico

Padro/ Comparador

79
Binary Multiplexer Flip-flop Trigger Rising Falling Integrator Differentiation Dead band Split-range Hysteresis Sample & Hold Selection of three String length Left string part Right string part Mid string part Concate string Insert string Delete string part Replace string part Find string Addition Multiplication Subtraction Division Modulo Power Absolute value Square root N-th root Sign Natural logarithm Common logarithm Exponent Sine Cosine Tangent Arc sine Arc cosine Arc tangent Analog limiter Time limiter SEL MUX FF TR R_TRIG F_TRIG INTEG DIFF DEADB SPLIT HYST S_H OF3 S_LEN S_LEFT S_RIGHT S_MID S_CONCAT S_INS S_DEL S_REPL S_FIND ADD MUL SUB DIV MOD EXPT (XY) ABS SQRT NRT SGN LN LOG EXP(eX) SIN COS TAN ASIN ACOS ATAN LIMIT TLIMIT F F BF BF BF BF BF BF BF BF BF BF BF F F F F F F F F F F F F F F F F F F F F F F F F F F F F BF BF

Padro/ Inverso Padro/ Deteco de Borda

Padro/ Funes Bsicas

Padro / Funes Texto

Aritmtica/ Aritmtica Bsica

Aritmtica / Numerica

Aritmtica / Logartimo

Aritmtica / Trigonometria

Aritmtica / Limitador

80
Rate of change limiter Data type to BOOL Data type to BYTE Data type to INT Data type to UINT Data type to DINT Data type to UDINT Data type to WORD Data type to DWORD Data type to REAL Data type to TIME Data type to DT Data type to STRING8 Data type to STRING16 Data type to STRING32 Data type to STRING64 Data type to STRING128 Data type to STRING256 Real to integer Int to code* Code* to Int * BCD, GRAY, Aiken Pack BOOL to BYTE Pack BOOL to WORD Pack BOOL to DWORD Pack BYTE to WORD Pack BYTE to DWORD Pack WORD to DWORD Extract type to type Unpack BYTE to BOOL Unpack WORD to BOOL Unpack WORD to BYTE Unpack DWORD to BYTE Unpack DWORD to WORD Pack to DT Unpack DT Local time to summer time Summer time to local time BOOL constant BYTE constant RLIMIT TO_BO TO_BY TO_IN TO_UI TO_DI TO_UD TO_WO TO_DW TO_RE TO_TI TO_DT TO_STR8 TO_STR16 TO_STR32 TO_STR64 TO_STR128 TO_STR256 TRUNC INT TO CO CO TO INT BF F F F F F F F F F F F F F F F F F F BF BF

Conversor / Conversor de Tipos de Dados

Conversor / Converso Binria

PBOBY PBOWO PBODW PBYWO PBYDW PWODW EXTCT UPBYBO UPWOBO UPWOBY UPDWBY UPDWWO P_DT UP_DT

F F F F F F F BF BF BF BF BF BF BF

Conversor Converso DT

LT_TO_DST BF DST_TO_LT BF CSTBO CSTBY BF BF

Constantes

81
DINT constant DT constant DWORD constant INT constant REAL constant TIME constant UDINT constant UINT constant WORD constant STRING8 constant STRING16 constant STRING32 constant STRING64 constant STRING128 constant STRING256 constant Funes de Sistema *Tipo do Bloco: BF Force cold start Force redundancy toggle Bloco Funcional; F - Funo CSTDI CSTDT CSTDW CSTIN CSTRE CSTTI CSTUD CSTUI CSTWO CS8 CS16 CS32 CS64 CS128 CS256 FCS PRIM_SEC BF BF BF BF BF BF BF BF BF BF BF BF BF BF BF F F

ABB Automation Products GmbH

82 REFERNCIAS BIBLIOGRFICAS [1] Lewis, R. W. IEC 61131-3 Programming Standard. Disponvel no site http://www.searcheng.co.uk/selection/control/Articles/IEC61131/main.htm e acessado em 6 de Agosto de 2005. [2] Help (Ajuda) do Control Builder F. [3] Paulo Roberto Paixo Aguiar, Projeto de Graduao Perodo 2004/02. [4] Marcos de Oliveira Fonseca, M. Sc. / ATAN Curso Norma IEC 61131-3 para Programao de Controladores / ISA, 10 e 11 de Maio de 2005. [5] ABB, Control IT IEC 61131 Control Languages Introduction. Development Version. [6] Hugh Jack Automating Manufacturing Systems with PLCs, Version 4.7, April 14, 2005. Disponvel no site http://claymore.engineer.gvsu.edu/~jackh/books/plcs/pdf/plcbook4_7.pdf e acessado em 06 de Agosto de 2005. [7] PLCopen - www.plcopen.org/

This document was created with Win2PDF available at http://www.daneprairie.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only.

Вам также может понравиться