Vermont Energy Control Systems

Practical monitoring and control for the real world

Sequence Manager

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:

Phase example
  • 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.
Every exit path must have at least one action: it must set a new value for the 'Current Phase' variable. In most cases that will simple be the next phase in sequence, but it's possible to skip phases or jump to any specific phase. The example at right has a 'Normal Exit' that goes to the next phase, but it also has an 'Operator' Abort' that takes it back to the initial 'Inactive' phase.

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.

Vesta recipe elements

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).