From OpenSCADAWiki
Jump to: navigation, search
Other languages:
Foundation: Jul 2002 (projecting), January 2003 (implementing)
Author: Roman Savochenko
Developers: Roman Savochenko, Maxim Lisenko (2007-2012), Maxim Kochetkov (2014-2016), Almaz Karimov (2008-2009, 2011), Arsen Zakojan (2017)
Participants: see the detailed information
Policy: Free software (Open source software)
License: GPL v.2 for sources mostly, GFDL v.1.3 for documentation
Languages of localization: English(en), Ukrainian(uk), Russian(ru), German(de)
Version: 0.9 Work, 0.8 LTS (2012-2017)
Functions and demands: see the detailed information
Resources: WWW:
Repository: svn co svn:// (Subversion)

OpenSCADA represents an open SCADA or HMI system constructed on principles of modularity, cross-platform and scalability. SCADA (Supervisory Control And Data Acquisition) or Human Machine Interface (HMI) are the terms which are often used in sphere of automation of technological processes. SCADA or HMI systems are generically appointed and used to operational and responsible control by human for working of the complex technological equipment of different production companions. The system OpenSCADA is generically intended for: acquisition, archiving, visualization of the information, issuing control actions, and also for other related operations, which are characteristic for full-featured SCADA or HMI systems.

1 Prerequisites

Market of software for ACS TP (Automation Control System for technological processes) have situated in lacks not only free software of SCADA systems but also SCADA systems for platforms different to MS Windows+x86. Naturally some units are present but about them almost nothing is heard and they look extremely pale on the background of the total mass.

In the time firms implemented ACS TP interested in full control over the SCADA system which they implement on the objects of the Customer. This interest related to specific of work with the Customer. The Customer is the last link into the chain of the program creation. From quality of interaction with the Customer there depend the Customer contentment and speed of improvement of the program. Based on the foregoing, the firm's image which implementing ACS TP depends proportionally. Adaption of completed commercial SCADA system usually leads to deterioration or complete lack of interaction between the Customer and the developer.

In fact, there are the following solutions to the problem:

  • The first option could be to establish close links with the SCADA system manufacturer, that is, integration (explicit or implicit) into the implementation unit. That, in turn, is equally full or partial loss of independence.
  • The second option is to develop your own commercial SCADA system. This achieves full control, but for the development of the system, at a high level, a large staff of highly qualified specialists is required. That, in most cases, is not pocket-sized firms that implement ASC-TP. As a result, the qualifications of the specialists are rather low. And even if the firm judges this feat, the SCADA system does not reach the level of the most mediocre third-party commercial system, and very often there is a low quality code and/or mediocrity features of the system.
  • The third option is to use open SCADA systems, that is, joint development. This allows us to combine the benefits of the first two options:
    • full control over the SCADA system;
    • does not require a large staff of highly skilled specialists for the development of the system; there are enough specialists for distributing the system;
    • leads to the system quality improving, due to multiple external expertise and breadth of supported platforms;
    • allows you to choose a platform based on its benefits, and not just because it runs on the SCADA system;
    • well, other psychological, economic, moral and legal advantages of open systems.

To jointly implement the third option, the OpenSCADA project was launched!

2 Targets of the project — reality

Main purposes, which are pursued with the project, are:

  • openness — mostly GPL v.2;
  • scalability, flexibility, extensibility — modularity, multithreading and internal dynamism;
  • executive redundancy — reservation;
  • accessibility — opened source texts; multilingual; dynamic multilingual; automatic build for archives, packages, live disks, ...; builds and executes on wide age Linux environments, from 2002 to modern ones;
  • reliability — practical application, quick problems solving;
  • security — permissions distribution, SSL;
  • multiplatform — x86_32, x86_64, ARM, Web, Android;
  • united, unified, user-friendly, dynamic and advanced user interface — Qt, Web, transparent and multi-level remote dynamic control;
  • wide range of the data sources — unified ones, DAQ boards and low-level buses, created into the environment of OpenSCADA.

3 Policy of development, license

