Weitere ähnliche Inhalte
Ähnlich wie Eclipse NeoSCADA 0.3 (20)
Kürzlich hochgeladen (20)
Eclipse NeoSCADA 0.3
- 3. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
What is SCADA?
SCADA (Supervisory Control
and Data Acquisition) is defined as
the monitoring and control of technichal
processes by means of a computer system
(translated definition from German wikipedia)
- 4. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
What is SCADA?
- 5. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
What is Eclipse NeoSCADA?
■ In short: Eclipse NeoSCADA is an implementation
of a SCADA system based on the Java platform
■ an open source SCADA platform
■ protocol implementations, server components, client
libraries, …
■ some utility projects
■ tooling
■ ESAC, configurator, ...
- 6. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Eclipse NeoSCADA – Goals
■ to provide a comprehensive, state of the art
SCADA system, built on modern technologies
and open to interface with as many other
systems as possible
■ allow easy integration between hardware (field
devices) and business applications (e.g. ERP)
- 8. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Features
■ Data Acquisition (DA)
■ Alarms & Events (AE)
■ Historical Data (HD)
■ Configuration (CA)
■ GUI/HMI (VI)
- 9. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Features
■ Data Acqusition (DA)
■ deals with »real-time« (not hard real-time!) data
■ handles single scalar values
■ Alarms & Events (AE)
■ handles process alarms, operator actions, responses
generated by the system, informational messages,
auditing messages
- 10. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Features
■ Historical Data (HD)
■ deals with recording values (provided by DA) and
archiving these for later retrieval
■ Configuration (CA)
■ handles creation of configurations for the server
components, reconfiguration of the running system
■ GUI/HMI (VI)
■ provides GUI components, based on Draw2D
- 11. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Features
■ central to all functions: DA (Data Access)
■ all other functionality is based on the values
provided by it
- 13. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Supported Protocols I
■ Modbus
■ Siemens S7
■ “exec” (shell script execution)
■ JDBC
■ REST
■ MQTT
■ A custom Arduino UDP protocol
- 14. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Supported Protocols II (through openSCADA)
■ OPC DA 2.0 (Utgard; can't be included with
Eclipse NeoSCADA because of licensing issues)
■ IEC 60870-5-104 (will be reintegrated with
Eclipse NeoSCADA in release 0.4 or 0.5)
■ SNMP
- 15. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Supported Protocols III (export)
■ Modbus
■ IEC 60870-5-104 (through openSCADA)
■ MQTT
■ REST
- 16. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
The path of a value from sensor to HMI
■ Modbus Driver (DA server interface)
■ Master Server (DA client + DA server interface)
■ GUI (DA client interface)
Pyranometer
Anemometer
Thermometer
Datalogger
calibrated temperature
register: 32001
calibrated solar
radiation
register:32003
calibrated wind velocity
register:32005
current
voltage
voltage
Eclipse SCADA
modbus driver
modbus
DataItem
register: 32001
→ meteo.temperature
DataItem
register:32003
→ meteo.glbsolrad
DataItem
register: 32005
→ meteo.windvelocity
openSCADA
master server
DataItemDataSource
meteo.temperature
→ MY.NS.MET.001.M8030.V.source
DataItemDataSource
meteo.glbsolrad
→ MY.NS.MET.001.M8031.V.source
DataItemDataSource
meteo.windvelocity
→ MY.NS.MET.001.M8032.V.source
da:ngp
MasterItem
MY.NS.MET.001.M8030.V.source
→ MY.NS.MET.001.M8030.V.master
MasterItem
MY.NS.MET.001.M8031.V.source
→ MY.NS.MET.001.M8031.V.master
MasterItem
MY.NS.MET.001.M8032.V.source
→ MY.NS.MET.001.M8032.V.master
DataSourceDataItem
MY.NS.MET.001.M8030.V.master
→ MY.NS.MET.001.M8030.V
DataSourceDataItem
MY.NS.MET.001.M8031.V.master
→ MY.NS.MET.001.M8031.V
DataSourceDataItem
MY.NS.MET.001.M8032.V.master
→ MY.NS.MET.001.M8032.V
da:ngp Client
DataItem
MY.NS.MET.001.M8030.V
DataItem
MY.NS.MET.001.M8031.V
DataItem
MY.NS.MET.001.M8032.V
MasterItem
MY.NS.MET.001.M8032.V.source
→ MY.NS.MET.001.M8032.V.master
Scaling
ManualOverride
Block
Scaling
Negate
Markers
Scaling
Scale
Round
Summary
LevelMonitor MY.NS.MET.001.M8032.V.master.monitor.level.hh→
LevelMonitor MY.NS.MET.001.M8032.V.master.monitor.level.ll→
LevelMonitor MY.NS.MET.001.M8032.V.master.monitor.level. ...→
BitMonitor MY.NS.MET.001.M8032.V.master.monitor.bit→
ListMonitor MY.NS.MET.001.M8032.V.master.monitor.list→
ScriptMonitor MY.NS.MET.001.M8032.V.master.monitor.script→
MasterItem Handlers
provide additional functionality to wrapped item
Monitors
operate on DataSources, creating alarms & events
Sensors Field Device Driver Master Server GUI
Devicespecificprotocol
EclipseSCADAprotocol
EclipseSCADAprotocol
- 17. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
The path of a value from sensor to HMI
■ A Driver talks to the field device in the protocol it understands
(for instance: Modbus) and converts it to the Eclipse SCADA
internal protocol “ngp”
■ A driver usually runs in its own process to allow a independent
restart if something goes wrong
Pyranometer
Anemometer
Thermometer
Datalogger
calibrated temperature
register: 32001
calibrated solar
radiation
register:32003
calibrated wind velocity
register:32005
current
voltage
voltage
Eclipse SCADA
modbus driver
modbus
DataItem
register: 32001
→ meteo.temperature
DataItem
register:32003
→ meteo.glbsolrad
DataItem
register: 32005
→ meteo.windvelocity
openSCA
master s
da:ngp
MasterItem
MY.NS.MET.001.M8
→ MY.NS.MET.001.M
Scaling
ManualOverride
Block
MasterItem Handler
provide additional fu
Sensors Field Device Driver Maste
Devicespecificprotocol
EclipseSCADAprotocol
- 18. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
The path of a value from sensor to HMI
■ The master server uses ngp to communicate with the driver
■ Within the master server the items are enriched with
additional functionality
■ The items are then exported via ngp again
erature
001
lar
03
elocity
05
Eclipse SCADA
modbus driver
modbus
DataItem
register: 32001
→ meteo.temperature
DataItem
register:32003
→ meteo.glbsolrad
DataItem
register: 32005
→ meteo.windvelocity
openSCADA
master server
DataItemDataSource
meteo.temperature
→ MY.NS.MET.001.M8030.V.source
DataItemDataSource
meteo.glbsolrad
→ MY.NS.MET.001.M8031.V.source
DataItemDataSource
meteo.windvelocity
→ MY.NS.MET.001.M8032.V.source
da:ngp
MasterItem
MY.NS.MET.001.M8030.V.source
→ MY.NS.MET.001.M8030.V.master
MasterItem
MY.NS.MET.001.M8031.V.source
→ MY.NS.MET.001.M8031.V.master
MasterItem
MY.NS.MET.001.M8032.V.source
→ MY.NS.MET.001.M8032.V.master
DataSourceDataItem
MY.NS.MET.001.M8030.V.master
→ MY.NS.MET.001.M8030.V
DataSourceDataItem
MY.NS.MET.001.M8031.V.master
→ MY.NS.MET.001.M8031.V
DataSourceDataItem
MY.NS.MET.001.M8032.V.master
→ MY.NS.MET.001.M8032.V
da:ngp Client
M
M
M
MasterItem
MY.NS.MET.001.M8032.V.source
→ MY.NS.MET.001.M8032.V.master
Scaling
ManualOverride
Block
Scaling
Negate
Markers
Scaling
Scale
Round
Summary
LevelMonitor MY.NS.MET.001.M8032.V.master.monitor.level.hh→
LevelMonitor MY.NS.MET.001.M8032.V.master.monitor.level.ll→
LevelMonitor MY.NS.MET.001.M8032.V.master.monitor.level. ...→
BitMonitor MY.NS.MET.001.M8032.V.master.monitor.bit→
ListMonitor MY.NS.MET.001.M8032.V.master.monitor.list→
ScriptMonitor MY.NS.MET.001.M8032.V.master.monitor.script→
MasterItem Handlers
provide additional functionality to wrapped item
Monitors
operate on DataSources, creating alarms & events
Driver Master Server GUI
Devicespecificprotocol
EclipseSCADAprotocol
EclipseSCADAprotocol
- 19. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
The path of a value from sensor to HMI
■ Any client connects via ngp to the master server
and gets notified about any change in the value
ce
ce
ce
MasterItem
MY.NS.MET.001.M8030.V.source
→ MY.NS.MET.001.M8030.V.master
MasterItem
MY.NS.MET.001.M8031.V.source
→ MY.NS.MET.001.M8031.V.master
MasterItem
MY.NS.MET.001.M8032.V.source
→ MY.NS.MET.001.M8032.V.master
DataSourceDataItem
MY.NS.MET.001.M8030.V.master
→ MY.NS.MET.001.M8030.V
DataSourceDataItem
MY.NS.MET.001.M8031.V.master
→ MY.NS.MET.001.M8031.V
DataSourceDataItem
MY.NS.MET.001.M8032.V.master
→ MY.NS.MET.001.M8032.V
da:ngp Client
DataItem
MY.NS.MET.001.M8030.V
DataItem
MY.NS.MET.001.M8031.V
DataItem
MY.NS.MET.001.M8032.V
Summary
LevelMonitor MY.NS.MET.001.M8032.V.master.monitor.level.hh→
LevelMonitor MY.NS.MET.001.M8032.V.master.monitor.level.ll→
LevelMonitor MY.NS.MET.001.M8032.V.master.monitor.level. ...→
BitMonitor MY.NS.MET.001.M8032.V.master.monitor.bit→
ListMonitor MY.NS.MET.001.M8032.V.master.monitor.list→
ScriptMonitor MY.NS.MET.001.M8032.V.master.monitor.script→
Monitors
operate on DataSources, creating alarms & events
GUI
EclipseSCADAprotocol
- 20. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
The Eclipse NeoSCADA Administration Client
the admin client (ESAC) –
a generic client to browse
and watch live values
(in driver or master server)
- 21. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
a da:ngp connection
Item Value
Attributes
- 23. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Alarms & Events (AE)
■ Alarms are realized through a state machine, we call it
“monitor”
■ Only current state
■ State change (might create) Event→
■ States:
■ OK NOT_OK + (ACK required / ACK not required)↔
■ Base Priorities:
■ OK, WARN, ALARM
■ Demotion:
■ ALARM WARN→
- 24. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Alarms & Events (AE)
■ Monitor Implementations:
■ Level Monitor (Min, LL, L, H, HH, Max), as local and
remote variant
■ Bit Monitor
■ List Monitor
■ Script Monitor
- 25. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Alarms & Events (AE)
■ Alarms (Monitor states) are transient
■ Events are stored permanently (in SQL Database)
■ Event has some common properties, and any
number of custom ones
■ Events are held in configurable buffer (pool) to
supply client immediately with latest ones
■ Past events can be queried using simple ldap like
syntax
- 26. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Alarms & Events (AE)
m
001
erature
m
003
olrad
m
005
elocity
openSCADA
master server
DataItemDataSource
meteo.temperature
→ MY.NS.MET.001.M8030.V.source
DataItemDataSource
meteo.glbsolrad
→ MY.NS.MET.001.M8031.V.source
DataItemDataSource
meteo.windvelocity
→ MY.NS.MET.001.M8032.V.source
da:ngp
MasterItem
MY.NS.MET.001.M8030.V.source
→ MY.NS.MET.001.M8030.V.master
MasterItem
MY.NS.MET.001.M8031.V.source
→ MY.NS.MET.001.M8031.V.master
MasterItem
MY.NS.MET.001.M8032.V.source
→ MY.NS.MET.001.M8032.V.master
DataSourceDataItem
MY.NS.MET.001.M8030.V.master
→ MY.NS.MET.001.M8030.V
DataSourceDataItem
MY.NS.MET.001.M8031.V.master
→ MY.NS.MET.001.M8031.V
DataSourceDataItem
MY.NS.MET.001.M8032.V.master
→ MY.NS.MET.001.M8032.V
da:ngp Client
M
M
M
MasterItem
MY.NS.MET.001.M8032.V.source
→ MY.NS.MET.001.M8032.V.master
Scaling
ManualOverride
Block
Scaling
Negate
Markers
Scaling
Scale
Round
Summary
LevelMonitor MY.NS.MET.001.M8032.V.master.monitor.level.hh→
LevelMonitor MY.NS.MET.001.M8032.V.master.monitor.level.ll→
LevelMonitor MY.NS.MET.001.M8032.V.master.monitor.level. ...→
BitMonitor MY.NS.MET.001.M8032.V.master.monitor.bit→
ListMonitor MY.NS.MET.001.M8032.V.master.monitor.list→
ScriptMonitor MY.NS.MET.001.M8032.V.master.monitor.script→
MasterItem Handlers
provide additional functionality to wrapped item
Monitors
operate on DataSources, creating alarms & events
Master Server GUI
EclipseSCADAprotocol
EclipseSCADAprotocol
- 28. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Eclipse NeoSCADA – Historical Data (HD)
■ Update on live values
■ Storage abstracted
■ At the moment a file system based storage is
available
■ Can keep actual values, without interpolation,
for some time
■ Comprehension after defined timespan
- 29. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
- 31. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Visual Interface
■ Declarative UI using EMF
■ Scriptable with Javascript
■ Only a few entry points to remember
(onUpdate, onInit, …)
■ Component based Symbol editing
■ Properties are propagated to the innermost
element
■ Simple but very flexible
- 32. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
- 33. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
- 34. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Visual Interface
■ Wizard which creates
a skeleton project
including maven pom
file for easy build
- 36. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Configuration & Deployment
■ Configuration framework based on EMF
■ Split between infrastructure model (nodes and services)
and component model (hierarchical representation for
the end user)
■ Configuration can be updated at runtime
■ Creation and deployment is separated
■ ESAC used for updating the configuration
■ Configuration changes can be minimized through applying
only diff!
- 37. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Configuration & Deployment
■ Create complete installable packages from IDE
■ Debian packages for Debian & Derivates
■ RPM packages for Redhat and SuSE
■ MSI files for Windows
■ Allows start of SCADA servers from IDE
- 38. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
- 40. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Other Interesting Features
■ Support of cryptographically signed user
actions (e.g. acknowledgement, setting manual
values, etc) using a PKI
■ Also supports user elevation
- 42. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
FAQ
■ Do you have a web interface?
■ We don't have a standard solution for a web interface yet.
Our HMIs are based on Eclipse RCP
■ Do you have support for OPC UA/IEC 62541?
■ Not yet, but the Eclipse Milo Project provides that
functionality and it is planned to be integrated in 0.5
■ Why don't you use MQTT natively?
■ A couple of features we support just can't be realized with
MQTT (e.g. our callback functionality)
- 44. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
A short History
■ started 2006 as openSCADA
■ main emphasis: connectivity to legacy
hardware
■ after that more and more functionality added
■ since then, most used part of the project by
developers: Utgard library, a platform agnostic
library to access OPC DA 2.0 servers
■ (not part of Eclipse NeoSCADA!)
- 45. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
A short History
■ June 2013
■ Eclipse SCADA proposed (based on openSCADA)
■ Juli 2013
■ IBH SYSTEMS GmbH becomes Eclipse foundation
member
■ September 2013
■ officially incubator project
- 46. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
A short History
■ April 2014
■ First official release 0.1.0
■ Finale of migration
■ Configuration
■ January 2015
■ 0.2.0 release
■ Much improved tooling (preview, servers within IDE)
■
- 47. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
A short History
■ April 2016
■ 0.3.0 released
■ Officially renamed to Eclipse NeoSCADA
■ Mostly small improvements in different areas
■ Improved REST API
■ Upgrade to Eclipse Mars
■ systemd Support
■ Dynamic Configuration through filesystem watcher
■ Memory/Performance Improvements in HMI
- 49. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Eclipse NeoSCADA Roadmap
■ Planned: from now on really do two releases
per year
■ 0.4 (3th quarter of 2016)
■ Move to Eclipse Neon & Java 8
■ 0.5 (1rd quarter of 2017)
■ Integrate Eclipse Milo (OPC UA)
■ Move IEC 60870-5-104 implementation from
openSCADA to Eclipse
- 52. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Glossary
■ Driver (DA)
■ a protocol adapter, converts device specific protocol
(for instance modbus) into the Eclipse NeoSCADA
protocol(s) (for instance ngp)
■ Tag, Item, Data Point, DataItem
■ a singular scalar value provided by a device or
server, identified by a name
- 53. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Glossary
■ Field Device
■ controls local operations such as opening and closing
valves and breakers, collecting data from sensor
systems (for instance a data logger or a PLC), speaks
some protocol
■ Master Server (DA, AE, [HD])
■ central server component, provides additional
functionality based on DataItems such as alarm→
generation
- 55. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Eclipse NeoSCADA – research & development
■ Some of the development of
Eclipse NeoSCADA was
supported through a funding
program by the Bavarian
government
■ http://www.vdivde-it.de/projekte/foerderprogramm-informations-und-kommunikationstechnik-bayern
- 57. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Eclipse NeoSCADA – support through:
■ IBH SYSTEMS GmbH
Agnes-Pockels-Bogen 1
80992 München
■ T: +49.89.189 17 49 0
F: +49.89.189 17 49 29
info@ibh-systems.com
http://ibh-systems.com
- 59. © 2016 by Jürgen Rose. This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
Credits
■ All company/product names and service marks may be trademarks or registered trademarks of
their respective companies
■ Trierites, »Nuclear Ship Savannah Nuclear Reactor Control Room Center and Left Panels« May 19,
2012 via , Wikimedia Commons, Creative Commons Attribution.
■ Stefan Kühn, »Schalenkreuzanemometer« May 13, 2004 via Wikimedia Commons, Creative
Commons Attribution.
■ Lumos3, »A Maximum Minimum thermometer« March 20, 2006 via Wikimedia Commons, Creative
Commons Attribution.
■ Avisaro AG, »Data logger Cube storing technical and sensor data« June 10, 2010 via Wikimedia
Commons, Creative Commons Attribution.
■ Arne Nordmann, » Illustration of a wind turbine.« February, 2007 via Wikimedia Commons,
Creative Commons Attribution.
■ RRZEicons »user, expert, workstation«, November 17, 2009 via Wikimedia Commons, Creative
Commons Attribution.
■ Harbin »BlankMap-World-v2.svg«, February 26, 2011 via Wikimedia Commons, Creative Commons
Attribution.