Just to clarify the JMP instruction for the 800 series in CCW. It allows you to basically just jump rungs in the same program only. To implement it, you need to add the label by going to the rung you want to jump to and right click and "add label". Name the label. Then, wherever you drop a JMP instruction you add the name of the jump label you created, to it. The jump seems very buggy to me thus far so I would avoid using it. Use some conditional logic instead perhaps. That's the way I've gone about it. So far, to my understanding, the "programs" all run sequentially in the order they were created. CCW has been quite different than RSLogix for me, but I am beginning to like it more as I use it more.
In my current project, i have a program called "outputs" where I am actually energizing the relay outputs on their own rungs. In any other program where I want to energize a relay output I create and use a unique variable to do it by adding it on the rung in the output program that contains the DO i want to energize.
The reason i mention that is because during testing and messing around with the jump instruction, it seemed that even while jumping rungs, a false output or bit within the section being jumped would still affect that bit if used elsewhere, even though that logic should not be parsed. I'm not sure, but it seemed like that was happening. That's why I'm saying I'd avoid using JMPs