3 Storie Elevator Logic Circuit

Thread Starter

kmarcheski

Joined Apr 28, 2012
9
Hello,

Im having issues creating a 3 story elevator logic circuit.

This is what I have so far... Am I on the right track?

See PDF file....


Thanks
Kate
 

Attachments

Last edited:

WBahn

Joined Mar 31, 2012
29,979
Greetings and welcome, Kate.

This sounds more like an assignment rather than a project (though the distinction can become blurry for assignments that have more meat on them). The only reason I point that out is that you might get more looks if it were posted in the Homework Help forum. Don't repost, though, let the moderators make that decision.

Your title says 3 storie but your post says 2. Which is it?

I think you were trying to post a table and it got jammed onto a single line. So please try again. Also, describe what the table represents. For instance, is it a truth table that covers, in no particular order, all the relevant states? Or is it a sequential history of a representive progression of states?

This is what I think you probably wanted:

F | P | U | D | O
3 | 3 | 0 | 0 | 1
3 | 2 | 0 | 1 | 0
3 | 1 | 0 | 1 | 0
2 | 3 | 1 | 0 | 0
2 | 2 | 0 | 0 | 1
2 | 1 | 0 | 1 | 0
1 | 3 | 1 | 0 | 0
1 | 2 | 1 | 0 | 0
1 | 1 | 0 | 0 | 1

This seems reasonable, at least as a first pass that is ignoring lots of things, such as what if someone is already on the elevator headed the other way? How do you decide when to stop and open the doors on a floor that did not have its call button pushed (because the person in the elevator wants to get off on that floor). But those are probably additional layers that you will get saddled with soon enough.
 
Last edited:

Thread Starter

kmarcheski

Joined Apr 28, 2012
9
Hello,

LOL, I like you reasoning for what if a person is in the elevator already.... I thought that I attached a PDF file. Let me know if you see it.
 

WBahn

Joined Mar 31, 2012
29,979
Yes, I do see it. It was probably there all along and I didn't get past trying to understand the information actually in the body of the post to even look for an attachment.
 

Thread Starter

kmarcheski

Joined Apr 28, 2012
9
Not a problem! So what do think. am I on the right track. I was hoping to create a "simple logic circuit" from the table that I posted (PDF). Can I go to a K-Map or the information needs some changes?
 

WBahn

Joined Mar 31, 2012
29,979
You are on the right track IF the scope of the problem is limited to the highly restricted case of only caring about what floor a button was pressed on and what to do immediately with an empty elevator car. Does the assignment involve anything dealing with what has happened in the past (i.e., where was the last button pressed and did the car actually get there) or, once a button is pressed and the car is moving, is there any requirement to cause the elevator to stop?

These kinds of problems can be scoped at many different levels in order to give someone something that is very basic and relatively simple to solve up to something that is quite subtle requiring a careful approach. I'm guessing that this is at more basic end of the spectrum, but we need to understand what the requirements for the assignment are.

Before you go to a K-map and start designing your logic, you have to decide how you are going to incode the information you have (in binary).
 

strantor

Joined Oct 3, 2010
6,782
Thats the most simplistic truth table you could get away with I think. It is accurate as it stands, but is that all the complexity that's required for the assignment? Elevators don't simply go to a floor when the button is pressed. They need to store commands and execute them in a logical order (prioritize).

For example, a person gets on the elevator at floor 3 and goes down to floor 2, meanwhile someone pushes the button on floor1, but someone else gets on while the elevator is on floor 2, and that person pushes the button for floor 3. So, now the elevator has a decision to make; does it obey the first request to go down, or does it obey the most recent request to go up? Whichever decision it makes, it should not simply ignore the other request, it should save it in memory to complete it later.

Another example: 2 people get on the elevator at floor1. The first person to enter, pushes the button for floor 3, and the second person pushes the button for floor 2. So, now again the elevator has a decision to make; does it obey the first request to go up to floor 3, or does it obey the most recent request to go up to floor 2? It should prioritize and go up to floor 2 first, then to floor 3.
 

Thread Starter

kmarcheski

Joined Apr 28, 2012
9
That is all we have do. We must design a logic circuit that takes

Input: UP, DOWN, OPEN doors (The Call Button).
OutPut: UP, DOWN, OPEN doors

Thats the basic as this project can be...

