To detect fillings, the processed data is used (it is done on the Data preparation and Filtration steps).
Ellipsis (...) substitutes Unit properties → Sensors → FLS properties when indicating the option paths.
Three options are attached to this detection:
- Option: Minimum fuel filling volume, liters;
- Option: Detect fuel filling only while stopped;
- Option: Calculate fuel filling volume by raw data;
- Special case: How a filling is processed?
Minimum fuel filling volume
... → Filling settings → 'Minimum fuel filling volume, liters'
This option helps to exclude false fillings, because sensors may send false data rise in motion.
Detect fuel filling only while stopped
... → Filling settings → 'Detect fuel filling only while stopped'
In normal conditions transport vehicles are fueled during stops. This option narrows its search to stops/parkings only. In addition, if the maximum interval between messages is indicated on the Advanced tab and it has been exceeded, a filling can be detected at this interval.
Calculate fuel filling volume by raw data
... → Filling settings → 'Calculate fuel filling volume by raw data'
When filtration is switched on, some fuel level deviations may occur at the beginning and end of a filling. To avoid it, the system uses unfiltered data when the filling volume is calculated. This option is applied only when the value before the filtration exceeds the value obtained as a result of filtration.
Special case: How is a filling processed?
Filling time frontiers and volume
The filling is performed.
Let the fuel volume in this message be Vcurr, the fuel volume in the previous message — Vprev. If the difference d (=Vcurr - Vprev) for the current message is positive, then the current message is marked as an initial filling message.
Time passes by. The filling is close to the finish. When d-value for some message becomes negative (i.e. the fuel volume in the current message is less than in the previous one), then it is called the final filling message.
If the fuel level does not change during the time indicated in the Timeout to separate consecutive fillings parameter in the FLS settings, the filling is considered finished as well.
The volume of the filling equals to Vfinal - Vinit (the difference in fuel volumes between the final and initial filling messages).
If the Calculate fuel filling volume by raw data option is activated, the values of the maximum (Vmax) and minimum (Vmin) fuel volume on the filling interval are used. The volume of the fuel filling will be Vmax - Vmin.
Filling timestamp calculation algorithm
Now it is time to find the filling timestamp.
Iteratively for every message within the filling interval (exclude the last one), the system seeks delta(=Vnext - Vcurr) for the next message which shows the fuel level growth between the current message and the next one.
The timestamp of the message whose delta is ultimately the biggest among others is regarded as the filling timestamp (in other words, the left message is selected from the message pair whose delta is the biggest one).
A filling timestamp is calculated dynamically based on the available data from the sensors.
Determining fuel fillings in the Fuel traffic table
The Fuel traffic table determines the fuel activity of the unit (fuel filling, theft, counter operation), according to which the report is being executed, as well as the units that were near it. The following algorithm explains what principle the system uses to determine to which of the nearby units the fuel was distributed.
The intervals for the distribution and reception of fuel are considered to be adjacent if the time of the fuel filling of the unit that receives fuel has fallen into the interval of operation of the counter of the unit that distributed it (see the diagram).
If there was no such match, the algorithm searches for the intersection of the entire fuel filling interval of the unit that received the fuel with the intervals of the counter of the unit that distributed it and selects the nearest one (see the diagram).