Introduction
E3Storage is a historian module in E3, responsible for compacting data and thus optimizing the use of databases and causing the information to be stored in smaller spaces.
By using a data compacting algorithm, the relevant information of a certain process is stored in E3Storage, occupying less space in disk than the data periodically recorded by the Historic.
E3Storage’s basic premise is to store information only when there is significant variation, or then after a certain time interval has passed without any records; such parameters will be defined by the user. Data compacting is done by BoxCar/BackSlope algorithm, which analyzes tag variation and compacts data, therefore making it possible to retrieve only useful information.
We recommend using E3Storage in applications where the focus is trend analysis of a few essential data from a certain process. On the other hand, when the application requires that information be recorded with more precision (for example, for measuring services for further billing – such as water, gas, or electricity), we do not recommend using E3Storage, but conventional Historics instead.
Certain parameters from E3Storage require extra care in their settings, as seen below:
Scan Time
Scan Time is a parameter from E3Storage designed to configure the tag’s sample rate. This algorithm rebuilds a sequence of values whenever the tag lags in a certain value. In the example below, if ScanTime is set up as 5 seconds and the tag goes for 30 seconds without reporting any values, the algorithm assumes that the tag value remained the same up until 5 seconds before the next variation, and then inserts point A’.
ScanTime property’s functionalities are illustrated below.
This image represents a sequence of four events of a tag, whose variation is 2-minute long. ScanTime parameter had not been inserted yet, which gives the impression the tag is fluctuating continuously for the whole 6-minute period.
The next image shows the same data input after ScanTime parameter has been set up as 2 seconds. The tag originally fluctuated every 2 minutes, and ScanTime was set up as 2 seconds; therefore, every 2 seconds before any variations in the original tag, ScanTime inserts a point. The chart below reproduces exactly what has happened, which is: the tag varied significantly three times during the period, but most of the time it remained with a fixed value.
MinRecTime
MinRecTime is a parameter from E3Storage that establishes a minimum time interval for new data to be recorded. This algorithm has a destructive aspect, i.e., all variations inside the MinRecTime interval will be deleted and only the last value in the interval will be dislocated outside, so as to respect this parameter.
The previous example helps you better understand MinRecTime’s functionalities.
In this case, you will set up MinRecTime parameter to 1 minute, i.e., a 1-minute interval will always be respected since the last recording so that new data can be recorded again. What you can see is that the original points (in blue) are within MinRecTime’s period, which means there is no 1-minute interval between the point inserted by ScanTime (in green) and the original point (in blue). That way, the TimeStamp of the original point changes so that it can be displaced to be exactly at the end of MinRecTime’s period.
Because of its destructive aspect, MinRectime should not be set up in a large value. The goal of MinRecTime is to eliminate “peaks” (when the tag changes its value too abruptly, and then quickly returns to the original value), but the risk of also eliminating useful data in the process is big. Therefore, we suggest using MinRecTime only in cases where there is too much variation in the data source, or then when the user does not mind the risk of losing some data (for example, when the client needs to record only one value per hour, no matter what the variation during the period is).
MaxRecTime
MaxRecTime is the maximum interval, in seconds, between the TimeStamps of two consecutive records stored in the database, that is, the maximum amount of time with no data being recorded. For example, even if a tag remains unchanged, its value must still be written in the database whenever you reach the number of seconds set in MaxRecTime.