Skip to content

Diagram ControllerInterface

Design_UserDoc_ControllerInterface ControllerInterface ControllerInterface ControllerInterface->ControllerInterface implements 0..N Command Command ControllerInterface->Command command 0..N IfaceState IfaceState ControllerInterface->IfaceState state 0..N AInterfaceData AInterfaceData ControllerInterface->AInterfaceData data 0..N PassThroughParameter PassThroughParameter ControllerInterface->PassThroughParameter passThroughParameter 0..N InputOutput InputOutput ControllerInterface->InputOutput inputOutput 0..N Controller Controller Controller->ControllerInterface controllerInterface 1..1 Controller->Controller extends > extends 0..1 AbstractChild AbstractChild Controller->AbstractChild child 0..N InterfaceData InterfaceData InterfaceData->InterfaceData extends > extends 0..1 CustomDataGroup CustomDataGroup InterfaceData->CustomDataGroup dataGroup 1..1 AbstractChild->ControllerInterface requiresInterface 1..1 AInterfaceData->InterfaceData DataTypeIoType DataTypeIoType InputOutput->DataTypeIoType DigitalType DigitalType InputOutput->DigitalType DataTypeInput DataTypeInput DataTypeIoType->DataTypeInput DataTypeOutput DataTypeOutput DataTypeIoType->DataTypeOutput DigitalInput DigitalInput DigitalType->DigitalInput DigitalOutput DigitalOutput DigitalType->DigitalOutput

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

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

Command

A Command is a control command on a ControllerInterface - one operational mode that can be requested of the controller, such as on, off or a motion step. A parent issues a child's command from its statemachine code, and the child reacts to it in its own transitions.

class Command extends NamedResource, AnnotableComment, ATextSourceProperty, AResourceWithType

InterfaceData

An InterfaceData member is a public data value on a controller interface - the unit of the data plane, read and written cyclically rather than a control command. Each one belongs to a data group such as configuration, parameter, recipe or current value.

class InterfaceData extends AInterfaceData, FieldUnit, AOoExtendable

IfaceState

An IfaceState declares a state on a ControllerInterface as part of its public contract - a state name that every implementing statemachine must expose. This lets a parent rely on and wait for a known state on any controller that implements the interface.

class IfaceState extends AState

AbstractChild

abstract class AbstractChild extends NamedResource, RangeChildFieldRef, AOoDomain, APrefixedResource

AInterfaceData

This abstract interface data class is only used for backward compatibility of deprecated Recipe, Parameter, Current, Config classes. It will be removed in future.

abstract class AInterfaceData extends InterfaceArrayVariable

CustomDataGroup

class CustomDataGroup extends NamedResource, AOmitFromFieldbusOwner

PassThroughParameter

Input and output variable that is part of a controller interface and serves as a formal pass-through parameter.

class PassThroughParameter extends Variable

InputOutput

InputOutput is the abstract base for all hardware I/O pins on a controller interface. Its concrete subtypes - digital and analog, input and output - encode the signal direction and kind; you always create a concrete subtype, never InputOutput itself.

abstract class InputOutput extends APrefixedResource, AMainVariable, AnnotableComment

DataTypeIoType

abstract class DataTypeIoType extends Variable, InputOutput

DigitalType

abstract class DigitalType extends NamedResource, InputOutput, AResourceWithType

DigitalInput

A DigitalInput is a boolean sensor signal read from hardware - a digital input pin on a controller interface. The controller's logic reads it by name in guard and state code.

class DigitalInput extends DigitalType

DigitalOutput

A DigitalOutput is a boolean actuator signal sent to hardware - a digital output pin on a controller interface. The controller's logic drives it from state entry and exit code.

class DigitalOutput extends DigitalType

DataTypeInput

Name has to be defined without prefix ai_ and also without Datatyp in name

class DataTypeInput extends DataTypeIoType

DataTypeOutput

Use DataType output to define type of output. As example for analog types, structured types or array outputs.

If a ScaleFunction is defined, the analog output is not available in the project (only the scaled value).

class DataTypeOutput extends DataTypeIoType