|
| 1 | +--- |
| 2 | +title: "From Edge to Analytics: Understanding the Industrial Data Stack" |
| 3 | +date: 2025-12-29 16:00:00 |
| 4 | +categories: [Industry 4.0, Learning] |
| 5 | +tags: [flow-software, timebase, pi-af, highbyte, industrial-automation, iiot] |
| 6 | +description: "A hands-on comparison of PI Asset Framework, Timebase, and Flow Software—building a complete data pipeline from Ignition to enterprise analytics" |
| 7 | +toc: true |
| 8 | +mermaid: true |
| 9 | +--- |
| 10 | + |
| 11 | +## Introduction |
| 12 | + |
| 13 | +Raw tag data from a PLC is useless to a plant manager. |
| 14 | + |
| 15 | +That statement might sound harsh, but it's true. A tag named `Compressor_01.Discharge_Pressure` with a value of `127.3` means nothing without context. What unit? Is that good or bad? How does it relate to the compressor's health? What about the other 500 tags in the system? |
| 16 | + |
| 17 | +As a SCADA developer expanding into data architecture, I kept hearing the same platforms mentioned: PI Asset Framework, HighByte, Flow Software, Litmus. But I couldn't articulate *when* to use each one or *why* they exist in different layers of the stack. |
| 18 | + |
| 19 | +So I'm building something. Using Ignition's Dairy Simulator as my data source, I'm implementing a complete data pipeline from edge collection through analytics using Timebase and Flow Software. This post documents my learning journey—starting with Flow's training and certification program, then moving to hands-on implementation. |
| 20 | + |
| 21 | +## Background & Context |
| 22 | + |
| 23 | +The industrial data challenge is simple to state but difficult to solve: **data is collected at the edge, but value is created higher up.** |
| 24 | + |
| 25 | +PLCs and sensors generate millions of data points. SCADA systems display them. But turning that raw data into actionable insights—OEE calculations, predictive maintenance alerts, energy optimization—requires something more. |
| 26 | + |
| 27 | +That "something more" is the modern industrial data stack: |
| 28 | + |
| 29 | +```mermaid |
| 30 | +graph TB |
| 31 | + Enterprise[Enterprise Analytics / BI<br/>Flow Software, PI AF] |
| 32 | + Historian[Historian / Time-Series Storage<br/>Timebase, PI Data Archive] |
| 33 | + Context[Data Contextualization<br/>HighByte, Litmus] |
| 34 | + SCADA[SCADA / Edge<br/>Ignition] |
| 35 | + Field[PLCs / Sensors<br/>Field Devices] |
| 36 | +
|
| 37 | + Field --> SCADA |
| 38 | + SCADA --> Historian |
| 39 | + SCADA -.-> Context |
| 40 | + Context -.-> Enterprise |
| 41 | + Historian --> Enterprise |
| 42 | +
|
| 43 | + style Enterprise fill:#cce5ff,stroke:#0066cc,stroke-width:2px,color:#000 |
| 44 | + style Historian fill:#ffcccc,stroke:#cc0000,stroke-width:2px,color:#000 |
| 45 | + style Context fill:#f5f5f5,stroke:#999,stroke-width:2px,stroke-dasharray:5 5,color:#666 |
| 46 | + style SCADA fill:#ccffcc,stroke:#00cc00,stroke-width:2px,color:#000 |
| 47 | + style Field fill:#f0f0f0,stroke:#666,stroke-width:1px,color:#000 |
| 48 | +``` |
| 49 | + |
| 50 | +*Solid lines: The stack I built (Ignition → Timebase → Flow)* |
| 51 | +*Dashed lines: Optional contextualization layer (HighByte, Litmus)* |
| 52 | + |
| 53 | +Each layer has a job. Understanding those jobs—and which tools belong where—is the key insight from this project. |
| 54 | + |
| 55 | +> This post covers three platforms hands-on: Ignition (data collection), Timebase (historian with native Ignition integration), and Flow Software (analytics). I'll also discuss PI Asset Framework as the enterprise benchmark and HighByte as an optional contextualization layer. |
| 56 | +
|
| 57 | +--- |
| 58 | + |
| 59 | +## The Stack I Built |
| 60 | + |
| 61 | +For this project, I kept the architecture simple: |
| 62 | + |
| 63 | +``` |
| 64 | +Ignition (Dairy Simulator) → Timebase (Historian) → Flow (Analytics) |
| 65 | +``` |
| 66 | + |
| 67 | +This mirrors the PI ecosystem structure (PI Interfaces → PI Data Archive → PI AF) but with modern, Ignition-native tools. No middleware, no message brokers, no contextualization layer—just a clean path from SCADA to analytics. |
| 68 | + |
| 69 | +Why skip the contextualization layer? For many deployments, **Flow Software handles both contextualization AND analytics**. It builds asset hierarchies, creates templates, and adds ISA-95 structure. You don't always need a separate tool like HighByte—though there are cases where it makes sense (more on that later). |
| 70 | + |
| 71 | +--- |
| 72 | + |
| 73 | +## PI Asset Framework: The Enterprise Benchmark |
| 74 | + |
| 75 | +You can't understand the modern industrial data landscape without understanding PI Asset Framework. It's the dominant enterprise platform with 40+ years of OSIsoft heritage (now AVEVA). |
| 76 | + |
| 77 | +### What PI AF Does |
| 78 | + |
| 79 | +PI AF sits on top of the PI Data Archive (historian) and adds a context layer. Instead of just storing `Tag_123 = 127.3`, PI AF lets you say "This is the discharge pressure of Compressor 01, which is part of the Refrigeration system, which is in Building A." |
| 80 | + |
| 81 | +**Core concepts:** |
| 82 | + |
| 83 | +- **Asset Hierarchy:** Elements organized in parent-child relationships (Site → Area → Line → Equipment) |
| 84 | +- **Templates:** Reusable asset definitions (like UDTs, but for assets) |
| 85 | +- **Attributes:** Static data (nameplate info), dynamic data (linked to tags), and calculated data (formulas) |
| 86 | +- **Event Frames:** Capturing process events, batches, and state changes |
| 87 | + |
| 88 | +### Why PI AF Matters |
| 89 | + |
| 90 | +Even if you never use PI AF directly, understanding it helps you: |
| 91 | + |
| 92 | +1. **Communicate with clients** who have existing PI installations |
| 93 | +2. **Position modern alternatives** like Flow Software |
| 94 | +3. **Understand asset modeling concepts** that appear in every industrial data platform |
| 95 | + |
| 96 | +### PI AF Limitations |
| 97 | + |
| 98 | +PI AF's dominance comes with tradeoffs: |
| 99 | + |
| 100 | +- **Licensing costs:** Per-user fees add up quickly |
| 101 | +- **Deployment complexity:** On-premises infrastructure requirements |
| 102 | +- **Separate visualization:** PI Vision is a separate product |
| 103 | +- **Legacy architecture:** Not cloud-native or Docker-friendly |
| 104 | + |
| 105 | +These limitations created the market opportunity for modern alternatives. |
| 106 | + |
| 107 | +--- |
| 108 | + |
| 109 | +## Timebase: The Historian with Native Ignition Integration |
| 110 | + |
| 111 | +Before data can be analyzed, it needs to be stored. That's where historians come in. Timebase is Flow Software's historian, and it has something that sets it apart: **native Ignition integration via a gateway module**. |
| 112 | + |
| 113 | +### Where Timebase Fits |
| 114 | + |
| 115 | +In the PI ecosystem, you have PI Data Archive (historian) + PI AF (context/analytics). In the Flow ecosystem, you have Timebase (historian) + Flow Information Hub (context/analytics). |
| 116 | + |
| 117 | +``` |
| 118 | +Ignition Tags → Timebase Module → Timebase Historian → Flow Information Hub |
| 119 | +``` |
| 120 | + |
| 121 | +The Timebase Module for Ignition acts as both a **Storage Provider** and **Tag History Provider**. This means Ignition treats Timebase like any other historian—you enable history on tags, and data flows automatically. |
| 122 | + |
| 123 | +### Why Native Ignition Integration Matters |
| 124 | + |
| 125 | +Most historians require additional configuration: OPC connections, data bridges, or custom scripting. The Timebase Ignition module eliminates this complexity. |
| 126 | + |
| 127 | +**Key features:** |
| 128 | + |
| 129 | +- **Automatic dataset creation:** When you enable history on a tag, Timebase creates the corresponding dataset automatically based on your Tag Provider structure |
| 130 | +- **Multi-gateway support:** Prefix datasets to prevent naming conflicts when multiple Ignition gateways share the same Tag Provider names |
| 131 | +- **Native retrieval:** Historical data is available directly in Perspective and Vision projects through standard Tag History bindings |
| 132 | +- **Deadband and sampling respect:** Ignition's configured deadbands and sampling rules are applied before logging—you're not storing redundant data |
| 133 | + |
| 134 | +### Hands-On: Dairy Simulator with Timebase |
| 135 | + |
| 136 | +Setting up Timebase with the Dairy Simulator was straightforward: |
| 137 | + |
| 138 | +**Step 1: Install the Module** |
| 139 | + |
| 140 | +Downloaded the free Timebase Module from Flow Software and installed it through Ignition's Gateway interface. Gateway restart required. |
| 141 | + |
| 142 | +**Step 2: Configure Connection** |
| 143 | + |
| 144 | +Pointed the module at my Timebase instance (default port 4511 for HTTP, 4512 for HTTPS). For production, you'd configure authentication through Timebase Pulse with Client ID and Secret. |
| 145 | + |
| 146 | +**Step 3: Enable Tag History** |
| 147 | + |
| 148 | +On the Dairy Simulator tags I wanted to historize (compressor pressures, tank levels, motor currents), I simply changed the History Provider from the default to Timebase. That's it. |
| 149 | + |
| 150 | +**Step 4: Verify Data Flow** |
| 151 | + |
| 152 | +Within minutes, I could query historical data in Perspective using standard Tag History bindings. The datasets appeared automatically in Timebase, named after my Tag Provider structure. |
| 153 | + |
| 154 | +### Key Takeaway |
| 155 | + |
| 156 | +Timebase solves the historian problem for Ignition-centric environments. No OPC bridges, no custom scripting—just install the module and enable history on your tags. The data flows to Timebase and becomes available to Flow for analytics. |
| 157 | + |
| 158 | +--- |
| 159 | + |
| 160 | +## Flow Software Information Hub: The Analytics Platform |
| 161 | + |
| 162 | +Flow Software competes directly with PI Asset Framework. It's a full analytics platform: asset modeling, KPI calculations, dashboards, and enterprise integration. |
| 163 | + |
| 164 | +### Flow vs. PI AF |
| 165 | + |
| 166 | +| Capability | PI Asset Framework | Flow Software | |
| 167 | +|------------|-------------------|---------------| |
| 168 | +| Asset Hierarchy | ✓ | ✓ | |
| 169 | +| Templates | ✓ | ✓ | |
| 170 | +| KPI Calculations | ✓ | ✓ | |
| 171 | +| Event Detection | ✓ (Event Frames) | ✓ (Events) | |
| 172 | +| Visualization | Separate (PI Vision) | Built-in dashboards | |
| 173 | +| User Licensing | Per-user fees | Unlimited users | |
| 174 | +| Deployment | On-prem heavy | Cloud-native / Docker | |
| 175 | +| AI Integration | Limited | AI Gateway | |
| 176 | +| Native Ignition Historian | ✗ | ✓ (Timebase Module) | |
| 177 | + |
| 178 | +The unlimited user licensing alone makes Flow attractive for organizations where PI Vision seat costs have become prohibitive. And the native Ignition integration through Timebase simplifies the entire data pipeline. |
| 179 | + |
| 180 | +### The 5-Step Workflow |
| 181 | + |
| 182 | +Flow organizes its functionality into five steps: |
| 183 | + |
| 184 | +1. **Model:** Build asset hierarchy with templates and instances |
| 185 | +2. **Connect:** Link to data sources (OPC UA, MQTT, Sparkplug B, Timebase) |
| 186 | +3. **Transform:** Calculate KPIs, aggregations, and derived values |
| 187 | +4. **Visualize:** Build dashboards with charts, gauges, and tables |
| 188 | +5. **Bridge:** Output to external systems (cloud, databases, APIs) |
| 189 | + |
| 190 | +### Hands-On: Dairy Simulator in Flow |
| 191 | + |
| 192 | +With Timebase already collecting historical data from the Dairy Simulator, connecting Flow was straightforward. |
| 193 | + |
| 194 | +**Asset Model:** |
| 195 | + |
| 196 | +Created an ISA-95 hierarchy for the dairy plant: |
| 197 | + |
| 198 | +``` |
| 199 | +Dairy_Plant (Enterprise) |
| 200 | +└── Main_Facility (Site) |
| 201 | + ├── Refrigeration (Area) |
| 202 | + │ ├── Compressor_01 |
| 203 | + │ ├── Compressor_02 |
| 204 | + │ └── Chiller_Tank_01 |
| 205 | + └── Processing (Area) |
| 206 | + ├── Pasteurizer_01 |
| 207 | + └── Storage_Tank_01 |
| 208 | +``` |
| 209 | + |
| 210 | +Built templates for reusable equipment definitions: |
| 211 | +- Compressor Template (discharge pressure, suction pressure, running status, current) |
| 212 | +- Tank Template (level, temperature, pressure) |
| 213 | +- Motor Template (running, speed, current draw) |
| 214 | + |
| 215 | +**Data Connection:** |
| 216 | + |
| 217 | +Connected Flow directly to Timebase. The historical data collected through the Ignition module was immediately available for analysis—no additional configuration needed. |
| 218 | + |
| 219 | +**KPI Calculations:** |
| 220 | + |
| 221 | +Defined calculated fields that update automatically: |
| 222 | +- **Compressor Runtime Hours:** Accumulated running time |
| 223 | +- **Tank Fill Percentage:** Current level / max capacity |
| 224 | +- **Refrigeration Efficiency:** Output BTU / input kW |
| 225 | + |
| 226 | +**Dashboard:** |
| 227 | + |
| 228 | +Built an operational overview showing: |
| 229 | +- Compressor status cards (running/stopped, current load) |
| 230 | +- Tank level trends over 24 hours |
| 231 | +- KPI summary with threshold indicators |
| 232 | + |
| 233 | +The entire process—from raw Ignition tags to executive dashboard—took an afternoon. Compare that to a PI AF + PI Vision deployment. |
| 234 | + |
| 235 | +--- |
| 236 | + |
| 237 | +## What About HighByte? (The Contextualization Layer) |
| 238 | + |
| 239 | +You might be wondering why I didn't include HighByte in my hands-on stack. The answer: **Flow Software already handles contextualization**. |
| 240 | + |
| 241 | +HighByte Intelligence Hub is a dedicated data contextualization platform. It sits between your SCADA system and analytics platforms, transforming raw tag data into clean, structured payloads. It's similar to Litmus and Crosser. |
| 242 | + |
| 243 | +**HighByte's core concepts:** |
| 244 | +- **Types:** Data model definitions (like UDTs for data payloads) |
| 245 | +- **Instances:** Actual assets created from types |
| 246 | +- **Flows:** Pipelines that transform and route data |
| 247 | +- **ISA-95 Structure:** Hierarchical organization of assets |
| 248 | + |
| 249 | +### When You Need HighByte (or Similar) |
| 250 | + |
| 251 | +HighByte makes sense when: |
| 252 | + |
| 253 | +- **Multiple downstream consumers:** You're feeding data to Flow AND cloud platforms AND a UNS broker simultaneously |
| 254 | +- **Edge-heavy architecture:** You need contextualization at the edge before data leaves the site |
| 255 | +- **Unified Namespace (UNS):** You're building a Sparkplug B architecture with structured MQTT topics |
| 256 | +- **Non-Ignition sources:** You're aggregating data from multiple SCADA systems or protocols |
| 257 | + |
| 258 | +### When Flow Is Enough |
| 259 | + |
| 260 | +For many deployments, Flow handles both jobs: |
| 261 | + |
| 262 | +- **Single analytics platform:** Flow is your only downstream consumer |
| 263 | +- **Timebase as historian:** Data flows directly from Ignition → Timebase → Flow |
| 264 | +- **Simpler architecture:** Fewer moving parts to maintain and troubleshoot |
| 265 | + |
| 266 | +My Dairy Simulator project fell into the second category. Flow's built-in asset modeling, templates, and ISA-95 hierarchy covered everything I needed. |
| 267 | + |
| 268 | +--- |
| 269 | + |
| 270 | +## Complete Integration Architecture |
| 271 | + |
| 272 | +Here's the stack I built: |
| 273 | + |
| 274 | +```mermaid |
| 275 | +graph TB |
| 276 | + subgraph Analytics ["FLOW SOFTWARE (Analyze & Visualize)"] |
| 277 | + FM[Asset Model / ISA-95] |
| 278 | + FK[KPI Calculations] |
| 279 | + FD[Dashboards] |
| 280 | + FA[AI Gateway] |
| 281 | + end |
| 282 | +
|
| 283 | + subgraph Storage ["TIMEBASE (Store & Retrieve)"] |
| 284 | + TH[Time-Series Storage] |
| 285 | + TR[Historical Retrieval] |
| 286 | + end |
| 287 | +
|
| 288 | + subgraph Edge ["IGNITION SCADA (Collect Data)"] |
| 289 | + DS[Dairy Simulator] |
| 290 | + TP[Tag Provider] |
| 291 | + TM[Timebase Module] |
| 292 | + end |
| 293 | +
|
| 294 | + DS --> TP |
| 295 | + TP --> TM |
| 296 | + TM --> TH |
| 297 | + TH --> TR |
| 298 | + TR --> FM |
| 299 | + FM --> FK |
| 300 | + FK --> FD |
| 301 | + FD --> FA |
| 302 | +
|
| 303 | + style Analytics fill:#cce5ff,stroke:#0066cc,stroke-width:2px,color:#000 |
| 304 | + style Storage fill:#ffcccc,stroke:#cc0000,stroke-width:2px,color:#000 |
| 305 | + style Edge fill:#ccffcc,stroke:#00cc00,stroke-width:2px,color:#000 |
| 306 | +``` |
| 307 | + |
| 308 | +**Each layer has a distinct responsibility:** |
| 309 | + |
| 310 | +| Layer | Tool | Responsibility | |
| 311 | +|-------|------|----------------| |
| 312 | +| Collection | Ignition | Read PLC data, expose tags | |
| 313 | +| Storage | Timebase | Store time-series data via native module | |
| 314 | +| Analytics | Flow | Model assets, calculate KPIs, visualize | |
| 315 | + |
| 316 | +### Platform Comparison Summary |
| 317 | + |
| 318 | +| Platform | Category | Similar To | When to Use | |
| 319 | +|----------|----------|------------|-------------| |
| 320 | +| Timebase | Historian | PI Data Archive, Canary | Native Ignition historian, feeding Flow | |
| 321 | +| Flow Software | Analytics | PI Asset Framework | KPIs, dashboards, asset modeling | |
| 322 | +| HighByte | Contextualization | Litmus, Crosser | Multi-consumer, UNS, edge transformation | |
| 323 | + |
| 324 | +--- |
| 325 | + |
| 326 | +## Summary & Lessons Learned |
| 327 | + |
| 328 | +This project clarified how industrial data platforms fit together. The key insight: **you don't always need every layer in the stack.** |
| 329 | + |
| 330 | +**Three takeaways:** |
| 331 | + |
| 332 | +1. **Timebase + Flow is a complete PI alternative.** The native Ignition module eliminates historian complexity. Flow handles contextualization AND analytics. For Ignition-centric deployments, this combination covers most use cases. |
| 333 | + |
| 334 | +2. **Flow ≈ PI AF (enterprise analytics).** It's a full analytics platform competing with the industry incumbent. Unlimited user licensing, modern deployment options, and native Timebase integration are key differentiators. |
| 335 | + |
| 336 | +3. **HighByte is optional, not required.** Dedicated contextualization tools like HighByte make sense for multi-consumer architectures and UNS deployments. But if Flow is your only analytics platform, it handles asset modeling natively. |
| 337 | + |
| 338 | +Understanding PI Asset Framework—even without using it directly—provides context for positioning modern alternatives. When a client asks "How does this compare to PI?", you need an answer. |
| 339 | + |
| 340 | +**Skills developed:** |
| 341 | +- ISA-95 asset modeling (practical application) |
| 342 | +- Historian integration with Ignition |
| 343 | +- KPI definition and calculation |
| 344 | +- Industrial analytics platform evaluation |
| 345 | + |
| 346 | +For solution architects evaluating industrial data platforms, start simple. Ignition → Timebase → Flow covers most requirements. Add contextualization layers like HighByte when the architecture demands it. |
| 347 | + |
| 348 | +--- |
| 349 | + |
| 350 | +## Resources & Links |
| 351 | + |
| 352 | +**Platform Documentation:** |
| 353 | +- [Flow Software Information Hub](https://flowsoftware.com/) |
| 354 | +- [Timebase Module for Ignition](https://timebase.flow-software.com/en/knowledge-base/timebase-module-for-ignition) |
| 355 | +- [HighByte Intelligence Hub](https://highbyte.com/) |
| 356 | +- [AVEVA PI System](https://www.aveva.com/en/products/aveva-pi-system/) |
| 357 | + |
| 358 | +**Training:** |
| 359 | +- [Flow Software Training](https://www.flow-software.com/training) - Free online courses, Flow Core Certification, and Advanced Certification |
| 360 | + |
| 361 | +**Standards:** |
| 362 | +- [ISA-95 Overview](https://www.isa.org/standards-and-publications/isa-standards/isa-95-enterprise-control-system-integration) |
| 363 | + |
| 364 | +**Data Source:** |
| 365 | +- [Ignition by Inductive Automation](https://inductiveautomation.com/) |
| 366 | + |
| 367 | +**Writing Framework:** |
| 368 | +- [The Algorithmic Framework for Writing Good Technical Articles](https://www.theocharis.dev/blog/algorithmic-framework-for-writing-technical-articles/) |
0 commit comments