Skip to content

class Controller

Package: swiss.avm.up.core.generic.specification.javamodel.Controller

Direct Known Subclasses:


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

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.

Properties

actions

ControllerActions[0..1]

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.

child

definition of child controller in relation to this controller

AbstractChild[0..N]

childIterator

ChildIterator[0..N]

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.

comment

Describes the intent of this Resource.

TextLiteral[0..1]

A Literal that accepts multiple lines of text.

controllerInterface

interface for this controller

ControllerInterface[1..1]

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.

controllerLogbook

ControllerLogbook[0..N]

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

datatypeLibrary

DatatypeLibrary[0..N]

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.

description

detailed information about the function of this controller

TextLiteral[0..1]

A Literal that accepts multiple lines of text.

extends

Resource[0..N]

The base class of any Resource in the system.

extends

AOoDomain[0..N]

extends

Controller[0..1]

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.

functionLibrary

FunctionLibrary[0..N]

globalVariableLibrary

GlobalVariableLibrary[0..N]

interfaceLocal

InterfaceLocal[1..1]

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.

interfaceSpecific

specific controller data that are reachable for parent controller

InterfaceSpecific[1..1]

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.

locMsgClusterInstance

Local instance of an instantiable cluster.

LocalMessageClusterInstance[0..N]

A LocalMessageClusterInstance is a message cluster on a controller that groups
the messages of a functional domain, so acknowledge and reaction behaviour can
be handled per cluster. Message definitions reference the cluster they belong
to.

messageReaction

Functions can be defined which are triggered by reactions.

AbstractMessageReactionFunctions[0..1]

name

The name of this Resource.

StringLiteral[1..1]

overrides

Here objects of extensions can be overwritten.

OverrideableObjects[0..1]

statemachine

definition of statemachine in uml style

AStatemachine[0..1]

textList

ATextListDefinition[0..N]
UserObjectLink[0..N]

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.

variableLibrary

VariableLibrary[0..N]

Method Summary

accept

@FCodeSnippet

Parameters:

ValidatableTypeVisitorLiteral

Return:

Void

asyncEventImplementationGeneric

@FAsyncEvent

Parameters:

PlatformType

className

@TemplateNameFunctions

FB class name at PLC.

controllerFunctionCallInOutParameter

Parameters:

Build
PlatformType
ControllerTree

controllerVariableNameFieldRef

@VariableName

Parameters:

AFieldRef
MainVariable

controllerVariableNameFieldRef

@FVariableName

Parameters:

AFieldRef
AMainVariable
PlatformType

countControllerWithSameName

@FController

for validation unique data in controller

Return:

IntegerLiteral

createIfSpecificHashMapTree

@BrControllerTreeFunctionSpace

Parameters:

Model
BR_Config
ControllerTree
IntegerLiteral

Return:

OpcUaNodeLiteral

createLocal

curDefaultValue

@ControllerFunctionSpace

Return:

List<BaseDefaultValue>

declaration

Parameters:

PlatformType

documentationTable

@PCD_Documentation

generateSingelAnswer

Parameters:

HardwareConfig

Return:

BooleanLiteral

generateStatemachine

Parameters:

HardwareConfig

Return:

BooleanLiteral

getActionFunctions

@FController

init-, alwaysBefore-, alwaysAfter-, notExistBehaviourFunctions

Return:

List<Function>

getActions

@FController

Returns all actions of a controller from the entire inheritance hierarchy.

Return:

List<ControllerActions>

getActionsInverse

@FController

Return:

List<ControllerActions>

getAllBaseDataVariable

@VariableFunctionSpace

Return:

List<BaseDataVariable>

getAllControllerInstanceWrappersByController

@ControllerInstanceWrapperFunctionSpace

Parameters:

BaseControllerTree

Return:

List<ControllerInstanceWrapper>

getAllInstanceableCluster

@MessageFunctions

Return:

List<MessageClusterDefinitionInstanceable>

getAllLimitDefinitions

@FLimitMonitoring

returns all limit definitions of a controller

Parameters:

PlatformType
Config
ModelConfig

Return:

List<DataLimitLiteral>

getAllMainVariable

@VariableFunctionSpace

Return:

List<AMainVariable>

getAllPublicVariables

@VariableFunctionSpace

Return:

List<Variable>

getAllPublishedMessages

@MessageFunctions

Return:

List<MessageDefinition>

getAllVariable

@VariableFunctionSpace

Return:

List<Variable>

getAlwaysAfterFunctions

