УкраїнськаEnglishmRussian
Вхід/Новий

Вбудоване резервування проектів OpenSCADA

01.07.2020 13:00 Давність: 4 yrs
Категорії: НовинаРозробка

Автор: Роман Савоченко


Резервні копії проектів OpenSCADA.

Сервісний скрипт "openscada-proj" проектів OpenSCADA доповнено резервуванням проектів.

Графічну частину менеджера проектів у модулі UI.QTStarter також доповнено статусом резервування проектів та контекстними командами їх резервування та відновлення.

Загальна працемісткість: 0.5 ЛД

Спонсорування, на загальну працемісткість: Хайді Рамезані

У OpenSCADA 0.9 було визначено, впроваджено та остаточно сформовано сутність Opens external link in new windowпроекту OpenSCADA, як окреме місце (тека) з конфігурацією та всіма даними окремого проекту-рішення SCADA-системи — об'єкт технологічного процесу, ПЛК, сервер візуалізації, сервер Web та інше.

Назва теки проекту дорівнює назві проекту та розташовується у робочій теці OpenSCADA. Робоча тека OpenSCADA поділяється на системну ("{datadir}/openscada", де "datadir" зазвичай — "/usr/share"), яка звичайному-непривілейованому користувачу доступна лише для читання, та користувацька ("{HOME}/.openscada"), яка, за потреби, створюється у домашній теці користувача. До системної робочої теки зазвичай поміщаються попередньо-встановлені проекти та бібліотеки OpenSCADA, які встановлюються відповідними пакетами дистрибутиву Linux. Відтак, для забезпечення повноцінної роботи, проекти та бібліотеки з системної робочої теки копіюються до користувацької, що менеджер проектів здійснює автоматично.

Загалом, сценарій командного рядку менеджеру проектів openscada-proj передбачає функції та команди довкола проектів:

  • list — перелік наявних проектів;
  • proc — опрацювати на предмет: копіювання RO проекту у RW, створення іконки-ярлика на робочій стільниці, генерації звіту про падіння та інше;
  • create — створення нового проекту, додатково до всіх функцій proc;
  • remove — видалення існуючого проекту.

Додатково, сценарій командного рядку містить команди менеджеру резервного копіювання проектів:

  • backup — резервне копіювання обраного проекту ProjName до BackupName, або на поточну дату за відсутності;
  • backupRestore — відновлення обраного проекту ProjName із резервної копії з вказаною назвою BackupName, або із останньої за відсутності;
  • backupList — перелік резервних копій проекту ProjName.

Резервне копіювання загалом здійснюється у робочій теці OpenSCADA, поряд із теками самих проектів, для яких створюються файли запакованих тек із назвою {ProjName}_{BackupName}.backup, наприклад — "Boiler_2020-06-24_20.09.backup". По замовченню теки проектів стискаються програмою "gzip", яку можна змінити встановленням змінної оточення "OSCADA_TAR_ComprPrg". Відповідно, резервування можна здійснювати із зовні, наприклад, за встановленим розкладом із CRON, окрім того, що здійснювати це вручну із графічного інтерфейса менеджеру проектів.

У переліку проектів діалогового вікна запуску Opens external link in new windowUI.QTStarter (через контекстне меню) додатково надається можливість зарезервувати — створити резервну копію, та відновити проекти із обраної резервної копії.

Окрім безпосередньо назв проектів у переліку проектів, праворуч від назви, наведено їх стан — "поточний", "виконується" та "{N} рез.копій". Стан "поточний" означає, що здійснюється виконання саме цього проекту. Стан "виконується" вказує на наявність файлу блокування багаторазового запуску, а відтак і виконання проекту, та окремо від цього проекту якщо поряд не вказано стану "поточний". Обрати та спробувати перемкнутися на проект у стані "виконується" можна, прийнявши попередження, але якщо цей проект реально зараз виконується і наявність файлу блокування не є залишковим після аварійного завершення програми то програма, що перемикається, просто завершиться! Стан "{N} рез.копій" вказує на наявність визначеної кількості резервних копій проекту.


12139