Creating an SFC to run a phase

Phase execution can be coordinated by external sources (that is, a source other than the DeltaV Batch Executive). Examples of running a phase from an external source include:

  • running a phase from a faceplate at the operator's workstation

  • running a phase from a controller resident SFC

In general, coordinating the execution of a phase through the use of an external source is not recommended. This is due to the fact that there is a great deal of functionality provided by the DeltaV Batch Executive which cannot be utilized when the phase execution is initiated by an external source.

When an external source is used to control the execution of a phase, the external source must send the commands for loading, starting and unloading the phase. The functionality is built-in to the predefined faceplates for DeltaV unit modules and unit phases. When an SFC is used to coordinate the sequencing of phases, these commands must be defined as actions within the SFC.

Note:

Do not use SFCs to coordinate the execution of phases that are under the control of the Batch Executive.

To load a phase, the SET_EXTERNAL parameter must be set to the phase (PC1 in this example). The SET_EXTERNAL parameter cannot be browsed for, you must type the parameter name in the expression.

Each transition needs to wait for the previous step to complete before proceeding to the next step. When loading and unloading the phase, get the number of loaded phases first (from the unit class - UC1 in this example) and store them in a user created parameter (NUM_ACTIVE_UPS here). Then, load or unload the phase. The transition can then check the number of phases loaded and make sure it is either greater than (load) or less than (unload) the original value. The following example shows the expression syntax for this technique.

To start the phase, set the XCOMMAND parameter to Start. The following step places the phase to reset (XCOMMAND = Reset). This allows the phase to go to IDLE (reading the BSTATUS parameter). Once the phase is IDLE, the phase can be unloaded using SET.EXTERNAL. The SFC can complete when the current number of phases is less than before the Unload step.

Note:

In order to send commands to the phase using the XCOMMAND parameter, the phase OWNER must be EXTERNAL.

The following example can be used to load, start, and unload a phase.

Sample SFC for Controlling a Phase Externally