Application Software Structure - Definitions
Modules to Build up the Structure
Structure Overview
You normally write the PLC program. In most cases , Kollmorgen application team members create the motion control part.
The global software structure is built with different modules placed on different levels:
Figure 1: Software Structure Overview
Module Definition
- A module is one unit of the software structure (triangle)
- It is controlled by one module from the next higher level and can in turn control several modules in the next lower level
- It never communicates with modules of the same level
- It can generally run independently from any other modules at the same or higher level
To have the structure running as a real application, it needs to be controlled by a PLC. As the PLC is not part of the application structure, only the main and axis modules are described here.
Main Module
The main module controls the functional work that globally affect the application (e.g. multi axes functions). It receives commands from the PLC and sends back acknowledgements. The main module does not directly act on the physical axes, but controls the axis modules that are linked to them.
Communication between main and axis modules is done via internally defined data channels.
Figure 2: Main Module Description
As shown in the Main Module Description image, the module consists of two parts:
Module Controller
- This part is responsible for state, state transition, error and functions handling.
- It receives state transition and function call commands from the host, performs all needed actions and sends back some acknowledgments.
- In case of an error, it reacts by itself and sends a message to the PLC.
- If requested, it activates state transitions and functions in the axis modules, by sending commands to them and waiting for acknowledgment.
- The main module controller also manages the error status of the submitted modules and performs the needed actions.
Functional Part
- This consists of all functionalities needed for the current application.
- These functions can be state dependent (e.g., multi-axes functions) or state independent (e.g., increase a speed value).
Axis Module
The axis module controls the functional work that affect the application one or more physical axes (e.g., single-axis functions). It receives commands from the PLC and sends back acknowledgments.
The axis module also communicates with its main module via the internally defined data channel.
Figure 3: Axis Module Description
As shown in the Axis Module Description image, the axis module consists of the same Module Controller and Functional Part two parts as the main module with this Module Controller addition:
Axis Module Controller
- If the axis module is not connected to its main module:
- It receives state transition and function call commands from the host.
- Performs all needed actions and sends back some acknowledgments.
- If the axis module is connected, state transition commands are received from its main module and not from the host.
- In case of an error it only reacts by itself, if it is not connected to the main module.