This brief clarifies the descriptive language of PLC programmers. It is focused on concepts such as requests, permissives, and interlocks. These terms were selected because they are among the easiest to conflate. The definitions are tied in knots, making it difficult to cleanly separate the closely related concepts.
This brief is part of DigiKey’s Structured Learning Pathways. Consequently, the discussion is constrained. We assume a freestanding machine, such as the PLC trainer shown in Figure 1. This platform may be used to explore the naming conventions. This conversation does not include remote control, distributed I/O, or an emergency-stop system.
Key Takeaways
- PLC control is defined in terms of time and logic.
- A request expresses intent. This is not the same as a command, as the PLC may ignore an operator’s request based on the state of the PLC’s internal control logic.
- A permissive answers, “May I start?”
- An interlock answers, “May I continue?”
This article is part of the DigiKey Field Guide for Industrial Automation
Learning Pathway: Industrial Automation Technician → Ladder Logic and PLC Fundamentals
Location: Program It → PLC
Difficulty:
Student — difficulty levels explained
Author: Aaron Dahlen | MSEE | Senior Applications Engineer, DigiKey
Last update: 25 Aug 2026
Figure 1: Representative DigiKey PLC kit.
What is an operator request?
A request originates from the operator via local switches, pushbuttons, or the HMI. For example, the operator may press the run pushbutton. The PLC may or may not act on that request based on the PLC’s internal control logic. For example, an ongoing MachineOverTemperature condition would override the operator’s request to run the machine. Likewise, a reset request issued while still MachineOverTemperature is true would be ignored.
The key takeaway is that a request signals intent.
Stop Request Complications
The operator may issue a request to stop a machine. Unfortunately, this term is overloaded and can mean two very different things depending on the PLC control logic.
- Stop immediately: In a very simple example, the PLC simply disables all outputs.
- Finish the cycle: The classic clamp-and-drill machine would finish the work-in-progress (position, clamp, drill, and eject). Only then would it stop.
Tech Tip: Do not conflate the stop command with an emergency stop. It is so much more than adding a mushroom button to the machine controls. Instead, the E-stop is an application-specific engineered solution to mitigate harm to the operators and technicians. It involves control of the machine’s energy sources which may include electrical, pneumatic, hydraulic, along with stored potential and kinetic loads. This requires a holistic understanding of the machine’s hazards.
In this case, “safe” does not imply removal of all sources of power. Instead, as my old Engineering Officer would say, retain positive control of the ship. Dead, dark, and quiet is its own hazard.
To be clear, functional safety is far beyond the scope of this article.
What is a permissive?
This is a difficult term to define as the sources are all over the map.
The term permissive is best described across two dimensions:
- Time: a permissive occurs before the machine is started.
- Logic: a permissive is also described as the logical AND of the prerequisites that must be met before the machine may start.
The classic example is a large diesel engine:
StartPermissive := LubeOilPressureOK AND FuelPressureOK AND StartAirReady;
Only when all conditions have been met is the engine considered ready for start.
Note:
- Permissive does not imply
StartCommand. It only indicates a ready condition. - Permissive may change when the machine starts. For example, the
StartAirReadycondition may become false immediately following the start.
Permissive Complications
The term permissive quickly becomes overloaded in the PLC programming environment.
-
Ready vs Go: We are tempted to construct
StatePermissivefor every state transition. This would signify a readiness to transition upon the receipt of additional control signals. This may or may not add clarity. There may be cases where the intermediateStatePermissiveis useful. However, it may be preferable to make a singleStateTransitionsignal based on the logical AND of all control signals required to advance the state. -
A
NotPermissivefault: We are also tempted to useNotPermissiveas a substitute forNotReadyorInterlock. While the logic may be correct, we end up in a situation whereNotPermissiveis justification for entering a fault state. This violates both the time-before-start definition and our assumption that the permissive may change after startup.
What is an interlock?
We already stated that an interlock is not the simple inverse of a permissive. Unfortunately, that distinction is uncomfortably close in practice.
The term interlock is best described by its action. It is a signal that is continually monitored by the PLC. If InterlockOK is false, the machine will enter the defined (safe) state. Returning to our diesel engine, we would expect to find an interlock such as this:
InterlockOK := JacketWaterTempOK AND LubeOilPressureOK AND FuelPressureOK AND FuelFilterDifferentialOK;
Interlock Complications
The interlock is continually monitored, and this is where we start to conflate the permissive with the interlock. In my opinion, InterlockOK := StartPermissive is a hard pill to swallow. Semantically, we conflate “May I start?” with “May I continue?”
Even worse, the InterlockOK may be included in the state-transition logic along with the StartPermissive. In our example, the logic used to construct StartPermissive and InterlockOK is different. However, it could have been the same. Hence the confusion over intent.
Related Terms
There are many related terms in this PLC soup. Instead of turning this document into a glossary we will stop and recognize a pattern. Each term is defined across two dimensions:
- Time/duration: when the variable is relevant, especially in relation to a state machine.
- Logic: the logic used to construct the variable.
I’ll leave it to you to define related terms such as event, trip, fault, alarm, lockout, reset, inhibit, override, enable, ready, shutdown, abort, and E-stop. The real challenge is to determine if the terms are unique or if they are modifiers or synonyms for other concepts we have already covered.
There may be value in tossing this article to an AI with a request to generate a table.
Parting Thoughts
This article was surprisingly difficult to assemble. It was hard to cut the Gordian knot. The breakthrough was to define each term using temporal and logical relationships.
But you already knew that, as timing and logic are the foundation of PLC programming.
Sincerely,
APDahlen
Continue Exploring Industrial Control Systems
If this discussion was helpful, you may also want to explore:
DigiKey Navigation
- Full Catalog: Industrial Control & Automation
About this Author
Aaron Dahlen, LCDR USCG (Ret.), is a Senior Applications Engineer at DigiKey in Thief River Falls. His background in electronics and industrial automation was shaped by a 27-year military career as both technician and engineer, followed by over a decade of teaching.
Dahlen holds an MSEE from Minnesota State University, Mankato. He has taught in an ABET-accredited electrical engineering program, served as coordinator of an electronic engineering technology program, and instructed military technicians in component-level repair.
Today, he has returned to his home in northern Minnesota, completing a decades-long journey that began with a search for capacitors. Read his story here.
