4. Structure and Modules Description

Version 8.2 by Lana on 2026/02/06 05:05

CONTENT


1. INTRODUCTION

CENTO is a multifunctional software platform for data collection, processing, and display.

CENTO can be used to build various automated systems, including dispatching, electricity and energy resource metering, emergency event registration, power quality control, monitoring, and diagnostics, etc.

This document describes the CENTO structure and lists the CENTO components, each with a brief description. 

2. CENTO STRUCTURE

The general structure of CENTO is shown in Fig.2.1.

Screenshot 2025-12-03 at 18.41.53.png

Fig. 2.1 – The general structure of CENTO

CENTO consists of two main blocks:

  1. web part;
  2. "core" of the system.

The web part provides data to the user and contains system configuration tools. Information is provided to users via a web browser.

The "core" of the system consists of a set of applications that run all CENTO components, collect, transmit, process, and store data.

3. COMPOSITION AND DESCRIPTION OF CENTO COMPONENTS

3.1. Web Part

The CENTO web interface is implemented on the basis of the nginx web server, web application modules (based on PHP and executable services) and a web browser installed on the client site.

3.2. The "core" of the system

Databases

MongoDB is a NoSQL database that stores system configuration, event logs, diagrams, and their parts and elements.

InfluxDB is a NoSQL database that stores information collected by the system.

Message broker

NATS is a message broker that exchanges information between CENTO components.

Polling and data transmission services

Polling services collect data from information sources and transmit data to external systems. Polling services use a message broker to transmit the collected data to services that process the data and/or write it to databases.

A few polling services contain additional binary files "sed_metrology_xxxx.bin", where XXX is the code of the polling service. Binary files "sed_metrology_XXX.bin" are a metrologically significant part of the polling modules and contain information about the mechanism for extracting data from device memory registers, which correspond to the configuration of the devices being polled, as well as recording the received values in the database.

When metrologically significant files change, their checksum changes. Information about checksums is displayed on the "Services" tab of the "System Information" page. Checksums are calculated by the sed_system service using the MD5 algorithm. To display up-to-date information about checksums, click the "Update Information" button in the upper-right corner of the System Information page (System - Settings) - see Fig.3.1.

Screenshot 2025-12-03 at 18.47.38.png

Fig. 3.1 – Updating information on checksums of metrologically significant files

Data processing services

The processing services receive the data coming from the message broker, process it, and write it to the database.

The data processing services contain a metrologically significant part the binary file "sed_metrology_YYY.bin" where YYY is the service identification name. Binary files "sed_metrology_YYY.bin" contains information about algorithms and mechanisms for calculating measured values and are used by the processing modules to directly perform their functions.

The Pre-calculated Parameter Calculation Service (sed_calc_arch service) additionally has a sed_metrology_formulas.bin file. The sed_metrology_formulas.bin file contains custom formulas for pre-calculations that have the "metrologically significant" attribute.

When metrologically significant files or formulas with a metrological significance attribute change, the checksum of the file changes. Information about checksums is displayed on the "Services" tab of the "System Information" page. Checksums are calculated by the sed_system service using the MD5 algorithm.

Auxiliary Services

Auxiliary services are designed to ensure that the main CENTO services perform their functions.

The list of CENTO services and their brief description is given in Table 1. The composition of CENTO services for a particular system depends on the functions performed and is displayed on the "System Information" tab.

Table 1 – CENTO software components

Service NameFunctionMetrologically significant part
Data collection and transmission services

1. 

sed_bus_dispatcherSequential Device Polling Management Service 

2. 

sed_xml_readerService for processing received XML files 80020 

3. 

sed_xml_sendXML file transfer Service 80020 

4. 

sed_archive_webapiImplementation of the web API for transmitting archived data according to the CENTO documentation 

5.

