4. Structure and Modules Description

Version 6.5 by Lana on 2025/12/03 21:54

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 
 sed_ftp_waveformA service for receiving waveform files via FTP protocolsed_metrology_380.bin
 sed_iec61107_rtdA service for obtaining real-time data from devices using the IEC 62056-21 protocolsed_metrology_61107.bin
 sed_iec61850_archA service for receiving archived data from devices using the IEC 61850 protocol 
 sed_iec61850_rtdA service for receiving operational data from devices using the IEC 61850 protocol 
Proprietary protocol data collection and transmission services
  1.  
sed_satec_archA service for reading archived data (metering and event logs) from SATEC devicessed_metrology_7_8.bin
  1.  
sed_satec_pq_journalA service for obtaining event logs for monitoring the power quality from Satec devicessed_metrology_106.bin
  1.  
sed_satec_pq_reportA service for receiving reports on the power quality control from Satec devicessed_metrology_106.bin
  1.  
sed_satec_waveformsA service for proofreading waveforms from SATEC devices using Modbus TCP and RTU over TCP protocolssed_metrology_108_109.bin
  1.  
sed_iec103_rtdA service for reading real-time data from TOR 200 terminals according to the IEC protocol-60870-5-103sed_metrology_391.bin
  1.  
sed_sepam_waveformA service for proofreading waveforms and time synchronization using the Modbus RTU over TCP protocol from Sepam devicessed_metrology_298_299.bin
  1.  
sed_rtu_over_tcp_logikamp_rtdA service for reading real-time data from devices using the LogicaMP RTU over TCP protocolsed_metrology_121.bin
  1.  
sed_rtu_over_tcp_logikamp_archA service for reading archived data from devices using the LogicaMP RTU over TCP protocolsed_metrology_122.bin
  1.  
sed_axis_video_journalAn AXIS camera recording servicesed_metrology_435.bin
  1.  
sed_vzlyotmb_archA service for reading archives and event logs of devices Vzlet TSRV-043, TSRV-027, IVK-TERsed_metrology_25_133.bin
  1.  
sed_micom_waveformsA service for reading waveform files from Micom devices using Modbus RTU over TCP protocolsed_metrology_370.bin
  1.  
sed_pulsar_archA service for reading archives from Pulsar devices using the Modbus protocolsed_metrology_342.bin
  1.  
sed_rtu_over_tcp_a1800_archA service for receiving archived data from A1800 meters using the Modbus RTU over TCP protocolsed_metrology_232.bin
  1.  
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
  1.  
sed_rtu_over_tcp_acron_archA service for receiving archived data from Acron meters using the Modbus RTU over TCP protocolsed_metrology_142.bin
  1.  
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
  1.  
sed_rtu_over_tcp_bmrz_waveformA service for reading waveform files from BMRZ terminals using the Modbus RTU over TCP protocolsed_metrology_110.bin
  1.  
sed_rtu_over_tcp_bzp03_waveformA service for reading waveform files from BZP-03 terminals using Modbus RTU over TCP protocol 
  1.  
sed_rtu_over_tcp_kmp_rtdA service for polling Multitical 601 device using the KMP protocolsed_metrology_191.bin
  1.  
sed_rtu_over_tcp_majac_archA service for receiving archived data from devices using the Mayak protocolsed_metrology_152.bin
  1.  
sed_rtu_over_tcp_mercury200_rtdA service for receiving real-time data from devices using the Mercury 200 protocolsed_metrology_251.bin
  1.  
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
  1.  
sed_rtu_over_tcp_mercury_rtdA service for receiving real-time data from devices using the Mercury 230 protocolsed_metrology_201.bin
  1.  
sed_rtu_over_tcp_photon_rtdA service for receiving real-time data from devices using the photon RTU over TCP protocolsed_metrology_221.bin
  1.  
sed_rtu_over_tcp_ref542plus_waveformProofreading of waveforms and time synchronization via Modbus RTU over TCP protocol from ABB REF 542plus devices 
  1.  
sed_rtu_over_tcp_set4tm_archA service for polling SET-4TM, PSC meters’ archivessed_metrology_112.bin
  1.  
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
  1.  
sed_rtu_over_tcp_tem104_archA service for receiving archived data from devices using the TEM104 protocolsed_metrology_162.bin
  1.  
sed_rtu_over_tcp_tem104_rtdA service for receiving real-tume data from devices using the TEM104 protocolsed_metrology_161.bin
  1.  
sed_rtu_over_tcp_vist_archA service for receiving archived data from devices using the VIS.T protocolsed_metrology_172.bin
  1.  
sed_rtu_over_tcp_vkt5_archA service for receiving archived data from VKT-5 devicessed_metrology_312.bin
  1.  
sed_rtu_over_tcp_vkt5_rtdA service for receiving real-time data from VKT-5 devicessed_metrology_311.bin
  1.  
sed_vkt7_archA service for receiving archived data from VKT-7 devices 
  1.  
sed_vkt7_rtdA service for receiving real-time data from VKT-7 devices 
  1.  
sed_rtu_over_tcp_vtd_archA service for receiving archived data of VTD devicessed_metrology_182.bin
  1.  
sed_rtu_over_tcp_vtd_rtdA service for receiving operational data from VTD devicessed_metrology_181.bin
  1.  
sed_uvp_archA service for poling Promavtomatika's archive for devices of the UVP seriessed_metrology_352.bin
  1.  
sed_ce_archA service for receiving archived data from Energomera devices of the CE series according to the IEC61107 protocolsed_metrology_362.bin
  1.  
sed_alpha_archA service for receiving archived data from Alfa-3 devices manufactured by Alfamerased_metrology_462_472.bin
  1.  
sed_bug01_rtdA service for receiving archived data of BUG-01 devicessed_metrology_491.bin
  1.  
sed_dymetic_archA service for receiving archived data from Dimetiksed_metrology_552.bin
  1.  
sed_irvis_archA service for receiving archived data from devices using the Irvis protocolsed_metrology_442.bin
  1.  
sed_karat_archA service for receiving archived data from Karat devicessed_metrology_512.bin
  1.  
sed_lis200_archA service for receiving archived data from the EK-260 and EK-270 devices manufactured by Elstersed_metrology_452.bin
  1.  
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
  1.  
sed_sql_rtdA service for receiving tele-measurement data from MySQLsed_metrology_211.bin
  1.  
sed_sql_archA service for archived data retrieval from Microsoft SQL Server 
  1.  
sed_sql_arch_sendA service for recording archived data in an external SQL database 
Data processing services
  1.  
sed_controllerA service for telemetry reception and processing (writes to the InfluxDB database)sed_metrology_controller.bin
  1.  
sed_events_calcA service for generating event based on the conditions specified in the configuration 
  1.  
sed_calc_archA service for calculating metering channels

sed_metrology_calc_arch.bin

sed_metrology_formulas.bin

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