FE-ISO5167-DLL


FE-ISO5167-DLL (felib.iso5167) is a component of felib.dll.
Felib.iso5167 performs the calculation of

  • flowrate
  • differential pressure
  • pipe diameter
  • diameter of pressure differential device

completely in accordance with:

ISO-5167: Measurement of fluid flow by means of pressure differential devices inserted in circular cross-section conduits running full
  • ISO 5167-1:2003 - Part 1: General principles and requirements
  • ISO 5167-2:2003 - Part 2: Orifice plates
  • ISO 5167-3:2003 - Part 3: Nozzles and Venturi nozzles
  • ISO 5167-4:2003 - Part 4: Venturi tubes
  • ISO 5167-5:2016 - Part 5: Cone meters

Description of felib.iso5167 class interface: properties (variables), methods (functions) and error flags.

PROPERTIES
DESCRIPTION SET VALUE GET VALUE
Pressure: 0.1 to 2⋅108 Pa void SetPressure(double newValue) double GetPressure()
Temperature: -273 to 106 °C void SetTemperature(double newValue) double GetTemperatureC()
Density: 10-6 to 104 kg/m3 void SetDensity(double newValue) double GetDensity()
Viscosity: 0 to 10 Pa⋅s void SetViscosity(double newValue) double GetViscosity()
Isentropic exponent: 0.1 to 200 void SetIsentropicExponent(double newValue) double GetIsentropicExponent()
Pressure differential device type
  • I=0: Orifice, flange tappings
  • I=1: Orifice, corner tappings
  • I=2: Orifice, D & D/2 tappings
  • I=3: Venturi, machined inlet
  • I=4: Venturi, rough cast inlet
  • I=5: Venturi, rough-welded sheet-iron inlet
  • I=6: Long radius nozzle
  • I=7: ISA 1932 nozzle
  • I=8: Venturi nozzle (ISA inlet)
  • I=9: Cone meter
void SetDifferentialDeviceType(short int I) short int GetDifferentialDeviceType()
Location of pressure tap
  • I=0: upstream
  • I=1: downstream
void SetUpDownstream(short int I) short int GetUpDownstream()
Type of fluid
  • I=0: gas
  • I=1: liquid
void SetFluidType(short int I) short int GetFluidType()
Beta ratio (depends on selected pressure differential device - I)
  • I=0: 0.1 to 0.75
  • I=1: 0.1 to 0.75
  • I=2: 0.1 to 0.75
  • I=3: 0.4 to 0.75
  • I=4: 0.3 to 0.75
  • I=5: 0.4 to 0.7
  • I=6: 0.2 to 0.8
  • I=7: 0.3 to 0.8
  • I=8: 0.316 to 0.775
  • I=9: 0.45 to 0.75
n/a double GetBetaRatio()
Coefficient of discharge n/a double GetDischargeCoefficient()
Expansion factor n/a double GetExpansionFactor()
Reynolds number n/a double GetReynoldsNumber()
Differential pressure: 0 to 0.2⋅Pressure void SetDifferentialPressure(double newValue) double GetDifferentialPressure()
Mass flowrate: 0.001 to 109 kg/h void SetMassFlowRate(double newValue) double GetMassFlowRate()
Pressure differential device diameter (depends on selected pressure differential device - I)
  • I=0: 12.5 to 750.0 mm
  • I=1: 12.5 to 750.0 mm
  • I=2: 12.5 to 750.0 mm
  • I=3: 20.0 to 187.5 mm
  • I=4: 30.0 to 600.0 mm
  • I=5: 80.0 to 840.0 mm
  • I=6: 10.0 to 504.0 mm
  • I=7: 15.0 to 400.0 mm
  • I=8: 20.54 to 387.5 mm
  • I=9: 33.1 to 446.0 mm
SetOrificeDiameter double GetOrificeDiameter()
Protection key void SetKeyCode(long nNewValue) n/a
Error status n/a long int GetErrorFlag()
Error report n/a BSTR GetError­Report()
METHODS
Calculation of differential pressure long int CalculateDifferentialPressure(): calculates differential pressure, beta ratio, Reynolds number, coefficient of discharge, expansion factor and returns long int representing error status.
Calculation of flowrate long int CalculateFlowRate(): calculates mass flow-rate, beta ratio, Reynolds number, coefficient of discharge, expansion factor and returns long int representing error status.
Calculation of the diameter of pressure differential device long int CalculateOrificeDiameter(): calculates differential device diameter, beta ratio, Reynolds number, coefficient of discharge, expansion factor and returns long int representing error status.
Calculation of the diameter of pipe long int CalculatePipeDiameter(): calculates pipe diameter, Reynolds number, coefficient of discharge, expansion factor and returns long int representing error status.
ERROR STATUS
Error status bits are cleared or set upon the completion of any of the above methods, as follows:
Bit 0 =1 (0001H) Pressure < 10-3 Pa or > 109 Pa.
Bit 1 =1 (0002H) Temperature < 273.15 °C or > 106 °C.
Bit 2 =1 (0004H) Differential pressure > 0.25⋅pressure or dp < 0.00025 Pa.
Bit 3 =1 (0008H) Density < 10-6 kg/m3 or > 104 kg/m3.
Bit 4 =1 (0010H) Viscosity < 0.0 Pa⋅s or > 10.0 Pa⋅s.
Bit 5 =1 (0020H) Isentropic exponent < 0.1 or > 200.
Bit 6 =1 (0040H) Diameter of differential pressure device out of range (the range depends on the differential device type).
Bit 7 =1 (0080H) Diameter of pipe out of range (the range depends on the differential device type).
Bit 8 =1 (0100H) Mass flowrate < 10-3 kg/h or > 109 kg/h.
Bit 9 =1 (0200H) Wrong integer specifying te type of fluid (<0 or >1).
Bit 10 =1 (0400H) Wrong integer specifying the type of pressure differential device (<0 or >9).
Bit 11 =1 (0800H) Wrong integer specifying the location of pressure tap (<0 or >1).
Bit 12 =1 (1000H) Beta ratio out of range (the range depends on the differential device type).
Bit 13 =1 (2000H) Reynolds number out of range (the range depends on the differential device type).
Bit 24 =1 (1000000H) Invalid protection key.
Bit 25,... Bit 25 and all higher bits are unused.