sed_s2s_configurationConfiguration transmission service between CENTO servers 
Data collection and transmission services using standard protocols
6.sed_modbus_rtdA service for reading real-time data from devices using Modbus protocol (Modbus TCP and Modbus RTU over TCP)sed_metrology_001.bin
7.sed_modbus_rtd_sendA service for sending real-time data to third-party devices using the Modbus TCP protocol 
8.sed_modbus_syncA device time synchronization service using Modbus protocol (Modbus TCP and Modbus RTU over TCP) 
9.sed_snmp_rtdA service for reading real-time data from devices using the SNMP (v1, v2c, v3), ICMP protocols 
10.sed_iec103_waveformA service for reading waveform files from devices using the IEC protocol-60870-5-103sed_metrology_393.bin
11.sed_iec104_rtdA service for reading real-time data from devices using the IEC 60870-5-104 protocolsed_metrology_011.bin
12.sed_iec104_rtd_sendA service for sending real-time data to third-party devices using the IEC 60870-5-104 protocolsed_metrology_012.bin
13.sed_opcda_rtdA service for receiving real-time data using the OPC DA protocol 
14.sed_opcua_rtdA service for receiving real-time data using the OPC UA protocol 
15.sed_opcua_archA service for receiving archived data using the OPC UA protocolsed_metrology_402.bin
16.sed_opcua_serverA service for transmitting data using the OPC UA protocol 
17.sed_dnp3_rtdA service for reading real-time data from devices using the DNP3 protocol 
18.sed_ftp_waveformA service for receiving waveform files via FTP protocolsed_metrology_380.bin
19.sed_iec61107_rtdA service for obtaining real-time data from devices using the IEC 62056-21 protocolsed_metrology_61107.bin
20.sed_iec61850_archA service for receiving archived data from devices using the IEC 61850 protocol 
21.sed_iec61850_rtdA service for receiving operational data from devices using the IEC 61850 protocol 
Proprietary protocol data collection and transmission services
22.sed_satec_archA service for reading archived data (metering and event logs) from SATEC devicessed_metrology_7_8.bin
23.sed_satec_pq_journalA service for obtaining event logs for monitoring the power quality from Satec devicessed_metrology_106.bin
24.sed_satec_pq_reportA service for receiving reports on the power quality control from Satec devicessed_metrology_106.bin
25.sed_satec_waveformsA service for proofreading waveforms from SATEC devices using Modbus TCP and RTU over TCP protocolssed_metrology_108_109.bin
26.sed_iec103_rtdA service for reading real-time data from TOR 200 terminals according to the IEC protocol-60870-5-103sed_metrology_391.bin
27.sed_sepam_waveformA service for proofreading waveforms and time synchronization using the Modbus RTU over TCP protocol from Sepam devicessed_metrology_298_299.bin
28.sed_rtu_over_tcp_logikamp_rtdA service for reading real-time data from devices using the LogicaMP RTU over TCP protocolsed_metrology_121.bin
29.sed_rtu_over_tcp_logikamp_archA service for reading archived data from devices using the LogicaMP RTU over TCP protocolsed_metrology_122.bin
30.sed_axis_video_journalAn AXIS camera recording servicesed_metrology_435.bin
31.sed_vzlyotmb_archA service for reading archives and event logs of devices Vzlet TSRV-043, TSRV-027, IVK-TERsed_metrology_25_133.bin
32.sed_micom_waveformsA service for reading waveform files from Micom devices using Modbus RTU over TCP protocolsed_metrology_370.bin
33.sed_pulsar_archA service for reading archives from Pulsar devices using the Modbus protocolsed_metrology_342.bin
34.sed_rtu_over_tcp_a1800_archA service for receiving archived data from A1800 meters using the Modbus RTU over TCP protocolsed_metrology_232.bin
35.sed_rtu_over_tcp_a1800_rtdA service for receiving real-time data from A1800 meters using the Modbus RTU over TCP protocolsed_metrology_231.bin
36.sed_rtu_over_tcp_acron_archA service for receiving archived data from Acron meters using the Modbus RTU over TCP protocolsed_metrology_142.bin
37.sed_rtu_over_tcp_acron_rtdA service for receiving real-time data from Acron meters using the Modbus RTU over TCP protocolsed_metrology_141.bin
38.sed_rtu_over_tcp_bmrz_waveformA service for reading waveform files from BMRZ terminals using the Modbus RTU over TCP protocolsed_metrology_110.bin
39.sed_rtu_over_tcp_bzp03_waveformA service for reading waveform files from BZP-03 terminals using Modbus RTU over TCP protocol 
40.sed_rtu_over_tcp_kmp_rtdA service for polling Multitical 601 device using the KMP protocolsed_metrology_191.bin
41.sed_rtu_over_tcp_majac_archA service for receiving archived data from devices using the Mayak protocolsed_metrology_152.bin
42.sed_rtu_over_tcp_mercury200_rtdA service for receiving real-time data from devices using the Mercury 200 protocolsed_metrology_251.bin
43.sed_rtu_over_tcp_mercury_archA service for reading archives and event logs from Mercury-230 series devices using the Mercury-230 protocolsed_metrology_202.bin
44.sed_rtu_over_tcp_mercury_rtdA service for receiving real-time data from devices using the Mercury 230 protocolsed_metrology_201.bin
45.sed_rtu_over_tcp_photon_rtdA service for receiving real-time data from devices using the photon RTU over TCP protocolsed_metrology_221.bin
46.sed_rtu_over_tcp_ref542plus_waveformProofreading of waveforms and time synchronization via Modbus RTU over TCP protocol from ABB REF 542plus devices 
47.sed_rtu_over_tcp_set4tm_archA service for polling SET-4TM, PSC meters’ archivessed_metrology_112.bin
48.sed_rtu_over_tcp_set4tm_rtdA service for receiving real-time data from devices using the SET-4TM rtu over tcp protocolsed_metrology_111.bin
49.sed_rtu_over_tcp_tem104_archA service for receiving archived data from devices using the TEM104 protocolsed_metrology_162.bin
50.sed_rtu_over_tcp_tem104_rtdA service for receiving real-tume data from devices using the TEM104 protocolsed_metrology_161.bin
51.sed_rtu_over_tcp_vist_archA service for receiving archived data from devices using the VIS.T protocolsed_metrology_172.bin
52.sed_rtu_over_tcp_vkt5_archA service for receiving archived data from VKT-5 devicessed_metrology_312.bin
53.sed_rtu_over_tcp_vkt5_rtdA service for receiving real-time data from VKT-5 devicessed_metrology_311.bin
54.sed_vkt7_archA service for receiving archived data from VKT-7 devices 
55.sed_vkt7_rtdA service for receiving real-time data from VKT-7 devices 
56.sed_rtu_over_tcp_vtd_archA service for receiving archived data of VTD devicessed_metrology_182.bin
57.sed_rtu_over_tcp_vtd_rtdA service for receiving operational data from VTD devicessed_metrology_181.bin
58.sed_uvp_archA service for poling Promavtomatika's archive for devices of the UVP seriessed_metrology_352.bin
59.sed_ce_archA service for receiving archived data from Energomera devices of the CE series according to the IEC61107 protocolsed_metrology_362.bin
60.sed_alpha_archA service for receiving archived data from Alfa-3 devices manufactured by Alfamerased_metrology_462_472.bin
61.sed_bug01_rtdA service for receiving archived data of BUG-01 devicessed_metrology_491.bin
62.sed_dymetic_archA service for receiving archived data from Dimetiksed_metrology_552.bin
63.sed_irvis_archA service for receiving archived data from devices using the Irvis protocolsed_metrology_442.bin
64.sed_karat_archA service for receiving archived data from Karat devicessed_metrology_512.bin
65.sed_lis200_archA service for receiving archived data from the EK-260 and EK-270 devices manufactured by Elstersed_metrology_452.bin
66.sed_rtu_over_tcp_sepam_waveformA service for reading waveform files from Sepam devices using Modbus RTU over TCP protocolsed_metrology_298.bin
Data export and import services in SQL databases
67.sed_sql_rtdA service for receiving tele-measurement data from MySQLsed_metrology_211.bin
68.sed_sql_archA service for archived data retrieval from Microsoft SQL Server 
69.sed_sql_arch_sendA service for recording archived data in an external SQL database 
Data processing services
70.sed_controllerA service for telemetry reception and processing (writes to the InfluxDB database)sed_metrology_controller.bin
71.sed_events_calcA service for generating event based on the conditions specified in the configuration 
72.sed_calc_archA service for calculating metering channels

