Consider a machining device in a manufacturing system, and consider its externally visible behavior. Such a machine can be loaded and unloaded with work-pieces, it can be requested to start its processing, stop it and maybe pause it. It will also indicate in some way when its processing is finished and perhaps even whether the processing was successful or not. Internally, during processing, many things will happen but these are generally not visible externally. Modeling such a machine on this (externally visible) level of abstraction, we could define a number of circumstances characterizing whether the machine is ready to be loaded, if it is processing, has finished successfully and so on. From different such circumstances different actions would be meaningful, such as, only loading the machine if it is not already loaded and unloading it only if it actually contains a work-piece, and so on. Laying out this graphically could result in something similar to Figure 1. Initially the machine is Idle waiting to be loaded with a work-piece. When it is Loaded, it can either be unloaded again or commanded to start processing. The Processing can be interrupted, that is, stopped, or it can go on until the machine is finished. Then the work-piece can be unloaded.
Figure 1. A machining device modeled by its externally visible behavior.
A graph such as the one in Figure 1 is called an automaton (or synonymously a state-machine). The “circumstances” Idle, Loaded etc. are states, and the “actions” that make the automaton transit between the states are called events. In this chapter we will study a few variants of automata in some detail, and see how the can be used to model both machining resources and communication protocols.