@FController

Return:

List<Function>

getAlwaysBeforeFunctions

@FController

Return:

List<Function>

getChildIterators

@FChildIterator

Return:

List<ChildIterator>

getChildren

@FController

Returns all child controllers of the entire inheritance hierarchy.

Return:

List<AbstractChild>

getClassTypes

@FAsyncEvent

Return:

List<TextLiteral>

getCommonFunctionResources

@ControllerFunctionSpace

Return:

List<Resource>

getControllerIndex

@ControllerTreeFunctionSpace

Parameters:

ControllerTree

Return:

IntegerLiteral

getControllerInstanceWrapperArraySizeByController

@ControllerInstanceWrapperFunctionSpace

Parameters:

BaseControllerTree

Return:

IntegerLiteral

getControllerInstanceWrapperSizeByController

@ControllerInstanceWrapperFunctionSpace

Parameters:

BaseControllerTree

Return:

IntegerLiteral

getControllerLogbooks

@FController

Return:

List<ControllerLogbook>

getControllerTypeInjection

Parameters:

Model
PlatformType

getDatatypeLibraries

@FDatatypeLibrary

Returns a recursive non-cyclic list of all datatype libraries. Starting from the current controller including the implemented interface.

Return:

List<DatatypeLibrary>

getDigitalInputs

@FController

Return:

List<DigitalInput>

getExecParameter

getExtendableObjects

@FController

Return:

List<Controller>

getFunctionBlocks

@FController

Return:

List<AFunctionBlock>

getFunctionLibraries

@FController

Return:

List<FunctionLibrary>

getFunctions

@FController

returns all functions in a controller

Return:

List<Function>

getGlobalVariableLibraries

@FController

Return:

List<GlobalVariableLibrary>

getIfsSpecificData

@FController

Returns all specific data of controller interface specific. Including inheritance elements.

Return:

List<DataSpecification>

getIfsSpecificInputOutput

@FController

Returns all specific data of controller interface specific. Including inheritance elements.

Return:

List<AInputOutputSpecific>

getInitFunctions

@FController

Return:

List<Function>

getInputOutputSpecifications

@FController

Parameters:

InputOutput
TypePathLiteral

Return:

List<AInputOutputSpecification>

getInputsOutputs_depr

@FController

Use interface.getInputsOutputs directly.

Return:

List<InputOutput>

getInterlockFunctions

@FController

false-, trueFunctions

Return:

List<Function>

getInterlocks

@FController

Return:

List<AbstractInterlock>

getLocMsgClusterDefinitions

@FController

Return:

List<LocalMessageClusterInstance>

getLocalVariables

@FController

Return:

List<LocalVariable>

getMaxHierarchicalStateLevelCount

@FController

returns the maximum depth of hierarchical state levels of this statemachine

Return:

IntegerLiteral

getMaxMsgId

@InterfaceLocalFunctionspace

highest message id

Return:

IntegerLiteral

getMessageDefinitions

@FController

Return:

List<MessageDefinition>

getMessageLastIndex

@MessageFunctions

Return:

IntegerLiteral

getMessageReactionFunctions

@FController

Return:

List<MessageReactionFunctions>

getMessagesInLimitDefinitions

@FLimitMonitoring

returns all messages, wich are defined in a limit definition

-> for local flag

Parameters:

PlatformType
Config
ModelConfig

Return:

List<AbstractMessageDefinition>

getMethods

@FController

Return:

List<AControllerMethod>

getNonRemanentNonReferenceVariables

@InterfaceLocalFunctionspace

Return:

List<LocalVariable>

getNotExistBehavoiurFunctions

@FController

Return:

List<Function>

getOverwrittenObjects

@FController

Return:

List<AOverrideableObject>

getPathDotSeparated

@TemplateFunction

Parameters:

ControllerTree

Return:

StringLiteral

getPathPrefix

getReferenceVariables

getRelativePackage

@TemplateFunction

returns relative package name

Parameters:

ControllerTree

Return:

StringLiteral

getRootStatemachineDiagramm

@FControllerTreeDiagram

Return:

DomainDiagram

getSharedGuards

@FController

Return:

List<GuardImpl>

getSimulationVariables

@FController

Return:

List<Simulation>

getSpecifications

@FController

returns all specifications

including specifications of array objects with empty array indices

Parameters:

AInterfaceData
TypePathLiteral

Return:

List<ASpecification>

getSpecificationsStruct

@FController

returns all specifications