sed_metrology_calc_arch.bin

sed_metrology_formulas.bin

73.sed_calc_rtdA service for calculating pre-calculated tags 
74.sed_round_archA service for calculating metering channels with roundingsed_metrology_round_arch.bin
75.sed_energy_calcA service for server-level energy resource calculationsed_metrology_411_421.bin
76.sed_loadflow_calcA service for calculating modes based on an information model 
77.sed_storage_writerA service for recording archived data (metering and event logs) in a data storage (InfluxDB and MongoDB) 
Web Part Services
78.php5-cgiA Web Query Service 
79.nginxA Web Server 
80.sed_uiA service for processing requests for web resources (js, css, html files) 
81.sed_rtd_analysisA service for analyzing real-time data 
82.sed_authA service for authenticating and authorizing users in the system and configuring access rights 
83.sed_auth_privilegesA User Privilege Management Service 
84.sed_api_gatewayA service for proxying of web requests to other services within the system 
85.sed_dataset_configuratorA service for working with datasets 
86.sed_rtdA real-time data subscription service 
87.sed_rtd_archiveA service for generating archived data from real-time data 
88.sed_systemA service that provides a user interface with information about the system 
89.sed_archiveA service that provides user interfaces for analyzing electricity and energy accounting 
90.sed_archive_integrityA service that provides user interfaces for analyzing the completeness of electricity and energy resources data 
91.sed_pq_reportsA service for working with power quality reports 
92.sed_pq_journalA service for working with power quality logs 
93.sed_ras_configuratorA service for configuring emergency event loggers 
94.sed_reportsA service for generating and managing reports, and maintaining user interfaces for reports 
95.sed_widgetsA service for the user interfaces of drag'n'drop widgets 
96.sed_menuA service for displaying and configuring CENTO system menu 
97.sed_mnemonic_diagramsA service for the user interfaces of diagrams v2 
98.sed_configurationA service for user interfaces for system configuration (alerts, mail servers, formulas, device trees) 
99.sed_devices_configuratorA service for editing device configurations, tags, and channels 
100.sed_common_event_journalA service for user interfaces for generalized configurable event logs 
101.sed_device_event_journalA Device Log Service 
102.sed_operative_journalA service for the user interface of the real-time event log 
103.sed_video_journalA Video Camera Log Service 
104.sed_markingA Dispatch Tag Management Service 
105.sed_soundsA service for the user interface for sound alerts management 
106.sed_video_streamA service for streaming video from cameras registered in the information model 
System services
107.natsA message broker and a service registry (service registry/service discovery) 
108.influxdbA time series database 
109.mongodA database of configuration and structured data (event logs, requests) 
110.sed_signalsA signal reception and transmission service inside the system (remote control, configuration update, manual polling, parameter recalculation) 
111.sed_debugA service for providing access to debugging information of CENTO services 
112.sed_graphqlA subscription service for device statuses 
113.sed_energy_calc_configurationA service for creating, changing, and deleting energy resource calculation configurations at the server level 
114.sed_backupA service for backing up data according to the cron rule. 
115.sed_channelsA channel subscription service 
116.sed_channels_dataA subscription service for protocol statuses and the latest channel data 
117.sed_emission_archiveA service for providing emissions metering data 
118.sed_profile_archiveA service for providing metering data from InfluxDB via gRPC. 
119.sed_web_storageA service for accessing archived metering data 
120.sed_watchdogA service for managing the launch of CENTO services 
121.sed_schedulerA service for launching scheduled tasks 
122.sed_licenseA licensing service 
123.sed_monitorA service for monitoring the operation of the system's services and applications 
124.sed_telecontrolA remote control service 
125.sed_notificatorA service for notifying users about events by e-mail 
126.sed_waveforms_journalA waveform Log Service 
127.sed_storage_configuratorAn InfluxDB Database Configuration Service 
128.sed_system_configurationA CENTO System Configuration Editing Service 
129.sed_user_settingsA User Settings Configuration Service 
130.sed_system_event_journalA service for registration and provision of system events (business logic and administration) 
131.sed_tech_event_journalA service for processing and managing technological events 
132.sed_information_modelA System Information Model Management Service 
133.sed_events_configuratorA System Event Configuration Service 
134.sed_information_model_editorA service for editing the information model 
Server Backup Services
135.sed_coordinatorA service for selecting the cluster's host server using the Bully leader election algorithm 
136.sed_reserveA service for displaying a list of backup servers 
137.sed_replicatorA log replication service between cluster servers 
138.sed_influx_replicatorA data replication service (archives and telemetry) between cluster servers 
139.sed_events_replicatorAn event replication service between cluster servers 
140.sed_fs_synchA data replication service (gob files, reports, waveforms) between cluster servers