ganutenator
All I was doing was simplifying your code, removing double references to the pushbutons (the PB one-shot along with the PB on your timer rung), etc.
The code can be simplified further. First off, take the last rung (written correctly):
BUTTON A BUTTON B TOGETHER
BUTTON_A TIMER BUTTON_B TIMER OK TO START
---+----| |--------|/|--------| |--------|/|----+----( )
| |
| TOGETHER |
| OK TO START BUTTON_A BUTTON B |
+----| |--------| |--------| |---------------+
.
Since -| |- BUTTON_A and -| |- BUTTON_B appear on both branches, the rung can be reduced to:
BUTTON A BUTTON B TOGETHER
BUTTON_A BUTTON_B TIMER TIMER OK TO START
-------| |---------| |----+---|/|--------|/|----+----( )
| |
| TOGETHER |
| OK TO START |
+----| |--------------+
.
And then you ask yourself "Why do I need two timers?", and so you remove them, and you are left with this:
[attachment]
which, gee, is the logic that Rick posted (only using the NOT /DN bit instead of the /TT bit).
But you wrote it, not me. I just eliminated the one-shots, since the timers were only going to run while the PB was pushed anyway, and removed the logic that was making the OK TO START bit a one-shot.
I did cheat and add the seal branch, since when I was done, I could see that the OK TO START bit was only going to be ON for the duration of the shortest timer, making it neither a one-shot nor a sustained bit (but plenty good enough to initate a start cycle in the way that you intended it to be used).
ganutenator (Mike is it?), you said:
I kept going back and adding logic to try and fix the code that I origionally started instead of just re-doing.
One rule of thumb in debugging I use is that I know I'm doing it right when I'm
removing code. Adding code is usually just a bandage on top of a wound. You have to remove existing bandages, and clean out the wound for it to heal right. That isn't the same as re-writing it