scada:cicodefiles

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
scada:cicodefiles [2026/08/27 10:31] scadascada:cicodefiles [2026/08/27 10:39] (поточний) scada
Рядок 1: Рядок 1:
-====== Документація бібліотечних модулів Cicode (AVEVA / Citect SCADA & PowerSCADA Expert) =========== 1. Базові бібліотечні контролі та графічний інтерфейс ========= _Internal_Library.ci (_Internal_Control.ci) ==== +====== Документація бібліотечних модулів Cicode (AVEVA / Citect SCADA & PowerSCADA Expert) ====== 
-Базове ядро системи бібліотечних контролів SCADA:  Реєстрація графічних елементів керування через анімаційні номери (AN) та розділення задач за чергами високого (''_LibCtrl_HP'') та низького (''_LibCtrl'') пріоритетів.  Керування життєвим циклом компонентів: ініціалізація, циклічна обробка, перемальовування (''_LibControl_StartRender'', ''_LibControl_RenderComplete'') та перевірка зайнятості (''_LibControl_IsBusy'').  Маніпуляція числовими масивами, упакованими в текстові рядки (''LibControl_StrArray*'')та механізм динамічного масштабування.  ==== Internal_Table.ci / Table.ci ==== + 
-Низькорівневе ядро та публічний API табличного контрола (''LibTable''):  Керування структурою стовпців: додавання, приховування, зміна порядку свайпом/перетягуваннямавтопідбір ширини під текст (''_LibTable_SetColWidth'', ''_LibTable_AutoWidth'').  Обробка виділення рядків: одиночний вибір, вибір діапазону клавішею Shift, кумулятивний вибір через Ctrl та вибір усіх рядків (''LibTable_SelectRow'', ''LibTable_SelectAll'').  Кешування даних комірок у чергах і фонове виконання задач для вибраних рядків (''LibTable_TaskSelectedRows'').  ==== TabTable.ci ==== +===== 1. Базові бібліотечні контролі та графічний інтерфейс ===== 
-Високорівневі допоміжні функції для роботи з таблицями в шаблонах екранних форм:  Автоматичне підлаштування ширини всіх видимих колонок таблиці (''TabTable_AutoFit'').  Підрахунок кількості виділених оператором рядків у видимій області дисплея (''TabTable_GetDspSelectedCount'').  Запит підтвердження дій над прихованими за межами прокрутки виділеними записами (''TabTable_ShowRowActionConfirmForm'').  ==== Internal_Scrollbar.ci / Scrollbar.ci ==== + 
-Внутрішня математика та зовнішній інтерфейс елемента смуги прокрутки (''LibScrollBar''):  Розрахунок розміру повзунка (thumb) на основі співвідношення видимих рядків до загальної кількості записів Обробка перетягування повзунка мишею, посторінковий перехід при кліку поза повзунком та авто-приховування.  Синхронізація позиції прокрутки з прив'язаними таблицями та деревами через виклики зворотного зв'язку.  ==== _Internal_Slider.ci / Slider.ci ==== +==== _Internal_Library.ci (_Internal_Control.ci) ==== 
-Реалізація горизонтального та вертикального повзунка/слайдера:  Обчислення відносного та абсолютного зсуву в пікселях під час перетягування (''_LibSlider_SetOffset'').  Підтримка режиму пристикування (Docking) до країв екрана зі збереженням попередньої позиції.  Збереження позицій слайдера у чергах для відновлення стану після зміни сторінок.  ==== TabTree.ci ==== +Базове ядро системи бібліотечних контролів SCADA: 
-Керування інтерактивним спліттером (розділювачем панелей) між деревом та таблицею:  Динамічна зміна ширини лівого дерева та правої таблиці при переміщенні повзунка (''TabTree_SplitChanged'').  Автоматичне позиціонування та приховування прив'язаних горизонтальних і вертикальних скролбарів.  Допоміжні функції роботи з кластерними префіксами обладнання (''TabEqTree_HasCluster'', ''TabEquip_GetCluster'').  ==== _Internal_Tree.ci / Tree.ci ==== + 
-Ієрархічне деревоподібне меню з підтримкою чекбоксів та розгортання Рекурсивний рендеринг вузлів, підвузлів, ліній зв'язку та піктограм із контролем глибини стека.  Підтримка станів чекбоксів (активний, неактивний, успадкований від батька) через бітові маски.  Автоматичне розгортання батьківських гілок і прокрутка до виділеного елемента (''LibTree_SelectItemRef'').  ==== _Internal_Calendar.ci / Calendar.ci ==== +Реєстрація елементів через анімаційні номери (AN)
-Календарний контроль для вибору дат і часових проміжків:  Календарна арифметика: розрахунок високосних років, зміщення днів тижня та кількості днів у місяці.  Обробка вибору одиночних дат, діапазонів і подвійних кліків (''_LibCalendar_MouseUp'', ''_LibCalendar_MouseDouble'').  Підсвічування поточної дати, виділених днів та перехід між місяцями свайпами.  ==== _Internal_Sample.ci / Sample.ci ==== + 
-Шаблонний каркас для розробки нових бібліотечних контролів:  Базова координатна сітка, обробка наведення та кліків курсора.  Структура для підключення горизонтальних і вертикальних скролбарів.  ===== 2. Навігація, меню та вкладки ========= _Internal_PageTabs.ci / Tabs.ci / PageTabs.ci ==== + 
-Керування вкладками сторінок (Tab Control):  Генерація та перемикання вкладок на основі списку відкритих вікон (''PageList'') або меню (''MenuNode'').  Підтримка закриття окремих вкладок кліком на піктограму хрестика.  Розрахунок адаптивної ширини та посторінкова прокрутка вкладок (''LibTabs_Scroll'').  ==== Tabmenu.ci / Tabmenu_Metadata.ci ==== +* Розподіл завдань на черги високого (''_LibCtrl_HP'') та низького (''_LibCtrl'') пріоритетів. 
-Система навігаційних вкладок і панелей кнопок у шаблонах Tab Style:  Побудова дворівневого меню (вкладки розділів зверху, кнопки операцій під ними).  Автоматичне приховування елементів, що не вміщуються на екрані, та виведення їх у випадаюче меню переповнення (''Tabmenu_SelectHiddenTabMenu'').  Збереження конфігурації позицій, ширини та метаданих об'єктів у внутрішніх масивах.  ==== Page.ci ==== + 
-Системні функції навігації, друку сторінок та безпеки шаблонів:  Перехід до батьківської сторінки (''PageParent'') та друк екрана/звіту (''PagePrint'').  Відображення діалогового вікна входу/виходу користувача та редагування облікових записів (''PageDspLoginMenu'').  Парсер виконання застарілих команд формату CSV_Include (''?Function arg1,arg2'').  Перевірка привілеїв під час спроби завершення роботи SCADA (''_PageShutdownConfirmation'').  ==== PLSNavigation.ci ==== + 
-Керування історією переходів оператора:  Ведення циклічного стека історії відкритих сторінок для кожного вікна окремо.  Навігація вперед/назад по історії зі збереженням параметрів виклику сторінок (''PLSNavPageBackward'', ''PLSNavPageForward'').  Випадаюче контекстне меню історії відвіданих сторінок (''PLSNavPageBackwardMenu'').  ==== PLSNavigationCustom_Tabmenu.ci ==== +Керування життєвим циклом компонентів: ініціалізація, циклічна обробка, рендеринг (''_LibControl_StartRender'', ''_LibControl_RenderComplete'') та перевірка зайнятості (''_LibControl_IsBusy''). 
-Генерація типової структури навігаційного меню:  Автоматичне наповнення розділів меню: «PAGES» (сторінки проекту з бази ''_pages.rdb''), «ALARMS/EVENTS» (журнали тривог та подій), «ANALYSIS» (тренди, осцилограми, діагностика).  Фільтрація та виключення службових сторінок (''_PLSNav_IsSystemPage'').  ==== PLSNavigationTabs.ci ==== + 
-Побудова навігаційних панелей на основі бази даних ''PLSNavTab_DBF'':  Зчитування дерева меню, прав доступу операторів, команд та іконок із файлу бази даних.  Динамічний розрахунок геометрії кнопок та позиціонування елементів за рівнями.  ===== 3. Тривоги, події та фільтрація ========= AlarmFilter.ci / TabAlarmFilter.ci ==== + 
-Публічний інтерфейс для виклику діалогів фільтрації тривог:  Відкриття діалогу налаштування фільтрації активних тривог, журналу подій, відключених тривог чи SOE (''LibAlarmFilterForm'').  Формування та застосування рядка фільтра до системного списку анімаційного номера (AN).  Перевірка наявності конкретних полів у поточному фільтрі (''LibAlarmFilterContains'').  ==== _Internal_AlarmFilterActiveX.ci / _Internal_AlarmFilterControls.ci ==== +Маніпуляція числовими масивами в рядках (''*LibControl_StrArray**'') та механізм динамічного масштабування. 
-Обслуговування вікна конфігурації фільтра тривог:  Ініціалізація випадаючих списків вибору полів тривог, операторів порівняння та стандартних правил.  Керування радіокнопками вибору простого, розширеного або користувацького режиму фільтра.  Інтеграція з календарем для вибору часових інтервалів.  ==== _Internal_AlarmFilterParser.ci / _Internal_AlarmFilterTable.ci / _Internal_AlarmFilterTransfer.ci ==== + 
-Аналіз, валідація та синхронізація виразів фільтрації:  ''_Internal_AlarmFilterParser.ci'': приведення дат до секунд Unix Time, числових форматів та обробка макросу ''#Now'' ''_Internal_AlarmFilterTable.ci'': взаємодія таблиці правил із внутрішньою буферною чергою, видалення виділених умов.  ''_Internal_AlarmFilterTransfer.ci'': передача сформованих виразів у ядро SCADA через сесії ''AlarmFilterEdit*'' ==== PLSAlarmFilter.ci / PLSAlarmFilterInit.ci / PLSAlarmFilterValidation.ci ==== + 
-Розширена фільтрація тривог для PowerSCADA Expert:  Підтримка модальних вікон фільтрації тривог та подій безпеки (''!PLSAlarmFilter'', ''!PLSSecFilter'').  Фільтрація за часовими мітками з корекцією літнього часу (DST), категоріями, пріоритетами та метаданими.  Валідація синтаксису введених користувачем даних перед збереженням у глобальний кеш.  ==== _Internal_AlmTable.ci / AlmTable.ci / TabAlmTable.ci ==== + 
-Реалізація та адаптація таблиці відображення тривог:  Зчитування записів тривог за допомогою викликів ''AlarmDsp'' / ''AlarmDspLast'' Формування колонок на основі категорійних форматів або параметрів проекту.  Сортування колонок кліком по заголовку, експорт даних сторінок у формати HTML та CSV.  ==== TabAlarm.ci / TabAlarm_Metadata.ci / TabAlarm_Utility.ci ==== +==== *Internal_Table.ci / Table.ci ==== 
-Утиліти та методи обробки тривог для Tab Style шаблонів:  Перевірка прав доступу на квитування, блокування та коментування записів (''TabAlarm_GetAckPriv'').  Керування контекстним меню виділеного рядка тривоги.  Збереження метаданих списку тривог і колонок у сторінкових змінних.  ==== PLSAlarmDisplay.ci / PLSAlarmCustom_TabAlarm.ci ==== +Низькорівневе ядро та публічний API табличного контролу (''LibTable*''): 
-Специфічні механізми відображення та контекстні дії тривог PLS:  Формування розширеного контекстного меню (перехід до перегляду осцилограм Waveform, історії сповіщень Notification History, сторінки обладнання).  Додавання користувацьких коментарів та подій безпосередньо у Sequence of Events (SOE).  Декодування спеціальних тегів опису в коментарях ('''', '''', '''', '''').  ==== TabAlarmEqTree.ci ==== + 
-Синхронізація дерева обладнання з фільтрами списку тривог:  Автоматичне формування складних фільтрів за вибраними чекбоксами вузлів дерева.  Підрахунок та динамічне відображення кількості активних тривог для кожного пристрою дерева.  ==== PLSAlarmSetpoints.ci ==== +Керування структурою колонок: додавання, приховування, зміна порядку перетягуванням та автопідбір ширини (''_LibTable_SetColWidth'', ''_LibTable_AutoWidth''). 
-Перегляд та зміна уставок спрацьовування аварійної сигналізації:  Посторінкова навігація по списку уставок аналогових і дискретних тривог.  Зміна числових значень меж (HH, H, L, LL, Deadband, Delay) через екранну клавіатуру з перевіркою меж.  Дистанційне блокування/розблокування тривог із синхронним записом на резервовані сервери.  ==== PLSAlarmSound.ci / TabAlarmSnd.ci ==== + 
-Звукова сигналізація аварійних режимів:  Фоновий контроль найвищого несквитованого пріоритету тривоги в системі.  Відтворення аудіофайлів ''.wav'' на клієнтах із налаштованою частотою повторення.  Функція тимчасового заглушення сирени (Silence) оператором на заданий час.  ==== AddAuditEvent.ci / PLSAlarmQueue.ci ==== + 
-Журналювання аудиту та застаріла файлова черга:  ''AddAuditEvent.ci'': функція запису системних дій оператора у журнал SOE (''SOEEventAdd'').  ''PLSAlarmQueue.ci'' (Deprecated): експорт подій у циклічні файли CSV/XML на диску.  ===== 4. Перегляд баз даних, SQL та теги ========= _Internal_BrowseTable.ci / BrowseTable.ci / TabBrowseTable.ci ==== +Обробка виділення рядків: одиночний вибір, вибір діапазону через ''Shift'', кумулятивний вибір через ''Ctrl'', вибір усіх записів (''LibTable_SelectRow'', ''LibTable_SelectAll''). 
-Універсальна таблиця перегляду записів конфігураційних баз SCADA:  Відкриття та посторінковий скролінг сесій перегляду тегів, обладнання, накопичувачів, трендів (''TagBrowseOpen'', ''EquipBrowseOpen'').  Збереження структури колонок і ширини в INI-файлі між сеансами роботи.  Контекстне меню зміни значення тегу, встановлення режимів заміщення (Override Mode) та блокування керування (Control Mode).  ==== _Internal_SqlTable.ci / SqlTable.ci ==== + 
-Таблиця виконання прямих SQL-запитів до реляційних СУБД:  Відкриття підключення до БД (''SQLCreate'', ''SQLOpen'') та виконання вибірок SELECT.  Автоматичне створення структури колонок на основі метаданих отриманого рекордсету.  Посторінкове відображення рядків із навігацією по масиву результатів.  ==== _Internal_TagTable.ci / TagTable.ci ==== + 
-Таблиця динамічного перегляду підписаних змінних тегів:  Оформлення підписок на теги в реальному часі (''TagSubscribe'').  Автоматичне оновлення комірок таблиці через callback-процедури при зміні значень чи якості.  ==== PLSTagBrowse.ci / PLSTagView.ci / PLSTagExtensions.ci ==== +Кешування даних комірокфонове виконання задач для виділених рядків (''LibTable_TaskSelectedRows''). 
-Інструменти діагностики та перегляду тегів:  ''PLSTagBrowse.ci'': низькорівневе читання файлу бази даних тегів ''_Variabl.rdb'' ''PLSTagView.ci'': переглядач усіх тегів вибраного пристрою з підтримкою .NET-акселератора (''TagViewer.dll'').  ''PLSTagExtensions.ci'': керування розширеннями якості тегів (Override, Control Inhibit, Tag Status).  ===== 5. Однолінійні схеми, анімація та обладнання ========= PLSAnimation.ci / PLSAnimGenies.ci / PLSAnimColor.ci / PLSAnimCore.ci ==== + 
-Ядро та механізми динамічної розмальовки схем OneLine (Advanced One Line):  Обробка станів вимикачів: включено, відключено, аварія, вкочено, тест, викочено, втрата зв'язку.  Моніторинг працездатності (Health Check) зовнішнього процесу розрахунку топології схеми ''AdvOneLineLauncher.exe'' Призначення кольорів лініям, шинам та контактам відповідно до джерел живлення та напруги.  ==== PLSEquipment.ci / PLSEquipmentAdv.ci / PLSEquipmentForm.ci / PLSEquipmentUtil.ci ==== + 
-Команди телекерування комутаційними апаратами:  Пряме керування (Direct Operate) та вибір перед виконанням (Select-Before-Operate) для вимикачів.  Розширені команди для стандарту IEC 61850 з перевіркою синфазності (Synchrocheck), блокувань (Interlock) та тестового режиму.  Спливаючі діалогові вікна підтвердження операцій ''!Equipment1'' та списку тегів ''!Equipment2'' Фоновий сервіс моніторингу статусу зв'язку з пристроями (''_PLSEquipProcessIODevStatus'').  ==== PLSMotorForm.ci ==== + 
-Керування та моніторинг асинхронних електродвигунів:  Збір статусів: готовність, робота, попередження, аварійне відключення.  Підтримка режимів: реверсивний, двошвидкісний, двоступеневий, захист від перевантаження.  Команди пуску вперед/назад, перемикання швидкості, зупинки та скидання помилок захисту.  ==== PLSEnersure.ci ==== +==== TabTable.ci ==== 
-Підтримка панелей багатоканального обліку електроенергії Enersure (ANSI/IEC):  Відображення параметрів струмів, напруг, потужностей та енергії по 42/84 або 22/88 каналах.  Графічне групування одно-, дво- та трифазних конфігурацій фідерів.  ==== _Internal_EquipTree.ci / DDD.ci / PLSGraphicsTest.ci ==== +Високорівневі допоміжні функції для роботи з таблицями в шаблонах екранних форм: 
-Допоміжні модулі обладнання:  ''_Internal_EquipTree.ci'': побудова дерева навігації по структурі обладнання.  ''DDD.ci'': розкодування напрямку протікання аварійних збурень (Disturbance Direction Detection) та показників якості електроенергії.  ''PLSGraphicsTest.ci'' (Deprecated): тестовий режим графіки.  ===== 6. Тренди та аналіз процесів ========= PLSProcessAnalyst.ci / PLSPADisplay.ci ==== + 
-Інтеграція та керування ActiveX-компонентом Process Analyst:  Відкриття сторінок та спливаючих вікон аналізу трендів (''PLSAnalDisplayTags'').  Динамічне додавання та видалення пер аналогових трендів і тривог, вибір кольорів.  Налаштування індивідуальних шкал, інтервалів часу та типу ліній (пряма/східчаста).  Збереження набору обраних точок у списку оператора для швидкого виклику графіків.  ==== PLSInstantTrends.ci ==== +Автоматичний підбір ширини всіх видимих колонок таблиці (''TabTable_AutoFit''). 
-Швидкі тренди реального часу (Instant Trends):  Відкриття вікна ''!InstantTrends'' для оперативної діагностики.  Інтерактивне додавання пера кліком лупи по будь-якому тегу на мнемосхемі SCADA.  Навігація по базі тегів через спливаюче діалогове вікно вибору.  ===== 7. Осцилограми та протокол COMTRADE ========= PLSWaveform.ci / PLSWaveformSearch.ci ==== + 
-Пошук та перегляд файлів осцилограм:  Пошук файлів осцилограм у локальній базі за мітками часу подій (UTC/мс) та іменем пристрою.  Відображення діалогу результатів пошуку ''!PLSWaveformResults'' та запуск переглядача ''!PLSWaveform'' Взаємодія з системною бібліотекою ''waveformdb.dll'' ==== PLSWaveformFTP.ci / PLUSFTP.ci / PLSWaveformExtractorCore.ci ==== + 
-Автоматичне вивантаження та збір осцилограм:  ''PLSWaveformFTP.ci'': періодичний фоновий збір COMTRADE-файлів з мікропроцесорних реле через FTP.  ''PLUSFTP.ci'': низькорівневий FTP-клієнт на базі ''PLUSFTP.dll'' ''PLSWaveformExtractorCore.ci'': керування процесом служби екстрактора осцилограм через RPC.  ==== PLSWaveformEvent.ci ==== +Підрахунок кількості виділених оператором рядків у видимій області дисплея (''TabTable_GetDspSelectedCount''). 
-Генерація записів у журналі подій при появі нових осцилограм:  Синхронізація індексатора ''WaveformSearch.dll'' з каталогом збережених файлів.  Створення події зміни значення змінної для інформування оператора про новий аварійний запис.  ===== 8. Безпека, інтеграція та системні сервіси ========= PLSSecurity.ci / PLSOneTimePassword.ci ==== + 
-Контроль доступу та багатофакторна аутентифікація:  Авторизація користувачів з підтримкою вибору мови локалізації.  Двофакторна перевірка одноразових паролів (YubiKey/OTP) через запити до App Services.  Багаторівнева перевірка прав на виконання команд телекерування з повторним запитом пароля.  ==== PLSProviderEngine.ci ==== + 
-Інтерфейс взаємодії з постачальниками даних платформи (Provider Engine):  Асинхронний виклик провайдерів за GUID через бібліотеку ''ProviderGatewayManaged.dll'' Оновлення метаданих платформи на серверах та очищення кешу пам'яті.  ==== PLSNotification.ci ==== +Запит підтвердження дій над прихованими за межами прокрутки виділеними записами (''TabTable_ShowRowActionConfirmForm''). 
-Служба нативних сповіщень операторів (Email/SMS):  Вичитка черги подій ядра ''AlarmEventQue'' та передача у .NET сервіс ''Notification.dll'' Моніторинг черги Watchdog та відстеження зміни станів серверів тривог (Active/Standby).  Діалогові форми налаштування одержувачів і перегляду історії сповіщень.  ==== PLSApplications.ci / PLSWebPage.ci ==== + 
-Інтеграція зовнішніх веб-додатків та PME (Power Monitoring Expert):  Генерація Single Sign-On (SSO) токенів для безпечного відкриття сторінок без повторного вводу пароля.  Відкриття звітів PME Reports, WebReach, панелей Dashboards та веб-інтерфейсу сповіщень ENM у вікнах SCADA.  ==== PLSDiagnosticsViewer.ci ==== + 
-Запуск зовнішньої утиліти системної діагностики:  Виклик діагностичного модуля ''SystemAndDiagnosticInfo.exe'' Перевірка прав RPC та доступності серверних компонентів системи.  ==== PLSGeneral.ci / Display.ci ==== + 
-Загальносистемні та графічні утиліти:  ''PLSGeneral.ci'': міжкластерний запис тегів, синхронний запис на резервовані сервери, строкові утиліти CSV.  ''Display.ci'': контроль стану курсора (фокус, натискання) для складених графічних об'єктів та обрізка довгого тексту.  ==== PLSOEM.ci / PLSVersion.ci / PLUSXML.ci / MillisecondHelper.ci ==== +==== *Internal_Scrollbar.ci / Scrollbar.ci ==== 
-Службові функції запуску, версій та обробки даних:  ''PLSOEM.ci'': автоматичний запуск фонових задач тривог, зв'язку I/O та осцилограм при старті SCADA.  ''PLSVersion.ci'': читання інформації про версії та білди компонентів із XML-файлу.  ''PLUSXML.ci'': повнофункціональний парсер XML DOM та клієнт SOAP через бібліотеку ''PLUSSOAP.dll'' ''MillisecondHelper.ci'': отримання мілісекунд через зовнішню бібліотеку ''MSec.dll'' ===== Зведена таблиця файлів проєкту =====^ Файл ^ Призначення / Підсистема ^ Ключові функції / Механізми ^+Внутрішня математика та публічний інтерфейс елемента смуги прокрутки (''LibScrollBar*''): 
 + 
 +Розрахунок розміру бігунка (thumb) відносно співвідношення видимих рядків до загальної кількості. 
 + 
 + 
 +Обробка перетягування бігунка мишею, посторінковий перехід при кліку поза повзунком та автоприховування. 
 + 
 + 
 +Синхронізація позиції прокрутки з прив'язаними таблицями та деревами через callback-процедури. 
 + 
 + 
 + 
 +==== _Internal_Slider.ci / Slider.ci ==== 
 +Реалізація горизонтального та вертикального повзунка/слайдера: 
 + 
 +Обчислення абсолютного та відносного зсуву в пікселях під час перетягування (''_LibSlider_SetOffset''). 
 + 
 + 
 +Підтримка режиму пристикування (Docking) до країв екрана зі збереженням попередньої позиції. 
 + 
 + 
 +Збереження позицій слайдера у чергах для відновлення стану після зміни сторінок. 
 + 
 + 
 + 
 +==== TabTree.ci ==== 
 +Керування інтерактивним спліттером (розділювачем панелей) між деревом та таблицею: 
 + 
 +Динамічна зміна ширини лівого дерева та правої таблиці при переміщенні повзунка (''TabTree_SplitChanged''). 
 + 
 + 
 +Автоматичне позиціонування та приховування прив'язаних горизонтальних і вертикальних скролбарів. 
 + 
 + 
 +Допоміжні функції роботи з кластерними префіксами обладнання (''TabEqTree_HasCluster'', ''TabEquip_GetCluster''). 
 + 
 + 
 + 
 +==== _Internal_Tree.ci / Tree.ci ==== 
 +Ієрархічне деревоподібне меню з підтримкою чекбоксів: 
 + 
 +Рекурсивний рендеринг вузлів, підвузлів, ліній зв'язку та піктограм із контролем глибини стека. 
 + 
 + 
 +Підтримка станів чекбоксів (активний, неактивний, успадкований від батьківського вузла) через бітові маски. 
 + 
 + 
 +Автоматичне розгортання батьківських гілок і прокрутка до виділеного елемента (''LibTree_SelectItemRef''). 
 + 
 + 
 + 
 +==== _Internal_Calendar.ci / Calendar.ci ==== 
 +Календарний контроль для вибору дат і часових проміжків: 
 + 
 +Календарна арифметика: розрахунок високосних років, зміщення днів тижня та кількості днів у місяці. 
 + 
 + 
 +Обробка вибору одиночних дат, діапазонів і подвійних кліків (''_LibCalendar_MouseUp'', ''_LibCalendar_MouseDouble''). 
 + 
 + 
 +Підсвічування поточної дати, виділених днів та перехід між місяцями свайпами. 
 + 
 + 
 + 
 +==== _Internal_Sample.ci / Sample.ci ==== 
 +Шаблонний каркас для розробки нових бібліотечних контролів: 
 + 
 +Базова координатна сітка, обробка наведення та кліків курсора. 
 + 
 + 
 +Структура для підключення горизонтальних і вертикальних скролбарів. 
 + 
 + 
 + 
 +===== 2. Навігація, меню та вкладки ===== 
 + 
 +==== _Internal_PageTabs.ci / Tabs.ci / PageTabs.ci ==== 
 +Керування вкладками сторінок (Tab Control): 
 + 
 +* Динамічна генерація та перемикання вкладок зі списку відкритих вікон (''PageList'') або меню (''MenuNode''). 
 + 
 + 
 +Підтримка закриття окремих вкладок кліком на піктограму хрестика. 
 + 
 + 
 +Розрахунок адаптивної ширини та посторінкова прокрутка вкладок (''LibTabs_Scroll''). 
 + 
 + 
 + 
 +==== Tabmenu.ci / Tabmenu_Metadata.ci ==== 
 +Система навігаційних вкладок і панелей кнопок у шаблонах Tab Style: 
 + 
 +Побудова дворівневого меню (вкладки розділів зверху, кнопки операцій під ними). 
 + 
 + 
 +Автоматичне приховування елементів, що не вміщуються на екрані, та виведення їх у випадаюче меню переповнення (''Tabmenu_SelectHiddenTabMenu''). 
 + 
 + 
 +Збереження конфігурації позицій, ширини та метаданих об'єктів у внутрішніх масивах. 
 + 
 + 
 + 
 +==== Page.ci ==== 
 +Системні функції навігації, друку сторінок та безпеки шаблонів: 
 + 
 +Перехід до батьківської сторінки (''PageParent'') та друк екрана/звіту (''PagePrint''). 
 + 
 + 
 +Відображення діалогового вікна входу/виходу користувача та редагування облікових записів (''PageDspLoginMenu''). 
 + 
 + 
 +Парсер виконання команд формату CSV_Include (''?Function arg1,arg2''). 
 + 
 + 
 +Перевірка привілеїв під час спроби завершення роботи SCADA (''_PageShutdownConfirmation''). 
 + 
 + 
 + 
 +==== PLSNavigation.ci ==== 
 +Керування історією переходів оператора: 
 + 
 +Ведення циклічного стека історії відкритих сторінок для кожного вікна окремо. 
 + 
 + 
 +Навігація вперед/назад по історії зі збереженням параметрів виклику сторінок (''PLSNavPageBackward'', ''PLSNavPageForward''). 
 + 
 + 
 +Випадаюче контекстне меню історії відвіданих сторінок (''PLSNavPageBackwardMenu''). 
 + 
 + 
 + 
 +==== PLSNavigationCustom_Tabmenu.ci ==== 
 +Генерація типової структури навігаційного меню: 
 + 
 +Автоматичне наповнення розділів меню: «PAGES» (сторінки проекту з бази ''_pages.rdb''), «ALARMS/EVENTS» (журнали тривог та подій), «ANALYSIS» (тренди, осцилограми, діагностика). 
 + 
 + 
 +Фільтрація та виключення службових сторінок (''_PLSNav_IsSystemPage''). 
 + 
 + 
 + 
 +==== PLSNavigationTabs.ci ==== 
 +Побудова навігаційних панелей на основі бази даних ''PLSNavTab_DBF'': 
 + 
 +Зчитування дерева меню, прав доступу операторів, команд та іконок із файлу бази даних. 
 + 
 + 
 +Динамічний розрахунок геометрії кнопок та позиціонування елементів за рівнями. 
 + 
 + 
 + 
 +===== 3. Тривоги, події та фільтрація ===== 
 + 
 +==== AlarmFilter.ci / TabAlarmFilter.ci ==== 
 +Публічний інтерфейс для виклику діалогів фільтрації тривог: 
 + 
 +Відкриття діалогу налаштування фільтрації активних тривог, журналу подій, відключених тривог чи SOE (''LibAlarmFilterForm''). 
 + 
 + 
 +Формування та застосування рядка фільтра до системного списку анімаційного номера (AN). 
 + 
 + 
 +Перевірка наявності конкретних полів у поточному фільтрі (''LibAlarmFilterContains''). 
 + 
 + 
 + 
 +==== _Internal_AlarmFilterActiveX.ci / _Internal_AlarmFilterControls.ci ==== 
 +Обслуговування вікна конфігурації фільтра тривог: 
 + 
 +Ініціалізація випадаючих списків вибору полів тривог, операторів порівняння та стандартних правил. 
 + 
 + 
 +Керування радіокнопками вибору простого, розширеного або користувацького режиму фільтра. 
 + 
 + 
 +Інтеграція з календарем для вибору часових інтервалів. 
 + 
 + 
 + 
 +==== _Internal_AlarmFilterParser.ci / _Internal_AlarmFilterTable.ci / _Internal_AlarmFilterTransfer.ci ==== 
 +Аналіз, валідація та синхронізація виразів фільтрації: 
 + 
 +''_Internal_AlarmFilterParser.ci'': приведення дат до секунд Unix Time, числових форматів та обробка макросу ''#Now''. 
 + 
 + 
 +''_Internal_AlarmFilterTable.ci'': взаємодія таблиці правил із внутрішньою буферною чергою, видалення виділених умов. 
 + 
 + 
 +''_Internal_AlarmFilterTransfer.ci'': передача сформованих виразів у ядро SCADA через сесії ''AlarmFilterEdit*''. 
 + 
 + 
 + 
 +==== PLSAlarmFilter.ci / PLSAlarmFilterInit.ci / PLSAlarmFilterValidation.ci ==== 
 +Розширена фільтрація тривог для PowerSCADA Expert: 
 + 
 +Підтримка модальних вікон фільтрації тривог та подій безпеки (''!PLSAlarmFilter'', ''!PLSSecFilter''). 
 + 
 + 
 +Фільтрація за часовими мітками з корекцією літнього часу (DST), категоріями, пріоритетами та метаданими. 
 + 
 + 
 +Валідація синтаксису введених користувачем даних перед збереженням у глобальний кеш. 
 + 
 + 
 + 
 +==== _Internal_AlmTable.ci / AlmTable.ci / TabAlmTable.ci ==== 
 +Реалізація та адаптація таблиці відображення тривог: 
 + 
 +Зчитування записів тривог за допомогою викликів ''AlarmDsp'' / ''AlarmDspLast''. 
 + 
 + 
 +Формування колонок на основі категорійних форматів або параметрів проекту. 
 + 
 + 
 +Сортування колонок кліком по заголовку, експорт даних сторінок у формати HTML та CSV. 
 + 
 + 
 + 
 +==== TabAlarm.ci / TabAlarm_Metadata.ci / TabAlarm_Utility.ci ==== 
 +Утиліти та методи обробки тривог для Tab Style шаблонів: 
 + 
 +Перевірка прав доступу на квитування, блокування та коментування записів (''TabAlarm_GetAckPriv''). 
 + 
 + 
 +Керування контекстним меню виділеного рядка тривоги. 
 + 
 + 
 +Збереження метаданих списку тривог і колонок у сторінкових змінних. 
 + 
 + 
 + 
 +==== PLSAlarmDisplay.ci / PLSAlarmCustom_TabAlarm.ci ==== 
 +Специфічні механізми відображення та контекстні дії тривог PLS: 
 + 
 +Формування розширеного контекстного меню (перехід до перегляду осцилограм Waveform, історії сповіщень Notification History, сторінки обладнання). 
 + 
 + 
 +Додавання користувацьких коментарів та подій безпосередньо у Sequence of Events (SOE). 
 + 
 + 
 +Декодування спеціальних тегів опису в коментарях ('''', '''', '''', ''''). 
 + 
 + 
 + 
 +==== TabAlarmEqTree.ci ==== 
 +Синхронізація дерева обладнання з фільтрами списку тривог: 
 + 
 +Автоматичне формування складних фільтрів за вибраними чекбоксами вузлів дерева. 
 + 
 + 
 +Підрахунок та динамічне відображення кількості активних тривог для кожного пристрою дерева. 
 + 
 + 
 + 
 +==== PLSAlarmSetpoints.ci ==== 
 +Перегляд та зміна уставок спрацьовування аварійної сигналізації: 
 + 
 +Посторінкова навігація по списку уставок аналогових і дискретних тривог. 
 + 
 + 
 +Зміна числових значень меж (HH, H, L, LL, Deadband, Delay) через екранну клавіатуру з перевіркою меж. 
 + 
 + 
 +Дистанційне блокування/розблокування тривог із синхронним записом на резервовані сервери. 
 + 
 + 
 + 
 +==== PLSAlarmSound.ci / TabAlarmSnd.ci ==== 
 +Звукова сигналізація аварійних режимів: 
 + 
 +Фоновий контроль найвищого несквитованого пріоритету тривоги в системі. 
 + 
 + 
 +Відтворення аудіофайлів ''.wav'' на клієнтах із налаштованою частотою повторення. 
 + 
 + 
 +Функція тимчасового заглушення сирени (Silence) оператором на заданий час. 
 + 
 + 
 + 
 +==== AddAuditEvent.ci / PLSAlarmQueue.ci ==== 
 +Журналювання аудиту та файлова черга: 
 + 
 +''AddAuditEvent.ci'': функція запису системних дій оператора у журнал SOE (''SOEEventAdd''). 
 + 
 + 
 +''PLSAlarmQueue.ci'' (Deprecated): експорт подій у циклічні файли CSV/XML на диску. 
 + 
 + 
 + 
 +===== 4. Перегляд баз даних, SQL та теги ===== 
 + 
 +==== _Internal_BrowseTable.ci / BrowseTable.ci / TabBrowseTable.ci ==== 
 +Універсальна таблиця перегляду записів конфігураційних баз SCADA: 
 + 
 +Відкриття та посторінковий скролінг сесій перегляду тегів, обладнання, накопичувачів, трендів (''TagBrowseOpen'', ''EquipBrowseOpen''). 
 + 
 + 
 +Збереження структури колонок і ширини в INI-файлі між сеансами роботи. 
 + 
 + 
 +Контекстне меню зміни значення тегу, встановлення режимів заміщення (Override Mode) та блокування керування (Control Mode). 
 + 
 + 
 + 
 +==== _Internal_SqlTable.ci / SqlTable.ci ==== 
 +Таблиця виконання прямих SQL-запитів до реляційних СУБД: 
 + 
 +Відкриття підключення до БД (''SQLCreate'', ''SQLOpen'') та виконання вибірок SELECT. 
 + 
 + 
 +Автоматичне створення структури колонок на основі метаданих отриманого рекордсету. 
 + 
 + 
 +Посторінкове відображення рядків із навігацією по масиву результатів. 
 + 
 + 
 + 
 +==== _Internal_TagTable.ci / TagTable.ci ==== 
 +Таблиця динамічного перегляду підписаних змінних тегів: 
 + 
 +Оформлення підписок на теги в реальному часі (''TagSubscribe''). 
 + 
 + 
 +Автоматичне оновлення комірок таблиці через callback-процедури при зміні значень чи якості. 
 + 
 + 
 + 
 +==== PLSTagBrowse.ci / PLSTagView.ci / PLSTagExtensions.ci ==== 
 +Інструменти діагностики та перегляду тегів: 
 + 
 +''PLSTagBrowse.ci'': низькорівневе читання файлу бази даних тегів ''_Variabl.rdb''. 
 + 
 + 
 +''PLSTagView.ci'': переглядач усіх тегів вибраного пристрою з підтримкою .NET-акселератора (''TagViewer.dll''). 
 + 
 + 
 +''PLSTagExtensions.ci'': керування розширеннями якості тегів (Override, Control Inhibit, Tag Status). 
 + 
 + 
 + 
 +===== 5. Однолінійні схеми, анімація та обладнання ===== 
 + 
 +==== PLSAnimation.ci / PLSAnimGenies.ci / PLSAnimColor.ci / PLSAnimCore.ci ==== 
 +Ядро та механізми динамічної розмальовки схем OneLine (Advanced One Line): 
 + 
 +Обробка станів вимикачів: включено, відключено, аварія, вкочено, тест, викочено, втрата зв'язку. 
 + 
 + 
 +Моніторинг працездатності (Health Check) зовнішнього процесу розрахунку топології схеми ''AdvOneLineLauncher.exe''. 
 + 
 + 
 +Призначення кольорів лініям, шинам та контактам відповідно до джерел живлення та напруги. 
 + 
 + 
 + 
 +==== PLSEquipment.ci / PLSEquipmentAdv.ci / PLSEquipmentForm.ci / PLSEquipmentUtil.ci ==== 
 +Команди телекерування комутаційними апаратами: 
 + 
 +Пряме керування (Direct Operate) та вибір перед виконанням (Select-Before-Operate) для вимикачів. 
 + 
 + 
 +Розширені команди для стандарту IEC 61850 з перевіркою синфазності (Synchrocheck), блокувань (Interlock) та тестового режиму. 
 + 
 + 
 +Спливаючі діалогові вікна підтвердження операцій ''!Equipment1'' та списку тегів ''!Equipment2''. 
 + 
 + 
 +Фоновий сервіс моніторингу статусу зв'язку з пристроями (''_PLSEquipProcessIODevStatus''). 
 + 
 + 
 + 
 +==== PLSMotorForm.ci ==== 
 +Керування та моніторинг асинхронних електродвигунів: 
 + 
 +Збір статусів: готовність, робота, попередження, аварійне відключення. 
 + 
 + 
 +Підтримка режимів: реверсивний, двошвидкісний, двоступеневий, захист від перевантаження. 
 + 
 + 
 +Команди пуску вперед/назад, перемикання швидкості, зупинки та скидання помилок захисту. 
 + 
 + 
 + 
 +==== PLSEnersure.ci ==== 
 +Підтримка панелей багатоканального обліку електроенергії Enersure (ANSI/IEC): 
 + 
 +Відображення параметрів струмів, напруг, потужностей та енергії по 42/84 або 22/88 каналах. 
 + 
 + 
 +Графічне групування одно-, дво- та трифазних конфігурацій фідерів. 
 + 
 + 
 + 
 +==== _Internal_EquipTree.ci / DDD.ci / PLSGraphicsTest.ci ==== 
 +Допоміжні модулі обладнання: 
 + 
 +''_Internal_EquipTree.ci'': побудова дерева навігації по структурі обладнання. 
 + 
 + 
 +''DDD.ci'': розкодування напрямку протікання аварійних збурень (Disturbance Direction Detection) та показників якості електроенергії. 
 + 
 + 
 +''PLSGraphicsTest.ci'' (Deprecated): тестовий режим графіки. 
 + 
 + 
 + 
 +===== 6. Тренди та аналіз процесів ===== 
 + 
 +==== PLSProcessAnalyst.ci / PLSPADisplay.ci ==== 
 +Інтеграція та керування ActiveX-компонентом Process Analyst: 
 + 
 +Відкриття сторінок та спливаючих вікон аналізу трендів (''PLSAnalDisplayTags''). 
 + 
 + 
 +Динамічне додавання та видалення пер аналогових трендів і тривог, вибір кольорів. 
 + 
 + 
 +Налаштування індивідуальних шкал, інтервалів часу та типу ліній (пряма/східчаста). 
 + 
 + 
 +Збереження набору обраних точок у списку оператора для швидкого виклику графіків. 
 + 
 + 
 + 
 +==== PLSInstantTrends.ci ==== 
 +Швидкі тренди реального часу (Instant Trends): 
 + 
 +Відкриття вікна ''!InstantTrends'' для оперативної діагностики. 
 + 
 + 
 +Інтерактивне додавання пера кліком лупи по будь-якому тегу на мнемосхемі SCADA. 
 + 
 + 
 +Навігація по базі тегів через спливаюче діалогове вікно вибору. 
 + 
 + 
 + 
 +===== 7. Осцилограми та протокол COMTRADE ===== 
 + 
 +==== PLSWaveform.ci / PLSWaveformSearch.ci ==== 
 +Пошук та перегляд файлів осцилограм: 
 + 
 +Пошук файлів осцилограм у локальній базі за мітками часу подій (UTC/мс) та іменем пристрою. 
 + 
 + 
 +Відображення діалогу результатів пошуку ''!PLSWaveformResults'' та запуск переглядача ''!PLSWaveform''. 
 + 
 + 
 +Взаємодія з системною бібліотекою ''waveformdb.dll''. 
 + 
 + 
 + 
 +==== PLSWaveformFTP.ci / PLUSFTP.ci / PLSWaveformExtractorCore.ci ==== 
 +Автоматичне вивантаження та збір осцилограм: 
 + 
 +''PLSWaveformFTP.ci'': періодичний фоновий збір COMTRADE-файлів з мікропроцесорних реле через FTP. 
 + 
 + 
 +''PLUSFTP.ci'': низькорівневий FTP-клієнт на базі ''PLUSFTP.dll''. 
 + 
 + 
 +''PLSWaveformExtractorCore.ci'': керування процесом служби екстрактора осцилограм через RPC. 
 + 
 + 
 + 
 +==== PLSWaveformEvent.ci ==== 
 +Генерація записів у журналі подій при появі нових осцилограм: 
 + 
 +Синхронізація індексатора ''WaveformSearch.dll'' з каталогом збережених файлів. 
 + 
 + 
 +Створення події зміни значення змінної для інформування оператора про новий аварійний запис. 
 + 
 + 
 + 
 +===== 8. Безпека, інтеграція та системні сервіси ===== 
 + 
 +==== PLSSecurity.ci / PLSOneTimePassword.ci ==== 
 +Контроль доступу та багатофакторна аутентифікація: 
 + 
 +Авторизація користувачів з підтримкою вибору мови локалізації. 
 + 
 + 
 +Двофакторна перевірка одноразових паролів (YubiKey/OTP) через запити до App Services. 
 + 
 + 
 +Багаторівнева перевірка прав на виконання команд телекерування з повторним запитом пароля. 
 + 
 + 
 + 
 +==== PLSProviderEngine.ci ==== 
 +Інтерфейс взаємодії з постачальниками даних платформи (Provider Engine): 
 + 
 +Асинхронний виклик провайдерів за GUID через бібліотеку ''ProviderGatewayManaged.dll''. 
 + 
 + 
 +Оновлення метаданих платформи на серверах та очищення кешу пам'яті. 
 + 
 + 
 + 
 +==== PLSNotification.ci ==== 
 +Служба нативних сповіщень операторів (Email/SMS): 
 + 
 +Вичитка черги подій ядра ''AlarmEventQue'' та передача у .NET сервіс ''Notification.dll''. 
 + 
 + 
 +Моніторинг черги Watchdog та відстеження зміни станів серверів тривог (Active/Standby). 
 + 
 + 
 +Діалогові форми налаштування одержувачів і перегляду історії сповіщень. 
 + 
 + 
 + 
 +==== PLSApplications.ci / PLSWebPage.ci ==== 
 +Інтеграція зовнішніх веб-додатків та PME (Power Monitoring Expert): 
 + 
 +Генерація Single Sign-On (SSO) токенів для безпечного відкриття сторінок без повторного вводу пароля. 
 + 
 + 
 +Відкриття звітів PME Reports, WebReach, панелей Dashboards та веб-інтерфейсу сповіщень ENM у вікнах SCADA. 
 + 
 + 
 + 
 +==== PLSDiagnosticsViewer.ci ==== 
 +Запуск зовнішньої утиліти системної діагностики: 
 + 
 +Виклик діагностичного модуля ''SystemAndDiagnosticInfo.exe''. 
 + 
 + 
 +Перевірка прав RPC та доступності серверних компонентів системи. 
 + 
 + 
 + 
 +==== PLSGeneral.ci / Display.ci ==== 
 +Загальносистемні та графічні утиліти: 
 + 
 +''PLSGeneral.ci'': міжкластерний запис тегів, синхронний запис на резервовані сервери, строкові утиліти CSV. 
 + 
 + 
 +''Display.ci'': контроль стану курсора (фокус, натискання) для складених графічних об'єктів та обрізка довгого тексту. 
 + 
 + 
 + 
 +==== PLSOEM.ci / PLSVersion.ci / PLUSXML.ci / MillisecondHelper.ci ==== 
 +Службові функції запуску, версій та обробки даних: 
 + 
 +''PLSOEM.ci'': автоматичний запуск фонових задач тривог, зв'язку I/O та осцилограм при старті SCADA. 
 + 
 + 
 +''PLSVersion.ci'': читання інформації про версії та білди компонентів із XML-файлу. 
 + 
 + 
 +''PLUSXML.ci'': повнофункціональний парсер XML DOM та клієнт SOAP через бібліотеку ''PLUSSOAP.dll''. 
 + 
 + 
 +''MillisecondHelper.ci'': отримання мілісекунд через зовнішню бібліотеку ''MSec.dll''. 
 + 
 + 
 + 
 +===== Зведена таблиця компонентів ===== 
 + 
 +^ Файл ^ Призначення / Підсистема ^ Ключові функції / Механізми ^
 | ''_Internal_Library.ci'' | Ядро бібліотечних контролів | Черги задач ''_LibCtrl_HP'', реєстрація AN, стани busy | | ''_Internal_Library.ci'' | Ядро бібліотечних контролів | Черги задач ''_LibCtrl_HP'', реєстрація AN, стани busy |
 | ''_Internal_Table.ci'' | Диспетчер таблиць і сіток | Зміна колонок, багаторівневий вибір рядків, кешування | | ''_Internal_Table.ci'' | Диспетчер таблиць і сіток | Зміна колонок, багаторівневий вибір рядків, кешування |
  • scada/cicodefiles.1787815871.txt.gz
  • Востаннє змінено: 2026/08/27 10:31
  • повз scada