Документи/Часто задавані питання

This page is a translated version of the page Documents/FAQ and the translation is 100% complete.

Other languages:
English • ‎российский • ‎українська

Contents

1 Політичні та концептуальні

Q: OpenSCADA незрозуміла та складна у освоєні. Чому так та чи є інструкції швидкого старту?
Re: OpenSCADA детально описано, гранично структуровано та формалізовано. Однак враження нерозуміння та складності прогнозовані. Виходячи з цілей проекту, програма є гранично модульною, а це означає що варіантів конфігурації та використання дуже багато. З одного боку це ускладнює сприйняття, але з іншого підвищує шанси "охоплення" саме вашої спеціалізованої задачі. Крім того потрібно завжди пам'ятати, що складно та незрозуміле те чого ще невідомо, а зовсім не обов'язково тому, що воно дійсно є таким. І цей психологічний бар'єр треба переборювати при вивченні будь чого нового. Посібник по швидкому старту існує та доступний тут

Q: Чи працює OpenSCADA у операційній системі QNX, FreeBSD, MS Windows?
Re: OpenSCADA розробляється за принципами багатоплатформності, базуючись на визнаному світовому стандарті POSIX та багатоплатформених бібліотеках. Однак у зв'язку з обмеженістю ресурсів проект ведеться тільки у ОС Linux. Більша адаптація до других платформ запланована після випуску версії 0.9 та на цей час OpenSCADA працює на апаратних платформах x86, x86_64, ARM та програмній платформі Android. Подальша підтримка тієї або іншої платформи буде залежати від зацікавленості спільноти та наявності окремого мантейнера для апаратно-програмної платформи.

Q: Чи можна керувати OpenSCADA за допомогою звичайного WEB-браузера?
Re: Так, це можливо. Для керування OpenSCADA з WEB-браузера створено модулі UI.WebCfg та UI.WebCfgD; для виконання інтерфейсів оператору створено модуль UI.WebVision та для створення користувацьких HTML сторінок створено модуль UI.WebUser. Які викликаються модулем Protocol.HTTP, підсистеми "Протокол".

Q: Як OpenSCADA збирається з вихідних текстів?
Re: Збірка будь якого програмного проекту складністю вище середнього з вихідних текстів є нетривіальним завданням. Для вирішення цього завдання потрібна відповідна підготовка та попередній досвід збірки. Якщо є можливість отримати OpenSCADA зібраною та у вигляді готових пакунків під ваше оточення, то обов'язково скористайтеся нею. Якщо ж немає пакунків під ваше оточення або Ви свідомо бажаєте зібрати програму з вихідних текстів тоді скористайтеся посібником для збірки з вихідних текстів.

Q: Чи допускає програма додання/видалення/оновлення модулів на ходу (без зупинки)?
Re: Цю можливість передбачено програмою та вона забезпечується підсистемою "Керування модулями". Фактично, оновлення модулів може відбуватися автоматично, після виявлення нової версії модуля.

Q: Чи можу я створити свій власний модуль для будь якої підсистеми?
Re: Так, звісно. Для допомоги в цьому створено документ, де практично повністю описано архітектуру ядра, його функції та API модулів різних підсистем. Додатково створено посібник по створенню модулів до OpenSCADA та для кожної підсистеми створено модуль-шаблон, взявши за основу який можна швидко створити свій новий модуль.

2 Архітектурні, використання та як зробити

Q: Яким чином реалізується підтримка багатьох мов? Чи можу я виконати локалізацію на рідну мову?
Re: Підтримка багатьох мов реалізована ґрунтуючись на стандарті інтернаціоналізації I18N. До того ж файли інтернаціоналізації модулів відокремлено від файлу інтернаціоналізації ядра програми. Це забезпечує повноцінну підтримку незалежного розповсюдження та розробки модулів до OpenSCADA. Переклад програми в цілому та модулів зокрема може бути виконано незалежно від наявності їх вихідних текстів. Для перекладу достатньо отримати *.po або *.pot файли потрібного компоненту та у звичайному текстовому редакторі виконати переклад повідомлень у файлах з англійської на потрібну мову. Наразі актуальні файли Ви можете отримати з репозиторію вихідних текстів проекту.

