The ActiveProgramType specifies the current state of operation of a FunctionalUnit. It provides context and information about the currently active program on the Device. This allows users to follow the progress of a program run in a standardized fashion by organising steps into a flat, linear sequence. It is formally defined in Table 65.

Table 65 – ActiveProgramType Definition

Attribute

Value

BrowseName

ActiveProgramType

IsAbstract

False

References

Node Class

BrowseName

DataType

TypeDefinition

Other

Subtype of 0:BaseObjectType defined in OPC 10000-5

0:HasProperty

Variable

CurrentPauseTime

Duration

0:PropertyType

O

0:HasProperty

Variable

CurrentRuntime

Duration

0:PropertyType

O

0:HasProperty

Variable

CurrentStepName

LocalizedText

0:PropertyType

O

0:HasProperty

Variable

CurrentStepNumber

UInt32

0:PropertyType

O

0:HasProperty

Variable

CurrentStepRuntime

Duration

0:PropertyType

O

0:HasProperty

Variable

EstimatedRuntime

Duration

0:PropertyType

O

0:HasProperty

Variable

EstimatedStepNumbers

UInt32

0:PropertyType

O

0:HasProperty

Variable

EstimatedStepRuntime

Duration

0:PropertyType

O

0:HasProperty

Variable

DeviceProgramRunId

String

0:PropertyType

O

0:HasProperty

Variable

CurrentProgramTemplate

3:NameNodeIdDataType

0:PropertyType

O

Conformance Units

LADS ActiveProgramType

The status of all properties must be communicated through various StatusCodes, depending on the situation:

• For a device that has not had a prior run and therefore cannot estimate the runtime, the StatusCode should be BadWaitingForInitialData. This indicates that the system is waiting for initial data to compute the estimated runtime.

• If the runtime cannot be estimated due to process-related reasons or incompatibility, the StatusCode should be BadNoData. This communicates that no data is available to estimate the runtime.

• If the runtime can be computed and the program is currently running or paused, the StatusCode should be Good. This indicates that the estimated runtime is available and the program is in progress.

• If the runtime can be computed after the program run but the value might not be the most current, the StatusCode should be UncertainLastUsableValue. This communicates that the last known value is being used for the estimated runtime, but it may not be the most up to date.

Additional StatusCodes are allowed depending on the specific situation (e.g., technical problems).

CurrentPauseTime is the current pause-time of the program run. The CurrentPauseTime is set to 0 at the start of the program and is counted upwards when the program run is in a paused state. The paused state is an aggregation of the Suspended and Held states.

CurrentRuntime is the current runtime of the program run. The CurrentRuntime is set to 0 at the start of the program and is counted upwards, as long as the program run is not in a paused state. The paused state is an aggregation of the Suspended and Held states.

CurrentStepName is the name of the current step.

CurrentStepNumber is the number/index of the current step (incremented whenever the next step is entered).

CurrentStepRuntime is the runtime of the current step. The CurrentStepRuntime is set to 0 at the start of the current step and is counted upwards, as long as the program run is not in paused state. The paused state is an aggregation of the Suspended and Held states.

EstimatedRuntime is the estimated runtime of the current program run.

EstimatedStepNumbers is the estimated total number of steps of the current program run.

EstimatedStepRuntime is the estimated runtime of the current program step.

CurrentProgramTemplate provides the template-id as well as the node-id of the currently executed program.

DeviceProgramRunId represents a device-specific unique internal identifier for this program run. Its value shall be identical to the return value of the last call to the FunctionalUnit’s StartProgram() Method. It is used to identify the result object corresponding to this program run within the FunctionalUnit’s result set.