Skip to content

Diagram Controller

Design_Userdoc_Controller Controller Controller Controller->Controller extends > extends 0..1 ControllerInterface ControllerInterface Controller->ControllerInterface controllerInterface 1..1 InterfaceLocal InterfaceLocal Controller->InterfaceLocal interfaceLocal 1..1 InterfaceSpecific InterfaceSpecific Controller->InterfaceSpecific interfaceSpecific 1..1 AbstractChild AbstractChild Controller->AbstractChild child 0..N FunctionLibrary FunctionLibrary Controller->FunctionLibrary functionLibrary 0..N GlobalVariableLibrary GlobalVariableLibrary Controller->GlobalVariableLibrary globalVariableLibrary 0..N AbstractMessageReactionFunctions AbstractMessageReactionFunctions Controller->AbstractMessageReactionFunctions messageReaction 0..1 VariableLibrary VariableLibrary Controller->VariableLibrary variableLibrary 0..N ControllerLogbook ControllerLogbook Controller->ControllerLogbook controllerLogbook 0..N AStatemachine AStatemachine Controller->AStatemachine statemachine[ASmDecorator] 0..1 ControllerActions ControllerActions Controller->ControllerActions actions 0..1 UserObjectLink UserObjectLink Controller->UserObjectLink userObjectLink 0..N ChildIterator ChildIterator Controller->ChildIterator childIterator 0..N ControllerInterface->ControllerInterface implements 0..N AbstractChild->ControllerInterface requiresInterface 1..1 FunctionLibrary->FunctionLibrary functionLibrary 0..N AVariableLibrary AVariableLibrary FunctionLibrary->AVariableLibrary variableLibrary 0..N GlobalVariable GlobalVariable GlobalVariableLibrary->GlobalVariable globalVariable 0..N Statemachine Statemachine StateOverride StateOverride Statemachine->StateOverride StateBase StateBase Statemachine->StateBase state 0..N VariableLibrary->VariableLibrary extends > extends 0..N ControllerInstance ControllerInstance ControllerInstance->Controller instanceOf 1..1 UserObjectLinkInstance UserObjectLinkInstance ControllerInstance->UserObjectLinkInstance userTaskLinkInstance[UserObjectLink] 1..1 AVariableLibrary->VariableLibrary AStatemachine->Statemachine StatemachineExtension StatemachineExtension AStatemachine->StatemachineExtension AStateExtension AStateExtension StatemachineExtension->AStateExtension stateExtension 1..N StatemachineExtension->StateBase state 0..N StateOverride->StateBase stateToOverwrite > stateToExtend 1..1 NotExistBehaviour NotExistBehaviour ControllerActions->NotExistBehaviour notExistBehaviour 0..1 Function Function UserObjectInterface UserObjectInterface UserObjectLink->UserObjectInterface userObjectInterface 1..1 ChildIterator->ControllerInterface controllerInterface 1..1 ChildIteratorData ChildIteratorData ChildIterator->ChildIteratorData data 0..N AStateExtension->StateOverride StateExtension StateExtension AStateExtension->StateExtension AStateExtension->StateBase stateToExtend 1..1 StateExtension->StateBase stateToExtend > stateToExtend 1..1 StateExtension->StateBase state 0..N StateBase->Function entryFunction 0..N StateBase->Function stateFunction 0..N StateBase->Function simulationFunction 0..N StateBase->Function exitFunction 0..N UserObjectLinkInstance->UserObjectLink userObjectLink > target 1..1 AUserObject AUserObject UserObject UserObject UserObjectWrapper UserObjectWrapper

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

ControllerInterface

A ControllerInterface is the shared public contract of a controller family: the commands, public data, hardware I/O and declared states that every implementing controller exposes and that a parent uses to interact with it. One interface can be reused by several sibling controllers.

class ControllerInterface extends NamedResource, AnnotableComment, DatatypeLibraryOwner

InterfaceLocal

An InterfaceLocal is the private internal container of a controller: its local variables, message definitions, function blocks, interlock definitions, simulation and helper methods - everything not visible from outside. It is the internal member of the controller's public / per-instance / local interface triad.

class InterfaceLocal extends Resource, AnnotableComment

