I actually think that the OP's intention is to measure the volume in the tank, not the weight. But the two are directly proportional, the factor being the contents density, so I will continue assuming weight is required.
Measuring the weight of the contents of a tank can be directly obtained by the use of load-cells. This is the most accurate way, and it automatically compensates for whatever is in the tank, the tank's shape etc. etc.
However, this may not be the most practical way, as accurate measurement involves engineering the installation of said load-cells, e.g. Does the tank have legs that one or more load-cells can be installed on ?
In practice, the indirect method of measuring the hydro-static pressure at the bottom of the tank is usually the easiest to engineer, however, this is definately not measuring the weight of the contents, but is actually measuring the "fill level", or "hydro-static head" above the pressure transducer.
Now, for a tank with a uniform cross-section, converting the "head" to "weight of contents" is relatively simple maths, as it's just a linear scaling involving the fill-height, cross-sectional area (CSA), and density of the contents.
When the tank does not have a uniform CSA, as in the case of a conical or dished bottom, some linearisation is required to convert the "head" to weight around the fill level in the non-linear portion of the tank.
Linearisation can be performed inside the PLC, and a couple of methods can be used.
1. Use a look-up table. Have a set of head to weight (or volume) relationships stored in a 2-dimensional array, and interpolate the actual pressure reading between the two points above and below stored in the table. More points in the table can be provided where the tank is least linear, less, or even just 2 can be used when the fill level is linear (straight-sided part of the tank).
2. Perform complex trigonometric calculations to give the volume at the fill-height measured by the pressure transducer. (Not too bad with a conical, but horrendous with a dished-end, as there are usually multiple dish radii to consider)
Either way, the utmost accuracy will be obtained by filling the tank in metered stages, and recording the hydro-static head from the transducer. Using tank drawings is likely to be less accurate.
For my money, solution 1 is the easiest to implement.
The Linearisation can be performed outside the PLC. Many systems are available to give a direct tank contents reading from a hydro-static transducer, but they all have to have the linearisation data programmed into them.