Escolar Documentos
Profissional Documentos
Cultura Documentos
Ilha Solteira SP
setembro/2007
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.
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.
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.
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.
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 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.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
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:
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.
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.
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
21
Representao no LOGO!
ENTRADA SADA
A
1
0
1
0
22
Tabela Verdade
Representao no LOGO!
ENTRADAS SADA
A
B
C
0
0
1
0
1
1
1
0
1
1
1
0
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
24
Representao no LOGO!
ENTRADAS SADA
A
B
C
0
0
1
0
1
0
1
0
0
1
1
0
25
Representao no LOGO!
ENTRADAS SADA
A
B
C
0
0
0
0
1
1
1
0
1
1
1
0
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.
27
testados, compilados e simulados de acordo com o funcionamento correspondente oferecido
pela linguagem LOGO!Soft.
Retardamento de Ligao
28
tempo := 0;
end if;
if (tempo >= 5) then
saida <= '1';
else
saida <= '0';
end if;
end if;
end process;
End funcao;
29
Representao no LOGO!Soft
Retardamento do desligamento
30
Retardamento de ligao /
desligamento
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;
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).
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;
34
zerar o contador e colocar a sada em nvel lgico 0, e desta forma o sistema aguarda uma
nova comutao na entrada Trg.
Rel de passagem
35
tempo := 0;
saida <= '0';
end if;
if (tempo >= 5) then
saida <= '0';
end if;
end if;
end process;
End funcao;
Q
Gerador de ciclos Assncrono
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;
38
Representao no LOGO!Soft
Q
Interruptor de luz da escada
39
end if;
end if;
end process;
End funcao;
40
mesmo procedimento realizado. Atravs da entrada reset o tempo T redefinido e repe a
sada a zero.
Representao no LOGO!Soft
Interruptor Conforto
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;
42
43
cont := cont + direcao;
end if;
if (cont >= 5) then
Q <= '1';
else
Q <= '0';
end if;
end if;
End process;
End Contador;
44
Representao no LOGO!Soft
45
end if;
end if;
end if;
if (x = '1') then
Q <= '0';
else
Q <= '1';
end if;
end if;
End process;
End Contador;
46
Representao no LOGO!Soft
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.
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
Softkey
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;
51
Representao no LOGO!Soft
Registrador de deslocamento
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;
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.
53
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
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.
57
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:
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;
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.
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
No possvel descrever uma funo bsica com somente uma entrada. Quando isso
ocorre aparecer uma mensagem conforme apresentado na figura 3.5.
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.
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.
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.
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.
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.
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.
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.
68
69
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.
71
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.
73
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.
76
77
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.
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.
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.
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.