elevador didático de 5 andares

12
20/04/12 Elevador Didático de 5 andares 1/12 fpgaparatodos.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

Upload: darosajoseluiz

Post on 09-Jul-2015

3.152 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Elevador didático de 5 andares

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

Page 2: Elevador didático de 5 andares

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

Page 3: Elevador didático de 5 andares

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

Page 4: Elevador didático de 5 andares

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

Page 5: Elevador didático de 5 andares

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:

Page 6: Elevador didático de 5 andares

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.

Page 7: Elevador didático de 5 andares

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.

Page 8: Elevador didático de 5 andares

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.

Page 9: Elevador didático de 5 andares

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.

Page 10: Elevador didático de 5 andares

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:

Page 11: Elevador didático de 5 andares

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

Page 12: Elevador didático de 5 andares

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.