First you should correct your Exercise 2, so you can use it as the base for the remaining Elevator exercises. If you don't get the basic design correct at first, it will not work later. Here are the problems with your Exercise 2:
File 2 Main
Rung 0: Sub U:3 is mislabeled "Stop and Open Door". It should be labled "Initialization". When in doubt, look at your rung comment, which plainly says "Subroutine U3 contains all initializatin logic that needs to execute on the first scan". How could you ignore that comment, and then label the JSR as "Stop and Open Door"? (Stop & Open Door is U:8).
Rung 1: Label the JSR U:4 as "CATCH FLOOR REQUESTS".
Rung 3: Label the JSR U:6 as "CLOSE DOOR && MOVE".
Rung 5: Label the JSR U:8 as "STOP && OPEN DOOR".
File 3 INITILIZATION subroutine
Rung 0: You don't need to clear the subroutine bits. The subroutine calls are handled correctly by the Main File 2, so you don't have to clear them here.
Rung 1: The CLR (clear) instruction sets the bits in a 16-bit word to 0. You must not try to clear each bit separately.
In the real RSLogix software, this will ALWAYS result in an error message and your program will not go into RUN mode. See the attached picture. Instead, you only need to CLR B3:0. That will set all bits from B3:01 to B3:0/15 to 0. Use another CLR B3:1 to clear bit B3:1/0.
Rung 3: Move rung 001 from Sub 4 and put it here as Rung 3. Bit B3:0/1 "Do Next or Wait" should always be first unconditionally latched ON in the Initialization subroutine, not in Sub 4. Sub 4 is looking for elevator request buttons, not at the Do Next bit, so you should not confuse and combine the two functions. In other words, you have subroutines for each function, and you should try to keep the appropriate function in its proper subroutine. It is called program organization, and it is a requirement for large complex programs. Mixing and hiding functions in the wrong places results in much frustration and hair-pulling while trying to find where something is done.
File 4 CATCH FLOOR REQUESTS subroutine
Rung 0: Okay
Rung 1: Move to Sub 3
Rung 2: You need to add a rung (similar to Rung 0) that checks for the press of button I:1/4 INSIDE the car. Remember, for every floor, the elevator has TWO places from which it can be called (floors and in the car). You have handled the 4th floor call button. Now you need to do the same for the 4th car button I:1/4 and 4th Car Light O:2/4. When you do exercise 4, you will need these 2 rungs for EVERY floor.
File 5 NEXT REQUEST OR WAIT subroutine
Rung 0: The first rung should unlatch bit B3:0/6. that will be very important later.
Rungs 1 and 2: Your existing Rung 1 logic should be moved to Sub 4 (where it belongs). (Also for the O:2/4 output, use similar logic to what you used in Sub 4, Rung 0.) For the new Rungs 1 and 2, you need to develop "Going Up" and "Going Down" bits. Yes, you can squeak by without them -- for now.
File 6 CLOSE DOOR & MOVE subroutine
Rung 0: Add XIO I:3/2 Closed Limit and I:3/4 Door Switch to your Close Door logic. Otherwise, the door motor can burn out when the motor is kept running long after the door is closed.
Rung 1: Add the following to your Car Up Motor: (1) XIC O:2/0 Stop Car Output. This is similar to an Emergency Stop function. It is there so must be programmed. (2) XIC I:3/1 Elevator Up Limit Switch. Without this switch, if something goes wrong, the elevator winch can try to pull the elevator into the winch house at the top of the shaft.
Rung 2: Add a rung for the Car Down Motor O:4/1. (You need this motor to return to the 1st floor, and this is the place for any MOVE function). Use the following conditions for your Car Down Motor: (1) XIC O:2/0 Stop Car Output. This is similar to an Emergency Stop function. It is there so must be programmed. (2)XIO I:3/2 Door Closed Limit Switch; (3) XIC I:3/0 Elevator Down Limit Switch. Without this switch, if something goes wrong, the elevator winch can allow the elevator car to drop into the basement, or crash into the floor!
File 7 TRACK CAR MOVEMENT subroutine
You sort of forgot what is the main function of this subroutine, to track car movement. In other words, the purpose here is to detect WHERE the car is at all times. If it arrives at a selected floor, then the next Sub 8 Stop & Open should be called. That's all Sub 7 should do.
Rung 0: You are way off the target here. The I:3/1 is the emergency Car Up Limit Switch. It should normally NEVER be contacted, but only when something goes wrong and the car goes too high. There is one sure thing that tells you when the car is at the proper stopping place on the 4th floor. It is the encoder value at Input word I:5. When I:5 = "45", the car is on the 4th floor at the position for the door to be opened. If you wait until I:3/1 is ON, you will notice that the elevator car is above the floor about 12" too high. Some old lady will break a leg trying to jump down from there! This is a huge error in your program.
Rung 1: Correct it so that O:2/15 (controlled by I:5) determines if and when the car reaches the 4th floor, and O:2/12 determines if the car reaches the 1st floor (I:5 = 295). Also the Door Close output O:4/2 should not be unlatched here in the Track Car Movement subroutine. (The Close Door motor should already be turned off in Sub 6 as controlled by I:3/2 and I:3/4. Othewise the motor will burn out when it continually pushes against the closed door).
Rung 2: Move the Car Up Output Unlatch to Sub 8 (where it properly belongs in the STOP & OPEN routine).
File 8 STOP & OPEN subroutine
This subroutine needs to stop the Car Up motor, the Car down Motor, and if the Emergency Stop pushbutton is pressed, Output O:2/0 should be turned ON. After the motors are off, then the B3:0/4 Car is Moving and B3:0/5 Close & Go bits should be unlatched, and settling timer T4:0 reset to 0.
Rung 0: This is where you should turn on O:2/0 if required, and unlatch O:4/0, and O:4/1 (all part of the STOP function in this Stop & Open subroutine).
Rung 5: No, you have used I:3/1 Upper Travel Limit to turn on O:2/15. That is wrong! If the car hits I:3/1, it has gone too far up! When I:5 = 45, turn on O:2/15.