Control patterns
Build a start–stop circuit you can explain.
Use a reset-priority latch to turn momentary commands into a predictable running state.
First, name what true means.
For this teaching circuit, Start = true means a start command is present, and Stop = true means a stop command is present. The output Run represents a remembered request to run. Naming these meanings explicitly prevents a surprisingly common problem: confusing a stop request with a healthy stop circuit.
Physical normally closed stop contacts often produce a healthy signal while unpressed. That is a different signal convention. Translate device states into clearly named logical signals before using this pattern on a real control design.
Give the stop command priority.
Connect Start to the set input of a reset-priority latch and Stop to its reset input. A start pulse sets the output. Releasing Start leaves the output set. A stop command resets it. When Start and Stop are both true, reset takes priority and the output is false.
The following expression describes the state transition. Run_previous is the stored output before the transition; Run_next is the result afterward.
Run_next = (Start OR Run_previous) AND NOT StopTest the sequence, including the awkward cases.
Open the example and begin with both commands false and the Permissive input true. Assert Start, observe the Run memory and Motor command, and release Start. Then assert Stop and check that Run clears. These transitions exercise the memory behavior that a single truth table of current inputs cannot capture.
Also hold Start true while Stop is asserted. The output must remain false while Stop is true. With this basic pattern, releasing Stop while Start remains true allows Run to set again. If a new start edge is required after stopping, the design needs additional logic. State the restart requirement before extending the circuit.
- Startup: both commands false, Run false.
- Start then release: Run remains true.
- Stop: Run becomes false.
- Both commands true: Stop wins.
- Stop released with Start held: examine the intended restart behavior.
Add permissives as explicit requirements.
The example includes a process permissive that is ANDed with the stored run request. Turning Permissive off blocks the motor output but leaves Run memory set. Turning it back on allows the motor command to return. Try this sequence, then consider how the circuit would change if loss of the permissive had to clear the stored request as well.
This example teaches ordinary control logic. Emergency stops, protective interlocks, and physical machine safety require their own engineered hardware and validated design; an educational browser circuit is not a safety controller.