See attachment for coding information.

Does it look correct?
 

Attachments

WBahn

Joined Mar 31, 2012
29,979
Input: UP, DOWN, OPEN doors (The Call Button).
OutPut: UP, DOWN, OPEN doors
That set of inputs doesn't match the set of inputs in your table, which are "Floor the elevator is at" and "Floor on which call button is pressed".

What are the UP/DOWN inputs?

How does the encoding for the floor on which the call button is pressed happen? This is relevant if you are actually going to implement this thing somehow (including in a simulator) since you are probably going to start with three separate inputs (on for each call button).

Other than possibly those issues, your table looks correct.
 
Last edited:

Thread Starter

kmarcheski

Joined Apr 28, 2012
9
I see whats wrong. At the moment the input is "the call button" and the output is "UP, DOWN, and OPEN".

So what I need to do is create a separate input for the following: UP, DOWN, and OPEN. When I create this truth table, this is when the "person is in the elevator", correct?
 

WBahn

Joined Mar 31, 2012
29,979
I see whats wrong. At the moment the input is "the call button" and the output is "UP, DOWN, and OPEN".
At the moment, based on your table, the inputs are "AtFloor" (the floor the elevator is presently on) and "CallFloor" (the floor on which the call button was pressed).

So what I need to do is create a separate input for the following: UP, DOWN, and OPEN.
I'm not sure I understand what you are saying? Are you saying that you need to create a separate K-map table for each of these outputs using the same set of inputs? If so, then yes. If you are trying to say anything else, please clarify and we can discuss it further. Or are you talking about adding additional inputs?

When I create this truth table, this is when the "person is in the elevator", correct?
I don't follow what you are trying to say, here. It seems like the assumption for this problem is that there is only one person that is going to use the elevator at a time and that we are only dealing with getting the elevator moving in the right direction, or perhaps that the elevator moves one floor at a time and then re-evaluates the inputs to decide what to do next.

It would really, really help if you go post the actual problem statement so that we can tell what information you have available and what assumptions are reasonable to make. Without that, we are shooting in the dark and may well lead you down the wrong path.
 

Thread Starter

kmarcheski

Joined Apr 28, 2012
9
<<<<I'm not sure I understand what you are saying? Are you saying that you need to create a separate K-map table for each of these outputs using the same set of inputs? If so, then yes. If you are trying to say anything else, please clarify and we can discuss it further. Or are you talking about adding additional inputs?>>>>

Additional inputs: So i add more?

Here is thing. There is no handout or explanation for the project. I think your right that we are assuming one person operating the elevator.

I need to design a logic circuit elevator for a 3 story building. That's all he provided us. Its as basic as it gets..... Im sorry that I dont have enough information. Everything seems fine at moment.

Do you need more information concerning the problem?
 

Thread Starter

kmarcheski

Joined Apr 28, 2012
9
Lets say we want to create a real working elevator for a real life situation. How would I go about that such as multiple people are operating the elevation. What would be my inputs and outputs....
 

WBahn

Joined Mar 31, 2012
29,979
I don't know if I need more information, but I can almost guarantee that you do.

If the project assignment is to design a logic circuit for the elevator in a three story building, and no further information is given, then I don't see how you can reasonably assume that there isn't someone (or five someones) already in the elevator going the other way when someone on the floor in the other direction calls the elevator or that the buttons on multiple floors are pressed at nearly the same time.

It's possible that the instructor intends for you to identify issues that need clarification and to seek out that clarification (that is something that, as a practicing engineer, you will be faced with all the time because your customers will give you incomplete information -- while thinking they are giving you everything you need -- and you have to figure out what further information about the problem is needed and go to them to get it).

I would ask your instructor if you are supposed to deal with people on the elevator and pushing call buttons on the floors at the same time. I would also ask if you are to deal with multiple requests being processed at the same time (i.e., someone pushes the button on Floor 3 and, while the elevator is moving in that direction, someone pushes the button on Floor 1).

At the very least, even if we assume only one person interacts with the elevator at a time, you still need to incorporate a way for them to indicate what floor they want to go to. If you are only going to give them UP/DOWN/OPEN buttons in the elevator, then you need to make it clear that it is the rider's responsibility to push the correct direction button and then, later, to push the OPEN button at just the right time to stop the elevator and close the doors.

