Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PlantUML Macro
alignleft
titleParticipant States
@startuml

[*] --> UNINITIALIZED: Created by\nACM Runtime
UNINITIALIZED --> PASSIVE: Initialize (Success)
UNINITIALIZED --> UNINITIALIZED_ERROR: Initialize (Error)
UNINITIALIZED_ERROR
PASSIVE --> UNINITIALIZED: UnitializeResetUninitialize (Success)
UNINITIALIZED_ERRORPASSIVE --> UNINITIALIZEDPASSIVE_ERROR: UnitializeResetUninitialize (Error)

PASSIVE_ERROR --> UNINITIALIZED: Uninitialize (Success)
PASSIVE_ERROR --> PASSIVE_ERROR: Uninitialize (Error)
  
PASSIVEUNINITIALIZED_ERROR --> PASSIVEUNINITIALIZED: PassiveResetUnitializeReset (Success)
PASSIVEUNINITIALIZED_ERROR --> PASSIVEUNINITIALIZED_ERROR: PassiveResetUnitializeReset (FailureError)

PASSIVE_ERROR --> UNINITIALIZEDRUNNING: UninitializeActivate (Success)
PASSIVE_ERROR --> UNINITIALIZEDPASSIVE_ERROR: UninitializeActivate (ErrorFailure)
 
PASSIVE_ERROR --> RUNNINGPASSIVE: ActivatePassiveReset (Success)
PASSIVE_ERROR --> PASSIVE_ERROR: ActivatePassiveReset (Failure)

PASSIVE_ERROR --> UNINITIALIZED_ERROR: ForceUninitialize

RUNNING --> PASSIVE: Passivate (Success)
RUNNING --> RUNNING_ERROR: Passivate (Error)
RUNNING_ERROR --> PASSIVE: Passivate (Success)
RUNNING_ERROR --> PASSIVE_ERROR: RuntimeErrorPassivate (Error)

RUNNING_ERROR --> RUNNING_ERROR: RuntimeResetRuntimeError

RUNNING_ERROR --> RUNNING: ClearRuntimeError

RUNNING_ERROR --> PASSIVERUNNING: Passivate (Success)
RUNNINGRuntimeReset

RUNTIME_ERROR --> PASSIVE_ERROR: Passivate (Error)ForcePassive
@enduml


Then, a Control Loop Element can be running a number of operations, each of which has an operational state:

Operational
State
From
State

To
State

Result

Triggered
By

Description
No_OperationNoneNoneN/ANoneNo operation in progress
Initialize

UNINITIALIZED

UNINITIALIZED

PASSIVE

UNINITIALIZED_ERROR

Success

Fail

Triggered by
ACM Runtime
to make
Makes an ACM Element ready for operation
Uninitialize

PASSIVE

PASSIVE

PASSIVE_ERROR

PASSIVE_ERROR

UNINITIALIZED

PASSIVE_ERROR

UNINITIALIZED

PASSIVE_ERROR

Triggered by ACM Runtime to bring

Success

Fail

Success

Fail

ACM Runtime

Takes an ACM Element out of operation
UnitializeReset

UNINITIALIZED_ERROR

UNINITIALIZED_ERROR

UNINITIALIZED

UNINITIALIZED_ERROR

Triggered by

Success

Fail

ACM Runtime

to clear

Clear an uninitialization error on an ACM Element for operation
PassiveUninitiatedTriggered by ACM Runtime to bring an ACM Element out of operationActivatingPassiveRunningTriggered by the Participant to bring an ACM element into servicePassivatingRunningPassive
Activate

PASSIVE

PASSIVE

RUNNING

PASSIVE_ERROR

Success

Fail

ParticipantBring an ACM element into service
PassiveReset

PASSIVE_ERROR

PASSIVE_ERROR

PASSIVE

PASSIVE_ERROR

Success

Fail

ACM Runtime
Participant

Clear an error on an ACM Element that is passive
ForceUninitializePASSIVE_ERRORUNINITIALIZED_ERRORN/AACM RuntimeForce a participant out of operation
Passivate

RUNNING

RUNNING

RUNNING_ERROR

RUNNING_ERROR

PASSIVE

RUNNING_ERROR

PASSIVE

RUNNING_ERROR

Success

Fail

ACM Runtime

Participant

Bring an ACM element out of service
RuntimeErrorRUNNINGRUNNING_ERRORN/AParticipantParticipant flags a runtime error
ClearRuntimeErrorRUNNING_ERRORRUNNINGN/ApariticpantParticipant clears a runtime error flag
ForcePassivePASSIVE_ERRORUNINITIALIZED_ERRORN/AACM RuntimeForce a participant out of runtime state
Triggered by the Participant to bring an ACM element out of service


A Control Loop Element has a status indicator

...