1. A programming apparatus for an industrial controller which has a processor module that stores and executes a machine language program to control a machine, machine control dividable into different control task types corresponding to different physical and operational machine characteristics, each control task of a specific type including at least some common characteristics and often task distinct characteristics, the apparatus to be used with a template set including template types, each template type designed to control a different one of said control tasks, some templates including a logic section that provides machine language logic for common characteristics of an associated control task type, some templates including a child module specification section for designating instances of other templates required to further specify additional logic needed to control task distinct characteristics, wherein each template instance is a module and each module that references another module is a parent module, the apparatus for providing a complete template based machine tree for the machine, the apparatus comprising: a memory means for storing the template set; input means for entering input data about physical and operational characteristics of the machine; editor means communicating with both the memory means and the input means for gleaning information from the input data and creating new modules and populating child identification sections of existing modules as a function of the gleaned information, the modules together forming a template based machine tree that completely characterizes all of the physical and operational characteristics of the machine.