Q: Як забезпечується розподіл доступу?
Re: Використовується схема безпеки подібна до UNIX ОС. Так, потрібні компоненти мають власника, входять до груп та містять тріаду доступу "rwxrwxrwx". Крім того цей механізм безпеки втілено у інтерфейсі керування OpenSCADA, який своєю чергою пронизує всю програму.

Q: Яким чином в OpenSCADA можна реалізовувати через-модульні зв'язки?
Re: Через-модульні зв'язки можуть бути наступних типів:

Q: Чи можу я отримати дані безпосередньо з БД?
Re: Так, Ви можете. Для баз даних (БД), що підтримують SQL, Ви можете використати функцію SQLReq() до відповідної БД. Загалом та для не SQL баз даних Ви можете використати API доступу до прошарку баз даних OpenSCADA у функціях таблиці БД fieldStruct(), fieldSeek(), fieldGet(), fieldSet(), fieldDel().

Q: Де і як виконувати додаткову логічну обробку атрибутів параметрів, включаючи логічне зв'язування у один об'єкт?
Re: Будь яка математична обробка атрибутів параметрів може виконуватися у обчислювальних об'єктах контролеру (модулях підсистемі "Збір даних"), наприклад, у блоковому обчислювальному контролері (DAQ.BlockCalc) та об'єкті контролеру ґрунтованому на Java-подібній мові (DAQ.JavaLikeCalc). Крім того обробка може здійснюватися на логічному рівні параметрів (DAQ.LogicLev), у модулях підсистеми "Збір даних", спеціально для цього передбачених (які працюють за шаблонами параметрів) або які містять вбудовану реалізацію механізму шаблонів параметрів. Тобто користувач може формувати параметри з потрібною структурою та алгоритмом після-обробки, формуючи логічно зв'язані об'єкти. Частина обробки може виконуватися безпосередньо при візуалізації (UI.VCAEngine). Щодо збору даних в цілому дивіться у документі.

Q: Де перевіряються шкали параметрів та різні уставки сигналізації?
Re: Перевірка шкал та вставок може реалізовуватися самим модулем контролера з сигналізацією через відповідні атрибути параметрів. А також на логічному рівні параметрів, для "сирих" джерел даних. Крім того, даний аналіз може здійснюватися безпосередньо в середовищі візуалізації та управління (СВУ).

Q: Чи можна, та яким чином реалізується резервування параметрів?
Re: Реалізуються наступні схеми резервування:

Q: Яким чином визначається циклічність архівації значень?
Re: Архівація є незалежним від контролерів та їх параметрів завданням, та виконується вона модульною підсистемою "Архіви". Що та як архівувати визначається особисто для кожного атрибута параметру. Передбачено два режими архівації: пасивний та активний. Пасивна архівація визначається циклічністю отримання даних контролером, циклом модуля збору даних. Активна архівація забезпечується завданням підсистеми архівації, незалежно від циклу та способу збору даних модулем "DAQ".

Q: Чи можу я отримати (прочитати та записати) значення атрибуту параметру збору даних, наприклад, з процедури користувацького інтерфейсу?
Re: Основним інтерфейсом обміну значеннями параметрів збору даних є статичне зв'язування з елементами або атрибутами відповідної частини OpenSCADA, яке є найшвидшим. Однак внутрішня мова та динамічна об'єктна модель вузлів OpenSCADA дозволяє Вам здійснювати динамічний доступ до об'єктів атрибутів параметрів збору даних, наприклад, Ви можете отримати значення атрибуту функцією get().

Q: Чи можлива робота з потоковими даними у програмі?
Re: Потоковий та пакетний збір даних працює у зв'язці з архівом та його буфером. Тобто джерело, отримавши пакет/блок даних, безпосередньо поміщає його до архіву атрибута параметра, або ж бере пакет з буферу, при потоковому виводі.

Q: Яким чином здійснюється сигналізація мовою?
Re: Сигналізація мовою, як і інші методи сигналізації, є елементом підсистеми "Інтерфейси користувача" та здійснюються у модулях середовища візуалізації та управління (СВУ), а саме у рушії СВУ UI.VCAEngine та візуалізаторах UI.Vision і UI.WebVision.

