Apostilha LOGO Ex Irrigação Avançado
description
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