Standard Cubic Meters, Actual Cubic Meters, and the Gas Total Nobody Agrees On
Pressure and temperature compensation for gas flow: which meters need it, the absolute-pressure trap, where the math belongs, and a failed P transmitter.
Articles
Field-oriented references for HMI/SCADA systems, industrial communication, alarms, tags, historians, and project delivery.
Pressure and temperature compensation for gas flow: which meters need it, the absolute-pressure trap, where the math belongs, and a failed P transmitter.
Building a strapping table into SCADA: segment geometry, interpolation spacing, where the calculation runs, and the density trap in hydrostatic level.
A level loop still cycling after two retunes is usually the valve. Reading stiction off PV/OP trends, proving it with a step test, and monitoring it.
Orifice DP goes as the square of flow, so someone takes the root — transmitter, PLC or SCADA. Do it twice, or skip the low-flow cutoff, and it lies.
Computing usage across a wrapping counter without inventing phantom flow: register width, correcting the delta once, and rollover versus meter reset.
Running report-by-exception and change-of-state — DNP3 events, deadbands, heartbeats, integrity polls — without losing short events or stale values.
Held values, dropped quality codes and late samples inserted at arrival time each make a trend lie after an outage. Working out which one you have.
MQTT arrival order is not process order. Why the DUP flag never catches the duplicates that hurt, Sparkplug's 8-bit seq wrap, and the MQTT 5.0 properties that fix stale retained state.
Shared subscriptions split an MQTT stream across workers — and will quietly halve your historian feed and scramble trend order if you point them wrong.
Estimating the real load behind site/#, and the MQTT 5.0 features that actually contain it: Retain Handling, shared subscriptions, Receive Maximum, SUBACK reason codes.
How historians hide communication gaps behind interpolated lines and held values, and the quality rules that keep bad data out of a shift report.
NodeIds regenerate, browse paths move, DisplayName is a label. Picking the reference your HMI and historian store so firmware doesn't blank a screen.
Choosing DataChangeFilter settings — absolute versus percent deadband, DataChangeTrigger, queue size — so a filter cuts noise, not real movement.
Repairing a historian gap with OPC UA HistoryRead: scoping the window, letting returnBounds handle edges, keeping Bad quality, and paging safely.
Recording calibration, manual mode and bypass windows as event records separate from the sampled stream, joined back by asset ID and time window.
Exception and periodic collection store different truths. Picking per tag so a 300 ms interlock survives, and proving the choice during commissioning.
Versioning MQTT telemetry payloads so historians, HMI clients, MES connectors and analytics survive a field change instead of breaking on one.
Historians key archive data to a point ID or a name string, so a rename can split a tag's history in two. What to verify before operators find the gap.
A failed transmitter pegs a tag at full scale for eleven hours. Correcting the record with an audit trail that survives review, raw sample intact.
HMI, historian, PLC log and alarm list stamp one event seconds apart. Where each timestamp is born, and which one to trust during an incident.
The shift report says 1,738 good parts and the HMI says 1,742. Where to look first: counter style, historian deltas, S6F11 event time, or the spool.
Averaging old process data hides trips and flattens peaks. Classifying tags, picking a method per class, and testing a purge job before production.
Why an MQTT edge gateway loses data during a WAN outage, and how to buffer with source timestamps, sequence numbers and a replay policy that holds.
Event frames pay off only if their boundaries hold. Where to take start and end triggers, what to capture as attributes, and frames that never close.
Where lot traceability breaks when built from equipment events: missing lot context, GEM event time, spool replay order, and split/merge genealogy.
A calculated tag quietly becomes an official number. Checking formula, quality rules, period boundaries and counter resets before reports depend on it.
A field walkthrough for analog scaling: ranges, engineering units, Modbus word order, NAMUR thresholds — so PLC, SCADA, HMI and historian agree.
How historian timestamps go wrong — clock drift, NTP versus PTP, OPC UA source time, late data, DST — and catching it before a report dispute does.
How sampling interval, publishing interval, queue size, deadband and the KeepAlive/Lifetime pair decide whether your client and historian see the process.
Store-and-forward hands you hours-old samples when a link recovers. Which timestamp wins, what a late value may overwrite, and how to mark it.
A practical checklist for renewing OPC UA application certificates without breaking SCADA clients, historians, gateways, or production HMI connections.
Picking historian deadbands and compression from the instrument and the process, not HMI decimal places, so trends keep movement without storing noise.
Laying out Sparkplug B group, edge node and device IDs — plus birth certificates, aliases and STATE — so a rename doesn't break every subscription.
What an industrial historian does, what to plan before collecting data, and common mistakes in historian projects.
A practical checklist for commissioning OPC UA client connections from SCADA, HMI, historian, or gateway software to PLCs and automation servers.
Trend screens that answer the operator's real question during an upset: grouping by loop, choosing scales, and drawing a comms gap as a gap.
A practical definition of SCADA tags and how they connect PLC addresses, alarms, trends, screens, and reports.
A field-oriented comparison of common industrial software layers and where their responsibilities overlap.
A practical explanation of SCADA systems: what they do, where they fit, and what to watch for on real projects.