Project Structure

This chapter describes the project structure of the C++ TemplateNextGenArchBackend project (lib, exe and plugin projects as well as the dplist directory). The NGA API is included in the WinCC OA API package setup.

The TemplateNextGenArchBackend project has the following structure:

TemplateNextGenArchBackend/
	├─ dplist/
	├─ Exe/
	├─ Lib/
	├─ Plugin/
	├─ _TEMPLATE_CMakeLists.txt			
  • The 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. The 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 - containing the backend configuration for server 2 in case of a redundant project.
    • _NGA_G_EVENT_BackendName datapoint of _NGA_Group datapoint type - Configuration of an archive group for archiving events.
    • _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 profile settings - see chapter Profile.

    For more details about internal data point types, see the chapter Internal Datapoints and the sub chapters _NGA, _NGA_Group, _NGA_Backend and _NGA_BackendProfile.

  • The Exe directory contains a project that builds the backend that can be run in "out-of-proc" mode. The result of building this project is an executable file:

    • NGA<Backend name>Backend
  • External dependencies of the project are downloaded by CMake during the build creation process and stored in the build folder. Downloaded external dependencies include Abseil, Protobuf and ZeroMQ.
  • The Lib project contains the main logic of the backend.
  • The Plugin project directory contains a project that 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
  • _TEMPLATE_CMakeLists.txt contains commands to build BackendNameBackend files.
  • The updateNextGenArchExternLibs.cmd is located in C:\Program Files\Siemens\Automation\WinCC_OA\3.21\api\NextGenArchBackendCommon