NetSCADA Logo
Login
Home
Products
Support
Site Map
FAQ's
Web Demo
Resources
Links
Search
Company Info

  Historical Trending Organization and Strategy     

This article deals with organizing your SCADA database for efficient archiving of historical data for the PLCs and RTUs on your SCADA system. Many SCADA systems are plagued with inefficient organization for system historical data that results in slow historical trend displays response times. A system that is overloaded with bloated historical database files may slow dramatically, or even halt operation. This article will outline some strategies that should help make your SCADA system manage historical database files as efficiently as possible.

Subjects Include:


Factors that Contribute to Inefficient Historical Trending   To top of page
 

How many times you have attempted to display a very long historical trend for some of your data only to have your historian stall or take an excessive amount of time to display the data? The usual reason for poor historian performance is excessive historical database file size(s). Most system integrators deal with this by configuring the system to keep only the last 7-30 days worth of data. In some cases this strategy may be OK but the ability to view important trends over longer periods of time may be lost. I have found that implementing a strategy to organize the historical database can minimize the amount of data archived. This can be accomplished without the loss of transients or important trends in the data and should allow for retention of data for a much longer period of time.


Historical Trending-Rules for Success    To top of page
 

The best strategy I have found for organizing the SCADA historical database is following the rules below:

  1. KNOW YOUR DATA. Know what’s important to the end-user and make sure the historical is archived for those points. Also know what’s important to the maintenance technicians for the system and make sure the historical is archived for those points also.
  2. LEAVE THE HISTORICAL TREND TURNED OFF FOR THE REMAINING POINTS. If no one needs the data, exercise diligence to turn the point’s historical data collection to an "off" condition.
  3. USE DEAD BANDS to minimize the amount of data collected. However, it is important that you do not set the dead band so loose that important transients are not captured. Again it is important to know your data to determine which points are the points where important transients may occur.
  4. If your SCADA package has the ability to ARCHIVE SOME OF THE OLDER HISTORICAL, yet still make it available at runtime, take advantage of that feature. The smaller the set of actively managed and updated historical data, the faster the updates.
  5. Below is an example of how organizing your Historical database can make your SCADA historian more efficient.


Unorganized PLC/RTU Historical Database    To top of page
 

In this case the integrator had 10 analog points on a PLC for which a historical strategy should be developed. In the example below the poll rate for all the points is 1 poll/second and no deadbands are set for any of the points. We are assuming that it takes 10 bytes of storage in the database for each integer type point and 12 bytes storage for each real or floating point type. As you can see, with no deadbands set, the historical database files would quickly grow unmanaged to an excessive size.


Example of an Unorganized Historical Database    To top of page
 

Assumes 10 bytes of storage in the database for each integer type point and
Assumes 12 bytes storage for each real or floating point type
Point #Type DataType of Number in PLCSource of Data# of samples saved/dayDead bandTotal bytes/day (uncompressed)
1Process pressure in PSIG 0-1,500Integer
(16 Bit)
PLC I/O Analog Input86,400None860,400
2Process temp in °F 32-150Integer
16 Bit
PLC I/O Analog Input86,400None860,400
3Process pressure safety high setting in PSIGInteger
16 Bit
Internal alarm setpoint value in PLC86,400None860,400
4Process pressure safety low setting in PSIGInteger
16 Bit
Internal alarm setpoint value in PLC86,400None860,400
5Process temp safety high setting in PSIGInteger
16 Bit
Internal alarm setpoint value in PLC86,400None860,400
6Process temp safety low setting in PSIGInteger
16 Bit
Internal alarm setpoint value in PLC86,400None860,400
7Process flow rate in CFD 0-20,000Real
32 Bit
Internal value calculated by application in PLC86,400None1,036,800
8Process flow rate Alarm High Setting in CFDReal
32 Bit
Internal alarm setpoint value in PLC86,400None1,036,800
9Process flow rate Alarm Low Setting in CFDReal
32 Bit
Internal alarm setpoint value in PLC86,400None1,036,800
10Fuel usage in CFDReal
32 Bit
Internal value calculated by application in PLC86,400None1,036,800
 Total    9,309,600


Organized PLC/RTU Historical Database    To top of page
 

In this case the integrator used a historical strategy that turned off the historian for some points unless the points changed and set deadbands for other points. In the example below the poll rate remains unchanged for all the points and is 1 poll/second. We are assuming that it takes 10 bytes of storage in the database for each integer type point and 12 bytes storage for each real or floating point type. As you can see, by turning off some of the unnecessary points unless they change and employing deadbands on other points, the historical database files would grow much, much more slowly. For the 10 analog points in the example, we were able to save >99% by reducing the amount of data saved daily from 9.3mb to 2.3kb! Additionally, any transients on the measured points would be captured and recorded for analysis by operations and engineering personnel. Also, changes to setpoint type points are also captured and recorded.


