The page contains information that allows you to get a general view of the features that OpenSCADA can perform at this time. The functions are grouped according to application areas. To get a general picture there also includes scheduled functions or functions that are currently being implemented. The page also contains the requirements of OpenSCADA for its execution and building.
Separating to the employment areas was made to simplify perception of the program functionality in light of traditional area of the project OpenSCADA — automation of technological processes. But also there possible mixed and specialized configuring of the program for real-time data operation, for example into areas: ERP, Billing, Smart House and etc.
Visual Control Area (VCA) of the end user | |
---|---|
Remote visualization server grounded on the visual control engine of VCA — local starting of the module UI.Vision, connected to the visualization server. | Module of the VCA engine VCAEngine |
Remote WEB interface | Web-browser Module of the visualizer WebVision Module of the VCA engine VCAEngine |
Simple remote Web-interfaces of the user | Web-browser Module WebUser |
Providing data to higher level systems | |
By interfaces | |
Serial interface: RS232, RS485, Modem, ... | Module Serial |
IP-networks sockets and network level protocols TCP, UDP and Unix | Module Sockets |
Security sockets layer (SSL) | Module SSL |
By protocols | |
Self protocol of OpenSCADA | Module SelfSystem |
ModBus family protocols: TCP, RTU and ASCII | Module ModBus |
"OPC-UA" protocol | Module OPC-UA |
Simple specialized protocols developed by the user protocol | Module UserProtocol |
Through DBMS | |
MySQL | Module MySQL |
PostgreSQL | Module PostgreSQL |
FireBird | Module FireBird |
DBGate — DB of the another OpenSCADA station | Module DBGate |
ODBC — DBMS for which there is an ODBC driver | Module ODBC (not finished) |
Configuration and development (SCADA programmer and administrator) | |
Remotely, through WEB-interface | Web-browser Module WebCfgD or WebCfg |
Remotely, from the configuration station by the control interface of OpenSCADA | Module SelfSystem |
Languages of the user programming and calculation | |
JavaLikeCalc — a high level language similar to JavaScript and Java | Module JavaLikeCalc |
Block Schemes | Module BlockCalc |
Storing station data | |
Configuration file | Core of OpenSCADA |
DB | |
SQLite | Module SQLite |
MySQL | Module MySQL |
PostgreSQL | Module PostgreSQL |
FireBird | Module FireBird |
DBGate — DB of the another OpenSCADA station | Module DBGate |
ODBC — DBMS for which there is an ODBC driver | Module ODBC (not finished) |
DBF | Module DBF |
Directories through LDAP | Module LDAP |
Acquisition and control of internal and external data (DAQ) | |
Different types of logical and physical sources that have data access utilities or accessible through simple and specialized network protocols. This is accomplished by writing a data acquisition procedure of the user protocol in the user programming language. Most known protocols implementing on the user protocols:
|
Module of the user programming language JavaLikeCalc Module LogicLev Module of the user protocol UserProtocol |
Formation of logical sources and derivative parameters structures, based on templates of parameters and data of other sources | Module LogicLev |
Formation of logical sources using block diagrams | Module BlockCalc |
External servers and PLCs are built on OpenSCADA, possibly for duplication. | Module DAQGate |
Information about hardware and software platform | Module System |
Industrial controllers and other devices by the ModBus protocol | Module ModBus |
Industrial controllers by the DCON protocol | Module DCON |
Industrial controllers and other devices by the OPC-UA protocol | Module OPC-UA |
Industrial controllers and other devices by the MMS(IEC-9506) protocol | Module MMS |
Network devices and other sources by the SNMP protocol (Simple Network Management Protocol) | Module SNMP |
Industrial equipment of the firm ICP DAS, modules of the series: I7k, I8k, I87K and other on the ISA bus | Module ICP_DAS |
Industrial controllers of the firm Siemens of the series S7 | Module Siemens |
DAQ-boars on the buses ISA, PCI, PCMCIA and USB | Library Comedi Module Comedi |
Input channels of the sound controllers | Module SoundCard |
Automation of the "Big Dutchman" company | Module BFN |
Archiving-History | |
Message archives by various categories and levels | |
Files in the format of XML or plain text with packing the out-of-date archives | Module FSArch |
On tables of the archival DB of OpenSCADA | Module DBArch |
On the other, based on OpenSCADA, archiving server, may be remote | scheduled |
Value archives of the gathered data | |
Buffers in memory of a certain length | Core of OpenSCADA |
Files with double packing: consecutive and the standard archiver gzip | Module FSArch |
On tables of the archival DB of OpenSCADA | Module DBArch |
On the other, based on OpenSCADA, archiving server, may be remote | scheduled |
Visual Control Area (VCA) of the end user | |
---|---|
Local (fast) interface, based on the Qt library, with the ability to visualize the remote VCA engine — the visualization server | Module of the visualizer Vision Module of the VCA engine VCAEngine |
Remote WEB interface | Web-browser Module of the visualizer WebVision Module of the VCA engine VCAEngine |
Simple remote Web-interfaces of the user | Web-browser Module WebUser |
Configuration and development (SCADA programmer and administrator) | |
Local, via Qt-interface | Module QTCfg Module Vision |
Remotely, through WEB-interface | Web-browser Module WebCfgD or WebCfg |
Remotely, from the configuration station by the control interface of OpenSCADA | Module SelfSystem |
Languages of the user programming and calculation | |
JavaLikeCalc — a high level language similar to JavaScript and Java | Module JavaLikeCalc |
Block Schemes | Module BlockCalc |
Storing station data | |
Configuration file | Core of OpenSCADA |
DB | |
SQLite | Module SQLite |
MySQL | Module MySQL |
PostgreSQL | Module PostgreSQL |
FireBird | Module FireBird |
DBGate — DB of the another OpenSCADA station | Module DBGate |
ODBC — DBMS for which there is an ODBC driver | Module ODBC (not finished) |
DBF | Module DBF |
Directories through LDAP | Module LDAP |
Acquisition and control of internal and external data (DAQ) | |
External servers and PLCs are built on OpenSCADA, possibly for duplication. | Module DAQGate |
Industrial controllers and other devices by the OPC-UA protocol | Module OPC-UA |
Network devices and other sources by the SNMP protocol (Simple Network Management Protocol) | Module SNMP |
Archiving-History | |
Message archives by various categories and levels | |
Files in the format of XML or plain text with packing the out-of-date archives | Module FSArch |
On tables of the archival DB of OpenSCADA | Module DBArch |
On the other, based on OpenSCADA, archiving server, may be remote | scheduled |
Value archives of the gathered data | |
Buffers in memory of a certain length | Core of OpenSCADA |
Files with double packing: consecutive and the standard archiver gzip | Module FSArch |
On tables of the archival DB of OpenSCADA | Module DBArch |
On the other, based on OpenSCADA, archiving server, may be remote | scheduled |
Providing data to higher level systems | |
---|---|
By interfaces | |
Serial interface: RS232, RS485, Modem, ... | Module Serial |
IP-networks sockets and network level protocols TCP, UDP and Unix | Module Sockets |
Security sockets layer (SSL) | Module SSL |
By protocols | |
Self protocol of OpenSCADA | Module SelfSystem |
ModBus family protocols: TCP, RTU and ASCII | Module ModBus |
"OPC-UA" protocol | Module OPC-UA |
Simple specialized protocols developed by the user protocol | Module UserProtocol |
Through DBMS | |
MySQL | Module MySQL |
PostgreSQL | Module PostgreSQL |
FireBird | Module FireBird |
DBGate — DB of the another OpenSCADA station | Module DBGate |
ODBC — DBMS for which there is an ODBC driver | Module ODBC (not finished) |
Configuration and development (SCADA programmer and administrator) | |
Remotely, through WEB-interface | Web-browser Module WebCfgD or WebCfg |
Remotely, from the configuration station by the control interface of OpenSCADA | Module SelfSystem |
Languages of the user programming and calculation | |
JavaLikeCalc — a high level language similar to JavaScript and Java | Module JavaLikeCalc |
Block Schemes | Module BlockCalc |
Storing station data | |
Configuration file | Core of OpenSCADA |
DB | |
SQLite | Module SQLite |
MySQL | Module MySQL |
PostgreSQL | Module PostgreSQL |
FireBird | Module FireBird |
DBGate — DB of the another OpenSCADA station | Module DBGate |
ODBC — DBMS for which there is an ODBC driver | Module ODBC (not finished) |
DBF | Module DBF |
Directories through LDAP | Module LDAP |
Acquisition and control of internal and external data (DAQ) | |
Different types of logical and physical sources that have data access utilities or accessible through simple and specialized network protocols. This is accomplished by writing a data acquisition procedure of the user protocol in the user programming language. Most known protocols implementing on the user protocols:
|
Module of the user programming language JavaLikeCalc Module LogicLev Module of the user protocol UserProtocol |
Formation of logical sources and derivative parameters structures, based on templates of parameters and data of other sources | Module LogicLev |
Formation of logical sources using block diagrams | Module BlockCalc |
External servers and PLCs are built on OpenSCADA, possibly for duplication. | Module DAQGate |
Information about hardware and software platform | Module System |
Industrial controllers and other devices by the ModBus protocol | Module ModBus |
Industrial controllers by the DCON protocol | Module DCON |
Industrial controllers and other devices by the OPC-UA protocol | Module OPC-UA |
Industrial controllers and other devices by the MMS(IEC-9506) protocol | Module MMS |
Network devices and other sources by the SNMP protocol (Simple Network Management Protocol) | Module SNMP |
Industrial equipment of the firm ICP DAS, modules of the series: I7k, I8k, I87K and other on the ISA bus | Module ICP_DAS |
Industrial controllers of the firm Siemens of the series S7 | Module Siemens |
DAQ-boars of Diamond Systems | Module DiamondBoards |
DAQ-boars on the buses ISA, PCI, PCMCIA and USB | Library Comedi Module Comedi |
Input channels of the sound controllers | Module SoundCard |
Automation of the "Big Dutchman" company | Module BFN |
Discrete inputs/outputs of general purpose of different single-board computers | Module GPIO |
Archiving-History | |
Message archives by various categories and levels | |
Files in the format of XML or plain text with packing the out-of-date archives | Module FSArch |
On tables of the archival DB of OpenSCADA | Module DBArch |
On the other, based on OpenSCADA, archiving server, may be remote | scheduled |
Value archives of the gathered data | |
Buffers in memory of a certain length | Core of OpenSCADA |
Files with double packing: consecutive and the standard archiver gzip | Module FSArch |
On tables of the archival DB of OpenSCADA | Module DBArch |
On the other, based on OpenSCADA, archiving server, may be remote | scheduled |
Due implementation of the protocol OPC-UA into agent mode, OpenSCADA can provide a popular function of the OPC-server to client's protocols, which supports and direct implemented into OpenSCADA. The function common uses on platform MS Windows®, and many SCADA-systems on the platform work exclusively with OPC—servers, as the data sources. Thus, OpenSCADA can act as an universal OPC-server on Linux platform (Fig.2).
In plans. With adapting OpenSCADA to work on MS Windows® platform and implementing the work with OPC-DA by system DCOM, there will appear possibility for applying OpenSCADA into the gate OPC-DA -> OPC-UA role, which means free integration of old systems to the new or accumulation systems.
Acquisition and control of internal and external data (DAQ) | |
---|---|
Different types of logical and physical sources that have data access utilities or accessible through simple and specialized network protocols. This is accomplished by writing a data acquisition procedure of the user protocol in the user programming language | Module of the user programming language JavaLikeCalc Module LogicLev Module of the user protocol UserProtocol |
Formation of logical sources and derivative parameters structures, based on templates of parameters and data of other sources | Module LogicLev |
Formation of logical sources using block diagrams | Module BlockCalc |
External servers and PLCs are built on OpenSCADA, possibly for duplication. | Module DAQGate |
Information about hardware and software platform | Module System |
Industrial controllers and other devices by the ModBus protocol | Module ModBus |
Industrial controllers by the DCON protocol | Module DCON |
Industrial controllers and other devices by the OPC-UA protocol | Module OPC-UA |
Industrial controllers and other devices by the MMS(IEC-9506) protocol | Module MMS |
Network devices and other sources by the SNMP protocol (Simple Network Management Protocol) | Module SNMP |
Industrial equipment of the firm ICP DAS, modules of the series: I7k, I8k, I87K and other on the ISA bus | Module ICP_DAS |
Industrial controllers of the firm Siemens of the series S7 | Module Siemens |
DAQ-boars of Diamond Systems | Module DiamondBoards |
DAQ-boars on the buses ISA, PCI, PCMCIA and USB | Library Comedi Module Comedi |
Input channels of the sound controllers | Module SoundCard |
Automation of the "Big Dutchman" company | Module BFN |
Discrete inputs/outputs of general purpose of different single-board computers | Module GPIO |
The hardware requirements of OpenSCADA for its execution in different roles are given in Table 1. The software requirements for execution OpenSCADA and its modules are presented in Table 2.
Table 1. The hardware requirements of OpenSCADA and it modules.
Role | Demands |
---|---|
SCADA server |
CPU: x86 (i586 and above), x86_64, ARM or MIPS, with frequency more to 500 MHz |
Station of the operator of the technological process, the dispatcher board, the monitoring panel, etc. |
CPU: x86 (i586 and above), x86_64 or ARM, with frequency more to 1 GHz |
Environment of execution of controllers (PLC) |
CPU: x86 (i586 and above), x86_64, ARM or MIPS, with frequency more to 133 MHz |
Table 2. Software requirements for running OpenSCADA and its modules.
Component | Description |
---|---|
Dependencies of the OpenSCADA core | |
OS Linux | Distribution kit of operating system Linux (Debian, Ubuntu, CentOs, SuSELinux, ...) |
"Standard libraries" | Standard set of libraries: GLibC (>= 2.3) or uCLibC (>= 0.9.32) and libstdc++ (>= 3.3). Certainly this already allowed into the installed distribution. A special demand is using native thread library NPTL, already used for all modern distributions of Linux. |
zlib | Compression library. |
libpcre | Library of work with regular expressions, compatible with Perl. |
libgd (opt: --enable-LibGD) | Graphical library GD version 2, preferably without XPM support (X-server library dependency excluded) and FontConfig support. |
DB.SQLite module | |
libsqlite3 | Library for access to embedded DB SQLite version 3. |
DB.MySQL module | |
libMySQL or libMariaDB | Library for access to MySQL related DBMS. |
DB.PostgreSQL module | |
libpq | Library for access to PostgreSQL DBMS version more 8.3.0. |
DB.FireBird module | |
firebird | FireBird DBMS version 2 or 3. Often it is absent in distribution kits of Linux and demands individual loading from an official site (http://www.firebirdsql.org)! |
DB.ODBC module | |
iodbc | iODBC Driver Manager library. |
DB.LDAP module | |
libldap | OpenLDAP library. |
DAQ.System module | |
libsensors (opt: auto) | Hardware sensors' library versions 2 and 3. |
DAQ.OPC_UA module | |
libssl | Library for codifying OpenSSL. |
DAQ.SNMP module | |
libsnmp | Library for access to data of network devices under SNMP protocol. |
DAQ.Comedi module | |
libcomedi | Library of realizing support for DAQ-boards different manufacturer on boards ISA, PCI, PCMCIA and USB. |
DAQ.SoundCard module | |
libportaudio | Multiplatform library for access to sound controller version 19 and higher (not 18). |
Transport.SSL module | |
libssl | Library for codifying OpenSSL. |
UI.QTStarter module | |
libQt4 (libQtGui) or libQt5 (libQt5Widgets,libQt5PrintSupport) or libQt6 (libQt6Widgets,libQt6PrintSupport) |
Library Qt version 4.3 and higher or 5.1 and higher or 6.1 and higher for construction of user graphical interfaces. |
libQtSensors or libQt5Sensors or libQt6Sensors (opt: auto) |
Library of the Qt sensors. |
UI.QTCfg module | |
libQt4 (libQtGui) or libQt5 (libQt5Widgets,libQt5PrintSupport) or libQt6 (libQt6Widgets,libQt6PrintSupport) |
Library Qt version 4.3 and higher or 5.1 and higher or 6.1 and higher for construction of user graphical interfaces. |
UI.Vision module | |
libQt4 (libQtGui) or libQt5 (libQt5Widgets,libQt5PrintSupport) or libQt6 (libQt6Widgets,libQt6PrintSupport) |
Library Qt version 4.3 and higher or 5.1 and higher or 6.1 and higher for construction of user graphical interfaces. |
libQtWebKit (Qt4) or qtwebengine5, libqt5webkit5 (Qt5) or qtwebengine6 (Qt6) (opt: auto) |
Library of the Web-rendering engine. |
libphonon (Qt4) or qtmultimedia5, libphonon4qt5 (Qt5) or qtmultimedia6 (Qt6) (opt: auto) |
Library of playing the full formatted video and audio. |
libfftw3 (opt: auto) | Library for fast Fourie transfer of signals. |
UI.WebCfgD module | |
libgd (opt: --enable-LibGD) | Graphical library GD version 2, preferably without XPM support (X-server library dependency excluded) and FontConfig support. |
UI.WebVision module | |
libgd | Graphical library GD version 2, preferably without XPM support (X-server library dependency excluded) and FontConfig support. |
libfftw3 (opt: auto) | Library for fast Fourie transfer of signals. |
Special.FLibSYS module | |
libssl (opt: auto) | Library for codifying OpenSSL. |
libfftw3 (opt: auto) | Library for fast Fourie transfer of signals. |
* "opt: auto" — involves disabling the use of the library during building if it is not present.
The dependencies of OpenSCADA to build its core and modules are summarized in the table below.
Table 3. Dependencies to build OpenSCADA and its modules.
Component | Description |
---|---|
The general requirements of OpenSCADA building | |
OS Linux | Distribution kit of operating system Linux (Debian, Ubuntu, CentOs, SuSELinux, ...) |
g++ | Compiler of language C++ version 3.3 and more from a collection of compilers GCC, including library GLibC (>=2.3), uCLibC (>= 0.9.32) or Android BioniC. |
autotools (autoconf, automake, libtool, pkg-config) | Tools to form a building environment of OpenSCADA. They are necessary only in the case of changing the building environment of OpenSCADA, for example at addition a new module or changing fixed parameters of the building. Automake >= 1.9. |
gettext | A group of utilities for preparation and compilations of translations of the interface of programs on various languages in conformity with the internationalization standard I18N. |
sqlite3 | Control utility for DB SQLite3 files management. |
zlib (devel) | Compression library, a package for development. |
libpcre (devel) | Library of work with regular expressions, compatible with Perl, a package for development. |
libgd (devel, opt: --enable-LibGD) | Graphical library GD version 2, a package for development, preferably without XPM support (X-server library dependency excluded) and FontConfig support. It is used for construction of trends and other images in PNG, GIF and JPEG. |
DB.SQLite module | |
libsqlite3 (devel) | Library for access to built in DB SQLite version 3, a package for development. |
DB.MySQL module | |
libMySQL or libMariaDB (devel) | Library for access to MySQL related DBMS, a package for development on language C. |
DB.PostgreSQL module | |
libpq (devel) | Library for access to PostgreSQL DBMS version more 8.3.0, a package for development. |
DB.FireBird module | |
firebird (devel) | FireBird DBMS version 2 or 3, a package for development. Often it is absent in distribution kits of Linux and demands individual loading from an official site (http://www.firebirdsql.org)! |
DB.ODBC module | |
iodbc (devel) | iODBC Driver Manager library, a package for development. |
DB.LDAP module | |
libldap (devel) | OpenLDAP library, a package for development. |
DAQ.JavaLikeCalc module | |
bison | The program for generation parsers on the basis of grammar of the language. |
DAQ.System module | |
libsensors (devel, opt: auto) | Hardware sensors' library versions 2 and 3, a package for development. |
DAQ.OPC_UA module | |
libssl (devel) | Library for codifying OpenSSL, a package for development. |
DAQ.SNMP module | |
libsnmp (devel) | Library for access to data of network devices under SNMP protocol, a package for development. |
DAQ.Comedi module | |
libcomedi (devel) | Library of realizing support for DAQ-boards different manufacturer on buses ISA, PCI, PCMCIA and USB, a package for development. |
DAQ.SoundCard module | |
libportaudio (devel) | Multiplatform library for access to sound controller, a package for development version 19 and higher (not 18). |
Transport.SSL module | |
libssl (devel) | Library for codifying OpenSSL, a package for development. |
UI.QTStarter module | |
libQt4 or libQt5 or libQt6 (devel) |
Library Qt version 4.3 and higher or 5.1 and higher or 6.1 and higher for construction of user graphic interfaces, a package for development. |
libQtSensors or libQt5Sensors or libQt6Sensors (devel, opt: auto) |
Library of the Qt sensors, a package for development. |
UI.QTCfg module | |
libQt4 or libQt5 or libQt6 (devel) |
Library Qt version 4.3 and higher or 5.1 and higher or 6.1 and higher for construction of user graphic interfaces, a package for development. |
UI.Vision module | |
libQt4 or libQt5 or libQt6 (devel) |
Library Qt version 4.3 and higher or 5.1 and higher or 6.1 and higher for construction of user graphic interfaces, a package for development. |
libQtWebKit (Qt4) or qtwebengine5, libqt5webkit5 (Qt5) or qtwebengine6 (Qt6) (devel, opt: auto) |
Library of the Web-rendering engine, a package for development. |
libphonon (Qt4) or qtmultimedia5, libphonon4qt5 (Qt5) or qtmultimedia6 (Qt6) (devel, opt: auto) |
Library of playing the full formatted video and audio, a package for development. |
libfftw3 (devel, opt: auto) | Library for fast Fourie transfer of signals, a package for development. |
UI.WebCfgD module | |
libgd (devel, opt: --enable-LibGD) | Graphical library GD version 2, a package for development, preferably without XPM support (X-server library dependency excluded) and FontConfig support. It is used for construction of trends and other images in PNG, GIF and JPEG. |
UI.WebVision module | |
libgd (devel) | Graphical library GD version 2, a package for development, preferably without XPM support (X-server library dependency excluded) and FontConfig support. It is used for construction of trends and other images in PNG, GIF and JPEG. |
libfftw3 (devel, opt: auto) | Library for fast Fourie transfer of signals, package for development. |
Special.FLibSYS module | |
libssl (devel, opt: auto) | Library for codifying OpenSSL, a package for development. |
libfftw3 (devel, opt: auto) | Library for fast Fourie transfer of signals, package for development. |
* "opt: auto" — provides for disable of using the library at build time on it absence.
Common productivity of the direct calculations, calculations in the Java-like language and complex calculations of the simulators on different hardware and software platforms.
Memory consumption, generic parameters on the project "AGLKS":
Levels of the measuring | Debian 9 X86_64, MB | Debian 9 686, MB | Debian 8 ARMHF (ARMv7), MB |
---|---|---|---|
2019.02.01: OpenSCADA 1+r2600 | |||
1. Executing of the simulator and archiving | 96 | 71 | 64 |
2. Loading for the VCA projects | 147 | 104 | 95 |
3. Starting a session of the project "AGLKS" (as a server of visualization) | 152 | 108 | 97 |
3.1. Starting a session of the project "AGLKS" from UI.Vision, and for the first mnemonic > graph cadre | 168 > 175 | 121 > 126 | 106 > 109 |
3.2. Starting a session of the project "AGLKS" from UI.WebVision, and for the first mnemonic > graph cadre | 159 > 167 | 113 > 125 | 100 > 106 |
Big and complex projects:
Of OpenSCADA components:
Acceptation tests of the OpenSCADA releases (LTS):
Functions_and_demands/en - GFDL | December 2024 | OpenSCADA 1+r3000 |