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=HistorianParameters:
[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: