Concepts And Terminology
Actions
'Actions' are the things that the Sequence Manager actually does. They have the form 'Set x to y'. An action always sets a Vesta data element to a specified numeric value. If you're setting a discrete output or state variable, use 0 for false and 1 for true. Actions can set any variable or Vesta output. Inputs cannot be set as their values come from the physical hardware.
Recipe Phases
Recipes are made up of multiple steps, called phases. Each phase has the same basic structure: "Start doing something. Keep doing it until you're done. Then, move on to the next phase". Consider cooking rice. One phase might be 'Heating the water', and the structure looks like this: "Turn on the stove to start heating. Keep heating until it boils, Then, add rice and move on to the cooking phase".
In the Sequence Manger, phases consist of two parts:
- Initial actions. These are the things that will happen when the phase first starts. Typically this will consist of turning outputs on or off, or setting values - 'Turn on the stove to start heating' in the example above, or the actions in the section titled 'When this phase starts' in the example at right. Initial actions are optional, but most phases include several.
- Exit paths. These define how to move to another phase. Exit paths have criteria - 'How do I know this phase is done?' and one or more actions to be taken. The example at right has two exit paths: 'Normal Exit' and 'Operator Abort'.
Exit Paths
Each phase must have at least one exit path. Exit paths have two components:
- Criteria - the condition under which this exit path will be used.
- Actions - one or more actions to be taken when the exit criteria are met.
When an exit path is taken, that event is written to the Vesta log file.
Recipe Variables
Every phase has a unique 'index number' that the Sequence Manger uses to refer to and identify phases. The phase number is stored in a Vesta data element so that it can be monitored and logged.
Every recipe has a designated first phase. This is the recipe starting point, and it's usually a 'safe' state with everything turned off, closed, or otherwise stable.
Each recipe must be linked to three Vesta data elements that provide top level control of recipe execution. These elements can have any desired name. In the example at rights they're named 'Recipe Enable', 'Recipe Start', and 'Current Phase'.
- Recipe Enable. This element must evaluate to 'true' before the Sequence Manager will perform any actions. If it becomes false during recipe execution, the Sequence Manager will effectively pause, taking no further actions until it's enabled again. This will most often be a state variable that's controlled by the user, but it could be a discrete input, a timer variable, or other data element that can reliably evaluate to 'true' or 'false'.
- Recipe Start. When this element becomes true, the Sequence Manager will start the designated first phase. The element used for this function has the same criteria as 'Recipe Enable'.
- Current Phase. This contains the index number of the phase that's currently active. This must be a normal variable (not a state variable).