Module algorithm types > Command-driven algorithms

Parameters for command-driven algorithms

The following describes the module-level parameters related to the algorithm.

A_ABT_ON_NEW_CMD — determines how the module responds to a change in A_COMMAND while executing the previous value of A_COMMAND. If TRUE then the module immediately aborts the current command and begins the new one. The default value is FALSE which means that the algorithm finishes the current command before executing the new one.

A_CMD_CHANGED — Indicates a different A_COMMAND has been issued or that A_RESTART has been set before the current A_COMMAND completed.

A_COMMAND — defines which command block should be executed. This is a named set parameter type. It accepts command names as defined in the associated named set.

A_ERROR — indicates SFC errors and timeouts. Set to True if the running SFC generated an error or if the COMMAND block timed out.

A_MAX_TIME_EXPD — indicates that the maximum amount of time that the active state should take to complete has been exceeded. This is based on the CFM_MAX_TIME parameter described below. If this condition occurs, the A_STATE is set to Idle and A_ERROR is set to TRUE

A_RESTART — If set TRUE then aborts the command which is currently executing and reruns the command from the start. The action does not depend upon the value of A_ABT_ON_NEW_CMD.

A_RESTART_REQ — If set TRUE requests that the command which is currently executing abort and reruns the command from the start. If A_ABT_ON_NEW_CMD is true then the current command aborts immediately. If A_ABT_ON_NEW_CMD is false then user logic must terminate the current command when A_CMD_CHANGED is true..

A_PV — indicates the current PV of the module. A value other than Undefined (or whatever the 255 word is in the named set) indicates that the COMMAND block completed without error (A_ERROR=False).

A_STATE — indicates the runtime status of the algorithm. The states are derived from the $phase_state named set (for example: Idle, Running, and so on.).

A_TARGET — an internal parameter that indicates the value of the currently executing A_COMMAND.

A_TIME — indicates the amount of time in seconds that a particular COMMAND block has been running.

The following table shows the relationship of the algorithm parameter values at various points of SFC operation.

Algorithm parameter

Initial state

Starting SFC logic

SFC logic running

SFC completed

SFC completed with error

SFC disabled

SFC timed out

A_ABT_ON_NEW_CMD

<configured>

<user_value>

<user_value>

<user_value>

<user_value>

<user_value>

<user_value>

A_CMD_CHANGED

False

False

See Note 1

<unchanged>

<unchanged>

<unchanged>

<unchanged>

A_COMMAND

255

Command name

Command name

255

255

255

255

A_ERROR

False

False

False

False

True

False

True

A_MAX_TIME_EXPD

False

False

False

False

False

False

True

A_PV

255

255

255

Command name

255

255

255

A_RESTART

False

False

<user_value>

<user_value>

<user_value>

<user_value>

<user_value>

A_RESTART_REQ

False

False

<user_value>

<user_value>

<user_value>

<user_value>

<user_value>

A_STATE

Idle

Starting

Running

Complete

Idle

Idle

Idle

A_TARGET

255

Command name

Command name

Command name

Command name

Command name

Command name

A_TIME

0

0

<time>

<complete_time>

<error_time>

0

<timeout_time>

Note 1: Set True if A_COMMAND is changed or A_RESTART or A_RESTART_REQ is set.