Level sensor accuracy problem

kallileo

Lifetime Supporting Member
Join Date
Jun 2008
Location
Thessaloniki, Macedonia, Hellas
Posts
353
I have a level sensor with resolution 5mm which is connected 10 bit analogue input of the PLC.
The level sensor is installed on horizontal tank of cylindrical shape.
I have big problem with the accuracy of the reading of the sensor.
For example on 3000l tank when the float is located close to the middle of the tank (1500l) this accuracy error is the biggest.
At 1500l even if the water in the tank is not moving at all I get on the screen a measurement that could be in the range of 1470l to 1530l. The current value of the reading changes every second between the aforementioned range.
If I have 200l in the tank the range is no more 4-5l.
All this looks reasonable to me because in the middle of the tank the displacement of 5mm on the rod is around 20l and on the bottom 5mm it could be as low as 5l.
Is my only solution to replace the level sensor with some other type with better resolution?
Is there any other way (in the program of the PLC) to decrease this error range in the middle of the tank?

You can see the sensor below:
http://www.deeter.co.uk/products/fl...s-series-stainless-steel-liquid-level-sensors
 
Is the reading constant, or is it a fluctuating signal from the transmitter. If it is a fluctuating signal you could apply digital filtering to the reading and damp the fluctuations.
 
1) Without knowing the maximum height, we can't really know what what resolution you have over the span of the instrument. It might be far less than 1/1000. Liters is not height, it's volume.

2) A horizontal round tank's volume is not linear with level. That's what Mickey's trying to tell you with his link.

3) Quote from mfg spec sheet: "Sensors in the stem detect small step-changes in level and, particularly over longer lengths, the output approximates to a continuous analogue signal."

It's a step change output, probably reed switches the close when the magnet passes over them. Step changes are inherently step changes.

4) Assuming Bernie's calc is correct, what's the deal about 0.3%?

5) Resolution is how fine the reading is.
Accuracy is how close the reading is to a standard.
 
