Tuesday, December 11, 2012

IDX 8 Historian


Industrial Data Historians are fairly common place. Generally they fall into two categories: enterprise-class historians such as OSISoft PI and Wonderware Historian, which bristle with features and carry a correspondingly enterprise-class price tag, and then there are the “cheap” historians (or sometimes glorified file loggers), that log data, but usually have significant performance or other functional limitations.

The IDX 8 Historian is aimed at users that don’t want to spend the earth to get a solution that fits in between these two cases, that will provide data logging that is extensible to fairly large capacities and without the multitude of features most users don’t know how to or even wish to use.

Our historian is built on Microsoft SQL 2008 (or above). Certain features introduced in SQL 2008 have made it viable to implement data logging with performance we were happy with (rough ball park figures show we routinely achieve around 20-30K sustained writes and 30-50K reads per second using SQL Express using ordinary workstation hardware).  We are aware there are more than a few other historians built on SQL. However, we believe our approach is a little different and we like to believe this is what makes our Historian more than just another SQL data logger. Firstly, in order to address cost issues, a primary design goal for us was to ensure the Historian could use any edition of SQL server. You may be aware a SQL server license, particularly for the Enterprise edition can become quite pricey, and is often a non-starter for SMB’s that wish to add the benefits of historical data to their production analysis. Thus, the IDX Historian is able to run on anything from the Express (free) edition up to the Enterprise edition, although we envisage most customers won’t gain any advantage of going beyond the Standard Edition for IDX Historian use. The IDX Historian segments data across tables and multiple databases, so unless you plan to store more than 10GB of raw data per day (the database size limit for SQL Express 2008 R2) or need performance beyond what Express edition can provide (Express is limited to the use of 1 CPU and 1GB of RAM), the free Express edition is the likely starting point, from which you can always update to SQL Standard if required.

To start using the Historian, the first and generally only configuration step required is to set the Period and Segment Count settings. The Period setting defines how data is split across SQL databases, currently Month, Week or Day. The Segment Count setting defines how data is divided across tables within a database. For example, if you select the Period to be Day, if the Segment Count is set to 12, the data for each day will be split into 12 tables spanning two hours each.  Point of note here is that once the Period and Segment Count settings are defined, they cannot be changed without backing up and clearing any existing historical data. Therefore, these settings should be chosen with care.

Currently, real-time data logging is supported via IDX 8 Data Exchange. IDX 7 also supports logging via the Historian Client which allows IDX 7 instances on different machines to safely log data into the Historian. The Historian Client uses disk-based buffering to ensure captured real-time data is not lost in the case where communications between the client and server is lost or if the Historian server machine is restarted for example. The IDX Historian Client has both .NET and COM registered APIs that can be used to integrate real-time data from other sources, and is freely available on request, along with C# and C++ code samples. Additional historian configuration is performed on a per-tag basis via IDX Tag Manager (or on the slots in IDX 7), to set options such as data compression (5 compression methodologies are implemented, including the Swinging Door algorithm).

Data can also be queried from the SQL database directly, allowing for additional data analysis and reporting, without the requirement for additional OLEDB or other clients.

Viewing "interesting" historical data with the IDX Historian data viewer.

No comments:

Post a Comment