Built in backuping of the OpenSCADA projects

01.07.2020 13:00 Age: 1 year
Category: NewsDevelopment

By: Roman Savochenko

Backups of the OpenSCADA projects.

The service script "openscada-proj" of the OpenSCADA projects appended for the projects' backuping.

The graphical part of the project manager in the module UI.QTStarter appended also for backuping status of the projects and context commands for their backup and restore.

Total complexity: 0.5 HD

Sponsored by, for whole complexity: Hadi Ramezani

OpenSCADA 0.9 identified, implemented and finalized the essence of the Opens external link in new windowOpenSCADA project as a separate site (folder) with the configuration and all data of a separate solution-project of the SCADA-system — a technological process object, a PLC, a visualization server, a Web server, and more.

The project folder name is the project name and is located in the OpenSCADA work folder. The OpenSCADA work folder is divided into a system ("{datadir}/openscada", where "datadir" is usually "/usr/share"), which is read-only for the normal-unprivileged user, and an user ("{HOME}/.openscada"), which, if necessary, is created in the user's home directory. The predefined projects and OpenSCADA libraries that are installed by the corresponding Linux distribution packages are usually placed into the system work folder. Therefore, in order to ensure full operation, projects and libraries from the system work folder are copied to the user one, which the project manager carries out automatically.

In general, the command line script for the project manager openscada-proj includes such project functions and commands:

  • list — list of available projects;
  • proc — to process on the subject: copying the RO project in RW, creating a shortcut-icon on the desktop, generating a fall report and more;
  • create — create a new project, in addition to all proc functions;
  • remove — delete an existing project.

Additionally, the command line script contains the project backups manager commands:

  • backup — backup the selected project ProjName to the name BackupName, or to the current date at missing;
  • backupRestore — restore the selected project ProjName from the pointed backup name BackupName, or from the last one at missing;
  • backupList — list the project ProjName backups.

Backup is generally done in the OpenSCADA working folder, along with the folders of the projects themselves, for which packed folder files are created with the name {ProjName}_{BackupName}.backup, for example — "Boiler_2020-06-24_20.09.backup". By default, project folders are compressed with "gzip", which can be changed by setting the environment variable "OSCADA_TAR_ComprPrg". Accordingly, the backup can be done from the outside, for example, according to the established schedule with CRON, in addition to doing it manually from the graphical interface of the project manager.

In the list of projects of the Opens external link in new windowUI.QTStarter startup dialog, the user (via the context menu) is additionally given the opportunity to BackUp, and restore projects from the selected backup.

In addition to the names of the projects in the list of projects, to the right of the title, their status is provided — "current", "running" and "{N} backups". The state "current" means that the execution of this particular project is carried out. The state "running" indicates a multiple-start blocking file presence, and thus the execution of the project, and separately from this project if the state "current" is not specified next. You can select and try to switch to a project in the "executable" state by accepting the warning, but if this project is actually executed now and the presence of the lock file is not residual after the program crash, then the switching program just ends! The state "{N} backups" indicates presence the specified backups number of the project.