Historian Monitor (Reference) provides real-time visibility into historian table operations and data collection status during runtime, it enables:
Access the monitor at Historian → Historian Monitor when connected to runtime.
Built-in user interface for visualizing historian data:
Runtime properties of all historian tables:
Monitor historian status remotely without installation:
URL Format:
http://[server]:3101/html5/?Monitor=Historian
Parameters:
[server]
: IP address or hostname3101
: Production profile (default)3201
: Development profileExample:
http://192.168.1.100:3101/html5/?Monitor=Historian
Column | Description | Runtime Access |
---|---|---|
Namespace | Item namespace location | - |
Name | Historian table identifier | @Historian.Table.<Name> |
RowCount | Total rows stored | @Historian.Table.<Name>.RowCount |
SuccessCount | Successful storage operations | @Historian.Table.<Name>.SuccessCount |
ErrorCount | Failed storage attempts | @Historian.Table.<Name>.ErrorCount |
LastStoredTimeStamp | Most recent data timestamp | @Historian.Table.<Name>.LastStoredTimeStamp |
LastStoredErrorMessage | Latest error description | @Historian.Table.<Name>.LastStoredErrorMessage |
Access monitor properties in displays or scripts:
csharp
// Get table status
int rows = @Historian.Table.ProcessData.RowCount;
int errors = @Historian.Table.ProcessData.ErrorCount;
DateTime lastStore = @Historian.Table.ProcessData.LastStoredTimeStamp;
// Check for errors
if (@Historian.Table.ProcessData.ErrorCount > 0)
{
string error = @Historian.Table.ProcessData.LastStoredErrorMessage;
// Handle error condition
}
csharp
// Calculate success rate
double successRate = @Historian.Table.MyTable.SuccessCount /
(@Historian.Table.MyTable.SuccessCount +
@Historian.Table.MyTable.ErrorCount) * 100;
csharp
// Check data currency
TimeSpan dataAge = DateTime.Now - @Historian.Table.MyTable.LastStoredTimeStamp;
if (dataAge.TotalMinutes > 5)
{
// Alert: Data may be stale
}
High Error Count:
No Row Count Increase:
Timestamp Not Updating: