1. The Problem

A utility company needed more than just monitoring, they required a gateway solution to read from 125,000 PLC points and write to 125,000 eletrical points across 5 remote substations. Their legacy system couldn't handle protocol translation at scale, lacked real-time visibility, had no redundancy, and required full downtime for any system changes—risking critical grid operations during maintenance.

2. The Solution

2.1 Overview

  • Edge: FrameworX EdgeConnect.

  • Central: FrameworX Enterprise with UI.

  • DataHub: TagProvider for distributed engineering and close to zero downtime Edge additions.

  • Protocols: DNP3 (master/slave), Modbus.

  • Scale: 5 Edges × 25k tags = 125k tags publishing; overall 250k points (125k Modbus reads + 125k DNP3 writes).

  • Modules: Alarms and Historian (Postgres + TimescaleDB).

  • Sizing: 48 vCPU and 128 GB RAM (including redundancy).

  • Redundancy: One pair of full-project redundancy; store-and-forward enabled.

2.2 Logical Diagram (high level)

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 600" width="100%" height="auto" role="img" aria-label="DataHub with Historian and Edge Sites">
  <defs>
    <style>
      text{font-family: ui-sans-serif, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Noto Sans", "Liberation Sans", sans-serif; font-size:16px; fill:#111}
      .sub{fill:#333; font-size:15px}
      .box{fill:#f9f9f9; stroke:#333; rx:10; ry:10}
      .outer{fill:#fff; stroke:#ccc; rx:16; ry:16}
      .cap{font-weight:600}
    </style>
    <marker id="arrow" markerWidth="10" markerHeight="7" refX="10" refY="3.5" orient="auto" markerUnits="strokeWidth">
      <polygon points="0 0, 10 3.5, 0 7" fill="#333"></polygon>
    </marker>
  </defs>

  <!-- background -->
  <rect class="outer" x="0" y="0" width="1200" height="600"></rect>

  <!-- Top: DataHub -->
  <rect class="box" x="420" y="40" width="360" height="70"></rect>
  <text x="432" y="84" class="cap">[ DataHub (TapProvider)/UI ]</text>

  <!-- Spine -->
  <line x1="600" y1="110" x2="600" y2="160" stroke="#333"></line>
  <line x1="120" y1="160" x2="1080" y2="160" stroke="#333"></line>

  <!-- Left leg -->
  <line x1="200" y1="160" x2="200" y2="340" stroke="#333"></line>
  <text x="240" y="250" class="sub">reads historical + alarms</text>

  <!-- Right leg -->
  <line x1="980" y1="160" x2="980" y2="300" stroke="#333"></line>
  <text x="820" y="250" class="sub">reads live device values</text>

  <!-- Left box -->
  <rect class="box" x="80" y="340" width="420" height="160"></rect>
  <text x="92" y="364" class="cap">[ Postgres + TimescaleDB ]</text>
  <text x="100" y="392" class="sub">Historian + Alarms</text>

  <!-- Right box -->
  <rect class="box" x="700" y="300" width="420" height="220"></rect>
  <text x="712" y="324" class="cap">[ Edge Sites ×5 ]</text>
  <text x="720" y="352" class="sub">• FrameworX EdgeConnect</text>
  <text x="720" y="376" class="sub">• Collects Modbus (read)</text>
  <text x="720" y="400" class="sub">• Publishes to DNP3 (write)</text>
  <text x="720" y="424" class="sub">• Exposes device values (read)</text>
  <text x="720" y="448" class="sub">• Sends timeseries/alarms ? Historian</text>

  <!-- Arrow (Edge -> Historian) -->
  <line x1="700" y1="410" x2="500" y2="410" stroke="#333" marker-end="url(#arrow)"></line>
</svg>


Expanded flow:

  • 5 EdgeConnect collecting data with Modbus and creating datasets + alarms
    → Postgres + TimescaleDB (Historian + Alarms)
    → FrameworX Enterprise showing data in the UI (UI Server).

2.3 Architecture Summary

  • Edges: 5 units; 25k tags each.

  • Central Services: Historian + Alarms; UI served by FrameworX Enterprise.

  • Point Directionality: 125k reads (Modbus) + 125k writes (DNP3) = 250k.

  • Operations: Distributed engineering via TagProvider; hot-add new Edge without downtime.

2.4 Redundancy & Store-and-Forward

  • Redundancy: 1 pair of full project redundancy.

  • Continuity: Store-and-forward for resilient ingestion.

3. Key Enablers

  • DataHub “TapProvider” enabling distributed engineering.

  • Redundancy (full-project pair) with store-and-forward.

  • Electrical protocols such as DNP3 (plus Modbus).

4. The Results

The FrameworX solution delivered:

  • Full Gateway Capability: Data flow handling 250,000 points (125k Modbus reads → 125k DNP3 writes)

  • Real-time Protocol Translation: Seamless Modbus-to-DNP3 conversion across all 5 sites

  • Zero Downtime: Hot-add new sites without system interruption via DataHub TagProvider

  • 99.99% Uptime: Full redundancy with store-and-forward eliminated data loss

  • 85% Faster Deployment: New edge sites added in hours instead of days

  • 40% Cost Reduction: Optimized infrastructure (48 vCPU, 128GB RAM) supporting entire redundant system


In this section...