I came from a computer programming background as well and I think that was probably the hardest thing for me - unlearning ingrained habits from that world. PLC ladder logic is fundamentally different and failing to wrap one's head around that is probably the most common problem I see with new PLC programmers.
Joe Tauser's State Machine example shows the proper way to handle situations where you are stepping through a process sequentially and want to avoid code until it's time for it. It definitely opened my eyes some years ago when he first posted it here.
Thanks Flex727 for all the advice so far. I am here to follow the advice of professionals, not to ignore it :-)
I think I do know what I have to do now. Im going to create more subroutines to keep everything more readable, but all of the subroutines will be read one after another and they will all share the same state counter. That way I don't need the conditional triggers you are referring to.
You are right that I try to program it to much like a computer (it's the only other programming experience that I have)
I'm offering advice based on my experience. You're free to accept or ignore it as you choose. My way of doing things is my way, not the only way. My philosophy is to never use GoTos or conditional triggers for subroutines. I find that it's a better way, but it's not the only way.
In my opinion, subroutines in ladder logic should be used differently than subroutines in normal computer programming. A normal computer program has a beginning and an end with subroutines for specialized tasks. In ladder logic, you have continuous execution of all code in a never-ending loop. Going off to execute a subroutine for a specialized task, or using GoTos, risks triggering the Watchdog Timer, which is a major fail for the programmer. I use the Main Routine only for Power-Ups and subroutine calls. Then all the code is broken up in logical chunks for easy understanding and readability into subroutines.
DOH! So originally I had tried the Ctrl+A, Ctrl+C and it did not work. I have a bad habit of closing down VisiLogic when switching to a different program, so the "clipboard" data is lost as well.....
Problem solved by leaving VisiLogic open and switching programs.
Here is what the top part of my primary desktop looks like. I position the Version Swapper icon under the VisiLogic version that is currently active and swap as needed. Why so many versions? I refuse to update the firmware at a customer site if the installation is working. "If it ain't broke, don't fix it." Version Swapper works great and reliably on my Windows 7 system.