Menu

Tree [9b8231] master /
 History

HTTPS access


File Date Author Commit
 .github 2024-05-01 Ricardo Olsen Ricardo Olsen [8f53af] Update i104m-go.yml
 bin 2020-08-12 Ricardo Olsen Ricardo Olsen [2c50be] Bin folder added.
 compile-docker 2024-05-01 Ricardo Olsen Ricardo Olsen [e470c9] Build scripts updated for Go modules.
 conf 2021-02-25 Ricardo Olsen Ricardo Olsen [da28a7] Various updates in preparation for release 0.7.
 conf-templates 2024-05-16 Ricardo Olsen Ricardo Olsen [ac51a8] Version 0.32-alpha.
 demo-docker 2024-06-09 Ricardo Olsen Ricardo Olsen [d4c645] Create and fill mongodb timeseries 'hist' colle...
 docs 2024-06-11 Ricardo Olsen Ricardo Olsen [3e66ce] Added install script for RHEL9-aarch64(ARM64).
 mongo_seed 2024-06-09 Ricardo Olsen Ricardo Olsen [d4c645] Create and fill mongodb timeseries 'hist' colle...
 platform-linux 2024-05-21 Ricardo Olsen Ricardo Olsen [70cc83] Updated Linux build script.
 platform-mac 2024-05-19 Ricardo Olsen Ricardo Olsen [dc6de9] Added mongofw and mongowr processes.
 platform-rhel9 2024-06-11 Ricardo Olsen Ricardo Olsen [3e66ce] Added install script for RHEL9-aarch64(ARM64).
 platform-windows 2024-06-14 Ricardo Olsen Ricardo Olsen [9b8231] Version 0.35-alpha.
 sql 2024-06-11 Ricardo Olsen Ricardo Olsen [3e66ce] Added install script for RHEL9-aarch64(ARM64).
 src 2024-06-14 Ricardo Olsen Ricardo Olsen [9b8231] Version 0.35-alpha.
 .gitignore 2023-09-21 Ricardo Olsen Ricardo Olsen [a3f271] Add log.io service.
 CODE_OF_CONDUCT.md 2020-12-03 Ricardo Olsen Ricardo Olsen [ccf1ca] Create CODE_OF_CONDUCT.md
 CONTRIBUTING.md 2020-12-03 Ricardo Olsen Ricardo Olsen [aa6c4d] Create CONTRIBUTING.md
 Dockerfile 2023-09-24 riclolsen riclolsen [0ef32e] Updated alternative docker method scripts.
 Dockerfile-dnp3 2023-09-24 riclolsen riclolsen [0ef32e] Updated alternative docker method scripts.
 Dockerfile-grafana 2023-09-24 riclolsen riclolsen [0ef32e] Updated alternative docker method scripts.
 Dockerfile-mongodb 2023-09-24 riclolsen riclolsen [0ef32e] Updated alternative docker method scripts.
 Dockerfile-timescaledb 2023-09-24 riclolsen riclolsen [0ef32e] Updated alternative docker method scripts.
 LICENSE 2020-09-20 Ricardo Olsen Ricardo Olsen [f01fc7] Create LICENSE
 README.md 2024-06-14 Ricardo Olsen Ricardo Olsen [9b8231] Version 0.35-alpha.
 acknowledgements.md 2023-09-25 Ricardo Olsen Ricardo Olsen [5dbe85] Updated acknowledgements file.
 index.md 2024-06-14 Ricardo Olsen Ricardo Olsen [9b8231] Version 0.35-alpha.

Read Me


JSON:SCADA Logo

{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

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

architecture

Documentation

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 MMS Server
  • 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
  • Metabase Integration (via PostgreSQL/MongoDB connectors)
  • One-way realtime replication (over eth diode/tap device) w/ point db sync and historical backfill
  • Windows Installer
  • Online Demo
  • Docker Demo (docker-compose.yaml scripts)
  • Install Script for RedHat/Rocky 9.4 Linux x86-64 and arm64
  • Linux Image / VM
  • Supervisor (Linux process manager) examples
  • InfluxDB Integration
  • Telegraf Integration
  • Kafka Integration
  • PowerBI Integration (via PostgreSQL connector)
  • PowerBI Direct Integration
  • NodeRed Integration
  • 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.

Developer Contact