Yes, it should say:I do not understand what this is, could you explain it, is it a typo?
This is so no outputs ges stranded in ON state
Place a "1" in an elevator call button (one of the 6 FLOOR or Corridor buttons (0's) as the schematic called them, or in the 6 CAR buttons (0's) inside the elevator, for a floor NOT where the elevator car is located).How do we play with the values to have this spreadsheet return something?
Because you wanted to simplify the elevator functions into 2 subroutines, you have to reuse the Door Close and the Door Open outputs in TWO different places (double coils).
This can work only because each output is not in the same ladder file, and only IF each output is NOT left ON in any subroutine.
Place a "1" in an elevator call button (one of the 6 FLOOR buttons or the 6 CAR buttons inside the elevator,...
They sure must have been! Good one.The team were very appreciative that I found the problem,...
Yes, only for this crippled 2-floor version that automaticaly returns to the 1st floor, then I think if you added a Close Door and a Open Door subroutine, then you could avoid the double-coil problem and not have to worry about leaving an output ON, because each output should finish its job within its own subroutine (as now already happens for the Motor Up and Motor Down in the Going Up and Going Down subroutines). If you do add these two subroutines, then you will probably need to call them from within the Going Up and Going down Subroutines at the time that the door needs to close or open, not from the Main Lad 2 file. Otherwise you would have to add even more subroutines such as Open Door Going Up, Open Door Going Down, Close Door Going Up, and Close Door Going Down and that would get you back to the double-coil problem. An option would be to use a Flag or Step relay in the Going Up and Going Down subroutines, that in turn could be used to call the Door Open and Door Closed routines from the Main Lad 2 program.How many subroutine would you suggest in order to break down this program? Can it be easily done?
EDIT: I see only these additional: "Close Door"; "Open Door";
EDIT: I am not too sure if a "subroutine of a subroutine" returns to where it was called after it's execution. I assumed it does.
Go back and read your instructions again, or go to the nearest elevator and watch how it works. Understanding the task is key to being able to solve it. I think your current "elevator" will go to Level 2 WITH THE DOOR OPEN, then try to close it! Let me know which building your elevator is going to be installed into, so I can be sure to use the stairs!OPTION 1:
The elevator is called from level 2 by the external call button IP0 being pressed. The elevator doors should then close via OP3, then once closed, IP5 (doors closed sensor) should energise. ...
It is still messy, but that is expected when you stuff 6 basic elevator steps into 4 subroutines.
Is your goal to see how many subroutines you can use, or to get a working version?
By "actual I/O", do you mean the actual I/O for simulating a real elevator? If so, I can think of 3 or 4 functions that would be needed, such as First-Scan Initiallization (where you reset all outputs, flags, and timers to make sure that some did not get left on the last time the program ran, and then place the elevator at a starting position, such as the 1st floor), Catch Floor Requests (where you look at ALL floor pushbuttons and seal in the valid requests from either the Floor or the Car call buttons- which allows call buttons to be pressed and recorded EVEN WHEN the elevator is in motion from a previous request), Do Next Request (where your rung logic figures out the next floor to go to even if some requests call for going up and some call for going down), Track Car Movement (where you look at the elevator encoder value and determine when it reaches its next floor), Simulated Encoder (where you set up a timer and counter to simulate the movement of the elevator with a numeric value for the floor positions from 0 to 20 for a 2-floor elevator). If you want to learn useful stuff, then the above new subroutines should give you plenty of opportunities.What could be the 2 other subroutines that could be added given the actual I/O?
By "actual I/O", do you mean the actual I/O for simulating a real elevator?