From OpenSCADAWiki
Jump to: navigation, search
 
(45 intermediate revisions by the same user not shown)
Line 6: Line 6:
 
| ''Foundation:'' || Jul 2002 (projecting), January 2003 (implementing)
 
| ''Foundation:'' || Jul 2002 (projecting), January 2003 (implementing)
 
|-
 
|-
| ''Author:'' || [http://wiki.oscada.org/RomanSavochenko Roman Savochenko]
+
| ''Author:'' || {{Author|[[User:RomanSavochenko|Roman Savochenko]]|Maxim Lisenko (2007-2012), Maxim Kochetkov (2014-2016), Almaz Karimov (2008-2009, 2011), Arsen Zakojan (2017), Ruslan Yarmoliuk (2017), Arcadiy Kisel (2017)}}
 
|-
 
|-
| ''Developers:'' || [http://wiki.oscada.org/RomanSavochenko Roman Savochenko], [http://wiki.oscada.org/MaximLysenko Maxim Lisenko] (2007-2012), Maxim Kochetkov (2014-2016), Almaz Karimov (2008-2009, 2011), Arsen Zakojan (2017)
+
| ''Participants:'' || [http://oscada.org/en/community/participants see the detailed information]
|-
+
| ''Participants:'' || [http://wiki.oscada.org/HomePageEn/Developers see the detailed information]
+
 
|-
 
|-
 
| ''Policy:'' || Free software (Open source software)
 
| ''Policy:'' || Free software (Open source software)
Line 16: Line 14:
 
| ''License:'' || [[wikipedia:GNU General Public License|GPL]] v.2 for sources mostly, [[wikipedia:GNU Free Documentation License|GFDL]] v.1.3 for documentation
 
| ''License:'' || [[wikipedia:GNU General Public License|GPL]] v.2 for sources mostly, [[wikipedia:GNU Free Documentation License|GFDL]] v.1.3 for documentation
 
|-
 
|-
| ''Languages of localization:'' || English(en), Ukrainian(uk), Russian(ru), German(de)
+
| ''Languages of the localization:'' || English(en), Ukrainian(uk), German(de), mRussian(ru) and [[Special:MyLanguage/Documents/FAQ#UsingCore|add]]
 
|-
 
|-
| ''Version:'' || 0.9 Work, 0.8 LTS (2012-2017)
+
| ''Version:'' || 1 Work, 0.9 LTS (2018-...), 0.8 Old LTS (2012-2018)
 
|-
 
|-
 
| ''Functions and demands:'' || [[Special:MyLanguage/Functions and demands|see the detailed information]]
 
| ''Functions and demands:'' || [[Special:MyLanguage/Functions and demands|see the detailed information]]
 +
|-
 +
| ''Contacts:'' ||
 +
* EMail: [mailto:oscada@oscada.org oscada@oscada.org]
 +
* Jabber (JID): oscada@oscada.org
 
|-
 
|-
| ''Resources:'' || '''WWW:''' http://oscada.org<br />'''Wiki:''' http://oscada.org/wiki<br />'''Forum:''' http://oscada.org/en/forum<br />'''Files:''' http://ftp.oscada.org/OpenSCADA, ftp://ftp.oscada.org/OpenSCADA, http://oscada.org/oscadaArch<br />'''Repository:''' svn co [http://oscada.org/websvn/listing.php?repname=OpenSCADA svn://oscada.org/trunk/OpenSCADA] (Subversion)<br />'''Mail:''' [mailto:oscada@oscada.org oscada@oscada.org]<br />'''JID:''' oscada@oscada.org
+
| colspan="2" align="center" | '''''Resources'''''
 +
|-
 +
| ''WWW:'' ||
 +
* Main site: http://oscada.org
 +
* Knowledge base (Wiki): http://oscada.org/wiki
 +
* Forum: http://oscada.org/en/forum
 +
|-
 +
| ''Files:'' ||
 +
* HTTP: http://ftp.oscada.org/OpenSCADA, http://oscada.org/oscadaArch
 +
* FTP: ftp://ftp.oscada.org/OpenSCADA
 +
|-
 +
| ''Repository:'' ||
 +
* Source texts (Subversion):
 +
** SVN: {{InLineCode|<nowiki>svn co svn://oscada.org/trunk/OpenSCADA</nowiki>}}
 +
** HTTP: {{InLineCode|<nowiki>svn co http://oscada.org/svn/trunk/OpenSCADA/</nowiki>}}
 +
** [http://oscada.org/svn/trunk/OpenSCADA/ File System]
 +
** [http://oscada.org/websvn/listing.php?repname=OpenSCADA WebSVN]
 +
* Packages:
 +
** LTS branch: http://ftp.oscada.org/OpenSCADA/LTS/, ftp://ftp.oscada.org/OpenSCADA/LTS/
 +
** Work branch: http://ftp.oscada.org/OpenSCADA/Work/, ftp://ftp.oscada.org/OpenSCADA/Work/
 +
|-
 +
| ''Demo:'' ||
 +
* Web interfaces: [http://oscada.org:10002 AGLKS], [http://oscada.org:10003 Boiler]
 +
* Live disks (Linux of automation): [[Special:MyLanguage/Documents/How_to/Live_disk|get from the document]]
 
|}
 
|}
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.
+
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.
 
</translate>
 
</translate>
 
__TOC__
 
__TOC__
 
<translate>
 
<translate>
 
== Prerequisites == <!--T:2-->
 
== Prerequisites == <!--T:2-->
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.
+
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.
  
 
<!--T:3-->
 
<!--T:3-->
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.
+
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.
  
 
<!--T:4-->
 
<!--T:4-->
In fact, there are the following solutions to the problem:
+
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 full or partial loss of independence.
+
* 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 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:
+
* 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;
 
** 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;
 
** 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;
 
** 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;
 
** 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.
+
** and other: psychological, economic, moral and legal advantages of open systems.
  
 
<!--T:5-->
 
<!--T:5-->
 
To jointly implement the third option, the OpenSCADA project was launched!
 
To jointly implement the third option, the OpenSCADA project was launched!
  
== Targets of the project == <!--T:6-->
+
== Targets of the project — reality == <!--T:6-->
 
Main purposes, which are pursued with the project, are:
 
Main purposes, which are pursued with the project, are:
* openness — mostly [[wikipedia:GNU General Public License|GPL]] v.2;  
+
* '''openness''' — mostly [[wikipedia:GNU General Public License|GPL]] v.2;  
* scalability, flexibility, extensibility — modularity and internal dynamism;
+
* '''scalability, flexibility, extensibility''' — modularity, multithreading and internal dynamism;
* executive redundancy — reservation;
+
* '''executive redundancy''' — reservation;
* accessibility — opened source texts; automatic building for archives, packages, live disks, ...; multilingual;
+
* '''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;
+
* '''reliability''' — practical application, quick problems solving;
* security — permissions distribution, SSL;
+
* '''security''' — permissions distribution, SSL;
* multiplatform — x86_32, x86_64, ARM, Web, Android;
+
* '''multiplatform''' — x86_32, x86_64, ARM, Web, Android, QNX;
* united, unified, user-friendly and advanced user interface — Qt, Web, transparent and multi-level remote control;
+
* '''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.
+
* '''wide range of the data sources''' — unified ones, DAQ boards and low-level buses, created into the environment of OpenSCADA.
  
== Policy of development, license == <!--T:7-->
+
== Policy of the development, license == <!--T:7-->
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.
+
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.
  
== Areas of application == <!--T:8-->
+
== {{Anch|Using|Areas of application}} == <!--T:8-->
The system OpenSCADA is intended [http://wiki.oscada.org/HomePageEn/Using to perform as ordinary functions of SCADA systems] or telemechanics, and to use in adjacent areas of information technologies:
+
OpenSCADA is intended [[Special:MyLanguage/Using|to perform as ordinary functions of SCADA systems]] or telemechanics, and to use in adjacent areas of information technologies:
* [http://wiki.oscada.org/HomePageEn/Using/ModelAGLKS dynamic models, imitators and training apparatus] of technological processes into the real-time;
+
* [[Special:MyLanguage/Using/Model_AGLKS|dynamic models, imitators and training apparatus]] of technological processes into the real-time;
* [http://wiki.oscada.org/HomePageEn/Using/PLC embedded and mobile systems] — environments of execution Programming Logical Controllers (PLC), robots, ...;
+
* [[Special:MyLanguage/Using/Vacuum_processing_unit|machine tools and industrial robots]];
* [http://wiki.oscada.org/HomePageEn/Server server equipment monitoring];
+
* [[Special:MyLanguage/Using/Yaroslavskij_broiler|agricultural dispatching and control systems, poultry-yards]];
* [http://wiki.oscada.org/HomePageEn/Using/SmartHouse smart houses and home automation].
+
* [[Special:MyLanguage/Using#Devices|embedded and mobile systems]] — environments of execution Programming Logical Controllers (PLC), robots, ...;
 +
* [[Special:MyLanguage/Sub-projects/Server|server equipment monitoring]];
 +
* [[Special:MyLanguage/Using/HouseSpirit|smart houses and home automation]].
  
 
<!--T:9-->
 
<!--T:9-->
 
With some limits and modifications, mostly into the internal environment, OpenSCADA can be used into that areas:
 
With some limits and modifications, mostly into the internal environment, OpenSCADA can be used into that areas:
* trading systems;
 
 
* enterprise resources management (ERP);
 
* enterprise resources management (ERP);
* billing systems;
+
* Geo-location and location tracking;
* accounting and bookkeeping.
+
* trading systems;
 +
* medical diagnostic systems;
 +
* accounting and bookkeeping;
 +
* billing systems.
  
 
<!--T:10-->
 
<!--T:10-->
Line 81: Line 110:
  
 
<!--T:11-->
 
<!--T:11-->
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:
+
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:
 
* reliability;
 
* reliability;
 
* safety;
 
* safety;
Line 89: Line 118:
  
 
<!--T:12-->
 
<!--T:12-->
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.
+
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.
  
 
<!--T:13-->
 
<!--T:13-->
Actual and detailed functionality of the system OpenSCADA you can see on [[Special:MyLanguage/Functions and demands|the page]]
+
The actual and detailed functionality of OpenSCADA you can look at [[Special:MyLanguage/Functions and demands|the functions page]].
  
== Architecture == <!--T:14-->
+
== [[Special:MyLanguage/Documents/Program_manual#ArchFunc|Architecture]] == <!--T:14-->
The Heart of the system is the modular kernel.
+
The Heart of the program is the modular core.
  
 
<!--T:15-->
 
<!--T:15-->
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.
+
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.
  
 
<!--T:16-->
 
<!--T:16-->
Line 104: Line 133:
  
 
<!--T:17-->
 
<!--T:17-->
Architecturally, the system OpenSCADA consists of subsystems:
+
Architecturally, OpenSCADA consists of the subsystems:
* ''Security subsystem''. Contains lists of users and groups of users, provides check of the rights of access to the system elements, etc.
+
* ''Security'' — contains lists of users and groups of users, provides check of the rights of access to the program elements, etc.
* ''Modular DBs subsystem''. Provides access to databases.
+
* ''Modules Scheduler'' — provides the control over modules.
* ''Modular transports subsystem''. Provides communications with an external environment by means of various communication interfaces.
+
* ''Data Bases (modular)'' — provides access to databases.
* ''Modular transport's protocols subsystem''. It is closely connected with the transports subsystem and provides support of various exchanging protocols between external systems.
+
* ''Transports (modular)'' — provides communications with external environment by means of various communication interfaces.
* ''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...).
+
* ''Transport Protocols (modular)'' closely connected with the transports subsystem and provides support of various exchanging protocols between external systems.
* ''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.
+
* ''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), ... .
* ''Modular user interfaces subsystem''. Contains functions of the user interfaces.
+
* ''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.
* ''Control for modules subsystem''. Provides the control over modules.
+
* ''User Interfaces (modular)'' — contains functions of the user interfaces.
* ''Modular special subsystem''. Contains functions not entered into other subsystems. Currently, these functions also include testing features.
+
* ''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.
  
 
<!--T:18-->
 
<!--T:18-->
Line 119: Line 148:
  
 
<!--T:19-->
 
<!--T:19-->
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.
+
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.
  
 
<!--T:20-->
 
<!--T:20-->
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.
+
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.
  
== Distribution == <!--T:21-->
+
== [http://oscada.org/en/main/download/ Distribution] == <!--T:21-->
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 http://oscada.org.  
+
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.
  
== Support and services == <!--T:22-->
+
== [http://oscada.org/en/services/ Support and services] == <!--T:22-->
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.
+
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.
  
== The project assistance == <!--T:23-->
+
== [[Special:MyLanguage/Works#participation|Project assistance and participation]] == <!--T:23-->
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!
+
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!
 
</translate>
 
</translate>

Latest revision as of 19:33, 2 April 2023

Other languages:
English • ‎mRussian • ‎Українська
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
Contacts:
Resources
WWW:
Files:
Repository:
Demo:

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.

1 Prerequisites

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:

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:

  • reliability;
  • safety;
  • flexibility/scalability;
  • availability;
  • 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.

5 Architecture

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.

6 Distribution

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.

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, 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.

8 Project assistance and participation

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!