Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


HTML
<style>
.text-span-6 {
    background-image: linear-gradient(99deg, rgba(170, 163, 239, .5), rgba(125, 203, 207, .5));
    border-radius: 50px;
    padding-left: 15px;
    padding-right: 15px;
}

#title-text {
display: none;
}

.panelgradient {
    background-image: linear-gradient(180deg, #d5def0, whitesmoke);
    border-radius: 8px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 4rem;
    display: flex;
    position: relative;
}

</style>


<div class ="panelgradient">

<h1 style="text-align: center;">Historian <br> (Time-Series Data)</h1>

</div>



Introduction to the Historian Module

Image Added

The Historian module enables you to store Module enables the storage of tag values and their corresponding timestamps in SQL databases or third-party time-series databases. With this module you This module is designed to streamline the collection and storage of data in its time context. 

On this page:

Table of Contents
maxLevel3

Historian Functionality

The Historian

module

Module provides an out-of-the-box solution for archiving historical data without programming requirements. Although

it is possible to include

custom data logging procedures can be included in your solution using Scripts (.NET programming) and Datasets (SQL storage), the standard configuration tools of the Historian

module

Module can fulfill most typical data logging needs.

On this page:

Table of Contents
maxLevel3
minLevel2
stylenone


Key Concepts and Terms

HistorianTag

Tags whose values are stored in a HistorianTable, including dynamic references to external data.

HistorianTables

Groups Tags for historical archiving, defining settings for storage and retention.

StorageLocation

Defines where historian variables will be archived or read for charts and calculations.


Understanding the Historian Module

Module Features

  • Embedded Canary Historian includes 100 free Canary historian tags with any license.
  • The Historian Module works with the industry's
 

You can use the data archived through the Historian module in Alarms and Displays in your application.

Feature Highlights

  • Embedded Canary Historian, that includes free 500 Canary Historian Tags with any license – Edge to Unlimited.

  • The Historian module works with all industries major players (OSISoftPI, InfluxDB, and more).
  • Store and Forward Forward function ensures your data will not be lost if the database is unavailable. 
  • Universal Time and Daylight Saving

Archiving Process

The Historian module has a three-step archiving process:

  1. An event triggers the request to archive a group of values. There are two types of events (Trigger or TagChange), which are configured in a Historian Table.

  2. The Historian archives the values in the Target database. The Target Database can be a SQL Database or a TagProvider that is configured to act as a historian.

  3. If Store and Forward is enabled, the data synchronization is executed. This option stores data in a local database if the Target Database is not available, and sends it to the target when it becomes available.

For a more detailed Historian execution explanation, check Archiving process.

Main components

To configure the Historian module, you need to understand and set up three main components:

  • Archive Databases
  • Historian Tables
  • Historian Tags

You find a briefly description of each featue below.

Archive Database

The Archive Database defines where variables will be archived or read to be used in charts and calculations. You can use any SQL Database. In case you want to integrate third-party products designed to store long-term time-related values, known as time-series databases or Historian tools, you need to use the TagProvider Extensibility (not sure what it is).

Historian Tables

Historian Tables group Tags for historical archiving. You can define the Tags to archive to each Target Database using the Historian Table. Moreover, you can configure additional standard settings to apply to all tags in one particular group, such as when to save new data or how long to keep the data on the database.

HistorianTag

A Historian Tag refers to any, internal or external, Tag which values are archived into a Historian Table. In addition to Tags from the FrameworX, you can also include dynamic references to external data using the Tag Provider function.

Technical Overview

  • You can define a Tag representing any data point you want to track over time.
  • You can then add this Tag to a HistorianTable and configure settings like:
    • How often to sample and store data (e.g., every second, every minute)
    • Conditions to store the data (e.g., only when the value changes)
    • Data retention policies (e.g., keep data for 1 year)
  • The HistorianTable is associated with a StorageLocation, determining where the data will reside.
  • The Historian Module regularly samples the tag's value and writes the time-series data to the designated StorageLocation according to the settings in the Historian Table.

Configuring the Historian Module

Configuration Workflow

Historian Module Configuration Workflow

Action

Where 

Comments

Define the default TagHistorian  SQL Database

Historian → Storage Location

By default, TagHistorian maps to a SQLite database named and located the same as the Solution itself, followed by the proper FileExtension. Learn more at Historian Storage Locations.

If using Canary, modify the default target to the Canary Historian

Historian → Storage Location

If using Canary, a connection with the local embedded Canary Historian is already included in the new solution. You can use that connection or modify it to connect to an external Canary System. Learn more at Historian Storage Locations.

If necessary, add other Target Databases

Historian → Storage Location

If archiving or retrieving data from other Historian tools is necessary, add the connection in the Tag Providers.  Mark the "Set as Historian Server" checkbox when creating the provider. Learn more at Historian Storage Locations.

Create and Edit HistorianTables

Historian → Historian Tables

Add or modify HistorianTables, organizing how the Tags will be grouped for archiving and the Target Databases. Learn more at Historian Tables.

Add Tags to the HistorianTables

Historian → Historian Tags

Connect Tags to the HistorianTables. Either by typing, browsing, pasting or any of the available import methods. Learn more at Historian Tags.

Default Storage Location

When you create a new solution, the default database (Dataset.DB.TagHistorian) uses the embedded SQLite database provided in the Datasets Module. However, you can change the default option at any moment. Our platform lets you choose from various Historian options, including SQL databases, Canary Historian, or any available TagProvider powered by Historian tools. For a large quantity of tags, you can create HistorianTables to organize the storage into groups. Data is saved to a SQLite database by default.  You can customize this to save in any other SQL database or external storage.


Tip

You can use multiple Historian system with the same solution. One, already pre-defined, is the platform's built-in Historian using SQL databases. Additionally, you can use other Historian engines to solution, using the TagProviders to Historian packages, or using Script extensions.

The table below describes the options available.

Database Option

Description 

SQLDatabase

You can use any SQL-style database defined in the object HistorianTag available on Datasets → DBs.

Canary Historian

The platform includes an embedded Canary Labs Historian, and you can also use it with external Canary systems.

Read more information on the Canary Labs page.

TagProviders for Historians (InfluxDB, others)

The TagProviders feature allows you to seamlessly integrate with third-party products, which can act as native and fully integrated historian repositories. This feature enables you to use current interfaces or additional products, which can be incorporated using the driver toolkit.

See the list of Historian TagProvider at the page UNS TagProvider Connections.

Custom

There is a programming Interface that allows a class within the Script Module to act as the Historian repository, the call to archive and retrieved data are directly to that Script Class, and your solution has the complete freedom on customizing the responses to those requests.


Using SQLite or other SQL databases

By default, the SQLite is selected when creating new solution, but our built-in SQL Historian can work with any other SQL database.

See at Dataset Module configuration how to set a different SQL Database for the TagHistorian connection.

For other TagProvider Historian targets, please refer to the UNS TagProvider Connections configuration to define and configure their use.


 

Working with the Historian Module

Runtime Execution

You can control the Historian module execution while running your solution. To Run, Pause, or Stop the Historian module directly from the platform, go to Access Runtime → Runtime Diagnostics to control the module.

Image Added


When the Solution runs, the Historian Module operates in an isolated process on the server computer. The main procedures executed by the module include:

  • Checking if a request to store from a HistorianTable was generated (by the Trigger or OnTagChange events).
  • Archiving the data as needed.
  • Synchronizing with remote archives if store and forward or redundancy is enabled.
  • Replying to requests from displays and scripts on querying the archived data.


Info

For deeper and advanced understanding of the execution see Historian Advanced Topics / Archiving Process


Monitoring the Historian Module Execution

When the solution is in runtime, the Historian Monitor menu provides a way to monitor real-time information related to the Historian Module operation.

→ Read more about the Historian Monitor.

Displaying TrendCharts

It is possible to display charts to analyze and compare historical and real-time data. 

That is accomplished on displays using the TrendChart Control.

Querying Data on Scripts

This enables querying and retrieving data from variables and historical tables through scripts. 

That is accomplish by using directly the methods and properties available on the Historian Runtime Attributes.  


Historian Advanced Topics

Archiving Process

The Archiving Process is the process of receiving new data from Tags and storing it in databases defined by the StorageLocation. You can define different configurations to trigger storing actions based on your needs and database restrictions.

Read more about theArchiving Process.

Historian Runtime Attributes

The Historian Namespace exposes properties and methods from the .NET objects used by the Historian Module execution. You can use these properties and methods on your Displays or to create Scripts and Alarms. 

Read more about Historian Runtime Attributes.


Anchor
BestPractices
BestPractices
Best Practices and Troubleshooting

Common Issues and Solutions

Data Not Being Stored

Check the HistorianTable configuration, Trigger or TagChange settings, and Target Database. Ensure the settings are correctly set up, and the database connection is valid.

Incomplete data

Ensure that the Historian module is started (IsStarted flag) and the archiving process is functioning correctly. Check for any error messages in the OpenStatusMessage string.

#Slow data retrieval

Enable the caching feature (EnableCache) to optimize performance when requesting large amounts of data.

Store and Forward Not Working

Verify if the Store and Forward feature is enabled and configured correctly. Check the local database and target database connections.

Database Connection Error

Check the database connection settings and ensure that the database is reachable.

Best Practices and Recommendations

To ensure the smooth operation of the Historian module, follow these best practices:

Use Descriptive Names for Historian Objects

Use clear and descriptive names for HistorianTables, tags, and other related objects.

Optimize Data Retrieval

Optimize data retrieval by enabling caching when working with large datasets.

Ensure Data Integrity with Store and Forward

Use Store and Forward to ensure data integrity in case of temporary database connection issues.

Plan Your Data Storage Strategy

Determine how much data you want to store and for how long you want to store it. It is important to plan your data storage strategy in advance so that you can optimize the historian module for your specific requirements.

Document Your Historians Configurations

Document your historian module configuration to make it easier to manage and maintain. This includes documenting data sources, data types, sampling rates, storage options, and performance optimizations.

Use Security Best Practices

Protect the historian module from unauthorized access by implementing security best practices such as user authentication, access control, and data encryption.

Configuring the Historian module

The typical configuration workflow for the Historian Module has the following sequence. 

  1. Define the default TagHistorian SQL Database. By default, TagHistorian maps to a SQLite database named and located equal as the Solution itself. Learn more at Archive Locations.

  2. If necessary, add other Target Databases. 

  3. Create and Edit HistorianTables. Learn more at Historian Tables.

  4. Add Tags to the HistorianTables. Learn more at Historian Tags.

  5. Monitor your data on Runtime. Learn more at Historian Monitor.

For detailed information, see Configuring The Historian Module.

 

More on the Historian Module

To learn more about the Historian Module we recommend you visit the following pages:

Working with the Historian Module.

  • Information on Runtime Execution

  • How to Display TrendCharts

  • How to Query Data on Scripts

Advanced Historian Topics

  • Information on Archiving Processes

  • Historian Runtime Attributes

Historian Best Practices

  • Best Practices 

  • Troubleshooting


    In this section:

    Page Tree
    root@self
    spacesV10

    ...