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
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>
getUserObjectLinks
@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