{json:scada}
A portable and scalable SCADA/IIoT-I4.0 platform centered on the MongoDB database server.
Mission Statement
To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4.0 platform built by leveraging mainstream open-source IT tools.
Screenshots
Major features
- Standard IT tools applied to SCADA/IoT (MongoDB, PostgreSQL/TimescaleDB, Node.js, C#, Golang, Grafana, etc.).
- MongoDB as the real-time core database, persistence layer, config store, SOE historian.
- Event-based realtime async data processing with MongoDB Change Streams.
- Portability and modular interoperability over Linux, Windows, Mac OSX, x86/64, ARM.
- Windows installer available in the releases section.
- Unlimited tags, servers, and users.
- Horizontal scalability, from a single computer to big clusters (MongoDB-sharding), Docker containers, VMs, Kubernetes, cloud, or hybrid deployments.
- Modular distributed architecture. Lightweight redundant data acquisition nodes can connect securely over TLS to the database server. E.g. a Raspberry PI can be a data acquisition node.
- Extensibility of the core data model (MongoDB: NoSQL/schema-less).
- HTML5 Web interface. UTF-8/I18N. Mobile access. Web-based configuration management.
- Role-based access control (RBAC).
- Various high-quality protocol drivers.
- Integration with MQTT brokers (compatibility with Sparkplug B).
- Live point configuration updates.
- Inkscape-based SVG synoptic display editor.
- PostgreSQL/TimescaleDB historian integrated with Grafana for easy creation of dashboards.
- Easy development of custom applications with modern stacks like MEAN/MERN, etc. Extensive use of JSON from bottom up.
- Leverage a huge ecosystem of MongoDB/PostgreSQL tools, community, services, etc.
Use cases
- Power/Oil/Gas/Manufacturing/etc Local Station HMI.
- SCADA Protocol Gateway.
- SCADA Control Centers.
- SCADA/IIoT Historian.
- Intranet/Internet HTTPS Gateway - Visualization Server.
- Multilevel Systems Integration (SCADA/IIoT/ERP/MES/PLC).
- Global-Level/Cloud SCADA Systems Integration.
- Edge processing.
- Data concentrator for Big Data / ML processing.
- Digital Transformation, Industry 4.0 enabler.
Architecture
Documentation
- Install Guide
- Windows installer
- Docker Demo
- Schema Documentation
- Config File
- SVG Synoptic Display Editor
- IEC60870-5-104 Server Driver
- IEC60870-5-104 Client Driver
- IEC60870-5-101 Server Driver
- IEC60870-5-101 Client Driver
- DNP3 Client Driver
- Telegraf Listener Driver
- MQTT Sparkplug-B Client Driver
- OPC-UA Client Driver
- OPC-UA Server Driver
- CIP Ethernet/IP PLCTags Client Driver
- I104M Client Driver
- Calculations
- Change Stream Data Processor
- Custom Data Processor
- Realtime Data Server
- OSHMI2JSON Tool
- Report Generators
- SAGE-web Displays
Protocols Roadmap
- IEC 60870-5-104 Server TCP/TLS
- IEC 60870-5-104 Client TCP/TLS
- IEC 60870-5-101 Server (Serial, TCP)
- IEC 60870-5-101 Client (Serial, TCP)
- IEC 60870-5-103 Client
- DNP3 Client (TCP, UDP, TLS, Serial) - Windows x64 only!
- DNP3 Server (TCP, UDP, TLS, Serial)
- MQTT/Sparkplug-B Client
- I104M (adapter for some OSHMI drivers)
- ICCP Client (via I104M)
- Telegraf Client (OPC-UA, MQTT, MODBUS, SNMP, ...)
- OPC UA Client
- OPC UA Server
- OPC UA Historical Data Server
- OPC DA Client
- Modbus Client
- IEC 61850 MMS Client
- IEC 61850 GOOSE Client
- CIP Ethernet/IP (libplctag, experimental)
- Siemens S7
- BACNET
Features Roadmap
- Web-based Viewers
- Web-based Configuration Manager
- Excel-based Configuration
- User auth/Role-based Access Control (RBAC)
- Inkscape-based SVG Synoptic Editor
- Compiled Calculations Engine
- Customizable Change-Stream Processor (for user implemented scripts)
- Low-latency/Interpreted Calculations Engine
- Basic Alarms Processor
- Advanced Alarms Processor
- PostgreSQL/TimescaleDB Historian
- Grafana Integration
- Grafana Alerting Integration (w/ Events Viewer)
- Windows Installer
- Online Demo
- Docker Demo (docker-compose.yaml scripts)
- Linux Image / VM
- Supervisor (Linux process manager) examples
- InfluxDB Integration
- Telegraf Integration
- Kafka Integration
- PowerBI Integration (via PostgreSQL connector)
- PowerBI Direct Integration
- NodeRed Integration
- Metabase Integration (via PostgreSQL/MongoDB connectors)
- Alerta Integration (https://alerta.io/)
- PLC4X Integration (https://plc4x.apache.org/)
- Managed Cloud Service
- SAGE (brazilian SCADA from CEPEL) web displays visualization
Online Demo (substations simulation)
This demo provides a public IEC 60870-5-104 server port on IP address 150.230.171.172:2404 (common address = 1) for testing.
The demo data is published as regular MQTT topics to the public broker mqtt://test.mosquitto.org:1883 (about 8600 topics in JsonScadaDemoVPS/# and ACME_Utility/#).
Data is also published as Sparkplug-B to mqtt://test.mosquitto.org:1883 (about 4300 device metrics in spBv1.0/Sparkplug B Devices/+/JSON-SCADA Server/#). Data/birth messages are compressed by Eclipse Tahu Javascript libs.