Scaling silo contents to kg using hydrostatic sensor

DairyBoy

Member
Join Date
Jun 2007
Location
UK
Posts
393
I'm having a brain-glitch in trying to display the liquid contents of a silo in kg.

There is a 0-1 bar sensor at the base of the silo. The silo has a conical base. The product has a specific gravity of 1.2.

I've used my tried and trusted function block for the silo volume in litres and added a stage at the beginning and end to correct for the SG of the product. If the silo was a plain vertical cylinder I'd just multiply the final result by the SG to give me kg but as there's a conical base I figured that for a SG other than 1 the sensed height of the product would be incorrect which would affect the calculation for the conical stage and the cone/cylinder interface dimension.

So, I've compensated for the SG at the beginning by using "input level*(1/SG)", then done the volume calc for the whole silo and then I've multiplied the resulting volume (in litres) by the SG to give kg. And it comes out wrong. (Of course, you all say).

Please share your knowledge with someone who's thought long and hard (although apparently not enough) but is still unable to see the wood for the trees. Thank you.
 
The key is correctly calculating volume. For the cylindrical portion of the tank, the formula is PI * R^2 * H where R is the radius of the tank and H is the height above the base of the cylinder (not the height above the pressure sensor).
The same formula works for the conical portion, but R varies with the height by the relationship R = H * Tan(x) where x is the angle the wall of the cone makes with the vertical. Also, H is the distance above the pointed end of the cone. Be sure to correct for that if the pressure sensor is not located at that location.
When the liquid height is in the conical portion you only need to use the formula for that portion of the tank. Once the level gets into the cylindrical portion you use the formula for that and add the value for the full conical portion. Once you correctly calculate the volume in liters multiply by the specific gravity to get the weight in kilograms.
 
[FONT=&quot]You don't mention using mH2O or mmH2O pressure units.
[/FONT]
[FONT=&quot]1.00 bar = 10197mmwc (water column)[/FONT]

[FONT=&quot]Level measurement should be in water column units (or converted to water column units) which then converts to physical level by dividing by SG.
[/FONT]
[FONT=&quot]calculate level = Pressure mmwc/SG. [/FONT]
[FONT=&quot]Convert to volume: cylinder + conical dish. [/FONT] [FONT=&quot]Convert to mass by multiplying by 1.2 (SG)[/FONT]

I figured that for a SG other than 1 the sensed height of the product would be incorrect which would affect the calculation for the conical stage and the cone/cylinder interface dimension.

Not True. Hydrostatic head pressure sensing provides the correct level measurement regardless of the shape of the vessel.

 
hydrostatic pressure: p = density(rho) * g * h
p = Pascal (1bar = 100000Pascal)
rho = being in kg/l (1.2)
g = specific gravity (~9.81 N/kg depending on geographical location)
h = height in meters

So first convert the pressure in bars to pascal then to a height in meters of the fluid.
h=p/(g*rho)


Next convert the height in meters to the volume of the fluid.
Assuming the sensor is at the very bottom of the cone,...

We have 2 situations, either we are in the cone part at the bottom or we are above the cone part.

first calculate pi and the Surface area of the the circle

pi=4*arctan(1)
S=D²*pi/4
with D= diameter of cylinder

if h < h_cone
then V=h*S/3
else V=h_cone*S/3+(h-h_cone)*S

Now you have the volume you can times it by the density to get the weight or you could just not divide it by the density in the first step.

If it is for Siemens, I have the code somewhere in ladder and also in scl.
 
Thank you for your answers. I used the phrase "tried & trusted" because I know that the cone/cyl calculation is good.

There are many ways of being dumb and here's mine: I was simulating the sensor input with a substitute tag. For SG=1 all was fine. But when I changed the SG I neglected to change the simulated sensor input (*1.2) so the calculation was still being performed on a simulated height value based on water. :oops:

DanW, re "not true", I know what you are saying but if the input value is not converted to water equivalent at the outset then for the cone section the the perceived height will be incorrect for SG other than 1 and this will affect the result of the cone section calculation. Had it been a cylinder all the way I wouldn't do anything as it's a hydrostatic sensor and the multiplication is implicit, so calculated litres is already *1.2
 
You should be able to convert the pressure in bars to a weight(mass) in kgs without inputting the specific gravity (rho).

If your liquid weighs twice as much, it will cause twice as much pressure.

I would suggest making a new function block for converting pressure to kgs instead of reusing your litres one and building on top of it, especially for clarity when someone else looks at the code.
 

Similar Topics

I want to measure the tank level and get the sensor output to the PLC. Below are the details : Tank Height =0 - 3m, the sensor is stalled 0,2m...
Replies
14
Views
477
Hi, I have a ControlLogix system with 1756-IF16 analogue inputs. I can't scale the inputs at the card as there is a requirement to facilitate...
Replies
6
Views
137
I know nothing about simaticnet OPC server. I do know Kepware. I would only ever scale raw to engineering in the PLC, but it is possible to scale...
Replies
5
Views
215
Hi all. I'm working on a rehab and I'm trying to figure stuff out. See screenshot at the bottom. Local:5:I.Data[6] in BTD instruction is a...
Replies
6
Views
705
Hello all, First post here. Hitting a wall with finding info on this topic online, and none of my coworkers have a clue. I have a PanelView...
Replies
10
Views
1,340
Back
Top Bottom