Understanding state machines
As a software engineer, especially one that writes PLC code, you must understand what state machines are. State machines to PLC programmers are what the Model-View-Controller (MVC) pattern is for web developers. To be a quality PLC programmer, you must understand what a state machine is and how to implement one.
The most simplified way to think of a state machine is as a series of states that can transition from one state to another. A simple example of a state machine is a lightbulb connected to a switch. The following diagram represents the state of a lightbulb:
Figure 2.14 – Lightbulb state machine
As can be seen with the arrows, if the lightbulb is on, it can transition to off when the switch is flicked down. If the lightbulb is off, it can transition to an on state when the switch is flicked up.
The majority of state machines that you are going to work with as a PLC programmer are called finite state machines...