Project structure
This chapter describes the project structure of the TemplateNextGenArchBackend project (lib, exe and plugin projects as well as the dplist directory).
The TemplateNextGenArchBackend project has the following structure:
TemplateNextGenArchBackend/
├─ dplist/
├─ Exe/
├─ ExternLibs/
├─ Lib/
├─ Plugin/
├─ _TEMPLATE_CMakeLists.txt
Lib project contains the main logic of the backend.
Exe project builds the backend that can be run in "out-of-proc" mode. The result of building this project is an executable file:
- For Linux - NGABackendNameBackend
- For Windows - NGABackendNameBackend.exe
Plugin project builds the backend that can be run in "in-proc" mode. The result of building this project is a library:
- For Linux - libNGABackendNameBackendPlugin.so
- For Windows - NGABackendNameBackendPlugin.dll
dplist folder contains .dpl file with internal datapoints of the backend. This .dpl file must be imported into the WinCC OA project to let the NGA work with the backend. DpList contains the following data points:
- _NGA_B_BackendNameBackend datapoint of _NGA_Backend datapoint type - Describes the backend settings such as operation mode, ZMQ address for interacting with the frontend, database connection settings, database specific settings, etc.
- _NGA_B_BackendNameBackend_2 datapoint of _NGA_Backend datapoint type - Required for a redundant project.
- _NGA_G_EVENT_BackendName datapoint of _NGA_Group datapoint type - Describes an archive group for event archiving.
- _NGA_G_EVENT_BackendName_2 datapoint of _NGA_Group datapoint type - Required for a redundant project.
- _NGA_P_BackendNameBackend_Profile datapoint of
_NGA_P_BackendNameBackend_Profile datapoint type - The Profile comprises the following
settings:
- Send DPE (data point element) as
- Time Parameters
- Specific Settings.
For more details about internal data point types, see subchapter Internal Data Points.
ExternLibs folder contains external libraries that are required to build the backend. The following folders are part of the Backend API delivery: Protobuf and ZeroMQ. These libraries will be downloaded by the newNextGenArchBackend script.
CMakeLists.txt contains commands to build BackendNameBackend files.