Skip to content

Diagram UPoo

Design_UserDoc_oodomain AOoDomain AOoDomain AOoDomainRoot AOoDomainRoot AOoDomain->AOoDomainRoot AOoDomainRoot->AOoDomain extends > extends 0..N OverrideableObjects OverrideableObjects AOoDomainRoot->OverrideableObjects overrides[AOoDomain] 0..1 AVariableLibrary AVariableLibrary AOoDomainRoot->AVariableLibrary Controller Controller AOoDomainRoot->Controller DatatypeLibrary DatatypeLibrary AOoDomainRoot->DatatypeLibrary VariableGroup VariableGroup AOoDomainRoot->VariableGroup OverrideableObjects->AOoDomain aOoDomain > target 1..1 AOverrideableObject AOverrideableObject OverrideableObjects->AOverrideableObject override 0..N AOverrideableObject->AOoDomain base 0..1 AOverrider AOverrider AOverrideableObject->AOverrider object[] 1..1 ChildOverrideable ChildOverrideable AOverrideableObject->ChildOverrideable GuardOverrideable GuardOverrideable AOverrideableObject->GuardOverrideable SharedFunctionOverrideable SharedFunctionOverrideable AOverrideableObject->SharedFunctionOverrideable ChildOverrideable->AOoDomain child > base 0..1 AVariableLibrary->VariableGroup variableGroup 0..N Controller->Controller extends > extends 0..1 AStatemachine AStatemachine Controller->AStatemachine statemachine[ASmDecorator] 0..1 DatatypeLibrary->DatatypeLibrary extends > extends 0..0 VariableGroup->VariableGroup extends > extends 0..1 StatemachineExtension StatemachineExtension AStatemachine->StatemachineExtension AStateExtension AStateExtension StatemachineExtension->AStateExtension stateExtension 1..N StateBase StateBase StatemachineExtension->StateBase state 0..N StateOverride StateOverride StateOverride->StateBase stateToOverwrite > stateToExtend 1..1 AStateExtension->StateOverride AStateExtension->StateBase stateToExtend 1..1 StateExtension StateExtension AStateExtension->StateExtension StateExtension->StateBase stateToExtend > stateToExtend 1..1 StateExtension->StateBase state 0..N

AOoDomain

abstract class AOoDomain extends Resource

AOoDomainRoot

abstract class AOoDomainRoot extends AOoExtendable, AOoDomain

OverrideableObjects

class OverrideableObjects extends Decorator

AOverrideableObject

abstract class AOverrideableObject extends Resource

AOverrider

abstract class AOverrider extends Decorator

ChildOverrideable

class ChildOverrideable extends AOverrideableObject

GuardOverrideable

class GuardOverrideable extends AOverrideableObject

SharedFunctionOverrideable

class SharedFunctionOverrideable extends AOverrideableObject

AVariableLibrary

abstract class AVariableLibrary extends NamedResource, AnnotableComment, DatatypeLibraryOwner, AAutoPrefix, AOoDomainRoot

Controller

A Controller is a reusable control-behaviour type - the unit that defines the commands, states, transitions, interlocks and messages for one kind of device or function. It is instantiated many times as ControllerInstances in the tree and exposes its behaviour through a public interface, a per-instance interface and a private internal interface. A project controller usually extends a library base controller and adds only its specific behaviour.

class Controller extends NamedResource, AControllerDescription, AnnotableComment, DatatypeLibraryOwner, RootVariableLibrary, RootVariableName, AOoDomainRoot, ACallingBaseElement, AResourceWithType

DatatypeLibrary

A DatatypeLibrary holds the datatypes and constants used by a project and its controllers - enumerations, record types, function-block types and named constants. Controller interface and local variables are typed by its contents; a master library aggregates per-controller sub-libraries.

class DatatypeLibrary extends NamedResource, AOoDomainRoot, DatatypeLibraryOwner, ACallingBaseElement, AAutoPrefix, Commentable

VariableGroup

class VariableGroup extends NamedResource, AOoDomainRoot

AStatemachine

abstract class AStatemachine extends Decorator, AnnotableComment

StatemachineExtension

A StatemachineExtension defines a controller's statemachine by building on an inherited base statemachine instead of from scratch. It reuses the base lifecycle and adds or overrides only the parts specific to this controller.

class StatemachineExtension extends AStatemachine, AJunctionProperty

StateOverride

A StateOverride re-declares a state group inherited from a base statemachine so a controller can extend it - adding sub-states, transitions or replacement lifecycle code - without redefining the whole machine.

class StateOverride extends AStateExtension, Statemachine

AStateExtension

abstract class AStateExtension extends TargetState

StateBase

abstract class StateBase extends TargetState, AState

StateExtension

The state that is extended basically remains as it is. It can simply be extended by function or transitions. It is also possible to overwrite single functions or transitions. Further additional states and junctions can be created.

class StateExtension extends AStateExtension, AJunctionProperty