Você está na página 1de 86

Campus de Ilha Solteira

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

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 LIGAO 28
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 (FieldProgramable 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 <= (I1 AND I2 AND I3 AND I4);
END porta;

Figura 2.2 Simulao do cdigo VHDL referente funo AND


Percebe-se que a sada somente possui nvel lgico 1 quando todas as entradas
tambm possurem nvel lgico 1. Verifica-se tambm, que gerado um pequeno sinal de
atraso na sada do circuito, estes sinais de atrasos so inerentes tecnologia utilizada, mas que
no entanto, no interferem no real funcionamento da funo.

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

1
0
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 <= not I1 ;
END porta;

Figura 2.4 Simulao do cdigo VHDL referente funo NOT


Percebe-se que a sada somente possui nvel lgico 1 quando a entrada possuir nvel
lgico 0 e vice-versa.

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.

Tabela Verdade

Representao no LOGO!

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

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 <= not(I1 AND I2 AND I3 AND I4);
END porta;

Figura 2.6 Simulao do cdigo VHDL referente funo NAND


Percebe-se que a sada somente possui nvel lgico 0 quando todas as entradas
possurem nvel lgico 1.

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 <= (I1 OR I2 OR I3 OR I4);
END porta;

Figura 2.8 Simulao do cdigo VHDL referente funo OR


Observa-se que a sada possui nvel lgico 1 quando pelo menos uma das entradas
possurem nvel lgico 1.

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.
Tabela Verdade

Representao no LOGO!

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

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 <= not(I1 OR I2 OR I3 OR I4);
END porta;

Figura 2.10 Simulao do cdigo VHDL referente funo NOR


Constata-se que a sada somente possui nvel lgico 1 quando todas as entradas
possurem nvel lgico 0.

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 A.B + A.B 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 <= (I1 and not(I2)) or (not(I1) and I2);
END porta;

Figura 2.12 Simulao do cdigo VHDL referente funo XOR

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 <= '1';
else
saida <= '0';
end if;
end if;
end process;
End funcao;

Figura 2.14 Simulao do cdigo VHDL referente funo retardamento de ligao


Constata-se que quando o Trg transita para o nvel lgico 1, comea a decorrer o
tempo parametrizado, que no caso de 5 pulsos de relgio. Quando o contador atingir o valor
parametrizado, a sada assume e permanece em nvel lgico 1, enquanto o sinal em Trg
permanecer em nvel lgico 1. No trmino da contagem a sada possua nvel lgico 0, assume
o nvel lgico 1. Se o estado na entrada Trg mudar novamente para 0 o tempo parametrizado
reposto. A sada ser definida novamente, em nvel lgico 0, quando houver o estado 0 na
entrada Trg.

2.3.2. Retardamento do Desligamento


Neste bloco, conforme representado na figura 2.15, se a entrada Trg mudar para o
estado 1, a sada tambm mudar imediatamente para o estado 1. Se o estado em Trg mudar
de 1 para 0, ento inicia a contagem do tempo parametrizado. Quando o tempo parametrizado
for alcanado, a sada ser redefinida para o estado 0 (retardo do desligamento). Toda vez que
a entrada Trg ligar e desligar, ser reiniciado a contagem do tempo. Atravs da entrada R
(reset) possvel colocar o tempo e a sada na posio inicial, antes mesmo, que a contagem
do parmetro tenha se esgotado.

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 <= '0';
else
if (Trg = '1') then
saida <= '1';
tempo := 0;
else
tempo := tempo + 1;
if (tempo = 5) then
saida <= '0';
end if;
end if;
end if;
end if;
end process;
End funcao;

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 <= '1';
end if;
if (tempol = 5) then
saida <= '0';
end if;
end if;
end process;
End funcao;

Figura 2.18 Simulao do Cdigo VHDL referente funo retardamento de lig. /


deslig.

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 <= '0';
tempo := 0;
end if;
if (trg = '1') then
aux <= '1';
end if;
if (aux = '1') then
tempo := tempo + 1;
if (tempo >= 10) then
saida <= '1';
aux <= '0';
else
saida <= '0';
end if;
end if;
end if;
end process;
End funcao;

Figura 2.20 Simulao do Cdigo VHDL referente funo retardamento de ligao a


ser memorizado
Observa-se que se a entrada Trg muda seu estado, automaticamente, o contador
incrementado at atingir o seu valor parametrizado, que para este caso de 10 pulsos de
relgio. Neste momento a sada que possua nvel lgico 0 passa a adquirir o nvel lgico 1.
Percebe-se tambm, na simulao, que uma outra comutao seguinte a entrada Trg, no
influencia no tempo que est sendo contado. A entrada reset por sua vez tem como funo

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 <= '1';
else

35
tempo := 0;
saida <= '0';
end if;
if (tempo >= 5) then
saida <= '0';
end if;
end if;
end process;
End funcao;

Figura 2.22 Simulao do cdigo VHDL referente funo rel de passagem


Observa-se que se a entrada Trg assumir o estado 1, a sada passa para o nvel lgico
1. Simultaneamente iniciase a contagem do tempo parametrizado, que no exemplo de 5
pulsos de relgio. Quando o tempo for alcanado, a sada ser redefinida para o estado 0.

2.3.6. Gerador de Ciclos Assncrono


Nesta funo, conforme representado na figura 2.23, existem dois parmetros de
entrada que medem um intervalo programado de forma cclica, TH (Time High) e TL (Time
Low). A entrada INV um parmetro, que permite a inverso da sada, se uma outra entrada
denominada EN, que funciona como uma chave, estiver ativada.
Representao no LOGO!Soft

Denominao da Funo Especial

Q
Gerador de ciclos Assncrono

Figura 2.23 - Representao da funo gerador de ciclos assncrono 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.24.

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
x := '0';
tl := tl +1;
if (tl >= 5) then
x := '1';
th := 0;
end if;
end if;
if (x = '1') then
saida <= '1';
th := th + 1;
tl := 0;
else
saida <= '0';
end if;
ELSE
if (en = '1') and (inv = '1') then
x := '0';
if (th >= 10) then
x := '1';
tl := tl +1;
if (tl >= 5) then
x := '0';
th := 0;
end if;
end if;
if (x = '1') then
saida <= '1';
else
saida <= '0';
th := th + 1;
tl := 0;
end if;
else

--tempo th parametrizado

-- tempo tl parametrizado

--tempo th parametrizado

-- tempo tl parametrizado

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

Q
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 <= 7) then
--tempo do desligamento
x := '0';
else
x := '1';
if (T >= 10) then
--tempo de parametrizacao
x := '0';
end if;
end if;
end if;
end if;
if (x = '0') then
saida <= '0';
else
saida <= '1';

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 <= 4) then
-- tempo para ativar a luz permanente
if (T >= 5) and (T <= 7) then -- pr-aviso de desligamento
x := '0';
-- e tempo do desligamento
else
x := '1';
if (T >= 10) then
-- tempo de parametrizacao
x := '0';

