I assume that this is a passenger (human) 3-floor elevator?
You should use the divide-and-conquer method: Divide the functions into about 6 subroutines, or steps. Program each step as if it were a separate program but having common addresses and symbols with the other routines. Then tie all steps together with Jump-to-Subroutine instructions, or by using step or stage relays.
Dividing into manageable chunks allows you to think about how each part works while not having to think about the other steps.
Here is one way to divide the parts:
1. Initialization where you look at the 1st PLC scan and set all parameters that need to be set to place the elevator at Home Position (usually at the first floor).
2. Look for Floor Requests. Look at the Car and Corridor pushbuttons to detect requests, and for each one, latch on a relay that will stay on until that request is filled.
3. Do Next Request, or Wait. If there is a floor request, start the process to move the elevator. Set the internal Going Up or Going Down relay. If there are no requests, wait for one.
4. Close Door, and Move. Activate the Close Door motor until the Door Closed Limit Switch is ON. Then if Going Up is ON, activate the UP motor. If Going Down is ON, activate the DOWN motor.
5. Track Car Movement. If you are using an encoder or simulated encoder, then when the Car is at the next requested floor, call the Stop and Open Door routine. If you only have car position limit switches (see last paragraph below), then your job will be harder, because you will need to anticipate each stop so that the car will coast down or brake to stop at the exact floor position.
6. Stop and Open Door. When at the next requested floor, Stop the car movement, then activate the Open Door motor until the Door Open Limit Switch is ON.
TIPS: You need to first do a better job of definining your Q outputs. "Q3 magnetic valve is worthless to a programmer. It is best to put a title that describes WHAT the valve DOES, instead of what it is physically. I think you should use something like "Q3 Door Open Valve" and "Q4 Door Close Valve".
Q5, Q6, and Q7 are not going to help you much. You are assuming that you can use an output to drive the Motor UP or Motor DOWN to a set position. Maybe if you add a timer set to run the DC motor for the exact time to go to each floor, that might work. But how to you then get it back to the 1st floor from Floor 2 or 3? How do you go from Floor 2 to Floor 3? How do you go from Floor 3 and stop at Floor 2? It seems your elevator is going to be very limited if you use these Q5, Q6, and Q7 Outputs.
It would probably work better if you deleted Q5 to Q7, you added 3 extra Car Position magnetic sensor Inputs. Then you could have a sensor at the top and bottom of each floor position. Then as the car goes up, first the top of the car will trigger 2nd Floor Bottom Sensor. Knowing that the car is arriving at Floor 2, you could then start a timer that stops the car so that its top will trip the 2nd Floor Top Sensor. Repeat for all 3 floors, and you then have a way to stop the car at each floor. If this is not accurate enough, you could even develop 2 speeds, one with the motor on constantly until the 1st sensor is triggered, then switch to a slower "jog speed" where you use a timer to jog the motor until the car triggers the 2nd floor sensor on each floor. These sensor functions will "switch", depending on whether the Going Up or Going Down relay is ON. You can see that it is important to set up the internal Going UP and Going Down relays.