Модулі/Система - OpenSCADAWiki

# Модулі/Система

This page is a translated version of the page Modules/System and the translation is 100% complete.

English • ‎mRussian • ‎Українська

Модуль | Ім'я | Версія | Ліцензія | Джерело | Мови | Платформи | Тип | Автор | Опис
--- | --- | --- | --- | --- | --- | --- | --- | --- | ---
System | Збір даних ОС | 3.5 | GPL2 | daq_System.so | en,uk,ru,de | x86,x86_64,ARM | DAQ | Роман Савоченко | Надає збір даних із Операційної Системи. Підтримуються джерела даних ОС Linux: ЦП, Пам'ять, Сенсори, SMART Диску, Статистика Диску, Файлова Система, Мережа, Живлення, ДБЖ, Час Дії та інше. Завдання (To Do): -

Модуль є своєрідним шлюзом між OpenSCADA та операційною системою (ОС), який отримує дані із різних джерел даних та дозволяє керувати деякими компонентами ОС.

Модуль надає можливість автоматичного пошуку підтримуваних активних джерел даних із створенням параметрів для доступу до них, а також реалізацію функції горизонтального резервування, а саме спільної роботи з віддаленою станцією цього-ж рівня.

## 1 Об'єкт контролеру

Для додання джерела даних ОС створюється та конфігурується об'єкт контролера у OpenSCADA. Приклад вкладки конфігурації об'єкта контролера цього типу зображено на рисунку 1.

Рис.1. Вкладка конфігурації об'єкту контролеру.

За допомогою цієї вкладки можна встановити:

- Стан об'єкту контролеру, а саме: статус, "Ввімкнено", "Виконується" та ім'я сховища, яке містить конфігурацію.
- Ідентифікатор, ім'я та опис контролеру.
- Стан "Ввімкнено" та "Виконується", у який переводити об'єкт контролеру при запуску.
- Автоматичний пошук активних джерел даних та створення параметрів до них, для режимів: "Ручний", "Швидкі джерела", "Повільні джерела", "Всі джерела".
- Планування обчислення та пріоритет задачі опитування джерел даних.
- Цикл виклику повільних джерел, для запобігання постійному шунтуванню основного циклу швидких джерел.

## 2 Параметри

Модуль надає лише один "Стандартний (std)" тип параметрів із назвою таблиці параметрів "OSPrm_{CntrId}". Додатковими конфігураційними полями параметрів цього модуля (Рис.2) є:

- частина системи;
- підтип, залежний від джерела даних і може бути відсутнім загалом.

Рис.2. Вкладка конфігурації параметру.

