The OPC UA ETL Problem Nobody Talks About: Data Transformation

Chris Laponsie
10 min read
OPC UAETLTutorialIndustry 4.0

Table of Contents


The $327 Million Unit Conversion Error

In 1999, NASA's Mars Climate Orbiter burned up in the Martian atmosphere. The cause? A subcontractor's software used imperial units while NASA's system expected metric.1 The cost: $327.6 million.

You might think, "That's NASA. My plant's data integration problems aren't that dramatic."

But here's the reality: Your European pressure sensor outputs Bar. Your American SCADA system expects PSI. And you're paying a systems integrator $200/hour to write a script that multiplies by 14.5038.

This is the OPC UA ETL problem nobody talks about.


What OPC UA Solved (And What It Didn't)

OPC UA was a massive improvement over OPC DA. It eliminated COM/DCOM hell, added security, and provided true cross-platform support. Protocol-level integration got a lot easier.

But OPC UA doesn't solve the transformation problem:

  • Your PLC uses tag name Temperature_Tank1 in Celsius
  • Your SCADA wants Plant1.Temp.Tank01 in Fahrenheit
  • Your historian needs SITE_01.TMP.TNK_001 in Kelvin for some reason

OPC UA moves the data. But transforming it—converting units, applying formulas, smoothing noise—that's still on you.


The ETL Reality: Most Tools Focus on the Wrong Things

Search for "OPC UA ETL" and you'll find tools that emphasize:

  • Protocol bridging (MQTT, REST, Modbus)
  • File format conversion (JSON, XML, CSV)
  • Database connectivity (SQL, MongoDB)

Those are all useful. But they're solving the routing problem, not the transformation problem.

What About the Real Challenges?

Based on OPC Foundation research on multi-vendor integration234, the actual pain points include:

  1. Data fragmentation - Multiple OPC servers with different formats, units, naming conventions
  2. Heterogeneous platforms - Mix of old and new devices, various vendors
  3. Naming inconsistencies - Each vendor has their own tag naming scheme
  4. Unit diversity - European metric, US imperial, Japanese variants
  5. Complex information models - Requires extensive knowledge to map correctly

These are transformation problems. And most OPC UA ETL tools treat them as afterthoughts.


Why Transformations Matter: The Manufacturing Cost

Unit conversion errors aren't just NASA problems. According to NIST's research on metrication errors1:

  • A US company lost its entire profit margin selling wild rice because of pound/kilogram confusion
  • Tokyo Disneyland's Space Mountain derailed in 2003 due to a 45mm vs. 44.14mm axle mix-up
  • The "Gimli Glider" incident nearly killed 69 people due to fuel calculation errors

In manufacturing, unit conversion mistakes can cause:

  • Production delays when quantities don't align
  • Inventory inaccuracies (shortages or overstocking)
  • Batch failures from incorrect measurements
  • Audit failures when traceability breaks down
  • Recalls, redesigns, and scrapped projects

The problem isn't moving the data. It's transforming it correctly.


The Three Levels of OPC Data Transformation

After building industrial automation systems for a decade, I've noticed that OPC transformations fall into three categories:

Level 1: Unit Conversion

Problem: Sensor A speaks Bar, Sensor B speaks PSI, SCADA expects kPa

Complexity: Low—it's just math

Risk: High—manual conversions are error-prone

Common conversions in industrial settings:

  • Temperature: Celsius ↔ Fahrenheit ↔ Kelvin (even Rankine for legacy systems)
  • Pressure: Bar ↔ PSI ↔ Pascal ↔ Atmosphere ↔ Torr
  • Flow Rate: L/min ↔ GPM ↔ m³/h
  • Length: mm ↔ inches ↔ feet
  • Mass: kg ↔ lbs

Level 2: Formula Evaluation

Problem: Flow meter needs temperature compensation: corrected = raw * (273.15 + temp) / 293.15

Complexity: Medium—requires domain knowledge

Risk: Medium—formulas must be validated

Common formulas:

  • Temperature compensation for gas flow
  • Scaling: display_value = (raw_value - offset) * scale
  • Ratio calculations: efficiency = actual / theoretical * 100
  • Multi-register assembly: value = (high_byte << 8) | low_byte

Level 3: Custom Logic (Python)

Problem: Smoothing noisy sensor data, parsing vendor-specific formats, complex state machines

Complexity: High—requires programming

Risk: Low (if tested)—explicit code is less error-prone than hidden config

Common use cases:

  • Moving average smoothing: Track last N values
  • Statistical calculations: Standard deviation, variance
  • Data validation: Range checks, outlier detection
  • Conditional logic: Multi-step decisions

Why Visual DAGs Change Everything

Here's how traditional OPC ETL works:

  1. Edit a configuration file (XML, JSON, or proprietary format)
  2. Define sources, transformations, destinations
  3. Deploy and pray
  4. When something breaks, dig through logs to figure out which transformation failed

The problem: You can't see the data flow. You're reading config syntax, not understanding the pipeline.

The Visual DAG Approach

A Directed Acyclic Graph (DAG) is a visual representation of your data flow:

OPC UA ETL pipeline with visual DAG builder showing unit conversion transform node Example: A simple OPC ETL pipeline with unit conversion visible in the DAG

Why this matters:

  1. Instant understanding - See the entire pipeline at a glance
  2. Easy debugging - Identify where data transformation fails
  3. Clear dependencies - See what connects to what
  4. Parallel processing - Visualize concurrent transformations
  5. Documentation - The DAG is the documentation

This is how modern data engineering works (Airflow, Dagster, Prefect). It's time OPC UA ETL caught up.


OPC Data Wrangler: Visual ETL for OPC UA

I built OPC Data Wrangler because industrial automation deserved a modern, purpose-built ETL tool—but nothing like it existed. Here's what makes it different:

1. Visual DAG Builder

Drag and drop nodes onto a canvas:

  • OPC Source - Connect to any OPC UA server
  • OPC Sink - Write to any OPC UA server
  • Unit Conversion - 11 industrial unit categories, 50+ units
  • Formula Eval - Evaluate mathematical expressions with named variables
  • Python Transform - Full Python for complex logic
  • CSV Source/Sink - Import/export data

OPC ETL visual DAG builder interface with node palette for OPC UA sources, sinks, and transforms The OPC Data Wrangler visual DAG builder with node palette and canvas

See your entire pipeline. Understand the flow. Debug visually.

2. Built-In Unit Conversions

OPC Data Wrangler includes 11 industrial unit categories with validated conversion factors:

  • Temperature: Celsius, Fahrenheit, Kelvin, Rankine, Delisle
  • Pressure: Pascal, Bar, PSI, Atmosphere, Torr
  • Mass: kg, lbs, tons, etc.
  • Volume: Liters, gallons, m³, etc.
  • Flow Rate: L/min, GPM, m³/h, etc.
  • Length, Velocity, Acceleration, Energy, Power

Industrial unit conversion configuration for OPC data transformation - Bar to PSI pressure conversion Configuring a unit conversion: just select from/to units from dropdown menus

No more hunting for conversion factors. No more wondering if 1 Bar = 14.5038 PSI or 14.5 PSI. Just select the units and go.

Real-World Scenario: Multi-Vendor Pressure Sensors

Three pressure sensors from different manufacturers output different units:

  • Sensor A (German, Endress+Hauser): Outputs in Bar
  • Sensor B (American, Honeywell): Outputs in PSI
  • Sensor C (Japanese, Yokogawa): Outputs in kPa

Your SCADA expects all values in PSI. Traditional approach: write custom scripts with conversion formulas, deploy to middleware, debug when SCADA shows wrong values.

With OPC Data Wrangler: Add 1 OPC Source node with 3 slots, add 1 Unit Conversion node with 3 slots (Bar→PSI, PSI pass-through, kPa→PSI), connect to OPC Sink. Visual confirmation of entire pipeline.

OPC ETL pipeline connecting multi-vendor pressure sensors with different units to SCADA system Complete pipeline: Three pressure sensors with different units converging to one SCADA system

Time saved: 2 hours → 10 minutes | Risk reduced: Manual math → Built-in validated conversions

3. Formula Eval for Quick Math

Temperature compensation? Scaling? Simple calculations? Named variables make formulas readable. No Python overhead. Just evaluate the expression.

Real-World Scenario: Temperature-Compensated Flow Meter

Natural gas flow meter provides raw reading, but gas density changes with temperature. You need to apply ideal gas law compensation:

compensated_flow = measured_flow * (273.15 + temperature) / 293.15

With OPC Data Wrangler: OPC Source reads flow and temperature → Formula Eval node with inputs flow, temperature and expression flow * (273.15 + temperature) / 293.15 → OPC Sink writes compensated value.

Result: Formula is visible in the DAG node. Easy to validate. No hidden logic.

4. Python Transform for Complex Logic

When you need real programming power: full Python standard library, multiple inputs and outputs, error handling with tracebacks.

Real-World Scenario: Smoothing Noisy Sensor Data

Vibration sensor on a motor produces noisy readings. You need a 10-sample moving average for real-time smoothing.

# State maintained between calls
recent_values = []

def transform(sensor_reading):
    recent_values.append(sensor_reading)

    # Keep only last 10 values
    if len(recent_values) > 10:
        recent_values.pop(0)

    # Return average
    return sum(recent_values) / len(recent_values)

Python transform editor for OPC ETL with syntax highlighting and custom data processing logic Write Python code directly in the transform node with syntax highlighting

With OPC Data Wrangler: Python Transform with stateful logic smooths data in real-time. State is maintained between calls, no external databases needed.

5. AI Copilot to Build Pipelines

Describe what you want in plain English:

Read temperature from PLC_01 in Celsius, convert to Fahrenheit, and write to SCADA_Server tag Plant1.Temp.Tank01

The OPC Data Wrangler Copilot builds the DAG for you. Adjust as needed. Deploy.


Getting Started with OPC Data Wrangler

Installation Options

1. Docker (Linux, Mac, Windows) (Coming Soon)

docker run -p 8080:8080 opcdatawrangler/opcdatawrangler:latest

Perfect for quick testing or containerized deployments.

2. Windows Service Installer Download the native Windows installer from opcdatawrangler.com and run the setup wizard. Installs OPC Data Wrangler as a background Windows service. Access the UI via the included desktop app or through your web browser.

Build Your First Pipeline

  1. Connect OPC Source

    • Enter OPC UA server URL
    • Browse available nodes
    • Select tags to read
  2. Add Transformation

    • Unit Conversion: Select from/to units
    • Formula Eval: Enter expression with named variables
    • Python Transform: Write custom code
  3. Connect OPC Sink

    • Enter destination server URL
    • Map source tags to destination tags
    • Configure write intervals
  4. Deploy and Monitor

    • Start the pipeline
    • View live data flow in DAG
    • Monitor for errors

Why This Matters for Your Plant

OPC UA solved the protocol problem. But most of your time isn't spent on protocols—it's spent on transformations.

  • Converting units between vendors
  • Applying compensation formulas
  • Cleaning up noisy data
  • Statistical processing

Traditional OPC UA ETL tools make you write scripts for these tasks. OPC Data Wrangler gives you visual tools that handle 90% of transformations without code.

And when you do need code—for that 10% of complex logic—you get Python, not proprietary scripting languages.


Compared to Traditional OPC ETL Tools

Feature Traditional Tools OPC Data Wrangler
Visual data flow ❌ Config files ✅ Interactive DAG
Unit conversions ❌ Manual scripting ✅ 11 categories built-in
Custom logic ⚠️ Proprietary languages ✅ Python with full stdlib
Formula evaluation ⚠️ Limited ✅ Named variables, readable
AI assistance ❌ None Natural language pipeline builder
Deployment ⚠️ Windows-only desktop ✅ Docker (Linux) or Windows Service

Conclusion: It's Time for Visual OPC UA ETL

OPC UA standardized the protocol. Now it's time to standardize how we transform the data.

OPC Data Wrangler makes OPC UA ETL visual:

  • See your pipeline
  • Use built-in industrial transformations
  • Write Python when you need it
  • Deploy with confidence

Stop paying consultants $200/hour for unit conversion scripts. Build visual OPC UA ETL pipelines instead.


Get Started

Register for early access: https://opcdatawrangler.com/register

Documentation: https://opcdatawrangler.com

Questions? Reach out on LinkedIn or GitHub.


References

Footnotes

  1. NIST - Metrication Errors and Mishaps - https://www.nist.gov/pml/owm/metrication-errors-and-mishaps 2

  2. OPC Foundation - Multi-Vendor Alarm Integration - https://opcconnect.opcfoundation.org/2022/09/multi-vendor-alarm-integration-with-opc-ua/

  3. OPC Foundation - Gathering Data from Various Devices - https://opcconnect.opcfoundation.org/2022/03/gathering-data-from-various-devices-and-vendors-via-opc-ua/

  4. OPC Foundation - Unified Data Integration - https://opcconnect.opcfoundation.org/2024/03/unified-data-integration-and-archiving-across-geographically-dispersed-sites/

Ready to Build Your OPC UA ETL Pipeline?

Join manufacturers using OPC Data Wrangler to modernize their industrial data infrastructure. Register today for early access.

About the Author

Chris Laponsie founded Thingamatronics after a decade of building industrial automation systems and getting frustrated with the tools available. OPC Data Wrangler is his answer to the question: “Why is this so hard?”

More from the Blog

WEEK 2

Why Industrial Engineers Are Learning Python (And Why Jython Isn't Enough)

Real Python for industrial transforms. Plus: how AI makes Python 10x more productive than DSLs.

Read Article →
WEEK 3 - COMING SOON

I Asked AI to Build My OPC Pipeline (And It Worked)

From natural language description to production DAG in 30 seconds

Coming Soon
WEEK 4 - COMING SOON

The True Cost of “Free” OPC Tools

5-year TCO analysis: That $0 tool actually costs $47K

Coming Soon