Skip to content

Diagram ControllerInstance

Design_UserDoc_ControllerInstance Level Level Level->Level parentLevel 0..1 BaseTreeElementInstance BaseTreeElementInstance Level->BaseTreeElementInstance treeElementInstance 0..N ControllerInstance ControllerInstance BaseTreeElementInstance->ControllerInstance Controller Controller ControllerInstance->Controller instanceOf 1..1 ChildInstance ChildInstance ControllerInstance->ChildInstance childInstance[Child] 1..1 UserObjectLinkInstance UserObjectLinkInstance ControllerInstance->UserObjectLinkInstance userTaskLinkInstance[UserObjectLink] 1..1 Controller->Controller extends > extends 0..1 AbstractChild AbstractChild Controller->AbstractChild child 0..N ChildInstance->BaseTreeElementInstance treeElementInstance 1..1 Child Child ChildInstance->Child childRef > target 1..1 AbstractChild->Child DynamicChild DynamicChild AbstractChild->DynamicChild

Level

A Level is a node in the ControllerTree hierarchy. It holds controller instances and chains to a parent level, and can also host cross-cutting content such as placed user objects and interlock instances. Dedicated levels are often used for concerns like communication or interlocks.

class Level extends NamedResource

BaseTreeElementInstance

abstract class BaseTreeElementInstance extends Resource

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

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

ChildInstance

A ChildInstance binds a parent's Child slot to a concrete child ControllerInstance in the tree. It is the instance-level half of the parent-child relationship and completes the type-level Child slot.

class ChildInstance extends Decorator

Child

A Child is a type-level child slot on a Controller. It defines the contract a subordinate controller must fulfil - the interface it must implement - so any controller implementing that interface can fill the slot. The concrete child is bound separately by a ChildInstance.

class Child extends AbstractChild

AbstractChild

abstract class AbstractChild extends NamedResource, RangeChildFieldRef, AOoDomain, APrefixedResource

DynamicChild

Type of child controller that can be bound at runtime.

class DynamicChild extends AbstractChild

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