Example of an Organized Historical Database    To top of page
 

Assumes 10 bytes of storage in the database for each integer type point and
Assumes 12 bytes storage for each real or floating point type
Point #Type DataType of Number in PLCSource of Data# of samples saved /dayDead bandTotal bytes/ day (uncom-pressed)
1Process pressure in PSIG 0-1,500Integer
16 Bit
PLC I/O Analog Input1222 PSIG or min 1/hr1,220
2Process temp
in °F 32-150
Integer
16 Bit
PLC I/O Analog Input371 °F or min 1/hr370
3Process pressure safety high setting in PSIGInteger
16 Bit
Internal alarm setpoint value in PLC0Record only on change No changes0
4Process pressure safety low setting in PSIGInteger
16 Bit
Internal alarm setpoint value in PLC0Record only on change No changes0
5Process temp safety high setting in °FInteger
16 Bit
Internal alarm setpoint value in PLC0Record only on change No changes0
6Process temp safety low setting in °FInteger
16 Bit
Internal alarm setpoint value in PLC1Record only on change 1 change10
7Process flow rate in CFD
0-20,000
Real
32 Bit
Internal value calculated by application in PLC6010 CFD or min 1/hr720
8Process flow rate Alarm High Setting in CFDReal
32 Bit
Internal alarm setpoint value in PLC1Record only on change 1 change12
9Process flow rate Alarm Low Setting in CFDReal
32 Bit
Internal alarm setpoint value in PLC0Record only on change
No changes
0
10Fuel usage in CFDReal
32 Bit
Internal value calculated by application in PLC1Record only 1 sample/day12
 Totals    2,344


Adopting a Specification to Define a Historical Data Strategy    To top of page
 

Adopting a specification to define a historical data strategy could be one solution that may improve system historical database and historian performance. Additionally, adopting a historical data strategy helps ensure that important events, transients, and trends are recorded. If your system integrators adheres to a spec such as the below when developing your HMI and SCADA application databases, data historian performance should not suffer due to excessive database size. The below example assumes that your HMI or SCADA application allows sufficient control over the frequency and what triggers the recording of an historical sample.

The specification is an example only, and it will be necessary to define the allowable data deadbands for your process data types. You should review the historical recording configuration each process data point with knowledgeable operations, support, and engineering personnel to make a determination on the settings for historical recording including the deadbands.

The specification should also work with a specification to minimize the number of scans to collect all necessary data from your PLC or RTU system. You may find an example for that that specification here.


An Example Specification for a Historical Data Strategy    To top of page
 

Type Historical DataRecommended record intervalNotes
Discrete Input card statusRecord all changesSelective exceptions will be made for some points that we do not need to track
Discrete Output card statusRecord all changesSelective exceptions will be made for some points that we do not need to track
Discrete internals from RLL logicRecord only changes necessary for HMI/SCADA applicationSelective exceptions made for a few discrete internals that we need to track
Discrete internals from PLC diagnostic registersRecord only changes necessary for HMI/SCADA applicationSelective exceptions made for a few discrete diagnostic internals that we do not need to track
Analog Input card valuesUse deadbands for each process data typeDeadbands need to be applied on a point by point basis to ensure important changes and transients to the process are captured
Analog Output card valuesUse deadbands or record only on changeDeadbands need to be applied on a point by point basis to ensure important changes and transients to the controlled element are captured
Analog internals from RLL logic - alarm settingRecord alarm settings only on changeWhen operators make alarm limit changes, record the changes
Analog internals from RLL logic- setpoint valuesRecord setpoints values only on changeWhen operators make setpoint changes, record the changes
Analog internals from PLC diagnostic registersRecord diagnostic registers only on changeThese are usually error codes so when they change, record them.


How is NetSCADA designed to make Historical Trending efficient?    To top of page
 

NetSCADA is designed to minimize the effort to implement an efficient historical archiving strategy and has special features that make organizing historical data easy and efficient. NetSCADA allows each poll of a PLC or RTU to be configured individually for the interval for recording historical data for points collected by that poll. This allows high poll rates without bloating the size of the historical database. Additionally, deadband controls on each historical point allow the historical data for those points to capture important trends and transients. NetSCADA is designed to allow the integrator to implement a historical point by simply setting the historical property for the discrete or analog point to true. Click here to see more on how to set up NetSCADA for efficient historical data archiving.

Additional Resources   To top of page

 

 To top of page

 
 
Home | Products | Support | Resources | FAQ's | Links | Search
Web Demo | Site map | Company Info
 

Last updated: January 4, 2005
© 1999 - 2005 by NetSCADA, Inc.,   All Rights Reserved
For more information, E-mail   info@netscada.com
Send web site comments to our  Webmaster
Contact NetSCADA at (337) 839-1020.