Finite-state Machine - Example: A Turnstile

Example: A Turnstile

An example of a very simple mechanism that can be modeled by a state machine is a turnstile. A turnstile, used to control access to subways and amusement park rides, is a gate with three rotating arms at waist height, one across the entryway. Initially the arms are locked, barring the entry, preventing customers from passing through. Depositing a coin or token in a slot on the turnstile unlocks the arms, allowing them to rotate by one-third of a complete turn, allowing a single customer to push through. After the customer passes through, the arms are locked again until another coin is inserted.

The turnstile has two states: Locked and Unlocked. There are two inputs that affect its state: putting a coin in the slot (coin) and pushing the arm (push). In the locked state, pushing on the arm has no effect; no matter how many times the input push is given it stays in the locked state. Putting a coin in, that is giving the machine a coin input, shifts the state from Locked to Unlocked. In the unlocked state, putting additional coins in has no effect; that is, giving additional coin inputs does not change the state. However, a customer pushing through the arms, giving a push input, shifts the state back to Locked.

The turnstile state machine can be represented by a state transition table, showing for each state the new state and the output (action) resulting from each input

Current State Input Next State Output
Locked coin Unlocked Release turnstile so customer can push through
push Locked None
Unlocked coin Unlocked None
push Locked When customer has pushed through lock turnstile

It can also be represented by a directed graph called a state diagram (above). Each of the states is represented by a node (circle). Edges (arrows) show the transitions from one state to another. Each arrow is labeled with the input that triggers that transition. Inputs that don't cause a change of state (such as a coin input in the Unlocked state) are represented by a circular arrow returning to the original state. The arrow into the Locked node from the black dot indicates it is the initial state.

Read more about this topic:  Finite-state Machine