Skip to main content

AbstractCyclicNode

Short Summary

This FB is a extention of the AbstractNode, which implements the Hierarchical Composition Pattern, designed to create flexible, extensible, and dynamically configurable node-based systems. This implementation provides a robust framework for creating tree-like structures with mode and signal propagation from the root node to the end nodes.

This node type provides a run method that is automatically called every cycle. It can be used to implement cyclic monitoring or data handling.

AccessAbstractFinalExtendsImplements
YesNoAbstractNodeCNM_OpModeHandlingInterfaces.ICyclicNode

UML Diagram

Parameters

none

Properties

className

Type: CNM_AbstractObject.ClassName

This abstract property returns the class name of the concrete object,

Methods

handleMode

  • Parameters:
    • execute (BOOL)
    • pause (BOOL)
    • mode (CNM_OpModeHandlingInterfaces.IModeBehaviour)
  • Return type: VOID

This method manages the operation of a mode, handling the execution and pausing states, while coordinating with subnodes and evaluating their states. It ensures the selected mode is active and updates the node's state based on the subnodes and its own operation.

resetLocalModes

This method cleares overwritten modes for a node and all of its subnodes.

Abstract methods

disable

This method disables a node. It can take mutliple cycles. It has to be implemented for every node/device.

enable

This method enables a node. It can take mutliple cycles. It has to be implemented for every node/device.

initialize

This method contains instructions and sequences for the init mode.

run

This method will be called in every cycle for a node. It can be used to implement hardware drivers/measurements/monitoring.

stopImmediate

This method executes stops all movements of a node. It has to be overwritten for every node.

Code

Declaration

FUNCTION_BLOCK ABSTRACT AbstractCyclicNode EXTENDS AbstractNode IMPLEMENTS CNM_OpModeHandlingInterfaces.ICyclicNode
VAR
manualCmdsEnabled :BOOL := FALSE;
END_VAR