including specifications of struct

Parameters:

AInterfaceData
TypePathLiteral

Return:

List<ASpecification>

getStatefullComponentElement

@AnimationFunctions

Return:

List<Resource>

getStatefullComponentElementMaxId

@AnimationFunctions

Parameters:

BaseControllerTree

Return:

IntegerLiteral

getStatefullComponentElementUnique

@AnimationFunctions

Return:

List<Resource>

getStatefullComponentNumberOfElements

@AnimationFunctions

Return:

IntegerLiteral

getStatefullComponentTransitionMaxId

@AnimationFunctions

Return:

IntegerLiteral

getStatefullComponentTransitionUnique

@AnimationFunctions

Return:

List<Resource>

getStatemachineInitTemplate

@FTemplateFunctions

Parameters:

Model
ControllerTree
PlatformType
Resources

getStatemachineTemplate

@FTemplateFunctions

Parameters:

Model
ControllerTree
ACallingBaseElement
PlatformType
Resources

getStatemachineWrapper

@FController

Return:

StatemachineWrapper

getTransitionFunctionId

@FTemplateFunctions

Parameters:

TransitionWrapper

Return:

IntegerLiteral

getTransitionWrappersWithTransitionFun

@FController

Return:

List<TransitionWrapper>

getTransitions

@FStatemachineSequence

Return:

List<Transition>

getUniqueMessagesInLimitDefinitions

@FLimitMonitoring

returns all unique messages, wich are defined in a limit definition

-> for local flag

Parameters:

PlatformType
Config
ModelConfig

Return:

List<AbstractMessageDefinition>

@FController

Return:

List<UserObjectLink>

getUserTaskLinkIfaceVarListCs

@ControllerFunctionSpace

getVariableLibrary

@FController

returns all variable libraries from shared functions and controllers

Return:

List<VariableLibrary>

getVariableLibraryUnique

@TemplateFunction

Return:

List<VariableLibrary>

globalVariableNameParamList

@TemplateFunction

returns a comma separated list of all global variable names

ifCtrlClassName

@TemplateNameFunctions

controller interface class name at PLC.

ilkClassName

@TemplateNameFunctions

interlock class name at PLC.

inOut

initCommon

@TemplateFunction

input

inputBridge

@FTemplateFunctions

Parameters:

PlatformType

internal_getDatatypeLibraries

@FDatatypeLibrary

Return:

List<DatatypeLibrary>

internal_getExtendedControllers

@FController

Return:

List<Controller>

internal_getFullInheritance

@FController

Return:

List<Controller>

internal_getFullInheritanceInverse

@FController

Return:

List<Controller>

internal_getMethods

@FController

Return:

List<AControllerMethod>

internal_getRootStatemachine

@FController

Return:

Statemachine

internal_getStateBases

@FController

Return:

List<StateBase>

internal_getStatemachines

@FController

get root statemachine and all its extension statemaschines

Return:

List<Statemachine>

internal_getStatemachinesExtensions

@FController

get all extensions of the current root statemachine

Return:

List<StatemachineExtension>

internal_outputBridge

@FTemplateFunctions

Parameters:

PlatformType

isInSamePackage

@TemplateFunction

Parameters:

StringLiteral
ControllerTree

Return:

BooleanLiteral

isWithControllerTreeInSamePackage

@TemplateFunction

controller and the controller tree are in the same package

Parameters:

ControllerTree

Return:

BooleanLiteral

limitMonitoring

@FLimitMonitoring

Parameters:

PlatformType
Config

maxInstanceNrOfController

@ControllerTreeFunctionSpace

Parameters:

ControllerTree

Return:

IntegerLiteral

maxInstanceNrOfControllerArraySize

@ControllerTreeFunctionSpace

Parameters:

ControllerTree

Return:

IntegerLiteral

maxInstanceNrOfControllerArraySizeNull

@ControllerTreeFunctionSpace

Parameters:

BaseControllerTree

Return:

BooleanLiteral

modeAll

@FTemplateFunctions

Parameters:

PlatformType
Resources

output

Parameters:

PlatformType

outputBridge

@FTemplateFunctions

Parameters:

PlatformType

remanentClassName

@TemplateNameFunctions

remanent struct name at PLC.

resetAll

@FTemplateFunctions

Parameters:

PlatformType
Resources

simulationAll

@FTemplateFunctions

Parameters:

PlatformType
Resources

unusedVariableWorkaround

@FTemplateFunctions

Parameters:

ControllerTree