Case Study: Orbital Refinery SCADA System

A plant-wide Ignition SCADA + MES system with an edge-to-enterprise MQTT architecture, a scalable UDT data model, role-based security, and a full alarming, historian, and reporting stack.

In Progress Updates will be posted as each phase is completed.

Project Overview

This project moves from single-capability HMI builds to a fully integrated SCADA architecture. A simulated multi-area process plant — feedstock tank farm, refining reactors, distillation, product storage, and utilities — is controlled from a single overview interface. Field data flows from simulated PLCs over OPC-UA to an Edge gateway, publishes via MQTT Sparkplug B to a broker, and is consumed by a central gateway running the Perspective application, alarming, historian, and reporting. The design mirrors the edge-to-enterprise patterns used in real industrial IIoT deployments.

What It Demonstrates

  • Scalable data model — reusable User Defined Types (Tank, Pump, Valve, Reactor, Motor) instantiated across the plant rather than hand-built tags
  • Edge-to-enterprise architecture — OPC-UA collection, MQTT Sparkplug B publishing, and a central subscribing gateway
  • Role-based security — Operator, Engineer, QC, and Admin roles with page and write-permission restrictions
  • Alarm pipelines — priority routing, acknowledgment workflow, email notification, and a journaled alarm history
  • Historian & trends — SQL tag history provider feeding time-series trend screens
  • MES-lite layer — OEE, downtime tracking with reason codes, batch genealogy, and SQL-backed reporting

System Architecture

[ OpenPLC / CODESYS sim ] --OPC-UA--> [ Edge Gateway ] --MQTT Sparkplug B--> [ Broker ]
                                                                                  |
                                                                      [ Central Gateway ]
                                                                      - MQTT Engine (subscribe)
                                                                      - Perspective application
                                                                      - Alarming + notifications
                                                                      - Tag Historian
                                                                      - SQL database + reporting

Roadmap

  • Week 1 — Architecture & data model: gateways, broker, OPC-UA process feed, UDTs, tag naming convention, MQTT round-trip
  • Week 2 — Perspective application: navigation shell, reusable faceplates, plant overview, per-area pages, security
  • Week 3 — Alarming, history & notifications: alarm pipelines, email + on-call, historian, trends, alarm journal, health-monitoring script
  • Week 4 — MES, reporting & polish: SQL tables, OEE/downtime dashboard, batch tracking, reporting module, documentation & diagram

Planned Tools

Ignition Perspective UDTs MQTT Sparkplug B OPC-UA OpenPLC / CODESYS Alarm Pipelines Tag Historian SQL / Named Queries OEE / MES Reporting