Historian Tables (Reference) define the storage configuration and archiving behavior for groups of historian tags within the FrameworX platform. Historian Tables are logical containers that:

  • Group related historian tags for organized storage
  • Define when and how data is archived
  • Specify storage locations and retention policies
  • Configure triggers and collection methods
  • Optimize database schemas for performance

Each table represents a collection strategy tailored to specific data characteristics and storage requirements.

In this page:


HistorianTable Configuration Properties

When configuring a HistorianTable, you need to specify some properties defining when and how data will be archived. The following table describes each of the properties available.

Field

Description

ArchiveLocation

Defines the Archive Location used. By default, the TagHistorian based on SQLite is used. For more information, access the Historian Storage Locations (Reference).

TableName

Name of the HistorianTable object. For other databases, this name is used as a logical grouping name.

AutoCreate

If you select this option, the Historian module will verify if this table has already been created in your SQL database. If the table does not exist, it will create a new one.

SaveOnChange

If you check this option, an action event to archive Tag data is generated whenever the Tags value changes.

Trigger

The Trigger option enables you to choose an event that, when it happens, will trigger the archiving of all Tags associated with the current HistorianTable in the database. You can use any tag, object, or property from the object's namespaces as a trigger. Click the Elllipses button (...) to access all options available.

TimeDeadband

Specify the minimum logging interval using HH:MM:SS:MS (Hours, minutes, seconds, milliseconds) format. This parameter determines the duration the system must wait after storing one tag value before storing a new one. It prevents excessive record creation in the database, especially if you're using the SaveOnChange option.

If set as zero, this setting is inactive. 

As an example, consider you set a five-second deadband. After a Tag is archived, the counter begins. If the counter doesn't reach five seconds, no Tag information will be saved, independent of how big its value changes. The table below exemplifies the example.

Tag's value

Current Time

Will be saved on Database?

5

12:05:05:00

Yes

20

12:05:07:00

No

25

12:05:10:00

Yes

LifeTime

Set the duration in days for retaining records on the Storage Location. The system automatically deletes data older than the specified lifetime.

If you set the value to 0 or leave it blank, the system will not perform automatic data deletion, ensuring the data remains untouched.

SaveQuality

When checked, a column in your SQL DB stores the Quality property of the Tag argon with the value. The quality level defines how reliable the Tag is, and it follows the OPC standard specification. By checking this option, only points with real data will be displayed when you access a graph. Check more about this option in the section on this page. 

Normalized

When checked, the system uses the Normalize table schema for SQL databases or the Standard schema otherwise. For more information on SQL database schemes, refer to the Archiving Process.

ValueColumnsType

Select the type of value to be stored in the value columns, which defines the Tags' value type in the SQL database. You can change this property only when creating the HistorianTable. 

Description

Description for this HistorianTable object.


Save Quality

In certain instances, the graph may exhibit lines and values even in timestamps where there is no data present. For instance, when you access a graph that you know lacks data and you see a continuous line connecting the endpoints of existing data points, despite the absence of data in between, you can infer that you are leading with unreal information. If you click on such areas, the value shown can lead you to misleading cursor values, as no data exists for those specific moments.

To address this issue, you can remove the line connecting the points of the graph where there is no data. This can be achieved by enabling the SaveQuality property in your HistorianTable, as depicted in the image below. If the SaveQuality option is not available in any column, you can enable it by right-clicking on the top of any column name and select SaveQuality.



Creating Historian Tables

  1. Navigate to Historian → HistorianTables
  2. Click Plus icon
  3. Configure properties:
    • Set TableName
    • Choose ArchiveLocation
    • Select trigger method
    • Configure deadbands
  4. Click OK

<ac:structured-macro ac:name="info"> ac:rich-text-body Configuration Dependencies: Some options are mutually exclusive. For example, Normalized tables cannot use Triggers and must use SaveOnChange. </ac:rich-text-body> </ac:structured-macro>


Archiving Methods

SaveOnChange

Archives data when tag values change:

  • Individual tag monitoring
  • Respects deadband settings
  • Efficient for sparse data
  • Works with normalized schemas

Trigger-Based

Archives all table tags on trigger event:

  • Synchronized timestamps
  • Batch storage operations
  • Supports time-based or event-based
  • Standard schema only

Combined Approach

Using both SaveOnChange and Trigger:

  • Primary: SaveOnChange for value changes
  • Backup: Trigger ensures periodic storage
  • Prevents data loss during steady-state

