Execution State Diagrams
- Last UpdatedSep 21, 2017
- 2 minute read
Formula Download
The control status IO defined on the Equipment will determine what states are used/entered during execution.

NOTE: A piece of equipment can only be in one of the states shown above at a time.
Recipe Execution
The control status IO defined on the Equipment is not used to determine the Recipe state. The state of the Recipe is updated when the operator issues a request, or the procedure execution completes.

The Recipe will always propagate the request as follows:
-
Request Hold/Paused/Suspend/Abort/Stop
-
Active Capabilities will process the request but only if the Capability supports that request.
-
Active Transitions will process the request.
-
Recipe will stay in the Requesting state until Procedure reports Held/Paused/Aborted/Stopped/Complete.
-
-
Request Restart/Resume
-
Active Capabilities that are currently Held/Paused will process the request but only if the Capability supports that request.
-
Active Transitions that are currently Held/Paused will process the request.
-
Recipe will stay in the Requesting State until the Procedure reports Running
-
If the Equipment is configured to propagate status, the Capability status changes will propagate to the Recipe as well.
-
The Capability's status will propagate to the Recipe when it enters the state Held/Paused/Aborted/Stopped.
-
Recipe will enter the request Held/Paused/Aborted/Stopped state.
-
Recipe will then in turn cascade request down to all Capabilities
-
-
Example:
-
Capability1 enters Paused then Capability 2 enters Aborted.
-
Recipe will first enter Requesting Suspend but will then transition to Requesting Abort.
-
Capability
The control status IO defined for a Capability will determine what states are available, and when they are entered.

NOTE: Recipe level requests to Stop/Abort will cause the capabilities currently in any of the following states: RequestingReset, WritingParameters, or WaitForAck/WaitingForReqEdits to go directly to Aborted/Stopped.
-
If the StatusInterlocked IO value is bad quality, the engine will assume the value is true.
-
Only 1 Status should be true at a time. If more than one Status IO is reporting true, the Capability will stay in its current state.
-
If no IO is defined for StatusRunning, the engine will assume Running if all defined Status IO are false.
-
Failures to write IO will automatically retry until successful. This applies to WritingParameters and all Requesting States.