Підтримувані джерела даних ОС
Джерело Даних (ІД) "АвтСтворІД" | Значення підтипу | Атрибути параметру (ідентифікатор[властивості]) | Примітки
--- | --- | --- | ---
ЦП (CPU) "CPU[{N}]" | "Загалом (gen)" або номер N ЦП. | "Навантаження загальне, системне, користувацьке, відсутнє\nУ %" (load[real], sys[real], user[real], idle[real]) "Частота: драйвер" (frqDrv[string]) "Частота: керувач" (frqGov[string|wr]) "Частота: поточна\nУ МГц" (frqCur[real|wr]) "Частота: мінімум, встановлення\nУ МГц" (frqMin[real], frqMinCur[real|wr]) "Частота: максимум, встановлення\nУ МГц" (frqMax[real], frqMaxCur[real|wr]) "Назва моделі" (model[string]) "МГц" (MHz[real]) "ПідставніМОЗаС" (BogoMIPS[real]) "МГц за rdtsc" (rdtsc[real]) | Оновлення у загальних циклах щодо усіх значень атрибутів та приготування найбільш актуальної загальної-середньої частоти ЦП для кореневої сторінки. Усі специфічні до ЦП значення частоти усереднюються для "Загалом (gen)" а зміни тут розповсюджуються на них всіх. У якості джерела використано: "/proc/stat" — для навантаження ЦП; "/sys/devices/system/cpu/cpu{N}/cpufreq/" — для CPUFreq; "/proc/cpuinfo" — для загальної інформації ЦП.
Пам'ять (MEM) "MEM" | Не використовується. | "Вільно (КіБ)" (free[integer]) "Разом (КіБ)" (total[integer]) "Використано (КіБ)" (use[integer]) "Буфера (КіБ)" (buff[integer]) "Кеші (КіБ)" (cache[integer]) "Своп вільно (КіБ)" (sw_free[integer]) "Своп загалом (КіБ)" (sw_total[integer]) "Своп використано (КіБ)" (sw_use[integer]) | У якості джерела використовується "/proc/meminfo".
Сенсори (sensors) "Sensors" | Не використовується. | Визначаються сенсорами, які доступні на обладнані. Для кожного сенсора створюється унікальний атрибут. | Використовується бібліотека libsensors або програма mbmon, так само як сенсори прямо у "/sys/devices/virtual/hwmon/*/temp" і "/sys/devices/virtual/hwmon/*/temp*". Найбільший пріоритет використання надається бібліотеці libsensors оскільки mbmon має проблеми на багатоядерних архітектурах і переважно застаріле.
Процес (proc) | Перелік команд процесів із можливістю визначення регулярного виразу до повного командного рядка у вигляді "/{RE}/". | "Користувацьке навантаження (%)" (UserLoad[real]) "Системне навантаження (%)" (SystemLoad[real]) "Поточна кількість слотів файлових дескрипторів" (FDSize[integer]) "Піковий розмір віртуальної пам'яті (КіБ)" (VmPeak[integer]) "Розмір віртуальної пам'яті (КіБ)" (VmSize[integer]) "Розмір заблокованої пам'яті (КіБ)" (VmLck[integer]) "Розмір закріпленої пам'яті (КіБ)" (VmPin[integer]) "Піковий розмір резидентного набору (КіБ)" (VmHWM[integer]) "Розмір резидентного набору (КіБ)" (VmRSS[integer]) "Розмір резидентної анонімної пам'яті (КіБ)" (RssAnon[integer]) "Розмір резидентних файлових мапувань (КіБ)" (RssFile[integer]) "Розмір резидентної спільної пам'яті (КіБ)" (RssShmem[integer]) "Розмір сегменту даних (КіБ)" (VmData[integer]) "Розмір сегменту стеку (КіБ)" (VmStk[integer]) "Розмір сегменту тексту (КіБ)" (VmExe[integer]) "Розмір коду спільних бібліотек (КіБ)" (VmLib[integer]) "Розмір таблиці записів (КіБ)" (VmPTE[integer]) "Розмір віртуальної пам'яті, вилучений анонімними приватними сторінками (КіБ)" (VmSwap[integer]) "Розмір порцій пам'яті hugetlb (КіБ)" (HugetlbPages[integer]) "Кількість потоків у процесі" (Threads[integer]) "Кількість процесів" (Processes[integer]) | У якості джерела використано "/proc/{PID}/status" і "/proc/{PID}/stat".
Сенсор Qt (QSensor) "{OrigName}" | Перелік Сенсорів Qt у їх первинній назві OrigName | "Стан" (st[string]) "Властивість {N}" (pr{N}[boolean|integer|real|string]) | Джерело динамічне, тож наявність атрибутів залежить від типу QSensor. Типовими типами сенсорів є: QAccelerometer, QAmbientLightSensor, QCompass, QIRProximitySensor, QLightSensor, QMagnetometer, QOrientationSensor, QProximitySensor, QRotationSensor, QTapSensor. Сенсори переважно доступні на Android і MeeGo.
SMART Диску (hddsmart) "DiskSMART{DEV}" | Пристрої DEV дисків, що доступні у системі. | Визначаються SMART-полями (також записами Журналу NVMe), доступними для цього диску. Для кожного поля створюється унікальний атрибут. | Це повільне джерело. Джерело динамічне, тож наявність атрибутів залежить від типу диску. Має бути встановлена та доступна програма smartctl.
Температура HDD (hddtemp) "Temperature_hd{DEV}" | Пристрої DEV Жорстких Дисків, що доступні у системі. | "Назва" (disk[string]) "Одиниця виміру" (ed[string]) "Температура" (t[integer]) | Переважно застаріле і замінене "SMART Диску (hddsmart)". Програма hddtemp має бути встановлена, налаштована і виконувана як сервіс.
Статистика Диску (hddstat) "DiskSt_{DEV}" | Пристрої DEV дисків або їх розділи, що доступні у системі. | "Прочитано (Б)" (rd[real]) "Швидкість читання (Б/с)" (rdSp[real]) "Записано (Б)" (wr[real]) "Швидкість запису (Б/с)" (wrSp[real]) | У якості джерел використано: "/proc/diskstats" — для дисків; "/proc/partitions" — для розділів.
Файлова Система (fs) "FS{MP}" | Підключена файлова система MP. | "Разом (ГБ)" (total[real]) "Використано (ГБ)" (used[real]) "Вільно (ГБ)" (free[real]) "Разом файлових вузлів" (totalN[integer]) "Використано файлових вузлів" (usedN[integer]) "Вільно файлових вузлів" (freeN[integer]) | У якості джерела використано "/etc/fstab" для файлових систем.
Мережа (netstat) "Net_{IF}" | Мережеві інтерфейси IF, що доступні у системі. | "Прийнято (Б)" (rcv[real]) "Швидкість прийняття (Б/с)" (rcvSp[real]) "Передано (Б)" (trns[real]) "Швидкість передавання (Б/с)" (trnsSp[real]) | У якості джерела використано "/proc/net/dev" для мережевих пристроїв-інтерфейсів.
Живлення (Power) "Power{DEV}" | Пристрої DEV живлення, що доступні на обладнані. | Читання і запис усіх властивостей, доступних у теці пристрою, із спеціальною обробкою найбільш відомих: "Тип" (type[string]) "Технологія" (technology[string]) "Простір" (scope[string]) "Наявне" (present[boolean]) "Виробник, модель, SN" (manufacturer[string], model_name[string], serial_number[string]) "Статус" (status[string]) "ВМережі" (online[boolean]) "Здоров'є" (health[string]) "Ємність" (capacity[integer]) "Рівень ємності" (capacity_level[string]) "Заряд зараз, повний, дизайн\nУ Аг" (charge_now[real], charge_full[real], charge_full_design[real]) "Енергія зараз, повна, дизайн\nУ Аг" (energy_now[real], energy_full[real], energy_full_design[real]) "Напруга" (voltage_now[real]) "Напруга мінімум" (voltage_min_design[real]) "Кількість циклів" (cycle_count[integer]) "Потужність\nУ Ватах" (power_now[real]) "Струм\nУ мАмперах" (current_now[real]) "Температура\nУ градС" (temp[real]) "Час спустошення зараз, середній" (time_to_empty_now[real], time_to_empty_avg[real]) "Час наповнення" (time_to_full_now[real]) "Поріг зарядження початок, зупинка" (charge_start_threshold[integer|wr], charge_stop_threshold[integer|wr]) "Поріг контролю зарядження початок, кінець" (charge_control_start_threshold[integer|wr], charge_control_end_threshold[integer|wr]) | Джерело динамічне, тож наявність атрибутів залежить від типу джерела. У якості джерела використано інтерфейс Живлення Linux Power у "/sys/class/power_supply/".
ДБЖ (ups) | Адреса ДБЖ. | Визначаються полями, які надаються відповідним ДБЖ. Для кожного поля створюється унікальний атрибут. | Це повільне джерело. Джерело динамічне, тож наявні атрибути залежать від типу ДБЖ. Демон upsd від проєкту NUT має бути доступний у системі або мережі, тобто не визначається автоматично і його адресу необхідно вказувати прямо.
Час Дії (uptime) "UpTm_[sys|stat]" | Системний (sys) або Станційний (stat) час дії. | "Секунди повні" (full[integer]) "Секунди" (sec[integer]) "Хвилини" (min[integer]) "Години" (hour[integer]) "Дні" (day[integer]) |

Modules/System/uk - GFDL | July 2026 | OpenSCADA 1+r3070