Getting WirelessHART Data Into SCADA Without Trusting a Stale Reading
Bringing WirelessHART gateway data into SCADA safely: update rate versus polling, stale-value detection, Modbus mapping pitfalls and join troubleshooting.
Articles
Field-oriented references for HMI/SCADA systems, industrial communication, alarms, tags, historians, and project delivery.
Bringing WirelessHART gateway data into SCADA safely: update rate versus polling, stale-value detection, Modbus mapping pitfalls and join troubleshooting.
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.
Turning two limit switches and a travel timer into honest valve state: transit handling, discrepancy alarms, and catching a slowing actuator early.
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.
Where linearization and cold-junction compensation happen between sensor and SCADA tag, and why the wrong place quietly biases the reading you trust.
Smoothing a jittery 4-20 mA reading with first-order and moving-average filters, where the filter belongs, and why the wrong tag delays your alarm.
How a driver discovers BACnet devices, reads present-value and writes commandable objects: object identifiers, the 16-slot priority array, COV and BBMD.
How BRCB and URCB blocks feed substation data to SCADA: datasets, trigger options, buffer time, and the reservation fights that starve a client.
DNP3 double-bit inputs (groups 3 and 4) encode 52a/52b contacts as four states, killing the OPEN/CLOSED flicker single-bit status shows mid-travel.
A PLC exposes a UDT over OPC UA and your client shows a ByteString. What an ExtensionObject actually holds, and how clients decode structured DataTypes.
Pulling ControlLogix and CompactLogix tags over EtherNet/IP: connected versus unconnected CIP, RPI, connection budgets, and why array reads win.
How to pull HART secondary variables and diagnostics into SCADA beyond the 4-20 mA loop, using multiplexers, HART-enabled I/O, and WirelessHART gateways.
Building lead/lag/standby pump rotation so duty sharing, standby failover and role swaps stay predictable — and visible to the operator at 3am.
A VFD is commanded through a packed control word and reports through a status word. Map either wrong and it won't start, or it clears a latched fault.
The deadband decides whether a change becomes an event; the Group 32 variation decides its size. Set both wrong and you flood the buffer or lose time.
Running loop checks from field instrument through PLC to SCADA so every 4-20 mA point is proven end to end, and swapped transmitters surface early.
Computing usage across a wrapping counter without inventing phantom flow: register width, correcting the delta once, and rollover versus meter reset.
A broken wire or saturated loop still scales to a plausible value. Detecting over-range, under-range and stuck 4-20 mA inputs before an operator acts.
Class 0/1/2/3 assignment, deadbands, unsolicited responses, event buffers, and the IIN bits that decide whether a master survives a comms gap.
A DNP3 link that stalls or logs CRC errors gets fixed one layer down: addressing, confirmed service, retry and timeout tuning on radio and serial.
Why outstations stamp their own events, how the Need Time (IIN1.4) bit and delay-corrected clock writes work, and how bad sync turns an SOE log to fiction.
Designing and testing HMI command bits, acknowledgements and startup recovery so a stale command can't fire after a PLC or controller restart.
Running report-by-exception and change-of-state — DNP3 events, deadbands, heartbeats, integrity polls — without losing short events or stale values.
Browse returns success but the tag import is short. The OPC UA Part 4 v1.05 continuation point rules, MaxBrowseContinuationPoints, and how to find the cause.
AccessLevel vs UserAccessLevel vs WriteMask: why a setpoint that browses writable returns BadUserAccessDenied, and testing with the production identity.
A maintenance bypass is an operating state, not a comment field. Tag naming, ISA-18.2 out-of-service handling, expiry rules, and the audit trail.
How historians hide communication gaps behind interpolated lines and held values, and the quality rules that keep bad data out of a shift report.
How to split HMI button logic into authorization, mode, permissives, interlocks and quality — and show operators the actual reason a command is blocked.
Popup context passing for reusable faceplates: one stable equipment key, command binding that fails closed, and telling a broken binding from bad quality.
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.
Take trend axis defaults from OPC UA EURange, not 0-100. Clamping at 100% hides NAMUR NE 43 fault currents that land at -2.5% and 106.25%, plus alarm lines and commissioning checks.
Duplicate client IDs, wildcard rules nobody owns, retained commands that re-fire, and denied publishes that make no sound. What the MQTT spec actually guarantees at the edge.
Using StatusCode severity bits, SourceTimestamp and ServerTimestamp to catch frozen data, cached gateway values and clock drift a value-only HMI hides.
Why a flat 1-second scan overloads PLCs and gateways, and how scan classes and load shedding keep the data operators act on fast under stress.
Exception and periodic collection store different truths. Picking per tag so a 300 ms interlock survives, and proving the choice during commissioning.
Modbus has no standard endianness for 32-bit values, so two registers can decode to garbage. Proving byte and word order on site instead of guessing.
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 one-scan reject pulse lives for 20 ms. Poll every 250 ms and SCADA never sees it. Matching polling rates to PLC scan time, driver and historian.
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.
Why setpoint entry fails on the acknowledgment path, splitting display limits from PLC hard limits, and the tests that catch silent rounding.
OPC DA quality words, OPC UA StatusCodes, DNP3 flags — and how to display, alarm and historize them so a dead signal never reads as a valid value.
Split selected, downloaded and active recipe state into separate tags, compare what the PLC echoes against what you sent, and give rejections a reason.
How monitored item queues, discard policy and the Overflow status bit decide whether your client sees every fast tag change or only the latest one.
Split a five-second faceplate into first-load and update delay, then work down through tag counts, scan classes, trend queries and PLC load.
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.
An OPC UA method call can return Good while the machine never moves. Wiring HMI calls so operators see acceptance, execution and a real failure reason.
A calculated tag quietly becomes an official number. Checking formula, quality rules, period boundaries and counter resets before reports depend on it.
One screen says the pump is stopped, the report says faulted. The fix is a derived status tag with a written priority order that every client shares.
How to drive HMI state from feedback instead of command bits, set timeouts from real actuator travel, and show operators why a command was rejected.
A field walkthrough for analog scaling: ranges, engineering units, Modbus word order, NAMUR thresholds — so PLC, SCADA, HMI and historian agree.
Setting Modbus TCP poll rates, timeouts, retries and scan groups so one stalled device or saturated gateway can't drag the whole driver down with it.
Practical notes for choosing MQTT QoS levels, retained messages, clean sessions, and duplicate handling in SCADA and industrial telemetry projects.
How sampling interval, publishing interval, queue size, deadband and the KeepAlive/Lifetime pair decide whether your client and historian see the process.
After a PLC download the session opens and every item returns Bad_NodeIdUnknown. How namespace indexes and client caches shift, and what to check first.
Designing downtime reason codes operators pick correctly under pressure: prompt timing, auto-coding from PackML state, and the fields reports need.
Using Last Will, birth messages and retained state so a SCADA screen shows offline, stale and healthy as three things — not one green icon that lies.
Picking historian deadbands and compression from the instrument and the process, not HMI decimal places, so trends keep movement without storing noise.
Modbus connects, unit IDs respond, polls complete — and the operator still reads a swapped float. Proving a register map before the historian trusts it.
A SCADA screen shows a believable number long after the device stopped updating. Heartbeat, watchdog and stale-data tags that make freshness visible.
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.
How raw SCADA, HMI and protocol values become useful machine state, process state, alarm state and control state, and where each one is decided.
A practical guide for creating readable, maintainable SCADA tag names across equipment, signals, alarms, trends, and reports.
A practical definition of SCADA tags and how they connect PLC addresses, alarms, trends, screens, and reports.