The iso5167 performs the calculation of:
2. differential pressure [Pa]
3. orifice diameter [mm]
4. pipe diameter [mm]
in accordance with:
ISO-5167-1/ Amendment 1998: Measurement of fluid flow by means of pressure
differential devices -
Part1: Orifice plates, nozzles and Venturi tubes inserted in
circular cross-section conduits running full.
Table 1: Description of the iso5167 class interface: properties (variables), methods (functions) and error flags.
PROPERTIES |
||||||
| DESCRIPTION | SET PROPERTY VALUE | GET PROPERTY VALUE | ||||
| Pressure
[Pa] (0.1 to 2.0E+8) |
void SetPressure(double newValue) | double GetPressure() | ||||
| Temperature
[°C] (-200.0 to 1000.0) |
void SetTemperature(double newValue) | double GetTemperatureC() | ||||
| Density [kg/m3] (0.000001 to 10000) |
void SetDensity(double newValue) | double GetDensity() | ||||
| Viscosity [Pa*s] (0.0 to 10.0) |
void SetViscosity(double newValue) | double GetViscosity() | ||||
| Isentropic exponent (0.1 to 200.0) |
void SetIsentropicExponent(double newValue) | double GetIsentropicExponent() | ||||
| Differential device type: 0 - Orifice, flange tappings 1 - Orifice, corner tappings 2 - Orifice, D & D/2 tappings 3 - Venturi, machined inlet 4 - Venturi, rough cast inlet 5 - Venturi, rough-welded sheet-iron inlet 6 - Long radius nozzle 7 - ISA 1932 nozzle 8 - Venturi nozzle (ISA inlet) |
void SetDifferentialDeviceType(short int newValue) | short int GetDifferentialDeviceType() | ||||
| Location
of pressure tap: 0 - upstream 1 - downstream |
void SetUpDownstream(short int newValue) |
short int GetUpDownstream() | ||||
| Fluid type: 0 - gas 1 - liquid |
void SetFluidType(double newValue) | short int GetFluidType() | ||||
| Beta ratio: (depends on the differential device type) 0 - (0.1 to 0.75) 1 - (0.1 to 0.75) 2 - (0.1 to 0.75) 3 - (0.4 to 0.75) 4 - (0.3 to 0.75) 5 - (0.4 to 0.7) 6 - (0.2 to 0.8) 7 - (0.3 to 0.8) 8 - (0.316 to 0.775) |
void SetBetaRatio(double newValue) | double GetBetaRatio() | ||||
| Coefficient of discharge | - |
double GetDischargeCoefficient() | ||||
| Expansion factor | - |
double GetExpansionFactor() | ||||
| Reynolds number (see ISO5167) |
- |
double GetReynoldsNumber() | ||||
| Differential pressure [Pa] (0 to 0.25*pressure) |
void SetDifferentialPressure(double newValue) | double GetDifferentialPressure() | ||||
| Mass flow-rate [kg/h] (0.001 to 1E+9) |
void SetMassFlowRate(double newValue) | double GetMassFlowRate() | ||||
| Orifice diameter [mm] (depends on the differential device type) 0 - (12.5 to 750.0) 1 - (12.5 to 750.0) 2 - (12.5 to 750.0) 3 - (20.0 to 187.5) 4 - (30.0 to 600.0) 5 - (80.0 to 840.0) 6 - (10.0 to 504.0) 7 - (15.0 to 400.0) 8 - (20.54 to 387.5) |
void SetOrificeDiameter(double newValue) | double GetOrificeDiameter() | ||||
| Pipe diameter [mm] (depends on the differential device type) 0 - (50.0 to 1000.0) 1 - (50.0 to 1000.0) 2 - (50.0 to 1000.0) 3 - (50.0 to 250.0) 4 - (100.0 to 800.0) 5 - (200.0 to 1200.0) 6 - (50.0 to 630.0) 7 - (50.0 to 500.0) 8 - (65.0 to 500.0) |
void SetPipeDiameter(double newValue) | double GetPipeDiameter() | ||||
| Protection key | void SetKeyCode(long int newValue) | - |
||||
| Error status | - |
long int GetErrorFlag() | ||||
METHODS |
||||||
| Differential pressure calculation | long int calculateDifferentialPressure(): calculates differential pressure, beta ratio, Reynolds number, coefficient of discharge, expansion factor and returns long int representing error status. All the remaining properties must be set before calling the method. | |||||
| Flow-rate calculation | long int calculateFlowRate(): calculates mass flow-rate, beta ratio, Reynolds number, coefficient of discharge, expansion factor and returns long int representing error status. All the remaining properties must be set before calling the method. | |||||
| Orifice diameter calculation | long int calculateOrificeDiameter(): calculates orifice diameter, beta ratio, Reynolds number, coefficient of discharge, expansion factor and returns long int representing error status. All the remaining properties must be set before calling the method. | |||||
| Pipe diameter calculation | long int calculatePipeDiameter(): calculates pipe diameter, Reynolds number, coefficient of discharge, expansion factor and returns long int representing error status. All the remaining properties must be set before calling the method. | |||||
ERROR STATUS |
||||||
| Error status bits are cleared or set upon the completion of any of the above methods, as follows | ||||||
| Bit 0 =1 (0001H) | The pressure <0.1 [Pa] or > 2.0E8 [Pa]. | |||||
| Bit 1 =1 (0002H) | The temperature <-200.0 °C or > 1000.0 °C. | |||||
| Bit 2 =1 (0004H) | The differential pressure > 0.25*pressure. | |||||
| Bit 3 =1 (0008H) | The density < 0.000001 [kg/m^3] or > 10000.0 [kg/m^3]. | |||||
| Bit 4 =1 (0010H) | The viscosity < 0.0 [Pa*s] or > 10.0 [Pa*s]. | |||||
| Bit 5 =1 (0020H) | The isentropic exponent < 0.1 or > 200. | |||||
| Bit 6 =1 (0040H) | The orifice diameter out of range (the range depends on the differential device type). | |||||
| Bit 7 =1 (0080H) | The pipe diameter out of range (the range depends on the differential device type). | |||||
| Bit 8 =1 (0100H) | The mass flow-rate <0.001 [kg/h] or > 1E+9 [kg/h]. | |||||
| Bit 9 =1 (0200H) | The number specifying the fluid type out of range (<0 or >1). | |||||
| Bit 10 =1 (0400H) | The number specifying the differential device type out of range (<0 or >8). | |||||
| Bit 11 =1 (0800H) | The number specifying the location of pressure tap out of range (<0 or >1). | |||||
| Bit 12 =1 (1000H) | The beta ratio out of range (the range depends on the differential device type). | |||||
| Bit 13 =1 (2000H) | The Reynolds number out of range (the range depends on the differential device type). | |||||
| Bit 24 =1 (1000000H) | Invalid protection key. | |||||
| All other bits = 0 | Unused. | |||||