Overview

About the Calculation Collector

Using the Calculation collector, you can perform data calculations on values already in the archiver. It retrieves data from tags in the Historian archive, performs the calculation, and then stores the resulting values into new archive tags. You can then access these tags like you access any other Historian tag.

Features of the Calculation Collector

The Calculation collector performs calculations on the following values:
  • Current values of other Historian tags in the same archiver.
  • Previous raw samples of other tags in the same archiver.
  • Calculated values of other Historian tags in the same archiver, such as minimum, maximum, average, or standard deviation. You can specify a time range for these calculations or perform a filtered query. You can use the resulting single number in a calculation.
  • Interpolated values of other Historian tags in the same archiver.
  • Any data retrievable using a VBScript, file I/O, ADO, and so on.

Data Flow

The following image shows the data flow in a Calculation collector. The output from a calculation is always a single Historian tag.

Advantages of Using the Calculation Collector

  • The Calculation collector can keep a history of the calculated values.
  • It can perform thousands of calculations per second. Therefore, it is generally preferred to a VB SDK program performing the same functions.
  • It can perform calculations on data stored in the following sources:
    • A SCADA database (such as iFIX)
    • A VB SDK program
    • A Historian collector (using input scaling)
    • By the Calculation collector
    • The Historian OLE DB provider
    • Reporting tools such as Crystal Reports
    • The Historian Excel Add-In

Limitations

  • Python Expression Tags are not supported for use together with the Calculation collector. The behavior of the Calculation collector is different from that of Python Expression Tags, which are used in cases where you do not want to store a raw data value, but wish to store only derived values. For more information, refer to Python Expression Tag Examples.
  • You cannot store specific numeric qualities or sub-qualities in a calculation formula. You can only set a good or bad data quality in the Calculation collector; that is you can store Good for NonSpecific (when quality > 0 in the calculation formula) or Bad for CalcFailed (when quality = 0 in the calculation formula).

About the Tags Used by the Calculation Collector

The Calculation collector uses the following types of Historian tags in a calculation:
  • One or more source tags: These tags are used in the calculation formula.
  • One or more trigger tags: These tags trigger the calculation. Triggers can be polled (schedule-based) or unsolicited (event-based).
  • A single destination tag: This tag stores the result of the calculation. It is also called a calculation tag. It must be different from the source tags of the calculation. However, a destination tag can be a source tag for another calculation.

The following image shows how you can use the Calculation collector to perform a more complex calculation with several tags and multiple calculations resulting in one output tag. It also shows how the output of one calculation can be used as an input to another.