InterfaceSpecific

An InterfaceSpecific holds a controller's per-instance public data and instance I/O - the values and pin mappings that differ from one ControllerInstance to another. It complements the ControllerInterface, which is the behavioural contract shared by all instances.

class InterfaceSpecific extends Resource, AnnotableComment, AInterfaceSpecific

AbstractChild

abstract class AbstractChild extends NamedResource, RangeChildFieldRef, AOoDomain, APrefixedResource

FunctionLibrary

class FunctionLibrary extends NamedResource, DatatypeLibraryOwner, RootVariableLibrary, RootVariableName, ACallingBaseElement, AAutoPrefix

GlobalVariableLibrary

class GlobalVariableLibrary extends NamedResource, DatatypeLibraryOwner, AAutoPrefix

Statemachine

A Statemachine defines the behaviour of a Controller as a finite state machine: its states, the transitions between them, and the initial entry point. A Controller has at most one statemachine.

class Statemachine extends AStatemachine, AStatemachineStart, RootVariableName, ASmDecorator, AJunctionProperty

AbstractMessageReactionFunctions

abstract class AbstractMessageReactionFunctions extends Resource

VariableLibrary

class VariableLibrary extends AVariableLibrary

ControllerInstance

A ControllerInstance is a Controller placed in the ControllerTree under a Level. It represents one concrete occurrence of a controller type, carrying its instance-specific attributes and the wiring to its child instances.

class ControllerInstance extends AnnotableComment, RangeChildFieldRef, BaseTreeElementInstance

ControllerLogbook

The controller logbook contains all elements of a controller to be logged.

class ControllerLogbook extends NamedResource, ANotAvailableOnS7Tia

AVariableLibrary

abstract class AVariableLibrary extends NamedResource, AnnotableComment, DatatypeLibraryOwner, AAutoPrefix, 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

ControllerActions

ControllerActions is a controller's container for cyclic code that runs outside the statemachine: a one-time init hook and hooks that run before and after the states each cycle, plus not-exist behaviour. Controllers without a statemachine, such as I/O and driver controllers, do their whole job here.

class ControllerActions extends Resource

Function

abstract class Function extends Resource

A UserObjectLink is the type-level declaration on a Controller that names which shared UserObjectInterface the controller's code may access. The matching instance-level binding is a UserObjectLinkInstance.

class UserObjectLink extends NamedResource

ChildIterator

A ChildIterator is an indexed set of homogeneous children on a controller that all share one interface. It is used when a controller has a variable number of identical children, which it commands by index and can aggregate values across.

class ChildIterator extends Resource

ChildIteratorData

class ChildIteratorData extends Resource, ASubFieldSelector

AStateExtension

abstract class AStateExtension extends TargetState

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

StateBase

abstract class StateBase extends TargetState, AState

NotExistBehaviour

This class defines the behaviour of statemachine if controller exist flag is false. Without any definitions, native single answer implementation is active.

Use singleAnswerOverwrite definition to change single answer behaviour dependent of requested command.

Define a function to implemement another specific behaviour during single answer mode.

class NotExistBehaviour extends Resource

UserObjectLinkInstance

A UserObjectLinkInstance is the instance-level binding on a ControllerInstance that connects the controller's UserObjectLink to a placed UserObjectWrapper, wiring this instance to the tree-global blackboard.

class UserObjectLinkInstance extends Decorator

UserObjectInterface

A UserObjectInterface is a shared typed data structure that acts as a blackboard for cross-hierarchy data sharing - data exchanged outside the parent / child path. Each producing controller writes its own slot, and any controller with a link can read the whole structure.

class UserObjectInterface extends NamedResource, DatatypeLibraryOwner, AnnotableComment

AUserObject

abstract class AUserObject extends NamedResource, AnnotableComment

UserObject

class UserObject extends AUserObjectInterface, APlatformUserObject

UserObjectWrapper

A UserObjectWrapper is the single placed instance of a UserObjectInterface, parented to a Level so the shared blackboard is globally addressable in the tree. Controller instances bind to it to read and write the shared data.

class UserObjectWrapper extends AUserObjectInterface

GlobalVariable

class GlobalVariable extends BaseArrayVariable, InterfaceOptions