NOP = No Operation. It's a means of inserting a rung of code with no output instruction (OTE, MOV, COP, et al). As mentioned, it's usually used to break up a section of code, usually with a rung comment attached to it. Can also be used as a placeholder for future code. And lastly, it's good practice if you have an empty subroutine to at least have a rung with a NOP. RS has a bit of a 'feature/bug' that when you create a new routine, it'll compile unless you open the routine. Then it creates an empty rung that won't compile. You can delete the empty rung and compile, but next time you open the routine again, it will recreate the empty rung. For that purpose, it's usually wise to put a single rung with NOP in an empty routine. Of course if you can, don't leave empty routines, but often it's practical to create routines for future code/features.