From OpenSCADAWiki
Revision as of 21:23, 15 June 2018 by RomanSavochenko (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Other languages:

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.

1 Areas of application OpenSCADA

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.

Fig.1. Roles of OpenSCADA.

1.1 Server of the SCADA system

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
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
ODBC — DBMS for which there is an ODBC driver Module ODBC (not finished)
DBF Module DBF
Directories through LDAP Module БД LDAP
Available on another OpenSCADA-based server scheduled
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:
  • Common services: SMS, SMTP, UPS.
  • Industrial automation: Elemer TM510x, EDWARDS TURBOMOLECULAR PUMPS (SCU750), Sycon Multi Drop Protocol, Power supply for turbomolecular pumps (TMP-xx03), Temperature measurement IT-3, IVE-452HS-02, OPTRIS CT/CTL, CTR 100-101, IEC-60870-104, Shark Slave Communication Protocol, DCON (example), OWEN (example).
  • Counters of the resources: Heat counter computer VKT7, Mercury 200, Mercury 230, Nik2303I.
  • Low level sensors and chips:
    • I2C: PCF8591, PCF8574, BMP180, BME280, DS3231, AT24CXX;
    • 1Wire Chips by the adapters DS9097 and DS9097U: DS1820, DS1820/DS18S20/DS1920, DS1822, DS2413, DS2408, DS2450, DS2438;
    • Low level devices by GPIO: DHT11,22 (DHT), 1602A(HD44780).
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

1.2 Station of the operator of technological process, the dispatcher board, the monitoring panel, etc.

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
ODBC — DBMS for which there is an ODBC driver Module ODBC (not finished)
DBF Module DBF
Directories through LDAP Module БД LDAP
Available on another OpenSCADA-based server scheduled
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

1.3 Environment of execution of the controllers (PLC)

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
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
ODBC — DBMS for which there is an ODBC driver Module ODBC (not finished)
DBF Module DBF
Directories through LDAP Module БД LDAP
Available on another OpenSCADA-based server scheduled
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:
  • Common services: SMS, SMTP, UPS.
  • Industrial automation: Elemer TM510x, EDWARDS TURBOMOLECULAR PUMPS (SCU750), Sycon Multi Drop Protocol, Power supply for turbomolecular pumps (TMP-xx03), Temperature measurement IT-3, IVE-452HS-02, OPTRIS CT/CTL, CTR 100-101, IEC-60870-104, Shark Slave Communication Protocol, DCON (example), OWEN (example).
  • Counters of the resources: Heat counter computer VKT7, Mercury 200, Mercury 230, Nik2303I.
  • Low level sensors and chips:
    • I2C: PCF8591, PCF8574, BMP180, BME280, DS3231, AT24CXX;
    • 1Wire Chips by the adapters DS9097 and DS9097U: DS1820, DS1820/DS18S20/DS1920, DS1822, DS2413, DS2408, DS2450, DS2438;
    • Low level devices by GPIO: DHT11,22 (DHT), 1602A(HD44780).
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

1.4 Universal OPC-UA server

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.

Fig.2. OpenSCADA role as OPC-UA server.
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

2 Requirements for OpenSCADA

2.1 Execution

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_32 (more than i586), x86_64 or ARM, with frequency more to 500 MHz
MEM: 128 MB
HDD: 10 GB include OS and space for archives

Station of the operator of the technological process, the dispatcher board, the monitoring panel, etc.

CPU: x86_32 (more than i586), x86_64 or ARM, with frequency more to 1 GHz
MEM: 512 MB
HDD: 4 GB include OS without any archive space

Environment of execution of controllers (PLC)

CPU: x86_32 (more than i586), x86_64 or ARM, with frequency more to 133 MHz
MEM: 32 MB
HDD: 32 MB include OS without any archive space

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 Library for access to MySQL DBMS.
DB.PostgreSQL module
libpq Library for access to PostgreSQL DBMS version more 8.3.0.
DB.FireBird module
FirebirdSS FireBird DBMS version 2. 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.
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)
Library Qt version 4.3 and higher or 5.1 and higher for construction of user graphical interfaces.
libQtSensors or libQt5Sensors (opt: auto) Library of the Qt sensors.
UI.QTCfg module
libQt4 (libQtGui) or
libQt5 (libQt5Widgets,libQt5PrintSupport)
Library Qt version 4.3 and higher or 5.1 and higher for construction of user graphical interfaces.
UI.Vision module
libQt4 (libQtGui) or
libQt5 (libQt5Widgets,libQt5PrintSupport)
Library Qt version 4.3 and higher or 5.1 and higher for construction of user graphical interfaces.
libQtWebKit or libqt5webkit5 (opt: auto) Library of Web-rendering engine WebKit.
libphonon or libphonon4qt5 (opt: auto) Library for full formatted video and audio playing.
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.

2.2 Building

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 (devel) Library for access to MySQL DBMS, a package for development on language C.
DB.PostgreSQL module
libpq Library for access to PostgreSQL DBMS version more 8.3.0, a package for development.
DB.FireBird module
FirebirdSS FireBird DBMS version 2, 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 iODBC Driver Manager 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 (devel) Library Qt version 4.3 and higher or 5.1 and higher for construction of user graphic interfaces, a package for development.
libQtSensors or libQt5Sensors (devel, opt: auto) Library of the Qt sensors, a package for development.
UI.QTCfg module
libQt4 or libQt5 (devel) Library Qt version 4.3 and higher or 5.1 and higher for construction of user graphic interfaces, a package for development.
UI.Vision module
libQt4 or libQt5 (devel) Library Qt version 4.3 and higher or 5.1 and higher for construction of user graphic interfaces, a package for development.
libQtWebKit or libqt5webkit5 (devel, opt: auto) Library of Web-rendering engine WebKit, a package for development.
libphonon or libphonon4qt5 (devel, opt: auto) Library for full formatted video and audio playing, 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.

3 Links