41
TL := 0;
end if;
end if;
end if;
if (x = '0') then
saida <= '0';
else
saida <= '1';
end if;
end if;
end if;
end if;
end process;
End funcao;

Figura 2.28 Simulao do cdigo VHDL referente funo interruptor conforto


Na simulao pode-se observar que quando a entrada Trg muda do nvel lgico 0 para
o nvel lgico 1, a sada passa a adquirir o nvel lgico 1 e o contador TL incrementado. Este
contador tem como funo predefinir o tempo de durao mximo, para ativar a funo de luz
permanente. Neste mesmo instante se a entrada Trg mudar novamente de estado para o nvel
lgico 0 antes do valor parametrizado em TL, que para este caso de 4 pulsos de relgio
ento ativada a funo de luz permanente, ou seja, a sada liga para permanente (nvel lgico
1) durante o perodo T parametrizado, que para este caso de 10 pulsos de relgio. Quando o
contador T atinge o tempo pr-definido, a sada que possua nvel lgico 1 passa a adquirir o
nvel lgico 0. Verifica-se tambm, que antes do decorrer do tempo parametrizado, um
indicativo de praviso de desligamento, pode ser realizado, que repe a sada a nvel lgico 0
durante este praviso de desligamento, intervalo pr-definido compreendido entre o 5 ao 7
pulso do relgio. Uma nova ligao na entrada Trg repe o tempo e realiza o processo
novamente. Percebe-se que quando a entrada Trg permanece em nvel lgico 1 em tempo
maior do que o valor parametrizado no contador TL a sada permanece em nvel lgico 1. Um
ltimo caso pode ser observado, onde a entrada reset coloca a sada, em nvel lgico 0 e
reinicializa o contador T.

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 <= '1';
else
Q <= '0';
end if;
end if;
End process;
End Contador;

Figura 2.30 Simulao do cdigo VHDL referente funo contador crescente /


decrescente
Constata-se, que enquanto a contagem for menor que o tempo parametrizado (5 pulsos
de relgio), ento a sada Q possui nvel lgico 0, quando o contador for igual ou maior do
que o tempo parametrizado, ento a sada possuir nvel lgico 1. Percebe-se tambm, que 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. Em ltimo caso, quando o Reset ativo
(nvel lgico 1), a sada recebe o nvel lgico 0 e o contador zerado.

2.3.10. Contador de Horas de Servio


Nesta funo, conforme representado na figura 2.31, o contador das horas de servio
monitora a entrada En. Se a entrada En possuir nvel lgico 1, um contador Mn que
inicialmente parametrizado inicializado. Se o tempo do contador Mn atingir o valor
parametrizado, a sada que possua o nvel lgico 0 passa a adquirir o nvel lgico 1. Neste
bloco de funo existe um outro contador denominado Ot que inicialmente recebe o valor
zero, sendo incrementado, enquanto a entrada En possuir o nvel lgico 1. A entrada reset
repe a sada para o nvel lgico 0 e reinicializa o contador Mn. A entrada Ral por sua vez
repe os dois contadores Ot e Mn e tambm a sada para o nvel lgico 0.

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 <= 99999) then --valor limite p/o cont. de horas de servio
if (Mn >= 5) then -- valor parametrizado
x := '0';
else
x := '1';
end if;

45
end if;
end if;
end if;
if (x = '1') then
Q <= '0';
else
Q <= '1';
end if;
end if;
End process;
End Contador;

Figura 2.32 Simulao do cdigo VHDL referente funo contador de horas de