You also need to make decisions about the details of your inputs, outputs, and state information. For instance, what does the "Floor at which the elevator is currently at" mean? What is the value of this variable when the elevator is partway between the second and third floor and is going up? How about the same position going down? When someone presses a call button, it is just a momentary signal that lasts only as long as they are holding it, or does it get latched and is remembered until the elevator actually arrives at the floor and opens the doors?

What kinds of circuits are you working with? Basic combinatorial logic? Sequential circuits? State machines?
 

Thread Starter

kmarcheski

Joined Apr 28, 2012
9
LOL, let me begin that you been very helpful! Its a basic circuit class for my degree, Computer Science.

Lets just stay a basic 3 story elevator. We are assuming everything... What do you think what would the inputs and outputs be...

Can we try this out? With all do with respect, I dont want to be wasting your time because it is due this Monday. Its really a Extra Credit Project...

Let me know what you would like to do, but I would hate to give up.

Thanks
Kate
 

WBahn

Joined Mar 31, 2012
29,979
Lets say we want to create a real working elevator for a real life situation. How would I go about that such as multiple people are operating the elevation. What would be my inputs and outputs....
We cross posted, but much of what you need to consider is in my prior post.

Think of someone sitting in a dark room and all they have available to them are the following:

1) A list of floors on which the call buttons have been pressed (let's assume that they don't know what order they were pressed).

2) A list of floors to which people on the elevator wish to go (let's assume that they don't know what order they were pressed).

3) Where the elevator currently is (more about this later).

4) What direction the elevator is currently moving.

The person, in turn, has the ability to tell the elevator to move up, move down, or open/close the door. They can also change the lists in items #1 and #2 above.

If you were the operator, how would you handle the various situations you might encounter?

Consider the following:

1) If you open the doors on Floor N, it is reasonable to assume that anyone wanting to get on the elevator on that floor did and anyone on the elevator wanting to get off on that floor did. So, after opening the doors, what would you do to the two lists in #1 and #2?

2) What assumptions are you making about what the elevator does in response to the commands you give it in order to get the desired results. For instance, you want the elevator to stop at Floor 2 and it is has just left Floor 1 and is moving upward. When do you issue the Open Door command? This brings up the question of when the information in item #3 changes.

3) With the prior point in mind, perhaps you want to change the definition of your inputs so that the elevator tells you what floor it is at or above and also an additional bit for if it is at that floor (and we'll assume that the elevator can respond instantly and stop as soon as you clear the UP/DOWN signals).

4) What about the assumptions that we don't know what order the buttons were pressed in? Does that cause problems? Let's assume that we don't care about efficiency, but we do care about guaranteeing that everyone will get to where they want to go eventually. Can you come up with a scenario in which someone stands at Floor 3 while the elevator keeps moving between Floors 1 and 2? Similarly, can you imagine someone in the elevator wanting to go to Floor 1 while the elevator keeps moving between Floors 2 and 3? If so, then how might you resolve this without knowing what order buttons were pressed?
 

WBahn

Joined Mar 31, 2012
29,979
LOL, let me begin that you been very helpful! Its a basic circuit class for my degree, Computer Science.
That helps some. Have you covered sequential circuits and state machines in this class, or just basic combinatorial logic (logic involving basic gates such as AND, OR, NOT, XOR)? The answer to that really drives what constitute reasonable assumptions for this problem in this course.

At the risk of playing mind reader, knowing that it is an extra credit assignment may mean that you are expected to put more effort and thought into the subtleties of the problem.
 

Thread Starter

kmarcheski

Joined Apr 28, 2012
9
Brain Damage!

I dont want the answer, but I think you may know how to design the circuit. Am I correct.

You completely lost me....

From the table that I have, what can I conclude from it. How would I add another person operating the elevator. It seems that one person is operating at the moment. What can we do?

See attachment
 

Attachments

WBahn

Joined Mar 31, 2012
29,979
Without knowing the types of circuits that it is reasonable to expect you to be able to design, I don't know what assumptions about the assigned project are reasonable. I have a good idea what assumptions would be reasonable under different expectations and I certainly know how to design the circuits once those assumptions are made.

For the table as you have it, I would say that, at best, you might be able to get the elevator to someone and have the door open when it gets there. More likely, you would stop the elevator and open the door midway between floors.
 
Top