Hlioua,
You can do an elevator for 2 to 10 floors without using a queue or FIFO. You could use those methods, if you really want to do the work to understand how they work.
For Step 2, for each floor, you have a relay. If there is a Car Request (button inside the car) for a floor (say the Car Floor 3 buttons has been pressed ). Then you simply look for the "Car 3" button, then Latch or Set the "Car Floor 3 Request" relay. Do that for all floors. Also you need one more set of "Floor Request" relays for the Floor Buttons (located beside the elvator shaft). For the bottom (1st) and top floors, you only need a "1st Floor UP" relay and a "Top Floor DOWN" relay (the only direction the elevator can go from each of those locations). For all other floors, you need a "Floor Request-xx UP" and "Floor REquest-xx DOWN" relays for each floor. These two sets of relays become your "pending" actions, to be done at some time in the future.
For Step 3, you set up Travel Direction relays, "Going UP" and "Going DOWN" relays. For the UP relay, look at all conditions where the Elevator needs to go UP, and for the Down relay, look at all conditions whre the Elevator needs to go DOWN. Now the NEXT direction of travel for the elevator is set.
For Step 4, you close the door and start either the UP motor or the Down motor, depending on the status of the "Going UP" and "Going Down" relays.
For Step 5, as the elevator moves up or down, you check each time to see at what floors it needs to stop. Look at the Car Location (as determined by an encoder position value, and/or position limit switches) AND the Floor Request relays. If any combination of Car Location and Travel Direction AND Floor Request is TRUE, then STOP and open the door (or gate). The check for a STOP position would look similar to the attached picture. The lowest and highest floors are simple, but all in-between floors needs logic similar to the 2nd and 3rd floors shown below.