No when measuring the height it sticks with your measurement, you are fully correct in this.
There is one other way and that is measuring the weight of the tank (yes possible with your height sensor.
put the tank on some cylinders and measure the pressure in height of the oilcolom in a separate tube. This will be linear instead of acting with PI etc.
 
The height of the rod is 1125 mm and tank's volume is not linear with the level.
The calculation of tank's volume is very complicated and you can see it in the attached file.
When the float is stable and the water inside the tank isn't moving it seems that the current value is fluctuating with maximum value plus minus 25l on the screen of the HMI.
What I want to do is somehow to display the mean value of the reading range so as the value displayed by HMI will not be fluctuating all the time.

Inclinded cylinder.jpg
 
Buy a level sensor/controller that has been calibrated to the tank and read out the information over Modbus RTU. It gate even more complicated if the ends are belled too.
 
The bevel on the ends is insignificant so it does not influence the overall volume in the tank.
The problem is the resolution of the existing sensor and we have ordered a sample Magnetostrictive Level Transmitter (resolution 0,1 mm) and a with separate indication panel from MTS for our tanks.
The calibration table of the tank will be imported into the controller of the sensor.

But we have also find a compromising solution for the existing sensor.
 
Wow nice formula, however if the tank is tilted or the sensor is not at the end, a better way is to make a table (common practice on ships with difficult tankshapes)
Yes it is easy to make an average, however the measurement is not more accurate as without.
If the sensor has resolution of 5 mm and you have 1024 points the tank is 5.120 meter high???
so suppose tank is 2 meter then you only have 2000/5 = 400 resolution so your meter is no good for this.
these magneto are expensive,
a cheaper way is with a pressure sensor and some compressed air. make a connectionpipe to the bottom and measure the pressure when you blow some nitrogen (when the content is flammable) or simple air to the pipe, and measure central. Resolution of these is 0.1 %, you only need the temp and the density of the content.
This we do on tanks filled with fish and icewater.
 
With the existing probe, the elevation (level) resolution is only 1 in 225
(1125mm total span/5mm min resolution) = 225 parts

Your 10 bit A/D with a resolution of 1/1000 is giving you 4 times the resolution of the probe.

In a horizontal round tank, the greatest volume change per unit of elevation (level) change is at midlevel, where the tank is the widest.

It appears that you had already accounted for the non linearity of elevation to volume, so that a one digit (±1) elevation probe dither is likely producing the large deviation you see because that's the nature of ±5mm elevation change in volume in a horizontal round tank.

Your conclusion to move to a technology with better resolution will reduce the dither to the limits of the A/D, at 1/1,000.
 
We have tried pressures sensor before and it's not a good solution since we produce milk cooling tanks and the are some hygiene issues with the installation of this type of sensors.
The length of the rod is 1125 mm and the height of the tanks is 1207 mm.
I know that the best solution is to move to Magnetostrictive technology and are doing it right now.

But the problem right now is with existing installation.
I'm not the programmer of the PLC but I'm really interested to learn if there any way to calculate and display the average in order to reduce the fluctuation range of the current value even the value displayed will be less accurate.
It looks like quite complicated algorithm to me.
 
When the float is stable and the water inside the tank isn't moving it seems that the current value is fluctuating with maximum value plus minus 25l on the screen of the HMI.
What I want to do is somehow to display the mean value of the reading range so as the value displayed by HMI will not be fluctuating all the time.

Noise? You might try a simple filter. See text below.

FV=FV+C(NV-FV)
Where:
FV= Filtered value
C= constant (range 0-1) The smaller the number the more dampening.
NV= New Value
 
aha it is milk, yes then these MAGNETO (Comic)is the way to go as the unit may be even under liquid to work proper, cleaning is easy.
A filter is easy see mickey, run this every 1 second or so.
to be more precise you could use two sticks and put them 2.5 mm apart this way you will have double resolution
1125/5 = 225 points on your PLC divided over a scal of 1024
for calcs i found this one http://www.blocklayer.com/tankhorizontal.aspx
10 __ 7.3120 __ 20.6130 __ 37.7740 __ 58.0150 __ 80.8660 __ 106.0270 __ 133.2680 __ 162.3990 __ 193.27100 __ 225.77110 __ 259.78120 __ 295.21130 __ 331.99140 __ 370.03150 __ 409.27160 __ 449.64170 __ 491.11180 __ 533.6190 __ 577.08200 __ 621.5210 __ 666.82220 __ 713230 __ 760.01240 __ 807.8250 __ 856.35260 __ 905.62270 __ 955.58280 __ 1006.2290 __ 1057.46300 __ 1109.33310 __ 1161.78320 __ 1214.79330 __ 1268.33340 __ 1322.37350 __ 1376.91360 __ 1431.9370 __ 1487.34380 __ 1543.19390 __ 1599.45400 __ 1656.08410 __ 1713.07420 __ 1770.4430 __ 1828.05440 __ 1886450 __ 1944.23460 __ 2002.73470 __ 2061.46480 __ 2120.43490 __ 2179.6500 __ 2238.97510 __ 2298.51520 __ 2358.21530 __ 2418.04540 __ 2478550 __ 2538.07560 __ 2598.22570 __ 2658.45580 __ 2718.73590 __ 2779.05600 __ 2839.39610 __ 2899.74620 __ 2960.08630 __ 3020.39640 __ 3080.66650 __ 3140.87660 __ 3201670 __ 3261.03680 __ 3320.95690 __ 3380.75700 __ 3440.4710 __ 3499.89720 __ 3559.2730 __ 3618.32740 __ 3677.22750 __ 3735.88760 __ 3794.3770 __ 3852.45780 __ 3910.31790 __ 3967.86800 __ 4025.09810 __ 4081.98820 __ 4138.5830 __ 4194.64840 __ 4250.37850 __ 4305.68860 __ 4360.54870 __ 4414.93880 __ 4468.82890 __ 4522.2900 __ 4575.05910 __ 4627.32920 __ 4679.01930 __ 4730.09940 __ 4780.51950 __ 4830.27960 __ 4879.33970 __ 4927.65980 __ 4975.21990 __ 5021.971000 __ 5067.91010 __ 5112.951020 __ 5157.11030 __ 5200.291040 __ 5242.481050 __ 5283.621060 __ 5323.661070 __ 5362.551080 __ 5400.211090 __ 5436.591100 __ 5471.611110 __ 5505.181120 __ 5537.21130 __ 5567.571140 __ 5596.151150 __ 5622.781160 __ 5647.281170 __ 5669.391180 __ 5688.761190 __ 5704.871200 __ 5716.75
 
aha it is milk, yes then these MAGNETO (Comic)is the way to go as the unit may be even under liquid to work proper, cleaning is easy.
A filter is easy see mickey, run this every 1 second or so.
to be more precise you could use two sticks and put them 2.5 mm apart this way you will have double resolution
1125/5 = 225 points on your PLC divided over a scal of 1024
for calcs i found this one http://www.blocklayer.com/tankhorizontal.aspx
10 __ 7.31
20 __ 20.61
30 __ 37.77
40 __ 58.01
50 __ 80.86
60 __ 106.02
70 __ 133.26
80 __ 162.39
90 __ 193.27
100 __ 225.77
110 __ 259.78
120 __ 295.21
130 __ 331.99
140 __ 370.03
150 __ 409.27 etc because scale is not correct but if you fill in your own.

160 __ 449.64170 __ 491.11180 __ 533.6190 __ 577.08200 __ 621.5210 __ 666.82220 __ 713230 __ 760.01240 __ 807.8250 __ 856.35260 __ 905.62270 __ 955.58280 __ 1006.2290 __ 1057.46300 __ 1109.33310 __ 1161.78320 __ 1214.79330 __ 1268.33340 __ 1322.37350 __ 1376.91360 __ 1431.9370 __ 1487.34380 __ 1543.19390 __ 1599.45400 __ 1656.08410 __ 1713.07420 __ 1770.4430 __ 1828.05440 __ 1886450 __ 1944.23460 __ 2002.73470 __ 2061.46480 __ 2120.43490 __ 2179.6500 __ 2238.97510 __ 2298.51520 __ 2358.21530 __ 2418.04540 __ 2478550 __ 2538.07560 __ 2598.22570 __ 2658.45580 __ 2718.73590 __ 2779.05600 __ 2839.39610 __ 2899.74620 __ 2960.08630 __ 3020.39640 __ 3080.66650 __ 3140.87660 __ 3201670 __ 3261.03680 __ 3320.95690 __ 3380.75700 __ 3440.4710 __ 3499.89720 __ 3559.2730 __ 3618.32740 __ 3677.22750 __ 3735.88760 __ 3794.3770 __ 3852.45780 __ 3910.31790 __ 3967.86800 __ 4025.09810 __ 4081.98820 __ 4138.5830 __ 4194.64840 __ 4250.37850 __ 4305.68860 __ 4360.54870 __ 4414.93880 __ 4468.82890 __ 4522.2900 __ 4575.05910 __ 4627.32920 __ 4679.01930 __ 4730.09940 __ 4780.51950 __ 4830.27960 __ 4879.33970 __ 4927.65980 __ 4975.21990 __ 5021.971000 __ 5067.91010 __ 5112.951020 __ 5157.11030 __ 5200.291040 __ 5242.481050 __ 5283.621060 __ 5323.661070 __ 5362.551080 __ 5400.211090 __ 5436.591100 __ 5471.611110 __ 5505.181120 __ 5537.21130 __ 5567.571140 __ 5596.151150 __ 5622.781160 __ 5647.281170 __ 5669.391180 __ 5688.761190 __ 5704.871200 __ 5716.75
 

Similar Topics

how to program a laser level sensor to a cooler tank with an AB plc
Replies
6
Views
1,318
Hey guys, We have a metal container at work, we fill with saw dust (20fts x 15fts x 10fts) with the top open but we normally put a container...
Replies
4
Views
1,543
Hi everyone; Im having some problems with a digital level capacitive sensor. I wired it in the NO configuration and the input of the digital...
Replies
8
Views
3,415
Hello everyone, I need to install a level sensor in an existing plastic tank. It will go on top and there will not be pressure on it except if...
Replies
14
Views
7,333
Hello, I'm looking for a float style temp/level analog transmitter (0-10V analog) for a water tank. There are no chemicals in the water but the...
Replies
3
Views
1,675
Back
Top Bottom