elevator controller design
#1

[attachment=3514]

Elevator Controller Implementation

Presented By
Abhishek Gupta Varun Aggarwala
Under the guidance of Dr. J.K Deka

Problem statement:

To design an Elevator controller for any number of floors.
Algorithm:

There are different algorithms that could be used for designing the elevator controller. The important one's are:

1. elevator algorithm::
Serve the entire request in one direction and then reverse the direction.
2. shortest seek first
Serve the request closest to the present floor
3. first come first serve
Serve requests as they arrive.
We have used ELEVATOR ALGORITHM. Justification for using elevator algorithm
1. Disadvantages of shortest seek first:
Irrespective of the time at which request is placed, it only caters to the request
closest to the present floor.
e.g. If someone places a request for 100th floor
there are lots of other requests for nearby floor as it is a busy place
also if they keep coming .
then that person's request is not at all catered to for a long time .
2. Disadvantages of first come first serve basis
e.g. Inefficient as far as power requirements are concerned
also more time will be taken on an average to reach the required destination.
The elevator algorithm takes care of these two shortcomings by catering to the request in it's direction then reverses direction when we reach top floor or there are no more request for the upper floors ;the same is repeated for the downward direction .

IMPLEMENTATION:

Behavioral level description of elevator controller in Verilog HDL

The behavioral level description of elevator controller was based on elevator algorithm. The implementation was based on the A.S.M (algorithmic state machine) for the problem and its state diagram.

The description was based on transfer of control from one state to another depending on the present floor of the elevator.
We used the concept that the elevator initially checks what the present floor is and then depending on the value of the present floor it transfers the control to state T [2] (used by us in coding) if present floor is zero and to T [3] (used by us in coding) if present floor is the maximum. The control goes to T [4] if present floor is anywhere in between of the two limiting floors.

If in state T [2] it caters to the request in upward direction and the opposite if in T [3].

The circuit checks in state T [2] if the present floor becomes destination floor .If it is true than it opens the door for appropriate time and then closes it again and unloads the corresponding value from the queue. The control then goes to T[4] or remains in T[2] depending if there is anymore request to cater to in the upward direction.

The circuit checks in state T [3] if the present floor becomes destination floor .If it is true than it opens the door for appropriate time and then closes it again and unloads the corresponding value from the queue. The control then goes to T[4] or remains in T[3] depending if there is anymore request to cater to in the downward direction.

The circuit in state T [4] checks:
1: If the direction is upwards of the elevator and if has catered to all the requests in the upward direction and also there is some request at a floor lower than the present floor then send the control to T[3] to serve for the request down the present floor.

Also if there is no request in a floor lower to the present floor then it checks if some request has come in the floor above the present direction .If true the control is sent back
to T[2] else T[1].

2: If the direction is downwards of the elevator and if has catered to all the requests in the downward direction and also there is some request at a floor above the present floor then send the control to T[2] to serve for the request above the present floor.
Also if there is no request in a floor above the present floor then it checks if some request has come in some floor below the present floor. If true the control is sent back to T [3] else T [1].

Implementation of queue: Queue is defined as input to our main module and is defined as reg in test bench and the value is altered from the test bench.

Gate Level description of elevator controller in Verilog HDL

Storing Mechanism:

1. Loading and unloading of the requests should be independent of clock hence a LATCH IS USED AS STORING MECHANISM
2. If we reach floor we should unload the request for that floor.
3. D_LATCH:
Standard d-latch is used
If control = 0, no change in output
If control = 1, the value at input terminal of the latch is loaded The input of the latch is provided as
(Floor loading request +the request in that floor)* & (unload request)
4. With two 3 * 8 decoders, load and unload decoders
and the above D LATCH and also 1 latch per floor we implement Storing mechanism

5. Clear is uses to preset the value at the output terminal of latch to 0.
so that an unknown value is not there at output terminal of the latch

Control Circuit:

1. 1 hot assignment is used i.e. 1 flip flop per state is used at any time exactly one state was 1 and rest all were 0.
2. State transitions are synchronized with clock pulse
3. Time period of the clock pulse = time taken by lift to go from 1 floor to another.
Inputs of the control circuit
1 Supply: If supply is 0 then no state transition takes place it denotes the fact that if Power goes of then lift remains at its present location and whenever we switch on the supply control resumes from the state where the control stopped originally.
2 Clear: It is used to initially load the T [0] state to the flip flop outputs.
It is also used to initialize direction of lift.
3. Pfloor: value of the present floor.
4. queue_op: stores the request of the unvisited floors.
Note: States are a direct consequence of state diagram, since we are using One hot assignment

Output module

T: The value of the states depending on the state as evaluated by control logic, the present floor is either incremented or decremented or remains same.

Unload reachfloor: Depending on whether we have reached our destination or not, we unload that floor's entry from the queue.

Other important variables:

1. xl: It is 1 denotes that there is at least one unattended request for a floor less than equal to it .It is 0 denotes that there is no request that is unattended at a floor less than equal to it .
2. xr: It is 1 denotes that there is at least one unattended request for a floor greater than equal to it . It is 0 denotes that there is no request that is unattended at a floor greater than equal to it.