servio
Atravs da simulao pode-se verificar, que quando a entrada En possuir nvel lgico
1, o contador Mn inicializado. Percebe-se que quando o tempo do contador Mn atingir o
valor parametrizado, que neste caso de 5 pulsos do relgio, a sada que possua o nvel
lgico 0 passa a adquirir o nvel lgico 1. Verifica-se ainda, que existe um outro contador
denominado Ot que inicialmente recebe o valor zero e incrementado enquanto a entrada En
possuir o nvel lgico 1. Esta entrada tem como funo realizar a contagem do tempo de
servio total decorrido no sistema. Observa-se que a entrada Ral repe os dois contadores Ot e
Mn e tambm a sada para o nvel lgico 0. Finalmente a entrada reset repe a sada para o
nvel lgico 0 e reinicializa somente o contador Mn. Um novo processo se inicia caso a
entrada En continue em nvel lgico 1.

2.3.11. Rel de Auto-Reteno


Nesta funo, conforme representado na figura 2.33, a sada ser definida em nvel
lgico 1, quando a entrada S (Set) tambm possuir nvel lgico 1. Quando a outra entrada R
(Reset) possuir nvel lgico 1, a sada ser reposta em nvel lgico 0. Se S e R possurem ao
mesmo tempo o nvel lgico 1, dse a prioridade para o R, ou seja a sada ser 0.

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 <= '1';
elsif (S = '0') AND (R = '1') then
Q <= '0';
else
Q <= '0';
end if;
end process;
end funcao;

Figura 2.34 Simulao do cdigo VHDL referente funo rel de auto-reteno

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 <= x;
END process;
END funcao;

Figura 2.36 Simulao do cdigo VHDL referente funo rel de impulso corrente

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 <= '1';
elsif (En = '0' or Switch = '1') then
Q <= '0';
else
Q <= '0';
end if;
End process;
End funcao;

Figura 2.38 Simulao do cdigo VHDL referente funo softkey


Observa-se que se a entrada En for colocada em 1 e o parmetro Switch estiver ligado
(nvel lgico 1), a sada ligada (possuir nvel lgico 1). Percebe-se que 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 (nvel lgico 0).

2.3.14. Registrador de Deslocamento


Esta funo, conforme representado na figura 2.39, na mudana do nvel lgico de 0
para 1 na entrada Trg, l a funo do valor da entrada In. Em funo do sentido de
deslocamento este valor aceito no bit do registrador de deslocamento S1 ou S8. O
registrador possui dois tipos de deslocamento: Deslocamento ascendente: S1 assume o valor
da entrada In; o valor anterior de S1 deslocado para S2; o valor anterior de S2 deslocado
para S3; etc. Deslocamento descendente: S8 assume o valor da entrada In; o valor anterior de
S8 deslocado para S7; o valor anterior de S7 deslocado para S6 e assim por diante. A sada
indica o valor do bit do registrador de deslocamento parametrizado.

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 <= VQ1;
S2 <= VQ2;
S3 <= VQ3;
S4 <= VQ4;
S5 <= VQ5;
S6 <= VQ6;
S7 <= VQ7;
S8 <= VQ8;
end if;
End process;
With sel select
Q <= S1 when 1,
S2 when 2,
S3 when 3,
S4 when 4,
S5 when 5,
S6 when 6,
S7 when 7,
S8 when 8;
End Contador;

Figura 2.40 Simulao do cdigo VHDL referente funo registrador de


deslocamento
Observa-se que quando a entrada dir possui nvel lgico 1 o deslocamento
ascendente e a sada possui nvel lgico 1 quando atinge o valor do bit do registrador de
deslocamento parametrizado (sel =

4). Quando a entrada dir possuir nvel lgico 0 o

deslocamento descendente e a sada possui nvel lgico 1, quando atinge o valor do bit do
registrador de deslocamento parametrizado (sel =
funcionamento pode ser observada na figura 2.41.

4). Uma melhor visualizao deste

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.
Formulrio de
Definio de
parmetros

