Hist orian Storage Locations (Reference) define the repositories where the FrameworX Historian module archives time-series data from historian tags and tables.
Storage Locations provide:
Each Storage Location serves as a destination for historian tables, enabling flexible data archiving strategies.
The Storage Location defines where Tag data will be archived establishing a clear linkage between tags and the storage infrastructure. When configuring the Storage Location, you can use:
SQL databases
Script Classes
Connections with Third-Party Historians, Like Canary and others.
When you set the Storage Location, you specify the storage system for Tag data.
By default, the platform uses an SQLite database. You can change the default database or add additional databases if you need to use different ones.
Built-in database support with TagHistorian object:
External historian systems:
Custom storage implementations:
Provider | Supported Databases |
---|---|
SQLite | SQLite |
Odbc | Firebird, MSAccess2003, MSExcel2003, MySQL, ODBC_DSN, ODBC_FileDsn, Oracle, SQLServer, SQLServer_WA |
OleDb | CSVFile, MSAccess2003/2007, MSExcel2003/2007, Oracle, SQLServer, SQLServer_WA |
OracleClient | Oracle |
SqlClient | SQLServer, SQLServer_WA |
PostgreSQL | PostgreSQL |
Property | Description | Required |
---|---|---|
Name | Unique identifier | Yes |
Description | Documentation text | No |
StoreAndForward | Local buffering on connection failure | No |
Storage System | Tag Provider or Script Class | Yes |
Object | Selected provider/class instance | Yes |
Protocol | Communication protocol (Tag Provider only) | Conditional |
Station Editor | Connection string configuration | Conditional |
When enabled, provides data integrity during connection failures:
StoreAndForward: True
Buffer Location: Local SQLite
Retry Interval: 5 seconds
Batch Size: 250 rows
Industrial historian with high compression:
Protocol: CanaryLabs
Connection: Server=hostname;Port=12345
Features: Compression, Aggregation, Web API
Open-source time-series database:
Protocol: InfluxDB
Connection: http://server:8086;Database=mydb
Features: High throughput, SQL-like queries
Enterprise historian platform:
Protocol: GEProficy
Connection: Server=hostname;Username=user
Features: Enterprise integration, Analytics
Script class must implement:
csharp
public class CustomStorage
{
public void StoreData(string table, DateTime timestamp,
Dictionary<string, object> values)
{
// Custom storage logic
}
public DataTable RetrieveData(string table,
DateTime start, DateTime end)
{
// Custom retrieval logic
}
}
Server=hostname\instance;Database=HistorianDB;
User Id=sa;Password=pwd;
Host=localhost;Database=historian;
Username=user;Password=pass;Port=5432;
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)
(HOST=server)(PORT=1521))(CONNECT_DATA=
(SERVICE_NAME=orcl)));User Id=hr;Password=pwd;
Server=localhost;Database=historian;
Uid=root;Pwd=password;Port=3306;
Database | Best For | Limitations |
---|---|---|
SQLite | Small systems | 10GB limit, single writer |
SQL Server | Enterprise | License cost |
PostgreSQL | Open source | Complex setup |
InfluxDB | Time-series | Specialized queries |
CanaryLabs | Compression | Proprietary |
Configure multiple locations for:
High-frequency data → Local SQLite
Production records → SQL Server
Compliance data → CanaryLabs
Temporary data → InfluxDB
Connection failures:
Store and Forward issues:
Performance problems:
Data not storing: