|Foundation:||Jul 2002 (projecting), January 2003 (implementing)|
|Author:|| Roman Savochenko|
Maxim Lisenko (2007-2012), Maxim Kochetkov (2014-2016), Almaz Karimov (2008-2009, 2011), Arsen Zakojan (2017), Ruslan Yarmoliuk (2017), Arcadiy Kisel (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 the localization:||English(en), Ukrainian(uk), German(de), mRussian(ru) and add|
|Version:||1 Work, 0.9 LTS (2018-...), 0.8 Old LTS (2012-2018)|
|Functions and demands:||see the detailed information|
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. OpenSCADA is generically intended for: acquisition, archiving (conduct history), visualization of the information, issuing control actions, and also for other related operations, which are characteristic for full-featured SCADA or HMI systems.
Market of software for automation control systems of technological processes (ACS TP) in 2002 year have situated in lacks not only free software of SCADA systems but also SCADA systems for platforms different to MS Windows+x86. Of course, some units are present but about them almost nothing is heard and they look extremely pale on the background of the total mass.
At the same time, firms that are engaged in the implementation of ACS TP, are interested in the full control of the SCADA system, which they implement on the customer's objects. The Customer is the last link into the chain of the program creation. The quality of Customer's interaction with the developer directly proportional to the customer's satisfaction, as well as the speed of the program improving. Due to the foregoing, the image of the firm, which implements the control system of the TP, is dependent 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 of 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 to 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 the 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;
- and 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, QNX;
- 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 the development, license
As a 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:
- dynamic models, imitators and training apparatus of technological processes into the real-time;
- machine tools and industrial robots;
- agricultural dispatching and control systems, poultry-yards;
- embedded and mobile systems — environments of execution Programming Logical Controllers (PLC), robots, ...;
- server equipment monitoring;
- smart houses and home automation.
With some limits and modifications, mostly into the internal environment, OpenSCADA can be used into that areas:
- enterprise resources management (ERP);
- Geo-location and location tracking;
- trading systems;
- medical diagnostic systems;
- accounting and bookkeeping;
- billing systems.
Then OpenSCADA we can confidently call in general — the system of working with data in real-time.
As the base (host) operating system (OS), the OS Linux, which is a standard POSIX-compliant operating system, is selected for development and use. Besides, OS Linux is the optimum solution in the questions:
- popularity and wideness.
As OpenSCADA is developed on the standard POSIX OS, according to the principles of supporting many platforms, its adaptation to other OSs will not be a problem.
The actual and detailed functionality of OpenSCADA you can look at the functions page.
The Heart of the program is the modular core.
Depending on what modules are connected, the program can carry out both functions of various servers, and functions of clients of client-server architecture. Actually, the program architecture 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, OpenSCADA consists of the subsystems:
- Security — contains lists of users and groups of users, provides check of the rights of access to the program elements, etc.
- Modules Scheduler — provides the control over modules.
- Data Bases (modular) — provides access to databases.
- Transports (modular) — provides communications with external environment by means of various communication interfaces.
- Transport Protocols (modular) — closely connected with the transports subsystem and provides support of various exchanging protocols between external systems.
- Data Acquisition (modular) — provides data acquisition from external sources: controllers (PLC), sensors, etc. In addition, the subsystem can provide an environment for creating data generators: simulators, controllers (PLC), ... .
- Archives-Histories (modular) — contains of archives-history of two types: message and value archives. The method of archiving is determined by the algorithm that is provided in the archiving module.
- User Interfaces (modular) — contains functions of the user interfaces.
- Specials (modular) — contains functions that are not included in the other subsystems. Currently, these functions include test functions and libraries of static functions of the user API.
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 OpenSCADA was provided in the form of static and shared libraries. That allows you to build in functions of OpenSCADA to existing programs, and also to create new programs on the basis of the modular core of OpenSCADA. However, the modular core is self-sufficient and can be used by means of the simple starting program.
Modules of OpenSCADA are stored in the dynamic libraries. Each dynamic library can contain several modules of the various types. Filling of the dynamic libraries by the modules is defined by functional connectivity of the modules. Dynamic libraries suppose hot replacement, that allows you to make updating of the modules during work. The method of storage of the modules code in dynamic libraries is common one for OpenSCADA as it is supported practically by all modern OS. What 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 the modules at all.
Since this project is free, the user can freely obtain the source texts of the project for further compilation and use. 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 http://oscada.org.
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, the user allowed to purchase a package of commercial technical support from the project developers. In addition to the commercial support, the user can purchase development solutions based on OpenSCADA both directly from developers and third-party integrators. Missed functions and extensions, which aren't in the contradictory to the project conception, the user also can order to implement for the OpenSCADA developers.
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 the project. 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!