Other calculations:

1. Finding xr: Present floor value is saved in a temporary variable it is fed into a
decoder these values are multiplied with the output of the queue .If this value is 0
then increment the value of temporary variable and repeat the process .This process
stops only when output after the taking the product of bits of temporary variable
comes out to be 1.
Also we have to make sure that the value of temporary variable does not exceed 6 and if it reaches 6 it implies that there is no request in the queue above the current flloor. Hence value of xr is set to 0 if floor reaches 6.Else the value of xr is set to 1 if temporary variable does not reach 6 and is stopped in between.

2. Finding xl: Same circuit as above, instead of incrementor we put a decrementor.
Output module:


Pfloor: The value of the present floor. Initially we have loaded the present floor value as zero. We have asynchronous clear to clear its value to zero. If supply goes off, then lift remains at the present floor and it starts its function as required the moment the supply is turned on again.

This module basically increments or decrements the value of the present floor depending on its current state at positive edge of the clock.

Comments

The code can be made to work for any number of floors by using the appropriate decoder. References:
1: M. Morris Mano: Digital Design 3rd edition: Prentice Hall of India.
2: Palnitkar, S: Verilog HDL: A Guide to Digital Design and Synthesis: SunSoft Press
(A Prentice Hall Title)
3: Thomas D.E and P.R Moorby: The Verilog hardware Description Language: 4th edition: Kluwer Academic Publishers.
4: Enhanced Verilog Tutorial with applications from aldec.com
Reply
#2
[attachment=9302]
Applications
Elevator Control

 Control and monitor access to elevator
 Control and monitor access to floors
 Compatible systems
 NexSentry Command Center
 NexSentry 4100 Series Controller
 Alto 818
 SE 422
Guard Tour
 Use both readers and contact input points as tour stations
 Define, schedule, monitor, report
 Unlimited tour, station support
 Powerful standard features
 Tour route definition
 Tour scheduling
 Tour status monitoring
 Tour cancellation
 Tour reporting
CCTV
 Enhance security by integrating CCTV with monitoring functions
 One or more cameras can be controlled by a monitor
 User-definable pre-determined position of pan, tilt, zoom
Parking and revenue control
 Control access to parking facility, while allowing easy access to approved credential holders
 Control parking lot revenue
 Advanced functions
 Lot full control
 Ticket spitter control
 Cash ticket processing
 Validated ticket processing
 No ticket processing
 User-definable rate tables
 Activity reporting
 Nested parking
ADA compliance
 DigiReader proximity provides disabled easiest access to secure areas
 Hands-free access
 Longest passive proximity available
 Credential can remain in pocket, purse, or on badge
Time & attendance
 Clock in and out using access credential
 Automates capture of hours worked
 Provides error free data to a payroll system
 Closely monitors employee access to highly secure areas
 Time-saving functions:
 Clock in/out
 Time transaction processing
 Payroll interface
Reply
#3
i have my verilog code but it does not work fully when i input the pin planner

module Elevator(clk,floor,reset,motor,dir,ledup,leddn,dropen,drclose,doorstate, clk4,motion);
input clk;
input reset;
input motor;
input dir;
input [2:0] floor;
input [2:0] doorstate;
output ledup;
output leddn;
output dropen;
output drclose;
output [1:0] clk4;
output motion;

reg ledup;
reg leddn;
reg drclose;
reg dropen;
reg [1:0] clk4;
reg motion;

function isclosed;
input [2:0] d;
isclosed = (|d == 0);
endfunction

always @(posedge clk)
begin
if (reset) begin
ledup <= 0;
leddn <= 0;
drclose <= 1;
dropen <= 0;
end

if (motor == 1 && dir == 1) begin ledup <= 1; motion <= 1; end

if (motor ==1 && dir == 0) begin leddn <= 1; motion <= 1; end

if (motor == 0)
begin
ledup <= 0;
leddn <=0;
end


/* The following section check whether the elevator has reached the
desired floor, with the doors closed and has turned of the motor
before opening the doors. */
begin
if (floor[0] == 0 || floor[1] == 0 || floor[2] == 0)
/* if the door is closed and the motor is off then open the door */
if (isclosed(doorstate) && motor == 0 && motion)
begin dropen <= 1; motion <= 0; end
end
/* once the doors are open stop opening i.e dropen =0 and then close them */
if(dropen && !isclosed(doorstate)) begin dropen <= 0; drclose <= 1; end

/* doors are closed stop closing i.e drclose =0 */
if(drclose && isclosed(doorstate)) drclose <= 0;

clk4 <= clk4 + 1;

end
endmodule


// Verilog program for the unit device
module unit(gndfloor,clk,reset,ledup,leddn,dropen,drclose,TC,bottom,top,position,door,doorstate);
input gndfloor;
input clk;
input reset;
input ledup;
input leddn;
input dropen,drclose;
input TC;
input bottom;
input top;

output doorstate;
output [4:0] position;
output [0:2] door;
reg doorstate;
reg [4:0] position;
reg [0:2] door;



