There is nothing really wrong with using the real output addresses on the contacts. My personal preference is that I would normally use internal addressing (for example "B" in AB or "C" in Automation Direct) to develop the logic instead of real output addressing. I would then use the internal relay logic to operate the real outputs. Some say this is redundant but I can re-assign the outputs easier in the event of a hardware output failure. In response to post #5, the 0.00, 0.02, and 0.04 contacts would have to be activated with other logic rungs that are not shown. Otherwise, as you said, there would be no purpose for them.