Travis,
You can make it even easier to understand. For CroCop's Item 1, I suggest that you substitute this:
1A. Make Output List. *(see below for explanation)
1B. Add Output Rungs in Ladder Logic.*
1C. Add Inputs.*
2. Wire IO. Use the .pdf off of Automationdirect, it's got good schematics.
3. Prove that you have manual control.
4. Create a process flow chart. Describe what needs to happen to operate your machine. Compare and make this the same as your PLC program. I know, this is backwards from the reccommended procedure, but hey, that is the way most of us work!
5. Print out the process flow control chart.
* Explanation of Changes
1A. Make Output List. What Outputs do I need (or have available) to make the project work? The Outputs are the place to start, especially for beginners. It is the Outputs that do the work and create the results, but for some reason this is the LAST place that most programmers think about. A list of the Outputs becomes a simplified Flow Chart at this point in the program development.
1B. Add Output Rungs in Ladder Logic. Add an Output rung for each of the Outputs. Do not worry about Inputs, or any program error message that you see at this point. Label and add comments for each of these rungs. Only if you get the Outputs set up properly can you expect the program to work. Here is where you get to add your Outputs in the order that makes logical sense for you. For example, the first output that must be turned on can be assigned to the first available physical output (O:1/0 for example) and is the first ladder rung in the program at this point, the second one can be O:1/1, and so on. If you place them in the program in some logical order as much as possible, it makes everything else easier.
1C. Add Inputs. Start at the top of your laddder and ask yourself, "What Inputs are necessary to make this Output work?" Forget all other outputs while you work on getting this one to work. Add these Inputs (and any internal bits) to the left side of each Output rung. Try to have only 1 rung for each Output, but insert new rungs and add Timers, Counters, and so on, above each output rung for which those things are associated. Add labels and comments so that anyone could figure out how it works.