always@(posedge clk)
begin
if (reset) begin
position[0] <= ~gndfloor;
position[1] <= 1;
position[2] <= 1;
position[3] <= 1;
position[4] <= 1;
door[0] <= 1;
door[1] <= 1;
door[2] <= 1;
end

if (ledup == 1) begin
//position <= ((position * 2) + ~bottom);
//position <= ({position,~bottom})*2;
position[4:1] <= position[3:0];
position[0] <= bottom;
end

if (leddn ==1)
//position <= 'b11111; //{position, top} << 1;
//position <= ((position/2) + top ? 'b10000: 0);
position <= ({top,position})/2;


if (position[0]==0 && dropen) begin door[0]<=0; door[1:2]<=door[0:1]; end

if (drclose) begin door[0:1] <= door[1:2]; door[2] <= 1; end

if (door[0] == 0 && door[1] ==0 && door[2] ==0)
doorstate <= 1; /* if the door leds are lit then the door isn't closed (open)*/

if (door[0] == 1 && door[1] == 1 && door[2] ==1)
doorstate <= 0; /* if the door leds are not lit then door is closed */

end
endmodule


// Verilog program for a three-level elevator controller
module lift3(floor,clk,reset,Ecall,motor,dir,Target,presentfloor);

input [2:0] floor;
input clk;
input reset;
input [2:0] Ecall;

output motor;
output dir;
output Target;
output presentfloor;

reg motor;
reg dir;
reg [3:1] Target;
reg [3:1] presentfloor;

always @(posedge clk)
begin

if (reset) begin
motor <= 0;
presentfloor <= 1;
Target <= 0;
end

if (Target==0)
begin
if (Ecall[0]==1) Target <= 'b001;
if (Ecall[1]==1) Target <= 'b010;
if (Ecall[2]==1) Target <= 'b100;
end



begin
if (floor[0]==0) presentfloor <='b001;
if (floor[1]==0) presentfloor <='b010;
if (floor[2]==0) presentfloor <='b100;
end

if (motor==1 && presentfloor==Target) begin
motor <= 0;
Target <= 0;
end


if (motor==0 && Target !=0)
begin
if (presentfloor < Target) begin
//dir up
motor <= 1;
dir <= 1;
end

if (presentfloor > Target) begin
//dir down
motor <= 1;
dir <= 0;
end
end

end


endmodule
Reply
#4

to get information about the topic "elevator controller design using vhdl" full report ppt and related topic refer the page link bellow

http://studentbank.in/report-elevator-co...e=threaded

http://studentbank.in/report-elevator-co...e=threaded

http://studentbank.in/report-elevator-co...e=threaded

Reply

Important Note..!

If you are not satisfied with above reply ,..Please

ASK HERE

So that we will collect data for you and will made reply to the request....OR try below "QUICK REPLY" box to add a reply to this page
Popular Searches: elevator controller veriolg, elevator controller vhdl, design of a dual elevator controller, elevator mechanical design pdf, elevator design ppt, coding for an elevator for robotc, plc based elevator controller,

[-]
Quick Reply
Message
Type your reply to this message here.

Image Verification
Please enter the text contained within the image into the text box below it. This process is used to prevent automated spam bots.
Image Verification
(case insensitive)

Possibly Related Threads...
Thread Author Replies Views Last Post
  DESIGN AND CONSTRUCTION OF A TWO – WAY WIRED INTERCOM seminar class 8 18,747 08-07-2018, 06:37 PM
Last Post: Guest
  DESIGN AND IMPLEMENTATION OF GOLAY ENCODER AND DECODER computer science crazy 2 22,580 26-08-2016, 03:46 PM
Last Post: anasek
  DESIGN AND IMPLEMENTATION OF ASYNCHRONOUS FIFO FOR EMBEDDED APPLICATIONS computer science crazy 1 21,892 14-04-2015, 05:38 PM
Last Post: Guest
  Micro controller based automated irrigation system Electrical Fan 28 20,802 29-01-2015, 05:32 PM
Last Post: Guest
  Micro Controller based Power Theft Identifier seminar projects crazy 26 14,245 17-10-2014, 08:21 PM
Last Post: jaseela123d
  Micro Controller based Security System using Sonar seminar projects crazy 3 3,593 28-09-2014, 05:50 PM
Last Post: Guest
  Automatic Room light Controller with Visitor Counter project topics 26 17,328 12-03-2014, 07:22 PM
Last Post: computer topic
  DESIGN AND IMPLEMENTATION OF RADIX-4 BOOTH MULTIPLIER USING VHDL project computer science technology 8 24,284 12-11-2013, 05:36 AM
Last Post: Guest
  AUTOMATED TRAFFIC SIGNAL CONTROLLER full report project topics 7 10,182 02-09-2013, 10:40 PM
Last Post: Guest
  Design and Analysis of GPS/SINS Integrated System for Vehicle Navigation seminar class 1 1,162 12-08-2013, 07:49 PM
Last Post: Guest

Forum Jump: