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:
Each table represents a collection strategy tailored to specific data characteristics and storage requirements.
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.
| ||||||||||||
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. |
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.
<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>
Archives data when tag values change:
Archives all table tags on trigger event:
Using both SaveOnChange and Trigger:
Prevents excessive database writes:
Format: HH:MM:SS:MS
Example Operation:
Tag Value | Time | TimeDeadband | Archived? |
---|---|---|---|
5 | 12:05:05:00 | 00:00:05:000 | Yes |
20 | 12:05:07:00 | 00:00:05:000 | No (2s < 5s) |
25 | 12:05:10:00 | 00:00:05:000 | Yes |
Interaction with Tag Settings:
Best for:
Characteristics:
Best for:
Characteristics:
Automatic data management:
Data Type | Recommended LifeTime |
---|---|
High-frequency process | 30-90 days |
Production records | 365 days |
Quality/compliance | 2555 days (7 years) |
Temporary/debug | 7 days |
Stores OPC quality information:
Tag.ProcessValue
Tag.ProcessValue.Quality
Server.Minute
, Server.Second
Tag.Value > 100
Purpose | Trigger | Interval |
---|---|---|
Periodic | Server.Minute | Every minute |
Batch end | Tag.BatchComplete | On batch |
Shift change | Tag.ShiftNumber | On change |
Event-driven | Tag.AlarmActive | On alarm |
Tag Type | TimeDeadband | Notes |
---|---|---|
Fast analog | 00:00:01:000 | 1 second |
Process values | 00:00:10:000 | 10 seconds |
Calculated | 00:01:00:000 | 1 minute |
Reports | 00:15:00:000 | 15 minutes |
TableName: ProcessData
SaveOnChange: True
TimeDeadband: 00:00:01:000
Normalized: True
LifeTime: 30
TableName: BatchHistory
Trigger: Tag.BatchEnd
SaveQuality: True
LifeTime: 365
TableName: AuditData
SaveOnChange: True
SaveQuality: True
LifeTime: 2555
AutoCreate: True
Table not created:
No data archived:
Excessive storage:
Missing data points:
In this section...