Formulrio
principal do
LOGO2VHDL
Formulrio
principal do
LOGO2VHDL
com o cdigo
VHDL gerado

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

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 encontra fechada.
Esta mesma estrutura foi gerada em VHDL, podendo-se observar que possvel
converter este sistema de controle, para linguagem de descrio de hardware utilizando a
ferramenta LOGO2VHDL. Descreve-se a seguir este sistema de controle em linguagem de
descrio de hardware.
Library IEEE;
USE ieee.std_logic_1164.all;
Entity port_autom IS
Port(
clk : in bit;
Q1, Q2 : inout std_logic;

70
I1, I2, I3, I4 : in std_logic
);
End port_autom;
Architecture funcao of port_autom IS
Signal S1, S2: std_logic;
Begin
S1 <= (I1 OR I2);
process (S1,clk)
variable tempo : integer;
begin
if (clk'EVENT and clk = '1') then
if S1 = '1' then
S2 <= '1';
tempo := 0;
else
tempo := tempo + 1;
if (tempo = 10) then
S2 <= '0';
end if;
end if;
end if ;
end process;
Q1 <= (I4 AND S2 AND (NOT Q2));
Q2 <= (I3 AND (NOT S2) AND (NOT Q1));
End funcao;
Pode-se notar na descrio apresentada, que o cdigo VHDL possui todas as
declaraes realizadas, bibliotecas e demais estruturas necessrias, para a compilao da
descrio no ambiente de sntese Quartus II da Altera.
Atravs da forma de onda, ilustrado na figura 4.3, verifica-se que o sistema de controle
funciona de acordo com o especificado.

Figura 4.3 - Simulao da porta automtica no Quartus II da Altera

71

Atravs da simulao pode-se perceber o funcionamento do circuito descrito em


linguagem de descrio de hardware. Assim verifica-se, que as entradas I3 e I4 devem estar
ativas (nvel lgico 1) para indicar, que as condies para a porta abrir e fechar esto
adequadas.
Verifica-se tambm, que quando uma das entradas I1 ou I2 so acionadas, o contador
incrementado e durante o tempo parametrizado que de 10 pulsos de relgio a sada Q1
possui nvel lgico 1 indicando que a porta se encontra aberta. Aps este perodo de
parametrizao a sada Q2 possuir nvel lgico 1 indicando, que a porta foi fechada. Neste
momento o sistema aguarda uma nova comutao em uma das entradas I1 e I2, indicando que
um indivduo deseja passar pela porta novamente.
Pde-se verificar duas descries diferentes atravs da figura 4.1 apresentada no
LOGO!Soft Comfort da Siemens e da descrio em VHDL proposta para o sistema de
controle, porm com uma funcionalidade correspondente. possvel perceber tambm, que
apesar de serem formas de programao diferente todas as entradas (I1, I2, I3 e I4) e sadas
(Q1 e Q2) realizam a mesma lgica de programao para o funcionamento do sistema.
A figura 4.4 mostra a planta baixa deste sistema de controle implementado em FPGA.

Figura 4.4 - Ilustrao da planta baixa do sistema de irrigao

72
Constata-se que todos os processos relativos ao sistema de controle foram descritos, a
simulao observar-se que a sintaxe em VHDL proposta pelo software LOGO2VHDL
descreve o sistema de controle de acordo com o esperado e o mesmo foi programado em um
dispositivo lgico programvel FPGA.

4.3. Sistema de Irrigao Automatizado


Este circuito, conforme ilustrado na figura 4.5, possui quatro entradas, que funcionam
como interruptores I1, I2, I3 e I4. O interruptor I1 funciona como uma chave que habilita o
bombeamento da gua canalizada durante o perodo parametrizado de 20 pulsos de relgio. O
interruptor I2 uma chave que interrompe a passagem de gua nos canos principais de gua.
O interruptor I3 uma chave que indica as condies favorveis ou no de proteo externa
do sistema de irrigao. Da mesma forma, I4, indica as condies internas do sistema.
Existem duas sadas no esquemtico, Q1 e Q2, onde Q1 ativo, indica que o sistema
est bombeando gua e Q2 ativo informa, que se encontra gua nos canos principais. A sada
Q2 desativa quando a entrada I2 se encontra ativa, indica que a passagem de gua no
reservatrio se encontra temporariamente interrompida, porm quando a sada Q2 encontra-se
desativa durante o processo de bombeamento (I1, I3 e I4 ativos), indica que a gua est sendo
transferida nos canos principais do sistema.

Figura 4.5 - Ilustrao de um sistema de irrigao automatizado

73

Assim, percebe-se que para o funcionamento do sistema de irrigao, deve-se habilitar


o bombeamento de gua (I1 ativo), deve-se indicar a passagem de gua no reservatrio (I2
desabilitado) e os fatores externos e internos ao sistema (condies fsicas de instalao)
estejam adequados (I3 e I4 habilitados) conforme ilustra a figura 4.6.

Figura 4.6 Simulao do Sistema de Irrigao automatizado no LOGO!Soft Comfort


Verifica-se que as chaves I3 e I4 esto habilitadas, indicando que as condies
externas e internas, respectivamente, se encontram favorveis para o incio do bombeamento
de gua. Percebe-se tambm que a entrada I2 se encontra desabilitada, indicando que a gua
est sendo transferida nos canos do sistema.

Por sua vez, a entrada I1 habilita o

bombeamento. Constata-se que neste instante as sadas Q1 se encontra ativa, indicando o


bombeamento de gua e Q2 se encontra desativado, indicando a passagem de gua na
canalizao.
Atravs deste exemplo, observa-se a codificao do sistema de controle de forma
estrutural, para forma descritiva em sintaxe VHDL torna-se possvel utilizando o
LOGO2VHDL. Segue abaixo a descrio deste sistema de controle em linguagem de
descrio de hardware.

74
Library IEEE;
USE ieee.std_logic_1164.all;
Entity exemplo IS
Port(
clk, I1, I2, I3, I4 : in std_logic;
Q1, Q2 : out std_logic
);
End exemplo;
Architecture funcao of exemplo IS
Signal S1, S2: std_logic;
BEGIN
process(I1, clk)
variable tempo: integer;
Begin
if (clk'EVENT and clk = '1') Then
if I1 = '1' then
S1 <= '1';
tempo := 0;
else
tempo := tempo + 1;
if (tempo = 20) then
S1 <= '0';
end if;
end if;
end if;
end process;
process (I3, I4)
BEGIN
if (I3 = '1') AND (Not I4 = '0') then
S2 <= '1';
elsif (I3 = '0') AND (Not I4 = '1') then
S2 <= '0';
else
S2 <= '0';
end if;
end process;
Q1 <= (S1 and S2);
process (I3, I2)
BEGIN
if (Not I3 = '1') AND (I2 = '0') then
Q2 <= '1';
elsif (Not I3 = '0') AND (I2 = '1') then
Q2 <= '0';
else
Q2 <= '0';
end if;
end process;
End funcao;

75
Nota-se na descrio apresentada que o cdigo VHDL pode ser compilado no
ambiente de sntese Quartus II da Altera, sem erros de lgica e sintaxe. Atravs da formas de
onda, ilustrado na figura 4.7, pode-se verificar tambm que o sistema de controle funciona de
forma correspondente ao especificado.

Figura 4.7 - Simulao do sistema de irrigao no Quartus II da Altera


Observa-se que se a entrada I2 acionada a sada Q2 permanece em nvel lgico 0
indicando que se encontra gua no reservatrio no entanto atravs desta entrada informada
uma interrupo temporria da gua nos canos principais.
Percebe-se tambm que quando as trs entradas I1, I3 e I4 so acionadas
imediatamente a sada Q1 habilitada e Q2 desabilitada, ou seja, o reservatrio bombeado e
a gua transferida nos canos do sistema.
Verifica-se tambm que aps uma nova comutao na entrada I1 um contador
disparado e o sistema bombeia gua durante todo o perodo parametrizado no caso 20 pulsos
de relgio, pois ativa a funo retardo do desligamento e as condies externas e internas do
sistema se encontram favorveis (I3 e I4 habilitados). Quando o contador encerra este
perodo, o sistema de irrigao finaliza o bombeamento de gua.
Este modelo de irrigao automatizado visa estabelecer e definir uma metodologia de
funcionamento com uma uniformidade de distribuio de gua. A descrio deste sistema de
controle em linguagem de descrio de hardware torna-se interessante principalmente devido
s interrupes e sadas que so exigidas em um curto perodo de tempo, no caso 20
segundos, o que facilmente tratado em VHDL devido ao paralelismo existente.

4.4. Sistema Automtico para Preenchimento de Silo


Este sistema, conforme ilustrado na figura 4.8, colhe os dados necessrios para o
controle do silo, processando e controlando estes dados, de forma a preencher o reservatrio
conforme as necessidades do agricultor.

76

Figura 4.8 Esquemtico de um sistema de controle automtico de preenchimento de


silo
O Sinal intermedirio, conforme visto anteriormente, um conceito proposto neste
trabalho, trata-se de um elo de ligao, entre uma funo e outra. Assim, de posse do sistema
de controle a primeira tarefa descrever todos os sinais intermedirios envolvidos no projeto.
Para este caso, conforme se observa em vermelho na figura 4.8, foram descritos nove sinais
intermedirios (S1 a S9).
A simulao deste sistema de controle no LOGO!Soft Comfort visualizado na figura
4.9.

77

Figura 4.9 Simulao do sistema de controle automtico de preenchimento de silo no


LOGO!Soft Comfort
O sistema s pode ser iniciado quando o boto I1 est habilitado e a mangueira para
transferncia dos gros est corretamente conectada. Um contato dos gros no reservatrio
sinal de que a mangueira est conectada corretamente no silo. Este sinal no sistema de
controle representado pela entrada I2 em carter desabilitado. Desta forma, a vlvula de
compresso em Q2 ento aberto, o filtro em Q1 ativado simultaneamente.
O filtro tem que permanecer ativo ao longo do processo enchendo, para serem
bombeados os gros no silo. O indicador nivelado em I3 sinaliza quando o silo estiver cheio.
Um sinal de alarme indicado atravs da sada Q3 informa que o processo permanece 99 pulsos
de relgio at realizar a finalizao automtica do processo. A vlvula no caminho fechada
dentro deste perodo, para permitir o esvaziamento da mangueira.
O alarme pode ser reajustado manualmente pelo acionamento da entrada I6, caso no
seja acionado, o sistema ser desligado automaticamente depois de 25 pulsos de relgio. Se a

78
mangueira no for esvaziada a tempo, em 30 pulsos de relgio um procedimento de
emergncia pode ser ativado acionando o boto I5. O monitoramento de presso no silo
tambm termina automaticamente o procedimento de preenchimento no reservatrio. Este
caso sinalizado atravs do indicador Q4.
O cdigo fonte abaixo mostra a descrio em sintaxe VHDL de todo o esquemtico
acima citado, gerado pelo LOGO2VHDL.
Library IEEE;
USE ieee.std_logic_1164.all;
Entity exemplo IS
Port(
clk : in std_logic;
I1, I2, I3, I4, I5, I6 : in std_logic;
Q1, Q3, Q4 : out std_logic);
End exemplo;
Architecture funcao of exemplo IS
Signal S1, S2, S3, S4, S5, S6, S7, S8, S9: std_logic;
BEGIN
Q1 <= (I1 and (not I2));
S1 <= (I1 and I5);
process(S1, clk)
variable tempo: integer;
Begin
if (clk'EVENT and clk = '1') Then
if (I2 = '1') then
tempo := 0;
S2 <= '0';
else
if (S1 = '1') then
S2 <= '1';
tempo := 0;
else
tempo := tempo + 1;
if (tempo = 30) then
S2 <= '0';
end if;
end if;
end if;
end if;
end process;
S6 <= (I1 and (not I3));
process(S6, clk)
variable tempo: integer;
Begin
if (clk'EVENT and clk = '1') Then
if (I2 = '1') then
tempo := 0;
S7 <= '0';

79
else
if S6 = '1' then
S7 <= '1';
tempo := 0;
else
tempo := tempo + 1;
if (tempo = 99) then
S7 <= '0';
end if;
end if;
end if;
end if;
end process;
S3 <= (S2 or S7);
S4 <= (S3 and I4);
S8 <= (I3 or (not I4));
process(S8, clk)
variable tempo : integer;
Begin
if (clk'EVENT and clk = '1') Then
if (S8 = '1') then
tempo := tempo + 1;
else
tempo := 0;
end if;
if (tempo >= 1) then
S9 <= '1';
else
S9 <= '0';
end if;
end if;
end process;
S5 <= (S4 and (not S9) and S8);
process(S5, clk)
variable tempo: integer;
Begin
if (clk'EVENT and clk = '1') Then
if (I6 = '1') then
tempo := 0;
Q3 <= '0';
else
if (S5 = '1') then
Q3 <= '1';
tempo := 0;
else
tempo := tempo + 1;
if (tempo = 25) then
Q3 <= '0';
end if;
end if;

80
end if;
end if;
end process;
Q4 <= not I4;
End funcao;
Constata-se que todos os processos relativos ao sistema de controle foram descritos e
sua simulao pode ser observada conforme mostra a figura 4.10. Pode-se observar atravs da
simulao que a sintaxe em VHDL proposta pelo software LOGO2VHDL descreve o
sistema de controle de acordo com o esperado.

Figura 4.10 Simulao do cdigo VHDL do sistema de controle automtico de


preenchimento de silo
Na simulao verifica-se que o filtro (Q1) no ativo quando o boto I1 no est
habilitado ou quando I1 e I2 est habilitado simultaneamente, ou seja, a mangueira para
transferncia dos gros no est corretamente conectada, atravs do acionamento de I2. Neste
momento o sinal intermedirio S4 funciona como a sada Q2, onde o mesmo aberto,
significando que a vlvula de compresso para despejar o silo est acionado.
O interruptor I4 aciona a funo retardo do desligamento e inicia o timer do contador,
para o sistema ser interrompido em 25 pulsos de relgio aps o desligamento deste boto.
Em I3, o sistema sinaliza quando o silo estiver cheio. Trata-se de uma vlvula de
finalizao automtica do processo, devendo se encontrar portanto desativado (nvel lgico 0).
O alarme pode ser reajustado manualmente pelo acionamento da entrada I6, e se a
mangueira no pde ser esvaziada a tempo, em 30 pulsos de relgio um procedimento de
emergncia pode ser ativado acionando o boto I5.

81
No QUARTUS II, assim como qualquer outro sistema de sntese, importante
especificar a tecnologia para desenvolvimento. Inicialmente utilizou-se o componente da
Famlia EPM7256 que dispe e 257 clulas para integrar o sistema no Circuito Integrado.
Observou-se que era necessrio especificar um outro componente para cdigos VHDL
que exigiam um nmero maior de clulas de acordo com as especificaes do sistema de
controle. Utilizou-se, portanto a famlia FLEX10KE, que apesar de ser mais lenta e voltil,
dispe de uma quantidade maior de silcio.
Salienta-se que nos exemplos realizados foram utilizadas alm das funes bsicas, as
funes especiais: retardamento de ligao, retardamento do desligamento e rel de autoreteno.

82

Captulo 5
Concluses Gerais
5.1. Concluses
Percebe-se que a utilizao do hardware configurvel, utilizando dispositivos lgicos
programveis vem se tornou-se uma tendncia crescente, na rea da robtica, sntese e
atualmente em automao de sistemas de controle.
Verificou-se que um sistema de controle automatizado comumente descrito em uma
linguagem de programao, podendo ser do tipo estruturado, Ladder ou blocos lgicos. Essas
trs abordagens so ditas linguagens-padro para automatizar sistemas de controle para
quaisquer aplicaes, sejam elas industriais, residenciais, comerciais dentre outras. Assim,
verifica-se, com o trabalho apresentado, uma abordagem nova para automatizar sistemas de
controle utilizando a linguagem de descrio de hardware VHDL, que uma linguagem,
que descreve circuitos eletrnicos digitais e que tambm no propriamente utilizado para
automao de processos.
Esta nova metodologia visa utilizar dispositivos lgicos programados apoiados na
linguagem de descrio de hardware, no caso VHDL, em carter alternativo s metodologias
normalmente usadas com controladores lgicos programveis. A partir deste novo conceito de
programao de sistemas de controle, surge a motivao para automatizar processos baseados
em CLPs por dispositivos lgicos programveis, que sejam dinamicamente reprogramveis e
que possuam estrutura adequada a implementao de algoritmos via hardware.
A princpio, pensou-se em decodificar os programas de automao, que eram descritos
no ambiente de programao LOGO!Soft, porm, com o estudo do software, percebeu a
indisponibilidade da linguagem estruturada (lista de instrues) no programa. De acordo com
o fabricante, a linguagem STL (Instruction List), uma linguagem possvel apenas no
Software Step 7, que programa o CLP S7-200/300/400 da Siemens. Verificou-se que no
seria possvel realizar a decodificao, devido o alto nvel de codificao gerado pelo
compilador do programa.
Tendo em vista o problema encontrado, desenvolveu-se um software em ambiente
visual denominado LOGO2VHDL que a partir da leitura de um esquemtico descrito no

83
LOGO!Soft, torna-se possvel gerar um arquivo correspondente em linguagem de descrio
VHDL, utilizando esta ferramenta como intermediadora.
Desta forma, ao invs de decodificar os programas realizados no LOGO!Soft, foi
desenvolvido uma linguagem de programao prpria com interface grfica que implementa
as funes de automao, bsicas e especiais, partir do LOGO!Soft e posteriormente gera
um arquivo descrito em sintaxe VHDL.
Uma vez concludo o ambiente grfico, as funes do LOGO!Soft foram testadas, e
conforme ilustra os exemplos dos sistemas de controles citados no trabalho, conclui-se que
existe uma grande tendncia desta metodologia, para o crescimento na rea de automao,
utilizando principalmente FPGA implementando processos, em mquinas computacionais
dedicadas e que podem ser reprogramadas dinamicamente.
Sabe-se que os PLDs so circuitos integrados que podem ser configurados pelo
prprio usurio podendo simplificar e acelerar o ciclo de um sistema automatizado. Fatores
como este, contribui para o desenvolvimento de uma rea promissora em aplicaes de PLDs
em substituio aos microprocessadores.
O trabalho vem, portanto fornecer uma nova ferramenta no processo de automao,
bem como possibilitar a expanso da linguagem de programao de automao para um
amplo grupo de programadores e projetistas que sabem programar em VHDL, no entanto,
desconhecem as linguagens normalmente utilizadas para automao. Dessa mesma forma o
trabalho poder ser disponibilizado para todos os tipos de aplicaes, principalmente queles
em que o tempo de resposta seja rpido, e para processos onde o uso de dispositivos
seqenciais no seja indicado devido natureza de seu processamento.
Sugere-se como trabalho futuro implementar as funes analgicas oferecidas pelo
ambiente LOGO!Soft, em linguagem VHDL, bem como melhorar o software LOGO2VHDL
de forma grfica, atravs da utilizao de recursos drag-and-drop, para realizar as descries
dos sistemas de controle, de forma mais ilustrativa, em carter de substituio aos formulrios
que foram propostos neste trabalho.
Uma outra abordagem interessante como trabalho futuro, seria o desenvolvimento de
um software que pudesse decodificar os sistemas de controle descritos no LOGO!Soft sem
precisar descrev-lo em outro aplicativo. Um programa com este comportamento,
possibilitaria ao projetista gerar o cdigo VHDL correspondente de forma ainda mais
automtica que o proposto no trabalho.
O hardware configurvel apresenta-se, como uma alternativa tecnolgica, que pode
adaptar-se a aplicao de sistemas de controle com a facilidade de um processador de

84
finalidade geral, enquanto mantm as vantagens de desempenho do hardware dedicado. Com
essa grande velocidade e adaptabilidade, a computao reconfigurvel tem um grande
potencial a ser explorado, especialmente em aplicaes que necessitam de alto desempenho
como arquiteturas paralelas, aplicaes de tempo real, dentre outras.

85

Referncias
(01) RIBEIRO, J. M. S; GARCIA, J. P. F. Apostila de controladores lgicos programveis
em processos industriais. Ilha Solteira: Faculdade de Engenharia de Ilha Solteira, 2005.
(Apostila).
(02)

SOFTWARE
LOGO!
Soft
Comfort
da
Siemens.
Disponvel
em:
<http://www.automation.siemens.com/logo/index_76.html>. Acesso em: 12 out. 2007.

(03) SIEMENS. Manual de instrues do LOGO! Edio 06/2003. disponvel em:


<www.siemens.com>. Acesso em: 15 mar. 2005.
(04) NATALE, F. Automao industrial. So Paulo: rica. 2000.
(05) MECATRONICA ATUAL. Automao industrial de processos e manufatura.
Disponvel
em:
<www.mecatronicaatual.com.br/edicoes.asp?comando=27_54&dettaglio=27>.
Acesso em: 18 abr. 2007.
(06) PEREIRA, M. H. R.; SILVA, A. C. R. Acionamento de um motor de induo com o
emprego de microcontrolador. Trabalho de Formatura. (Engenharia Eltrica)
Faculdade de Engenharia de Ilha Solteira, Universidade Estadual Paulista, Ilha Solteira,
2004.
(07) BROWN, S.; ROSE, J.; FRANCIS, R.; VRANESIC, Z. Field programmable gate
arrays. Boston: Kluwer Academic Publisher, 1997.
(08) HARDING, B. HDLs: a high-powered way to look at complex design. Computer
Design, Boston, v. 29, n.10, p. 74-84, 1990.
(09) ELETRONICA.org. Computao reconfigurvel aplicada a robtica. Disponvel em:
<www2.eletronica.org/artigos/eletronica-digital/computacao-reconfiguravelaplicada-a-robotica-fpga/view>. Acesso em: 18 abr. 2007.
(10) LIMA, J.; CARDOSO, J. M. P. Estudo e implementao de um controlador para
cmara
digital.
Disponvel
em:
<www.deei.fet.ualg.pt/projectos/controlador_JL1.pdf>. Acesso em: 15 jul. 2007.
(11) WELCH, J. T. ; CARLETTA, J. A direct mapping FPGA architecture for industrial
process control applications. The proceedings of the 2000 IEEE International

86
Conference on Computer Design: VLSI in Computers & Processors. Disponvel em:
<http://ieeexplore.ieee.org/Xplore/login.jsp?url=/iel5/7044/18963/00878352.pdf>.
Acesso em 15 jul. 2007.
(12) MIYAZAWA, I. N.; FUKAGAWA, M. I.; SEKIGUCHI, T. KANAGAWA, I.
Implementation of ladder diagram for programmable controller using FPGA.
Disponvel em: <http://ieeexplore.iee.org/xpl/freeabs_all.jsp?arnumber=813150>.
Acesso em: 15 jul. 2007.
(13) MORAES, F. G.; AMORY, A. M.; PETRINI JNIOR, J. Sistema integrado e
multiplataforma para controle remoto de residncias. Porto Alegre: Pontfica
Universidade Catlica do Rio Grande do Sul, 2001.
(14) HAFNER, A.; LIMA C. R. E.; LOPES, H. S. Implementao de um medidor de
qualidade de energia usando computao reconfigurvel por hardware. Disponvel
em: <www.cpgei.cefetpr.br/~hslopes/publicacoes/2005/sbai2005b.pdf>. Acesso em:
15 jul. 2007.
(15) ORDONEZ, E. D. M.; PENTEADO, C. G.; SILVA, A. C. R. Microcontroladores e
FPGAs: aplicaes em Automao. So Paulo: Novatec. 2005
(16) COSTA, C. Projetando Controladores Digitais com FPGA. So Paulo: Novatec, 2006.
(17) YAMAZAKI, K. A study on programmable logic controller by direct logic synthesis.
IMS Mechatronics. University of Calofornia, Davis. Disponvel em:
<http://ims.engr.ucdavis.edu/MemberPosterFile/QingWang.pdf>. Acesso em: 15
mar. 2005.
(18) GEORGINI, M. Automao aplicada: descrio e implementao de sistemas
seqenciais com PLCs. So Paulo: rica, 2000.
(19) LAWRENCE T. A. Automation system for control and data acquisition. USA:
Instrument Society of America. 1992.
(20) ALTERA CORPORATION. Manual do MaxPlus: programmable logic development
system. Disponvel em: <http://www.altera.com/literature/ds/dsmii.pdf>. Acesso em
15 jul. 2007.
(21) BONFATTI, F.; MONARI, P. A.; SAMPIERI, U. IEC1131-3 Programming
Methodology - Software engineering methods for industrial automated systems.
France: CJ International, 1997.

87
(22) BRUCIAPAGLIA, A. H. ; PAGANO, D. J. Instrumentao em controle. Santa
Catarina: Universidade Federal de Santa Catarina, 1994. (Apostila).
(23) CANT, M. Dominando o Delphi 5: a Bblia. So Paulo: Makron Books, 2000.

(24) CARVALHO, F. F. Programao orientada a objetos usando o Delphi 3. So Paulo:


rika, 1998.
(25) CHAN, P.; MOURAD, S. Digital design using field programmable gate arrays.
Englewood Cliffs: Prentice Hall, 1994.
(26) CHANG, K. L. Digital design and modeling with VHDL and synthesis. Los Alamitos:
IEEE Computer Society Press, 1997.
(27) CHONGASAMETHAWORN, S.; SUITJARRITTHAMMAKURN, S. Design PLC
using
FPGA.
Disponvel
em:
<http://www.geocities.com/yanohc/hardware/cpufpga/index.html>. Acesso em: 18
jul. 2006.
(28) CLEMENTS, K ; JEWERY, W. J. The PLC workbook. London: Prentice Hall, 1996.
(29) CRISPIN, A. J. Programmable logic controllers and their engineering applications.
So Paulo: McGraw-Hill, 1990.
(30) ENGO, F. Como programar em Delphi 3. So Paulo: Makron Books, 1997.
(31)

FCCM98. Top 10 Preditcions for FCCMs in 2003.


<http://www.fccm.org/rellinks.php>. Acesso em: 12 jul.2006.

Disponvel

em:

(32) PERRY, D. L. VHDL. 2.ed. New York: MacGraw-Hill, 1993. (Series on Computer
Engineering).
(33) FELIPE, E. R. Delphi 5 - Fundamentos. Belo Horizonte: SENAC, 2000.
(34) SILVEIRA, P. R.; SANTOS, W. E. Automao e controle discreto. 2. ed. So Paulo:
rica, 1998.
(35) TEIXEIRA, S; PACHECO, X. Borland Delphi 6: guia do desenvolvedor. Rio de
Janeiro: Campus, 2002.