Skip to content

lvta0909/json-scada

 
 

Repository files navigation

JSON:SCADA Logo

{json:scada}

A portable and scalable SCADA/IoT platform centered on the MongoDB database server.

Mission Statement

To provide an easy to use, fully-featured, scalable, and portable SCADA/IoT system built by leveraging mainstream open-source IT tools.

Screenshots

screenshots

Major features and characteristics

  • 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.
  • Portability and interoperability over Linux, Windows, Mac OSX, x86/64, ARM.
  • Windows installer available in the releases section.
  • Horizontal scalability, from a single computer to big clusters (MongoDB-sharding), Docker containers, VMs, Kubernetes, cloud, or hybrid deployments.
  • Unlimited tags, servers, and users.
  • 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.
  • MongoDB Change Streams for realtime async database events processing.
  • HTML5 Web interface. UTF-8/I18N. Mobile access.
  • Web-based configuration management.
  • Role-based access control (RBAC).
  • Various high-quality protocol drivers.
  • Live point configuration updates.
  • Inkscape-based SVG synoptic display editor.
  • PostgreSQL/TimescaleDB historian integrated with Grafana for easy creation of dashboards.
  • Extensibility of data model (MongoDB: NoSQL/schema-less).
  • Development of custom applications with modern stacks like MEAN/MERN, etc.
  • Big data / ML capabilities through MongoDB Spark connector.
  • Access to the huge MongoDB and PostgreSQL ecosystem of tools, community, services, etc.
  • Easy to understand system with small code footprint for each independent module. Extensive use of JSON from bottom up.
  • Possibility of easy integration of new and custom protocol drivers developed with modern programming languages (just read/write to MongoDB).
  • Future-proof, vendor independence, flexibility, extensibility.
  • Reduced human costs for maintenance and development thanks to the employment of widely-used open-source IT technologies.

Use cases

  • Power/Oil/Gas/etc Local Station HMI.
  • Manufacturing Local HMI.
  • SCADA Protocol Gateway.
  • SCADA Control Center Full System.
  • SCADA/IoT Historian. MS Power BI integration.
  • Intranet/Internet HTTPS Gateway - Visualization Server.
  • Multilevel Systems Integrator (SCADA/IoT/ERP/MES/PLC).
  • Global-Level SCADA Systems Integration/Centralization.
  • Edge data processor.
  • Extensible Development Platform For Data Acquisition And Processing.
  • Data concentrator for Big Data / ML processing.

Architecture

architecture

Documentation

Protocols Roadmap

  • IEC 60870-5-104 Server TCP
  • IEC 60870-5-104 Server 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)
  • DNP3 Server (TCP, UDP, TLS, Serial)
  • I104M (adapter for some OSHMI drivers)
  • ICCP Client (via I104M)
  • Secure ICCP Client
  • OPC UA Client (experimental)
  • OPC UA Server
  • OPC DA Client
  • OPC DA Server
  • Modbus Client
  • MQTT
  • IEC 61850 MMS Client
  • IEC 61850 GOOSE Client
  • CIP Ethernet/IP (libplctag, experimental)
  • Siemens S7
  • BACNET
  • OPC UA Historical Data Server

Features Roadmap

  • Web-based Viewers
  • Web-based Configuration Manager
  • User auth/Role-based Access Control (RBAC)
  • Inkscape-based SVG Synoptic Editor
  • Compiled Calculations Engine
  • 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)
  • Dedicated Docker Containers
  • 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 connector)
  • Alerta Integration (https://alerta.io/)
  • PLC4X Integration (https://plc4x.apache.org/)
  • Managed Cloud Service

Contact

https://www.linkedin.com/in/ricardo-olsen/

About

A portable and scalable SCADA/IoT platform centered on the MongoDB database server.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 59.7%
  • C# 29.6%
  • HTML 5.5%
  • Vue 2.4%
  • Go 1.3%
  • CSS 0.5%
  • Other 1.0%