2. Setup Manual
/* ── Reading progress bar ── */
#rn-prog { position:fixed;top:0;left:0;height:3px;width:0;background:#005AB4;z-index:9999;pointer-events:none; }
/* ── Page content wrapper ── */
.doc-wrap { position:relative; }
.doc-content {
margin-right:224px;
border-left:1px solid #E8E8E8;
border-right:1px solid #E8E8E8;
padding:0 32px;
}
/* ── Right "On This Page" TOC ── */
.doc-toc {
position:absolute;top:0;right:0;width:200px;
font-size:12.5px;line-height:1.55;
padding:20px 0 20px 16px;
}
.doc-toc.is-fixed { position:fixed;width:200px;overflow-y:auto;z-index:10; }
.toc-header { display:flex;justify-content:space-between;align-items:center;margin-bottom:10px; }
.toc-header strong { font-size:13px;font-weight:700;color:#222; }
.toc-toggle { background:none;border:none;cursor:pointer;color:#555;font-size:14px;padding:0 2px;line-height:1; }
.toc-toggle:hover { color:#222; }
.doc-toc ul { list-style:none;margin:0;padding:0; }
.doc-toc li { margin:0; }
.doc-toc a { display:block;padding:3px 0;color:#555;text-decoration:none;border-left:2px solid transparent;transition:color .12s; }
.doc-toc a:hover { color:#222;text-decoration:underline; }
.doc-toc a.toc-on { color:#222;font-weight:700;border-left:2px solid #005AB4;padding-left:5px; }
.tl1 > a { font-weight:600;color:#222; }
.tl2 > a { padding-left:14px; }
.tl3 > a { padding-left:26px;font-size:12px; }
/* ── Typography ── */
.doc-content h1 { font-size:1.6em;font-weight:700;color:#222;margin:0 0 6px 0;border:none; }
.rn-meta { font-size:.8em;color:#555;margin:0 0 28px 0; }
.doc-content h2 { font-size:1.15em;font-weight:700;color:#222;margin:36px 0 10px 0;display:flex;align-items:baseline;gap:7px;scroll-margin-top:16px; }
.doc-content h3 { font-size:1em;font-weight:700;color:#222;margin:22px 0 8px 0;display:flex;align-items:baseline;gap:6px;scroll-margin-top:16px; }
.doc-content h4 { font-size:.93em;font-weight:700;color:#222;margin:14px 0 6px 0;display:flex;align-items:baseline;gap:5px;scroll-margin-top:16px; }
.doc-content p { font-size:.93em;color:#333;line-height:1.75;margin:0 0 12px 0; }
.doc-content strong { color:#222; }
.doc-content code { background:#f5f5f5;border:1px solid #E8E8E8;border-radius:3px;padding:1px 5px;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:.82em;color:#222;line-height:1; }
/* ── Anchor icon ── */
.anchor-icon { color:#E8E8E8;text-decoration:none;opacity:0;transition:opacity .15s;vertical-align:middle;margin-left:4px;display:inline-flex;align-items:center; }
h2:hover .anchor-icon,h3:hover .anchor-icon,h4:hover .anchor-icon { opacity:1; }
.anchor-icon:hover { color:#005AB4; }
/* ── Callout notes ── */
.note { border-radius:6px;padding:12px 16px;margin:14px 0;border:1px solid transparent; }
.note-info { background:#e1f1f9 !important;border-color:#b3d4ee !important;border-left:4px solid #005AB4 !important; }
.note-warning { background:#fff4ec !important;border-color:#f5cba7 !important;border-left:4px solid #DD5600 !important; }
.note-tip { background:#e5f3df !important;border-color:#b7dba5 !important;border-left:4px solid #73A839 !important; }
.note-hd { font-weight:700;font-size:.85em;display:flex;align-items:center;gap:5px;margin-bottom:5px; }
.note-info .note-hd { color:#003d80 !important; }
.note-warning .note-hd { color:#a03d00 !important; }
.note-tip .note-hd { color:#3d6b1a !important; }
.note-body { font-size:.875em;color:#222 !important;line-height:1.65; }
/* ── Section index list ── */
.section-index { list-style:disc;padding-left:20px;margin:0 0 20px 0; }
.section-index li { margin-bottom:12px; }
.section-index li a { color:#005AB4;font-weight:600;font-size:.93em;text-decoration:underline; }
.section-index li p { margin:3px 0 0 0;font-size:.875em;color:#333;line-height:1.6; }
/* ── Parent topic ── */
.parent-topic { font-size:.82em;color:#555;margin:18px 0 24px 0;border-top:1px solid #E8E8E8;padding-top:10px; }
.parent-topic a { color:#005AB4; }
/* ── Accordion ── */
details.acc { border:1px solid #E8E8E8;border-radius:4px;margin-bottom:5px; }
details.acc summary { display:flex;align-items:center;gap:8px;padding:9px 12px;cursor:pointer;list-style:none;background:none;user-select:none; }
details.acc summary::-webkit-details-marker { display:none; }
details.acc summary::before { content:'▶';font-size:.58em;color:#555;transition:transform .18s;flex-shrink:0; }
details.acc[open] summary::before { transform:rotate(90deg); }
details.acc summary:hover { background:#f5f5f5; }
.acc-num { font-size:.8em;color:#555;min-width:28px;font-weight:600; }
.acc-title { font-size:.9em;font-weight:700;color:#222;flex:1; }
.acc-body { padding:10px 14px 12px 14px;font-size:.88em;color:#333;line-height:1.7; }
/* ── Images ── */
.fig { margin:12px auto 24px auto;width:fit-content;max-width:100%; }
.fig img { border-radius:4px 4px 0 0;border:1px solid #E8E8E8;display:block;cursor:zoom-in;max-width:100%;box-shadow:0 1px 4px rgba(0,0,0,.10);transition:box-shadow .15s; }
.fig img:hover { box-shadow:0 3px 12px rgba(0,90,180,.18); }
.fig-cap { font-size:.78em;color:#555;margin:0;padding:5px 8px;background:#f5f5f5;border:1px solid #E8E8E8;border-top:none;border-radius:0 0 4px 4px;display:block;width:100%;box-sizing:border-box; }
/* ── Lightbox ── */
#rn-lb { display:none;position:fixed;inset:0;z-index:9998;background:rgba(0,0,0,.8);cursor:zoom-out;align-items:center;justify-content:center; }
#rn-lb.open { display:flex; }
#rn-lb-wrap { position:relative;cursor:default;max-width:92vw;max-height:90vh; }
#rn-lb-wrap img { max-width:100%;max-height:90vh;border-radius:5px;display:block; }
#rn-lb-x { position:absolute;top:-13px;right:-13px;background:#005AB4;color:#fff;width:26px;height:26px;border-radius:50%;border:none;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center; }
#rn-lb-cap { position:fixed;bottom:18px;left:50%;transform:translateX(-50%);color:#ddd;font-size:.78em;background:rgba(0,0,0,.55);padding:3px 12px;border-radius:14px;pointer-events:none; }
/* ── Back to top ── */
#rn-top { position:fixed;bottom:24px;right:24px;z-index:9997;width:36px;height:36px;border-radius:50%;background:#005AB4;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(8px);transition:opacity .22s,transform .22s;pointer-events:none;box-shadow:0 2px 8px rgba(0,90,180,.3); }
#rn-top.on { opacity:1;transform:translateY(0);pointer-events:auto; }
#rn-top:hover { background:#0066cc; }
/* ── Toast ── */
.rn-toast { position:fixed;bottom:66px;right:24px;z-index:9999;background:#222;color:#fff;font-size:.74em;padding:4px 11px;border-radius:4px;pointer-events:none;opacity:0;transition:opacity .18s; }
.rn-toast.on { opacity:1; }
/* ── Tables ── */
.rn-table { width:100%;border-collapse:collapse;margin:8px 0 18px 0;font-size:.875em; }
.rn-table th { background:#f5f5f5;text-align:left;padding:7px 12px;font-size:.78em;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#555;border-bottom:2px solid #E8E8E8; }
.rn-table td { padding:7px 12px;border-bottom:1px solid #E8E8E8;color:#333;vertical-align:top; }
.rn-table tr:last-child td { border-bottom:none; }
.rn-table tr:hover td { background:#f5f5f5; }
.sc { display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:#deeaf7;color:#005AB4;border-radius:3px;font-size:.8em;font-weight:700; }
- 1. Introduction
CENTO platform overview; devices, tags, channels setup; protocol and calculation tag configuration.
- 2. Configuring CENTO via Excel
Bulk configuration of devices and channels using Excel import files.
- 3. Events
Setting up event rules, thresholds, and automated notifications.
- 4. Mnemonics
Creating and configuring SCADA mimic diagrams.
- 5. Information Model
Defining the object hierarchy and tag bindings for the information model.
- 6. System Settings
Global system configuration: users, access rights, server parameters.
- 7. Transfer Kits
Configuring data transfer sets between CENTO servers.
- 8. Lighting Control
Setting up automated lighting control via tag-based conditions.
- 9. Tooling
Utility tools for system diagnostics and maintenance.
- 10. Other Settings in Interfaces
Additional configuration for real-time data analysis, metering analysis, and logs.
- 11. Basic Concepts and Abbreviations
Glossary of terms and abbreviations used throughout this manual.
1. Introduction
CENTO is a multifunctional software platform for data collection, processing, and display. It can be used to build various automated systems: dispatching, control, accounting, diagnostics, and more.
This guide describes the general steps for setting up CENTO software, as well as links to other relevant instructions.
1.1 Devices, Tags, Channels
Configuration is performed from the Settings drop-down menu at the top of the CENTO graphical interface.
Fig. 2.1 – Settings drop-down menu
1.1.1 Creating a Device Tree
Configuration begins with creating a tree of devices (information sources). The device tree reflects either the physical structure of the facility or the logical grouping convenient for further work.
Go to Settings → Devices, tags, channels to configure the structure.
Fig. 2.2 – Devices, Tags, Channels Page
By default, CENTO has a Root Object preset. Under the root object you can specify the name of a company or a separate facility. To rename a tree element, hover over it and use the edit icon.
Fig. 2.3 – Editing an object
The sequence and nesting of objects can be adjusted by dragging objects while holding the left mouse button.
Fig. 2.4 – Dragging a New Object Inside the Tree
Fig. 2.5 – Dragging a New Object Inside the Tree
1.1.2 Creating Devices
Create or edit devices (information sources) on the Settings → Devices, tags, channels page.
Fig. 2.6 – Devices Page
On this page you can: add, edit, copy, and delete devices; download or upload device configuration to an Excel file.
Click the Create a device button to open the device creation form.
Fig. 2.7 – Device Creation Page
To edit an existing device, click its name on the Devices page.
Fig. 2.8 – Device Editing Page
The General settings block contains fields common to all devices: name, template, identification number, IP address, serial number, associated object, notes, and information model binding.
To replace an existing device while preserving metering data, use the Replace device function.
Fig. 2.9 – Window: Replacement of the metering device
After filling in the required fields, click Save, then apply changes with the Update Configuration button.
1.1.3 Set Up Tags and Channels
Tags and accounting channels are configured on the same Devices, tags, channels page. Tags represent individual data points read from devices; channels aggregate tag values for metering purposes.
Fig. 2.10 – Tags and Channels Page
1.1.3.1 Adding a Protocol Tag
A protocol tag reads a value directly from a device via its communication protocol (Modbus, IEC 60870-5-104, IEC 61850, etc.). To add a protocol tag, select the device in the tree and click Add tag → Protocol tag.
Fig. 2.11 – Adding a protocol tag
Fig. 2.12 – Protocol tag parameters
1.1.3.2 Add a Calculation Tag
A calculation tag derives its value from a formula applied to other tags. Select the device and click Add tag → Calculation tag, then define the formula expression.
Fig. 2.13 – Calculation tag setup
1.1.3.3 Setting Up Calculation Formulas
Formulas use standard mathematical and logical operators, and can reference other tags by their code. The formula verification window shows the argument code, current value, and status for debugging.
Fig. 2.14 – Formula verification
1.1.3.4 Configuring Calculation Channels
Calculation channels aggregate tag values over time intervals (hourly, daily, monthly). They are used for metering data analysis and reports. Configure them on the Metering channels sub-tab of the Devices page.
Fig. 2.15 – Calculation channel configuration
2. Configuring CENTO via Excel
CENTO supports bulk configuration import and export via Excel files. This covers devices, tags, channels, information model objects, and other settings. Use Settings → Import/Export to upload or download configuration workbooks.
3. Events
Events are triggered when tag values cross defined thresholds or match configured conditions. Go to Settings → Events to define event rules, priorities, and associated notifications or control actions.
See the Events Setup manual for detailed configuration steps.
4. Mnemonics
Mnemonic diagrams (SCADA screens) are interactive visual representations of equipment state. They are created and configured in the Settings → Diagrams section.
See the Diagrams Development Manual for detailed instructions.
5. Information Model
The Information Model defines the hierarchy of facilities, systems, and equipment objects, and links them to devices and tags. Configure it under Settings → Information Model.
See the Structure and Modules Description manual for architecture details.
6. System Settings
Global system parameters including user accounts, access rights, server connection settings, and license management are configured under Settings → System Settings.
7. Transfer Kits
Transfer kits (transmission sets) define packages of tag data to be sent from one CENTO server to another via the S2S (Server-to-Server) protocol. Configure under Settings → Transfer kits.
8. Lighting Control
Automated lighting control allows switching lighting circuits based on tag states or schedules. Configured via Settings → Lighting control using IEC 60870-5-104 remote control commands.
9. Tooling
Tooling utilities provide diagnostic and maintenance capabilities: protocol web logs, VKT-7 device configuration output, and system information panels. Accessible from Settings → Tooling.
10. Other Settings in Interfaces
10.1 Analysis of Real-Time Data
Column visibility, tag display order, chart defaults, and aggregation presets for the real-time data analysis interface can be configured per user in Analysis → Real-time data → Settings.
10.2 Analysis of Metering Data
Report period defaults, channel display options, and Excel export format settings are available in Analysis → Metering data → Settings.
10.3 Logs
Custom log views — combining specific event types, devices, and filter criteria — are created per user in Logs → Custom logs. Column width and sort preferences are saved automatically.
11. Basic Concepts and Abbreviations
| Term | Definition |
|---|---|
| Tag | A named data point read from a device or computed by a formula. |
| Channel | A metering channel that aggregates tag values over time intervals. |
| Device | A physical or virtual information source connected to CENTO via a protocol. |
| IM | Information Model — the hierarchy of facility objects linked to devices and tags. |
| S2S | Server-to-Server — data exchange protocol between CENTO instances. |
| RMB | Right Mouse Button — used for context menus throughout the interface. |
| IEC 104 | IEC 60870-5-104 — communication protocol for remote terminal units. |
| Modbus | Standard serial communication protocol for connecting devices. |
(function(){
var bar = document.getElementById('rn-prog');
var top = document.getElementById('rn-top');
window.addEventListener('scroll', function(){
var d = document.documentElement;
var pct = d.scrollTop / (d.scrollHeight - d.clientHeight);
bar.style.width = (pct*100)+'%';
d.scrollTop > 280 ? top.classList.add('on') : top.classList.remove('on');
}, {passive:true});
/* TOC active via IntersectionObserver */
var links = Array.from(document.querySelectorAll('[data-toc]'));
var secs = links.map(function(a){
return {el: document.getElementById(a.getAttribute('href').slice(1)), a:a};
}).filter(function(s){return s.el;});
var busy = false;
var obs = new IntersectionObserver(function(entries){
if (busy) return;
entries.forEach(function(e){
if (!e.isIntersecting) return;
var i = secs.findIndex(function(s){return s.el===e.target;});
if (i<0) return;
secs.forEach(function(s){s.a.classList.remove('toc-on');});
secs[i].a.classList.add('toc-on');
var toc = document.querySelector('.doc-toc');
var link = secs[i].a;
toc.scrollTop = link.offsetTop - toc.offsetTop - toc.clientHeight/2 + link.clientHeight/2;
});
}, {rootMargin:'-8% 0px -60% 0px', threshold:0});
secs.forEach(function(s){obs.observe(s.el);});
links.forEach(function(a){
a.addEventListener('click', function(e){
var id = a.getAttribute('href').slice(1);
var el = document.getElementById(id);
if (!el) return;
e.preventDefault();
busy = true;
secs.forEach(function(s){s.a.classList.remove('toc-on');});
a.classList.add('toc-on');
el.scrollIntoView({behavior:'smooth',block:'start'});
setTimeout(function(){busy=false;}, 900);
});
});
/* TOC collapse */
var tocList = document.getElementById('toc-list');
var togBtn = document.getElementById('toc-tog');
var collapsed = false;
togBtn && togBtn.addEventListener('click', function(){
collapsed = !collapsed;
tocList.style.display = collapsed ? 'none' : '';
togBtn.textContent = collapsed ? '»' : '«';
});
/* Lightbox */
var lb = document.getElementById('rn-lb');
var lbI = document.getElementById('rn-lb-img');
var lbC = document.getElementById('rn-lb-cap');
window.openLightbox = function(img){
lbI.src = img.src; lbI.alt = img.alt; lbC.textContent = img.alt;
lb.classList.add('open'); document.body.style.overflow='hidden';
};
window.closeLightbox = function(){
lb.classList.remove('open'); document.body.style.overflow='';
};
lb.addEventListener('click', function(e){if(e.target===lb)closeLightbox();});
document.addEventListener('keydown', function(e){if(e.key==='Escape')closeLightbox();});
/* Copy anchor */
var toast = document.getElementById('rn-toast');
var t;
window.copyAnchor = function(id){
var url = location.href.split('#')[0]+'#'+id;
if(navigator.clipboard) navigator.clipboard.writeText(url).catch(function(){});
else { var x=document.createElement('textarea');x.value=url;document.body.appendChild(x);x.select();document.execCommand('copy');document.body.removeChild(x); }
toast.classList.add('on');
clearTimeout(t);
t = setTimeout(function(){toast.classList.remove('on');}, 1600);
};
/* ── Sticky TOC via JS ──
Uses position:absolute→fixed switch. No placeholder needed because
.doc-content has a fixed margin-right — content width never changes. */
(function(){
var toc = document.querySelector('.doc-toc');
var wrap = document.querySelector('.doc-wrap');
if (!toc || !wrap) return;
var navbar = document.querySelector('.navbar, nav.navbar, #topBar, header');
var navH = navbar ? navbar.offsetHeight : 0;
var footer = document.querySelector('footer, .xwikifooter, #xwikifooter, .bottombar, .sticky-container');
function update() {
var wr = wrap.getBoundingClientRect();
if (wr.top <= navH) {
/* Doc-wrap has scrolled above navbar — fix the TOC */
var footerTop = footer ? footer.getBoundingClientRect().top : window.innerHeight;
var h = Math.max(0, Math.min(window.innerHeight, footerTop) - navH);
toc.classList.add('is-fixed');
toc.style.top = navH + 'px';
toc.style.left = (wr.right - 200) + 'px'; /* right edge of wrap minus TOC width */
toc.style.height = h + 'px';
} else {
/* Still in natural position */
toc.classList.remove('is-fixed');
toc.style.top = toc.style.left = toc.style.height = '';
}
}
requestAnimationFrame(function(){ requestAnimationFrame(function(){
update();
window.addEventListener('scroll', update, {passive:true});
window.addEventListener('resize', update, {passive:true});
}); });
})();
/* ── Left panel navigation hints ── */
(function(){
var hints = {
'Preface': 'Introduction to CENTO Software documentation',
'1. User Manual': 'Web interface guide — login, diagrams, analysis, logs, reports',
'2. Setup Manual': 'System configuration and setup for administrators',
'3. Metering Channels': 'Metering channel configuration and data collection setup',
'4. Structure and Modules Description': 'CENTO system architecture and module overview',
'5. Diagrams Development Manual': 'Creating and configuring SCADA mimic diagrams',
'6. Flexible Reports Guide': 'Building configurable tabular reports from metering data',
'7. Events Setup': 'Configuring event rules, thresholds, and notifications',
'8. Control Setup Manual': 'Setting up remote control and switching operations',
'Network Diagram (CLOUD)': 'CENTO deployment topology for cloud installations',
'Network Diagram (On-Prem)': 'CENTO deployment topology for on-premises installations',
'Server Configuration Example': 'Reference server setup and configuration example',
'Technical Requirements': 'Hardware and software requirements for CENTO deployment',
'DEMO server': 'Access the live CENTO demo environment',
'Release Notes': 'Changelog and version history for the CENTO platform',
};
document.querySelectorAll('#leftPanels a').forEach(function(a){
var text = a.textContent.trim();
var hint = hints[text] || hints[text.replace(/^\d+\.\s*/, '')];
if (hint) a.setAttribute('data-hint', hint);
});
})();
})();