The short answer
Historians
A historian is a time-series store built for process data: millions of values per day, written continuously, read back as trends and aggregates over any period. It collects from the SCADA tag database or straight from controllers, compresses each tag with a deadband so that noise is not stored, and answers queries by interpolating or aggregating between the samples it kept. The two decisions that matter are what to collect and how hard to compress, and both are easy to get wrong in the direction of losing detail nobody can get back.
Key points
- A historian stores changes, not samples: a value is written when it moves more than its deadband, and a flat line costs almost nothing.
- What is not collected is gone forever; collect more than seems necessary and compress it sensibly.
- Compression deadbands set too wide turn a real oscillation into a straight line in the record.
- Retrieval interpolates between stored points; a trend is a reconstruction, and the raw points are the truth.
- Back it up, keep it on its own storage, and decide how long data lives before the disk decides for you.
Why not a database
A relational database stores rows and is designed for transactions. A plant produces a value for every tag every second, ten thousand tags, forever, and the questions asked of the data are about time: what did this look like last Tuesday, what was the average over the shift, when did it first exceed the limit. A historian is a store optimized for that: append-only writes, compression designed for signals, indexes by time, and retrieval that understands interpolation and aggregation. Most also present the data through SQL for the tools that expect it, which is the subject of the SQL integration page.
Getting data in
- From the SCADA tag database
- The usual path. The historian subscribes to tags in the runtime and records them as they change. Simple, and it means the historian sees what SCADA sees, including its scan intervals and its outages.
- Directly from controllers
- A collector reads the controllers itself, by OPC UA or a native driver. It survives a SCADA outage, it can run faster than the SCADA scan, and it is a second load on the controller communications.
- Store and forward
- A collector at a remote site buffers data when the link to the central historian is down and sends it when the link returns, so that the record has no gap. On any site connected over radio or cellular this is the feature that decides whether the history is trustworthy.
- Manual and laboratory data
- Values entered by hand, from a lab result or a meter reading, with the time they apply to. A historian that accepts these lets the plant keep one record instead of a spreadsheet beside it.
Compression
A historian that stored every value of every tag every second would fill any disk. Instead each tag has a deadband: a new value is stored only when it differs from the last stored value by more than the deadband, with a maximum interval so that a stable value is still written occasionally. More sophisticated schemes store a point only when the signal leaves a corridor projected from the last stored points, which reconstructs a slope from two points instead of twenty. Either way the principle is the same: store what changed, reconstruct the rest.
Getting data out
A trend over a week of a tag stored on change has points at irregular intervals. The historian answers a request for evenly spaced values by interpolating between stored points, and answers a request for an average, a minimum, or a total by aggregating them with time weighting. That is fine and it is fast, and it is worth knowing that a trend drawn at one-minute resolution from data compressed at ten minutes is a reconstruction that never saw the minutes between. When the question is what exactly happened at 03:14, ask for the raw stored values, not the interpolated ones.
What to collect
- Every analog measurement, every setpoint, every controller output, and every equipment run status, at a deadband suited to each.
- Every alarm and every operator action, with timestamps, in the event record beside the values.
- Communication status per controller, so that gaps in the data can be told apart from flat process.
- Calculated values that a report will need, such as daily totals, computed once and stored rather than recomputed from raw data each time.
- More than seems necessary. Storage is cheap; a value that was not collected during the event nobody predicted is expensive.
Keeping it
The historian lives on its own storage with its own backup, because it is the record of the plant and, for a utility, part of the regulatory record. Retention is decided in advance: full resolution for a period, aggregated beyond it, or full resolution forever if the storage allows, which it increasingly does. Clock synchronization across every source is what makes the timestamps mean anything; a controller five minutes fast produces a history in which effects precede their causes. And someone owns it: tags added to SCADA are added to the historian, deadbands are reviewed, and the backup is tested by restoring it.
Frequently asked questions
- How much data does a historian store?
- Far less than the raw rate suggests, because it stores changes. A stable tag might store a few points an hour; a noisy one a few a second. Ten thousand tags at typical plant rates come to a few gigabytes a year on most platforms, which is why full-resolution retention for many years is now normal.
- Why does my trend look smoother than the live value?
- Compression. The historian stored only values that moved more than the deadband, and the trend interpolates between them. If detail that matters is missing, the deadband on that tag is too wide.
- Should the historian collect from SCADA or from the PLCs directly?
- From SCADA is simpler and adequate for most sites. Direct collection survives a SCADA outage and can run faster, at the cost of a second polling load on the controllers. Large plants often do both for different tags.
- What is store and forward?
- A collector at a remote site buffering data while the link to the central historian is down, then sending it when the link returns, so the history has no gap. Essential on radio and cellular sites.
Related topics
- SCADA ArchitectureThe parts of a SCADA system and how data moves between them: I/O servers, the tag database, clients, the historian, the alarm server, and the topologies from a single panel PC to a redundant, distributed plant.
- Historian CompressionHow historians store years of data on a disk: exception deadbands at the collector, swinging door compression at the archive, what each discards and what it keeps, the settings that turn a trend into a staircase, lossless alternatives, and how to check that the compressed data still tells the truth.
- TrendingUsing historian trends to understand a process and diagnose a problem: pens that belong together, scaling and time ranges, raw versus averaged data and what compression hides, overlays and cursors, event markers, and the patterns that point at each cause.
- Trend GapsHoles in a trend where data should be: a communication loss, a historian that stopped or fell behind, a buffer that filled or never forwarded, compression set too coarse, a renamed tag, or a clock that jumped. Reading the cause from the shape of the gap.
- What Is SCADA?Supervisory control and data acquisition: the layer that collects data from controllers across a system, presents it to operators, records it, and lets them intervene.
- SCADA ServersWhat the servers in a SCADA system do and what a utility should expect of them: the I/O, alarm, historian, and client roles, physical versus virtual, redundancy, sizing, placement, backup, patching, licensing, and monitoring.
Direct contact
Have a controls question?
Reach Eric Sullivan directly about anything on this site, a controls or automation topic, or one of his personal projects.