TimeDeadband Configuration

Prevents excessive database writes:

Format: HH:MM:SS:MS

Example Operation:

Tag ValueTimeTimeDeadbandArchived?
512:05:05:0000:00:05:000Yes
2012:05:07:0000:00:05:000No (2s < 5s)
2512:05:10:0000:00:05:000Yes

Interaction with Tag Settings:

  • Tag Deviation can override deadband
  • RateOfChange can force immediate storage
  • DeadBand filters small changes

Schema Selection

Standard Schema

Best for:

  • Synchronized data collection
  • Trigger-based archiving
  • Fixed tag groups
  • Simple queries

Characteristics:

  • One row per trigger/interval
  • All tags share timestamp
  • Fixed columns per tag
  • Maximum ~200 tags per table

Normalized Schema

Best for:

  • Asynchronous data
  • SaveOnChange archiving
  • Sparse data patterns
  • Large tag counts

Characteristics:

  • One row per tag change
  • Individual timestamps
  • Dynamic tag addition
  • Unlimited tags per table
  • No redundancy support

Data Retention

LifeTime Setting

Automatic data management:

  • 0: No automatic deletion
  • > 0: Delete data older than N days
  • Runs daily maintenance job
  • Frees storage space

Retention Strategies

Data TypeRecommended LifeTime
High-frequency process30-90 days
Production records365 days
Quality/compliance2555 days (7 years)
Temporary/debug7 days

SaveQuality Option

Stores OPC quality information:

Benefits

  • Identifies bad/uncertain data
  • Prevents interpolation over gaps
  • Improves graph accuracy
  • Supports data validation

Quality Values (OPC Standard)

  • 192: Good quality
  • 0: Bad quality
  • 64: Uncertain quality

Visual Impact

  • With SaveQuality: Gaps shown in trends
  • Without SaveQuality: Lines connect all points

Trigger Configuration

Valid Triggers

  • Tag values: Tag.ProcessValue
  • Tag properties: Tag.ProcessValue.Quality
  • Server objects: Server.Minute, Server.Second
  • Expressions: Tag.Value > 100

Trigger Restrictions

  • Server-side execution only
  • No client tags allowed
  • Single trigger per table
  • Not available with Normalized

Common Triggers

PurposeTriggerInterval
PeriodicServer.MinuteEvery minute
Batch endTag.BatchCompleteOn batch
Shift changeTag.ShiftNumberOn change
Event-drivenTag.AlarmActiveOn alarm

Performance Optimization

Table Design Guidelines

  1. Group by frequency - Similar update rates
  2. Limit table size - 50-100 tags typical
  3. Separate critical data - Priority tables
  4. Match process dynamics - Related variables

Deadband Recommendations

Tag TypeTimeDeadbandNotes
Fast analog00:00:01:0001 second
Process values00:00:10:00010 seconds
Calculated00:01:00:0001 minute
Reports00:15:00:00015 minutes

Common Configurations

High-Speed Process Data

TableName: ProcessData
SaveOnChange: True
TimeDeadband: 00:00:01:000
Normalized: True
LifeTime: 30

Batch Records

TableName: BatchHistory
Trigger: Tag.BatchEnd
SaveQuality: True
LifeTime: 365

Regulatory Compliance

TableName: AuditData
SaveOnChange: True
SaveQuality: True
LifeTime: 2555
AutoCreate: True

Troubleshooting

Table not created:

  • Check AutoCreate enabled
  • Verify database permissions
  • Review connection string
  • Check table name validity

No data archived:

  • Verify trigger configuration
  • Check TimeDeadband setting
  • Confirm tags assigned to table
  • Review SaveOnChange setting

Excessive storage:

  • Increase TimeDeadband
  • Add tag deadbands
  • Enable normalized schema
  • Reduce retention period

Missing data points:

  • Check SaveQuality setting
  • Review trigger timing
  • Verify tag quality
  • Examine deadband values

Best Practices Checklist

  • Plan table structure - Group logically related data
  • Set appropriate deadbands - Balance detail vs storage
  • Use SaveQuality - Track data reliability
  • Configure retention - Manage storage growth
  • Document tables - Use Description field
  • Test before production - Verify archiving behavior
  • Monitor performance - Track storage and query times
  • Regular maintenance - Archive or purge old data



In this section...

The root page V10:@parent could not be found in space v10.

  • No labels