elevador didático de 5 andares
Post on 09-Jul-2015
3.152 Views
Preview:
TRANSCRIPT
20/04/12 Elevador Didático de 5 andares
1/12fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html
Andre Vinicius Rocha Silva
Home Exemplos de Aplicação Exemplos Didáticos Elevador Didático de 5 andares
Elevador Didático de 5 andares
Projeto Elevador
Este projeto trata de um elevador didático de 5 andares, e o que motivou a escolha
pelo desenvolvimento de um elevador foi a possibilidade de utilizá-lo com diversos
circuitos e lógicas de controle, fazendo com que se possa realizar desde aplicações
utilizando lógicas simples, até controles complexos que, além da lógica de
funcionamento normal, consideram questões de segurança.
O Hardware do elevador utilizado neste projeto foi desenvolvido em parceria com
alunos do curso de técnólogo em mecatrônica do Instituto Federal de Santa Catarina,
na disciplina de projeto integrador, com o intuito de auxiliar no ensino de diversas
disciplinas como sistemas digitais, circuitos combinacionais e outras diversas
disciplinas na área.
Figura 1: Elevador
Como foi mencionado muitos são os hardwares de controle que poderiam ser
utilizados, sejam um Microcontrolador, um CLP, um circuito de lógica discreta, etc.
Neste artigo iremos apresentar o desenvolvimento de um hardware de controle,
utilizando o lógica programável. O hardware que será utilizado é o kit de
desenvolvimento CPLD_7064 que possui um modelo EPM7064SLC44-10,
da ALTERA. O projeto foi desenvolvido para funcionar como um elevador de carga, e
pensado de modo a ser extremamente didático. Seu funcionamento será descrito a
seguir.
Funcionamento
APOIO
ONLINE
Nós temos 16
visitantes e 2
membros online
marcos
carolwestphal
LINKS
CNPq
SBMicro
IFSC
NERsD
LOGIN
Nome de Usuário
Senha
Lembrar-me
ENTRAR
Esqueceu sua
senha?
Esqueceu seu nome
de usuário?
Registrar-se
PARCEIROS
pesquisar...
Home Objetivos Exemplos de Aplicação KITS Tutoriais Softwares
Fórum Trabalhe Conosco
CPLD
20/04/12 Elevador Didático de 5 andares
2/12fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html
Botões e Sensores
Para começar definimos que todos o Botões e Sensores por padrão estão inicialmente
em nível lógico "ZERO", para garantir esta condição todos os botões estão ligados a
terra por um resistor de "pull down", desta forma quando pressionamos um botão este
ficará com nível lógico "UM", no os botões são representado por uma entrada
de 5 bits.
A figura abaixo apresenta o dado que o PLD recebe quando o botão de um andar é
pressionado, como pode ser observado o bit correspondente ao botão vai para "1".
Figura 2: Ilustração do sistema de botões
Os sensores de andares, como já foi mencionado, obedecem a mesma lógica dos
botões, por padrão estão em "ZERO" e se acionadas vão para "1", a figura abaixo
apresenta os valores recebidos pelo PLD quando o elevador passa ou está em um
andar, neste momento o bit correspondente ao andar apresenta o valor “1”
Figura 3: Ilustração do sistema de sensor.
Além dos sensores de andar outro sensor representa o estado da porta, foi definido
que quando a porta está fechada o sensor fica em "ZERO" e quando ela esta aberta o
sensor fica em "1", como pode ser observado na figura abaixo.
Figura 4: Ilustração do funcionamento da trava da porta.
Motor e Travamento da Porta
PLD
20/04/12 Elevador Didático de 5 andares
3/12fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html
Os sinais de saída do PLD são o comando do motor e o travamento da porta.
O motor utilizado neste exemplo é um motor DC simples e seu comando se restringe
a uma palavra de dois bits:
Saída de controle para o motor Ação no Elevador
00 Elevador Parado
01 Elevador Sobe
10 Elevador Desce
Para aplicações mais complexas podem ser implementadas técnicas de soft-start e
soft-stop de modo a tornar a aplicação mais proxima ainda da realidade.
O comando de travamento da porta é de 1 bit, se o bit está "setado", ou seja, em nível
lógico "1" a porta está travada, senão a porta pode ser aberta.
Lógica de Funcionamento
A Lógica de Funcionamento do elevador obedece uma maquina de estados que possui
cinco estados:
Espera: No inicio do processo a maquina de estado permanece em um estado de
espera para evitar que as transições de estado dos diversos componentes interligados
possam interferir na execução das tarefas.
Partida: Após o estado de ESPERA, caso o elevador não esteja localizado em
nenhum andar, ou seja, todos os sensores em “ZERO”, o elevador deverá tentar um
movimento de descida, até atingir o andar mais próximo abaixo. Assim que a condição:
“posicionado sobre um andar” for atendida ele vai para a condição de PARADO;
Subindo: Enquanto o elevador sobe, pode ser chamado a outros andares, acima ou
abaixo de sua localização imediata. Ele permanecerá em seu movimento de subida,
até que o último andar solicitado acima dele seja atingido;
Parado:Quando o elevador, em movimento, chega a algum andar solicitado, ele para
por um intervalo de alguns segundos, e se não houver outro andar solicitado, ele
permanece parado no andar; Enquanto o elevador está parado, a porta pode ser
aberta, e o elevador não inicia qualquer movimento até que ela volte a ser fechada. Se
um botão de andar é pressionado, a solicitação é registrada, e o elevador começa um
movimento de subida ou de descida, em direção ao andar correspondente.
Descendo: Enquanto o elevador desce, pode ser chamado a outros andares, acima
ou abaixo de sua localização imediata. Ele permanecerá em seu movimento de
descida, até que o último andar solicitado abaixo dele seja atingido;
A Figura que representa a máquina de estados é apresentada a seguir:
Figura 5: Diagrama de estados da maquina de estados
20/04/12 Elevador Didático de 5 andares
4/12fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html
Registradores
Para o funcionamento da máquina de estados são necessários alguns registradores
que serão descritos na tabela abaixo.
Botoes[1..5]
Entrada de 5 bits associada aos botões de chamada do
elevador a cada andar do “edifício”. O estado normal destas
entradas é '1', e vai a '0' quando o botão é pressionado.
Andar_Solicitado[1..5]Registrador de 5 bits que armazena a informação de chamada
do elevador em cada um dos andares do “edifício”.
Sensores[1..5]
Entrada de 5 bits, associada aos sensores localizados em
cada andar do “edifício”. Quando o elevador ativa um dos
sensores, leva a '0' a entrada correspondente.
Ultimo_Andar[1..5]
Registrador de 5 bits, associado aos andares. Um dos bits
deverá ser feito '0' quando o elevador passar pelo andar
correspondente ao mesmo.
Porta_FechadaEntrada do sensor da porta do elevador, indica (quando em '1')
que ela não está fechada.
Sentido
Registro do sentido de movimento corrente do elevador ('1'
para subindo, e '0' para descendo), utilizado enquanto não
atende a todos os andares solicitados.
Figura 6: Ilustração do registro de andares requisitados.
Andares Solicitados
Registrador que armazena os andares solicitados
Seu valor é atualizado utilizando um ou lógico com o valor do sensor dos botões
5 People HereGeneral Chat 3
20/04/12 Elevador Didático de 5 andares
5/12fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html
Verificação de Andar Solicitado
É feito uma operação lógica e dos andares solicitados com os sensores de andar
Se o resultado for diferente de 0 o andar no qual o elevador se encontra foi
solicitado
Se for 0 não foi solicitado ou já foi atendido
Exemplo:
Verificação de Solicitação de Andares Acima
É feito uma operação lógica e dos andares solicitados com o inverso do andar atual
Se o resultado for diferente de 0 existe andares solicitados acima
Se for 0 não existe
Exemplo:
Verificação de Solicitação de Andares Abaixo
É feito uma operação lógica e dos andares solicitados comandar atual
Se o resultado for diferente de 0 existe andares solicitados abaixo
Se for 0 não existe
Exemplo:
20/04/12 Elevador Didático de 5 andares
6/12fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html
Máquina de estados
Funcionamento
PARTIDA
Se o elevador estiver em um andar qualquer, ele vai para o estado Parado.
Se o elevador estiver entre dois andares, ele desce até chegar a algum.
SUBINDO
O elevador sobe enquanto não chega no andar mais alto solicitado;
Quando o elevador chega no andar mais alto solicitado vai para o estado Parado.
PARADO
Quando o elevador chega a algum andar solicitado, para por um intervalo de 60
segundos. Ele permanecerá parado se a porta estiver aberta ou não houver andar
solicitado.
Se o andar solicitado:
For acima do atual e não há mais nenhum andar abaixo solicitado, então
assume o estado Subindo;
For abaixo, então assume o estado Descendo.
20/04/12 Elevador Didático de 5 andares
7/12fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html
DESCENDO
O elevador desce enquanto não passar por um andar solicitado.
Quando o elevador chega a algum andar solicitado ele vai para o estado Parado.
Visão Geral
O Código
O início do código, como todo o VHDL, começa com a entidade, onde são declarados
o clock, resetn, sensores e botões como entradas e o motor e a trava como saídas:
A arquitetura possui alguns sinais auxiliares: chamada, andar, pausa_andar e flag.
Chamada é responsavel por registrar os andares solicitados, andar registra o ultimo
andar, pausa_andar é responsavel por indicar se o tempo de pausa em um andar ja
acabou e a flag indica se o elevador estava descendo ou subindo. O signal
estado_elevador é a maquina de estados responsável pelo controle do código.
20/04/12 Elevador Didático de 5 andares
8/12fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html
O código possui três processos: o primeiro controla a os andares chamados e
atendidos, o segundo trata dos estados da maquina de estados e o ultimo processo é
responsável pela rotina de pausa em um andar.
O primeiro processo inicia verificando se o elevador está em algum andar, caso sim
ele atribui esse andar a variável andar. Em seguida, se algum botão foi pressionado
então registra-se um chamado. O passo seguinte é, caso a maquina de estados
esteja no estado parado, sinalizar que o andar atual ja foi atendido. No final do
processo atribui-se o valor da variável andar_chamado para o signal chamado.
O segundo processo é responsavel pelo controle da máquina de estados. Quando o
reset é pressionado a maquina de estados vai para o estado espera. Na operação
normal do elevador, quando está no estado espera passa para partida e sai do estado
partida quando encontra o primeiro andar abaixo dele.
Quando o elevador está no estado subindo ele precia identificar qual o andar solicitado
mais alto, andar onde irá parar. Para isso implementou-se o conjunto de testes
presentes nesse trexo do código. O primeiro conjunto de if-else é responsavel por
identificar qual o andar mais alto solicitado, e os ifs dentro deles são responsável por
identificar se o andar atual é o mais alto.
20/04/12 Elevador Didático de 5 andares
9/12fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html
No estado descendo o elevador deve parar en todos os andares solicitaods e, de
forma análoga ao estado de subida, precisa identificar o andar mais baixo solicitado
para que possa habilitar novamente a subida.
Quando o elevador está no estado parado e a flag de pausa indica que o tempo
minimo de parada acabou, caso estava subindo e há um andar mais alto chamando
ele continua subindo. Caso esteja no andar mais alto solicitado ou estava descendo e
há um andar mais baixo solicitado, então vai para o estado descendo.
20/04/12 Elevador Didático de 5 andares
10/12fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html
O terceiro processo faz uma contagem enquanto o elevador está no estado parado, de
forma que o elevador não vai para o proximo estado antes que a contagem acabe.
Por ultimo é feita uma atribuição de seleção para os valores do motor e uma para a
trava de porta
Simulação
Para a simulação do elevador será necessário emular as solicitações dos andares e o
posicionamento do elevador, ou seja, os sensores do elevador. Inicialmente se declara
os sinais da simulação:
Em seguida declara-se emula-se a o pressionamento do botão de reset e os pulsos
de clock:
O processo principal inicia com o pressionamento de um botão e o posicionamento do
elevador. Em seguida se emula a subida do elevador, pois o elevador está no estado
subindo e, em seguida, começa a descida, com a emulação do pressionamento de
alguns botões:
20/04/12 Elevador Didático de 5 andares
11/12fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html
As formas de ondas encontradas na simulação estão apresentadas abaixo:
Figura 7: Formas de onda da simulação.
Arquivos de Projeto
Elevador simples.zip
< Anterior Próximo >
Artigos Relacionados :
» Placa de Botões
Placa de Botões Figura 1 - Placa de Botões A placa de botões é um módulo muito útil
do conjunto de kits e pode ser empregada em diversas aplicações seja na
configuração de...
Read more...
» Controle de um Motor de Passo
20/04/12 Elevador Didático de 5 andares
12/12fpgaparatodos.com.br/teste/exemplos-didaticos/108-exemplo-de-exemplo.html
Você ainda pode digitar 1000 caracteres
Enviar
JC omments
geschema Just registered for PLC2 FPGA Days 2012. I'll be there on June 21 #FPGA
http://t.co/gP6HUOs8 v ia web sent 2 minutes ago
NBTech NorthBridge Technology #FPGA is out! http://t.co/5btUI3v5 v ia Paper.li sent 13 hours
ago
#fpga
» Placa de Display de 6 Algarismos
» Leitura Assíncrona de Teclado
» Placa de Chaves
ADICIONAR COMENTÁRIO
Nome (obrigatório)
E-mail (obrigatório)
Website
Notifique-me de comentários futuros
Atualizar
HOME OBJETIVOS EXEMPLOS DEAPLICAÇÃO KITS TUTORIAIS SOFTWARES FÓRUM TRABALHECONOSCO EXEMPLOS DIDÁTICOS PROJETOS DE USUÁRIOS QUARTUSII FRITZING WINK MÓDULOS PERIFÉRICOS MÓDULOS PRINCIPAIS
Copyright © 2012 Portal - FPGA para Todos. Todos os direitos reservados.
Joomla! é um Software Livre com licença GNU/GPL v2.0.
top related