Q: Як я можу швидко та коректно змінити співвідношення сторін екрану візуального інтерфейсу користувача на інше, наприклад, на 16:9?
Re: Так, основний інтерфейс користувача OpenSCADA, заснований на концепції об'єктів сигналізації та її кореневій сторінці, пристосовано та розроблено до співвідношення сторін 4:3. Для загальних проектів СВУ заплановано реалізацію відповідних стилів на різні співвідношення сторін та мнемосхеми мають залишатися незмінними, у цьому випадку. Відтак, для ручної, швидкої та коректної зміни співвідношення сторін Ви наразі маєте виконати наступне, у дереві проекту СВУ:

Q: Як я можу підключити візуалізатор UI.Vision до віддаленого серверу візуалізації, або до ПЛК з цією функцією?
Re: Так, Ви можете створювати сервера візуалізації та ПЛК, засновані на модулі UI.VCAEngine, зі всіма даними СВУ проектів візуалізації користувачів на них та очевидно зі встановленою там OpenSCADA. Надалі Ви можете підключатися до цих віддалених серверів візуалізації та ПЛК за допомогою модуля UI.Vision для локальної розробки та візуалізації віддалених проектів візуалізації користувача. Ця інструкція також корисна для отримання віддаленого контролю серверів візуалізації та ПЛК! Для здійснення цього Ви маєте слідувати наступній процедурі на клієнтській станції з модулем UI.Vision та з будь якою конфігурацією включно з порожньою:

Q: Як я можу автоматично запустити OpenSCADA з відповідним оперативним інтерфейсом користувача, проектом диспетчерського контролю?
Re: Звісно, після завершення процесу розробки Ви маєте забезпечити запуск програми разом із запуском операційної системи та повно-екранного виконання результуючого оперативного інтерфейсу користувача. Для цього Ви маєте слідувати процедурі:

Q: Оперативний інтерфейс оператору запускається на весь екран та я не можу його закрити для отримання доступу до системного оточення робочої стільниці!
Re: Звісно, OpenSCADA захищає систему контролю від закриття та непривілейованого доступу до системного оточення робочої стільниці. Відтак, для отримання доступу до системного оточення робочої стільниці Ви маєте бути привілейованим користувачем, змінити користувача інтерфейсу на свій обліковий запис та у глобальному меню, що виникло, здійснити потрібне: вимкнути повно-екранний режим, закрити або вийти з програми.

3 Проблеми

Q: Чому я втратив дробову частину у всіх завантажених значеннях реального типу?
Re: Ви використовуєте локаль, відмінну від "C" або загальної Англійської та встановлюєте її прямо змінною оточення "LC_NUMERIC" або її загальним варіантом "LC_ALL", що призводить до використання символу роздільника дробової частини відмінного від "." (крапка), часто це "," (кома), у функціях на кшталт atof() та sprintf(). Відтак ніколи не встановлюйте змінних оточення "LC_NUMERIC" та "LC_ALL" прямо оскільки вони перевизначають коректне встановлення "LC_NUMERIC" у "C", в середині! Для зміни мови програми використовуйте тільки змінні "LANG" та "LANGUAGE", яких завжди достатньо.

Q: "Немає доступу для створення політики реального часу для '****'. Створено звичайну нитку!"
Re: Таке повідомлення OpenSCADA формує при спробі встановити для потоку-завдання політики реального часу, за пріоритетом більше 0, у випадку запуску від звичайного користувача. Потенційно такі права можна надати шляхом редагування файлу "/etc/security/limits.conf" таким чином:

user    hard    nice    -20 
user    soft    nice    -15 
user    hard    rtprio  99 
user    soft    rtprio  90

Q: Я бачу, що на графіках (примітив "Діаграма") інтерфейсів модуля UI.WebVision, відсутні всі текстові мітки. Чому так?
Re: Такий результат можливий на інтерфейсах, побудованих на бібліотеці GD, та якщо сама ця бібліотека зібрана без використання бібліотеки FontConfig. На цей час тільки модуль UI.WebVision використовує цю бібліотеку для виключної побудови примітивів "Елементарна Фігура" та "Діаграма". Відтак для виправлення цієї проблеми Ви маєте встановити коректний пакет-збірку бібліотеки або скласти бібліотеку самостійно з FontConfig. Наразі відомо один випадок такого сорту проблеми з пакетом "libgd2-noxpm" старих версій дистрибутиву Debian, основаного на Linux, де Ви маєте встановити коректний пакет "libgd2-xpm".