Basically, EMCTask is a coordinating module, which lies under GUI and above EMCMOT and EMCIO in the hierarch of EMC. It receives the commands from the operator through GUI, monitors the status of subordinate modules (EMCMOT and EMCIO), analyzes the commands based on the current situations, and calls funcitons either within EMCTask itself or dispatchs commands down to its subordinate modules(EMCMOT or EMCIO). In the four modules of EMC, only EMCMOT is a realtime module. The other three,i.e. EMCTask,EMCMOT and GUI, are non-realtime modules. The communications between non-realtime modules are implemented by NML channels, and the communications between the realtime module (EMCMOT) and the non-realtime module (EMCTask) is implemented by shared memory.