Apostilha LOGO Ex Irrigação Avançado

86
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA ”LOGO2VHDL: MODELOS DESCRITOS EM VHDL A PARTIR DA LINGUAGEM DO LOGO!SOFT COMFORT DA SIEMENS” RENATO CARDOSO DOS SANTOS Orientador: Prof. Dr. Alexandre César Rodrigues da Silva Co-orientador: Prof. Dr. Carlos Antonio Alves Dissertação apresentada à Faculdade de Engenharia - UNESP – Campus de Ilha Solteira, para obtenção do título de Mestre em Engenharia Elétrica. Área de Conhecimento: Automação. Ilha Solteira – SP setembro/2007 Campus de Ilha Solteira

description

Programação LOGO

Transcript of Apostilha LOGO Ex Irrigação Avançado

  • PROGRAMA DE PS-GRADUAO EM ENGENHARIA ELTRICA

    LOGO2VHDL: MODELOS DESCRITOS EM VHDL

    A PARTIR DA LINGUAGEM DO LOGO!SOFT

    COMFORT DA SIEMENS

    RENATO CARDOSO DOS SANTOS

    Orientador: Prof. Dr. Alexandre Csar Rodrigues da Silva

    Co-orientador: Prof. Dr. Carlos Antonio Alves

    Dissertao apresentada Faculdade de

    Engenharia - UNESP Campus de Ilha

    Solteira, para obteno do ttulo de

    Mestre em Engenharia Eltrica.

    rea de Conhecimento: Automao.

    Ilha Solteira SP setembro/2007

    Campus de Ilha Solteira

  • Dedico esse trabalho aos meus avs maternos Jos dos

    Santos e Gasparina Vieira, que sempre foram exemplos

    de amor, carinho, determinao e perseverana.

  • Agradecimentos

    Este trabalho se deve em muito a algumas pessoas, por diversas razes, e eu gostaria

    de agradecer especialmente:

    Aos meus tios, Washington Luiz Brz e Maria de Ftima Braz, pelo grande incentivo e

    motivao, que me proporcionou a continuidade nos estudos, at a chegada a este

    Mestrado.

    Ao meu orientador, professor Alexandre Csar Rodrigues da Silva, sempre disposto a

    oferecer estmulos e indicando a direo a ser tomada, nos momentos de maior

    dificuldade. Agradeo, principalmente, pela confiana, depositada no trabalho de

    dissertao realizado.

    Ao companheiro Marco Antonini, que participou comigo em vrios momentos

    importantes e que sempre me inspirou confiana nos momentos mais difceis.

    A todos os docentes, funcionrios e estagirios do Departamento de Engenharia

    Eltrica da Unesp.

    Aos meus colegas Rodrigo Sato, Rodrigo Serra Daltin e Carolina Tucunduva, pessoas

    com quem interagi tantos anos e que, sempre, se demonstraram dispostos e solidrios

    no convvio em Ilha Solteira.

    Ao querido amigo Flvio Meno, pela sua amizade, companheirismo e uma irmandade

    toda especial, que sempre partilhamos.

    A todos agradeo profundamente e dedico o resultado deste trabalho.

  • Resumo Neste trabalho apresentada uma ferramenta de traduo, que converte sistemas de controle descritos na linguagem de automao LOGO!Soft, para um modelo VHDL correspondente. O software desenvolvido, denominado LOGO2VHDL, contm funes bsicas e especiais disponveis no LOGO!Soft. Nesta ferramenta, o usurio acostumado em programar o CLP LOGO!Soft pode facilmente obter uma descrio VHDL cujo modelo funcional, pode ser sintetizado, no ambiente QUARTUS II da Altera. Este trabalho teve como objetivo principal estudar uma nova metodologia, que visa o emprego de dispositivos lgicos programveis (PLDs) como uma forma alternativa ao emprego dos controladores lgicos programveis (CLPs) no controle automatizado de processos. A ferramenta foi avaliada atravs de estudos de casos descrevendo sistemas de controle simples e complexos. Em todos os casos, os resultados das simulaes mostram a viabilidade desta nova abordagem em automatizar sistemas de controle. Palavras Chave: VHDL, LOGO!Soft, Automao, CLP, Delphi.

  • Abstract In this work it is presented a translation tool that converts control systems described in the automation language LOGO!Sof, for a model corresponding VHDL. The developed software, denominated LOGO2VHDL, contains basic and special functions available in LOGO!Soft. In this tool, the accustomed user in programming the CLP LOGO!Soft can easily obtain a description VHDL whose functional model can be synthecized in the environment QUARTUS II of the Altera. This work had as main objective to study a new methodology that seeks the employment of programmable logical devices (PLDs) as an alternative form to the programmable logical controllers employment (CLPs) in the automated control of processes. The tool was evaluated through studies of cases describing simple and complex control systems. In all the cases, the results of the simulations show the viability of that new approach in automating control systems.

    Key words: VHDL, LOGO!Soft, Automation, CLP, Delphi

  • Lista de Ilustraes FIGURA 2.1 - TABELA VERDADE E REPRESENTAO DA FUNO AND NO LOGO!SOFT..................... 20

    FIGURA 2.2 SIMULAO DO CDIGO VHDL REFERENTE FUNO AND ........................................ 20

    FIGURA 2.3 - TABELA VERDADE E REPRESENTAO DA FUNO NOT NO LOGO!SOFT ..................... 21

    FIGURA 2.4 SIMULAO DO CDIGO VHDL REFERENTE FUNO NOT......................................... 21

    FIGURA 2.5 - TABELA VERDADE E REPRESENTAO DA FUNO NAND NO LOGO!SOFT.................. 22

    FIGURA 2.6 SIMULAO DO CDIGO VHDL REFERENTE FUNO NAND ..................................... 22

    FIGURA 2.7 - TABELA VERDADE E REPRESENTAO DA FUNO OR NO LOGO!SOFT........................ 23

    FIGURA 2.8 SIMULAO DO CDIGO VHDL REFERENTE FUNO OR ........................................... 23

    FIGURA 2.9 - TABELA VERDADE E REPRESENTAO DA FUNO NOR NO LOGO!SOFT..................... 24

    FIGURA 2.10 SIMULAO DO CDIGO VHDL REFERENTE FUNO NOR ...................................... 24

    FIGURA 2.11 - TABELA VERDADE E REPRESENTAO DA FUNO XOR NO LOGO!SOFT ................... 25

    FIGURA 2.12 SIMULAO DO CDIGO VHDL REFERENTE FUNO XOR ...................................... 25

    FIGURA 2.13 - REPRESENTAO DA FUNO RETARDAMENTO DE LIGAO NO LOGO!SOFT ............ 27

    FIGURA 2.14 SIMULAO DO CDIGO VHDL REFERENTE FUNO RETARDAMENTO DE LIGAO28

    FIGURA 2.15 - REPRESENTAO DA FUNO RETARDAMENTO DO DESLIGAMENTO NO LOGO!SOFT . 29

    FIGURA 2.16 SIMULAO DO CDIGO VHDL REFERENTE FUNO RETARDAMENTO DO

    DESLIGAMENTO............................................................................................................................. 30

    FIGURA 2.17 - REPRESENTAO DA FUNO RETARDAMENTO DE LIG. / DESLIG. NO LOGO!SOFT ..... 30

    FIGURA 2.18 SIMULAO DO CDIGO VHDL REFERENTE FUNO RETARDAMENTO DE LIG. /

    DESLIG........................................................................................................................................... 31

    FIGURA 2.19 - REPRESENTAO DA FUNO RETARDAMENTO DE LIGAO A SER MEMORIZADO NO

    LOGO!SOFT.................................................................................................................................. 32

    FIGURA 2.20 SIMULAO DO CDIGO VHDL REFERENTE FUNO RETARDAMENTO DE LIGAO A

    SER MEMORIZADO ......................................................................................................................... 33

    FIGURA 2.21 - REPRESENTAO DA FUNO REL DE PASSAGEM NO LOGO!SOFT............................. 34

    FIGURA 2.22 SIMULAO DO CDIGO VHDL REFERENTE FUNO REL DE PASSAGEM ............... 35

    FIGURA 2.23 - REPRESENTAO DA FUNO GERADOR DE CICLOS ASSNCRONO NO LOGO!SOFT ..... 35

    FIGURA 2.24 SIMULAO DO CDIGO VHDL REFERENTE FUNO GERADOR DE CICLOS

    ASSNCRONO.................................................................................................................................. 37

    FIGURA 2.25 - REPRESENTAO DA INTERRUPTOR DE LUZ DA ESCADA NO LOGO!SOFT .................... 38

    FIGURA 2.26 SIMULAO DO CDIGO VHDL REFERENTE FUNO INTERRUPTOR DE LUZ DA

    ESCADA ......................................................................................................................................... 39

    FIGURA 2.27 - REPRESENTAO DA FUNO INTERRUPTOR CONFORTO NO LOGO!SOFT ................... 40

    FIGURA 2.28 SIMULAO DO CDIGO VHDL REFERENTE FUNO INTERRUPTOR CONFORTO ...... 41

  • FIGURA 2.29 - REPRESENTAO DA FUNO CONTADOR CRESCENTE / DECRESCENTE NO LOGO!SOFT

    ...................................................................................................................................................... 42

    FIGURA 2.30 SIMULAO DO CDIGO VHDL REFERENTE FUNO CONTADOR CRESCENTE /

    DECRESCENTE ............................................................................................................................... 43

    FIGURA 2.31 - REPRESENTAO DA FUNO CONTADOR DE HORAS DE SERVIO NO LOGO!SOFT ..... 44

    FIGURA 2.32 SIMULAO DO CDIGO VHDL REFERENTE FUNO CONTADOR DE HORAS DE

    SERVIO ........................................................................................................................................ 45

    FIGURA 2.33 - REPRESENTAO DA FUNO REL DE AUTO-RETENO NO LOGO!SOFT .................. 46

    FIGURA 2.34 SIMULAO DO CDIGO VHDL REFERENTE FUNO REL DE AUTO-RETENO ..... 46

    FIGURA 2.35 - REPRESENTAO DA FUNO REL DE IMPULSO DE CORRENTE NO LOGO!SOFT ........ 47

    FIGURA 2.36 SIMULAO DO CDIGO VHDL REFERENTE FUNO REL DE IMPULSO CORRENTE 48

    FIGURA 2.37 - REPRESENTAO DA FUNO SOFTKEY NO LOGO!SOFT ............................................. 49

    FIGURA 2.38 SIMULAO DO CDIGO VHDL REFERENTE FUNO SOFTKEY ................................ 50

    FIGURA 2.39 - REPRESENTAO DA FUNO REGISTRADOR DE DESLOCAMENTO NO LOGO!SOFT..... 51

    FIGURA 2.40 SIMULAO DO CDIGO VHDL REFERENTE FUNO REGISTRADOR DE

    DESLOCAMENTO............................................................................................................................ 52

    FIGURA 2.41 SIMULAO DO CDIGO VHDL REFERENTE FUNO REGISTRADOR DE

    DESLOCAMENTO............................................................................................................................ 53

    FIGURA 3.1 FLUXOGRAMA DO SISTEMA LOGO2VHDL ..................................................................... 55

    FIGURA 3.2 - ILUSTRAO DO FORMULRIO PRINCIPAL DO LOGO2VHDL.......................................... 55

    FIGURA 3.3 - ILUSTRAO DO FORMULRIO DE DEFINIO DE PARMETROS DO LOGO2VHDL ....... 57

    FIGURA 3.4 MENSAGEM PARA DEFINIO DE PARMETRO DE SADA................................................ 59

    FIGURA 3.5 MENSAGEM PARA DEFINIO DE PARMETRO DE ENTRADA .......................................... 59

    FIGURA 3.6 MENSAGEM PARA EXCESSO DE PARMETROS DE ENTRADA ........................................... 59

    FIGURA 3.8 CIRCUITO IMPLEMENTANDO A FUNO Q1 = (I1 . I2) + I3.............................................. 60

    FIGURA 3.9 LINHAS DE CDIGO DEFINIDAS PARA A FUNO Q1 = (I1 . I2) + I3 ................................ 61

    FIGURA 3.10 CDIGO VHDL COMPLETO PARA A FUNO Q1 = (I1 . I2) + I3 .................................... 61

    FIGURA 3.11 SIMULAO DO CDIGO VHDL PARA A FUNO Q1 = (I1 . I2) + I3 ............................ 62

    FIGURA 3.12 CIRCUITO IMPLEMENTANDO A FUNO Q1 = (I7 OR ((I1 AND NOT (I2)) OR (NOT(I1)

    AND I2)) AND ((NOT I3) AND I4) AND ((I5 OR (NOT I6)))) ............................................................. 62

    FIGURA 3.13 LINHAS DE CDIGO DEFINIDAS PARA A FUNO Q1 = (I7 OR ((I1 AND NOT (I2)) OR

    (NOT(I1) AND I2)) AND ((NOT I3) AND I4) AND ((I5 OR (NOT I6)))) .............................................. 63

    FIGURA 3.14 CDIGO VHDL COMPLETO PARA A FUNO Q1 = (I7 OR ((I1 AND NOT (I2)) OR (NOT(I1)

    AND I2)) AND ((NOT I3) AND I4) AND ((I5 OR (NOT I6)))) ............................................................. 63

    FIGURA 3.15 SIMULAO DO CDIGO VHDL PARA A FUNO Q1 = (I7 OR ((I1 AND NOT (I2)) OR

    (NOT(I1) AND I2)) AND ((NOT I3) AND I4) AND ((I5 OR (NOT I6)))) .............................................. 64

  • FIGURA 3.16 ESQUEMTICO DE UMA FUNO ESPECIAL (RETARDAMENTO DE LIGAO)

    RELACIONADA A DUAS FUNES BSICAS (AND E OR) ................................................................ 64

    FIGURA 3.17 LINHAS DE CDIGO DEFINIDAS PARA O ESQUEMTICO DE UMA FUNO ESPECIAL

    (RETARDAMENTO DE LIGAO) RELACIONADA A DUAS FUNES BSICAS (AND E OR) ............ 65

    FIGURA 3.18 CDIGO VHDL COMPLETO PARA O ESQUEMTICO DE UMA FUNO ESPECIAL

    (RETARDAMENTO DE LIGAO) RELACIONADA A DUAS FUNES BSICAS (AND E OR) ............ 65

    FIGURA 3.19 SIMULAO DO CDIGO VHDL ILUSTRANDO O FUNCIONAMENTO DE UMA FUNO

    ESPECIAL (RETARDAMENTO DE LIGAO) RELACIONADA A DUAS FUNES BSICAS (AND E OR)

    ...................................................................................................................................................... 66

    FIGURA 4.1 - ILUSTRAO DE UMA PORTA AUTOMATIZADA ................................................................ 68

    FIGURA 4.2 SIMULAO DA PORTA AUTOMTICA NO LOGO!SOFT COMFORT ................................. 69

    FIGURA 4.3 - SIMULAO DA PORTA AUTOMTICA NO QUARTUS II DA ALTERA................................. 70

    FIGURA 4.4 - ILUSTRAO DA PLANTA BAIXA DO SISTEMA DE IRRIGAO .......................................... 71

    FIGURA 4.5 - ILUSTRAO DE UM SISTEMA DE IRRIGAO AUTOMATIZADO........................................ 72

    FIGURA 4.6 SIMULAO DO SISTEMA DE IRRIGAO AUTOMATIZADO NO LOGO!SOFT COMFORT . 73

    FIGURA 4.7 - SIMULAO DO SISTEMA DE IRRIGAO NO QUARTUS II DA ALTERA ............................ 75

    FIGURA 4.8 ESQUEMTICO DE UM SISTEMA DE CONTROLE AUTOMTICO DE PREENCHIMENTO DE

    SILO ............................................................................................................................................... 76

    FIGURA 4.9 SIMULAO DO SISTEMA DE CONTROLE AUTOMTICO DE PREENCHIMENTO DE SILO NO

    LOGO!SOFT COMFORT................................................................................................................. 77

    FIGURA 4.10 SIMULAO DO CDIGO VHDL DO SISTEMA DE CONTROLE AUTOMTICO DE

    PREENCHIMENTO DE SILO.............................................................................................................. 80

  • Sumrio Captulo 1 ...........................................................................................................................11

    INTRODUO GERAL .........................................................................................................11 1.1. Introduo .............................................................................................................11 1.2. Estado da Arte .......................................................................................................14

    Captulo 2 ...........................................................................................................................19 DESCRIO DAS FUNES DO LOGO!SOFT .......................................................................19

    2.1. Introduo .............................................................................................................19 2.2. Listas de Funes Bsicas .....................................................................................19 2.2.1. Funo And ........................................................................................................19 2.2.2. Funo Not .........................................................................................................21 2.2.3. Funo Nand ......................................................................................................22 2.2.4. Funo Or ..........................................................................................................23 2.2.5. Funo Nor.........................................................................................................24 2.2.6. Funo Xor.........................................................................................................25 2.3. Listas de Funes Especiais...................................................................................26 2.3.1. Retardamento de Ligao ...................................................................................27 2.3.2. Retardamento do Desligamento ..........................................................................28 2.3.3. Retardamento de Ligao / Desligamento...........................................................30 2.3.4. Retardamento de Ligao a ser Memorizado ......................................................32 2.3.5. Rel de Passagem ...............................................................................................34 2.3.6. Gerador de Ciclos Assncrono ............................................................................35 2.3.7. Interruptor de Luz da Escada..............................................................................37 2.3.8. Interruptor Conforto ...........................................................................................39 2.3.9. Contador Crescente / Decrescente ......................................................................42 2.3.10. Contador de Horas de Servio ..........................................................................43 2.3.11. Rel de Auto-Reteno ......................................................................................45 2.3.12. Rel de Impulso Corrente..................................................................................47 2.3.13. Softkey ..............................................................................................................49 2.3.14. Registrador de Deslocamento ...........................................................................50

    Captulo 3 ...........................................................................................................................54 TRADUTOR LOGO2VHDL ................................................................................................54

    3.1. Introduo .............................................................................................................54 3.2. Excees Tratadas .................................................................................................58 3.3. Exemplos ...............................................................................................................60 3.3.1. Exemplo 01 .........................................................................................................60 3.3.2. Exemplo 02 .........................................................................................................62 3.3.3. Exemplo 03 .........................................................................................................64

    Captulo 4 ...........................................................................................................................67 ESTUDO DE CASOS .............................................................................................................67

    4.1. Introduo .............................................................................................................67 4.2. Porta Automtica...................................................................................................67 4.3. Sistema de Irrigao Automatizado........................................................................72 4.4. Sistema Automtico para Preenchimento de Silo ...................................................75

    Captulo 5 ...........................................................................................................................82 CONCLUSES GERAIS ........................................................................................................82

    5.1. Concluses ............................................................................................................82 Referncias .........................................................................................................................85

  • 11

    Captulo 1

    Introduo Geral

    1.1. Introduo

    Um Controlador Lgico Programvel (CLP) um dispositivo eletrnico, que controla

    mquinas e processos. Utiliza uma memria programvel, para armazenar instrues e

    executar funes especficas, como o controle de energizao/desenergizao, temporizao,

    contagem, sequenciamento, operaes matemticas e manipulao de dados.

    O desenvolvimento dos CLPs comeou em 1968, em resposta, a uma necessidade da

    Diviso Hidramtica da General Motors (GM). Na poca, a empresa passava dias ou semanas

    alterando sistemas de controle baseados em rels, sempre que mudava um modelo de carro ou

    introduzia modificaes, na linha de montagem. Para reduzir o alto custo de instalao

    decorrente destas alteraes, a especificao de controle da GM necessitava, de um sistema de

    estado slido, com flexibilidade e que pudesse ser programado e mantido pelos engenheiros e

    tcnicos na fbrica. Alm disso, era preciso, que suportasse o ar poludo, a vibrao, o rudo

    eltrico e os extremos de umidade e temperatura, encontrados na empresa. Instalou-se desta

    forma os primeiros CLPs, com aplicaes automobilsticas, que foram desenvolvidos e

    implantados em 1969 (01).

    O Controlador Lgico Programvel surgiu dentro da General Motors, no intuito de

    solucionar as dificuldades encontradas, nos painis de comando das linhas de montagem.

    Criou-se, desta forma, um dispositivo, que refletia as necessidades, de muitos usurios de

    circuitos rels, no s da indstria automobilstica, como de toda a indstria manufatureira.

    Nasceu assim, um equipamento bastante verstil, que vem se aprimorado

    constantemente, por diversos fabricantes (GE Fanuc, Unitronics, Atos, Dexter e outros),

    diversificando cada vez mais os setores industriais e suas aplicaes. Dentre as empresas

    fabricantes de controladores lgicos programveis, selecionou-se, para estudo neste trabalho,

    o LOGO!Soft Comfort (02) desenvolvido pela SIEMENS.

    O LOGO! um CLP, criado para aplicaes de automao, no s na rea industrial,

    como tambm na construo civil, comrcio e at mesmo residncias. Este CLP utilizado

    em situaes, onde h necessidade de acionar ou desativar dispositivos automticos, como

    lmpadas, portas, vlvulas, sistemas de refrigerao dentre outros. (03).

  • 12

    Atualmente o LOGO! vem sendo muito usado no planejamento de instalaes, em

    construo civil, como iluminao de escadarias, controle e iluminao de portes, controle

    de venezianas e vidros (persianas motorizadas) e sistemas, que necessitam, de controle de

    tempo, luminosidade e ventilao.

    Da mesma forma, as aplicaes fabris so tambm diversas, como acionamento e

    desligamento de guilhotinas de papel, prensas de sucata, controle de portas, controle de

    bombas dgua, controle de barreira entre outras.

    De acordo com a definio de NATALE (04), um Controlador Lgico Programvel

    pode automatizar uma grande quantidade de informaes, substituindo assim o homem com

    mais preciso, confiabilidade, custo e rapidez.

    O LOGO!, assim como qualquer CLP, de outros fabricantes, possui um

    microprocessador, que realiza quatro funes bsicas:

    Processamento de programas definidos;

    Varredura das entradas no processo;

    Programao das memrias externas;

    Comunicao entre o computador e o CLP.

    Desta maneira, os programas de automao desejados, so descritos em diagramas

    lgicos, listas de instrues ou linguagem ladder, e a partir de ento, transferidos, para a

    memria RAM do CLP. Quando o mesmo posto em operao, o contedo da memria

    executado seqencialmente, junto com os dados do sistema, realizando as tarefas de entrada e

    sada. O terminal de programao o meio de comunicao entre o microcomputador e a

    memria do CLP.

    Os CLPs disponveis no mercado brasileiro, tipicamente, utilizam na sua arquitetura

    microprocessadores e circuitos integrados de aplicaes especficas (ASICs - Application

    Specific Integrated Circuits). Esses microprocessadores para executarem os seus programas

    de controle necessitam realizar ciclos de busca e execuo da instruo. O ciclo de busca da

    instruo no est diretamente relacionado com o processo no qual o CLP est inserido, mas

    condio determinante, para o microprocessador executar o programa, que est carregado na

    memria. Esta necessidade de busca da instruo, demanda tempo do microprocessador, o

    qual poderia estar sendo utilizado, na execuo das tarefas pertinentes ao processo.

    Os microprocessadores so componentes extremamente flexveis, devido a sua

    programabilidade. A sua programao permite aplicao em diversos tipos de controles

    industriais. A execuo de um algoritmo depende de um software armazenado em memria,

  • 13

    que ser executado em uma arquitetura tipo Von Neumann, por exemplo, com ciclos de busca

    e execuo das instrues.

    Na arquitetura baseada em dispositivo lgico programvel, por exemplo FPGA (Field

    Programmable Gate Array), um algoritmo implementado por hardware, sem precisar de

    ciclos de busca e execuo de instrues (05).

    Este trabalho de pesquisa tem como objetivo avaliar a viabilidade de se substituir o

    microprocessador utilizado nos atuais CLPs, por dispositivos lgicos programveis (PLDs).

    Os PLDs so dispositivos, que implementam circuitos e sistemas digitais, podendo, desta

    forma, implementar os mesmos sistemas de controle, que os CLPs implementam de modo

    seqencial.

    Estudou-se como as funes disponveis no CLP LOGO!Soft podem ser

    implementadas, em linguagem VHDL, podendo, desta forma, configurar uma FPGA,

    contendo um hardware equivalente, ao software executado pela CPU do CLP.

    A VHDL, difere das linguagens ditas convencionais, pois tem como principal

    caracterstica, a execuo concorrente, ou seja, vrios sinais que podem ser tratados

    simultaneamente, melhorando a resposta do sistema.

    Considerando a grande utilizao de CLPs, em automao de processos, a proposta de

    desenvolver um software conversor de LOGO!Soft para VHDL uma iniciativa, na tentativa

    de substituir a arquitetura convencional empregada, em CLP por uma FPGA. Esta nova

    abordagem tem como vantagem o seguinte:

    Expanso: Gerar um cdigo VHDL partir da descrio da linguagem LOGO!Soft do

    CLP LOGO! ir expandir a possibilidade de automatizar sistemas de controle, para um

    amplo crculo de desenvolvedores e projetistas, que desconhecem as linguagens de descrio

    de hardware, como a VHDL que uma linguagem padro na sntese de sistemas digitais.

    Desta forma, um programador de controladores lgicos programveis pode facilmente migrar

    os projetos descritos em linguagem de CLP, para um cdigo VHDL correspondente.

    Flexibilidade: Obtendo-se o cdigo fonte de um sistema de controle em sintaxe

    VHDL, a transferncia do mesmo, para uma outra linguagem, poder ser facilmente

    conseguida, bastando somente adequar a lgica das funes sintaxe da linguagem de

    programao desejada, possibilitando assim, o surgimento de novas ferramentas para a

    automao.

    Desempenho: Os processos convertidos em VHDL podem ser testados e simulados da

    forma mais simplificada possvel. As funes descritas de forma simplificadas aumentam

  • 14

    conseqentemente o desempenho do sistema, como um todo, pois o tamanho das descries

    tem impacto direto, sobre o tempo de varredura do sistema por completo.

    Substituio do Software por Hardware: O programa de automao, uma vez

    gravado na memria do CLP, fica em constante processo de execuo (RUNNING). Diante

    disto, obter uma descrio VHDL a partir do LOGO! Soft torna-se interessante, porque

    substitui um software, por um hardware, ou seja, substitui o programa compilando na

    memria do CLP, ganhando com isso o paralelismo inerente ao hardware cujo controle pode

    ser executado tambm em tempo real.

    Paralelismo: A linguagem de descrio de hardware VHDL trabalha com sistemas

    concorrentes, o que permite uma anlise de todas as entradas do circuito de forma paralela, e

    por conseqncia o tempo de resposta torna-se muito rpido. Em contrapartida, os programas

    descritos, para os CLPs trabalham, com a anlise seqencial, das descries, o que torna o

    programa mais lento e a anlise de suas rotinas mais complexas, para que haja uma resposta

    imediata do sistema (06).

    Apresenta-se na prxima seo, um resumo sobre trabalhos desenvolvidos por outros

    autores, relacionados com as propostas deste trabalho. No captulo 2, apresentam-se as

    funes bsicas e especiais disponibilizadas, pelo LOGO!Soft, assim como os cdigos VHDL

    e as simulaes realizadas no ambiente QUARTUS II da Altera.

    O software conversor desenvolvido apresentado no captulo 3. Alguns exemplos de

    uso do LOGO2VHDL tambm so apresentados.

    No captulo 4 descrevem-se alguns casos, que foram selecionados. Finalmente, no

    captulo 5 apresenta-se a concluso sobre este trabalho e trabalhos futuros, que serviro para

    avaliar o desempenho da ferramenta desenvolvida.

    1.2. Estado da Arte

    A evoluo das metodologias de projeto de hardware, apoiadas em poderosas

    ferramentas de software, em especial os dispositivos reconfigurveis como FPGAs (Field-

    Programable Gate Arrays) abriu um novo horizonte, entre os extremos da computao e o

    hardware dedicado (07).

    Hoje, possvel desenvolver um projeto de sistema digital empregando-se novas

    metodologias, como uma linguagens de descrio de hardware (HDLs), ferramentas de sntese

    lgica e simulao (08). Uma rea promissora, para a aplicao de FPGAs, que est se

  • 15

    desenvolvendo, a implementao de mquinas computacionais dedicadas e reprogramveis

    dinamicamente.

    Os primeiros trabalhos de automao, realizados com projetos de hardware utilizando

    a linguagem VHDL, para implementao em FPGA, foram desenvolvidos com o propsito de

    atender as necessidades na rea da robtica, no desenvolvimento de algoritmos para controle

    de robs mveis, que geralmente necessitavam de muitos recursos computacionais para

    execuo em tempo real.

    No Departamento de Engenharia Eltrica da Universidade da Califrnia - UCLA, foi

    construdo o prottipo, de um sistema de reconhecimento, com hardware reconfigurvel, que

    obteve significante economia de hardware, pelo auto-ajuste do circuito, para cada modelo

    comparado.

    Uma outra abordagem interessante de aplicao de computao reconfigurvel

    robtica o sistema de computao, desenvolvido pela NASA, chamado de processador

    matemtico de robs (RMP). Este sistema contm um grande nmero de elementos de

    processamento, conectados, em vrias combinaes paralelas e seriais que so reconfigurveis

    via software. O RMP uma arquitetura de propsito especial projetada, para resolver

    problemas computacionais diversos, em controle de rob, simulao, gerao de trajetria,

    anlise de ambiente de trabalho, dente outros (09).

    Outro trabalho, desenvolvido por LIMA & CARDOSO (10), implementa um

    controlador, para cmera digital utilizando FPGA. Neste projeto, um rob em movimento

    captura imagens atravs de uma cmera de vdeo digital instalada. Mtodos como este, visam

    sintonia automtica de controladores com interesses a diversas aplicaes, em particular

    para a robtica. No trabalho, o processamento das imagens capturadas pelo rob realizado

    medida, que o mesmo se movimenta. Esta movimentao do rob de um ambiente, com muita

    luz, para outro com pouca luminosidade, requer que alguns dos parmetros da cmera sejam

    alterados, de forma que as imagens continuem sendo capturadas com qualidade suficiente. A

    implementao deste controlador utiliza FPGA, com programao, em linguagem VHDL de

    forma, que as avaliaes dos parmetros de luminosidade fiquem a cargo de um processador

    includo na prpria FPGA.

    Verifica-se, com os trabalhos realizados, que a tecnologia da computao

    reconfigurvel, utilizando FPGA, tornou-se objeto de estudo principalmente pela habilidade

    de se modificar o hardware da arquitetura do sistema em tempo real, para se adequar

    aplicao.

  • 16

    Alm da Robtica, outras pesquisas a partir de ento foram realizadas apoiadas na

    linguagem de descrio de hardware, como por exemplo, o desenvolvimento de ambientes

    para automao de sistemas de controle. A utilizao de ferramentas de software, como o

    caso da VHDL na implementao em FPGAs, tem simplificado e acelerado o

    desenvolvimento de projetos e assim obtido um papel de grande interesse entre pesquisadores

    no processo de substituio de CLPs por dispositivos Lgicos Programveis.

    WELCH & CARLETA (11), desenvolveram uma arquitetura, com alto desempenho

    em FPGA, para o controle de processos industriais. Trata-se de uma arquitetura, que utiliza

    como padro a linguagem Ladder, onde foram desenvolvidos vrios dispositivos, para a

    automao industrial, padres de conexo, dispositivos de bloco de funo terminais, e outros

    componente caractersticos de CLP mais usuais.

    MIYAZAWA et al (12), tambm desenvolveram um tipo de controlador, que

    executado, utilizando um dispositivo lgico programvel, do tipo FPGA. Neste trabalho, o

    autor cita a importncia da varredura cclica de processos realizados em computadores

    pessoais e desta forma, descreve dois mtodos para implementar esta execuo cclica. Um

    mtodo envolvido utiliza pulsos de relgio, em linguagem de descrio de hardware VHDL

    para anlise de circuitos integrados, que exigem alta velocidade. O outro mtodo traduz uma

    bobina automtica em linguagem Ladder de forma equivalente lgica da linguagem VHDL.

    Assim, como resultado da pesquisa, os dois mtodos foram comparados e apresentados os

    benefcios do controlador novo, executado por FPGA.

    Um dos primeiros trabalhos com implementao de sistema de controle, para

    aplicaes domsticas foi descrito em (13). Esta pesquisa visa automao de residncias,

    integrando Hardware e Software via utilizao de dispositivos lgicos programveis do tipo

    FPGA. No trabalho, eletrodomsticos da casa so interligados, por um protocolo de controle,

    todo desenvolvido em VHDL e implementado, em um dispositivo lgico programvel. O

    sistema acessvel via Internet, sendo que os usurios (moradores) controlam e administram

    seu lar usando um navegador Web comum.

    O trabalho desenvolvido por HAFNER (14) implementa um medidor de qualidade de

    energia eltrica usando computao reconfigurvel por hardware atravs de blocos funcionais

    que so programados em linguagem VHDL. O medidor analisa a quantidade e qualidade de

    energia eltrica de forma automtica utilizando FPGA. A utilizao de lgica reconfigurvel

    por hardware minimiza a base de dados gerado por um medidor, permitindo uma anlise mais

    rpida do comportamento global de um sistema composto por um grande nmero de

    medidores. Isto possvel devido ao processamento em tempo real de diversas funes usadas

  • 17

    na anlise da qualidade da energia eltrica. Este processamento deve-se ao paralelismo e

    tempo de execuo reduzido utilizado em lgica VHDL. O trabalho visa fornecer uma

    alternativa econmica e tecnologicamente vivel na anlise de quantidade e qualidade de

    sistemas energticos domsticos.

    Percebe-se, que vem surgindo vrios trabalhos automatizando sistemas de controle,

    utilizando como referncia, dispositivos lgicos programveis, como forma alternativa aos

    projetos comumente realizados em controladores lgicos programveis.

    Na pesquisa apresentada em (15) descreve-se como perifricos e controladores podem

    ser aplicados a automao de sistemas. Neste, implementado um projeto contendo seis

    perifricos de microcontroladores, os quais so mapeados em circuitos programveis

    (FPGAs), com a respectiva programao em VHDL. Os autores apresentam, tambm, a

    importncia do paralelismo existente em projetos programados em linguagem de descrio de

    hardware, podendo ser observado em um trabalho desenvolvido onde uma CPU especial

    executa as funcionalidades de perifricos de microcontroladores e um sistema que integra

    estes microcontroladores em FPGAs.

    COSTA (16) lana tambm, uma bibliografia sobre tecnologias utilizadas em projeto

    de circuitos digitais, com utilizao de ferramentas de software, como EDA e VHDL, no

    aperfeioamento do hardware reconfigurvel dos dispositivos lgicos programveis. Neste, o

    autor, apresenta conceitos tericos e prticos relativos s tecnologias de projetos de circuitos

    digitais utilizando FPGAs e cita:

    Como resultado da pesquisa, considerava-se a

    possibilidade de se desenvolver um mdulo de

    compilao que recebesse uma entrada escrita numa

    linguagem fonte (Ladder) e codificasse uma sada

    numa linguagem destino (VHDL), correspondente

    ao controlador FPGA. Durante o estudo realizado

    no foi encontrado o software mencionado.

    Em seu livro, o autor comenta no encontrar um software conversor da linguagem

    Ladder para a linguagem VHDL e como forma alternativa, opta por escolher um ambiente

    integrado de desenvolvimento, no caso o Quartus II, que permite o desenvolvimento de uma

    biblioteca de macroinstrues, baseada em smbolos grficos. Assim, a bibliografia mostra a

    possibilidade de automatizar processos utilizando-se o editor de smbolos do Quartus II da

    Altera, criando desta forma smbolos grficos equivalentes, aos utilizados nas instrues da

    linguagem ladder.

  • 18

    Uma metodologia para a especificao de sistemas de snteses digitais, baseada em

    VHDL apresentada em (17). Neste trabalho proposto um mtodo de converso de um

    sistema mecatrnico implementado em ladder, para uma linguagem de descrio de hardware

    e posteriormente gravado, em uma FPGA. Trata-se de uma metodologia que converte um

    programa em ladder para VHDL, utilizam-se como referncia o CLP OMNI-CNC.

    Percebe-se na pesquisa de YAMAZAKI uma semelhana com o presente trabalho,

    porm aquele autor desenvolveu metodologias que transcrevem as funes em ladder para

    sintaxe de descrio de hardware. A grande diferena que neste trabalho foi desenvolvida

    uma ferramenta prpria denominada LOGO2VHDL, que descreve automaticamente os

    cdigos a partir de um sistema de controle.

    Apresenta-se no prximo captulo, os modelos VHDL das funes disponveis na

    linguagem LOGO!Soft do CLP LOGO!.

  • 19

    Captulo 2

    Descrio das Funes do LOGO!Soft

    2.1. Introduo

    A lgica de Boole e a linguagem de programao utilizadas na automao permitem

    aos usurios representar, um processo ou uma situao de controle, em diagramas lgicos,

    linguagem Ladder ou em lista de instrues. Essas trs representaes compreendem hoje as

    linguagens de automao padro entre os diversos fabricantes de CLPs (18).

    De acordo com NATALE (04), automatizar um sistema significa fazer uso de funes

    lgicas representadas, por portas lgicas, que podem ser implementadas, independente do

    nvel de sua tecnologia, ou seja, rel, diodo, transistor, circuito integrado, etc..

    Desta maneira, as funes Booleanas, propostas na lgebra de Boole, fazem parte do

    grupo de instrues bsicas da linguagem de descrio do LOGO!Soft, assim como qualquer

    outra linguagem de Controladores Lgicos Programveis, desde os mais simples aos mais

    complexos.

    Como o principal objetivo deste trabalho obter um modelo VHDL a partir de funes

    lgicas bsicas e especiais disponibilizadas pelo CLP LOGO!Soft, descreve-se a seguir estas

    funes que foram implementadas em sintaxe VHDL e suas respectivas simulaes no

    QUARTUS II da Altera, tendo como referncia o ambiente de desenvolvimento LOGO!Soft

    Comfort.

    2.2. Listas de Funes Bsicas

    As funes bsicas do LOGO!Soft correspondem aos elementos lgicos da lgebra

    booleana. Fazem parte, portanto, as funes lgicas: AND, NAND, OR, NOT, NOR e XOR

    (03).

    2.2.1. Funo And

    A funo AND combina dois ou mais sinais de entrada de modo, que somente haver

    o nvel lgico 1 na sada, se em todas as entradas houverem o nvel lgico 1. Pode-se

  • 20

    comparar uma funo AND a interruptores ligados em srie, conforme apresentado na figura

    2.1. Somente h conduo quando todos os interruptores estiverem fechados.

    Tabela Verdade Representao no LOGO!

    ENTRADAS SADA A B C 0 0 0 0 1 0 1 0 0 1 1 1

    Figura 2.1 - Tabela verdade e representao da funo AND no LOGO!Soft

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada, no ambiente QUARTUS II apresentado na figura 2.2.

    Library IEEE; USE ieee.std_logic_1164.all; Entity porta_and4 IS PORT(

    I1,I2,I3,I4 : IN std_logic; Q : OUT std_logic ); End porta_and4; Architecture porta of porta_and4 IS BEGIN Q

  • 21

    2.2.2. Funo Not

    A funo NOT funciona como um circuito em chaves. Esta funo tem como objetivo

    complementar o sinal de entrada, ou seja, se na entrada possuir o nvel lgico 1, a sada ter o

    nvel lgico 0 e vice-versa, conforme apresentado na figura 2.3.

    Tabela Verdade Representao no LOGO!

    ENTRADA SADA A 0 1 1 0

    Figura 2.3 - Tabela verdade e representao da funo NOT no LOGO!Soft

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada, no ambiente QUARTUS II apresentado na figura 2.4.

    Library IEEE; USE ieee.std_logic_1164.all; Entity porta_not IS PORT( I1 : IN std_logic; Q : OUT std_logic ); End porta_not; Architecture porta of porta_not IS BEGIN Q

  • 22

    2.2.3. Funo Nand

    A funo NAND uma funo AND seguida de um inversor (funo NOT). Haver

    sempre na sada NAND o inverso do que se tem na sada da funo AND. A tabela verdade da

    funo e sua representao no LOGO!Soft mostrada na figura 2.5.

    Figura 2.5 - Tabela verdade e representao da funo NAND no LOGO!Soft

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada, no ambiente QUARTUS II apresentado na figura 2.6.

    Library IEEE; USE ieee.std_logic_1164.all; Entity porta_nand4 IS PORT( I1,I2,I3,I4 : IN std_logic; Q : OUT std_logic ); End porta_nand4; Architecture porta of porta_nand4 IS BEGIN Q

  • 23

    2.2.4. Funo Or

    A funo OR possui o nvel lgico 1 na sada quando em qualquer de suas entradas

    houver o nvel lgico 1. Pode-se compar-la a dois interruptores em paralelo, conforme

    verifica-se na figura 2.7.

    Tabela Verdade Representao no LOGO!

    ENTRADAS SADA A B C 0 0 0 0 1 1 1 0 1 1 1 1

    Figura 2.7 - Tabela verdade e representao da funo OR no LOGO!Soft

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada no ambiente QUARTUS II apresentado na figura 2.8.

    Library IEEE; USE ieee.std_logic_1164.all; Entity porta_or4 IS PORT( I1,I2,I3,I4 : IN std_logic; Q : OUT std_logic ); End porta_or4; Architecture porta of porta_or4 IS BEGIN Q

  • 24

    2.2.5. Funo Nor

    A funo NOR uma funo OR seguida da funo NOT, o que significa dizer que a

    sada desta funo o complemento da sada de uma funo OR. A tabela verdade da funo

    e sua representao no LOGO!Soft pode ser verificada conforme ilustrado na figura 2.9.

    Figura 2.9 - Tabela verdade e representao da funo NOR no LOGO!Soft

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada no ambiente QUARTUS II apresentado na figura 2.10.

    Library IEEE; USE ieee.std_logic_1164.all; Entity porta_nor4 IS PORT( I1,I2,I3,I4 : IN std_logic; Q : OUT std_logic ); End porta_nor4; Architecture porta of porta_nor4 IS BEGIN Q

  • 25

    2.2.6. Funo Xor

    A funo XOR produz na sada o nvel lgico 0 quando os bits na entrada forem iguais

    e produz na sada o nvel lgico 1 quando os bits de entrada forem diferentes. A funo XOR

    dada pela expresso BABA .. + e representada no LOGO!Soft conforme ilustrado na figura

    2.11.

    Tabela Verdade Representao no LOGO!

    ENTRADAS SADA A B C 0 0 0 0 1 1 1 0 1 1 1 0

    Figura 2.11 - Tabela verdade e representao da funo XOR no LOGO!Soft

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada no ambiente QUARTUS II apresentado na figura 2.12.

    Library IEEE; USE ieee.std_logic_1164.all; Entity porta_xor2 IS PORT( I1,I2 : IN std_logic; Q : OUT std_logic ); End porta_xor2; Architecture porta of porta_xor2 IS BEGIN Q

  • 26

    Observa-se que a sada somente possui nvel lgico 0 quando os bits de entrada

    possuem o mesmo nvel lgico. A sada possui nvel lgico 1 quando os bits na entrada

    possurem diferentes nveis.

    Alm das funes lgicas bsicas o LOGO!Soft disponibiliza um grupo de funes

    denominadas funes especiais. Estas so funes mais complexas e na sua maioria utilizam

    conceitos descritos na teoria de circuitos lgicos seqenciais e permitem a parametrizao de

    algumas variveis.

    2.3. Listas de Funes Especiais

    As funes especiais diferenciam-se das funes bsicas devido necessidade de

    parametrizao das entradas. Estas funes contm parmetros de tempo utilizando

    contadores e temporizadores possibilitando assim, adaptar um programa s necessidades

    individuais (03).

    O LOGO!Soft disponibiliza as funes: retardamento de ligao, retardamento do

    desligamento, retardamento de ligao/desligamento, retardamento de ligao a memorizar,

    rel de passagem, comandado por flanco, gerador de ciclos assncrono, gerador de sinal

    aleatrio, interruptor de luz da escada, interruptor conforto, temporizador semanal,

    temporizador anual, contador crescente e decrescente, contador de horas de servio,

    interruptor de valor limiar, analgico interruptor de valor limiar, analgico interruptor de

    valor limiar de diferena, comparador analgico, amplificador analgico, amplificador

    analgico, rel de auto-reteno, rel de impulso corrente, texto de aviso, softkey, registrador

    de deslocamento.

    Nas variantes LOGO! 24, LOGO! 24o, LOGO! 12/24 RC e LOGO! 12/24RCo existe a

    possibilidade de parametrizar as entradas atravs de funes analgicas. Para essa

    programao o LOGO!Soft disponibiliza as funes: analgico interruptor de valor limiar,

    analgico interruptor de valor limiar de diferena, comparador analgico, monitorizao do

    valor analgico e amplificador analgico. Salienta-se que trabalhou-se somente, com funes

    digitais.

    Adotou-se que cada pulso de relgio corresponde a 1 segundo. Essa temporizao

    utilizada no tratamento referente parametrizao de cada uma dessas funes.

    A seguir sero apresentadas as funes especiais, seguidos de cdigo VHDL e

    simulao a partir da descrio VHDL. Ressalta-se que os programas foram devidamente

  • 27

    testados, compilados e simulados de acordo com o funcionamento correspondente oferecido

    pela linguagem LOGO!Soft.

    2.3.1. Retardamento de Ligao

    Nesta funo, conforme representado na figura 2.13, a sada Q s ser ligada aps

    decorrido um tempo, que passvel de parametrizao. Se o estado na entrada Trg mudar de 0

    para 1, comea a decorrer o tempo parametrizado. Se o estado na entrada Trg permanecer

    nvel lgico 1 durante o tempo parametrizado, a sada ser colocada em nvel lgico 1

    decorrido o tempo. Se o estado na entrada Trg mudar novamente para 0 antes de esgotado o

    tempo parametrizado, a temporizao ser reinicializada. A sada ser definida novamente em

    0, se houver o estado 0 na entrada Trg.

    Representao no LOGO!Soft Denominao da Funo Especial

    Retardamento de Ligao

    Figura 2.13 - Representao da funo retardamento de ligao no LOGO!Soft

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada no ambiente QUARTUS II apresentado na figura 2.14.

    Library IEEE; USE ieee.std_logic_1164.all; Entity ret_lig IS Port( clk : in std_logic; Trg : in std_logic; saida : out std_logic); End ret_lig; Architecture funcao of ret_lig IS Begin process(Trg, clk) variable tempo : integer; Begin if (clk'EVENT and clk = '1') Then if (Trg = '1') then tempo := tempo + 1; else

  • 28

    tempo := 0; end if; if (tempo >= 5) then saida

  • 29

    Representao no LOGO!Soft Denominao da Funo Especial

    Retardamento do desligamento

    Figura 2.15 - Representao da funo retardamento do desligamento no LOGO!Soft

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada no ambiente QUARTUS II apresentado na figura 2.16.

    Library IEEE; USE ieee.std_logic_1164.all; Entity ret_deslig IS Port( clk, reset, Trg : in std_logic; saida : out std_logic); End ret_deslig; Architecture funcao of ret_deslig IS Begin process(Trg, clk) variable tempo: integer; Begin if (clk'EVENT and clk = '1') Then if (reset = '1') then tempo := 0; saida

  • 30

    Figura 2.16 Simulao do cdigo VHDL referente funo retardamento do

    desligamento

    Observa-se que quando a entrada Trg muda para o nvel lgico 1, a sada tambm

    muda para o nvel lgico 1. Quando o estado Trg muda seu nvel lgico de 1 para 0, ento

    inicia a contagem do tempo parametrizado. Quando o tempo parametrizado for alcanado, que

    neste caso de 5 pulsos de relgio, a sada ser redefinida para o estado 0. Toda vez que a

    entrada Trg ligar e desligar, ser reiniciado a contagem do tempo.

    2.3.3. Retardamento de Ligao / Desligamento

    Nesta funo, conforme representado na figura 2.17, a sada ligada aps um tempo

    parametrizado. Se o estado na entrada Trg mudar de 0 para 1, ento comea a decorrer o

    tempo, se o estado na entrada Trg permanecer em 1, durante o tempo parametrizado, a sada

    ser colocada em 1 (retardamento de ligao). Se o estado da entrada Trg mudar novamente

    para 0 antes de ter decorrido, o tempo parametrizado ento o tempo reposto. Se o estado na

    entrada Trg mudar novamente para 0, ento comea a decorrer o tempo. Se o estado na

    entrada Trg permanecer em 0 durante o tempo parametrizado, a sada ser colocada em 0

    (retardamento de desligamento) aps decorrer o tempo parametrizado. Se o estado na entrada

    Trg mudar para 1 antes de ter decorrido o tempo, ento o tempo reposto a 0.

    Representao no LOGO!Soft Denominao da Funo Especial

    Retardamento de ligao /

    desligamento

    Figura 2.17 - Representao da funo retardamento de lig. / deslig. no LOGO!Soft

  • 31

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada, no ambiente QUARTUS II apresentado na figura 2.18.

    Library IEEE; USE ieee.std_logic_1164.all; Entity ret_lig_deslig IS Port( clk : in std_logic; Trg : in std_logic; saida : out std_logic); End ret_lig_deslig; Architecture funcao of ret_lig_deslig IS Begin process(Trg, clk) variable tempol, tempoh : integer; begin if (clk'event and clk = '1') Then if (Trg = '1') then tempol := 0; if (tempoh < 5) then tempoh := tempoh + 1; end if; else tempoh := 0; if (tempol < 5) then tempol := tempol + 1; end if; end if; if (tempoh = 5) then saida

  • 32

    Percebe-se que a sada ligada de acordo com o tempo parametrizado, que no caso

    de 5 pulsos de relgio. Para esta funo foram criados dois contadores: um para realizar o

    retardo de ligao (tempoh) em funo do tempo parametrizado e outro para realizar o retardo

    do desligamento (tempol). Se o estado na entrada Trg mudar de 0 para 1, ento comea a

    decorrer o tempoh, se o estado na entrada Trg permanecer em 1, durante o tempo

    parametrizado, a sada ser colocada em 1. Se o estado na entrada Trg mudar novamente para

    0, ento comea a decorrer o contador tempol. Se o estado na entrada Trg permanecer em 0

    durante o tempo parametrizado, a sada ser colocada em 0 (retardamento de desligamento).

    2.3.4. Retardamento de Ligao a ser Memorizado

    Nesta funo, conforme representado na figura 2.19, se o estado na entrada Trg mudar

    seu estado, comea ento a correr o tempo parametrizado. Alcanando o tempo, a sada Q ser

    colocada em 1. Uma nova mudana na entrada Trg no tem qualquer influncia sobre o tempo

    que est sendo contado. A sada e o tempo do parmetro s sero novamente recolocadas em

    0, se na entrada R assumir o estado 1.

    Representao no LOGO!Soft Denominao da Funo Especial

    Retardamento de ligao a ser

    memorizado

    Figura 2.19 - Representao da funo retardamento de ligao a ser memorizado no

    LOGO!Soft

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada no ambiente QUARTUS II apresentado na figura 2.20.

    Library IEEE; USE ieee.std_logic_1164.all; Entity ret_lig_mem IS

    Port( reset : in std_logic; clk : in std_logic; Trg : in std_logic; saida : out std_logic );

  • 33

    End ret_lig_mem; Architecture funcao of ret_lig_mem IS Signal aux : std_logic := '0'; Begin process(Trg, clk) variable tempo : integer; Begin if (clk'EVENT and clk = '1') Then if (reset = '1') then saida

  • 34

    zerar o contador e colocar a sada em nvel lgico 0, e desta forma o sistema aguarda uma

    nova comutao na entrada Trg.

    2.3.5. Rel de Passagem

    Nesta funo, conforme representado na figura 2.21, se a entrada Trg assumir o estado

    1, a sada Q passa para o estado 1. Simultaneamente iniciase a contagem do tempo

    parametrizado. Quando o tempo alcanar o valor ajustado, a sada ser redefinida, para o

    estado 0. Se, antes de esgotar o tempo especificado, a entrada Trg mudar de 1 para 0, a sada

    tambm mudar imediatamente de 1 para 0.

    Representao no LOGO!Soft Denominao da Funo Especial

    Rel de passagem

    Figura 2.21 - Representao da funo rel de passagem no LOGO!Soft

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada no ambiente QUARTUS II apresentado na figura 2.22.

    Library IEEE; USE ieee.std_logic_1164.all; Entity rel_pas IS Port( clk : in std_logic; Trg : in std_logic; saida : out std_logic); End rel_pas; Architecture funcao of rel_pas IS Begin process(Trg, clk) variable tempo : integer; Begin if (clk'EVENT and clk = '1') Then if (Trg = '1') then tempo := tempo + 1; saida

  • 35

    tempo := 0; saida = 5) then saida

  • 36

    Library IEEE; USE ieee.std_logic_1164.all; Entity ger_cic_assin IS Port( inv, en, clk : in std_logic; saida : out std_logic); End ger_cic_assin; Architecture funcao of ger_cic_assin IS Begin process(clk) variable x: std_logic; variable th, tl: integer; Begin if (clk'EVENT and clk = '1') Then if (en = '1') and (inv = '0') then x := '1'; if (th >= 10) then --tempo th parametrizado x := '0'; tl := tl +1; if (tl >= 5) then -- tempo tl parametrizado x := '1'; th := 0; end if; end if; if (x = '1') then saida = 5) then -- tempo tl parametrizado x := '0'; th := 0; end if; end if; if (x = '1') then saida

  • 37

    if (en = '0') then th := 0; tl := 0; end if; end if; end if; end if; end process; End funcao;

    Figura 2.24 Simulao do cdigo VHDL referente funo gerador de ciclos

    assncrono

    Pode-se observar que por meio do parmetro th (time high) e tl (time low) pode ser

    ajustada durao do impulso. Definiu-se como exemplo th = 10 e tl = 5 pulsos de relgio.

    Percebe-se que uma vez a entrada En ativa (nvel lgico 1) liga o gerador de impulso

    assncrono, inicializando os contadores dos parmetros th e tl, caso a entrada En esteja em

    nvel lgico 0 reinicializa o contador, que est sendo incrementado no momento. Verifica que

    a sada do gerador depende do sinal INV na entrada, que por sua vez inverte o sinal de sada

    da funo.

    2.3.7. Interruptor de Luz da Escada

    Nesta funo, conforme representado na figura 2.25, se houver uma comutao na

    entrada Trg, a sada ser colocada em nvel lgico 1. Se o estado em Trg mudar de 1 para 0,

    ento iniciase o contador e a sada fica colocada em nvel lgico 1. Se o tempo atingir o

    valor parametrizado, ento a sada reposta ao nvel lgico 0. Antes de decorrer o tempo de

    retardamento do desligamento pode ser indicado um praviso de desligamento, que repe a

    sada a 0, durante o tempo de praviso de desligamento. Se a entrada Trg for novamente

    ligada e desligada, enquanto o tempo do contador estiver sendo incrementado, ento o tempo

    reposto a zero (Retrigger).

  • 38

    Representao no LOGO!Soft Denominao da Funo Especial

    Interruptor de luz da escada

    Figura 2.25 - Representao da Interruptor de luz da escada no LOGO!Soft

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada no ambiente QUARTUS II apresentado na figura 2.26.

    Library IEEE; USE ieee.std_logic_1164.all; Entity int_luz_esc IS Port( clk, trg : in std_logic; saida : out std_logic); End int_luz_esc; Architecture funcao of int_luz_esc IS Begin process(Trg, clk) variable T: integer; variable x : std_logic; Begin if (clk'EVENT and clk = '1') Then if (Trg = '1') then x := '1'; T := 0; else T := T + 1; if (T >= 5) then --pre aviso de desligamento if (T = 10) then --tempo de parametrizacao x := '0'; end if; end if; end if; end if; if (x = '0') then saida

  • 39

    end if; end if; end process; End funcao;

    Figura 2.26 Simulao do cdigo VHDL referente funo interruptor de luz da

    escada

    Pode-se observar que quando h uma mudana de estado na entrada Trg, a sada

    colocada em nvel lgico 1, e neste momento o contador incrementado. Percebe-se que

    quando o tempo do contador atinge o valor parametrizado, que para este exemplo de 10

    pulsos de relgio a sada que possua nvel lgico 1 passa a adquirir o nvel lgico 0. No

    entanto, antes que este procedimento seja realizado um pr-aviso de desligamento pode ser

    acionado. Definiu-se o intervalo do 5 ao 7 pulso de relgio, que posiciona a sada em nvel

    lgico 0 durante este perodo. Verifica-se tambm, que quando a entrada Trg novamente

    comutada enquanto o contador est sendo incrementado, neste momento, o mesmo reposto

    ao valor zero.

    2.3.8. Interruptor Conforto

    Nesta funo, conforme representado na figura 2.27, se na entrada Trg o nvel lgico 0

    mudar para o nvel lgico 1, a sada ser colocada em nvel lgico 1. Se a sada possuir nvel

    lgico 0 e a entrada Trg mudar do nvel lgico 1 para o nvel lgico 0 antes do tempo TL,

    ento ativada a funo de luz permanente e a sada liga para permanente. Se o estado na

    entrada Trg mudar, antes do decorrer do tempo parametrizado, ento iniciado o tempo de

    retardamento do desligamento T. Se o tempo decorrido atingir o valor parametrizado, ento a

    sada reposta ao nvel 0. Antes do decorrer do tempo de retardo do desligamento pode ser

    indicado um praviso de desligamento, que repe a sada para o nvel lgico 0 durante o

    tempo de praviso de desligamento. Uma nova ligao na entrada Trg repe o tempo e o

  • 40

    mesmo procedimento realizado. Atravs da entrada reset o tempo T redefinido e repe a

    sada a zero.

    Representao no LOGO!Soft Denominao da Funo Especial

    Interruptor Conforto

    Figura 2.27 - Representao da funo interruptor conforto no LOGO!Soft

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada no ambiente QUARTUS II apresentado na figura 2.28.

    Library IEEE; USE ieee.std_logic_1164.all; Entity int_con1 IS Port( clk, reset, trg : in std_logic; saida : out std_logic); End int_con1; Architecture funcao of int_con1 IS Begin process(Trg, clk) variable T, TL: integer; variable x : std_logic; Begin if (clk'EVENT and clk = '1') Then if (reset = '1') then T := 0; x := '0'; else if (Trg = '1') then TL := TL + 1; x := '1'; T := 0; else T := T + 1; if (TL = 5) and (T = 10) then -- tempo de parametrizacao x := '0';

  • 41

    TL := 0; end if; end if; end if; if (x = '0') then saida

  • 42

    2.3.9. Contador Crescente / Decrescente

    Nesta funo, conforme representado na figura 2.29, se o valor do contador for menor

    do que o valor do tempo parametrizado, ento a sada ser 0. Se o contador for igual ou maior

    do que o tempo parametrizado, ento a sada ser 1. O sentido da contagem pode ser alterado

    atravs da entrada Dir. Se Dir = 0 o contador ser crescente, se Dir = 1 o contador ser

    decrescente. Se a entrada R (Reset) for igual a 1, a sada recebe 0 lgico e o contador zerado

    e permanece sem contar at que R seja igual a 0.

    Representao no LOGO!Soft Denominao da Funo Especial

    Contador crescente / decrescente

    Figura 2.29 - Representao da funo contador crescente / decrescente no LOGO!Soft

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada no ambiente QUARTUS II apresentado na figura 2.30.

    Library IEEE; USE ieee.std_logic_1164.all; Entity cont_up_down2 IS Port(

    reset, dir, clk : in std_logic; Q : out std_logic);

    End cont_up_down2; Architecture Contador of cont_up_down2 IS Begin process(clk) variable cont, direcao : integer; Begin if (dir = '0') then direcao := 1; else direcao := -1; end if; If ((clk'event) and (clk = '1')) then if (reset = '1') then cont := 0; else

  • 43

    cont := cont + direcao; end if; if (cont >= 5) then Q

  • 44

    Representao no LOGO!Soft Denominao da Funo Especial

    Contador de horas de servio

    Figura 2.31 - Representao da funo contador de horas de servio no LOGO!Soft

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada no ambiente QUARTUS II apresentado na figura 32.

    Library IEEE; USE ieee.std_logic_1164.all; Entity cont_horas_servico1 IS Port( clk, reset, ral, En : in std_logic; Q : out std_logic ); End cont_horas_servico1; Architecture Contador of cont_horas_servico1 IS Begin process(clk) variable Mn, Ot: integer; variable x : std_logic; Begin If ((clk'event) and (clk = '1')) then if (ral = '1') then x := '1'; Ot := 0; Mn := 0; else if (reset = '1') then x := '1'; Mn := 0; end if; if (En = '1') then Ot := Ot + 1; Mn := Mn + 1; if (Ot = 5) then -- valor parametrizado x := '0'; else x := '1'; end if;

  • 45

    end if; end if; end if; if (x = '1') then Q

  • 46

    Representao no LOGO!Soft Denominao da Funo Especial

    Rel de auto-reteno

    Figura 2.33 - Representao da funo rel de auto-reteno no LOGO!Soft

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada no ambiente QUARTUS II apresentado na figura 2.34.

    Library IEEE; USE ieee.std_logic_1164.all; Entity re_au_ret IS Port( R, S : in std_logic; Q : out std_logic ); End re_au_ret; Architecture funcao of re_au_ret IS Begin process (S, R) Begin if (S = '1') AND (R = '0') then Q

  • 47

    Constata-se que se a entrada S possuir o nvel lgico 1 a sada ser definida em nvel

    lgico 1. Se a entrada R possuir nvel lgico 1, a sada ser reposta a 0. Quando as duas

    entradas, S e R possurem ao mesmo tempo o nvel lgico 1, a sada possuir o nvel lgico 0.

    No entanto, se em ltimo caso as duas entradas S e R possurem o nvel lgico 0 na entrada, a

    sada tambm possuir o nvel lgico 0.

    2.3.12. Rel de Impulso Corrente

    No rel de impulso corrente, conforme representado na figura 2.35, se o estado na

    entrada Trg mudar de 0 para 1 e as entradas S e R forem iguais a 0, a sada muda o seu estado,

    ou seja, a sada ligada ou desligada. A entrada Trg no influencia esta funo quando S = 1

    ou R = 1. Atravs da entrada S, a sada colocada em 1. Atravs da entrada R a sada

    colocada a 0. Se tanto R quanto S possurem nveis lgicos equivalentes a 1, este bloco de

    funo permite, que o mesmo seja parametrizado definindo-se prioridades, a entrada R tem

    prioridade em relao entrada S, colocando a sada em nvel lgico 0 ou a entrada S tem

    prioridade em relao entrada R, colocando a sada em nvel lgico 1.

    Representao no LOGO!Soft Denominao da Funo Especial

    Rel de impulso corrente

    Figura 2.35 - Representao da funo rel de impulso de corrente no LOGO!Soft

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada no ambiente QUARTUS II apresentado na figura 2.36.

    Library IEEE; USE ieee.std_logic_1164.all; Entity re_im_cor IS PORT( S, R, Trg : in std_logic; par : in std_logic; Q : out std_logic); End re_im_cor; Architecture funcao of re_im_cor IS

  • 48

    BEGIN process (Trg, S, R) variable vs, vr : std_logic; variable x : std_logic := '0'; BEGIN if (R = '1') and (S = '1') then if (par = '0') then vr := '1'; vs := '0'; end if; if (par = '1') then vr := '0'; vs := '1'; end if; end if; if (R = '1') and (S = '0') then vr := '1'; vs := '0'; end if; if (R = '0') and (S = '1') then vr := '0'; vs := '1'; end if; if (R = '0') and (S = '0') then vr := '0'; vs := '0'; end if; if (vr = '1') then x := '0'; elsif (vs = '1') then x := '1'; elsif (Trg'event and Trg = '1') then x := not (x); end if; Q

  • 49

    Na simulao apresentada percebe-se, que a cada mudana na entrada Trg e quando

    ambas as entradas S e R possuem nveis lgicos igual a 0, a sada alterna seus impulsos entre

    nveis lgicos 0 e 1. A entrada S (set) quando possui nvel lgico 1 coloca a sada em nvel

    lgico 1, enquanto que a entrada R (reset) repe a sada em nvel lgico 0. Nota-se que

    quando ambas as entradas S e R possuem nveis lgicos equivalentes a 1, este bloco de funo

    analisa a entrada par, cuja funo a de definir qual ser a prioridade no momento. Se a

    entrada par neste instante possuir nvel lgico 0, a entrada R tem prioridade em relao

    entrada S, colocando a sada em nvel lgico 0, caso a entrada par neste instante possuir o

    nvel lgico 1, a entrada S tem prioridade em relao entrada R, colocando a sada em nvel

    lgico 1.

    2.3.13. Softkey

    Esta funo, conforme representado na figura 2.37, funciona de forma similar a um

    boto ou interruptor mecnico. Se a entrada En (Enable) for colocada em 1 e o parmetro

    Switch estiver ligado para a posio On (1 lgico), a sada ligase. A sada colocada em

    nvel lgico 0 se o estado na entrada En mudar de 1 para 0 ou se o parmetro Switch tiver

    sido comutado para a posio Off, ou seja se estiver em nvel lgico 0.

    Representao no LOGO!Soft Denominao da Funo Especial

    Softkey

    Figura 2.37 - Representao da funo softkey no LOGO!Soft

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada no ambiente QUARTUS II apresentado na figura 2.38.

    Library IEEE; USE ieee.std_logic_1164.all; Entity softkey IS Port( En, Switch : in std_logic; Q : out std_logic );

  • 50

    End softkey; Architecture funcao of softkey IS BEGIN process (En, Switch) BEGIN if (En = '1' and Switch = '1') then Q

  • 51

    Representao no LOGO!Soft Denominao da Funo Especial

    Registrador de deslocamento

    Figura 2.39 - Representao da funo registrador de deslocamento no LOGO!Soft

    O cdigo VHDL implementado para esta funo apresentado a seguir e o resultado

    da simulao executada no ambiente QUARTUS II apresentado na figura 2.40.

    Library IEEE; USE ieee.std_logic_1164.all; Entity reg_desloc IS Port( Trg : in std_logic; dir: in std_logic; sel: in integer range 1 to 8; inn : in std_logic; Q : out std_logic); End reg_desloc; Architecture Contador of reg_desloc IS Signal S1, S2, S3, S4, S5, S6, S7, S8 : std_logic := '0'; Begin process(Trg, inn, dir) variable VQ1, VQ2, VQ3, VQ4, VQ5, VQ6, VQ7, VQ8 : bit; Begin case dir is when '0' => VQ8 := inn; VQ7 := S8; VQ6 := S7; VQ5 := S6; VQ4 := S5; VQ3 := S4; VQ2 := S3; VQ1 := S2; when '1' => VQ8 := S7; VQ7 := S6; VQ6 := S5; VQ5 := S4; VQ4 := S3; VQ3 := S2;

  • 52

    VQ2 := S1; VQ1 := inn;

    end case; if (Trg'event and Trg = '1') then S1

  • 53

    Figura 2.41 Simulao do cdigo VHDL referente funo registrador de

    deslocamento

    Este captulo apresentou-se como as funes bsicas e as funes especiais disponveis

    no LOGO!Soft foram modeladas atravs da linguagem VHDL. Apresenta-se no prximo

    captulo o programa tradutor de LOGO!Soft para VHDL, denominado LOGO2VHDL.

  • 54

    Captulo 3

    Tradutor LOGO2VHDL

    3.1. Introduo

    O software desenvolvido em ambiente Delphi foi denominado de LOGO2VHDL.

    Esta ferramenta possibilita traduzir sistemas de controle utilizando, como referncia

    expresses booleanas bsicas e especiais oferecidas pelo LOGO!Soft, em modelos descritos

    na linguagem VHDL.

    No desenvolvimento do LOGO2VHDL preocupou-se em cumprir basicamente quatro

    etapas: descrever em VHDL as funes oferecidas no LOGO!Soft; implementar no Delphi um

    ambiente com as funes programadas; inter-relacionar essas funes de acordo com as

    exigncias e necessidades do usurio, descrever um sistema de controle em sintaxe VHDL

    completo com todas as declaraes e bibliotecas necessrias.

    Na primeira etapa foi necessrio estudar a linguagem de descrio VHDL, as funes

    de automao do LOGO!Soft, e assim descrever de forma textual em linguagem de descrio

    de hardware cada uma das funes de forma independente.

    A segunda etapa teve como objetivo realizar uma interface grfica, que pudesse

    realizar modelos, utilizando as funes bsicas e especiais estudadas no software LOGO!Soft.

    Na terceira etapa realizou-se o relacionamento entre as funes, tento em vista, que

    para se automatizar um sistema de controle faz-se necessrias vrias funes de

    parametrizao, contadores e temporizadores. Desta forma, houve a necessidade de se criar a

    possibilidade de relacionar uma funo a qualquer outra, de acordo com as especificidades do

    sistema de controle a ser desenvolvido e conseqentemente realizar testes a fim de verificar

    possveis erros.

    A quarta etapa refere-se ao ltimo passo executado dentro do software conversor. Ele

    tem como funo enviar para a caixa de texto do formulrio principal, o cdigo produzido

    para uma sintaxe formatada, em uma descrio VHDL, com todas as suas declaraes

    realizadas, bibliotecas e demais estruturas necessrias para execuo e compilao no

    ambiente QUARTUS II da Altera.

    O esquema da figura 3.1, ilustra o diagrama de fluxo do LOGO2VHDL no qual o

    formulrio principal responsvel em exibir as funes contidas no programa. O formulrio

  • 55

    de definio de parmetros tem como funo exibir os parmetros de entrada e sada que

    sero selecionados para cada funo programada. Quando todas as funes so

    implementadas, o formulrio principal exibido novamente com o cdigo VHDL final para

    simulao.

    Figura 3.1 Fluxograma do sistema LOGO2VHDL

    Para o desenvolvimento do software conversor, foi necessrio criar dois formulrios

    no Delphi, um para apresentao das funes e outro para definio dos parmetros a ser

    inseridos pelo usurio.

    A figura 3.2 apresenta o formulrio principal.

    Figura 3.2 - Ilustrao do formulrio principal do LOGO2VHDL

    Formulrio de

    Definio de

    parmetros

    Formulrio

    principal do

    LOGO2VHDL

    Formulrio

    principal do

    LOGO2VHDL

    com o cdigo

    VHDL gerado

  • 56

    O formulrio principal composto por uma barra de menus e de ferramentas

    construdos para apresentao, edio e demais funes necessrias para se trabalhar com

    edio de texto, no caso a sintaxe descritiva VHDL.

    Foram construdos os seguintes menus com suas respectivas funes conforme

    descrito a seguir:

    Menu Arquivo

    Novo Limpa a caixa de texto;

    Abrir Abre um arquivo j salvo;

    Fechar Fecha o programa em execuo;

    Salvar Salva o arquivo, se for a primeira vez especifica o diretrio;

    Salvar Como Especifica o diretrio que ir salvar o arquivo;

    Sair Sai do programa em execuo.

    Menu Editar

    Recortar Recorta um texto selecionado;

    Copiar Copia um texto selecionado;

    Colar Cola um texto selecionado.

    Menu Ajuda

    Sobre Exibe informaes sobre o programa.

    Foram desenhados os smbolos de cada uma das funes, pois preocupou-se, em

    apresentar estes smbolos conforme so oferecidas no LOGO!Soft, para que o projetista tenha

    uma semelhana no desenvolvimento do seu projeto.

    Do lado esquerdo do formulrio principal foram construdas as listas de funes

    bsicas e funes especiais, que sero utilizadas, no processo de descrio dos sistemas a

    serem realizados e a parte central, contm uma caixa de texto, onde apresentado o modelo

    VHDL correspondente a cada funo.

    Na figura 3.3 apresenta-se o formulrio, para a especificao dos parmetros de

    entrada e sada, assim como as conexes.

  • 57

    Figura 3.3 - Ilustrao do formulrio de definio de Parmetros do LOGO2VHDL

    Este formulrio chamado quando uma funo bsica ou especial acionada atravs

    de uma seleo, com o boto do mouse. Sua funo de descrever os parmetros de entrada e

    sada referente funo que est em uso no momento. Aps realizar a descrio, o cdigo, j

    em sintaxe VHDL, enviado para uma caixa de texto (Funes Definidas) e armazenado.

    Neste formulrio, foram criados alguns componentes necessrios, para a definio dos

    parmetros de entrada e sada e botes, para a manipulao dos cdigos VHDL gerados.

    Neste layout so oferecidos 24 componentes, para o usurio definir as entradas da

    funo, 16 para definio de parmetros de sada e 50 para definio dos sinais

    intermedirios. Define-se como sinal intermedirio, o elo de ligao entre a sada de uma

    funo e a entrada de outra, ou seja, se a sada de uma funo AND a entrada de uma funo

    OR, por exemplo, define-se esta ligao como sendo um Sinal Intermedirio.

    Estabeleceu-se 24 possibilidades, para as entradas e 16 para as sadas, devido ao fato

    de que o Controlador Lgico Programvel LOGO possui exatamente essa limitao fsica de

    parmetros de entradas e sadas, porm a quantidade de sinais internos torna-se varivel de

    acordo, com a estrutura do programa a ser desenvolvido. Diante deste fato, criou-se 50 sinais

    intermedirios, inseridos dentro de um componente, que contm uma barra de rolagem,

    oferecendo ao projetista a possibilidade de utilizar, uma grande quantidade de sinais, para o

    sistema e ao mesmo tempo oferecer um formulrio de tamanho reduzido.

    Neste formulrio existem tambm dois painis. Um painel ilustra a funo, que foi

    acionada, para a definio dos parmetros e o outro mostra a funo bsica, que ser descrita.

  • 58

    Aps a descrio das funes, as mesmas so enviadas, para um componente de texto, que

    posteriormente ir gerar o cdigo VHDL completo desta estrutura.

    Existe no formulrio de definio dos parmetros, cinco botes cujas funes so

    descritas a seguir:

    Limpar Parmetros Este boto desabilita os componentes marcados nos

    parmetros de entrada e sada e limpa tambm a expresso exibida no painel de Parmetros;

    Descrever Funo Uma vez definidas corretamente as entradas e sadas da

    funo, este boto, quando acionado envia a informao contida no painel de Parmetros para

    a caixa de texto que se encontra em uma janela denominada Funes Definidas;

    Nova Funo Caso uma funo esteja relacionada a outra, este boto uma

    vez acionado, oferece a possibilidade de se programar uma nova funo e relacion-la com a

    anterior;

    Limpar Funes O boto Limpar Funes tem como objetivo limpar

    todos os cdigos descritos na caixa de texto referente s funes definidas;

    Gerar VHDL Este boto refere-se ao ltimo passo a ser executado. Uma vez

    acionado, a funo ser descrita em VHDL com toda a estrutura necessria para a simulao e

    sntese visando a implementao em dispositivo lgico programvel.

    Alm destes botes existe uma outra funo neste formulrio que inverte um

    parmetro de entrada. Trata-se da funo NOT, que funciona como inversor de uma entrada a

    medida que um componente (I ou S) selecionado e habilitado na cor vermelha do formulrio

    de definio de parmetros.

    3.2. Excees Tratadas

    Foi necessrio tratar algumas situaes especiais, tendo em vista, que o software

    LOGO2VHDL, se relaciona com dois outros ambientes, o LOGO!Soft e o QUARTUS II da

    Altera. De acordo com o LOGO!Soft cada funo bsica, com exceo do XOR, tem que

    possuir no mnimo uma entrada e no mximo quatro. Desta forma, as seguintes situaes

    foram tratadas:

    Se um sinal intermedirio marcado como sada da funo, as sadas (Q) sero

    desabilitadas, tendo em vista que cada funo pode ter somente uma sada;

    No possvel descrever uma funo bsica ou especial sem ser definida uma sada.

    Quando esta situao ocorre a mensagem apresentada na figura 3.4 gerada;

  • 59

    Figura 3.4 Mensagem para definio de parmetro de sada

    No possvel descrever uma funo bsica com somente uma entrada. Quando isso

    ocorre aparecer uma mensagem conforme apresentado na figura 3.5.

    Figura 3.5 Mensagem para definio de parmetro de entrada

    No possvel definir mais de quatro parmetros de entrada para uma funo bsica.

    Quando isso ocorre aparecer a mensagem da figura 3.6 e o componente no

    habilitado.

    Figura 3.6 Mensagem para excesso de parmetros de entrada

    Para a funo XOR no possvel selecionar somente um parmetro de entrada. Caso

    o usurio tente descrever a funo com somente uma entrada, aparecer a mensagem

    da figura 3.5. No entanto, s possvel marcar duas entradas. Caso o usurio tente

    marcar trs ou mais, aparecer a mensagem conforme ilustrado na figura 3.6.

    Existem funes especiais que possuem limites para insero de parmetros de

    entrada, ou seja, h funes especiais que possuem uma, duas ou at trs entradas.

    Tendo em vista estas diferenas, foi realizado o tratamento individual para cada uma

  • 60

    das funes especiais, estabelecendo o limite de entradas de acordo com a

    caracterstica de cada uma delas.

    Os exemplos apresentados a seguir foram importantes para realizar basicamente trs

    etapas: relacionar uma funo bsica outra, realizar o elo de ligao entre todas as funes

    bsicas e relacionar funes bsicas e especiais conjuntamente.

    3.3. Exemplos

    Para ilustrar o uso do LOGO2VHDL alguns testes foram realizados e so apresentados

    a seguir. Alguns circuitos simples foram implementados, com o objetivo de testar o

    funcionamento do programa tradutor e as funes mais complexas, mostram as

    potencialidades do programa, com o intuito de posteriormente tratar sistemas de controle de

    uso prtico.

    3.3.1. Exemplo 01

    O circuito apresentado na figura 3.7 um circuito contendo trs entradas I1, I2, e I3 e

    uma sada Q1. O Circuito implementa a funo Q1 = (I1 . I2) + I3.

    Figura 3.7 Circuito implementando a funo Q1 = (I1 . I2) + I3

    Uma vez programadas todas as funes bsicas de forma independente, necessrio

    relacionar uma funo outra, justamente para realizar o tratamento dos sinais internos. Este

    exemplo ilustra uma funo AND relacionada a uma funo OR.

  • 61

    Percebe-se atravs da figura 3.8 que so geradas suas linhas de cdigos para a

    estrutura da figura 3.7. Desta maneira, a prxima etapa gerar o cdigo VHDL completo para

    este circuito.

    Figura 3.8 Linhas de cdigo definidas para a funo Q1 = (I1 . I2) + I3

    A figura 3.9 apresenta o cdigo VHDL, com todas as declaraes realizadas,

    bibliotecas e demais estruturas necessrias em sintaxe VHDL, para compilao do programa

    no QUARTUS II, conforme observa-se na figura 3.10, e posterior implementao em FPGA.

    Figura 3.9 Cdigo VHDL completo para a funo Q1 = (I1 . I2) + I3

  • 62

    A figura 3.10 mostra que a simulao do circuito obtido atravs da sintaxe VDHL

    gerada pelo LOGO2VHDL descreve corretamente a funo Q1 = (I1 . I2) + I3.

    Figura 3.10 Simulao do Cdigo VHDL para a funo Q1 = (I1 . I2) + I3

    3.3.2. Exemplo 02

    O circuito apresentado na figura 3.11, trata-se de um circuito mais complexo, com

    vrios sinais de entrada e utilizando-se de mais portas lgicas (AND, OR, NAND e NOR,

    NOT e XOR). Este exemplo teve como objetivo integrar uma maior quantidade de funes

    bsicas.

    Figura 3.11 Circuito implementando a funo Q1 = (I7 or ((I1 and not (I2)) or (not(I1)

    and I2)) and ((not I3) and I4) and ((I5 or (not I6))))

  • 63

    Na figura 3.12 so geradas as linhas de cdigos para a estrutura da figura 3.11. Aps

    esta etapa, ser gerado o cdigo VHDL completo para o circuito.

    Figura 3.12 Linhas de cdigo definidas para a funo Q1 = (I7 or ((I1 and not (I2)) or

    (not(I1) and I2)) and ((not I3) and I4) and ((I5 or (not I6))))

    A figura 3.13 apresenta o cdigo VHDL com todas as declaraes realizadas,

    bibliotecas e demais estruturas necessrias em sintaxe VHDL para compilao do programa

    no QUARTUS II como observa-se na figura 3.14.

    Figura 3.13 Cdigo VHDL completo para a funo Q1 = (I7 or ((I1 and not (I2)) or

    (not(I1) and I2)) and ((not I3) and I4) and ((I5 or (not I6))))

  • 64

    A figura 3.14 mostra que a simulao do circuito obtido atravs da sintaxe VDHL

    gerada pelo LOGO2VHDL descreve corretamente a funo Q1 = (I7 or ((I1 and not (I2)) or

    (not(I1) and I2)) and ((not I3) and I4) and ((I5 or (not I6)))).

    Figura 3.14 Simulao do Cdigo VHDL para a funo Q1 = (I7 or ((I1 and not (I2))

    or (not(I1) and I2)) and ((not I3) and I4) and ((I5 or (not I6))))

    3.3.3. Exemplo 03

    Uma vez concludo os testes realizados nas funes bsicas, realizou-se testes das

    funes especiais. Esta primeira implementao, conforme ilustrado na figura 3.15 foi

    importante tendo em vista, que as funes especiais devem se relacionar, com as funes

    bsicas.

    Figura 3.15 Esquemtico de uma funo especial (Retardamento de Ligao)

    relacionada a duas funes bsicas (And e Or)

  • 65

    Observa-se atravs da figura 3.16 que so geradas as linhas de cdigos para a estrutura

    da figura 3.15. Neste exemplo, verifica-se que foi descritos a funo And, a funo retardo de

    ligao e posteriormente a funo Or. A prxima etapa gerar o cdigo VHDL completo para

    esta estrutura.

    Figura 3.16 Linhas de cdigo definidas para o esquemtico de uma funo especial

    (Retardamento de Ligao) relacionada a duas funes bsicas (And e Or)

    A figura 3.17 mostra a ltima etapa realizada, o cdigo VHDL final com todas as

    declaraes realizadas, bibliotecas e demais estruturas necessrias em sintaxe VHDL. E a

    figura 3.18 a compilao do programa no QUARTUS II.

    Figura 3.17 Cdigo VHDL completo para o esquemtico de uma funo especial

    (Retardamento de Ligao) relacionada a duas funes bsicas (And e Or)

  • 66

    A figura 3.18 mostra que a simulao do circuito obtido atravs da sintaxe VDHL

    gerada pelo LOGO2VHDL descreve corretamente a funo especial Retardamento de Ligao

    relacionada a duas funes bsicas And e Or.

    Figura 3.18 Simulao do Cdigo VHDL ilustrando o funcionamento de uma funo

    especial (Retardamento de Ligao) relacionada a duas funes bsicas (And e Or)

    No exemplo pode-se verificar que o retardo de ligao ativado, quando as duas

    entradas I1 e I2 possurem o nvel lgico 1, desta forma, o contador inicializa o processo de

    contagem e finaliza quando o tempo parametrizado atingido, que para este exemplo de 10

    pulsos de relgio. Quando o contador atingir o valor parametrizado, a sada que possua o

    nvel lgico 0 passar a assumir o nvel lgico 1.

    Apresenta-se no prximo captulo, alguns estudos de casos extrados da literatura, cujo

    objetivo avaliar o sistema desenvolvido em controle de plantas reais.

  • 67

    Captulo 4

    Estudo de casos

    4.1. Introduo

    Aps a realizao de vrios testes, conforme ilustrao dos exemplos citados no

    captulo anterior, a ferramenta desenvolvida denominada LOGO2VHDL foi avaliada atravs

    de sistemas de controle descritos na literatura. Os exemplos foram extrados dos catlogos do

    fabricante de CLP Siemens.

    4.2. Porta Automtica

    O sistema apresentado na figura 4.1 possui quatro entradas denominadas de I1, I2, I3 e

    I4. As entradas I1 e I2 funcionam como detectores de movimento de pessoas nos dois lados

    da porta, interno e externo, respectivamente, que so acionados no circuito atravs de

    sensores. As entradas I3 e I4 so interruptores limites (fim de curso) para porta fechada e

    aberta respectivamente, trata-se de entradas que indicam as condies favorveis ao sistema

    para a porta ser aberta e tambm ser fechada.

    O circuito possui duas sadas Q1 e Q2, onde Q1 ativo, indica que a porta se encontra

    aberta e Q2 ativo indica que a porta se encontra fechada.

  • 68

    Figura 4.1 - Ilustrao de uma porta automatizada

    Percebe-se que para o funcionamento da porta automatizada, necessrio que pelo

    menos um dos dois sensores (I1 e I2) detecte a passagem de uma pessoa, ou seja, pelo menos

    uma das duas entradas devem estar ativadas. necessrio tambm, que os interruptores para o

    funcionamento da porta na condio abrir e fechar estejam devidamente acionados (I3 e

    I4 habilitados).

    Este exemplo possui um parmetro de tempo, para o funcionamento da porta. A

    medida que um indivduo identificado, a porta se abre e permanece aberta durante um

    perodo de tempo pr-definido. Estabeleceu-se uma parametrizao de 10 pulsos de relgio

    para a permanncia da porta aberta.

    A figura 4.2, ilustra a simulao deste sistema de controle no software LOGO!Soft

    Comfort da Siemens onde o intervalo do circuito em cor vermelha indica a passagem de

    corrente.

  • 69

    Figura 4.2 Simulao da porta automtica no LOGO!Soft Comfort

    Pode-se notar atravs dos sensores representados pelas entradas I3 e I4 que a porta

    est em condies de ser acionada (nvel lgico 1). Na ilustrao a entrada I2 foi acionada e

    desligada novamente inicializando o sistema. Neste momento, verifica-se que a sada Q1 se

    encontra ativa, informando que a porta se encontra aberta. Verifica-se tambm que o contador

    est sendo incrementado. No momento que este contador atingir o valor parametrizado, que

    de 10 pulsos de relgio, a sada Q1 desabilitada e a sada Q2 adquire o nvel lgico 1

    indicando que a porta se en