Diagram ControllerInstance
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