As policy of software realization of the given project the "OPEN SOURCE" principles of development are chosen. This policy will allow to involve in development, testing, distribution and using of the product the significant amount of developers, enthusiasts and other interested persons with the minimal financial expenses at the same time. The program is accessible on conditions of the GNU GPL v2 license.

4 Areas of application

OpenSCADA is intended to perform as ordinary functions of SCADA systems or telemechanics, and to use in adjacent areas of information technologies:

With some limits and modifications, mostly into the internal environment, OpenSCADA can be used into that areas:

  • medical diagnostic systems;
  • trading systems;
  • enterprise resources management (ERP);
  • billing systems;
  • accounting and bookkeeping.

Then OpenSCADA we can confidently call in general — the system of working with data in real-time.

As base (host) operational systems (OS) for the development and using it is chosen the OS Linux which is POSIX compatible OS. Besides OS Linux is the optimum solution in questions:

  • reliability;
  • safety;
  • flexibility/scalability;
  • availability;
  • popularity and wideness.

As the system OpenSCADA is developing on standard of POSIX OS, by principles of mutiplatform its adaptation on other OS will not make a problem.

Actual and detailed functionality of the system OpenSCADA you can see on the page.

5 Architecture

The Heart of the system is the modular core.

Depending on what modules are connected, the system can carry out both functions of various servers, and functions of clients of client-server architecture. Actually, the architecture of system allows to realize the distributed client-server systems of any complexity.

For achievement of high speed due to reduction of communications time, the architecture allows to unite functions of the distributed systems in one program.

Architecturally, the system OpenSCADA consists of subsystems:

  • Security subsystem. Contains lists of users and groups of users, provides check of the rights of access to the system elements, etc.
  • Modular DBs subsystem. Provides access to databases.
  • Modular transports subsystem. Provides communications with an external environment by means of various communication interfaces.
  • Modular transport's protocols subsystem. It is closely connected with the transports subsystem and provides support of various exchanging protocols between external systems.
  • Modular Data Acquisition (DAQ) subsystem. Provides data acquisition from external sources: controllers, sensors, etc. Except for it the subsystem can give environment to write of generators of data (model, regulators...).
  • Modular archives (history) subsystem. Contains for archives of two types: archives of messages and archives of values. Archivation way is defined by algorithm which is incorporated in proper module of archiver.
  • Modular user interfaces subsystem. Contains functions of the user interfaces.
  • Control for modules subsystem. Provides the control over modules.
  • Modular special subsystem. Contains functions not entered into other subsystems. Currently, these functions also include testing features.

Due to the modular principle, the modular subsystems specified above can expand self functionality in way of connection of corresponding type of the modules.

Modular core of the system OpenSCADA was designed in form of static and shared libraries. It allows to build in functions of system to existing programs, and also to create new programs on the basis of the modular core of the OpenSCADA system. However, the modular core is self-sufficient and can be used by means of the simple starting program.

Modules of the system OpenSCADA are stored in dynamic libraries. Each dynamic library can contain set of modules of various type. Filling of the dynamic libraries by modules is defined by functional connectivity of the modules. Dynamic libraries suppose hot replacement that allows to make updating of modules during work. The method of storage of code of modules in dynamic libraries is common one for the system OpenSCADA as it is supported practically by all modern OS. It does not exclude an opportunity of development of other storage modules code methods and most of the modules can be build in to the OpenSCADA core library excluding external files of modules at all.

6 Distribution

Due the project is free user can get free access to source codes of the project, to build and to use it. Ready to use builds and packages of the program are provided now for more known Linux distributives and environments on the main project's resource

7 Support and services

Free and limited support is provided on the project forum for the free-obtained source codes, binary archives or packages, and mostly for prompt representing and nonspecific to user environment problems. For the full support get an user allowed to purchase a package of commercial technical support from the project developers. Besides the commercial support from developers user allowed to purchase services for solutions on OpenSCADA developing, both from the developers and from the third party integrators. Missed functions and extensions, which aren't in the contradictory to the project conception, user also can order to implement for the OpenSCADA developers.

8 The project assistance

If you are interested in development of the project and you have ideas, experience and knowledge for perfection of the given development, welcome to participation in development. The project is developed on the open bases, hence all his work is a common good, so improving it we help each other to create more and more perfect tool for solving our tasks!