CM eXL FR-EN B 102017

Download as pdf or txt
Download as pdf or txt
You are on page 1of 192

A B B M E A S U R E M E N T & A N A LY T I C S | F U N C T I O N R E F E R E N C E M A N U A L

SpiritIT eXLerate
Measurement supervisory software

Certified flow calculations, flow &


batch calculations and worksheet
functions

Measurement made easy


SpiritIT eXLerate Introduction For more information
interfaces
This document describes the spreadsheet functions All publications of Spirit IT eXLerate are available for
for SpiritIT eXLerate. It also provides background free download from:
information on related standards and calculation
methods used in the industry for quality and
quantity measurement of hydrocarbon and other
type of fluids.

The document serves as a reference manual for


Search for:
application engineers who have in-depth knowledge
Spirit IT eXLerate
of the SpiritIT eXLerate software. IM/eXL-EN
application reference manual
Spirit IT eXLerate
CM/eXL-EN
advanced topics reference manual
IT
Spirit eXLerate
CM/eXL/RF-EN
function reference manual
Spirit IT release notes RN/eXL-EN
IT
2 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Contents
1 Introduction ................................................................ 4 fxASTM_D1550_Ctl ................................................................ 77
Spirit IT Function Library .........................................................4 fxASTM_D1555_Dens60F ..................................................... 78
API Petroleum Measurement Tables ...................................4 fxASTM_D1555_Ctl ................................................................ 80
fxBatchFWA ............................................................................ 81
2 Spirit IT general functions ......................................... 8 fxBatchHistData .................................................................... 82
fx2CellSelection ........................................................................8 fxBatchLatch .......................................................................... 83
fx3CellSelection ........................................................................9 fxBatchMax ............................................................................. 84
fxAGA10_M .............................................................................. 11 fxBatchMin .............................................................................. 85
fxAGA10ex_M .......................................................................... 12 fxBatchTotal ........................................................................... 86
fxAGA3_C ................................................................................. 13 fxBatchTWA ............................................................................ 87
fxAGA5_C ................................................................................. 16 fxBatchWatch ......................................................................... 88
fxAGA8_C ................................................................................. 17 fxConvertUnit ......................................................................... 89
fxAGA8_M ................................................................................ 18 fxDeviationAlarm ................................................................... 90
fxAGA8_Gross ......................................................................... 19 NIST1045 ................................................................................. 91
fxAPI_Dens15C_1952 ............................................................ 20 fxEthylene_IUPAC_C ............................................................. 92
fxAPI_Dens15C_1980 ............................................................. 22 fxEthylene_IUPAC_M ............................................................ 93
fxAPI_Dens15C_NGL_LPG.....................................................25 fxGasViscosity_2004 ............................................................ 94
fxAPI_Dens20C_NGL_LPG ................................................... 28 fxGenerateReport ................................................................. 95
fxAPI_Gravity60F_1952 ......................................................... 31 fxGERG2008_Gas .................................................................. 96
fxAPI_Gravity60F_1980.........................................................33 fxGERG2008_Flash ................................................................ 97
fxAPI_MPMS_11_2_1 .............................................................. 36 fxGPA_TP15 ............................................................................. 98
fxAPI_MPMS_11_2_1M ........................................................... 37 fxGPA2172_96_C .................................................................... 99
fxAPI_MPMS_11_2_2.............................................................. 38 fxGPA2172_96_M.................................................................. 101
fxAPI_MPMS_11_2_2M .......................................................... 39 fxGPA2172_09_C .................................................................. 103
fxAPI_MPMS_11_3_2_1 .......................................................... 40 fxGPA2172_09_M ................................................................. 105
fxAPI_MPMS_11_3_3_2 .......................................................... 41 fxIAPWS_IF97_C ................................................................... 107
fxAPI_RD60F_1980................................................................ 42 fxIAPWS_IF97_M .................................................................. 108
fxAPI_SG60F_1952 ................................................................ 45 fxIndex ................................................................................... 109
fxAPI_RD60F_NGL_LPG ........................................................47 fxInterpolationCurve .......................................................... 110
fxAPI_Table5_1952 ................................................................ 50 fxISO5167_ISA1932Nozzle ................................................... 111
fxAPI_Table5_1980................................................................. 51 fxISO5167_LongRadiusNozzle ........................................... 113
fxAPI_Table5_2004 ................................................................52 fxISO5167_Orifice ................................................................. 115
fxAPI_Table6_1952 .................................................................53 fxISO5167_Venturi ................................................................119
fxAPI_Table6_1980 ............................................................... 54 fxISO5167_VenturiNozzle.................................................... 121
fxAPI_Table6_2004 ............................................................... 55 fxISO6976_1983_M .............................................................. 123
fxAPI_Table23_1952 .............................................................. 56 fxISO6976_1995_M .............................................................. 124
fxAPI_Table23_1980............................................................... 57 fxISO6976ex_1995_M ......................................................... 125
fxAPI_Table23_2004 ............................................................. 58 fxKeypadFallback .................................................................127
fxAPI_Table23E ...................................................................... 59 fxKeypadFallbackArray ...................................................... 128
fxAPI_Table24_1952 .............................................................. 60 fxLatch ................................................................................... 129
fxAPI_Table24_1980 .............................................................. 61 fxLimitAlarm ......................................................................... 130
fxAPI_Table24_2004 ..............................................................62 fxMR113 ................................................................................... 131
fxAPI_Table24E ...................................................................... 63 fxName .................................................................................. 132
fxAPI_Table53_1952 .............................................................. 64 fxNX19_1962 ......................................................................... 133
fxAPI_Table53_1980 ............................................................. 65 fxNX19_M .............................................................................. 134
fxAPI_Table53_2004 ............................................................. 66 fxPeriodFWA ......................................................................... 135
fxAPI_Table53E .......................................................................67 fxPeriodLatch ....................................................................... 136
fxAPI_Table54_1952.............................................................. 68 fxPeriodMax...........................................................................137
fxAPI_Table54_1980 ............................................................. 69 fxPeriodMin .......................................................................... 138
fxAPI_Table54_2004 ............................................................. 70 fxPeriodTotal........................................................................ 139
fxAPI_Table54E ....................................................................... 71 fxPeriodTWA ......................................................................... 140
fxAPI_Table59_2004 .............................................................. 72 fxPeriodWatch ......................................................................141
fxAPI_Table59E ....................................................................... 73 fxPID ....................................................................................... 142
fxAPI_Table60_2004..............................................................74 fxROCAlarm .......................................................................... 145
fxAPI_Table60E....................................................................... 75 fxSarasota_C ........................................................................ 146
fxASTM_D1550_RD60............................................................76 fxSarasota_M ....................................................................... 147
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 3

fxSetOnChange ................................................................... 148


fxSetOnCondition ............................................................... 148
fxSetOnEvent ....................................................................... 148
fxSetIndexOnChange ......................................................... 148
fxSetIndexOnCondition ..................................................... 149
fxSetIndexOnEvent ............................................................. 149
fxSGERG_C ........................................................................... 150
fxSGERG_M ............................................................................ 151
fxSolartron_Gas_C ............................................................... 152
fxSolartron_Gas_M ..............................................................154
fxSolartron_Liquid _C .........................................................156
fxSolartron_Liquid_M .........................................................158
fxSolartron_SG .................................................................... 160
fxStatusAlarm ....................................................................... 161
fxTag ....................................................................................... 161
fxTimer ................................................................................... 162
fxTotalizerDelta ....................................................................163
fxTotalizerRate .................................................................... 164
fxUGC_C .................................................................................165
fxUGC_M ............................................................................... 166
fxWatchUpdate .................................................................... 167
fxVCone_C ............................................................................ 168
fxVCone_M.............................................................................170

3 Flow-X IO functions ................................................172


fxAnalogInput ....................................................................... 172
fxAnalogOutput.................................................................... 172
fxSetAnalogOutput ............................................................. 173
fxDigitalInput ........................................................................ 173
fxDigitalOutput .................................................................... 173
fxSetDigitalOutput .............................................................. 174
fxFrequencyOutput ............................................................. 174
fxSetFrequencyOutput ....................................................... 175
fxDoubleChronometry ........................................................ 175
fxPulseInput .......................................................................... 177
fxResetPulseInputErrors .................................................... 178
fxPulseOutput....................................................................... 179
fxSetPulseOutput ................................................................ 179
fxPT100Input........................................................................ 180
fxRTDInput ........................................................................... 180
fxPT100Table ........................................................................ 181
fxTimePeriodInput ............................................................... 181

4 Control Center reference ..................................... 182


Unit Types .............................................................................. 182
Terminology .......................................................................... 187
Standard composition ....................................................... 188
IT
4 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

1 Introduction
Spirit IT Function Library This resulted in the following Petroleum Measurement Tables
dealing with the conversion of volume and density to and from a
The Spirit IT products are based on Microsoft Excel. The Spirit IT reference temperature.
functions are configured as regular Excel functions. By using the
output of one function as an input (argument) in another Number Title
function a complete calculation scheme can be made. Functions 5 API Gravity Reduction to 60°F
can be defined on multiple sheets in order to organize the 6 Reduction of Volume to 60°F Against API Gravity at 60°F
23 Reduction of Observed Specific Gravity to Specific Gravity
application. 60/60°F
24 Reduction of Volume to 60o F Against Specific Gravity 60/60°F
API Petroleum Measurement Tables 53
54
Reduction of Observed Density to Density at 15°C
Reduction of Volume to 15°C Against Density at 15°C
59 Reduction of Observed Density to Density at 20°C
History
60 Reduction of Volume to 20°C Against Density at 20°C
The first version of the API Petroleum Measurement Tables was
published in 1952. In those days measurement readings were
In 2004 the API MPMS 11.1 1980 tables were superseded by a new
taken manually and the tables were used to convert the
set of tables primarily for the following reasons:
observed density or gravity at the observed temperature to the
API 11.1:2004 includes the correction for both temperature
value at the reference temperature. So the table values were the
and pressure in one and the same algorithm
actual standard.
Taken into account the progress in electronics (and for other
reasons) the complex truncating and rounding rules were
The 1952 Tables consists of 58 tables containing all kind of
abandoned. Instead the calculation procedures use double-
correction and conversion factors used in the measurement of
precision floating point math. The input and output values are
hydrocarbon liquids. Each table deals with a particular
still rounded in order to obtain consistent results.
conversion of units, correction of density, or correction of
The convergence methods for the correction of observed
volume. The 1952 tables that have to do with the conversion of
density to base density have been improved.
density and volume are: 5, 6, 23, 24, 53 and 54.
On-line density measurement by densitometers became
Table 5, 6, 23 and 24 convert density or volume to or from to a
common practice, requiring the pressure and temperature
reference temperature of 60°F, while tables 53 and 54 refer to
correction to be incorporated in one ands the same procedure
15°C.
The tables are extended in both temperature and density to
cover lower temperatures and higher densities.
In 1980 a complete new set of tables was published together
The previous standard used a significant digit format which
with computer routines to allow electronic devices to
resulted in 4 or 5 decimal places depending on whether the
automatically calculate the volume conversion factors and API
observed temperature was above or below the reference
gravity / (relative) density at the reference temperature. Back
temperature. The new standard prescribes 5 decimal places if
then most electronic devices were not capable of performing
or both cases.
double-precision floating point calculations, so the standard
The IP paper No. 3 tables were added to accommodate
prescribed all kind of rounding and truncating rules to make sure
conversion to 20°C.
that the calculations would always provide the same result. For
the 1980 version the calculation procedures are the standard
rather than the table values. Tables for lubricating oils including the implementation
procedures are now part of the standard.
In the 1980 version, which is also referred to as API-2540, the
tables are divided into 3 product groups and a letter designation Volume correction for pressure
was used to distinguish between the sub-tables. "A" was used The API MPMS 11.1:1980 Tables only cover the correction for
for crude oil, "B" for refined products and "C" for special temperature. The correction for pressure was published in API
applications. The 1980 tables, however, did not cover the LPGs MPMS standards 11.2.1 and 11.2.2.
and NGLs density ranges and the 1952 Tables were left valid for The correction for pressure is to the atmospheric pressure or,
these products. Furthermore, the lubricating oil tables for products within the lower density range, to the equilibrium
(designated as "D") were not complete at the time of the vapor pressure.
printing in 1980 and were released two years later. As opposed To calculate the equilibrium vapor pressure an Addendum was
to the A, B and C tables no implementation procedures were added to API MPMS 11.2.2. This addendum is also known as GPA
defined for the D tables. TP-15 (1988). In September 2007 the addendum was replaced by
In 1988 the Institute of Petroleum released its Paper No. 3 with a new API standard 11.2.5 and at the same time GPA TP-15 (1988)
tables 59 and 60 that are based on a reference temperature of was updated with a new 2007 revision.
20°C.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 5

NGL and LPG tables Implementation Procedures for Correcting Densities and
For NGL and LPG products volume correction tables 24E and 23E Volumes to 20 C. Superseded by IP No.3 - 1997
(at 60 °F) were published in GPA TP-25 (1988), so the letter 'E" IP No. 3 - 1997 (Energy Institute (formerly Institute of
was used to distinguish the tables from the related API MPMS A, Petroleum), Petroleum Measurement Paper No 3 Computer
B, C and D tables. Implementation Procedures for Correcting Densities and
GPA TP-25 has been superseded by GPA TP-27 / API MPMS 11.2.4 Volumes to 20 C. Supersedes IP No.3 - 1988
(2007), which includes tables 53E, 54E, 59E and 60E to convert to ISO 91-1 - 1982 Petroleum measurement tables Part 1: Tables
15°C and 20°C as well. All text from TP-25 is included without based on reference temperatures of 15 °C and 60 °F.
technical change, so TP-25 is still viable for conversion to and Superseded by ISO 91-1 1992.
from 60 °F. ISO 91-1 - 1992 Petroleum measurement tables Part 1: Tables
based on reference temperatures of 15 °C and 60 °F.
Overview of hydrocarbon liquid conversion standards Supersedes ISO 91-1 1982.
ASTM-IP Petroleum Measurement Tables, Historical Edition, ISO 91-2 - 1991 Petroleum measurement tables Part 2: Tables
1952 based on reference temperatures of 20 °C
API MPMS Chapter 11.1 - 1980* (Temperature VCFs for OIML R 63 - 1994 Petroleum measurement tables
Generalized Crude Oils, Refined Products, and Lubricating
Oils): Historical; Published in 14 separate volumes
Also known as
 API Standard 2540 (API-2540)
 ASTM D1250
 IP 200
In 1982 chapters XIII and XIV were published containing tables
5D, 6D, 53D and 54D for lubricating oils.
API MPMS Chapter 11.1 - 2004 (Temperature & Pressure VCFs
for Generalized Crude Oils, Refined Products and Lube Oils)
API MPMS Chapter 11.2.1- 1984 (Compressibility Factors for
Hydrocarbons: 0-90°API): Historical: now incorporated into
Chapter 11.1-2004
API MPMS Chapter 11.2.1M- 1984 (Compressibility Factors for
Hydrocarbons: 638-1074 kg/m3): Historical: now incorporated
into Chapter 11.1-2004
API MPMS Chapter 11.2.2 - 1984 (Compressibility Factors for
Hydrocarbons: 0.350-0.637 Relative Density and –50°F to
140°F)
API MPMS Chapter 11.2.2M - 1986 (Compressibility Factors for
Hydrocarbons: 350-637 kg/m3 Density (15°C) and –46°C to
60°C)
API MPMS Chapter 11.2.2A - 1984 (Addendum to Correlation of
Vapor Pressure Correction for NGL): Superseded by Chapter
11.2.5
API Publication/GPA TP-25/ASTM Publication (Temperature
Correction for the volume of Light Hydrocarbons – Tables 24E
and 23E: Superseded by API MPMS Chapter 11.2.4
GPA TP-25 was published in 1998 and replaced the 1952 tables
23, 24 for Light Hydrocarbon Liquids and GPA Technical
Publication TP-16, which were previously used for volumetric
measurement of LPG.
API MPMS Chapter 11.2.4 - 2007 / GPA TP-27 / ASTM
Publication (Temperature Correction for the Volume of NGL
and LPG – Tables 23E, 24E, 53E, 54E, 59E, 60E): Supersedes
GPA TP-25
API MPMS Chapter 11.2.5 - 2007 / GPA TP-15 / ASTM
Publication (A Simplified Vapor Pressure Correlation for
Commercial NGLs): Supersedes Addendum to Chapter 11.2.2
(11.2.2A)
IP No. 3 - 1988 (Energy Institute (formerly Institute of
Petroleum), Petroleum Measurement Paper No 3 Computer
IT
6 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Overview of the functions


The following table lists the volume conversion functions for
hydrocarbon liquids as provided by the Spirit ITproducts.

Function Temperature correction Pressure correction Input Output


ASTM-IP Petroleum Measurement Tables 1952 - American Edition
API_Table23 (1952) Table 23 - Specific Gravity Reduction to 60 °F SG (T) SG (60°F)
API_Table24 (1952) Table 24 - Volume Reduction to 60 °F SG (60°F) Ctl
Crude Oils, Refined Products and Lubricating Oils (API MPMS 11.1:1980 / API-2540)
API_Table5 (1980) API 11.1:1980 Tables 5A, 5B and 5D API 11.2.1:1984 °API (T, P) °API (60°F, Pe)
API_Table6 (1980) API 11.1:1980 Tables 6A, 6B and 6D API 11.2.1:1984 °API (60°F, Pe) °API (T, P)
API_Table23 (1980) API 11.1:1980 Tables 23A and 23B API 11.2.1:1984 RD (T, P) RD (60°F, Pe)
API_Table24 (1980) API 11.1:1980 Tables 24A and 24B API 11.2.1:1984 RD (60°F, Pe) RD (T, P)
API_Table53 (1980) API 11.1:1980 Tables 53A, 53B and 53D API 11.2.1M:1984 Density (T, P) Density (15°C, Pe)
API_Table54 (1980) API 11.1:1980 Tables 54A, 54B and 54D API 11.2.1M:1984 Density (15°C, Pe) Density (T, P)
Crude Oils, Refined Products and Lubricating Oils (API MPMS 11.1:2004)
API_Table5 (2004) API 11.1:2004 API 11.1:2004 °API (T, P) °API (60°F, 0 psig)
API_Table6 (2004) API 11.1:2004 API 11.1:2004 °API (60°F, 0 psig) °API (T, P)
API_Table23 (2004) API 11.1:2004 API 11.1:2004 RD (T, P) RD (60°F, 0 psig)
API_Table24 (2004) API 11.1:2004 API 11.1:2004 RD (60°F, 0 psig) RD (T, P)
API_Table53 (2004) API 11.1:2004 API 11.1:2004 Density (T, P) Density (15°C, 0 bar(g))
API_Table54 (2004) API 11.1:2004 API 11.1:2004 Density (15°C, 0 bar(g)) Density (T, P)
API_Table59 (2004) API 11.1:2004 API 11.1:2004 Density (T, P) Density (20°C, 0 bar(g))
API_Table60 (2004) API 11.1:2004 API 11.1:2004 Density (20°C, 0 bar(g)) Density (T, P)
API_Table6C (2004) API 11.1:2004 Not applicable Thermal expansion coefficient at 60°F Ctl
NGL and LPG (API 11.2.4)
API_Table23E API 11.2.4: 2007 API 11.2.2:1986 RD (T, P) RD (60°F, Pe)
Table 23E GPA TP-15:1988
GPA TP-15:2007
API_Table24E API 11.2.4: 2007 API 11.2.2:1986 RD (60°F, Pe) RD (T, P)
Table 24E GPA TP-15
API_Table53E API 11.2.4: 2007 API 11.2.2:1986 Density (T, P) Density (15°C, Pe)
Table 53E GPA TP-15
API_Table54E API 11.2.4: 2007 API 11.2.2:1986 Density (15°C, Pe) Density (T, P)
Table 53E GPA TP-15
API_Table59E API 11.2.4: 2007 API 11.2.2M:1986 Density (T, P) Density (20°C, Pe)
Table 59E GPA TP-15
API_Table60E API 11.2.4: 2007 API 11.2.2M:1986 Density (20°C, Pe) Density (T, P)
Table 60E GPA TP-15

Hydrometer Correction API-2540 Boundaries


The API MPMS 11.1 1980 Standard (API-2540) assumes that the API MPMS 11.1:1980 (API 2540) is based on published data that lie
API gravity or relative density is observed with a glass within the so-called 'Data' range. The other table values were
hydrometer. Therefore a correction may be applied for the obtained from extrapolation and lie within the 'Extrapolated'
change of volume of the glass hydrometer with temperature. range. It is recommended not to use API-2540 outside the 'Data'
The hydrometer correction applies for tables 5A, 5B, 23A, 23B, and 'Extrapolated' ranges.
53A and 53B. For the lubricating oil tables no difference is made between data
The 2004 standard does not include a correction for a glass that is table values that are based on published data and table
hydrometer. values that are determined by extrapolation.

Range API Gravity [°API] Relative Density [-] Density [kg/m3] Temperature [°F] Temperature [°C]
Data Range 0 .. 40 1.0760 .. 0.8250 1075.0 .. 824.0 0 .. 250 -18..120
40 .. 50 0.8250 .. 0.7795 824.0 .. 778.5 0 .. 200 -18..90
50 .. 55 0.7795 .. 0.7585 778.5 .. 758.0 0 .. 150 -18..60
Extrapolated Range 0 .. 40 1.0760 .. 0.8250 1075.0 .. 824.0 250 .. 300 120..150
40 .. 50 0.8250 .. 0.7795 824.0 .. 778.5 200 .. 250 90..125
50 .. 55 0.7795 .. 0.7585 778.5 .. 758.0 150 .. 200 60..95
55 .. 100 0.7585 .. 0.6110 758.0 .. 610.5 0 .. 200 -18..95
Applies for: Table 5A Table 23A Table 53A Table 5A Table 53A
Table 6A Table 24A Table 54A Table 6A Table 54A
Table 23A
Table 24A
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 7

Range API Gravity [°API] Relative Density [-] Density [kg/m3] Temperature [°F] Temperature [°C]
Data Range 0 .. 40 1.0760 .. 0.8250 1075.0 .. 824.0 0 .. 250 -18..120
40 .. 50 0.8250 .. 0.7795 824.0 .. 778.5 0 .. 200 -18..90
50 .. 85 0.7795 .. 0.6535 778.5 .. 653.0 0 .. 150 -18..60
Extrapolated Range 0 .. 40 1.0760 .. 0.8250 1075.0 .. 824.0 250 .. 300 120..150
40 .. 50 0.8250 .. 0.7795 824.0 .. 778.5 200 .. 250 90..125
50 .. 85 0.7795 .. 0.6535 778.5 .. 653.0 150 .. 200 60..95
Applies for: Table 5B Table 23B Table 53B Table 5B Table 53B
Table 6B Table 24B Table 54B Table 6B Table 54B
Table 23B
Table 24B

Range API Gravity [°API] Relative Density [-] Density [kg/m3] Temperature [°F] Temperature [°C]
Data Range -10..45 0.8..1.165 800..1164 0 .. 300 -20..+150
Applies for: Table 5D Table 23D* Table 53D Table 5D Table 53D
Table 6D Table 24D* Table 54D Table 6D Table 54D
Table 23D*
Table 24D*
* Values derived from Table 5D/6D

API-2540 - Rounding and truncating rules For tables 6A, 6B, 24A, 24B and 54A and 54B the standard makes
For each table API Standard 2540 specifies an explicit a distinction between computational and table values for the
'Calculation Procedure' that includes the rounding and calculated VCF. The table values are always rounded to 4 decimal
truncating of all the input, intermediate and output values. The places, whereas the computational values has 4 decimal places
'Calculation Procedure' is considered to be the standard rather when the VFC >=1 and 5 decimal places when the VCF < 1.
than the table values or a set of equations.
When API rounding is enabled the convergence limit is set to the
The function provides the option to either apply the full API limit value as specified in the standard. When the API rounding is
rounding and truncating requirements or to perform the disabled the convergence limit is set to 0.00001 kg/m3 to obtain
calculation procedure without any rounding and truncating highest precision.
being applied.

API-11.1:2004 Limits
Range Density Temperature Pressure
Crude Oil 610.6..1163.5 kg/m3 @ 60°F -58..302 °F 0..1500 psig
100..-10 API @ 60°F -50..150 °C 0..103.4 bar(g)
0.61120..1.16464 RD @ 60°F
611.16..1163.79 kg/m3 @ 15°C
606.12..1161.15 kg/m3 @ 20°C
Refined products 610.6..1163.5 kg/m3 @ 60°F -58..302 °F 0..1500 psig
100..-10 API @ 60°F -50..150 °C 0..103.4 bar(g)
0.61120..1.16464 RD @ 60°F
611.16..1163.86 kg/m3 @ 15°C
606.12..1160.62 kg/m3 @ 20°C
Lubricating oils 800.9..1163.5 kg/m3 @ 60°F -58..302 °F 0..1500 psig
45..-10 API @ 60°F -50..150 °C 0..103.4 bar(g)
0.80168..1.1646 RD @ 60°F
801.25..1163.85 kg/m3 @ 15°C
798.11..1160.71 kg/m3 @ 20°C

API constants in US customary units API constants in metric units


For the tables in US customary units the following constants For the tables in metric units the following constants apply (both
apply (both for the 1980 and the 2004 tables): for the 1980 and the 2004 tables):

Product API Table K0 K1 K2 Product API Table K0 K1 K2


Crude oil A 341.0957 0.0 0.0 Crude oil A 613.9723 0.0 0.0
Gasoline B 192.4571 0.2438 0.0 Gasoline B 346.4228 0.4388 0.0
Transition area B 1489.0670 0.0 -0.00186840 Transition area B 2680.3206 0.0 -0.00336312
Jet fuels B 330.3010 0.0 0.0 Jet fuels B 594.5418 0.0 0.0
Fuel oils B 103.8720 0.2701 0.0 Fuel oils B 186.9696 0.4862 0.0
Lubricating oils D 0.0 0.34878 0.0 Lubricating oils D 0.0 0.6278 0.0
IT
8 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

2 Spirit IT general functions


This chapter lists all available functions in alphabetical order.

fx2CellSelection
The function selects between 2 input cells (e.g. differential The function can handle the following type of cell range
pressure cells) based on the actual measured value and the configurations:
failure status of each cell. Lo – Hi
Hi – Hi
Where ‘Lo’ means low range, ‘Mid’ mid range and ‘Hi’ high range.
Function
Function inputs Remark EU SW tag Range Default
Name
Cell A value Input value as percentage of span of cell A
Cell A status Input status of cell A
0: Normal
<> 0 : Failure
Cell B value Input value as percentage of span of cell B
Cell B status Input status of cell B
0: Normal
<> 0 : Failure
Range type For a description of the functionality refer to adjacent section ‘Logic’ RNGTYP
1: Lo Hi
Cell A at low range
Cell B at high range
2: Hi Hi
Cell A and B at same range
Auto switchback For a description of the functionality refer to adjacent section ‘Logic’
0: Disabled
1: Enabled
Switch-up percentage Switch-up value expressed as percentage of span of the lower range - SWUPPERC 0..100 95
Switch-down percentage Switch-down value expressed as percentage of span of the lower range - SWDNPERC 0..100 90

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
Selected cell number 1: Cell 1 SELNR 1
2: Cell 2
Selected cell status 0: Normal SELSTS 0
1: Failure

Logic Range type = ‘Hi Hi’


The function will switch from one cell to another at the following When cell A is currently selected
conditions: Select cell B when cell A value fails and cell B is healthy
When cell B is currently selected
Range type = ‘Lo Hi’ Select cell A when cell A is healthy and ‘Auto switchback’ is
When cell A is currently selected enabled
Select cell B when cell A value is above or equal to the switch- Select cell A when cell B fails and cell A is healthy.
up percentage of its range and cell B is healthy.
Select cell B when cell A fails while cell B is healthy
When cell B is currently selected
Select cell A when cell A value is below or equal to the switch-
down percentage of its range and cell A is healthy
Select cell A when cell B fails and cell A is healthy
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 9

fx3CellSelection
The function selects between 3 input cells (typically differential The function can handle the following type of cell range
pressure cells) based on the actual measured value and the configurations:
failure status of each cell. Lo – Mid – Hi
Lo – Hi – Hi
Hi – Hi – Hi
Where ‘Lo’ means low range, ‘Mid’ mid range and ‘Hi’ high range.

Function
Function inputs Remark EU SW tag Range Default
Name
Cell A value Input value as percentage of span of cell A
Cell A status Input status of cell A
0: Normal
<> 0 : Failure
Cell B value Input value as percentage of span of cell B
Cell B status Input status of cell B
0: Normal
<> 0 : Failure
Cell C value Input value as percentage of span of cell C
Cell C status Input status of cell C
0: Normal
<> 0 : Failure
Range type For a description of the functionality refer to adjacent section ‘Logic’ RNGTYP
1: Lo Mid Hi
Cell A at low range
Cell B at mid range
Cell C at high range
2: Lo Hi Hi
Cell A at low range
Cell B and C at high range
3: Hi Hi Hi
Cell A, B and C at same range
Auto switchback For a description of the functionality refer to adjacent section ‘Logic’
0: Disabled
1: Enabled
Switch-up percentage Switch-up value expressed as percentage of span of the lower range - SWUPPERC 0..100 95
Does not apply for selection type ‘Hi Hi Hi’
Switch-down percentage Switch-down value expressed as percentage of span of the lower range - SWDNPERC 0..100 90
Does not apply for selection type ‘Hi Hi Hi’

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
Selected cell number 1: Cell 1 SELNR 1
2: Cell 2
3: Cell 3
Selected cell status 0: Normal SELSTS 0
1: Failure

Logic Select cell A when cell B fails while cell A is healthy


The function will switch from one cell to another at the following Select cell C when cell B and cell A fail and cell C is healthy
conditions:
When cell C is currently selected
Range type = ‘Lo Mid Hi’ Select cell B when cell B value is below or equal to the switch-
When cell A is currently selected down percentage of its range and cell B is healthy
Select cell B when cell A value is above or equal to the switch- Select cell B when cell C fails while cell B is healthy
up percentage of its range and cell B is healthy. Select cell A when cell C and cell B fail and cell A is healthy
Select cell B when cell A fails while cell B is healthy
Select cell C when cell A and cell B fail and cell C is healthy
Range type = ‘Lo Hi Hi’
When cell A is currently selected
When cell B is currently selected Select cell B when cell A value is above or equal to the switch-
Select cell C when cell B value is above or equal to the switch- up percentage of its range and cell B is healthy.
up percentage of its range and cell C is healthy Select cell C when cell A value is above or equal to the switch-
Select cell A when cell A value is below or equal to the switch- up percentage of its range and cell B fails and cell C is healthy.
down percentage of its range and cell A is healthy Select cell B when cell A fails while cell B is healthy
IT
10 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Select cell C when cell A and cell B fail and cell C is healthy

When cell B is currently selected


Select cell A when cell A value is below or equal to the switch-
down percentage of its range and cell A is healthy
Select cell C when cell B fails while cell C is healthy
Select cell A when cell B and cell C fail and cell A is healthy

When cell C is currently selected


Select cell A when cell A value is below or equal to the switch-
down percentage of its range and cell A is healthy
Select cell B when cell B is healthy and ‘Auto switchback’ is
enabled
Select cell A when cell C and cell B fail and cell A is healthy

Range type = ‘Hi Hi Hi’


When cell A is currently selected
Select cell B when cell A value fails and cell B is healthy
Select cell C when cell A and cell B fail and cell C is healthy

When cell B is currently selected


Select cell A when cell A is healthy and ‘Auto switchback’ is
enabled
Select cell A when cell B fails and cell A is healthy

Select cell C when cell B and A fail and cell C is healthy

When cell C is currently selected


Select cell A when cell A is healthy and ‘Auto switchback’ is
enabled
Select cell B when cell B is healthy and cell A fails and ‘Auto
switchback’ is enabled
Select cell A when cell C fails and cell A is healthy
Select cell B when cell C and A fail and cell B is healthy
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 11

fxAGA10_M
The function calculates the speed of sound of a gas at the Boundaries
specified conditions of temperature and pressure using the The AGA-10 calculation has defined uncertainty bounds for gas
formulae presented in the American Gas Association Report No mixtures that lie within the 'Normal range'. Also an 'Expanded
10. range' of gas mixtures is defined for which the AGA-10
calculation has a higher uncertainty. Using the AGA-10
Compliance calculation for gas mixtures that lie outside the 'Expanded range'
AGA Report No. 10 - Speed of Sound in Natural Gas and Other is not recommended.
Related Hydrocarbon Gases, January 2003. The AGA-10 standard specifies the same limits as the AGA-8
standard. Refer to the fxAGA8 function for details on the actual
limit values used by this function to set output ‘Range’.

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Pressure Observed pressure bar(a) 0..2000
Temperature Observed temperature °C -200..+400
Composition Standard composition as defined in section 'Standard mol/mol COMP 0..1
gas composition.
neo-Pentane mode Determines what to do when component neo-Pentane is - NEOC5_MODE 1
larger than zero
1: Add to i-Pentane
2: Add to n-Pentane
3: Neglect

Function outputs Remark EU SW tag Alam Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
4: Mole fractions do not add up to 1.0 +- 0.0001 COMPOOR
Speed of sound m/s SOS 0
Range 0: In Normal Range RANGE 0
All inputs are within the 'Normal Range'
1: In Extended Range
One or more inputs within the 'Extended Range, but none of the
inputs outside the Extended rang (outputs values have higher
uncertainty)
2: Out of Range OOR
One or more inputs outside the 'Extended Range' (using the
AGA10 calculation is not recommended in this case)

Calculations
Calculations are as documented in the standard.
IT
12 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAGA10ex_M
The extended AGA 10 function provides an extensive set of gas Boundaries
properties at the specified conditions of temperature and The AGA-10 calculation has defined uncertainty bounds for gas
pressure using the formulae presented in the American Gas mixtures that lie within the 'Normal range'. Also an 'Expanded
Association Report No 10. range' of gas mixtures is defined for which the AGA-10
calculation has a higher uncertainty. Using the AGA-10
Compliance calculation for gas mixtures that lie outside the 'Expanded range'
AGA Report No. 10 - Speed of Sound in Natural Gas and Other is not recommended.
Related Hydrocarbon Gases, January 2003 The AGA-10 standard specifies the same limits as the AGA-8
standard. Refer to the fxAGA8 function for details on the actual
limit values used by this function to set output ‘Range’.

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Pressure Observed pressure bar(a) 0..2000
Temperature Observed temperature °C -200..+400
Composition Standard composition as defined in section 'Standard gas composition. mol/mol COMP 0..1
neo-Pentane mode Determines what to do when component neo-Pentane is larger than zero - NEOC5_MODE 1
1: Add to i-Pentane
2: Add to n-Pentane
3: Neglect

Function outputs Remark EU SW tag Alam Fall back


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
4: Mole fractions do not add up to 1.0 +- 0.0001 COMPOOR
Molecular weight kg/kmol MOLMASS
Molar density at base conditions mol/m3 MOLDENSB
Molar density at flowing conditions mol/m3 MOLDENSF
Mass density at base conditions kg/m3 MASSDENSB
Mass density at flowing conditions kg/m3 MASSDENSF
Ideal gas relative density - IRD
Real gas relative density - RRD
Velocity of sound m/s SOS
Compressibility at base conditions - ZB
Compressibility at flowing conditions - ZF
Supercompressibility - FPV
Ideal gas specific enthalpy kJ/kg MASSH0
Real gas specific enthalpy kJ/kg MASSH
Real gas specific entropy kJ/kg/K MASSS
Ideal gas isobaric heat capacity kJ/kg/K MASSCP0
Real gas isobaric heat capacity kJ/kg/K MASSCP
Real gas isochoric heat capacity kJ/kg/K MASSCV
Ideal gas isobaric heat capacity kJ/kmol/K MOLCP0
Real gas isobaric heat capacity kJ/kmol/K MOLCP
Real gas isochoric heat capacity kJ/kmol/K MOLCV
Ratio of specific heats - CPCV
Isentropic exponent - KAPPA
Critical flow factor - CRITC
Ideal gas specific enthalpy kJ/kmol MOLH0
Real gas specific enthalpy kJ/kmol MOLH
Isentropic perfect gas critical flow - CI
factor
Isentropic real gas critical flow factor - CRI
Range 0: In Normal Range RANGE 0
All inputs are within the 'Normal Range'
1: In Extended Range
One or more inputs within the 'Extended Range, but none of
the inputs outside the Extended rang (outputs values have
higher uncertainty)
2: Out of Range OOR
One or more inputs outside the 'Extended Range' (using the
AGA10 calculation is not recommended in this case)

Calculations
Calculations are as documented in the standard.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 13

fxAGA3_C
The function calculates the mass flow rate for Orifice pressure Compliance
differential flow devices according to the AGA-3 standard for AGA Report No. 3 - Orifice Metering Measurement of fluid flow
orifice meters with flange taps. by means of pressure differential devices, 1992
API Manual of Petroleum Measurement Standards, Chapter 14
Natural Gas Fluids Measurement, Section 3 - Concentric
Square-edged Orifice Meters 1992.

Function
Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Differential Pressure Differential pressure over the primary flow device measured at the up- and inH2O @ 60°F 0..1000 0
downstream pressure tappings, which need to be in the positions as
specified in the standard
Pressure Down- or upstream pressure value of the fluid at metering conditions psia 0..30000 0
Temperature Down- or upstream temperature of the fluid at metering conditions °F -400..2000 0
Density Down or upstream density of the fluid at metering conditions lbm/ft3 0..200 0
Dynamic Viscosity Dynamic viscosity of the fluid lbm/ft.s DYNVIS 0..10 6.9e-6
Isentropic Exponent Also referred to as  (kappa). For an ideal gas this coefficient is equal to - KAPPA 0..10 1.3
the ratio of the specific heat capacity at constant pressure to the specific
heat at constant volume.
This ratio is commonly used when the real value is unknown.
Pipe Diameter Internal diameter of the pipe at reference temperature inches PIPEDIAM 0..100 0
Pipe Expansion factor The thermal expansion coefficient of the pipe material 1/°F PIPEEXPF 0..1 6.2e-6
Pipe Reference The reference temperature that corresponds to the 'Pipe diameter' input °F PIPEREFT -400..2000 68
temperature value
Orifice Diameter Orifice diameter at reference temperature inches ORIFDIAM 0..100 0
Orifice Expansion factor The thermal expansion coefficient of the orifice material 1/°F ORIFEXPF 0..1 9.25e-6
Typical values are:
Orifice Reference The reference temperature that corresponds to the 'Orifice diameter' input °F ORIFREFT -400..2000 68
Temperature value
Pressure Location 1: Upstream tapping - PRESLOC 1
Input 'Pressure' represents the pressure at the upstream pressure tapping
(p1).
Since the absolute pressure is usually measured at the upstream tapping
this is the most common setting.
2: Downstream tapping
Input 'Pressure' represents the pressure at the downstream tapping (p2).
Temperature Location 1: Upstream tapping - TEMPLOC 3
Input 'Temperature' represents the upstream temperature (t1).
2: Downstream tapping
Input 'Temperature represents the temperature at the downstream
tapping (t2).
3: Recovered pressure
Input 'Temperature' represents the downstream temperature at a location
Where the pressure has fully recovered (t3).
Since temperature measurement is usually downstream of the flow device
this is the most common setting.
Temperature Correction 1: Use (1-)/ - TEMPCOR 1
Isentropic expansion using (1-)/ as the temperature referral exponent
2: Use temperature exponent
Isentropic expansion using input 'Temperature Exponent' as the
temperature referral exponent [-]
Temperature Exponent To correct the temperature from down- to upstream conditions (or vice TEMPEXP 0
versa) the formula (-1)/ (isentropic expansion) will be used when the
input value is set to 0, else the input value will be used.
For more details refer to section 'Temperature correction'.
Density Location This parameter specifies if and how the density should be corrected from - DENSLOC 0
downstream to upstream conditions.
1: Upstream tapping
Input 'Density' represents the density at the upstream pressure tapping
(1).
2: Downstream tapping
Input 'Density' represents the density at the downstream tapping (2).
3: Recovered pressure
Input 'Density' represents the density downstream at a location Where the
pressure has fully recovered (3).
Density Exponent. This factor is used when density correction is enabled. The formula 1/ will - DENSEXP 0
be used when the input value is set to 0, else the input value will be used.
For more details refer to section function 'ISO5167- Orifice' 'Density
correction'.
IT
14 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Function inputs Remark EU SW tag Range Default


Fluid The type of fluid being measured - FLUID 0
1: Gas
2: Liquid
For liquid the expansion factor is set to 1, i.e. the fluid is considered to be
incompressible.
Drain hole When input is > 0 then an additional correction on the orifice diameter will in DRAIN 0.. 100 0
be applied to account for the drain hole, as explained further on.
Fpwl Local Gravitational Correction Factor for Deadweight Calibrators used to - FPWL 0.9..1.1 1
calibrate differential and static pressure Instruments.
Directly applied on the calculated mass flow rate within each iteration.

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOVONV
Mass flow rate The calculated mass flow rate klbm/hr MASSR 0
Beta ratio Orifice to pipe diameter ratio at upstream temperature - BETA 0
Orifice diameter At the upstream temperature inches ORIFUP 0
Pipe diameter At the upstream temperature inches PIPEUP 0
Upstream pressure Pressure at upstream tapping (p1) psia PRESUP 0
Pressure at downstream Pressure at downstream tapping (p2) psia PRESDN 0
tapping
Recovered downstream Fully recovered downstream pressure (p3) psia PRESREC 0
pressure
Upstream temperature Temperature at upstream tapping (t1) °F TEMPUP 0
Temperature at Temperature at downstream tapping (t2) °F TEMPDN 0
downstream tapping
Downstream Temperature 'Fully recovered' downstream temperature (t3) °F TEMPREC 0
Upstream density Density at upstream tapping (1) lbm/ft3 DENSUP 0
Density at downstream Pressure at downstream tapping (2) lbm/ft3 DENSDN 0
tapping
Downstream density 'Fully recovered' downstream density (3) lbm/ft3 DENSREV 0
Reynolds number The pipe Reynolds number, i.e. the Reynolds number upstream of the - REYN 0
orifice and not the one within the device throat itself)
Discharge coefficient - DISCF 0
Expansion Factor - EXPFAC 0
Velocity of Approach - VOA 0
Pressure out of range 0: Pressure is in valid range - PRESOOR PRESOOR 0
1: Pressure is out of valid range
Reynolds out of range 0: Reynolds number is in valid range - REYNOOR REYNOOR 0
1: Reynolds number is out of valid range
Diameter out of range 0: Device and pipe diameter and Beta ratio in valid range - DIAMOOR DIAMOOR 0
1: Device diameter, pipe diameter and/or Beta ratio out of valid range

Calculations Where:
The calculations are in accordance with the standard. p1 Pressure at upstream tapping psia
p2 Pressure at downstream tapping psia
p3 Fully recovered downstream pressure psia
Pressure correction p Differential pressure inH20 @ 60°F
The relation between the pressure at the upstream tapping p1 pLOSS Pressure loss over the meter psi
and the pressure at the downstream tapping (p2) is as C Discharge coefficient as calculated by the -
standard
following: α Flow coefficient -
p  K units β Diameter ratio at the upstream pressure and -
p 2  p1  temperature
1000 E Velocity of approach factor -
Kunits Unit conversion factor to convert a value -
The relation between the pressure at the upstream tapping
expressed in 'inH2O @60°F' to the corresponding
and the downstream tapping is as following: expressed in 'psi' (conversion as specified in
p 3  p1  p LOSS section 'Unit Types')


1       p  K
2
Temperature correction
p LOSS
1      2 units When input 'Temperature correction' is set to 1, then an
isentropic expansion based on the isentropic coefficient is
 CE applied:
1
E
1   4
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 15

1
p  
t 1  t 2  459.67    2   459.67
 p1 
1
p  
t 1  t 3  459.67    3   459.67
 p1 
When input 'Temperature correction' is set to 2, then an
isentropic expansion based on input 'Temperature exponent'
KTE
 p2 
is applied: t 1  t 2  459.67   
 p   459.67
 1
KTE
p 
t 1  t 3  459.67    3   459.67
 p1 

Where:
t1 Upstream temperature °F
t2 Temperature at the downstream tapping °F
t3 Temperature at the fully recovered downstream pressure °F
p1 Upstream pressure psia
p2 Pressure at the downstream tapping psia
p3 Fully recovered downstream pressure psia
 Isentropic exponent -
KTE Temperature exponent -

Density correction
When input 'Density exponent' = 0, then the following
isentropic corrections are applied (depending on the type of
Density Correction)
1 1
p    p 
 1  2   1   1  3   1 
 p2   p3 
Else the value of input 'Density Exponent' is used
K DE K DE
p  p 
 1  2   1   1  3   1 
 p2   p3 

Where:
1 Upstream density lbm/ft3
2 Density at the downstream tapping lbm/ft3
3 Density at the fully recovered downstream pressure lbm/ft3
p1 Upstream pressure psia
p2 Pressure at the downstream tapping psia
p3 Fully recovered downstream pressure psia
 Isentropic exponent -
KDE Density exponent -
IT
16 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAGA5_C
The AGA 5 standard defines methods to calculate the mass and Compliance
volume based calorific values at 60°F and 14.73 psia for a natural A.G.A. Transmission Measurement Committee Report No. 5
gas based on known molar fractions of the non-hydrocarbon gas (Fuel gas Energy Metering) 1981
components. A.G.A. Transmission Measurement Committee Report No. 5
(Fuel gas Energy Metering) 1996 (Reprinted 1999)

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Composition Standard composition as defined in section 'Standard gas molar fraction COMP 0..1 0
composition.
Only the following components are considered by the calculation:
N2 Nitrogen
CO2 Carbon dioxide
H2O Water
H2S Hydrogen sulfide
H2 Hydrogen
CO Carbon monoxide
O2 Oxygen
He Helium
Sum of these fractions may not exceed 1
Specific Gravity Molar Mass Ratio, i.e. ratio of the molar mass of the gas and of the - SG 0..1 0
molar mass of air (specified in AGA-5 as 28.9644 kg/kmol
(lbm/lbmol))

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
Calorific value mass Mass based calorific value Btu/lbm CV_MASS 0
Calorific value volume Volume calorific value at 60°F and 14.73 psia Btu/scf CV_VOL 0

Calculations
The Energy to Mass ratio is calculated according to Section III of
the standard, which contains the calculation procedure for the
gas mass to energy conversion. The equations based on the 'by
volume' fractional values are used (and not the equations based
on the 'by weight' values).
The Energy to Volume ratio is calculated according to Section II
of the standard, which contains the calculation procedure for the
gas volume to energy conversion.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 17

fxAGA8_C
The compressibility and density of a gas are calculated from the Input value Normal Range Expanded EU
Range
composition, temperature and pressure in accordance with the
Pressure 0 .. 20000 0 .. 20000 psia
‘Detail Characterization’ method outlined in the AGA-8 standard, Temperature -200 .. +400 -200 .. +400 °F
with the input and output values in US Customary units. Mole fraction of Methane 0.45 .. 1.00 0.00 .. 1.00 -
Mole fraction of Ethane 0.00 .. 0.10 0.00 .. 1.00 -
Mole fraction of Propane 0.00 .. 0.04 0.00 .. 0.12 -
Compliance
Mole fraction of Butanes 0.00 .. 0.01 0.00 .. 0.06 -
AGA Report No. 8, Second edition November 1992 - 2nd Mole fraction of Pentanes 0.00 .. 0.003 0.00 .. 0.04 -
printing July 1994 Mole fraction of Hexanes Plus 0.00 .. 0.002 * -
API MPMS 14.2, Second edition November 1992 - 2nd printing Mole fraction of Carbon monoxide 0.00 .. 0.03 0.00 .. 0.03 -
Mole fraction of Carbon dioxide 0.00 .. 0.30 0.00 .. 1.00 -
July 1994
Mole fraction of Nitrogen 0.00 .. 0.50 0.00 .. 1.00 -
ISO 12213 Natural gas — Calculation of compression factor — Mole fraction of Helium 0.00 .. 0.002 0.00 .. 0.03 -
Part 2: Calculation using molar-composition analysis, 1997 Mole fraction of Argon 0.00 .. 0.00 0.00 .. 0.01 -
Mole fraction of Oxygen 0.00 .. 0.00 0.00 .. 0.21 -
Mole fraction of Hydrogen Sulphide 0.00 .. 0.0002 0.00 .. 1.00 -
Boundaries Mole fraction of Hydrogen 0.00 .. 0.10 0.00 .. 1.00 -
The AGA-8 calculation has defined uncertainty bounds for gas Mole fraction of Water 0.00 .. 0.0005 * -
mixtures that lie within the 'Normal range'. Also an 'Expanded * For these components the dew point temperature is the upper limit. Limit check
range' of gas mixtures is defined for which the AGA-8 calculation is ignored for reason of simplicity.

has a higher uncertainty. Using the AGA-8 calculation for gas


mixtures that lie outside the 'Expanded range' is not
recommended.

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Pressure Pressure value psia 0..40000 1.01325
Temperature Temperature value °F -250..+800 0
Composition Standard composition as defined in section 'Standard gas composition. mol/mol COMP 0..1 0
neo-Pentane mode Determines what to do when component neo-Pentane is larger than zero - NEOC5_MODE 1
1: Add to i-Pentane
2: Add to n-Pentane
3: Neglect

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
4: Mole fractions do not add up to 1.0 +- 0.0001 COMPERR
Compressibility factor - Z 1
Mass Density lb/ft3 MASDENS 0
Mole Density lbmol/ft3 MOLDENS 0
Molar Mass lb/lbmol MOLMASS 0
Range 0: In Normal Range RANGE 0
All inputs are within the 'Normal Range'
1: In Extended Range
One or more inputs within the 'Extended Range, but none of the
inputs outside the Extended rang (outputs values have higher
uncertainty)
2: Out of Range OOR
One or more inputs outside the 'Extended Range' (using the AGA8
calculation is not recommended in this case)

Calculations
The calculations are as documented in the standard.
IT
18 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAGA8_M
The compressibility and density of a gas are calculated from its Input value Normal Range Expanded EU
Range
composition, temperature and pressure in accordance with the
Pressure 0 .. 1379 0 .. 1379 bar(a)
‘Detail Characterization’ method outlined in the AGA8 standard, Temperature -129 .. +204 -129 .. +204 °C
with the input and output values in metric units. Mole fraction of Methane 0.45 .. 1.00 0.00 .. 1.00 -
Mole fraction of Ethane 0.00 .. 0.10 0.00 .. 1.00 -
Mole fraction of Propane 0.00 .. 0.04 0.00 .. 0.12 -
Compliance
Mole fraction of Butanes 0.00 .. 0.01 0.00 .. 0.06 -
AGA Report No. 8, Second edition November 1992 - 2nd Mole fraction of Pentanes 0.00 .. 0.003 0.00 .. 0.04 -
printing July 1994 Mole fraction of Hexanes Plus 0.00 .. 0.002 * -
API MPMS 14.2, Second edition November 1992 - 2nd printing Mole fraction of Carbon 0.00 .. 0.03 0.00 .. 0.03 -
monoxide
July 1994 Mole fraction of Carbon dioxide 0.00 .. 0.30 0.00 .. 1.00 -
ISO 12213 Natural gas — Calculation of compression factor — Mole fraction of Nitrogen 0.00 .. 0.50 0.00 .. 1.00 -
Part 2: Calculation using molar-composition analysis, 1997 Mole fraction of Helium 0.00 .. 0.002 0.00 .. 0.03 -
Mole fraction of Argon 0.00 .. 0.00 0.00 .. 0.01 -
Mole fraction of Oxygen 0.00 .. 0.00 0.00 .. 0.21 -
Boundaries Mole fraction of Hydrogen 0.00 .. 0.0002 0.00 .. 1.00 -
The AGA-8 calculation has defined uncertainty bounds for gas Sulphide
Mole fraction of Hydrogen 0.00 .. 0.10 0.00 .. 1.00 -
mixtures that lie within the 'Normal range'. Also an 'Expanded
Mole fraction of Water 0.00 .. 0.0005 * -
range' of gas mixtures is defined for which the AGA-8 calculation
* For these components the dew point temperature is the upper limit. Limit check
has a higher uncertainty. Using the AGA-8 calculation for gas is ignored for reason of simplicity.
mixtures that lie outside the 'Expanded range' is not
recommended.

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Pressure Pressure value bar(a) 0..2800 1.01325
Temperature Temperature value °C -150..+450 0
Composition Standard composition as defined in section 'Standard gas composition. mol/mol COMP 0..1 0
neo-Pentane mode Determines what to do when component neo-Pentane is larger than zero - NEOC5_MODE 1
1: Add to i-Pentane
2: Add to n-Pentane
3: Neglect

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
4: Mole fractions do not add up to 1.0 +- 0.0001 COMPERR
Compressibility factor - Z 1
Mass Density kg/m3 MASDENS 0
Mole Density kmol/m3 MOLDENS 0
Molar Mass kg/kmol MOLMASS 0
Range 0: In Normal Range RANGE 0
All inputs are within the 'Normal Range'
1: In Extended Range
One or more inputs within the 'Extended Range, but none of the inputs outside
the Extended rang (outputs values have higher uncertainty)
2: Out of Range
One or more inputs outside the 'Extended Range' (using the AGA8 calculation is OOR
not recommended in this case

Calculations
The calculations are as documented in the standard.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 19

fxAGA8_Gross
This function calculates the compressibility factor in accordance Boundaries
with the AGA-8 Gross Characterization Method. Although the The AGA8 standard recommends using the Gross
AGA-8 Gross Method is based on the Standard GERG Virial Characterization Method only when input conditions lie within
Equation Of State (SGERG) there are slight differences in the the following range. For conditions outside this range the
results. standard recommends to use the Detailed Characterization
Two different methods are specified by the standard. Method 1 Method.
takes the Pressure, Temperature, Specific Gravity (Relative
Density), Carbon Dioxide content and Gross Heating Value (GHV) Input value Normal Range EU
Temperature 32..130 °F
as inputs. Method 2 takes the same inputs except for the
Pressure 0 .. 1200 psia
Nitrogen content instead of GHV. Gross heating value 475 .. 1210 Btu/ft3
Relative density 0.554 .. 0.87 -
Compliance Carbon dioxide 0.00 .. 0.30 mol/mol
Nitrogen 0.00 .. 0.50 mol/mol
AGA 8, Second edition November 1992 - 2nd printing July 1994
AGA Report No. 8, Second edition November 1992 - 2nd
printing July 1994
API MPMS 14.2, Second edition November 1992 - 2nd printing
July 1994

Function inputs and outputs


Function inputs Remark EU Range Default

Name Optional tag name, tag description and tag group


Temperature Observed temperature °F -250..+800 60
Pressure Observed pressure psia 0..40000
Relative density Relative density at the corresponding reference temperature and pressure - 0..2 0
RD reference temperature Reference temperature for relative density °F -250 ..+800 60
RD reference pressure Reference pressure for relative density psia 0..40000 14.73
Gross heating value Gross heating value at the corresponding reference temperature and pressure Btu/ft3 0..2500 0
GHV reference temperature Reference temperature for gross heating value °F -250 ..+800 60
GHV reference pressure Reference pressure for gross heating value psia 0..40000 14.73
Nitrogen Nitrogen (N2) fraction mol/mol 0..1 0
Carbon dioxide Carbon dioxide (CO2) fraction mol/mol 0..1 0
Method Gross Characterization Method: - 0
1: GHV, Relative Density, CO2
2: Relative Density, CO2, N2
Note: For Method 1 input ‘Nitrogen’ is not used, while for Method 2 inputs ‘Gross
heating value’, ‘GHV reference temperature’ and ‘GHV reference pressure’ are not
used.

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
Compressibility factor - 1
Molar mass lb/ lbmol 0
Density Density at observed pressure and temperature lb/ft3 0
Range 0: In Normal Range RANGE 0
All components are within the range that is recommended by
the standard
1: Out of Range
One or more inputs are outside the recommended range

Calculations
The calculations are in accordance with the standard.
IT
20 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_Dens15C_1952
Compliance
Density (T, P) <--> Density (15°C, equilibrium pressure)
ASTM-IP Petroleum Measurement Tables, Metric Edition,
Metric Units of Measurement, 1952
This function converts a density value at the observed API MPMS 11.2.1M - Compressibility Factors for Hydrocarbons:
temperature and pressure to the density at 15°C and the 638 - 1074 Kilograms per Cubic Meter Range - First Edition,
equilibrium pressure (typically 0 barg) or vice versa. August 1984
The temperature conversion is according to ASTM-IP Petroleum
Measurements Tables 1952 (Also known as API-1952 tables)
Table 54.

NOTE: this function is a combination of the API 1952 Tables and


API 11.2.1M. For the calculation from observed to standard
conditions an iterative calculation is required. The rounding and
truncating of input and intermediate values is implemented such
that the example calculations as specified in both standards are
exactly reproduced.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Observed Density Depending on the conversion method this is the Density either at the observed kg/m3 0..1300 0
temperature and observed pressure or at 15 °C and the equilibrium pressure
Observed temperature °C -100..200 15
Observed pressure bar(g) -1..150 0
API 11.2.1 rounding 0: Disabled - API1121RND 0
The calculation of the compressibility factor F is performed with full precision
1: Enabled
API-MPMS 11.2.1 rounding and truncating rules are applied. The compressibility
factor F is rounded to 3 decimal places as specified in the standard.
Equilibrium pressure The equilibrium pressure is considered to be 0 bar(g) for liquids which have an bar(g) EQUIPRES 0..150 0
equilibrium pressure less than atmospheric pressure (in compliance with API
MPMS 12.2 par. 12.2.5.4).
Conversion method 1: From observed to standard conditions CONVERSION 1
2: From standard to observed conditions

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR 1
2: Calculation error CALCERR
3: No convergence NOCONV
Output Density Depending on the conversion method this is the Density either at 15 °C and the kg/m3 DENS 0
equilibrium pressure or at the observed temperature and observed pressure
CTL Volume correction factor for temperature. - CTL 1
CPL Volume correction factor for pressure - CPL 1
Value will be rounded according to input 'API 11.2.1 rounding'
CTPL Combined volume correction factor - CTPL 1
CTPL = CTL * CPL
F Compressibility factor - F 0
CTL calc out of range With respect to the standard used for the calculation of CTL the combination of input 0
values is:
0: In Range
1: Out of Range CTLOOR
CPL calc out of range With respect to the standard used for the calculation of CPL the combination of input 0
values is:
0: In Range
1: Out of Range CPLOOR

Calculations The CTL value is determined from the Density at [15 C,
The calculations depend on the conversion method. equilibrium pressure] according to API 1952 Table 54.
The Density at [15 C, equilibrium pressure] is calculated from
Conversion method 1: from observed to standard conditions. the Observed Density, the new CTL value and the CPL value
The function performs the following iterative algorithm to from the previous iteration.
calculate the Density at standard conditions: The compressibility factor is calculated according to API
At the start of the iteration the initial value for Density at [15 MPMS 11.2.1M from the density at [15 C, equilibrium pressure]
C, equilibrium pressure] is set to the Observed Density. The and the 'Observed temperature'. If API 11.2.1M rounding is
initial CPL value is set to 1. enabled then the density and temperature are rounded and
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 21

the calculations are performed in accordance with the


rounding and truncating rules of the standard.
The CPL value is calculated from the compressibility factor
and the 'Observed pressure' and 'Equilibrium pressure' input
values.
The Density at [15C, equilibrium pressure] is calculated by
dividing the Observed Density by the CTL and the new CPL
value.
Steps 2 through 6 are repeated taking the Density value from
step 7 as the start value for the next iteration until the
absolute difference between two consecutive Density values
is 0.0001.

Conversion method 2: from standard to observed conditions.


The function performs straightforward calculations to
determine the Density at observed conditions:
The CTL value is calculated according to API 1952 Table 54
The compressibility factor is calculated according to API
MPMS 11.2.1M from the input density and temperature'. If API
11.2.1M rounding is enabled then the input density and
temperature are rounded and the calculations are performed
in accordance with the rounding and truncating rules of the
standard.
The CPL value is calculated from the compressibility factor
and the 'Observed pressure' and 'Equilibrium pressure' input
values.
The output Density (at observed temperature and pressure) is
calculated from the input Density and the CTL and the CPL
values.
IT
22 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_Dens15C_1980
Compliance
Density (T, P) <--> Density (15°C, equilibrium pressure)
API MPMS 11.1 Volume X (API Standard 2540) - Table 53A -
Generalized Crude Oils, Correction of Observed Density to
This function converts a density value at the observed Density at 15°C - First Edition, August 1980
temperature and pressure to the density value at 15°C and the API MPMS 11.1 Volume X (API Standard 2540) - Table 54A -
equilibrium pressure (typically 0 bar(g)) or vice versa. Generalized Crude Oils, Correction of Volume to 15°C against
The temperature conversion is according to API-2540, Tables Density at 15°C- First Edition, August 1980
53A/54A (Generalized Crude Oils) and 53B/54B (Refined Oil API MPMS 11.1 Volume X (API Standard 2540) - Table 53B -
Products) and API MPMS 11.1 Chapter XIV Table 53D/54D: 1984 Generalized Products, Correction of Observed Density to
(Lubricating Oils), while the volume correction for pressure Density at 15°C - First Edition, August 1980
according to API MPMS 11.2.1M. API MPMS 11.1 Volume X (API Standard 2540) - Table 54B -
An iterative calculation needs to be applied to convert the Generalized Products, Correction of Volume to 15°C against
observed density to the value at base conditions. Density at 15°F - First Edition, August 1980
API MPMS 11.1 Volume XIV - Table 53D - Generalized
NOTE: this function is a combination of API2540 and API 11.2.1M. Lubricating Oils, Correction of Observed Density to Density at
For the calculation from observed to standard conditions an 15°C - January 1982
iterative calculation is required. The rounding and truncating of API MPMS 11.1 Volume XIV - Table 54D - Generalized
input and intermediate values is implemented such that the Lubricating Oils, Correction of Volume to 15°C against Density
example calculations as specified in both standards are exactly at 15°F - January 1982
reproduced. API MPMS 11.2.1M - Compressibility Factors for Hydrocarbons:
638 - 1074 Kilograms per Cubic Meter Range - First Edition,
August 1984

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Input density Meaning depends on the input 'Conversion method'. kg/m3 0..1300 0
'Conversion method' = 1
Density at the observed temperature and pressure
'Conversion method' = 2
Density at 15 °C and the equilibrium pressure.
Observed temperature °C -100..200 15
Observed pressure bar(g) -1..150 0
Product 1: A - Crude Oil PRDTYP 1
2: B - Auto select
Selection based on density at 15 °C
3: B - Gasoline
4: B - Transition Area
5: B - Jet Fuels
6: B - Fuel Oil
7: D - Lubricating Oil
API 2540 rounding 0: Disabled API2540RND - 0
The calculations are performed with full precision and the final CTL value is
rounded as specified by input 'CTL decimal places'
1: Enabled for computational value
API-2540 rounding and truncating rules are applied and, in case of
conversion method 2 (standard to observed), the computational value for
CTL as specified in Table 54 is used, meaning that the CTL value has:
4 decimal places if CTL >=1
5 decimal places if CTL < 1.
2: Enabled for table value
API-2540 rounding and truncating rules are applied and, in case of
conversion method 2 (standard to observed), the table value for CTL as
specified in Table 54 meaning that the CTL value has 4 decimal places in all
cases
3: Enabled with 5 decimal places
API-2540 rounding and truncating rules are applied, and, in case of
conversion method 2 (standard to observed), the CTL value has 5 decimal
places in all cases.
Note: although not strictly in accordance with the standard, this option is
more commonly used than option 'Enabled for computational value'
Note: for conversion type 1 ‘From observed to standard conditions’ the CTL
factor is rounded to 6 decimal places when input ‘API 2540 rounding’ > 0, as
in accordance with table 53.
Hydrometer correction Only applies for conversion method - HYDROCOR 0
‘1: From observed to standard conditions’
0: Disabled
1: Enabled
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 23

Function inputs Remark EU SW tag Range Default


API 11.2.1M rounding 0: Disabled - API1121RND 0
The calculation of the compressibility factor F is performed with full
precision.
1: Enabled
API-MPMS 11.2.1M rounding and truncating rules are applied. The
compressibility factor F is rounded to 3 decimal places as specified in the
standard.

Equilibrium pressure The equilibrium pressure is considered to be 0 bar(g) for liquids which have bar(g) EQUIPRES 0..150 0
an equilibrium pressure less than atmospheric pressure (in compliance with
API MPMS 12.2 par. 12.2.5.4)
Conversion method 1: From observed to standard conditions CONVERSION 1
2: From standard to observed conditions

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS 1
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
Output density Meaning depends on the input 'Conversion method'. kg/m3 DENS 0
'Conversion method' = 1
Density at 15 °C and the equilibrium pressure.
'Conversion method' = 2
Density at the observed temperature and pressure
CTL Volume correction factor for temperature. - CTL 1
Value will be rounded according to input 'API2540 rounding''
CPL Volume correction factor for pressure - CPL 1
Value will be rounded according to input 'API 11.2.1M rounding''
CTPL Combined volume correction factor - CTPL 1
CTPL = CTL * CPL
K0 Actual value of constant K0 used for CTL calculation - K0 0
K1 Actual value of constant K1 used for CTL calculation - K1 0
K2 Actual value of constant K2 used for CTL calculation - K2 0
Alpha Thermal expansion factor 1/°C ALPHA 0
F Compressibility factor - F 0
Product When input 'Product' is 'B - Auto select', then the output is set to the actual - PRDCUR 0
selected product of tables 53B/54B (enumerative value as defined for input
'Product'), else the output is set equal to input 'Product'.
CTL calc out of range With respect to the standard used for the calculation of CTL the combination 0
of input values is:
0: In Range
1: Out of Range CTLOOR
CPL calc out of range With respect to the standard used for the calculation of CPL the combination 0
of input values is:
0: In Range
1: Out of Range CPLOOR

Calculations API2540 rounding is enabled, then the intermediate results


The calculations depend on the conversion method. are rounded or truncated as specified API-2540 Table 53.
The CTL value is calculated according to API-2540 Table 53
Conversion method 1: from observed to standard conditions. from the Alpha factor and the differential temperature (=
The function performs the following iterative algorithm to observed temperature – 15°C). If API2540 rounding is enabled,
calculate the density at reference conditions: then the intermediate results are rounded or truncated as
First the inputs are rounded in accordance with the API2540 specified API-2540 Table 53.
standard, provided that API2540 rounding is enabled. Depending on the type of API2540 rounding the calculated
The hydrometer correction on the input density is applied, CTL value is rounded to 6 decimal places or not rounded at all.
provided that this correction is enabled The density at [15 C, equilibrium pressure] is calculated by
At the start of the iteration the density at [15 C, equilibrium dividing the observed density by the new CTL value and the
pressure] is set equal to the observed density and the initial CPL value from the previous iteration.
CPL value is set to 1. The compressibility factor is calculated according to API
When the type of product is set to ‘B – Auto select’ (automatic MPMS 11.2.1M from the density at [15 C, equilibrium pressure]
selection of the refined product range) the K0, K1 and K2 and the 'Observed temperature'. If API 11.2.1M rounding is
factors are determined based on the density at [15 C, enabled then the density and temperature are rounded and
equilibrium pressure]. The Transition area is only taken in the calculations are performed in accordance with the
consideration in the 2nd iteration loop, as specified in the rounding and truncating rules of the standard.
standard. The CPL value is calculated from the compressibility factor
The Alpha factor is calculated according from the density at and the 'Observed pressure' and 'Equilibrium pressure' input
[15 C, equilibrium pressure] and the K0, K1 and K2 factor. If values.
IT
24 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

The density at [15C, equilibrium pressure] is calculated by


dividing the observed density by CTL and the new CPL value.
If API2540 rounding is enabled then the density at [15C,
equilibrium pressure] value is rounded to 3 decimal places as
specified in the standard.
Steps 4 through 12 are repeated taking the density value from
step 12 as the starting value until the absolute difference
between two consecutive density values is either 0.05 (or 0.07
for the transition area) or 0.000001, depending of API2540
rounding being enabled or not.
For refined products the entire iteration loop is repeated if
the density at [15C, equilibrium pressure] appears to be in a
different product region than the observed input density. This
is required because a different product region means
different K0, K1 and K2 factors.
When API2540 rounding is enabled, the final density at [15C,
equilibrium pressure] is rounded to 1 decimal place.

Conversion method 2: from standard to observed conditions.


The function performs straightforward calculations to
determine the density at observed conditions:
First the inputs are rounded in accordance with the API2540
standard, provided that API2540 rounding is enabled.
When the type of product is set to ‘B – Auto select’ (automatic
selection of the refined product range) the K0, K1 and K2
factors are determined based on the input density
The Alpha factor is calculated according from the input
density and the K0, K1 and K2 factor. If API2540 rounding is
enabled, then the intermediate results are rounded or
truncated as specified API-2540 Table 54.
The CTL value is calculated according to API-2540 Table 54
from the Alpha factor and the differential temperature (=
observed temperature – 15°C If API2540 rounding is enabled,
then the intermediate results are rounded or truncated as
specified API-2540 Table 54.
Depending on the type of API2540 rounding the calculated
CTL value is rounded to 4 or 5 decimal places or not rounded
at all.
The compressibility factor is calculated according to API
MPMS 11.2.1M from the input density and temperature'. If API
11.2.1M rounding is enabled then the input density and
temperature are rounded and the calculations are performed
in accordance with the rounding and truncating rules of the
standard.
The CPL value is calculated from the compressibility factor
and the 'Observed pressure' and 'Equilibrium pressure' input
values.
The density at [15C, equilibrium pressure] is calculated by
multiplying the input density by the CTL and the CPL values.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 25

fxAPI_Dens15C_NGL_LPG
Compliance
Density (T, P) <--> Density (15°C, Pe)
API MPMS 11.2.4: Temperature Correction for the Volume of
NGL and LPG Tables 23E, 24E, 53E, 54E, 59E & 60E, September
This function converts the density value at the observed 2007
temperature and pressure to the density value at 15°C and the GPA TP-27: Temperature Correction for the Volume of NGL
equilibrium pressure or vice versa. and LPG Tables 23E, 24E, 53E, 54E, 59E & 60E, September
The temperature correction is according to API MPMS 11.2.4:2007 2007
(GPA TP-27), while the pressure correction is according to API API MPMS Chapter 11.2.2M - 1986 (Compressibility Factors for
MPMS 11.2.2M:1984. Hydrocarbons: 350-637 kg/m3 Density (15°C) and –46°C to
The calculation of the equilibrium pressure is according to GPA 60°C)
TP-15 (API MPMS 11.2.2 Addendum:1994). API MPMS 11.2.5: A Simplified Vapor Pressure Correlation for
Commercial NGLs, September 2007
GPA TP-15: A Simplified Vapor Pressure Correlation for
Commercial NGLs, September 2007 (also covers GPA TP-15
1988)
API MPMS 11.2.2 Addendum : Compressibility Factors for
Hydrocarbons: Correlation of Vapor Pressure for Commercial
Natural Gas Liquids (same as GPA TP-15:1988)
Function inputs
Name Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Input density Depending on the conversion method this represents the density either at - 0..750 0
the observed temperature and pressure or at 15 °C and the equilibrium
pressure
Observed temperature Temperature at which the density is observed °C -100..150 15
Observed pressure Pressure at which the density is observed bar(a) -1..200 0
API 11.2.4 rounding 0: Disabled API1124RND 0
The calculations are performed with full precision and the output values
are not rounded
1: Enabled
The related values are rounded as defined in the standard
API 11.2.2M rounding 0: Disabled API1122RND 0
The calculations are performed with full precision and the output values
are not rounded
1: Enabled
The related values are rounded as defined in the standard
Equilibrium pressure 1: Use Input EQUIPMODE 2
mode The value of input 'Equilibrium pressure value' is used for the calculation of
CPL
2: GPA TP-15
The equilibrium pressure is calculated in accordance with GPA TP-15
Equilibrium pressure Only used when input 'Equilibrium pressure mode' is set to 'Use input'. bar(a) EQUIPINP 0
value The value will be used for the calculation of the CPL
GPA TP-15 rounding Only used when 'Equilibrium pressure mode is set to 'GPA TP-15' - TP15RND 0
0: Disabled
Full precision (no rounding and truncating applied)
1: Enabled
Rounding as defined in ' GPA TP15:1988 / API MPMS 11.2.2 Addendum':1994
P100 Correlation Only used when 'Equilibrium pressure mode is set to 'GPA TP-15' - P100CORR 0
0: Disabled
The standard correlation is commonly used for pure products such as
propane, butane and natural gasoline. It only requires the relative density
and the temperature to calculate the vapor pressure
1: Enabled
The improved correlation requires the vapor pressure at 100°F (37.8 °C).
This method is better suited for varied NGL mixes Where different product
mixes could have the same specific gravity but different equilibrium
pressures.
Vapor pressure at 100°F Only used when 'Equilibrium pressure mode is set to 'GPA TP-15' and the bar(a) EQUIP100F 0..200 0
P100 correlation is enabled.
Conversion method 1: From observed to standard conditions CONVMETH 1
2: From standard to observed conditions

Function outputs
Name Remark EU SW tag Alarm Fallback
Status 0: Normal - STS 1
1: Input argument out of range FIOOR
IT
26 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Name Remark EU SW tag Alarm Fallback


2: Calculation error CALCERR
3: No convergence NOCONV
Output density Depending on the conversion method this represents the density either at 15 °C kg/m3 DENS 0
and the equilibrium pressure or the observed temperature and pressure
CTL Volume correction factor for temperature. - CTL 1
Value will be rounded according to input 'API 11.2.4 rounding'
CPL Volume correction factor for pressure - CPL 1
Value will be rounded according to input 'API 11.2.2M rounding'
CTPL Combined volume correction factor - CTPL 1
CTPL = CTL * CPL
F Compressibility factor 1/bar F 0
The output value will be either rounded or not depending input 'API rounding'
Equilibrium pressure The equilibrium pressure calculated by GPA TP-15 bar(a) EQUIPCUR 0
Will be set to 0 when equilibrium pressure is below atmospheric pressure
CTL calc out of range With respect to the API 11.2.4 standard the combination of input values is: 0
0: In Range
1: Out of Range CTLOOR
The following range checks apply:
Conversion method 1: observed -> standard
0.21 <= RD <= 0.74
with RD = Input density / 999.016/CPL
-46 <= T <= 93 °C
Table 23E reference fluid ranges
Conversion method 1: standard -> observed
351.7 <= Input density <= 687.8 kg/m3
-46 <= T <= 93 °C
Table 23E reference fluid ranges
CPL calc out of range With respect to API 11.2.2M the combination of input values is: 0
0: In Range
1: Out of Range CPLOOR
The following range checks apply:
350 <= Density 15 °C <= 637 kg/m3
-46 °C <= T <= 60 °C
GPA TP-15 out of range Only set when the GPA TP-15 calculation is enabled - 0
With respect to the GPA TP-15 standard the combination of input values is:
0: In Range
1: Out of Range
The following range checks apply: TP15OOR
For lower range:
0.350 <= RD60 < 0.425
-50 to (695.51*RD60 - 155.51) °F
Higher range:
0.425 <= RD60 <= 0.676
-50 to 140 °F
with RD60 being the relative density at 60°F

Calculations The density at [15 C, equilibrium pressure] is calculated from


The calculations depend on the conversion method. the relative density at [15 C, equilibrium pressure]
The CTL value is calculated by dividing the density corrected
Conversion method 1: from observed to standard conditions. for pressure by the density at [15 C, equilibrium pressure]
The function performs the following iterative algorithm to Depending on the value of input 'Equilibrium pressure mode',
calculate the density at 15 °C and the equilibrium pressure. either value of input 'Equilibrium pressure value' is used or the
When API 11.2.4 rounding is enabled, the input density and equilibrium pressure (vapor pressure) is calculated according
temperature values are rounded in accordance with the to GPA TP-15. Whether the GPA TP-15 rounding and truncation
standard rules are applied is dictated by input ‘GPA-TP15 rounding’
At the start of the iteration the density at [15 C, equilibrium The compressibility factor F is calculated according to API
pressure] is set equal to the observed density and the CPL MPMS 11.2.2M from the density at [15 C, equilibrium pressure]
value is set to 1. and the 'Observed temperature', with, depending on input API
First the density corrected for pressure is calculated by 11.2.2M, rounding and truncation according to the standard.
dividing the observed density by the CPL value. The CPL value is calculated from the compressibility factor,
The relative density corrected for pressure is calculated from the equilibrium pressure and the 'Observed pressure' input
the density corrected for pressure value.
The relative density at [60 F, equilibrium pressure] is The new value for density at [15C, equilibrium pressure] is
calculated from the relative density corrected for pressure calculated by dividing the observed density by the CTL and
and the observed temperature according to Table 23E CPL values.
The relative density at [15 C, equilibrium pressure] is Steps 3 though 12 are repeated taking the density value from
calculated from the relative density at [60 F, equilibrium step 12 as the staring value until the absolute difference
pressure] converted to 15 C according to Table 24E between two consecutive density values is less than the
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 27

convergence limit.
To avoid convergence problems different convergence limits
are applied, depending on the whether API 11.2.2M and/or
GPA TP-15 rounding is applied:
If API 11.2.2M rounding is enabled -> Limit = 0.05 kg/m3
else if GPA TP-15 rounding is enabled -> Limit = 0.005
kg/m3
else -> Limit = 0.00001 kg/m3
If API 11.2.4 rounding is enabled, then the density at [15C,
equilibrium pressure] is rounded to 0.1

Conversion method 2: from standard to observed conditions.


The function performs straightforward calculations to
determine the density at observed conditions:
When API 11.2.4 rounding is enabled, the input density and
temperature values are rounded in accordance with the
standard
The CTL value and the relative density at [60 F, equilibrium
pressure] are calculated according to API MPMS 11.2.4 (GPA
TP-27) Table 60E from the density at [15 C, equilibrium
pressure] and the 'Observed temperature'.
Depending on the value of input 'Equilibrium pressure mode',
either value of input 'Equilibrium pressure value' is used or the
equilibrium pressure (vapor pressure) is calculated according
to GPA TP-15.
The compressibility factor is calculated according to API
MPMS 11.2.2M from the density at [15 C, equilibrium pressure]
and the 'Observed temperature'.
The CPL value is calculated from the compressibility factor,
the equilibrium pressure and the 'Observed pressure' input
value.
If API 11.2.4 rounding is enabled, then the CTL value is rounded
at [60F, equilibrium pressure] is rounded to 0.00001
The density at the observed conditions is calculated by
multiplying the density at [15 C, equilibrium pressure] by the
CTL value and the CPL value.
IT
28 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_Dens20C_NGL_LPG
Compliance
Density (T, P) <--> Density (20°C, Pe)
API MPMS 11.2.4: Temperature Correction for the Volume of
NGL and LPG Tables 23E, 24E, 53E, 54E, 59E & 60E, September
This function converts the density value at the observed 2007
temperature and pressure to the density value at 20°C and the GPA TP-27: Temperature Correction for the Volume of NGL
equilibrium pressure or vice versa. and LPG Tables 23E, 24E, 53E, 54E, 59E & 60E, September
The temperature correction is according to API MPMS 11.2.4:2007 2007
(GPA TP-27), while the pressure correction is according to API API MPMS Chapter 11.2.2M - 1986 (Compressibility Factors for
MPMS 11.2.2M:1984. Hydrocarbons: 350-637 kg/m3 Density (15°C) and –46°C to
The calculation of the equilibrium pressure is according to GPA 60°C)
TP-15 (API MPMS 11.2.2 Addendum:1994). API MPMS 11.2.5: A Simplified Vapor Pressure Correlation for
Commercial NGLs, September 2007
GPA TP-15: A Simplified Vapor Pressure Correlation for
Commercial NGLs, September 2007 (also covers GPA TP-15
1988)
API MPMS 11.2.2 Addendum : Compressibility Factors for
Hydrocarbons: Correlation of Vapor Pressure for Commercial
Natural Gas Liquids (same as GPA TP-15:1988)

Function inputs
Name Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Input density Depending on the conversion method this represents the density either at the kg/m3 0..750 0
observed temperature and pressure or at 20 °C and the equilibrium pressure
Observed temperature Temperature at which the density is observed °C -100..150 20
Observed pressure Pressure at which the density is observed bar(a) -1..200 0
API 11.2.4 rounding 0: Disabled API1124RND 0
The calculations are performed with full precision and the output values are not
rounded
1: Enabled
The related values are rounded as defined in the standard
API 11.2.2M rounding 0: Disabled API1122RND 0
The calculations are performed with full precision and the output values are not
rounded
1: Enabled
The related values are rounded as defined in the standard
Equilibrium pressure 1: Use Input EQUIPMODE 2
mode The value of input 'Equilibrium pressure value' is used for the calculation of CPL
2: GPA TP-15
The equilibrium pressure is calculated in accordance with GPA TP-15
Equilibrium pressure value Only used when input 'Equilibrium pressure mode' is set to 0. bar(a) EQUIPINP 0
The value will be used for the calculation of the CPL
GPA TP-15 rounding 0: Disabled - TP15RND 0
Full precision (no rounding and truncating applied)
1: Enabled
Rounding as defined in ' GPA TP15:1988 / API MPMS 11.2.2 Addendum':1994
P100 Correlation 0: Disabled - P100CORR 0
The standard correlation is commonly used for pure products such as propane,
butane and natural gasoline. It only requires the relative density and the temperature
to calculate the vapor pressure
1: Enabled
The improved correlation requires the vapor pressure at 100°F (37.8 °C). This method
is better suited for varied NGL mixes Where different product mixes could have the
same specific gravity but different equilibrium pressures.
Vapor pressure at 100°F bar(a) EQUIP100F 0..200 0
Conversion method 1: From observed to standard conditions CONVMETH 1
2: From standard to observed conditions

Function outputs
Name Remark EU SW tag Alarm Fallback
Status 0: Normal - STS 1
1: Input argument out of range FIOOR
Outputs will be set to fallback values
2: Calculation error CALC
Outputs will be set to fallback values
3: No convergence within 15 iterations NOCONV
Outputs will be set to values of last iteration
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 29

Name Remark EU SW tag Alarm Fallback


Output density Depending on the conversion method this represents the density either at 20 °C and kg/m3 DENS 0
the equilibrium pressure or the observed temperature and pressure
CTL Volume correction factor for temperature. - CTL 1
Value will be rounded according to input 'API 11.2.4 rounding'
CPL Volume correction factor for pressure - CPL 1
Value will be rounded according to input 'API 11.2.2M rounding'
CTPL Combined volume correction factor - CTPL 1
CTPL = CTL * CPL
F Compressibility factor 1/bar F 0
The output value will be either rounded or not depending input 'API rounding'
Equilibrium pressure The equilibrium pressure calculated by GPA TP-15 bar(a) EQUIPCUR 0
Will be set to 0 when equilibrium pressure is below atmospheric pressure
CTL calc out of range With respect to the API 11.2.4 standard the combination of input values is: 0
0: In Range
1: Out of Range
The following range checks apply: CTLOOR
Conversion method 1: observed -> standard
0.21 <= RD <= 0.74
with RD = Input density / 999.016/CPL
-46 <= T <= 93 °C
Table 23E reference fluid ranges
Conversion method 1: standard -> observed
331.7 <= Input density <= 683.6 kg/m3
-46 <= T <= 93 °C
Table 23E reference fluid ranges
CPL calc out of range With respect to API 11.2.2M the combination of input values is: 0
0: In Range
1: Out of Range CPLOOR
The following range checks apply:
350 <= Density 15 °C <= 637 kg/m3
-46 °C <= T <= 60 °C
GPA TP-15 out of Only set when the GPA TP-15 calculation is enabled - 0
range With respect to the GPA TP-15 standard the combination of input values is:
0: In Range
1: Out of Range
The following range checks apply: TP15OOR
For lower range:
0.350 <= RD60 < 0.425
-50 to (695.51*RD60 - 155.51) °F
Higher range:
0.425 <= RD60 <= 0.676
-50 to 140 °F
with RD60 being the relative density at 60°F

Calculations The CTL value is calculated by dividing the density corrected


The calculations depend on the conversion method. for pressure by the density at [20 C, equilibrium pressure]
Depending on the value of input 'Equilibrium pressure mode',
Conversion method 1: from observed to standard conditions. either value of input 'Equilibrium pressure value' is used or the
The function performs the following iterative algorithm to equilibrium pressure (vapor pressure) is calculated according
calculate the density at 20 °C and the equilibrium pressure. to GPA TP-15. Whether the GPA TP-15 rounding and truncation
When API 11.2.4 rounding is enabled, the input density and rules are applied is dictated by input ‘GPA-TP15 rounding’
temperature values are rounded in accordance with the API 11.2.2M requires the density at [15 C, equilibrium
standard pressure]. For this purpose the relative density at [15 C,
At the start of the iteration the density at [20 C, equilibrium equilibrium pressure] is calculated according to Table 24E
pressure] is set equal to the observed density and the CPL from the relative density at [60 F, equilibrium pressure] and
value is set to 1. at 15 C. This relative density value is then converted to the
First the density corrected for pressure is calculated by density at [15 C, equilibrium pressure].
dividing the observed density by the CPL value. The compressibility factor F is calculated according to API
The relative density corrected for pressure is calculated from MPMS 11.2.2M from the density at [15 C, equilibrium pressure]
the density corrected for pressure and the 'Observed temperature', with, depending on input API
The relative density at [60 F, equilibrium pressure] is 11.2.2M, rounding and truncation according to the standard.
calculated from the relative density corrected for pressure The CPL value is calculated from the compressibility factor,
and the observed temperature according to Table 23E the equilibrium pressure and the 'Observed pressure' input
The relative density at [20 C, equilibrium pressure] is value.
calculated from the relative density at [60 F, equilibrium The new value for density at [20C, equilibrium pressure] is
pressure] converted to 20 C according to Table 24E calculated by dividing the observed density by the CTL and
The density at [20 C, equilibrium pressure] is calculated from CPL values.
the relative density at [20 C, equilibrium pressure]
IT
30 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Steps 2 though 6 are repeated taking the density value from


step 6 as the staring value until the absolute difference
between two consecutive density values is less than the
convergence limit.
To avoid convergence problems different convergence limits
are applied, depending on the whether API 11.2.2M and/or
GPA TP-15 rounding is applied:
If API 11.2.2M rounding is enabled -> Limit = 0.05 kg/m3
else if GPA TP-15 rounding is enabled -> Limit = 0.005 kg/m3
else -> Limit = 0.00001 kg/m3
If API 11.2.4 rounding is enabled, then the density at [20C,
equilibrium pressure] is rounded to 0.1

Conversion method 2: from standard to observed conditions.


The function performs straightforward calculations to
determine the density at observed conditions:
When API 11.2.4 rounding is enabled, the input density and
temperature values are rounded in accordance with the
standard
The CTL value and the relative density at [60 F, equilibrium
pressure] are calculated according to API MPMS 11.2.4 (GPA
TP-27) Table 54 from the density at [20 C, equilibrium
pressure] and the 'Observed temperature'.
Depending on the value of input 'Equilibrium pressure mode',
either value of input 'Equilibrium pressure value' is used or the
equilibrium pressure (vapor pressure) is calculated according
to GPA TP-15.
API 11.2.2M requires the density at [15 C, equilibrium
pressure]. For this purpose the relative density at [15 C,
equilibrium pressure] is calculated according to Table 24E
from the relative density at [60 F, equilibrium pressure] and
at 15 C. This relative density value is then converted to the
density at [15 C, equilibrium pressure].
The compressibility factor is calculated according to API
MPMS 11.2.2M from the density at [15 C, equilibrium pressure]
and the 'Observed temperature'.
The CPL value is calculated from the compressibility factor,
the equilibrium pressure and the 'Observed pressure' input
value.
If API 11.2.4 rounding is enabled, then the CTL value is rounded
at [60F, equilibrium pressure] is rounded to 0.00001
The density at the observed conditions is calculated by
multiplying the input density by the CTL value and the CPL
value.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 31

fxAPI_Gravity60F_1952
NOTE: this function is a combination of the API 1952 Tables and
°API (T, P) <--> °API (60°F, equilibrium pressure)
API 11.2.1. For the calculation from observed to standard
conditions an iterative calculation is required. The rounding and
This function calculates the API gravity value at the observed
truncating of input and intermediate values is implemented such
temperature and pressure to the API gravity value at 60°F and
that the example calculations as specified in both standards are
the equilibrium pressure (typically 0 psig) or vice versa.
exactly reproduced.

The volume correction for temperature is according to 1952 API


Compliance
Table 5 and 6, while the volume correction for pressure is
ASTM-IP Petroleum Measurement Tables, American Edition,
according to API MPMS 11.2.1.
United States Units of Measurement, 1952
API MPMS 11.2.1 - Compressibility Factors for Hydrocarbons: 0
- 90°API Gravity Range - First Edition, August 1984

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Input API gravity Depending of the conversion method this represents the API gravity at either °API -20..120 0
the observed temperature and pressure or at 60 °F and the equilibrium
pressure
Observed temperature Temperature at which the API gravity is observed °F -100..400 60
Observed pressure Pressure at which the API gravity is observed psig -10..2000 0
API 11.2.1 rounding 0: Disabled - API1121RND 0
The calculation of the compressibility factor F is performed with full
precision
1: Enabled
API-MPMS 11.2.1 rounding and truncating rules are applied. The
compressibility factor F is rounded to 3 decimal places as specified in the
standard.
Equilibrium pressure The equilibrium pressure is considered to be 0 psig for liquids which have an psig EQUIPRES 0..2000 0
equilibrium pressure less than atmospheric pressure (in compliance with API
MPMS 12.2 par. 12.2.5.4)
Conversion method 1: From observed to standard conditions CONVERSION 1
2: From standard to observed conditions

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS 1
1: Input argument out of range FIOOR
2: Calculation error CALC
3: No convergence NOCONV
Output API gravity Depending of the conversion method this represents the API gravity at either at 60 °F °API API 0
and the equilibrium pressure or the observed temperature and pressure
CTL Volume correction factor for temperature. - CTL 1
CPL Volume correction factor for pressure - CPL 1
Value will be rounded according to input 'API 11.2.1 rounding'''
CTPL Combined volume correction factor - CTPL 1
CTPL = CTL * CPL
F Compressibility factor - F 0
CTL calc out of range With respect to the standard used for the calculation of CTL the combination of input 0
values is:
0: In Range
1: Out of Range CTLOOR
CPL calc out of range With respect to the standard used for the calculation of CPL the combination of input 0
values is:
0: In Range
1: Out of Range CPLOOR

Calculations The CTL value is determined from the API Gravity at [60 F,
The calculations depend on the conversion method. equilibrium pressure] according to API 1952 Table 6.
The API Gravity at [60 F, equilibrium pressure] is calculated
Conversion method 1: from observed to standard conditions. from the Observed API gravity, the new CTL value and the CPL
The function performs the following iterative algorithm to value from the previous iteration.
calculate the API Gravity at standard conditions: Because API 11.2.1 requires the API gravity value at 60 F, the
At the start of the iteration the initial value for API Gravity at API gravity at [60 F, equilibrium pressure] is calculated from
[60 F, equilibrium pressure] is set to the Observed API the API gravity at [60 F, equilibrium pressure].
Gravity. The initial CPL value is set to 1.
IT
32 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

The compressibility factor is calculated according to API


MPMS 11.2.1 from the API gravity at [60 F, equilibrium
pressure] and the 'Observed temperature'. If API 11.2.1
rounding is enabled then the API gravity and temperature are
rounded and the calculations are performed in accordance
with the rounding and truncating rules of the standard.
The CPL value is calculated from the compressibility factor
and the 'Observed pressure' and 'Equilibrium pressure' input
values.
The API Gravity at [60F, equilibrium pressure] is calculated by
dividing the Observed API Gravity by the CTL and the new CPL
value.
Steps 2 through 7 are repeated taking the API gravity value
from step 7 as the start value for the next iteration until the
absolute difference between two consecutive API gravity
values is 0.01.

Conversion method 2: from standard to observed conditions.


The function performs straightforward calculations to
determine the API Gravity at observed conditions:
The CTL value is calculated according to API 1952 Table 6
Because API 11.2.1 requires the API gravity value at 60 F, the
API gravity at 60 F is calculated from the 'Input API Gravity'.
The compressibility factor is calculated according to API
MPMS 11.2.1 from the API gravity and the 'Observed
temperature'. If API 11.2.1 rounding is enabled then the input
density and temperature are rounded and the calculations are
performed in accordance with the rounding and truncating
rules of the standard.
The CPL value is calculated from the compressibility factor
and the 'Observed pressure' and 'Equilibrium pressure' input
values.
The output API Gravity (at observed temperature and
pressure) is calculated from the input API Gravity and the CTL
and the CPL values.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 33

fxAPI_Gravity60F_1980
Compliance
°API (T, P) <--> °API (60°F, equilibrium pressure)
API MPMS 11.1 Volume X (API Standard 2540) - Table 5A -
Generalized Crude Oils, Correction of Observed API Gravity to
This function calculates the API gravity value at the observed
API Gravity at 60°F - First Edition, August 1980
temperature and pressure to the API gravity value at 60°F and
API MPMS 11.1 Volume X (API Standard 2540) - Table 5B -
the equilibrium pressure (typically 0 psig) or vice versa.
Generalized Products, Correction of Observed API Gravity to
The volume correction for temperature is according to API-2540,
API Gravity at 60°F- First Edition, August 1980
Tables 5/6A (Generalized Crude Oils) and 5/6B (Refined Oil
API MPMS 11.1 Volume XIII - Table 5D - Generalized Lubricating
Products) and API MPMS 11.1 Chapter XIII Table 5D: 1984
Oils, Correction of Observed API Gravity to API Gravity at 60°F
(Lubricating Oils), while the volume correction for pressure
- January 1982
according to API MPMS 11.2.1.
API MPMS 11.1 Volume X (API Standard 2540) - Table 6A -
Generalized Crude Oils, Correction of Volume to 60°F against
NOTE: this function is a combination of API2540 and API 11.2.1.
API Gravity at 60°F - First Edition, August 1980
For the calculation from observed to standard conditions an
API MPMS 11.1 Volume X (API Standard 2540) - Table 6B -
iterative calculation is required. The rounding and truncating of
Generalized Products, Correction of Volume to 60°F against
input and intermediate values is implemented such that the
API Gravity at 60°F - First Edition, August 1980
example calculations as specified in both standards are exactly
API MPMS 11.1 Volume XIII - Table 6D - Generalized Lubricating
reproduced.
Oils, Correction of Volume to 60°F against API Gravity at 60°F
F - January 1982
API MPMS 11.2.1 - Compressibility Factors for Hydrocarbons: 0
- 90°API Gravity Range - First Edition, August 1984

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Input API gravity Depending of the conversion method this represents the API gravity at either the °API -20..120 0
observed temperature and pressure or at 60 °F and the equilibrium pressure
Observed temperature Temperature at which the API gravity is observed °F -50..400 60
Observed pressure Pressure at which the API gravity is observed psig -10..2000 0
Product 1: A - Crude Oil PRDTYP - 1
2: B - Auto select
Selection based on °API at 60 °F
3: B - Gasoline
4: B - Transition Area
5: B - Jet Fuels
6: B - Fuel Oil
7: D - Lubricating Oil
API-2540 rounding 0: Disabled API2540RND - 0
The calculations are performed with full precision and the final CTL value is
rounded as specified by input 'CTL decimal places'
1: Enabled for computational value
API-2540 rounding and truncating rules are applied and, in case of conversion
method 2 (standard to observed), the computational value for CTL as specified in
Table 6 is used, meaning that the CTL value has:
4 decimal places if CTL >=1
5 decimal places if CTL < 1.
2: Enabled for table value
API-2540 rounding and truncating rules are applied and, in case of conversion
method 2 (standard to observed), the table value for CTL as specified in Table 6
meaning that the CTL value has 4 decimal places in all cases
3: Enabled with 5 decimal places
API-2540 rounding and truncating rules are applied, and, in case of conversion
method 2 (standard to observed), the CTL value has 5 decimal places in all cases.
Note: although not strictly in accordance with the standard, this option is more
commonly used than option 'Enabled for computational value'
Note: for conversion type 1 ‘From observed to standard conditions’ the CTL factor
is rounded to 6 decimal places when input ‘API 2540 rounding’ > 0, as in accordance
with table 5.
Hydrometer correction Only applies for conversion method - HYDROCOR 0
‘1: From observed to standard conditions’
0: Disabled
1: Enabled
API 11.2.1 rounding 0: Disabled - API1121RND 0
The calculation of the compressibility factor F is performed with full precision
1: Enabled
API-MPMS 11.2.1 rounding and truncating rules are applied. The compressibility
factor F is rounded to 3 decimal places as specified in the standard.
IT
34 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Function inputs Remark EU SW tag Range Default


Equilibrium pressure The equilibrium pressure is considered to be 0 psig for liquids which have an psig EQUIPRES 0..2000 0
equilibrium pressure less than atmospheric pressure (in compliance with API MPMS
12.2 par. 12.2.5.4)
Conversion method 1: From observed to standard conditions CONVERSION 1
2: From standard to observed conditions

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS 1
1: Input argument out of range FIOOR
2: Calculation error CALC
3: No convergence NOCONV
Output API gravity Depending of the conversion method this represents the API gravity at either at 60 °API API 0
°F and the equilibrium pressure or the observed temperature and pressure
CTL Volume correction factor for temperature. - CTL 1
Value will be rounded according to input 'API2540 rounding'
CPL Volume correction factor for pressure - CPL 1
Value will be rounded according to input 'API 11.2.1 rounding'''
CTPL Combined volume correction factor - CTPL 1
CTPL = CTL * CPL
K0 Actual value of constant K0 used for CTL calculation - K0 0
K1 Actual value of constant K1 used for CTL calculation - K1 0
K2 Actual value of constant K2 used for CTL calculation - K2 0
Alpha Thermal expansion factor 1/°F ALPHA 0
F Compressibility factor - F 0
Product When input 'Product' is 'B - Auto select', then the output is set to the actual selected - PRDCUR 0
product of table 5B / 6B (enumerative value as defined for input 'Product'), else the
output is set equal to input 'Product'.
CTL calc out of range With respect to the standard used for the calculation of CTL the combination of 0
input values is:
0: In Range
1: Out of Range CTLOOR
CPL calc out of range With respect to the standard used for the calculation of CPL the combination of 0
input values is:
0: In Range
1: Out of Range CPLOOR

Calculations then the intermediate results are rounded or truncated as


The calculations depend on the conversion method. specified API-2540 Table 5.
Depending on the type of API2540 rounding the calculated
Conversion method 1: from observed to standard conditions. CTL value is rounded to 6 decimal places or not rounded at all.
The function performs the following iterative algorithm to The density at [60 F, equilibrium pressure] is calculated by
calculate the API gravity at standard conditions: dividing the observed density by the new CTL value and the
First the inputs are rounded in accordance with the API2540 CPL value from the previous iteration.
standard, provided that API2540 rounding is enabled. The API gravity at [60 F, equilibrium pressure] is calculated
The observed density [kg/m3] is calculated from the observed from the density at [60 F, equilibrium pressure]
API gravity The compressibility factor is calculated according to API
The hydrometer correction on the observed density is applied, MPMS 11.2.1 from the API gravity at [60 F, equilibrium
provided that this correction is enabled pressure] and the 'Observed temperature'. If API 11.2.1
At the start of the iteration the initial value for density and API rounding is enabled then the API gravity and temperature are
gravity at [60 F, equilibrium pressure] is set to respectively rounded and the calculations are performed in accordance
the observed density and the observed API gravity. The initial with the rounding and truncating rules of the standard.
CPL value is set to 1. The CPL value is calculated from the compressibility factor
When the type of product is set to ‘B – Auto select’ (automatic and the 'Observed pressure' and 'Equilibrium pressure' input
selection of the refined product range) the K0, K1 and K2 values.
factors are determined based on the API gravity at [60 F, The density at [60F, equilibrium pressure] is calculated by
equilibrium pressure]. The Transition area is only taken in dividing the observed density by CTL and the new CPL value.
consideration in the 2nd iteration loop, as specified in the If API2540 rounding is enabled then the density at [60F,
standard. equilibrium pressure] value is rounded to 3 decimal places as
The Alpha factor is calculated according from the density at specified in the standard.
[60 C, equilibrium pressure] and the K0, K1 and K2 factor. If The API gravity at [60 F, equilibrium pressure] is calculated
API2540 rounding is enabled, then the intermediate results from the density at [60 F, equilibrium pressure]
are rounded or truncated as specified API-2540 Table 5. If API2540 rounding is enabled then the API gravity at [60F,
The CTL value is calculated according to API-2540 Table 5 equilibrium pressure] value is rounded to 1 decimal place as
from the Alpha factor and the differential temperature (= specified in the standard.
observed temperature – 60°F). If API2540 rounding is enabled,
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 35

Steps 5 through 16 are repeated taking the density value from


step 14 as the start value for the next iteration until the
absolute difference between two consecutive density values
is either 0.05 (or 0.07 for the transition area) or 0.000001,
depending of API2540 rounding being enabled or not.
For refined products the entire iteration loop is repeated if
the API gravity at [60F, equilibrium pressure] appears to be in
a different product region than the observed API gravity. This
is required because a different product region means
different K0, K1 and K2 factors.

Conversion method 2: from standard to observed conditions.


The function performs straightforward calculations to
determine the API gravity at observed conditions:
First the inputs are rounded in accordance with the API2540
standard, provided that API2540 rounding is enabled.
The density at [60F, equilibrium pressure] is calculated from
the input API gravity
When the type of product is set to ‘B – Auto select’ (automatic
selection of the refined product range) the K0, K1 and K2
factors are determined based on the input API gravity
The Alpha factor is calculated according from the density at
[60F, equilibrium pressure] and the K0, K1 and K2 factor. If
API2540 rounding is enabled, then the intermediate results
are rounded or truncated as specified API-2540 Table 6.
The CTL value is calculated according to API-2540 Table 6
from the Alpha factor and the differential temperature (=
observed temperature – 60°F). If API2540 rounding is enabled,
then the intermediate results are rounded or truncated as
specified API-2540 Table 6.
Depending on the type of API2540 rounding the calculated
CTL value is rounded to 4 or 5 decimal places or not rounded
at all.
The compressibility factor is calculated according to API
MPMS 11.2.1 from the input density and temperature'. If API
11.2.1 rounding is enabled then the input density and
temperature are rounded and the calculations are performed
in accordance with the rounding and truncating rules of the
standard.
The CPL value is calculated from the compressibility factor
and the 'Observed pressure' and 'Equilibrium pressure' input
values.
The API gravity at observed temperature and pressure is
calculated from the input API gravity and the CTL and the CPL
values.
IT
36 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_MPMS_11_2_1
The API MPMS 11.2.1 standard consists of a printed table that Boundaries
contains compressibility factors to correct hydrocarbon volumes API MPMS 11.2.1 defines the following limits on the input values:
under pressure to the corresponding volumes at the equilibrium 0 to 90 °API
pressure for the metered temperature. -20 to +200 °F
The table contains compressibility factors related to meter 0 to 1500 psig.
temperature and API gravity at 60°F.
From the compressibility factor the volume correction for API Rounding
pressure is calculated according to API MPMS 12.2. The actual standard is the printed table. It also includes the
'Calculation Procedure' to obtain the table values based on the
Compliance rounding and truncating of all input, intermediate and output
API MPMS 11.2.1 - Compressibility Factors for Hydrocarbons: 0 values.
- 90°API Gravity Range - First Edition, August 1984 The function provides the option to either output the table value
API MPMS 12.2 - Calculation of Liquid Petroleum Quantities (including the full API rounding and truncating requirements) or
Measured by Turbine or Displacement Meters to perform the calculation procedure without any rounding and
truncating being applied.

Name Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
API60 API gravity at 60°F °API 0..120 0
Observed Temperature °F -50..400 60
Observed Pressure psig -10..2000 0
Equilibrium Pressure The equilibrium pressure is considered to be 0 psig for liquids psig EQUIPRES 0..2000 0
which have an equilibrium pressure less than atmospheric
pressure (in compliance with API MPMS 12.2 par. 12.2.5.4)
API 11.2.1 rounding 0: Disabled APIROUND - 0
The calculation of the compressibility factor F is performed
with full precision.
1: Enabled
API-MPMS 11.2.1 rounding and truncating rules are applied. The
compressibility factor F is rounded to 3 decimal places as
specified in the standard.

Name Remark EU Fallback


Status 0: Normal STS 1
1: Input argument out of range FIOOR
2: Calculation error CALERR

CPL Volume correction factor for pressure - CPL 1


Note: to achieve compliance with API MPMS 12.2 the CPL value needs to be rounded
to 4 decimal places.
F Compressibility factor 1/psi F 0
The output value will rounded according to input 'API 11.2.1 rounding'
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations With:
The calculations are in either full or partial compliance with the If Pe > 0 then CPL Volume correction -
factor for pressure
standards, depending on whether API rounding is enabled or 1
not and on the actual number of decimal places for the CPL CPL F Compressibility 1/p
1  F  ( Po  Pe) factor si
value (API MPMS 12.2 defines 4 decimal places for the CPL Po Observed pressure psig
Pe Equilibrium psig
value).
Else pressure
The CPL value is calculated as follows (in compliance with API
MPMS 12.2): 1
CPL
1  F  Po
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 37

fxAPI_MPMS_11_2_1M
The API MPMS 11.2.1M standard consists of a printed table that Data Limits
contains compressibility factors to correct hydrocarbon volumes API MPMS 11.2.1M defines the following limits on the input
under pressure to the corresponding volumes at the equilibrium values:
pressure for the metered temperature.
The table contains compressibility factors related to meter 638 to 1074 kg/m3
temperature and density at 15°C. -30 to 90 °C
This metric standard corresponds with API MPMS 11.2.1 (the 0 to 103 bar(g).
customary version).
It is advised not to use the standard outside these limits.
Compliance
11.2.1M - Compressibility Factors for Hydrocarbons: 638 - 1074
Kilograms per Cubic Meter Range - First Edition, August 1984
API MPMS 12.2 - Calculation of Liquid Petroleum Quantities
Measured by Turbine or Displacement Meters

Function inputs
Name Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Density at 15°C kg/m3 0..1300 0
Observed temperature °C -100..200 15
Observed pressure bar(g) -1..150 0
Equilibrium pressure The equilibrium pressure is considered to be 0 bar(g) for liquids which have an bar(g) EQUIPRES 0
equilibrium pressure less than atmospheric pressure (in compliance with API MPMS 12.2
par. 12.2.5.4)
API 11.2.1M rounding 0: Disabled - APIROUND 0
The calculation of the compressibility factor F is performed with full precision
1: Enabled
API-MPMS 11.2.1M rounding and truncating rules are applied. The compressibility factor
F is rounded in accordance with the standard.

Function outputs
Name Remark EU SW tag Alarm Fallback
Status 0: Normal STS 1
1: Input argument out of range FIOOR
2: Calculation error CALC

CPL Volume correction factor for pressure - CPL 1


Note: to achieve compliance with API MPMS 12.2 the CPL value needs to be rounded to 4 decimal
places.
F Compressibility factor 1/bar F 0
The output value will be either rounded or not depending input 'API 11.2.1M rounding '
Calculation out With respect to the standard the input values are: - OOR 0
of range 0: In Range
1: Out of Range

Calculations
The calculations are in either full or partial compliance with the Else
standards, depending on whether API rounding is enabled or not 1
CPL
and on the actual number of decimal places for the CPL value 1  F  Po
(API MPMS 12.2 defines 4 decimal places for the CPL value).

The CPL value is calculated as follows (in compliance with API CPL Volume correction factor for pressure -
MPMS 12.2): F Compressibility factor 1/bar
Po Observed pressure bar(g)
If Pe > 0 then Pe Equilibrium pressure bar(g)
1
CPL
1  F  ( Po  Pe)
IT
38 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_MPMS_11_2_2
The API MPMS 11.2.2 standard consists of a printed table that Pseudo-critical temperature check
contains compressibility factors to correct hydrocarbon volumes The standard specifies that the observed temperature must be
under pressure to the corresponding volumes at the equilibrium less than the pseudo-critical temperature.
pressure for the metered temperature.
The table contains compressibility factors related to meter Observed Temperature [Rankin] < Pseudo Critical Temperature *
temperature and the relative density at 60°F. 0.96

Compliance With:
11.2.2 - Compressibility Factors for Hydrocarbons: 0.350 - Pseudo Critical Temperature [Rankin] = 621.418 - 822.686 * RD60
0.637 Relative Density (60°F/60°F) and -50°F to 140°F + 1737.86 * RD60^2
Metering Temperature - Second Edition, October 1986 Observed Temperature [Rankin] = Observed Temperature [°F] +
459.7;
Boundaries
API MPMS 11.2.2 defines the following limits on the input values: API Rounding
The actual standard is the printed table. Also included is a
0.350 to 0.637 (relative density) 'Calculation Procedure' that illustrates how to obtain the table
-50 to 140 °F values including all required rounding and truncating of the
0 to 2200 psig input, intermediate and output values.
The function provides the option to either output the table value
(including all the full API rounding and truncating requirements)
or to perform the calculation procedure without any rounding
and truncating being applied.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Relative density at 60°F Relative density at 60°F - 0..0.75 0
Observed Temperature °F -100..300 60
Observed Pressure psig -10..2500 0
Equilibrium Pressure The equilibrium pressure is considered to be 0 psig for liquids which have an psig EQUIPRES 0..2500 0
equilibrium pressure less than atmospheric pressure (in compliance with API MPMS
12.2 par. 12.2.5.4)
API 11.2.2 rounding 0: Disabled APIROUND - 0
The calculation of the compressibility factor F and CPL is performed with full
precision.
1: Enabled
API-MPMS 11.2.2 rounding and truncating rules are applied.
The compressibility factor F is rounded to 8 decimal places with a maximum of 4
significant digits as specified in the standard.
The CPL value is rounded to 4 decimal places in compliance with the standard

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS 1
1: Input argument out of range FIOOR
2: Calculation error CALCERR

CPL Volume correction factor for pressure - CPL 1


Value will be rounded according to input 'API 11.2.2 rounding'
F Compressibility factor 1/psi F 0
The output value will be either rounded or not depending input 'API 11.2.2.
rounding'
Range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range
This includes the boundaries for relative density and temperature and
also the check of the pseudo-critical temperature.

Calculations
The calculations are in either full or partial compliance with the
standard, depending on the selected type of API rounding.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 39

fxAPI_MPMS_11_2_2M
The API MPMS 11.2.2M standard consists of a printed table that Boundaries
contains compressibility factors to correct hydrocarbon volumes API MPMS 11.2.2M defines the following limits on the input
under pressure to the corresponding volumes at the equilibrium values:
pressure for the metered temperature. 350 to 637 kg/m3
The table contains compressibility factors related to meter -46 to 60 °C
temperature and the density at 15°C. 0 to 152 bar(g)
This metric standard corresponds with API MPMS 11.2.2 (the U.S.
customary version) Also the check on the pseudo-critical temperature as defined for
fxAPI_MPMS_11_2_2 is applied.
Compliance
11.2.2M - Compressibility Factors for Hydrocarbons: 350 - 637
Kilograms per Cubic Meter Density (15°C) and -46°C to 60 °C
Metering Temperature - First Edition, October 1986

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Density at 15°C kg/m3 0..750 0
Observed Temperature °C -100..150 60
Observed Pressure bar(g) -1..200 0
Equilibrium Pressure The equilibrium pressure is considered to be 0 psig for liquids which have an bar(g) EQUIPRES 0..200 0
equilibrium pressure less than atmospheric pressure (in compliance with API
MPMS 12.2 par. 12.2.5.4)
API 11.2.2M rounding 0: Disabled APIROUND - 0
The calculation of the compressibility factor F and CPL is performed with full
precision.
1: Enabled
API-MPMS 11.2.2M rounding and truncating rules are applied.
The compressibility factor F is rounded in accordance with the standard.

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS 1
1: Input argument out of range FIOOR
2: Calculation error CALCERR

CPL Volume correction factor for pressure - CPL 1


Value will be rounded according to input 'API 11.2.2M rounding'
F Compressibility factor 1/bar F 0
The output value will be either rounded or not depending input 'API 11.2.2M
rounding'
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The calculations are in either full or partial compliance with the
standard, depending on the selected type of API rounding.
IT
40 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_MPMS_11_3_2_1
The function calculates the density of Ethylene (C2H4, also called Boundaries
Ethene) based on the API MPMS 11.3.2.1 Equation Of State in USC The equation of state is valid from 65…165 °F and 200 … 2100
units. This API chapter is also known as API Standard 2565. psia.

References
Supplement to API MPMS 11.3.1.1 (API Std. 1565) Ethylene
Density, 1974, Reaffirmed 1993.

Function inputs Remark EU Range Default


Name Optional tag name, tag description and tag group
Temperature °F -100..300 0
Pressure psia 0…3000 0
API rounding 0: Disabled - 1
The calculations are performed with full precision. A convergence limit of 1e-10 lbm/ft3 will be
applied for the iterative calculations.
1: Enabled
The calculations are performed in full compliance with the standard. The input, intermediate and
output values are rounded as specified and also the iteration limit as specified in the standard is
used to achieve convergence.

Function outputs Remark EU Fallback


Status 0: Normal
1: Input argument out of range
2: Calculation error
3: No convergence
Density lb/ft3 0
Compressibility - 0
Equilibrium pressure Equilibrium pressure at the observed temperature. psia 0
This property is not currently calculated, as it is not defined in the standard how to do this.
Range With respect to the standard the inputs are: - 0
0: In Range
1: Out of Range

Calculations
The calculations are in compliance with the standard.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 41

fxAPI_MPMS_11_3_3_2
The API MPMS 11.3.3.2 standard consists of a table with the Boundaries
density values (lbm/ft3) of propylene liquid as a function of The Calculation Procedure of API MPMS 11.3.3.2 defines the
pressure and temperature. Also part of the standard is the following limits on the input values:
Calculation Procedure to obtain the table values. 30 to 165 °F
0 to 1600 psig
Compliance
API MPMS 11.3.3.2 Propylene Compressibility Tables, 1974,
Reaffirmed 1997.

Function inputs and outputs


Function inputs Remark EU Range Default
Name Optional tag name, tag description and tag group
Observed temperature °F 0..200 60
Observed pressure psia 0..2000 0
API rounding 0: Disabled - 1
The calculations are performed with full precision.
A convergence limit of 1e-10 lbm/ft3 will be applied for the iterative calculations.
1: Enabled
The calculated density is rounded to 5 decimal places (same as table values).
A convergence limit of 5e-6 lbm/ft3 will be applied as defined in the standard.

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS 1
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
Density At the observed pressure and temperature lbm/ft3 DENS 0
CTPL Volume correction factor for temperature and pressure (also referred to as the - CTPL 1
compressibility factor), equals the density at the observed conditions of
pressure and temperature value divided by 32.6058 lbm/scf.
The value of 32.6058 lbm/scf is specified in the Calculation Procedure of the
standard as the propylene standard density at 60 °F and the corresponding
vapor pressure.
Equilibrium pressure Equilibrium pressure at the observed temperature. psia EQUIPRES 0
Also referred to as vapor pressure or saturated pressure
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The calculations are in full or partial compliance with the
standard depending on input ‘API rounding’.
IT
42 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_RD60F_1980
Compliance
Relative Density (T, P) <--> Relative Density (60°F,
API MPMS 11.1 Volume X (API Standard 2540) - Table 23A -
equilibrium pressure)
Generalized Crude Oils, Correction of Observed Relative
Density to Relative Density at 60/60°F - First Edition, August
This function converts a relative density value at the observed
1980
temperature and pressure to the relative density at 60°F and the
API MPMS 11.1 Volume X (API Standard 2540) - Table 23B -
equilibrium pressure (typically 0 psig) or vice versa.
Generalized Products, Correction of Observed Relative
The temperature conversion is according to API-2540, Tables
Density to Relative Density at 60/60°F - First Edition, August
23A/24A (Generalized Crude Oils) and 23B/24B (Refined Oil
1980
Products), while the volume correction for pressure according to
API MPMS 11.1 Volume X (API Standard 2540) - Table 24A -
API MPMS 11.2.1.
Generalized Crude Oils, Correction of Volume to 60°F against
In 1982 API published tables 5D, 6D, 53D and 54D for lubricating
Relative Density at 60/60°F - First Edition, August 1980
oil products as part of API MPMS 11.1. Although tables 23D and
API MPMS 11.1 Volume X (API Standard 2540) - Table 24B -
24D are not covered in an official API standard the Spirit IT
Generalized Products Correction of Volume to 60°F against
products support tables 23D and 24D as well by combining the
Relative Density at 60/60°F - First Edition, August 1980
calculation of tables 23A/B and 24A/B with the K0 and K1
API MPMS 11.2.1 - Compressibility Factors for Hydrocarbons: 0
constants published in the other tables for lubricating oils.
- 90°API Gravity Range - First Edition, August 1984

NOTE: this function is a combination of API2540 and API 11.2.1.


For the calculation from observed to standard conditions an
iterative calculation is required. The rounding and truncating of
input and intermediate values is implemented such that the
example calculations as specified in both standards are exactly
reproduced.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Input relative density Depending on the conversion method this is the relative density either at the - 0..1.3 0
observed temperature and observed pressure or at 60 °F and the equilibrium
pressure
Observed temperature °F -100..400 60
Observed pressure psig -10..2000 0
Product 1: A - Crude Oil PRDTYP - 1
2: B - Auto select
Selection based on relative density at 60 °F
3: B - Gasoline
4: B - Transition Area
5: B - Jet Fuels
6: B - Fuel Oil
7: D - Lubricating Oil
API-2540 rounding 0: Disabled API2540RND - 0
The calculations are performed with full precision and the final CTL value is rounded
as specified by input 'CTL decimal places'
1: Enabled for computational value
API-2540 rounding and truncating rules are applied and, in case of conversion method
2 (standard to observed), the computational value for CTL as specified in Table 24 is
used, meaning that the CTL value has:
4 decimal places if CTL >=1
5 decimal places if CTL < 1.
2: Enabled for table value
API-2540 rounding and truncating rules are applied and, in case of conversion method
2 (standard to observed), the table value for CTL as specified in Table 24 meaning
that the CTL value has 4 decimal places in all cases
3: Enabled with 5 decimal places
API-2540 rounding and truncating rules are applied, and, in case of conversion
method 2 (standard to observed), the CTL value has 5 decimal places in all cases.
Note: although not strictly in accordance with the standard, this option is more
commonly used than option 'Enabled for computational value'
Note: for conversion type 1 ‘From observed to standard conditions’ the CTL factor is
rounded to 6 decimal places when input ‘API 2540 rounding’ > 0, as in accordance
with table 23.
Hydrometer correction Only applies for conversion method - HYDROCOR 0
‘1: From observed to standard conditions’
0: Disabled
1: Enabled
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 43

Function inputs Remark EU SW tag Range Default


API 11.2.1 rounding 0: Disabled - API1121RND 0
The calculation of the compressibility factor F is performed with full precision
1: Enabled
API-MPMS 11.2.1 rounding and truncating rules are applied. The compressibility factor
F is rounded to 3 decimal places as specified in the standard.
Equilibrium pressure The equilibrium pressure is considered to be 0 psig for liquids which have an psig EQUIPRES 0..2000 0
equilibrium pressure less than atmospheric pressure (in compliance with API MPMS
12.2 par. 12.2.5.4)
Conversion method 1: From observed to standard conditions CONVERSION 1
2: From standard to observed conditions

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR 1
2: Calculation error CALCERR
3: No convergence NOCONV
Output relative density Depending on the conversion method this is the relative density either at 60 °F and the - RD 0
equilibrium pressure or at the observed temperature and observed pressure
CTL Volume correction factor for temperature. - CTL 1
Value will be rounded according to input 'API2540 rounding'
CPL Volume correction factor for pressure - CPL 1
Value will be rounded according to input 'API 11.2.1 rounding'
CTPL Combined volume correction factor - CTPL 1
CTPL = CTL * CPL
K0 Actual value of constant K0 used for CTL calculation - K0 0
K1 Actual value of constant K1 used for CTL calculation - K1 0
K2 Actual value of constant K2 used for CTL calculation - K2 0
Alpha Thermal expansion factor 1/°F ALPHA 0
F Compressibility factor - F 0
Product When input 'Product' is 'B - Auto select', then the output is set to the actual selected - PRDCUR 0
product of table 23B/24B (enumerative value as defined for input 'Product'), else the
output is set equal to input 'Product'.
CTL calc out of range With respect to the standard used for the calculation of CTL the combination of input 0
values is:
0: In Range
1: Out of Range CTLOOR
CPL calc out of range With respect to the standard used for the calculation of CPL the combination of input 0
values is:
0: In Range
1: Out of Range CPLOOR

Calculations API2540 rounding is enabled, then the intermediate results


The calculations depend on the conversion method. are rounded or truncated as specified API-2540 Table 23.
The CTL value is calculated according to API-2540 Table 23
Conversion method 1: from observed to standard conditions. from the Alpha factor and the differential temperature (=
The function performs the following iterative algorithm to observed temperature – 60°F). If API2540 rounding is enabled,
calculate the relative density at standard conditions: then the intermediate results are rounded or truncated as
First the inputs are rounded in accordance with the API2540 specified API-2540 Table 23.
standard, provided that API2540 rounding is enabled. Depending on the type of API2540 rounding the calculated
The observed density [kg/m3] is calculated from the observed CTL value is rounded to 6 decimal places or not rounded at all.
relative density The density at [60 F, equilibrium pressure] is calculated by
The hydrometer correction on the observed density is applied, dividing the observed density by the new CTL value and the
provided that this correction is enabled CPL value from the previous iteration.
At the start of the iteration the initial value for density and The relative density at [60 F, equilibrium pressure] is
relative density at [60 F, equilibrium pressure] is set to calculated from the density at [60 F, equilibrium pressure]
respectively the observed density and the observed relative Because API 11.2.1 requires the API gravity value at 60 F, the
density. The initial CPL value is set to 1. API gravity at [60 F, equilibrium pressure] is calculated from
When the type of product is set to ‘B – Auto select’ (automatic the density at [60 F, equilibrium pressure].
selection of the refined product range) the K0, K1 and K2 The compressibility factor is calculated according to API
factors are determined based on the relative density at [60 F, MPMS 11.2.1 from the API gravity at [60 F, equilibrium
equilibrium pressure]. The Transition area is only taken in pressure] and the 'Observed temperature'. If API 11.2.1
consideration in the 2nd iteration loop, as specified in the rounding is enabled then the API gravity and temperature are
standard. rounded and the calculations are performed in accordance
The Alpha factor is calculated according from the density at with the rounding and truncating rules of the standard.
[60 C, equilibrium pressure] and the K0, K1 and K2 factor. If
IT
44 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

The CPL value is calculated from the compressibility factor The CPL value is calculated from the compressibility factor
and the 'Observed pressure' and 'Equilibrium pressure' input and the 'Observed pressure' and 'Equilibrium pressure' input
values. values.
The density at [60F, equilibrium pressure] is calculated by The relative density at observed temperature and pressure is
dividing the observed density by CTL and the new CPL value. calculated from the input relative density and the CTL and the
If API2540 rounding is enabled then the density at [60F, CPL values.
equilibrium pressure] value is rounded to 3 decimal places as
specified in the standard.
The relative density at [60 F, equilibrium pressure] is
calculated from the density at [60 F, equilibrium pressure]
If API2540 rounding is enabled then the relative density at
[60F, equilibrium pressure] value is rounded to 4 decimal
places as specified in the standard.
Steps 5 through 17 are repeated taking the density value from
step 14 as the start value for the next iteration until the
absolute difference between two consecutive density values
is either 0.05 (or 0.07 for the transition area) or 0.000001,
depending of API2540 rounding being enabled or not.
For refined products the entire iteration loop is repeated if
the relative density at [60F, equilibrium pressure] appears to
be in a different product region than the observed relative
density. This is required because a different product region
means different K0, K1 and K2 factors.
If API 11.2.4 rounding is enabled, then the relative density
value at [60F, equilibrium pressure] is rounded to 0.0001

Conversion method 2: from standard to observed conditions.


The function performs straightforward calculations to
determine the relative density at observed conditions:
First the inputs are rounded in accordance with the API2540
standard, provided that API2540 rounding is enabled.
The density at [60F, equilibrium pressure] is calculated from
the input relative density
When the type of product is set to ‘B – Auto select’ (automatic
selection of the refined product range) the K0, K1 and K2
factors are determined based on the input relative density
The Alpha factor is calculated according from the density at
[60F, equilibrium pressure] and the K0, K1 and K2 factor. If
API2540 rounding is enabled, then the intermediate results
are rounded or truncated as specified API-2540 Table 24.
The CTL value is calculated according to API-2540 Table 24
from the Alpha factor and the differential temperature (=
observed temperature – 60°F). If API2540 rounding is enabled,
then the intermediate results are rounded or truncated as
specified API-2540 Table 24.
Depending on the type of API2540 rounding the calculated
CTL value is rounded to 4 or 5 decimal places or not rounded
at all.
Because API 11.2.1 requires the API gravity value at 60 F, the
API gravity at [60 F, equilibrium pressure] is calculated from
the density at [60 F, equilibrium pressure].
The compressibility factor is calculated according to API
MPMS 11.2.1 from the input density and temperature'. If API
11.2.1 rounding is enabled then the input density and
temperature are rounded and the calculations are performed
in accordance with the rounding and truncating rules of the
standard.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 45

fxAPI_SG60F_1952
Compliance
Specific Gravity (T, P) <--> Specific Gravity (60°F,
ASTM-IP Petroleum Measurement Tables, American Edition,
equilibrium pressure)
United States Units of Measurement, 1952
API MPMS 11.2.1 - Compressibility Factors for Hydrocarbons: 0
This function converts a specific gravity value at the observed - 90°API Gravity Range - First Edition, August 1984
temperature and pressure to the specific gravity at 60°F and the
equilibrium pressure (typically 0 psig) or vice versa.
The temperature conversion is according to ASTM-IP Petroleum
Measurements Tables 1952 (Also known as API-1952 tables)
Table 24.

NOTE: this function is a combination of the API 1952 Tables and


API 11.2.1. For the calculation from observed to standard
conditions an iterative calculation is required. The rounding and
truncating of input and intermediate values is implemented such
that the example calculations as specified in both standards are
exactly reproduced.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Input Specific Gravity Depending on the conversion method this is the Specific Gravity either at the - 0..1.3 0
observed temperature and observed pressure or at 60 °F and the equilibrium pressure
Observed temperature °F -100..400 60
Observed pressure psig -10..2000 0
API 11.2.1 rounding 0: Disabled - API1121RND 0
The calculation of the compressibility factor F is performed with full precision
1: Enabled
API-MPMS 11.2.1 rounding and truncating rules are applied. The compressibility factor
F is rounded to 3 decimal places as specified in the standard.
Equilibrium pressure The equilibrium pressure is considered to be 0 psig for liquids which have an psig EQUIPRES 0..2000 0
equilibrium pressure less than atmospheric pressure (in compliance with API MPMS
12.2 par. 12.2.5.4).
Conversion method 1: From observed to standard conditions CONVERSION 1
2: From standard to observed conditions

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR 1
2: Calculation error CALCERR
3: No convergence NOCONV
Output Specific Gravity Depending on the conversion method this is the Specific Gravity either at 60 °F and the - RD 0
equilibrium pressure or at the observed temperature and observed pressure
CTL Volume correction factor for temperature. - CTL 1
CPL Volume correction factor for pressure - CPL 1
Value will be rounded according to input 'API 11.2.1 rounding'
CTPL Combined volume correction factor - CTPL 1
CTPL = CTL * CPL
F Compressibility factor - F 0
CTL calc out of range With respect to the standard used for the calculation of CTL the combination of input 0
values is:
0: In Range
1: Out of Range CTLOOR
CPL calc out of range With respect to the standard used for the calculation of CPL the combination of input 0
values is:
0: In Range
1: Out of Range CPLOOR

Calculations At the start of the iteration the initial value for Specific
The calculations depend on the conversion method. Gravity at [60 F, equilibrium pressure] is set to the Observed
Specific Gravity. The initial CPL value is set to 1.
Conversion method 1: from observed to standard conditions. The CTL value is determined from the Specific Gravity at [60
The function performs the following iterative algorithm to F, equilibrium pressure] according to API 1952 Table 24.
calculate the Specific Gravity at standard conditions: The Specific Gravity at [60 F, equilibrium pressure] is
calculated from the Observed specific gravity, the new CTL
value and the CPL value from the previous iteration.
IT
46 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Because API 11.2.1 requires the API gravity value at 60 F, the
API gravity at [60 F, equilibrium pressure] is calculated from
the Specific gravity at [60 F, equilibrium pressure].
The compressibility factor is calculated according to API
MPMS 11.2.1 from the API gravity at [60 F, equilibrium
pressure] and the 'Observed temperature'. If API 11.2.1
rounding is enabled then the API gravity and temperature are
rounded and the calculations are performed in accordance
with the rounding and truncating rules of the standard.
The CPL value is calculated from the compressibility factor
and the 'Observed pressure' and 'Equilibrium pressure' input
values.
The Specific Gravity at [60F, equilibrium pressure] is
calculated by dividing the Observed Specific Gravity by the
CTL and the new CPL value.
Steps 2 through 7 are repeated taking the specific gravity
value from step 7 as the start value for the next iteration until
the absolute difference between two consecutive specific
gravity values is 0.0001.

Conversion method 2: from standard to observed conditions.


The function performs straightforward calculations to
determine the Specific Gravity at observed conditions:
The CTL value is calculated according to API 1952 Table 24
Because API 11.2.1 requires the API gravity value at 60 F, the
API gravity is calculated from the 'Input Specific Gravity'.
The compressibility factor is calculated according to API
MPMS 11.2.1 from the API gravity and the 'Observed
temperature'. If API 11.2.1 rounding is enabled then the input
density and temperature are rounded and the calculations are
performed in accordance with the rounding and truncating
rules of the standard.
The CPL value is calculated from the compressibility factor
and the 'Observed pressure' and 'Equilibrium pressure' input
values.
The output Specific Gravity (at observed temperature and
pressure) is calculated from the input Specific Gravity and the
CTL and the CPL values.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 47

fxAPI_RD60F_NGL_LPG
Compliance
Relative Density (T, P) <--> Relative Density (60°F, Pe)
API MPMS 11.2.4: Temperature Correction for the Volume of
NGL and LPG Tables 23E, 24E, 53E, 54E, 59E & 60E, September
This function converts the relative density value at the observed 2007
temperature and pressure to the relative density value at 60°F GPA TP-27: Temperature Correction for the Volume of NGL
and the equilibrium pressure or vice versa. and LPG Tables 23E, 24E, 53E, 54E, 59E & 60E, September
2007
The temperature correction is according to API MPMS 11.2.4:2007 GPA TP-25: Temperature Correction for the volume of Light
(GPA TP-25 / GPA TP-27), while the pressure correction is Hydrocarbons – Tables 24E and 23E, 1998
according to API MPMS 11.2.2:1984. API MPMS 11.2.2 - Compressibility Factors for Hydrocarbons:
0.350 - 0.637 Relative Density (60°F/60°F) and -50°F to 140°F
The calculation of the equilibrium pressure is according to GPA Metering Temperature - Second Edition, October 1986
TP-15 (API MPMS 11.2.2 Addendum:1994). API MPMS 11.2.5: A Simplified Vapor Pressure Correlation for
Commercial NGLs, September 2007
GPA TP-15: A Simplified Vapor Pressure Correlation for
Commercial NGLs, September 2007 (also covers GPA TP-15
1988)
API MPMS 11.2.2 Addendum : Compressibility Factors for
Hydrocarbons: Correlation of Vapor Pressure for Commercial
Natural Gas Liquids (same as GPA TP-15:1988)

Function inputs
Name Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Input relative density Depending on the conversion method this represents the relative density - 0..0.75 0
either at the observed temperature and pressure or at 60 °F and the
equilibrium pressure
Observed temperature Temperature at which the relative density is observed °F -100..300 60
Observed pressure Pressure at which the relative density is observed psia -10..2500 0
API 11.2.4 rounding 0: Disabled API1124RND 0
The calculations are performed with full precision and the output values are
not rounded
1: Enabled
The input and output values are rounded as defined in the standard
API 11.2.2 rounding 0: Disabled API1122RND 0
The calculations are performed with full precision and the output values are
not rounded
1: Enabled
The input and output values are rounded as defined in the standard
Equilibrium pressure mode 1: Use Input EQUIPMODE 2
The value of input 'Equilibrium pressure value' is used for the calculation of
CPL
2: GPA TP-15
The equilibrium pressure is calculated in accordance with GPA TP-15
Equilibrium pressure value Only used when input 'Equilibrium pressure mode' is set to 'Use input'. psia EQUIPINP 0
The value will be used for the calculation of the CPL
GPA TP-15 rounding 0: Disabled - TP15RND 0
Full precision (no rounding and truncating applied)
1: Enabled
Rounding as defined in ' GPA TP15:1988 / API MPMS 11.2.2 Addendum':1994
P100 Correlation 0: Disabled - P100CORR 0
The standard correlation is commonly used for pure products such as
propane, butane and natural gasoline. It only requires the relative density
and the temperature to calculate the vapor pressure
1: Enabled
The improved correlation requires the vapor pressure at 100°F (37.8 °C). This
method is better suited for varied NGL mixes Where different product mixes
could have the same specific gravity but different equilibrium pressures.
Vapor pressure at 100°F psia EQUIP100F 0..2500 0
Conversion method 1: From observed to standard conditions CONVMETH 1
2: From standard to observed conditions

Function outputs
Name Remark EU SW tag Alarm Fallback
Status 0: Normal - STS
1: Input argument out of range FIOOR
IT
48 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Name Remark EU SW tag Alarm Fallback


2: Calculation error CALCERR
3: No convergence NOCONV
Output relative density Depending on the conversion method this represents the relative density - DENS Input Input
either at 60 °F and the equilibrium pressure or at the observed relative density
temperature and pressure
CTL Volume correction factor for temperature. - CTL 1
Value will be rounded according to input 'API 11.2.4 rounding'
CPL Volume correction factor for pressure - CPL 1
Value will be rounded according to input 'API 11.2.2. rounding'
CTPL Combined volume correction factor - CTPL 1
CTPL = CTL * CPL
F Compressibility factor 1/psi F 0
The output value will be either rounded or not depending input 'API
rounding'
Equilibrium pressure The equilibrium pressure calculated by GPA TP-15 psia EQUIPCUR 0
Will be set to 0 when equilibrium pressure is below atmospheric pressure
CTL calc out of range With respect to the API 11.2.4 standard the combination of input values is: 0
0: In Range
1: Out of Range
The following range checks apply: CTLOOR
0.21 <= RD <= 0.74
-50.8 <= T <= 199.4 °F
Table 23E reference fluid ranges
CPL calc out of range With respect to API 11.2.2M the combination of input values is: 0
0: In Range
1: Out of Range CPLOOR
The following range checks apply:
350 <= Density 15 °C <= 637 kg/m3
-46 °C <= T <= 60 °C
Also the check on the pseudo-critical temperature as defined for
fxAPI_MPMS_11_2_2 is applied.
GPA TP-15 out of range Only set when the GPA TP-15 calculation is enabled - 0
With respect to the GPA TP-15 standard the combination of input values is:
0: In Range
1: Out of Range
The following range checks apply: TP15OOR
For lower range:
0.350 <= RD60 < 0.425
-50 to (695.51*RD60 - 155.51) °F
Higher range:
0.425 <= RD60 <= 0.676
-50 to 140 °F
with RD60 being the relative density at 60°F

Calculations The compressibility factor F is calculated according to API


The calculations depend on the conversion method. MPMS 11.2.2 from the relative density at [60 F, equilibrium
pressure] and the 'Observed temperature', with, depending on
Conversion method 1: from observed to standard conditions. input API 11.2.2, rounding and truncation according to the
The function performs the following iterative algorithm to standard.
calculate the relative density at 60 °F and the equilibrium The CPL value is calculated from the compressibility factor,
pressure. the equilibrium pressure and the 'Observed pressure' input
When API 11.2.4 rounding is enabled, the input relative density value.
and temperature values are rounded in accordance with the The new value for relative density at [60F, equilibrium
standard pressure] is calculated by dividing the observed density by the
At the start of the iteration the relative density at [60 F, CTL and CPL values.
equilibrium pressure] is set equal to the observed relative Steps 3 though 8 are repeated taking the density value from
density and the CPL value is set to 1. step 8 as the staring value until the absolute difference
First the relative density corrected for pressure is calculated between two consecutive density values is less than the
by dividing the observed relative density by the CPL value. convergence limit.
The CTL value and the relative density at [60 F, equilibrium To avoid convergence problems different convergence limits
pressure] is calculated from the relative density corrected for are applied, depending on the whether API 11.2.2 and/or GPA
pressure and the observed temperature according to Table TP-15 rounding is applied:
23E If API 11.2.2M rounding is enabled -> Limit = 0.00005 kg/m3
Depending on the value of input 'Equilibrium pressure mode', else if GPA TP-15 rounding is enabled-> Limit = 0.000005
either value of input 'Equilibrium pressure value' is used or the kg/m3
equilibrium pressure (vapor pressure) is calculated according else -> Limit = 0.00000001 kg/m3
to GPA TP-15. Whether the GPA TP-15 rounding and truncation If API 11.2.4 rounding is enabled, then the relative density at
rules are applied is dictated by input ‘GPA-TP15 rounding’ [60F, equilibrium pressure] is rounded to 0.0001
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 49

Conversion method 2: from standard to observed conditions.


The function performs straightforward calculations to
determine the density at observed conditions:
When API 11.2.4 rounding is enabled, the input relative density
and temperature values are rounded in accordance with the
standard
The CTL value is calculated according to API MPMS 11.2.4 (GPA
TP-27) Table 24E from the density at [15 C, equilibrium
pressure] and the 'Observed temperature'.
Depending on the value of input 'Equilibrium pressure mode',
either value of input 'Equilibrium pressure value' is used or the
equilibrium pressure (vapor pressure) is calculated according
to GPA TP-15.
The compressibility factor is calculated according to API
MPMS 11.2.2 from the input relative density and the 'Observed
temperature'.
The CPL value is calculated from the compressibility factor,
the equilibrium pressure and the 'Observed pressure' input
value.
If API 11.2.4 rounding is enabled, then the CTL value is rounded
at [60F, equilibrium pressure] is rounded to 0.00001
The relative density at the observed conditions is calculated
by multiplying the input relative density by the CTL value and
the CPL value.
IT
50 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_Table5_1952
Compliance
°API (T) --> °API (60°F)
ASTM-IP Petroleum Measurement Tables, American Edition,
United States Units of Measurement, 1952
This function converts an API gravity value at the observed
temperature to the API gravity value at 60°F in accordance with
API 1952 Table 5.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Observed API Observed API gravity °API -20..120 0
Observed temperature Temperature at which the API gravity is observed °F -100..400 60

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS 1
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
API at 60 °F API gravity at 60°F °API API 0
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The table values are the standard, so no calculations are
involved. The function performs an interpolation between the
table values that correspond to the input values.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 51

fxAPI_Table5_1980
Compliance
°API (T) --> °API (60°F)
API MPMS 11.1 Volume X (API Standard 2540) - Table 5A -
Generalized Crude Oils, Correction of Observed API Gravity to
This function converts an API gravity value at the observed API Gravity at 60°F - First Edition, August 1980
temperature to the API gravity value at 60°F. API MPMS 11.1 Volume X (API Standard 2540) - Table 5B -
The temperature conversion is according to API MPMS 11.1:1980 Generalized Products, Correction of Observed API Gravity to
(API-2540), Tables 5A (Generalized Crude Oils) and 5B (Refined API Gravity at 60°F- First Edition, August 1980
Oil Products) and API MPMS 11.1 Chapter XIII Table 5D: 1984 API MPMS 11.1 Volume XIII - Table 5D - Generalized Lubricating
(Lubricating Oils). Oils, Correction of Observed API Gravity to API Gravity at 60°F
The function provides the option to correct for readings taken - January 1982
from a hydrometer as specified in the API-2540 standard.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Observed API Observed API gravity °API -20..120 0
Observed temperature Temperature at which the API gravity is observed °F -100..400 60
Product 1: A - Crude Oil PRDTYP 1
2: B - Auto select
Selection based on °API at 60 °F
3: B - Gasoline
4: B - Transition Area
5: B - Jet Fuels
6: B - Fuel Oil
7: D - Lubricating Oil
API2540 rounding 0: Disabled APIROUND 0
The calculations are performed with full precision.
A convergence limit of 0.000001 kg/m3 will be applied for the iterative
calculations.
1: Enabled
API-2540 rounding and truncating rules are applied.
A convergence limit of 0.05 kg/m3 will be applied as defined in the standard.
Hydrometer correction 0: Disabled HYDROCOR 0
1: Enabled

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS 1
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
API at 60 °F API gravity at 60°F °API API 0
CTL Volume correction factor for temperature. - CTL 1
K0 Actual value of constant K0 used for CTL calculation - K0 0
K1 Actual value of constant K1 used for CTL calculation - K1 0
K2 Actual value of constant K2 used for CTL calculation - K2 0
Alpha Thermal expansion factor 1/°F ALPHA 0
Product When input 'Product' is 'B - Auto select', then the output is set to the actual selected product - PRDCUR 0
of table 5B (enumerative value as defined for input 'Product'), else the output is set equal to
input 'Product'.
Calculation out of With respect to the standard the input values are: - OOR 0
range 0: In Range
1: Out of Range

Calculations
The calculations are in full or partial compliance with the
standard depending on input ‘API 2540 rounding’.
IT
52 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_Table5_2004
An iterative calculation needs to be applied to convert the
°API (T, P) --> °API (60°F, 0 psig)
observed API gravity to the value at base conditions.

This function converts an API gravity value at the observed NOTE: As opposed to API-2540, the 2004 standard does not
temperature and pressure to the API gravity value at 60°F and 0 include a correction for readings taken from a hydrometer and
psig. assumes that the equilibrium pressure is below atmospheric
pressure, so taking 0 psig as the base pressure.
The temperature and pressure correction is according to API
MPMS 11.1:2004. Compliance
API MPMS 11.1 Temperature and Pressure Volume Correction
Factors for Generalized Crude Oils, Refined Products and
Lubricating Oils, May 2004

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Observed API Observed API gravity °API -20..180 0
Observed temperature Temperature at which the API gravity is observed °F -100..400 60
Observed pressure Pressure at which the API gravity is observed psig -10..2000 0
Product 1: A - Crude Oil PRDTYP 1
2: B - Auto select (Selection based on °API at 60 °F)
3: B - Gasoline
4: B - Transition Area
5: B - Jet Fuels
6: B - Fuel Oil
7: D - Lubricating Oil
API rounding 0: Disabled APIROUN 0
The calculations are performed with full precision and the final CTL, CPL and CTPL values D
are rounded as specified by the inputs 'CTL / CPL/ CTPL decimal places'
1: Enabled
The input and output values are rounded in compliance with the standard. The CTL, CPL
and CTPL value are rounded to 5 decimal places

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence within 15 iterations NOCONV
API at 60 °F API gravity at 60°F and 0 psig - API 0
CTL Volume correction factor for temperature. - CTL 1
Value will be rounded according to input 'API rounding'
CPL Volume correction factor for pressure - CPL 1
Value will be rounded according to input 'API rounding'
CTPL Combined volume correction factor, CTPL = CTL * CPL - CTPL 1
K0 Actual value of constant K0 used for CTL calculation - K0 0
K1 Actual value of constant K1 used for CTL calculation - K1 0
K2 Actual value of constant K2 used for CTL calculation - K2 0
Alpha Thermal expansion factor 1/°C ALPHA 0
F Compressibility factor 1/psi F 0
Product When input 'Product' is 'B - Auto select', then the output is set to the actual selected - PRDCUR 0
product of table B (enumerative value as defined for input 'Product'), else the output is set
equal to input 'Product'.
Calculation out of With respect to the standard the input values are: - OOR 0
range 0: In Range
1: Out of Range

Calculations
The calculations are in either full or partial compliance with the
standard, depending on whether API rounding is enabled or
not.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 53

fxAPI_Table6_1952
Boundaries
°API (60°F, 0 psig) --> CTL
Table 6 contains values for the following range:

This function calculates the volume correction factor for Input value Normal Range EU
API Gravity at 60 °F 0 .. 100 °API
temperature from the API gravity value at 60°F and the observed
Observed temperature 0 .. 300 °F
temperature according to API 1952 Table 6.
Note that the table does not cover the full range, e.g. for an API
Compliance
gravity of 70 the table only specifies values between 0 .. 150 °F.
ASTM-IP Petroleum Measurement Tables, American Edition,
United States Units of Measurement, 1952

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
API at 60 °F API gravity at 60°F and the equilibrium pressure °API -20..120 0
Observed temperature °F -100..400 60

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS 1
1: Input argument out of range FIOOR
2: Calculation error CALC
CTL Volume correction factor for temperature. - CTL 1
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The table values are the standard, so no calculations are
involved. The function performs an interpolation between the
table values that correspond to the input values.
IT
54 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_Table6_1980
Compliance
°API (60°F, 0 psig) --> CTL
API MPMS 11.1 Volume X (API Standard 2540) - Table 6A -
Generalized Crude Oils, Correction of Volume to 60°F against
This function calculates the volume correction factor for API Gravity at 60°F - First Edition, August 1980
temperature from the API gravity value at 60°F and the observed API MPMS 11.1 Volume X (API Standard 2540) - Table 6B -
temperature. Generalized Products, Correction of Volume to 60°F against
The temperature conversion is according to API-2540, Tables 6A API Gravity at 60°F - First Edition, August 1980
(Generalized Crude Oils) and 6B (Refined Oil Products) and API API MPMS 11.1 Volume XIII - Table 6D - Generalized Lubricating
MPMS 11.1 Chapter XIII Table 6D: 1984 (Lubricating Oils). Oils, Correction of Volume to 60°F Against API Gravity at 60°F
- January 1982

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
API at 60 °F API gravity at 60°F and the equilibrium pressure °API -20..120 0
Observed temperature °F -100..400 60
Product 1: A - Crude Oil PRDTYP - 1
2: B - Auto select (Selection based on °API at 60 °F)
3: B - Gasoline
4: B - Transition Area
5: B - Jet Fuels
6: B - Fuel Oil
7: D - Lubricating Oil
API2540 rounding 0: Disabled APIROUND - 0
The calculations are performed with full precision and the final CTL value is rounded as
specified by input 'CTL decimal places'
1: Enabled for computational value
API-2540 rounding and truncating rules are applied and the computational value for CTL
as specified in the standard is used, meaning that the CTL value has:
4 decimal places if CTL >=1
5 decimal places if CTL < 1.
2: Enabled for table value
API-2540 rounding and truncating rules are applied and the table value for CTL as
specified in the standard meaning that the CTL value has 4 decimal places in all cases
3: Enabled with 5 decimal places
API-2540 rounding and truncating rules are applied, while the CTL value has 5 decimal
places in all cases.
Note: although not strictly in accordance with the standard, this option is more
commonly used than option 'Enabled for computational value'

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS 1
1: Input argument out of range FIOOR
2: Calculation error CALC
CTL Volume correction factor for temperature. - CTL 1
Value will be rounded according to input 'API2540 rounding'
K0 Actual value of constant K0 used for CTL calculation - K0 0
K1 Actual value of constant K1 used for CTL calculation - K1 0
K2 Actual value of constant K2 used for CTL calculation - K2 0
Alpha Thermal expansion factor 1/°F ALPHA 0
Product When input 'Product' is 'B - Auto select', then the output is set to the actual selected - PRDCUR 0
product of table 6B (enumerative value as defined for input 'Product'), else the
output is set equal to input 'Product'.
Calculation out of With respect to the standard the input values are: - OOR 0
range 0: In Range
1: Out of Range

Calculations
The calculations are in full or partial compliance with the
standard depending on input ‘API 2540 rounding’.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 55

fxAPI_Table6_2004
NOTE: As opposed to API-2540 that the equilibrium pressure is
°API (60°F, 0 psig) --> °API (T, P)
below atmospheric pressure, so taking 0 psig as the base
pressure.
This function converts an API gravity value at 60°F and 0 psig to
the API gravity value at the observed temperature and pressure. Compliance
The temperature and pressure correction is according to API API MPMS 11.1 Temperature and Pressure Volume Correction
MPMS 11.1:2004. Factors for Generalized Crude Oils, Refined Products and
Lubricating Oils, May 2004
Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
API at 60 °F API gravity at 60°F and 0 psig °API -20..120 0
Observed temperature Temperature at which the API gravity is observed °F -100..400 60
Observed pressure Pressure at which the API gravity is observed psig -10..2000 0
Product 1: A - Crude Oil PRDTYP 1
2: B - Auto select
Selection based on °API at 60 °F
3: B - Gasoline
4: B - Transition Area
5: B - Jet Fuels
6: B - Fuel Oil
7: D - Lubricating Oil
API rounding 0: Disabled APIROUND 0
The calculations are performed with full precision
1: Enabled
The input and output values are rounded in compliance with the standard.
The CTL, CPL and CTPL value are rounded to 5 decimal places.

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALC
Observed API API gravity at the observed temperature and pressure - API 0
CTL Volume correction factor for temperature. - CTL 1
CPL Volume correction factor for pressure - CPL 1
CTPL Combined volume correction factor - CTPL 1
CTPL = CTL * CPL
K0 Actual value of constant K0 used for CTL calculation - K0 0
K1 Actual value of constant K1 used for CTL calculation - K1 0
K2 Actual value of constant K2 used for CTL calculation - K2 0
Alpha Thermal expansion factor 1/°F ALPHA 0
F Compressibility factor 1/psi F 0
Product When input 'Product' is 'B - Auto select', then the output is set to the actual selected - PRDCUR 0
product of table B (enumerative value as defined for input 'Product'), else the output
is set equal to input 'Product'.
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The calculations are in either full or partial compliance with the
standard, depending on whether API rounding is enabled or not.
IT
56 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_Table23_1952
Boundaries
Specific Gravity (T) --> Specific Gravity (60°F)
Table 23 contains values for the following range:

This function converts a specific gravity value at the observed Input value Normal Range EU
temperature to the specific gravity at 60° according to the API Observed specific gravity 0.420 .. 1.099
1952 Table 23. Observed temperature 0 .. 150 °F

Compliance Note that the table does not cover the full range, e.g. for an
ASTM-IP Petroleum Measurement Tables, American Edition, Observed specific gravity of 0.420 the table only specifies values
United States Units of Measurement, 1952 between 120 .. 140 °F

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Observed specific gravity Specific gravity at the observed temperature. - 0..1.3 0
Observed temperature °F -100..400 60

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
Specific gravity 60 °F Specific gravity at 60°F - RD 0
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The table values are the standard, so no calculations are
involved. The function performs an interpolation between the
table values that correspond to the input specific gravity and
input temperature.

In case the combination of input values ('Observed specific


gravity' and Observed temperature') is not covered by the table,
the output 'Specific gravity at 60 °F' is set to 0 and output
'Calculation out of range' is set to 1.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 57

fxAPI_Table23_1980
An iterative calculation needs to be applied to convert the
Relative Density (T) --> Relative Density (60°F)
observed relative density to the value at base conditions.
The function provides the option to correct for readings taken
This function converts a relative density value at the observed
from a hydrometer as specified in the API-2540 standard.
temperature to the relative density at 60°.
The temperature conversion is according to API-2540, Tables 23A
Compliance
(Generalized Crude Oils) and 23B (Refined Oil Products.
API MPMS 11.1 Volume X (API Standard 2540) - Table 23A -
In 1982 API published tables 5D, 6D, 53D and 54D for lubricating
Generalized Crude Oils, Correction of Observed Relative
oil products as part of API MPMS 11.1. Although tables 23d and
Density to Relative Density at 60/60°F - First Edition, August
24d are not covered in an official API standard the Spirit IT
1980
productssupport tables 23D and 24D as well by combining the
API MPMS 11.1 Volume X (API Standard 2540) - Table 23B -
calculation of tables 23A/B and 24A/B with the K0 and K1
Generalized Products, Correction of Observed Relative
constants published in the other tables for lubricating oils.
Density to Relative Density at 60/60°F - First Edition, August
1980

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Observed relative density Relative density at observed temperature and pressure - 0..1.3 0
Observed temperature °F -100..400 60
Product 1: A - Crude Oil PRDTYP 1
2: B - Auto select
Selection based on relative density at 60 °F
3: B - Gasoline
4: B - Transition Area
5: B - Jet Fuels
6: B - Fuel Oil
7: D - Lubricating Oil
API2540 rounding 0: Disabled APIROUND 0
The calculations are performed with full precision.
A convergence limit of 0.000001 kg/m3 will be applied for the iterative calculations.
1: Enabled
API-2540 rounding and truncating rules are applied.
A convergence limit of 0.05 kg/m3 will be applied as defined in the standard.
Hydrometer correction 0: Disabled HYDROCOR 0
1: Enabled

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALC
3: No convergence NOCONV
Relative density 60 °F Relative density at 60°F and the equilibrium pressure - RD 0
CTL Volume correction factor for temperature. - CTL 1
K0 Actual value of constant K0 used for CTL calculation - K0 0
K1 Actual value of constant K1 used for CTL calculation - K1 0
K2 Actual value of constant K2 used for CTL calculation - K2 0
Alpha Thermal expansion factor 1/°F ALPHA 0
Product When input 'Product' is 'B - Auto select', then the output is set to the actual selected - PRDCUR 0
product of table 23B (enumerative value as defined for input 'Product'), else the output
is set equal to input 'Product'.
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The calculations are in full or partial compliance with the
standard depending on input ‘API 2540 rounding’.
IT
58 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_Table23_2004
NOTE: As opposed to API-2540, the 2004 standard does not
Relative Density (T, P) --> Relative Density (60°F, 0 psig)
include a correction for readings taken from a hydrometer and
assumes that the equilibrium pressure is below atmospheric
This function converts a relative density value at the observed pressure, so taking 0 psig as the base pressure.
temperature and pressure to the relative density value at 60°F
and 0 psig. Compliance
API MPMS 11.1 Temperature and Pressure Volume Correction
The temperature and pressure correction is according to API Factors for Generalized Crude Oils, Refined Products and
MPMS 11.1:2004. Lubricating Oils, May 2004
An iterative calculation needs to be applied to convert the
observed relative density to the value at base conditions.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Observed Relative density Relative density at the observed temperature and pressure - 0 ..1.3 0
Observed temperature Temperature at which the relative density is observed °F -100..400 60
Observed pressure Pressure at which the relative density is observed psig -10..2000 0
Product 1: A - Crude Oil PRDTYP 1
2: B - Auto select
Selection based on relative density at 60 °F
3: B - Gasoline
4: B - Transition Area
5: B - Jet Fuels
6: B - Fuel Oil
7: D - Lubricating Oil
API rounding 0: Disabled APIROUND 0
The calculations are performed with full precision and the final CTL, CPL and CTPL
values are rounded as specified by the inputs 'CTL / CPL/ CTPL decimal places'
1: Enabled
The input and output values are rounded in compliance with the standard. The CTL, CPL
and CTPL value are rounded to 5 decimal places.

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - 1
1: Input argument out of range
Outputs will be set to fallback values
2: Calculation error
Outputs will be set to fallback values
3: No convergence within 15 iterations
Outputs will be set to values of last iteration
Relative density at 60 °F Relative density at 60°F and 0 psig - RD 0
CTL Volume correction factor for temperature. - CTL 1
Value will be rounded according to input 'API rounding'
CPL Volume correction factor for pressure - CPL 1
Value will be rounded according to input 'API rounding'
CTPL Combined volume correction factor - CTPL 1
CTPL = CTL * CPL
K0 Actual value of constant K0 used for CTL calculation - K0 0
K1 Actual value of constant K1 used for CTL calculation - K1 0
K2 Actual value of constant K2 used for CTL calculation - K2 0
Alpha Thermal expansion factor 1/°F ALPHA 0
F Compressibility factor 1/psi F 0
Product When input 'Product' is 'B - Auto select', then the output is set to the actual selected - PRDCUR 0
product of table B (enumerative value as defined for input 'Product'), else the output
is set equal to input 'Product'.
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The calculations are in either full or partial compliance with the
standard, depending on whether API rounding is enabled or not.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 59

fxAPI_Table23E
Compliance
Relative Density (T) --> Relative Density (60°F)
API MPMS 11.2.4: Temperature Correction for the Volume of
NGL and LPG Tables 23E, 24E, 53E, 54E, 59E & 60E, September
This function converts the relative density value at the observed 2007
temperature to the corresponding relative density at 60°F. GPA TP-27: Temperature Correction for the Volume of NGL
The temperature correction is according to API MPMS 11.2.4:2007 and LPG Tables 23E, 24E, 53E, 54E, 59E & 60E, September
(GPA TP-25 / GPA TP-27). 2007
GPA TP-25: Temperature Correction for the volume of Light
Hydrocarbons – Tables 24E and 23E, 1998
Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Observed relative density Relative density at the observed temperature - 0..0.75 0
Observed temperature Temperature at which the relative density is observed °F -100..300 60
API rounding 0: Disabled APIROUND 0
The calculations are performed with full precision and the output values are
not rounded
1: Enabled
The input and output values are rounded as defined in the standard

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS 1
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
Relative density at 60 °F Relative density at 60°F RD 0
CTL Volume correction factor for temperature. - CTL 1
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The calculations are in either full or partial compliance with the
standard, depending on the selected type of API rounding.
IT
60 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_Table24_1952
Boundaries
Specific Gravity (60°F) --> CTL
Table 23 contains values for the following range:

This function returns the volume correction factor for


Input value Normal Range EU
temperature Ctl from the observed temperature and the specific Observed specific gravity 0.500 .. 1.100
gravity at 60° according to the API 1952 Table 24. Observed temperature -50 .. +300 °F

Compliance Note that the table does not cover the full range, e.g. for an
ASTM-IP Petroleum Measurement Tables, American Edition, Specific gravity at 60 °F of 0.500 the table only specifies values
United States Units of Measurement, 1952 between -50 .. 95 °F

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Specific gravity 60 °F Specific gravity at 60°F - 0..1.3 0
Observed temperature °F -100..400 60

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
CTL Volume correction factor for temperature. - CTL 1
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The table values are the standard, so no calculations are
involved. The function performs an interpolation between the
table values that correspond to the input specific gravity and
input temperature.

In case the combination of input values ('Specific gravity 60 °F'


and Observed temperature') is not covered by the table, the
output 'CTL' is set to 1 and output 'Calculation out of range' is
set to 1.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 61

fxAPI_Table24_1980
Compliance
Relative Density (60°F) --> CTL
API MPMS 11.1 Volume X (API Standard 2540) - Table 24A -
Generalized Crude Oils, Correction of Volume to 60°F against
This function calculates the volume correction factor for
Relative Density at 60/60°F - First Edition, August 1980
temperature CTL from the relative density value at 60°F and the
API MPMS 11.1 Volume X (API Standard 2540) - Table 24B -
observed temperature.
Generalized Products, Correction of Volume to 60°F against
The temperature conversion is according to API-2540, Tables
Relative Density at 60/60°F - First Edition, August 1980
24A (Generalized Crude Oils) and 24B (Refined Oil Products.
In 1982 API published tables 5D, 6D, 53D and 54D for lubricating
oil products as part of API MPMS 11.1. Although tables 23d and
24d are not covered in an official API standard the Spirit IT
products support tables 23D and 24D as well by combining the
calculation of tables 23A/B and 24A/B with the K0 and K1
constants published in the other tables for lubricating oils.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Relative Density at 60 °F Relative density at 60°F and the equilibrium pressure - 0..1.3 0
Observed temperature °F -100..400 60
Product 1: A - Crude Oil PRDTYP - 1
2: B - Auto select
Selection based on relative density at 60 °F
3: B - Gasoline
4: B - Transition Area
5: B - Jet Fuels
6: B - Fuel Oil
7: D - Lubricating Oil
API2540 rounding 0: Disabled APIROUND - 0
The calculations are performed with full precision and the final CTL value is rounded
as specified by input 'CTL decimal places'
1: Enabled for computational value
API-2540 rounding and truncating rules are applied and the computational value for
CTL as specified in the standard is used, meaning that the CTL value has:
4 decimal places if CTL >=1
5 decimal places if CTL < 1.
2: Enabled for table value
API-2540 rounding and truncating rules are applied and the table value for CTL as
specified in the standard meaning that the CTL value has 4 decimal places in all cases
3: Enabled with 5 decimal places
API-2540 rounding and truncating rules are applied, while the CTL value has 5 decimal
places in all cases.
Note: although not strictly in accordance with the standard, this option is more
commonly used than option 'Enabled for computational value'

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
CTL Volume correction factor for temperature. - CTL 1
Value will be rounded according to input 'API2540 rounding'
K0 Actual value of constant K0 used for CTL calculation - K0 0
K1 Actual value of constant K1 used for CTL calculation - K1 0
K2 Actual value of constant K2 used for CTL calculation - K2 0
Alpha Thermal expansion factor 1/°F ALPHA 0
Product When input 'Product' is 'B - Auto select', then the output is set to the actual selected product - PRDCUR Input
of table 24B (enumerative value as defined for input 'Product'), else the output is set equal to Product
input 'Product'.
Calculation out of With respect to the standard the input values are: - OOR 0
range 0: In Range
1: Out of Range

Calculations
The calculations are in full or partial compliance with the
standard depending on input ‘API 2540 rounding’.
IT
62 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_Table24_2004
NOTE: The 2004 standard assumes that the equilibrium pressure
Relative Density (60°F, 0 psig) --> Relative Density (T, P)
is below atmospheric pressure, so taking 0 psig as the base
pressure.
This function converts a relative density value at 60°F and 0 psig
to the relative density value at the observed temperature and Compliance
pressure. API MPMS 11.1 Temperature and Pressure Volume Correction
The temperature and pressure correction is according to API Factors for Generalized Crude Oils, Refined Products and
MPMS 11.1:2004. Lubricating Oils, May 2004

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Relative density at 60 °F Relative density at 60°F and 0 psig - 0 ..1.3 0
Observed temperature Temperature at which the API gravity is observed °F -100..400 60
Observed pressure Pressure at which the API gravity is observed psig -10..2000 0
Product 1: A - Crude Oil PRDTYP 1
2: B - Auto select
Selection based on relative density at 60 °F
3: B - Gasoline
4: B - Transition Area
5: B - Jet Fuels
6: B - Fuel Oil
7: D - Lubricating Oil
API rounding 0: Disabled APIROUND 0
The calculations are performed with full precision and the final CTL, CPL and CTPL
values are rounded as specified by the inputs 'CTL / CPL/ CTPL decimal places'
1: Enabled
The input and output values are rounded in compliance with the standard. The CTL, CPL
and CTPL value are rounded to 5 decimal places.

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
Observed relative density Relative density at the observed temperature and pressure - RD 0
CTL Volume correction factor for temperature. - CTL 1
Value will be rounded according to input 'API rounding'
CPL Volume correction factor for pressure - CPL 1
Value will be rounded according to input 'API rounding'
CTPL Combined volume correction factor - CTPL 1
CTPL = CTL * CPL
K0 Actual value of constant K0 used for CTL calculation - K0 0
K1 Actual value of constant K1 used for CTL calculation - K1 0
K2 Actual value of constant K2 used for CTL calculation - K2 0
Alpha Thermal expansion factor 1/°F ALPHA 0
F Compressibility factor 1/psi F 0
Product When input 'Product' is 'B - Auto select', then the output is set to the actual - PRDCUR 0
selected product of table B (enumerative value as defined for input
'Product'), else the output is set equal to input 'Product'.
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The calculations are in either full or partial compliance with the
standard, depending on whether API rounding is enabled or not.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 63

fxAPI_Table24E
Compliance
Relative Density (60°F) --> CTL
API MPMS 11.2.4: Temperature Correction for the Volume of
NGL and LPG Tables 23E, 24E, 53E, 54E, 59E & 60E, September
This function calculates the volume correction factor for 2007
temperature from the relative density value at 60°F and the GPA TP-27: Temperature Correction for the Volume of NGL
observed temperature. and LPG Tables 23E, 24E, 53E, 54E, 59E & 60E, September
The temperature correction is according to API MPMS 11.2.4:2007 2007
(GPA TP-25 / GPA TP-27). GPA TP-25: Temperature Correction for the volume of Light
Hydrocarbons – Tables 24E and 23E, 1998
Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Relative density at 60 °F Relative density at 60°F - 0..0.75 0
Observed temperature Temperature at which the relative density is observed °F -100..300 60
API rounding 0: Disabled APIROUND 0
The calculations are performed with full precision and the output values
are not rounded
1: Enabled
The input and output values are rounded as defined in the standard

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error
3: No convergence CALC
CTL Volume correction factor for temperature - CTL 1
Value will be rounded according to inputs 'API rounding'
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The calculations are in either full or partial compliance with the
standard, depending on the selected type of API rounding.
IT
64 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_Table53_1952
Boundaries
Density (T) --> Density (15°C)
Table 53 contains values for the following range:

This function converts a density value at the observed Input value Normal Range EU
temperature to the density at 15°C according to the API 1952 Observed density 420 .. 1099 kg/m3
Table 53. Observed temperature -25 .. 125 °C

Compliance Note that the table does not cover the full range, e.g. for an
ASTM-IP Petroleum Measurement Tables, Metric Edition, Observed specific gravity of 0.420 the table only specifies values
Metric Units of Measurement, 1952 between 45 .. 60 °C

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Observed density Density at the observed temperature. kg/m3 0..1300 0
Observed temperature °C -100..200 15

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
Density at 15 °C Density at 15 °C kg/m3 DENS15 0
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The table values are the standard, so no calculations are
involved. The function performs an interpolation between the
table values that correspond to the input specific gravity and
input temperature.

In case the combination of input values ('Observed density' and


Observed temperature') is not covered by the table, the output
'Density at 15 °C' is set to 0 and output 'Calculation out of range'
is set to 1.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 65

fxAPI_Table53_1980
Compliance
Density (T) --> Density (15°C)
API MPMS 11.1 Volume X (API Standard 2540) - Table 53A -
Generalized Crude Oils, Correction of Observed Density to
This function converts a density value at the observed
Density at 15°C - First Edition, August 1980
temperature to the density value at 15°C.
API MPMS 11.1 Volume X (API Standard 2540) - Table 53B -
The temperature conversion is according to API-2540, Tables 53A
Generalized Products, Correction of Observed Density to
(Generalized Crude Oils) and 53B (Refined Oil Products) and API
Density at 15°C - First Edition, August 1980
MPMS 11.1 Chapter XIV Table 53D: 1984 (Lubricating Oils).
API MPMS 11.1 Volume XIV - Table 53D - Generalized
The function provides the option to correct for readings taken
Lubricating Oils, Correction of Observed Density to Density at
from a hydrometer as specified in the API-2540 standard.
15°C - January 1982

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Observed density Density at observed temperature kg/m3 0..1300 0
Observed temperature °C -100..200 15
Product 1: A - Crude Oil PRDTYP 1
2: B - Auto select
Selection based on density at 15 °C
3: B - Gasoline
4: B - Transition Area
5: B - Jet Fuels
6: B - Fuel Oil
7: D - Lubricating Oil
API2540 rounding 0: Disabled APIROUND 0
The calculations are performed with full precision.
A convergence limit of 0.000001 kg/m3 will be applied for the iterative
calculations.
1: Enabled
API-2540 rounding and truncating rules are applied.
A convergence limit of 0.05 kg/m3 will be applied as defined in the
standard.
Hydrometer correction 0: Disabled HYDROCOR 0
1: Enabled

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
Density at 15 °C Density at 15°C kg/m3 (s) DENS15 0
CTL Volume correction factor for temperature. - CTL 1
K0 Actual value of constant K0 used for CTL calculation - K0 0
K1 Actual value of constant K1 used for CTL calculation - K1 0
K2 Actual value of constant K2 used for CTL calculation - K2 0
Alpha Thermal expansion factor 1/°C ALPHA 0
Product When input 'Product' is 'B - Auto select', then the output is set to the - PRDCUR 0
actual selected product of table 53B (enumerative value as defined for
input 'Product'), else the output is set equal to input 'Product'.
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The calculations are in full or partial compliance with the
standard depending on input ‘API 2540 rounding’.
IT
66 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_Table53_2004
NOTE: As opposed to API-2540, the 2004 standard does not
Density (T, P) --> Density (15°C, 0 bar(g))
include a correction for readings taken from a hydrometer and
assumes that the equilibrium pressure is below atmospheric
This function converts a density value at the observed pressure, so taking 0 psig as the base pressure.
temperature and pressure to the density value at 15°C and 0
bar(g). Compliance
The temperature and pressure correction is according to API API MPMS 11.1 Temperature and Pressure Volume Correction
MPMS 11.1:2004. Factors for Generalized Crude Oils, Refined Products and
An iterative calculation needs to be applied to convert the Lubricating Oils, May 2004
observed density to the value at base conditions.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Observed density Density at the observed temperature and pressure kg/m3 0..1300 0
Observed temperature Temperature at which the density is observed °C -100..200 15
Observed pressure Pressure at which the density is observed bar(g) -1..150 0
Product 1: A - Crude Oil PRDTYP 1
2: B - Auto select
Selection based on density at 15 °C
3: B - Gasoline
4: B - Transition Area
5: B - Jet Fuels
6: B - Fuel Oil
7: D - Lubricating Oil
API rounding 0: Disabled APIROUND 0
The calculations are performed with full precision and the final CTL, CPL and
CTPL values are rounded as specified by the inputs 'CTL / CPL/ CTPL decimal
places'
1: Enabled
The input and output values are rounded in compliance with the standard. The
CTL, CPL and CTPL value are rounded to 5 decimal places.

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
Density at 15 °C Density at 15°C and 0 bar(g) - DENS15 0
CTL Volume correction factor for temperature. - CTL 1
Value will be rounded according to input 'API rounding'
CPL Volume correction factor for pressure - CPL 1
Value will be rounded according to input 'API rounding'
CTPL Combined volume correction factor - CTPL 1
CTPL = CTL * CPL
K0 Actual value of constant K0 used for CTL calculation - K0 0
K1 Actual value of constant K1 used for CTL calculation - K1 0
K2 Actual value of constant K2 used for CTL calculation - K2 0
Alpha Thermal expansion factor at 60 °F ! 1/°F ALPHA 0
F Compressibility factor 1/bar F 0
Product When input 'Product' is 'B - Auto select', then the output is set to the actual - PRDCUR 0
selected product of table B (enumerative value as defined for input 'Product'),
else the output is set equal to input 'Product'.
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The calculations are in either full or partial compliance with the
standard, depending on whether API rounding is enabled or not.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 67

fxAPI_Table53E
Compliance
Density (T) --> Density (15°C)
API MPMS 11.2.4: Temperature Correction for the Volume of
NGL and LPG Tables 23E, 24E, 53E, 54E, 59E & 60E, September
This function converts the density value at the observed 2007
temperature to the corresponding density at 15°C. GPA TP-27: Temperature Correction for the Volume of NGL
The temperature correction is according to API MPMS 11.2.4:2007 and LPG Tables 23E, 24E, 53E, 54E, 59E & 60E, September
(GPA TP-27). 2007

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Observed density Density at the observed temperature kg/m3 0..750 0
Observed temperature Temperature at which the relative density is observed °C -100..150 15
API rounding 0: Disabled 0
The calculations are performed with full precision and the output values are
not rounded
1: Enabled
The input and output values are rounded as defined in the standard

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
Density at 15°C DENS15
CTL Volume correction factor for temperature. - CTL 1
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The calculations are in either full or partial compliance with the
standard, depending on the selected type of API rounding.
IT
68 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_Table54_1952
Boundaries
Density (15°C) --> CTL
Table 54 contains values for the following range:

This function determines the volume correction factor for Input value Normal Range EU
temperature CTL from the relative density value at 15°C and the Density at 15 °C 500 .. 1100 kg/m3
observed temperature according to the API 1952 Table 54. Observed temperature -50 .. +150 °C

Compliance Note that the table does not cover the full range, e.g. for a
ASTM-IP Petroleum Measurement Tables, Metric Edition, Density at 15 °C of 500 kg/m3the table only specifies values
Metric Units of Measurement, 1952 between -50 .. 55 °C

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Density 15 °C Specific gravity at 60°F Kg/m3 0..1300 0
Observed temperature °C -100..200 15

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
CTL Volume correction factor for temperature. - CTL 1
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The table values are the standard, so no calculations are
involved. The function performs an interpolation between the
table values that correspond to the input specific gravity and
input temperature.

In case the combination of input values ('Specific gravity 60 °F'


and Observed temperature') is not covered by the table, the
output 'CTL' is set to 1 and output 'Calculation out of range' is
set to 1.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 69

fxAPI_Table54_1980
Compliance
Density (15°C) --> CTL
API MPMS 11.1 Volume X (API Standard 2540) - Table 54A -
Generalized Crude Oils, Correction of Volume to 15°C against
This function calculates the volume correction factor for
Density at 15°F - First Edition, August 1980
temperature CTL from the relative density value at 15°C and the
API MPMS 11.1 Volume X (API Standard 2540) - Table 54B -
observed temperature.
Generalized Products, Correction of Volume to 15°C against
The temperature conversion is according to API-2540, Tables
Density at 15°C - First Edition, August 1980
54A (Generalized Crude Oils) and 54B (Refined Oil Products) and
API MPMS 11.1 Volume XIV - Table 54D - Generalized
API MPMS 11.1 Chapter XIV Table 54D: 1984 (Lubricating Oils).
Lubricating Oils, Correction of Volume to 15°C Against Density
at 15°C - January 1982

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Density at 15 °C Density at 15°C and the equilibrium pressure kg/m3 0..1300 0
Observed °C -100..200 15
temperature
Product 1: A - Crude Oil PRDTYP - 1
2: B - Auto select
3: B - Gasoline
4: B - Transition Area
5: B - Jet Fuels
6: B - Fuel Oil
7: D - Lubricating Oil
API2540 rounding 0: Disabled APIROUND - 0
The calculations are performed with full precision and the final CTL value is
rounded as specified by input 'CTL decimal places'
1: Enabled for computational value
API-2540 rounding and truncating rules are applied and the computational value
for CTL as specified in the standard is used, meaning that the CTL value has:
4 decimal places if CTL >=1
5 decimal places if CTL < 1.
2: Enabled for table value
API-2540 rounding and truncating rules are applied and the table value for CTL as
specified in the standard meaning that the CTL value has 4 decimal places in all
cases
3: Enabled with 5 decimal places
API-2540 rounding and truncating rules are applied, while the CTL value has 5
decimal places in all cases.
Note: although not strictly in accordance with the standard, this option is more
commonly used than option 'Enabled for computational value'

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
CTL Volume correction factor for temperature. - CTL 1
Value will be rounded according to input 'API2540 rounding'
K0 Actual value of constant K0 used for CTL calculation - K0 0
K1 Actual value of constant K1 used for CTL calculation - K1 0
K2 Actual value of constant K2 used for CTL calculation - K2 0
Alpha Thermal expansion factor 1/°C ALPHA
Product When input 'Product' is 'B - Auto select', then the output is set to the actual selected - PRDCUR
product of table 54B (enumerative value as defined for input 'Product'), else the output is
set equal to input 'Product'.
Calculation out of With respect to the standard the input values are: - OOR
range 0: In Range
1: Out of Range

Calculations
The calculations are in full or partial compliance with the
standard depending on input ‘API 2540 rounding’.
IT
70 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_Table54_2004
NOTE: The 2004 standard assumes that the equilibrium pressure
Density (15°C, 0 bar(g)) --> Density (T, P)
is below atmospheric pressure, so taking 0 psig as the base
pressure.
This function converts a density value at 15°C and 0 bar(g) to the
density value at the observed temperature and pressure. Compliance
The temperature and pressure correction is according to API API MPMS 11.1 Temperature and Pressure Volume Correction
MPMS 11.1:2004. Factors for Generalized Crude Oils, Refined Products and
Lubricating Oils, May 2004
Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Density at 15 °C Density at 15°C and 0 bar(g) kg/m3 0..1300 0
Observed temperature Temperature at which the density is observed °C -100..200 15
Observed pressure Pressure at which the density is observed bar(g) -1..150 0
Product 1: A - Crude Oil PRDTYP 1
2: B - Auto select
Selection based on density at 15 °C
3: B - Gasoline
4: B - Transition Area
5: B - Jet Fuels
6: B - Fuel Oil
7: D - Lubricating Oil
API rounding 0: Disabled APIROUND 0
The calculations are performed with full precision and the final CTL, CPL and
CTPL values are rounded as specified by the inputs 'CTL / CPL/ CTPL decimal
places'
1: Enabled
The input and output values are rounded in compliance with the standard. The
CTL, CPL and CTPL value are rounded to 5 decimal places.

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence
Observed density Density at the observed temperature and pressure - DENS 0
CTL Volume correction factor for temperature. - CTL 1
Value will be rounded according to input 'API rounding'
CPL Volume correction factor for pressure - CPL 1
Value will be rounded according to input 'API rounding'
CTPL Combined volume correction factor - CTPL 1
CTPL = CTL * CPL
K0 Actual value of constant K0 used for CTL calculation - K0 0
K1 Actual value of constant K1 used for CTL calculation - K1 0
K2 Actual value of constant K2 used for CTL calculation - K2 0
Alpha Thermal expansion factor at 60 °F ! 1/°F ALPHA 0
F Compressibility factor 1/bar F 0
Product When input 'Product' is 'B - Auto select', then the output is set to the actual selected - PRDCUR 0
product of table B (enumerative value as defined for input 'Product'), else the
output is set equal to input 'Product'.
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The calculations are in either full or partial compliance with the
standard, depending on whether API rounding is enabled or
not.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 71

fxAPI_Table54E
Compliance
Density (15°C) --> CTL
API MPMS 11.2.4: Temperature Correction for the Volume of
NGL and LPG Tables 23E, 24E, 53E, 54E, 59E & 60E, September
This function calculates the volume correction factor for 2007
temperature from the relative density value at 15°C and the GPA TP-27: Temperature Correction for the Volume of NGL
observed temperature. and LPG Tables 23E, 24E, 53E, 54E, 59E & 60E, September
2007
The temperature correction is according to API MPMS 11.2.4:2007
(GPA TP-27).

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Density at 15°C - 0..750 0
Observed temperature Temperature at which the relative density is observed °C -100..150 15
API rounding 0: Disabled 0
The calculations are performed with full precision and the output values are not
rounded
1: Enabled
The input and output values are rounded as defined in the standard

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS 1
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence
CTL Volume correction factor for temperature - CTL 1
Value will be rounded according to input 'API rounding'
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The calculations are in either full or partial compliance with the
standard, depending on the selected type of API rounding.
IT
72 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_Table59_2004
NOTE: As opposed to API-2540, the 2004 standard does not
Density (T, P) --> Density (20°C, 0 bar(g))
include a correction for readings taken from a hydrometer and
assumes that the equilibrium pressure is below atmospheric
This function converts a density value at the observed pressure, so taking 0 psig as the base pressure.
temperature and pressure to the density value at 20°C and 0
bar(g). The temperature and pressure correction is according to Compliance
API MPMS 11.1:2004. API MPMS 11.1 Temperature and Pressure Volume Correction
An iterative calculation needs to be applied to convert the Factors for Generalized Crude Oils, Refined Products and
observed density to the value at base conditions. Lubricating Oils, May 2004

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Observed density Density at the observed temperature and pressure kg/m3 0..1300 0
Observed temperature Temperature at which the density is observed °C -10..200 20
Observed pressure Pressure at which the density is observed bar(g) -1..150 0
Product 1: A - Crude Oil PRDTYP 1
2: B - Auto select
Selection based on density at 20 °C
3: B - Gasoline
4: B - Transition Area
5: B - Jet Fuels
6: B - Fuel Oil
7: D - Lubricating Oil
API rounding 0: Disabled APIROUND 0
The calculations are performed with full precision and the final CTL, CPL and CTPL values
are rounded as specified by the inputs 'CTL / CPL/ CTPL decimal places'
1: Enabled
The input and output values are rounded in compliance with the standard. The CTL, CPL
and CTPL value are rounded to 5 decimal places.

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
Density at 20 °C Density at 20°C and 0 bar(g) - DENS20 0
CTL Volume correction factor for temperature. - CTL 1
Value will be rounded according to input 'API rounding'
CPL Volume correction factor for pressure - CPL 1
Value will be rounded according to input 'API rounding'
CTPL Combined volume correction factor CTPL = CTL * CPL - CTPL 1
K0 Actual value of constant K0 used for CTL calculation - K0 0
K1 Actual value of constant K1 used for CTL calculation - K1 0
K2 Actual value of constant K2 used for CTL calculation - K2 0
Alpha Thermal expansion factor at 60 °F ! 1/°F ALPHA 0
F Compressibility factor 1/bar F 0
Product When input 'Product' is 'B - Auto select', then the output is set to the actual selected product - PRDCUR 0
of table B (enumerative value as defined for input 'Product'), else the output is set equal to
input 'Product'.
Calculation out of With respect to the standard the input values are: - OOR 0
range 0: In Range
1: Out of Range

Calculations
The calculations are in either full or partial compliance with the
standard, depending on whether API rounding is enabled or
not.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 73

fxAPI_Table59E
Compliance
Density (T) --> Density (20°C)
API MPMS 11.2.4: Temperature Correction for the Volume of
NGL and LPG Tables 23E, 24E, 53E, 54E, 59E & 60E, September
This function converts the density value at the observed 2007
temperature to the corresponding density at 20°C. GPA TP-27: Temperature Correction for the Volume of NGL
The temperature correction is according to API MPMS 11.2.4:2007 and LPG Tables 23E, 24E, 53E, 54E, 59E & 60E, September
(GPA TP-27). 2007

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group

Observed density Density at the observed temperature kg/m3 0..750 0


Observed temperature Temperature at which the relative density is observed °C -100..200 20
API rounding 0: Disabled APIROUND 0
The calculations are performed with full precision and the output values are
not rounded
1: Enabled
The input and output values are rounded as defined in the standard

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
Density at 20°C DENS20 0
CTL Volume correction factor for temperature. - CTL 1
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The calculations are in either full or partial compliance with the
standard, depending on the selected type of API rounding.
IT
74 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxAPI_Table60_2004
NOTE: The 2004 standard assumes that the equilibrium pressure
Density (20°C, 0 bar(g)) --> Density (T, P)
is below atmospheric pressure, so taking 0 psig as the base
pressure.
This function converts a density value at 20°C and 0 bar(g) to the
density value at the observed temperature and pressure. Compliance
The temperature and pressure correction is according to API API MPMS 11.1 Temperature and Pressure Volume Correction
MPMS 11.1:2004. Factors for Generalized Crude Oils, Refined Products and
Lubricating Oils, May 2004

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Density at 20 °C Density at 20°C and 0 bar(g) kg/m3 0..1300 0
Observed temperature Temperature at which the density is observed °C -100..200 60
Observed pressure Pressure at which the density is observed bar(g) -1..150 0
Product 1: A - Crude Oil PRDTYP 1
2: B - Auto select
Selection based on density at 20 °C
3: B - Gasoline
4: B - Transition Area
5: B - Jet Fuels
6: B - Fuel Oil
7: D - Lubricating Oil
API rounding 0: Disabled APIROUND 0
The calculations are performed with full precision and the final CTL, CPL and CTPL
values are rounded as specified by the inputs 'CTL / CPL/ CTPL decimal places'
1: Enabled
The input and output values are rounded in compliance with the standard. The CTL,
CPL and CTPL value are rounded to 5 decimal places.

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence
Observed density Density at the observed temperature and pressure - DENS 0
CTL Volume correction factor for temperature. - CTL 1
Value will be rounded according to input 'API rounding'
CPL Volume correction factor for pressure - CPL 1
Value will be rounded according to input 'API rounding'
CTPL Combined volume correction factor - CTPL 1
CTPL = CTL * CPL
K0 Actual value of constant K0 used for CTL calculation - K0 0
K1 Actual value of constant K1 used for CTL calculation - K1 0
K2 Actual value of constant K2 used for CTL calculation - K2 0
Alpha Thermal expansion factor at 60 °F ! 1/°F ALPHA 0
F Compressibility factor 1/bar F 0
Product When input 'Product' is 'B - Auto select', then the output is set to the actual selected product - PRDCUR 0
of table B (enumerative value as defined for input 'Product'), else the output is set equal to
input 'Product'.
Calculation out of With respect to the standard the input values are: - OOR 0
range 0: In Range
1: Out of Range

Calculations
The calculations are in either full or partial compliance with the
standard, depending on whether API rounding is enabled or
not.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 75

fxAPI_Table60E
Compliance
Density (20°C) --> CTL
API MPMS 11.2.4: Temperature Correction for the Volume of
NGL and LPG Tables 23E, 24E, 53E, 54E, 59E & 60E, September
This function calculates the volume correction factor for 2007
temperature from the relative density value at 20°C and the GPA TP-27: Temperature Correction for the Volume of NGL
observed temperature. and LPG Tables 23E, 24E, 53E, 54E, 59E & 60E, September
2007
The temperature correction is according to API MPMS 11.2.4:2007
(GPA TP-27).

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Density at 20°C - 0..750 0
Observed temperature Temperature at which the relative density is observed °C -100..150 20
API rounding 0: Disabled APIROUND 0
The calculations are performed with full precision and the output values are not
rounded
1: Enabled
The input and output values are rounded as defined in the standard

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence
CTL Volume correction factor for temperature - CTL 1
Value will be rounded according to input 'API rounding'
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The calculations are in either full or partial compliance with the
standard, depending on the selected type of API rounding.
IT
76 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxASTM_D1550_RD60
This function calculates the relative density at 60°F and 0 psig of Boundaries
Butadiene based on ASTM Designation 1550. The ASTM-D1550 ASTM D1550 table 1 consists of table values with a resolution of
standard specifies several tables. This function uses table 1, 0.005 for the relative density and 1°F for the temperature. The
which contains values for the relative density at 60°F as a function applies a linear interpolation between table values
function of the observed relative density and the observed based on the input values. The table specifies relative density at
temperature. The compressibility factor is calculated in 60°F values that are limited to a low value of 0.621 and a high
accordance with API MPMS 11.2.2:1984. value of 0.634. When the combination of input values lies outside
the range covered by the table, the function outputs either the
Compliance low or high table value depending on whether the input values
ASTM Designation: D1550 -94 (Reapproved 2005), Standard lay below or above the table limits.
ASTM Butadiene Measurement Table 1 Reduction of observed Data
specific gravity to specific gravity at 15.6/15. °C (60/60°F) API MPMS 11.2.2 applies for the following range:
API MPMS 11.2.2 - Compressibility Factors for Hydrocarbons: 0.350 to 0.637 (relative density)
0.350 - 0.637 Relative Density (60°F/60°F) and -50°F to 140°F -50 to 140 °F
Metering Temperature - Second Edition, October 1986 0 to 2200 psig

Function inputs Remark EU Range Default


Name Optional tag name, tag description and tag group
Observed relative density - 0..1 0
Observed temperature Temperature at which the relative density is observed °F -100..150 20
Observed pressure Pressure at which the relative density is observed Psig -10..2500 0
API 11.2.2 rounding 0: Disabled 0
The calculations are performed with full precision
1: Enabled
The input and intermediate values are rounded and truncated as defined in the standard

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence
Relative density at 60°F - RD60 0
F Compressibility factor 1/psi F 0
The output value will be either rounded or not depending input 'API 11.2.2 rounding'
CTL Volume correction factor for temperature. - CTL 1
CPL Volume correction factor for pressure - CPL 1
Value will be rounded according to input 'API 11.2.2 rounding'
ASTM D1550 calculation With respect to ASTM D1550 table 1 the input values are: - ASTM_OOR 0
out of range 0: In Range
1: Out of Range
API 11.2.2 calculation out With respect to API 11.2.2 the conditions of density, temperature and pressure are: API_OOR
of range 0: In Range
1: Out of Range

Calculations setting ‘API 11.2.2. rounding’ the rounding and truncation rules
The function performs the following iterative algorithm to of API 11.2.2. are applied for this step.
calculate the relative density at 60 °F and 0 psig. No rounding is The CPL value is calculated from the calculated
applied. compressibility factor and the 'Observed pressure' input
At the start of the iteration the relative density at [60 F, 0 value.
psig] is set equal to the observed relative density and the CPL The new value for relative density at [60F, 0 psig] is
value is set to 1. calculated by dividing the observed density by the CTL and
The relative density corrected for pressure is calculated by CPL values.
dividing the observed relative density by the CPL value. Steps 2 through 6 are repeated until the absolute difference
The CTL value and the relative density at [60 F, equilibrium between two consecutive relative density values is less than
pressure] is calculated from the relative density corrected for the convergence limit of 1e-8.
pressure and the observed temperature according to ASTM When no convergence is achieved in 20 iterations then the
D1550 Table 1 status output is set to ‘No convergence’ and the relative
The compressibility factor F is calculated according to API density output is set to 0.
MPMS 11.2.2 from the relative density at [60 F, equilibrium
pressure] and the 'Observed temperature'. Depending on
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 77

fxASTM_D1550_Ctl
This function calculates the Ctl value (VCF) of Butadiene based Compliance
on the ASTM Designation 1550. The standard specifies several ASTM Designation: D1550 -94 (Reapproved 2005), Standard
tables. This function uses table 2, which contains values for the ASTM Butadiene Measurement Table 2 Reduction of Observed
volume correction factor as a function of the relative density at Volume to 15.6°C (60°F) Against Specific Gravity 60/60°F
60°F and the observed temperature.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Relative density at 60°F - 0..1 0
Observed temperature Temperature at which the relative density is observed °F -100..150 20

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
Ctl Volume correction factor for temperature. The output value will NOT be rounded. - CTL 1
Calculation out of range With respect to the standard the input values are: - OOR 0
0: In Range
1: Out of Range

Calculations
The Standard consists of a set of table values with a resolution
of 0.001 for the relative density at 60°F and 1°F for temperature.
The function applies a linear interpolation between table values
based on the unrounded input values. When an input value lies
outside the range of the table the function limits the input value
to the minimum or maximum value of the table.
IT
78 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxASTM_D1555_Dens60F
This function calculates the relative density at 60°F and 0 psig Boundaries
according ASTM Designation 1555. The ASTM-D1550 standard The standard defines an upper limit for the temperature of 150°F
specifies equations for the calculation of Ctl, the liquid for p-xylene and 140°F for all other products.
correction factor for temperature, for several aromatic
hydrocarbons and cyclohexane as a function of the observed API MPMS 11.2.1 defines the following limits on the input values:
temperature. The compressibility factor is calculated in 0 to 90 °API
accordance with API MPMS 11.2.1:1984. -20 to +200 °F
0 to 1500 psig.
Compliance
ASTM Designation: D1555 -04, Standard Test Method for
Calculation of Volume and Weight of Industrial Aromatic
Hydrocarbons and Cyclohexane
API MPMS 11.2.1 - Compressibility Factors for Hydrocarbons: 0
- 90°API Gravity Range - First Edition, August 1984

Function inputs Remark EU Range Default


Name Optional tag name, tag description and tag group
Observed density g/cc 0 .. 1.3
Observed temperature °F -100..250 20
Observed pressure psig -10..2000 0
Product 1: Benzene 1
2: Cumene
3: Cyclohexane
4: Ethylbenzene
5: Styrene
6: Toluene
7: m-Xylene
8: o-Xylene
9: p-Xylene
10: 300-350°F Aromatic Hydrocarbons
11: 350-400°F Aromatic Hydrocarbons
ASTM D1555 rounding 0: Disabled 0
The calculations are performed with full precision
1: Enabled
The input and output values are rounded and truncated as defined in the standard
API 11.2.1 rounding 0: Disabled 0
The calculations are performed with full precision
1: Enabled
The input and intermediate values are rounded and truncated as defined in the standard
Equilibrium pressure The equilibrium pressure is considered to be 0 psig for liquids which have an equilibrium psig 0..2000 0
pressure less than atmospheric pressure (in compliance with API MPMS 12.2 par. 12.2.5.4)

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence
Density at 60°F g/cc DENS60 0
F Compressibility factor 1/psi F 0
The output value will be either rounded or not depending input 'API 11.2.1 rounding'
CTL Volume correction factor for temperature. - CTL 1
Value will be rounded according to input 'ASTM D1555 rounding'
CPL Volume correction factor for pressure - CPL 1
Value will be rounded according to input 'API 11.2.1 rounding'
ASTM D1555 calculation With respect to ASTM D1555 the temperature value is: ASTM_OOR 0
out of range 0: In Range
1: Out of Range
API 11.2.1 calculation out With respect to API 11.2.1 the conditions of density, temperature and pressure are: API_OOR 0
of range 0: In Range
1: Out of Range

Calculations
ASTM D1555 contains both formulas and tables for the Ctl (called The function performs the following iterative algorithm to
VCF in the standard) for the different product. Please note the calculate the relative density at 60 °F and 0 psig. No rounding is
formulas are the standard and not the tables. This function applied.
therefore applies the formula to calculate the Ctl value.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 79

At the start of the iteration the density at [60 F, 0 psig] is set
equal to the observed density and the CPL value is set to 1.
The density corrected for pressure is calculated by dividing
the observed density by the CPL value.
The CTL value and the density at [60 F, equilibrium pressure]
is calculated from the density corrected for pressure and the
observed temperature according to ASTM D1555
The compressibility factor F is calculated according to API
MPMS 11.2.1 from the density at [60 F, equilibrium pressure]
and the 'Observed temperature'. Depending on setting ‘API
11.2.1 rounding’ the rounding and truncation rules of API 11.2.1
are applied for this step.
The CPL value is calculated from the calculated
compressibility factor and the 'Observed pressure' input
value.
The new value for density at [60F, 0 psig] is calculated by
dividing the observed density by the CTL and CPL values.
Steps 2 through 6 are repeated until the absolute difference
between two consecutive relative density values is less than
the convergence limit of 1e-8.

When no convergence is achieved in 20 iterations then the


status output is set to ‘No convergence’ and the density
output is set to 0.
IT
80 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxASTM_D1555_Ctl
This function calculates the Ctl value from the observed Boundaries
temperature for several aromatic hydrocarbons and cyclohexane The standard defines an upper limit for the temperature of 150°F
based on the ASTM Designation 1555. for p-xylene and 140°F for all other products.

Compliance
ASTM Designation: D1555 -04, Standard Test Method for
Calculation of Volume and Weight of Industrial Aromatic
Hydrocarbons and Cyclohexane

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Observed temperature Temperature at which the relative density is observed °F -100..250 20
ASTM D1555 rounding 0: Disabled 0
The calculations are performed with full precision
1: Enabled
The input temperature value is rounded to 0.1°F and the output Ctl value is rounded
to 5 decimal places as defined in the standard
Product 1: Benzene 1
2: Cumene
3: Cyclohexane
4: Ethylbenzene
5: Styrene
6: Toluene
7: m-Xylene
8: o-Xylene
9: p-Xylene
10: 300-350°F Aromatic Hydrocarbons
11: 350-400°F Aromatic Hydrocarbons

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
Ctl Volume correction factor for temperature - CTL 1
Calculation out of range With respect to the standard the input value is: - OOR 0
0: In Range
1: Out of Range

Calculations
ASTM D1555 contains both formulas and tables for the Ctl (called
VCF in the standard) for the different product. Please note the
formulas are the standard and not the tables. This function
therefore applies the formula to calculate the Ctl value.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 81

fxBatchFWA
The function calculates a flow-weighted average (FWA) for a
batch.
A batch can be any batch type of process, such as product
loading, meter proving or transmitter validation.
The function weights the input value with a flow increment and
updates the average accordingly. The flow increment is provided
by either a ‘fxTotalizerDelta’ or a ‘xTotalizerRate’ function.

Inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Name used for tag-prefix and retentive storage.
Input value Value to be averaged Same as linked cell -1e11..1e11
Enabled 0: Disabled EN
1: Enabled
Increment Flow increment with which the input value is weighed. Same as linked cell 0..1e11
Must refer to the corresponding output from a 'TotalizerRate' or
'TotalizerDelta' function
Negative values will be ignored.
Reset command Trigger to reset the batch.
At a batch reset the current average is stored in the previous value and the
current value is reset to 0
Identification Batch identification. ID
Can be any string of maximum 255 characters long.
If multiple identifications need to be stored for future referral, e.g. the batch
number, the ship name and the nomination number, then the individual strings
should be concatenated with an "." character in-between.

Function outputs Remark EU SW tag Alarm Fallback


Current average Average calculated over the current batch. Same as input ‘Input value’ CB 0
Previous average Average of the previous batch. Same as input ‘Input value’ PB 0
IT
82 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxBatchHistData
The function retrieves historical 'batch' data from the flow fxBatchFWA
computer persistent memory. fxBatchLatch
A 'batch' can be any batch type of process, such as product fxBatchStore
loading, meter proving or transmitter validation. fxBatchTotal
The function retrieves one or more historical values for the fxBatchTWA
specified function instance. The function instance must be one fxBatchWatch
of the following function types:
The function instance is referred to by its name (i.e. the 1st
argument of the referred function).

Inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Name used for tag-prefix and retentive storage.
First ID Optional. FIRSTID
Batch identification of the first historical batch for which the value has to be retrieved.
Last ID Optional. LASTID
Batch identification of the last historical batch for which the value has to be retrieved.
Sequence Sequence in which the retrieved values must be copied to the function outputs. 1
1: Ascending order (Value 1 contains oldest value)
2: Descending order (Value 1 contains newest value)

Function outputs Remark EU SW tag Alarm Fallback


Number of values Number of historical values that was retrieved from the flow computer memory according ACTSIZE
to the input criteria
Value 1 The 1st retrieved historical data value 1
Value 2 The 2nd retrieved historical data value 2
etc.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 83

fxBatchLatch
The function latches a value at every batch reset.

Inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Name used for tag-prefix and retentive storage.
Input value Value to be latched Same as linked cell
Latch command * Trigger to latch the value
Reset command * Trigger to reset the batch.
At every batch reset the last latched value is stored in the previous latch
output value and the current latch output value is reset to 0
Identification Batch identification. ID
Can be any string of maximum 255 characters long.

NOTE: When the latch and reset commands are given at the same time, then the current value becomes the 'Previous latch' output
value and the current latch is reset to 0.

Function outputs Remark EU SW tag Alarm Fallback


Current latch Value that is latched since the last batch reset. Same as input ‘Input value’ CB 0
Is reset to 0 at every batch reset.
Previous latch Value that was latched during the previous batch. If no value Same as input ‘Input value’ PB 0
was latched during the previous batch, then the value is set
to 0.
IT
84 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxBatchMax
The function determines the maximum for a particular input
value over a batch.

A batch can be any batch type of process, such as product


loading, meter proving or transmitter validation.

Inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Name used for tag-prefix and retentive storage.
Input value Value for which the maximum has to be determined Same as linked cell -1e11..1e11
Enabled 0: Disabled EN
1: Enabled
Reset command Trigger to reset the batch.
At a batch reset the current average is stored in the previous value and the
current value is reset to 0
Identification Batch identification. ID
Can be any string of maximum 255 characters long.
If multiple identifications need to be stored for future referral, e.g. the
batch number, the ship name and the nomination number, then the
individual strings should be concatenated with an "." character in-between.

Function outputs Remark EU SW tag Alarm Fallback


Current minimum Minimum over the current batch. Same as input ‘Input value’ CB 0
Previous minimum Minimum over the previous batch. Same as input ‘Input value’ PB 0
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 85

fxBatchMin
The function determines the minimum for a particular input
value over a batch.

A batch can be any batch type of process, such as product


loading, meter proving or transmitter validation.

Inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Name used for tag-prefix and retentive storage.
Input value Value for which the minimum has to be determined Same as linked cell -1e11..1e11
Enabled 0: Disabled EN
1: Enabled
Reset command Trigger to reset the batch.
At a batch reset the current average is stored in the previous value and the
current value is reset to 0
Identification Batch identification. ID
Can be any string of maximum 255 characters long.
If multiple identifications need to be stored for future referral, e.g. the batch
number, the ship name and the nomination number, then the individual strings
should be concatenated with an "." character in-between.

Function outputs Remark EU SW tag Alarm Fallback


Current minimum Minimum over the current batch. Same as input ‘Input value’ CB 0
Previous minimum Minimum over the previous batch. Same as input ‘Input value’ PB 0
IT
86 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxBatchTotal
The function accumulates a flow increment into a batch total. At
every batch reset the current batch total is stored into the
previous value and the current value is reset to 0.

The flow increment originates from a ‘TotalizerRate’ or


‘TotalizerDelta’ function.

Inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Name used for tag-prefix and retentive storage.
Increment Increment value to be added to the batch total. Same as linked 0..1e11
Negative values will be ignored, so the batch total will not decrease. cell
Enabled 0: Disabled EN
1: Enabled
Identification Batch identification. ID
Can be any string of maximum 255 characters long.
If multiple identifications need to be stored for future referral, e.g. the batch
number, the ship name and the nomination number, then the individual strings
should be concatenated with an "." character in-between.
Rollover value The batch total will be reset to 0 when it reaches the rollover value Same as input ROVAL 0..1e15 1e12
Increment
Decimal places Defines the number of decimal places for the current and previous total output DECPLS -1..10 -1
values.
-1 means full precision (no rounding applied)

Function outputs Remark EU SW tag Alarm Fallback


Current total Accumulated total for the current batch, so since the Same as input CB 0
last batch reset. ’Increment’
Previous total Accumulated total for the previous batch Same as input PB 0
’Increment’
Rollover flag Flag indicating a rollover to 0. 0 ROALM
0: Off
1: On
Note: stays 'On' for one calculation cycle only)
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 87

fxBatchTWA
The function calculates a time-weighted average (TWA) for a
batch. At a batch reset the current average is stored in the
previous value and the current value is reset to 0.

The function weights the input value with the time (in fact the
actual calculation cycle time) and updates the average
accordingly.

Inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Name used for tag-prefix and retentive storage.
Input value Value to be averaged Same as linked cell -1e11..1e11
Enabled 0: Disabled EN
1: Enabled
Reset command Trigger to reset the batch.
At a batch reset the current latch is stored in the previous value and the
current latch is reset to 0
Identification Batch identification. ID
Can be any string of maximum 255 characters long.
If multiple identifications need to be stored for future referral, e.g. the batch
number, the ship name and the nomination number, then the individual
strings should be concatenated with an "." character in-between.

Function outputs Remark EU SW tag Alarm Fallback


Current average Average calculated over the current batch. Same as input ‘Input value’ CB 0
Previous average Average of the previous batch. Same as input ‘Input value’ PB 0
IT
88 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxBatchWatch
The function 'remembers' that a condition has been valid during
a batch.

A typical example is a transmitter that was overridden with a


keypad value.

Inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Name used for tag-prefix and retentive storage.
Condition 0: Condition is not valid
<>0: Condition is valid
Enabled 0: Disabled EN
1: Enabled
Reset command Trigger to reset the batch.
At a batch reset the current watched value is stored in the previous value and the current
watched value is reset to 0
Identification Batch identification. ID
Can be any string of maximum 255 characters long.
If multiple identifications need to be stored for future referral, e.g. the batch number, the ship
name and the nomination number, then the individual strings should be concatenated with an
"." character in-between.

Function outputs Remark EU SW tag Alarm Fallback


Current watch Indicates whether or not the condition has been valid during the current batch: CB 0
0: Not valid
1: Valid
Previous watch Indicates whether or not the condition has been valid during the previous batch: PB 0
0: Not valid
1: Valid
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 89

fxConvertUnit
This function converts a value expressed in a particular unit into
the corresponding value expressed in another unit.
The input and output unit must belong category, otherwise the
conversion fails.

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name
Input value The value to be converted
Input unit Unit of the value to be converted
Use one of the "xu_..." unit constants.
Output unit Unit of the output value
Use one of the "xu_..." unit constants.

Function outputs Remark EU SW tag Alarm Fallback


Output value <Output unit> VAL 0
Conversion failure The conversion fails when the input unit and output unit do not belong to the CONVFAIL
same unit category (or also when the input unit and / or output unit are not a
valid unit).
0: Normal
1: Failure
IT
90 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxDeviationAlarm
The function watches the deviation, or the difference or
discrepancy, between two values and generates an alarm when
the deviation exceeds the specified limit.

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Input value 1 Must be linked to another cell Same as linked cell -1e11..1e11 0
Input value 2 Must be linked to another cell Must be same as for input value 1 -1e11..1e11 0
Deviation type Determines whether the absolute or the relative DEVTYP 1
difference needs to be checked. The unit of the
deviation limit will be in accordance.
1: Absolute
2: Relative
Deviation limit The unit depends on the 'Deviation type' Absolute: Same as input value 1 DEVLIM 0..1e11 0
Relative : %
Enabled Enabled or disabled the alarm True or false True
Alarm type 1: Alarm 1
2: Warning

Function outputs Remark EU SW tag Alarm Fallback


Deviation alarm 0: Normal - DEVALM
1: Alarm DEVALM

Logic
Deviation type = 1 (Absolute)
A deviation alarm is raised when the absolute difference
between the two values is greater than the ‘Discrepancy limit’.

Deviation type = 2 (Relative)


A deviation alarm is raised when the absolute difference
between the two values divided by the minimum of the two
values times 100 % is greater than the ‘Discrepancy limit'.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 91

NIST1045
The function calculates the density of Ethylene (C2H4, also called Boundaries
Ethene) based on the NIST-1045 Equation Of State in metric The equation of state is valid from 104 K to 400 K (-170 .. +127 °C)
units. and for pressures up to 40 MPa (400 bar).

References
R.D. McCarty and R.T. Jacobsen “An Equation of State for Fluid
Ethylene”, National Bureau of Standards (NBS), US, Technical
Note 1045, 1981.

Function inputs Remark EU Range Default


Name Optional tag name, tag description and tag group
Temperature °C -200..200 0
Pressure bar(a) 500 0
Rounding 0: Disabled - 1
The calculations are performed with full precision. A convergence limit of 1e-10 kg/m3 will be applied for
the iterative calculations.
1: Enabled
The calculations are performed in full compliance with the standard. The input, intermediate and output
values are rounded as specified and also the iteration limit as specified in the standard is used to achieve
convergence.

Function outputs Remark EU Fallback


Status 0: Normal
1: Input argument out of range
2: Calculation error
3: No convergence
Density kg/m3 0
Compressibility - 0
Equilibrium pressure Equilibrium pressure at the observed temperature. bar(a) 0
Also referred to as vapor pressure or saturated pressure
Range With respect to the standard the inputs are: - 0
0: In Range
1: Out of Range

Calculations
The calculations are in compliance with the standard.
IT
92 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxEthylene_IUPAC_C
The function calculates the compressibility factor and the Boundaries
density of Ethylene (C2H4, also called Ethene) based on the The limits of the tables are 104 K to 320 K (-272 .. +116 °F) for
Equation Of State published by IUPAC and in US customary pressures up to 270 MPa (39160 psi) and 104K to 450K (-272 ..
units. +350 °F) for pressures up to 40 MPa (5800 psi).

References
Ethylene (Ethene), International Thermodynamic Tables of the
Fluid State Vol. 10 (1988), IUPAC, ISBN 0-63201-7090.

Function inputs Remark EU Range Default


Name Optional tag name, tag description and tag group
Temperature °F -300..200 0
Pressure psia 0..50000 0

Function outputs Remark EU Fallback


Status 0: Normal
1: Input argument out of range
2: Calculation error
3: No convergence
Density lbm/ft3 0
Compressibility - 0
Equilibrium pressure Equilibrium pressure at the observed temperature. psia 0
Also referred to as vapor pressure or saturated pressure
Range With respect to the combination of temperature and pressure is: - 0
0: In Range
1: Out of Range

Calculations
The calculations are in compliance with the standard.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 93

fxEthylene_IUPAC_M
The function calculates the compressibility factor and the Boundaries
density of Ethylene (C2H4, also called Ethene) based on the The limits of the tables are 104 K to 320 K (-170 .. +47 °C) for
Equation Of State published by IUPAC and in metric units. pressures up to 270 MPa (2700 bar) and 104K to 450K (-170 ..
+177 °C) for pressures up to 40 MPa (400 bar).
References
Ethylene (Ethene), International Thermodynamic Tables of the
Fluid State Vol. 10 (1988), IUPAC, ISBN 0-63201-7090.

Function inputs Remark EU Range Default


Name Optional tag name, tag description and tag group
Temperature °C -200..200 0
Pressure bar(a) 3000 0

Function outputs Remark EU Fallback


Status 0: Normal
1: Input argument out of range
2: Calculation error
3: No convergence
Density kg/m3 0
Compressibility - 0
Equilibrium pressure Equilibrium pressure at the observed temperature. bar(a) 0
Also referred to as vapor pressure or saturated pressure
Range With respect to the combination of temperature and pressure is: - 0
0: In Range
1: Out of Range

Calculations
The calculations are in compliance with the standard.
Because the IUPAC Equation Of State specifies the calculation of
the pressure from a known temperature and density iteration is
required to determine the density from the input pressure. A
convergence limit of 0.0005 kg/m3 is applied. A maximum of 20
iterations is applied.
IT
94 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxGasViscosity_2004
The dynamic viscosity of natural gas is calculated in accordance Boundaries
with a method developed at the Rostock University in Germany The limits of the tables are 250 K to 450 K (-24 .. +177 °C) for
and published in 2004 in the ‘International Journal of the pressures up to 30 MPa (300 bar).
Thermophysics’. The estimated uncertainty of the calculated
viscosity is 0.5% for natural gas (0.3% for pure methane).

Reference
Viscosity Measurements and Predictions for Natural Gas, P.
Schley, M. Jaeschke, C. Kuchenmeister and E. Vogel,
International Journal of Thermophysics, Vol. 25, No. 6,
November 2004 (© 2004)

Function inputs and outputs


Function inputs Remark EU Range Default
Name Optional tag name, tag description and tag group
Density Density value kg/m3 0..2000 0
Temperature Temperature value °C -200..+400 0
Composition Standard composition as defined in section 'Standard gas mol/mol 0..1 0
composition’.

Function outputs Remark EU Fallback


Status 0: Normal
1: Input argument out of range
2: Calculation error
3: No convergence
4: Mole fractions do not add up to 1.0 +- 0.0001
6: Hardware not supported
Dynamic viscosity Pa.s 0
Range With respect to the combination of temperature and pressure is: 0
0: In Range
1: Out of Range

Calculations
The calculations are in accordance with the publication, which is Input component Added to / neglected
based on the following 12 components: methane (+ hydrogen), Methane Methane
Nitrogen Nitrogen
nitrogen (+ helium + oxygen/argon), carbon dioxide, ethane, Carbon Dioxide Carbon Dioxide
propane, n-butane, ibutane, n-pentane (+ benzene), isentane (+ Ethane Ethane
neopentane), n-hexane (hexanes + toluene), n-heptane Propane Propane
Water Neglected
(heptanes), and n-octane (octanes + nonanes+ C10 plus higher +
Hydrogen Sulphide Neglected
xylenes). Hydrogen Methane
Carbon Monoxide Neglected
The function uses the ‘Standard gas composition’ as used by Oxygen Nitrogen
i-Butane i-Butane
most gas property functions. The 22 components of input
n-Butane n-Butane
Composition are lumped to these 12 components as defined in i-Pentane i-Pentane
the following table. n-Pentane n-Pentane
n-Hexane n-Hexane
n-Heptane n-Heptane
NOTES:
n-Octane n-Octane
Components ‘Water’, ‘Hydrogen sulphide’ and ‘Carbon n-Nonane n-Octane
monoxide’ are not supported by the publication and will n-Decane n-Octane
therefore be neglected by the function. The lumped Helium Nitrogen
Argon Nitrogen
composition is normalized to 1 and then used in the Neo-Pentane Iso-Pentane
calculation.
The publication also mentions components benzene, toluene
and xylenes, which are not part of the ‘Standard gas
composition’. To adhere strictly to the publication, add
‘Benzene’ to input ‘n-Pentane’, ‘Toluene’ to input ‘n-Hexane’
and ‘Xylenes’ to input ‘n-Octane’.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 95

fxGenerateReport
This function generates prints and stores a report.

Function inputs Remark EU SW tag Range Default


Name Report definition
Must be the name of the report definition (Flow-Xpress, section Reports).
Event Event to generate the report.
Event occurs when value changes from zero to non-zero (or from FALSE to TRUE).
Identifier Optional report file name, defined as a string
When defined the Identifier is used as the report file name .
When left empty, the UniqueMethod setting as defined for the report definition is used for the
report file name (Flow-Xpress, section Reports).
Printer Optional printer.
Must be the name of one of the printers that are defined in Flow-Xpress.
When defined this printer is used instead of the printer that is assigned to the report template
(Flow-Xpress, section Reports).
When left empty the printer that is assigned to the report template is used.
Number of copies Number of copies to print. 1
This setting is ignored when no printer is defined.

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range or in conflict FIOOR
2: Latest report could not be generated RPTERR
IT
96 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxGERG2008_Gas
The compressibility, density, speed of sound and isentropic Boundaries
coefficient of a gas are calculated from its composition, The GERG-2008 calculation has defined uncertainty bounds for
temperature and pressure in accordance with the GERG-2008 fluids that lie within the 'Normal range'. Also an 'Expanded range'
equation of state. The function uses an optimized routine that of gas mixtures is defined for which the calculation has a higher
only applies when fluid is in the gaseous state (100% gas) and uncertainty. Using the calculation at conditions outside the
that requires limited CPU time (suitable for processing in the 'Expanded range' is not recommended.
Spirit IT products).
Input value Normal Range Expanded Range EU
Compliance Pressure 0 .. 35 0 .. 70 MPa(a)
Temperature 90..450 60..700 K
The GERG-2008 Wide-Range Equation of State for Natural Pressure 0 .. 350 0 .. 700 bar(a)
Gases and Other Mixtures: An Expansion of GERG-2004. Kunz, Temperature -183 .. +177 -213 .. +426 °C
O., Wagner, W. Submitted to J. Chem. Eng. Data 57 (2012). Pressure 0 .. 5076 0 .. 10153 psia
Temperature -298 .. +350 -352 .. +800 °F
Mole fraction of all 0.00 .. 1.00 0.00 .. 1.00 -
components

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag
group
Pressure Pressure value bar(a) 0..2000 1.01325
Temperature Temperature value °C -200..+400 0
Composition Standard composition as defined in section mol/mol COMP 0..1 0
'Standard gas composition.
neo-Pentane mode Determines what to do when component - NEOC5_MODE 1
neo-Pentane is larger than zero
1: Add to i-Pentane
2: Add to n-Pentane
3: Neglect

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
4: Mole fractions do not add up to 1.0 +- 0.0001 COMPERR
6: Hardware not supported
Compressibility - Z 1
Mass Density kg/m3 MASDENS 0
Molar Density kmol/m3 MOLDENS 0
Molar Mass kg/kmol MOLMASS 0
Speed of Sound m/s SOS 0
Isentropic Exponent - K 0
Range 0: In Normal Range RANGE 0
All inputs are within the 'Normal Range'
1: In Extended Range
One or more inputs within the 'Extended Range, but none of the inputs outside
the Extended rang (outputs values have higher uncertainty)
2: Out of Range
One or more inputs outside the 'Extended Range' (using the calculation is not OOR
recommended in this case)

Calculations
The calculations are as documented in the reference.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 97

fxGERG2008_Flash
The compressibility and density of a gas/liquid mixture are GERG2008 calculation for gas mixtures that lie outside the
calculated from its composition, temperature and pressure in 'Expanded range' is not recommended.
accordance with the GERG2008 standard.
Input value Normal Range Expanded Range EU
Compliance Pressure 0 .. 350 0 .. 700 bar(a)
Temperature -183 .. +177 -213 .. +427 °C
Kunz, O., and W. Wagner. "The GERG-2008 wide-range Mole fraction of Methane 0.00 .. 1.00 0.00 .. 1.00 -
equation of state for natural gases and other mixtures: An Mole fraction of Ethane 0.00 .. 1.00 0.00 .. 1.00 -
expansion of GERG-2004." Journal of Chemical & Engineering Mole fraction of Propane 0.00 .. 1.00 0.00 .. 1.00 -
Mole fraction of Butanes 0.00 .. 1.00 0.00 .. 1.00 -
Data 57.11 (2012): 3032-3091.
Mole fraction of Pentanes 0.00 .. 1.00 0.00 .. 1.00 -
W. Wagner. “Description of the Software Package for the Mole fraction of Hexanes Plus 0.00 .. 1.00 0.00 .. 1.00 -
Calculation of Thermodynamic Properties from the GERG- Mole fraction of Carbon monoxide 0.00 .. 1.00 0.00 .. 1.00 -
2008 Wide-Range Equation of State for Natural Gases and Mole fraction of Carbon dioxide 0.00 .. 1.00 0.00 .. 1.00 -
Mole fraction of Nitrogen 0.00 .. 1.00 0.00 .. 1.00 -
Other Mixtures”.
Mole fraction of Helium 0.00 .. 1.00 0.00 .. 1.00 -
Mole fraction of Argon 0.00 .. 1.00 0.00 .. 1.00 -
Boundaries Mole fraction of Oxygen 0.00 .. 1.00 0.00 .. 1.00 -
Mole fraction of Hydrogen 0.00 .. 1.00 0.00 .. 1.00 -
The GERG2008 calculation has defined uncertainty bounds for Sulphide
gas mixtures that lie within the 'Normal range'. Also an Mole fraction of Hydrogen 0.00 .. 1.00 0.00 .. 1.00 -
'Expanded range' of gas mixtures is defined for which the Mole fraction of Water 0.00 .. 1.00 0.00 .. 1.00 -
GERG2008 calculation has a higher uncertainty. Using the

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Pressure Pressure value bar(a) 0..2000 1.01325
Temperature Temperature value °C -200..+400 0
Composition Standard composition as defined in section 'Standard gas mol/mol COMP 0..1 0
composition.
neo-Pentane mode Determines what to do when component neo-Pentane is larger than - NEOC5_MODE 1
zero
1: Add to i-Pentane
2: Add to n-Pentane
3: Neglect

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
4: Mole fractions do not add up to 1.0 +- 0.0001 COMPERR
6: Hardware not supported
Vapor fraction FV 0
Compressibility vapor Compressibility of the vapor fraction of the mixture ZV 0
Compressibility liquid Compressibility of the liquid fraction of the mixture ZL 0
Compressibility total Compressibility of the mixture Z 0
Density vapor Density of the vapor fraction of the mixture kg/m3 DV 0
Density liquid Density of the liquid fraction of the mixture kg/m3 DL 0
Density total Density of the mixture kg/m3 D 0

Calculations
The calculations are as documented in the standard.
IT
98 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxGPA_TP15
The GPA-TP15 standard defines a generalized correlation
method to determine the vapor pressure (i.e. the equilibrium Boundaries
pressure) for natural gas liquids (NGL). The GPA TP-15:1988 / API MPMS 11.2.2 Addendum:1994
The vapor pressure is required by the API 11.2.2 and API 11.1:2004 correlation method is valid for the following range.
calculations of the CPL value for light hydrocarbon liquids that
have a vapor pressure above atmospheric pressure. 0.490 to 0.676 (RD60)
-50 to 140 °F
References
API MPMS 11.2.2 Addendum - Compressibility Factors for The GPA TP-15:2007 / API MPMS 11.2.5:2007 correlation method
Hydrocarbons: Correlation Factors of Vapor Pressure for has been extended for lower density and is valid for the
Commercial Natural Gas Liquids - First Edition, December following ranges.
1994
GPA Technical Publication TP-15 A Simplified Vapor Pressure Lower range:
Correlation for Commercial NGLs - 1988 0.350 to 0.425 (RD60)
API MPMS 11.2.5 - A Simplified Vapor Pressure Correlation for -50 to (695.51*RD60 - 155.51) °F
Commercial NGLs - September 2007 with RD60 being the relative density at 60°F
GPA Technical Publication TP-15 A Simplified Vapor Pressure
Correlation for Commercial NGLs - September 2007
Higher range:
ASTM Technical Publication [Stock No. PETROLTBL-TP15] -
0.425 to 0.676 (relative density)
September, 2007
-50 to 140 °F

NOTE: the first two and the last three refer to one and the same
standard. The current standard GPA-TP15 (2007) / API MPMS
11.2.5 extends the applicable range of the previous standard GPA
TP-15 (1988) / API MPMS 11.2.2 Addendum 1994 while preserving
the calculations and constants of the previous standard.

Function inputs Remark EU Range Default


Name Optional tag name, tag description and tag group
Relative density at 60°F - 0.3 .. 0.75 0
Observed Temperature °F -100..200 60
API rounding 0: Disabled - 0
Full precision (no rounding applied)
1: Enabled
Rounding as defined in ' GPA TP15:1988 / API MPMS 11.2.2 Addendum':1994
P100 Correlation 0: Disabled - 0
The standard correlation is commonly used for pure products such as propane, butane
and natural gasoline. It only requires the relative density and the temperature to
calculate the vapor pressure
1: Enabled
The improved correlation requires the vapor pressure at 100°F (37.8 °C). This method is
better suited for varied NGL mixes Where different product mixes could have the same
specific gravity but different equilibrium pressures.
Vapor pressure at 100°F psia 0..500 0

Function outputs Remark EU Fallback


Status 0: Normal
1: Input argument out of range
2: Calculation error
Vapor pressure Vapor pressure at 60°F psia 0
Range With respect to the 2007 standard the combination of relative density and temperature is: - 0
0: In Range
1: Out of Range

Calculations
The calculations are in either full or partial compliance with the
standards, depending on the selected type of API rounding.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 99

fxGPA2172_96_C
This uses the procedure for calculating heating value, specific GPA-2172 prescribes that the most recent edition of GPA2145
gravity and compressibility factor at customary (imperial) used for the individual component values. The function provides
conditions from the compositional analysis of a natural gas the option to use the values from editions 2000 and 2003. In
mixture. order to verify the function based on the examples of GPA2172
GPA2172 describes the calculation methods to determine the the function provides the option to GPA2145-89 (edition 1989) as
compositional properties based on the individual component well.
values and it refers to the GPA Standard 2145 (GPA2145)
standard for these individual component values. Compliance
The effect of water on the calculations is rather complicated and GPA Standard 2172-96, Calculation of Gross Heating Value,
is accounted for with a simplified equation that is considered to Relative Density and Compressibility Factor for Natural Gas
be adequate for custody transfer applications. Mixtures from Compositional Analysis - 1996
Therefore compositional properties are calculated for the API MPMS 14.5
following gas compositions: ASTM D3588-98 (Reapproved 2003)
GPA Standard 2145-89, Table of Physical Constants
Wet gas composition GPA Standard 2145-00, Table of Physical Constants
the water fraction of input "Composition' is taken as the GPA Standard 2145-03, Table of Physical Constants
actual water fraction.
Dry gas composition
the water fraction is set to 0 and the composition is
normalized to unity.
Saturated gas composition
the water fraction is set to the value when the gas is
saturated with water and the composition is normalized to
unity

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Composition Standard composition as defined section 'Standard Gas Composition' mol/mol COMP 0..1 0
Edition Refers to the base conditions and the editions of the GPA2145 values. - EDITION 2
Note that these base conditions are used for both the density and the heating
value.
1: 60°F, 14.696 psia, GPA2145-89 (1989)
2: 60°F, 14.696 psia, GPA2145-00 (2000)
3: 60°F, 14.696 psia, GPA2145-03 (2003)
neo-Pentane mode Determines what to do when component neo-Pentane is larger than zero - NEOC5_MODE 1
1: Add to i-Pentane
2: Add to n-Pentane
3: Neglect

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: Composition error COMPERR
Composition does not add up to 100% +- 0.01%
In case of an error the output values will be set to the fallback values
Gross Heating Value (Wet) Btu/ft3 VOLGHV_WET 0
Molar Mass (Wet) lbm/lbmol MOLMASS_WET 0
Molar Mass Ratio (Wet) ISG_WET 0
Relative Density (Wet) Based on the compressibility of wet air - RRD_WET 0
Compressibility (Wet) - Z_DWET 0
Gross Heating Value (Wet) Btu/lbm MASGHV_WET 0
Net Heating Value (Wet) Btu/ft3 VOLNHV_WET 0
Gross Heating Value (Dry) Btu/ft3 VOLGHV_DRY 0
Molar Mass (Dry) - MOLMASS_DRY 0
Molar Mass Ratio (Dry) lbm/lbmol ISG_DRY 0
Relative Density (Dry) RRD_DRY 0
Compressibility (Dry) - Z_DRY 0
Gross Heating Value (Dry) Btu/lbm MASGHV_DRY 0
Net Heating Value (Dry) Btu/ft3 VOLNHV_DRY 0
Gross Heating Value The saturated Gross Heating Value is commonly used for custody Btu/ft3 VOLGHV_SAT 0
(Saturated) transfer energy calculations
Molar Mass (Saturated) lbm/lbmol MOLMASS_SAT 0
IT
100 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Function outputs Remark EU SW tag Alarm Fallback


Molar Mass Ratio (Saturated) Ideal specific gravity - ISG_SAT 0
Relative Density (Saturated) Based on the compressibility of saturated air - RRD_SAT 0
Compressibility (Saturated) - Z_SAT 0
Gross Heating Value Btu/lbm MASGHV_SAT 0
(Saturated)
Net Heating Value (Saturated) Btu/ft3 VOLNHV_SAT 0

Calculations
The calculations are as documented in the GPA-2172 standard
using the GPA2145 table values. However the calculations are
performed at full precision, so not with intermediate rounding as
shown in the examples of the standard.

Please note that the function uses the input composition ‘as is’,
so does not apply normalization to 1.

When the water fraction input value is above the water


fraction of the saturated gas then the function continues its
calculations without any correction.
GPA-2145 standard editions 2000 and 2003 do not specify
properties for hydrogen, argon and carbon monoxide. The
function processes these components like the other
components but with all property values set to 0.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 101

fxGPA2172_96_M
This function uses the procedure for calculating heating value, Saturated gas composition
specific gravity and compressibility factor at metric conditions the water fraction value of input ''Composition' is set to the
from the compositional analysis of a natural gas mixture. water saturated mole fraction and the composition is
GPA2172 describes the calculation methods to determine the normalized to unity
compositional properties based on the individual component
values and it refers to the GPA Standard 2145 (GPA2145) GPA-2172 prescribes that the most recent edition of GPA2145
standard for these individual component values. used for the individual component values. The function provides
The effect of water on the calculations is rather complicated and the option to use the values from GPA2145 edition 2000 or 2003.
is accounted for with a simplified equation that is considered to
be adequate for custody transfer applications. Compliance
Therefore compositional properties are calculated for the GPA Standard 2172-96, Calculation of Gross Heating Value,
following gas compositions: Relative Density and Compressibility Factor for Natural Gas
Mixtures from Compositional Analysis - 1996
Wet gas composition API MPMS 14.5 (same as GPA2172-96)
the water fraction of input "Composition' is taken as the GPA Standard 2145-00, Table of Physical Constants
actual water fraction. GPA Standard 2145-03, Table of Physical Constants
Dry gas composition
the water mole fraction of input ''Composition' is set to 0 and
the composition is normalized to unity.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Composition Standard composition as defined section 'Standard Gas Composition'. mol/mol COMP 0..1 0
Edition Refers to the base conditions and the editions of the GPA2145 values. - EDITION 2
Note that the same temperature value is used for the density and heating -
value.
1: 15°C, 1.01325 bar(a), GPA2145-00
2: 15°C, 1.01325 bar(a), GPA2145-03

neo-Pentane mode Determines what to do when component neo-Pentane is larger than zero - NEOC5_MODE 1
1: Add to i-Pentane
2: Add to n-Pentane
3: Neglect

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: Composition error COMPERR
Composition does not add up to 100% +- 0.01%
In case of an error the output values will be set to the fallback
values
Gross Heating Value (Wet) MJ/m3 VOLGHV_WET 0
Molar Mass (Wet) kg/kmol MOLMASS_WET 0
Molar Mass Ratio (Wet) - ISG_WET 0
Relative Density (Wet) Based on the compressibility of wet air - RRD_WET 0
Compressibility (Wet) - Z_DWET 0
Gross Heating Value (Wet) MJ/kg MASGHV_WET 0
Net Heating Value (Wet) MJ/m3 VOLNHV_WET 0
Gross Heating Value (Dry) MJ/m3 VOLGHV_DRY 0
Molar Mass (Dry) kg/kmol MOLMASS_DRY 0
Molar Mass Ratio (Dry) - ISG_DRY 0
Relative Density (Dry) - RRD_DRY 0
Compressibility (Dry) - Z_DRY 0
Gross Heating Value (Dry) MJ/kg MASGHV_DRY 0
Net Heating Value (Dry) MJ/m3 VOLNHV_DRY 0
Gross Heating Value (Saturated) The saturated Gross Heating Value is commonly used for MJ/m3 VOLGHV_SAT 0
custody transfer energy calculations
Molar Mass (Saturated) kg/kmol MOLMASS_SAT 0
Molar Mass Ratio (Saturated) Ideal specific gravity - ISG_SAT 0
Relative Density (Saturated) Based on the compressibility of saturated air - RRD_SAT 0
Compressibility (Saturated) - Z_SAT 0
Gross Heating Value (Saturated) MJ/kg MASGHV_SAT 0
Net Heating Value (Saturated) MJ/m3 VOLNHV_SAT 0
IT
102 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Calculations
The calculations are as documented in the GPA-2172 standard
using the GPA2145 table values. However the calculations are
performed at full precision, so not with intermediate rounding as
shown in the examples of the standard.

Please note that the function uses the input composition ‘as is’,
so does not apply normalization to 1.

When the water fraction input value is above the water


fraction of the saturated gas then the function continues its
calculations without any correction.
GPA-2145 standard editions 2000 and 2003 do not specify
properties for hydrogen, argon and carbon monoxide. The
function processes these components like the other
components but with all property values set to 0.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 103

fxGPA2172_09_C
This function calculates the heating value, specific gravity and Wet gas composition
compressibility factor at customary (imperial) conditions from the water fraction of input "Composition' is taken as the
the compositional analysis of a natural gas mixture in actual water fraction.
accordance with GPA2172-09. Dry gas composition
the water fraction is set to 0 and the composition is
This function does not support the theoretical hydrocarbon normalized to unity.
liquid content calculation that has been added to GPA-2172 2009 Saturated gas composition
revision. the water fraction is set to the value when the gas is
saturated with water and the composition is normalized to
GPA2172 describes the calculation methods to determine the unity
compositional properties based on the individual component
values and it refers to the GPA Standard 2145 (GPA2145) GPA-2172 prescribes that the most recent edition of GPA2145
standard for these individual component values. used for the individual component values. The function provides
the option to use the values from edition 2009.
The effect of water on the calculations is rather complicated and
is accounted for with a simplified equation that is considered to Compliance
be adequate for custody transfer applications. GPA Standard 2172-09, Calculation of Gross Heating Value,
Relative Density, Compressibility and Theoretical
Therefore compositional properties are calculated for the Hydrocarbon Liquid Content for Natural Gas Mixtures from
following gas compositions: Compositional Analysis - 2009
API MPMS 14.5
GPA Standard 2145-09, Table of Physical Constants

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Composition Standard composition as defined section 'Standard Gas Composition' mol/mol COMP 0..1 0
Edition Refers to the base conditions and the editions of the GPA2145 values. - EDITION 2
Note that these base conditions are used for both the density and the
heating value.
4: 60°F, 14.696 psia, GPA2145-09 (2009)
neo-Pentane mode Determines what to do when component neo-Pentane is larger than zero - NEOC5_MODE 1
1: Add to i-Pentane
2: Add to n-Pentane
3: Neglect

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: Composition error COMPERR
Composition does not add up to 100% +- 0.01%
In case of an error the output values will be set to the fallback
values
Gross Heating Value (Wet) Btu/ft3 VOLGHV_WET 0
Molar Mass (Wet) lbm/lbmol MOLMASS_WET 0
Molar Mass Ratio (Wet) ISG_WET 0
Relative Density (Wet) Based on the compressibility of wet air - RRD_WET 0
Compressibility (Wet) - Z_DWET 0
Gross Heating Value (Wet) Btu/lbm MASGHV_WET 0
Net Heating Value (Wet) Btu/ft3 VOLNHV_WET 0
Gross Heating Value (Dry) Btu/ft3 VOLGHV_DRY 0
Molar Mass (Dry) - MOLMASS_DRY 0
Molar Mass Ratio (Dry) lbm/lbmol ISG_DRY 0
Relative Density (Dry) RRD_DRY 0
Compressibility (Dry) - Z_DRY 0
Gross Heating Value (Dry) Btu/lbm MASGHV_DRY 0
Net Heating Value (Dry) Btu/ft3 VOLNHV_DRY 0
Gross Heating Value (Saturated) The saturated Gross Heating Value is commonly used for Btu/ft3 VOLGHV_SAT 0
custody transfer energy calculations
Molar Mass (Saturated) lbm/lbmol MOLMASS_SAT 0
Molar Mass Ratio (Saturated) Ideal specific gravity - ISG_SAT 0
Relative Density (Saturated) Based on the compressibility of saturated air - RRD_SAT 0
Compressibility (Saturated) - Z_SAT 0
Gross Heating Value (Saturated) Btu/lbm MASGHV_SAT 0
Net Heating Value (Saturated) Btu/ft3 VOLNHV_SAT 0
IT
104 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Calculations
The calculations are as documented in the GPA-2172 standard
using the GPA2145 table values. However the calculations are
performed at full precision, so not with intermediate rounding as
shown in the examples of the standard.

Please note that the function uses the input composition ‘as is’,
so does not apply normalization to 1.

When the water fraction input value is above the water


fraction of the saturated gas then the function continues its
calculations without any correction.
GPA-2145 standard edition 2009 does not specify properties
for hydrogen, argon and carbon monoxide. The function
processes these components like the other components but
with all property values set to 0.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 105

fxGPA2172_09_M
This function calculates the heating value, specific gravity and Wet gas composition
compressibility factor at metric (imperial) conditions from the the water fraction of input "Composition' is taken as the
compositional analysis of a natural gas mixture in accordance actual water fraction.
with GPA2172-09. Dry gas composition
the water fraction is set to 0 and the composition is
This function does not support the theoretical hydrocarbon normalized to unity.
liquid content calculation that has been added to GPA-2172 2009 Saturated gas composition
revision. the water fraction is set to the value when the gas is
saturated with water and the composition is normalized to
GPA2172 describes the calculation methods to determine the unity
compositional properties based on the individual component
values and it refers to the GPA Standard 2145 (GPA2145) GPA-2172 prescribes that the most recent edition of GPA2145
standard for these individual component values. used for the individual component values. The function provides
the option to use the values from edition 2009.
The effect of water on the calculations is rather complicated and
is accounted for with a simplified equation that is considered to Compliance
be adequate for custody transfer applications. GPA Standard 2172-09, Calculation of Gross Heating Value,
Relative Density, Compressibility and Theoretical
Therefore compositional properties are calculated for the Hydrocarbon Liquid Content for Natural Gas Mixtures from
following gas compositions: Compositional Analysis - 2009
API MPMS 14.5
GPA Standard 2145-09, Table of Physical Constants

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Composition Standard composition as defined section 'Standard Gas Composition' mol/mol COMP 0..1 0
Edition Refers to the base conditions and the editions of the GPA2145 values. - EDITION 2
Note that these base conditions are used for both the density and the
heating value.
3: 15°C, 1.01325 bar(a), GPA2145-09
neo-Pentane mode Determines what to do when component neo-Pentane is larger than zero - NEOC5_MODE 1
1: Add to i-Pentane
2: Add to n-Pentane
3: Neglect

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: Composition error COMPERR
Composition does not add up to 100% +- 0.01%
In case of an error the output values will be set to the fallback
values
Gross Heating Value (Wet) MJ/m3 VOLGHV_WET 0
Molar Mass (Wet) kg/kmol MOLMASS_WET 0
Molar Mass Ratio (Wet) - ISG_WET 0
Relative Density (Wet) Based on the compressibility of wet air - RRD_WET 0
Compressibility (Wet) - Z_DWET 0
Gross Heating Value (Wet) MJ/kg MASGHV_WET 0
Net Heating Value (Wet) MJ/m3 VOLNHV_WET 0
Gross Heating Value (Dry) MJ/m3 VOLGHV_DRY 0
Molar Mass (Dry) kg/kmol MOLMASS_DRY 0
Molar Mass Ratio (Dry) - ISG_DRY 0
Relative Density (Dry) - RRD_DRY 0
Compressibility (Dry) - Z_DRY 0
Gross Heating Value (Dry) MJ/kg MASGHV_DRY 0
Net Heating Value (Dry) MJ/m3 VOLNHV_DRY 0
Gross Heating Value (Saturated) The saturated Gross Heating Value is commonly used for MJ/m3 VOLGHV_SAT 0
custody transfer energy calculations
Molar Mass (Saturated) kg/kmol MOLMASS_SAT 0
Molar Mass Ratio (Saturated) Ideal specific gravity - ISG_SAT 0
Relative Density (Saturated) Based on the compressibility of saturated air - RRD_SAT 0
Compressibility (Saturated) - Z_SAT 0
Gross Heating Value (Saturated) MJ/kg MASGHV_SAT 0
Net Heating Value (Saturated) MJ/m3 VOLNHV_SAT 0
IT
106 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Calculations
The calculations are as documented in the GPA-2172 standard
using the GPA2145 table values. However the calculations are
performed at full precision, so not with intermediate rounding as
shown in the examples of the standard.

Please note that the function uses the input composition ‘as is’,
so does not apply normalization to 1.

When the water fraction input value is above the water


fraction of the saturated gas then the function continues its
calculations without any correction.
GPA-2145 standard edition 2009 does not specify properties
for hydrogen, argon and carbon monoxide. The function
processes these components like the other components but
with all property values set to 0
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 107

fxIAPWS_IF97_C
The function calculates the density and enthalpy of steam and Region 2: Superheated steam
water according to AIPWS-IF97 in US Customary units. Region 3: Water
Region 4: Saturation line (saturated steam / water)
IAPWS-IF97 defines calculations for 5 regions as shown in the Region 5: Superheated steam
picture below.
References
Revised Release on the IAPWS Industrial Formulation 1997 for
the Thermodynamic Properties of Water and Steam, August
2007.

Boundaries
The IAPWS Industrial Formulation 1997 consists of a set of
equations for different regions which cover the following range
of validity:

32 ≤ T ≤ 1472 °F p ≤ 14500 psia


1472 ≤ T ≤ 3632 °F p ≤ 7250 psia

Region 1: Water
Function inputs Remark EU Range Default
Name Optional tag name, tag description and tag group
Temperature °F 0 .. 4000 0
Pressure psia 0..15000 0
Phase The phase (water or steam) can be calculated automatically or be set to either steam or water. 1
1: Auto-select (calculate from t and p inputs)
2: Steam
3: Water
If 'Steam' or 'Water' is selected, while the combination of temperature and pressure indicates the
opposite phase, then the function uses either the saturation pressure (region 4) or the boundary
pressure (intersection regions 2 and 3) instead of the input pressure for its calculations.

Function outputs Remark EU Fallback


Status 0: Normal
1: Input argument out of range
2: Calculation error
3: No convergence
Density lbm/ft3 0
Enthalpy Energy flow = Mass flow * Enthalpy btu/lbm 0
Region Actual IAPWS-IF97 region - 0
0: Combination of t and p is outside the valid range
1: Water
2: Steam
3: Pressurized water
4: At the saturation line
5: High temperature steam (1472 ≤ T ≤ 3632 °F)
Saturation pressure Saturation pressure at the input temperature. psia 0
Note: only calculated up to the critical temperature of 647.096 K (+- 705 °F), set to 0 for higher temperatures
Ratio of specific heats Equals the ratio of the specific heats cp / cv - 0
cp : specific heat at constant pressure
cv : specific heat at constant volume
This ratio can be used as the isentropic exponent value (also called 'kappa') when the real value is unknown.
The isentropic exponent is required for flow rate calculations based on a differential pressure measurement
(e.g. orifice)

Calculations iteration. A convergence limit of 0.00001 kg/m3 (+- 0.000006


The calculations are in compliance with the standard. lbm/ft3) is applied. A maximum of 20 iterations is applied.

For regions 1, 2 and 5 the density can be calculated directly from The other properties can be calculated directly from the
the temperature in pressure. For region 3 an iterative calculation temperature and pressure for all regions.
is required because the Equation Of State for this region
calculates the pressure from a known temperature and density
IT
108 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxIAPWS_IF97_M
The function calculates the density and enthalpy of steam and Region 1: Water
water according to AIPWS-IF97 in Metric units. Region 2: Superheated steam
Region 3: Water
IAPWS-IF97 defines calculations for 5 regions as shown in the Region 4: Saturation line (saturated steam / water)
picture below. Region 5: Superheated steam

References
Revised Release on the IAPWS Industrial Formulation 1997 for
the Thermodynamic Properties of Water and Steam, August
2007.

Boundaries
The IAPWS Industrial Formulation 1997 consists of a set of
equations for different regions which cover the following range
of validity:

0 ≤ T ≤ 800 °C p ≤ 1000 bar(a)


800 ≤ T ≤ 2000 °C p ≤ 500 bar(a)
Function inputs Remark EU Range Default
Name Optional tag name, tag description and tag group
Temperature °C -50 .. 2200 0
Pressure bar(a) 0..1100 0
Phase The phase (water or steam) can be calculated automatically or be set to either steam or water. 1
1: Auto-select (calculate from t and p inputs)
2: Steam
3: Water
If 'Steam' or 'Water' is selected, while the combination of temperature and pressure indicates the
opposite phase, then the function uses either the saturation pressure (region 4) or the boundary
pressure (intersection regions 2 and 3) instead of the input pressure for its calculations.

Function outputs Remark EU Fallback


Status 0: Normal
1: Input argument out of range
2: Calculation error
3: No convergence
Density kg/m3 0
Enthalpy Energy flow = Mass flow * Enthalpy MJ/kg 0
Region Actual IAPWS-IF97 region - 0
0: Combination of t and p is outside the valid range
1: Water
2: Steam
3: Pressurized water
4: At the saturation line
5: High temperature steam (800 ≤ T ≤ 2000 °C)
Saturation pressure Saturation pressure at the input temperature bar(a) 0
Note: only calculated up to the critical temperature of 647.096 K (+- 374 °C), set to 0 for higher temperatures
Ratio of specific heats Equals the ratio of the specific heats cp / cv - 0
cp : specific heat at constant pressure
cv : specific heat at constant volume
This ratio can be used as the isentropic exponent value (also called 'kappa') when the real value is unknown.
The isentropic exponent is required for flow rate calculations based on a differential pressure measurement
(e.g. orifice)

Calculations iteration. A convergence limit of 0.00001 kg/m3 is applied. A


The calculations are in compliance with the standard. maximum of 20 iterations is applied.

For regions 1, 2 and 5 the density can be calculated directly from The enthalpy can be calculated directly from the temperature
the temperature in pressure. For region 3 an iterative calculation and pressure for all regions.
is required because the Equation Of State for this region
calculates the pressure from a known temperature and density
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 109

fxIndex
The 'fxIndex' provides the same functionality as the Excel Index For each of the 6 analog inputs the application contains one
function with the addition of the creation of tag names. 'Analog input' function that generates tag names with prefix,
A spreadsheet cell that contains a 'fxIndex' function obtains the "AIN1_", "AIN2_ etc. Also more meaningful tag names such as
tag name as defined by its 'Name' input with the tag inheriting "..PT" (pressure transmitter), ".._TT" are used in the
all properties including the value and units from the referred tag. application. When changing the high alarm limit for the
When the referred cell contains a writable tag (i.e. a value and no pressure transmitter (e.g. through an OPC interface) it makes
function) than the cell with the 'fxIndex' function also represents more sense to address the tag as "..PT_HISCALE" instead of
a writable tag with the same properties. "..AIN3_HISCALE" (assuming AIN 3 being used for the pressure
When the referred cell contains a tag that represents one or transmitter). This can be achieved by using the 'fxIndex'
more alarms, then the same alarms are created for the cell with function for the cell that represents the '..PT_HISCALE' tag.
the 'fxIndex' function. In some cases one and the same input signal is used for
The 'fxIndex' is especially useful for setting up generic (template) multiple process variables that are defined in the generic
applications as illustrated by the following examples: application. E.g. when the generic application assumes a
prover inlet temperature input signal as well as a prover outlet
temperature signal (and has corresponding tag names), while
there is only a temperature transmitter in the prover loop,
then the input tags of both signals can refer to the same "AIN"
signal by using the 'fxIndex' function.

Function inputs Remark EU SW tag Range Default


Name Tag name for the cell that contains the function
Reference Reference to one or more cell ranges 1
Row number Optional 1
Number of the row in reference from which to return a reference
Column number Optional. 1
Number of the column in reference from which to return a reference
Area number Optional 1
Selects a range in reference from which to return the intersection of 'Row number' and
'Column number'. The first area selected or entered is numbered 1, the second is 2, and so on.

Function outputs Remark EU SW tag Alarm Fallback


Value The cell obtains a tag name that consist of the prefix as defined by input 'Name' Same as See Remark
with the addition of the suffix as was generated for the tag that is being referred referred cell
to.
The same applies for an alarm if one has been defined for the referred tag.
IT
110 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxInterpolationCurve
This function calculates the output value from a set of reference
points and the actual input value. The function can take an
arbitrary number of reference points.
The function is typically used for applying a calibration curve to a
K factor or a meter factor (liquid) or a meter error curve (gas).
Besides of the 1st calibration point (which is always used) the
function will only use the calibration points (starting from the
2nd point) for which the x value is greater than the previous x
value. All further points will be ignored.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Input value Reference to the cell containing the actual input value (e.g. flow rate or pulse frequency)
Reference values Array of reference values, assuming the following sequence: REFVAL
Point 1 - Input value
Point 1 - Output value
Point 2 - Input value
Point 2 - Output value
etc....
The array must contain an even number of values with the input values in ascending
order.
So it is required that Input 1 < Input 2 < Input 3 etc.
However, when an input value equals 0, then the function will not use this point and all
subsequent points of the array.
Extrapolation mode Determines whether or not extrapolation must be applied when the input value is EXPMODE
outside the linearization curve. When disabled either the first or last output value will be
used.
0: Disabled
1: Enabled

Function outputs Remark EU SW tag Alarm Fallback


Output value Interpolated value Same as input 'Output reference 1' VAL 0
Date/time Latest modification date and time of the any of the DTTM
reference point values
Out of range Input value is outside the range that is covered by the OOR
reference values

Calculations
Out H  Out L
y  x  InL    Out L
InH  InL
Where:

x Input value
y Interpolated value
InL Closest input reference value that is smaller than the input value
InH Closest input reference value that is larger than the input value
OutL Output reference value that corresponds with InL
OutH Output reference value that corresponds with InH
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 111

fxISO5167_ISA1932Nozzle
The function calculates the mass flow rate for ISA1932 Nozzle Compliance
pressure differential flow devices according to the ISO-5167 ISO-5167 - 1991 Measurement of fluid flow by means of
standard. pressure differential devices, 1st edition, 1991
ISO-5167 Amd.1 : 1998(E)
ISO-5167 - 2003 Measurement of fluid flow by means of
pressure differential devices inserted in circular cross-section
conduits running full, 2nd edition, 2003

Function inputs Remark EU Range Default


Name Optional tag name, tag description and tag group
Differential Pressure Differential pressure over the primary flow device measured at the up- and downstream mbar 0
pressure tappings, which need to be in the positions as specified in the standard
Pressure Upstream pressure value of the fluid at metering conditions bar(a) 0
Temperature Down- or upstream temperature of the fluid at metering conditions °C 0
Density Down or upstream density of the fluid at metering conditions kg/m3 0
Dynamic Viscosity Dynamic viscosity of the fluid Pa.s 0
Isentropic Exponent Also referred to as  (kappa). For an ideal gas this coefficient is equal to the ratio of the 0
specific heat capacity at constant pressure to the specific heat at constant volume.
According to the ISO standard this ratio may be used, when the real value is unknown.
Pipe Diameter Internal diameter of the pipe at reference temperature mm 0
Pipe Expansion factor The thermal expansion coefficient of the pipe material 1/°C 0.0000108
Pipe Reference temperature The reference temperature that corresponds to the 'Pipe diameter' input value °C 20
ISA1932 Nozzle Diameter ISA1932 Nozzle diameter at reference temperature mm 0
ISA1932 Nozzle Expansion The thermal expansion coefficient of the ISA1932 Nozzle material 1/°C 0.0000163
factor
ISA1932 Nozzle Reference The reference temperature that corresponds to the 'ISA1932 Nozzle diameter' input value °C 20
Temperature
Pressure Location 1: Upstream - 1
Input 'Pressure' represents the pressure at the upstream pressure tapping (p1).
Since the absolute pressure is usually measured at the upstream tapping this is the most
common setting.
2: Downstream
Input 'Pressure' represents the pressure at the downstream tapping (p2).
Temperature Location 1: Upstream - 2
Input 'Temperature' represents the upstream temperature (t1).
2: Downstream
Input 'Temperature represents the temperature at the downstream tapping (t 2).
3: Recovered
Input 'Temperature' represents the downstream temperature at a location Where the
pressure has fully recovered (t3).
Since temperature measurement is usually downstream of the flow device this is the most
common setting.
Temperature Correction This parameter specifies how the temperature should be corrected from downstream to 3
upstream conditions (or vice versa)
1: (1-)/
Isentropic expansion using (1-)/ as the temperature referral exponent
2: Constant
Isentropic expansion using input 'Temperature Exponent' as the temperature referral
exponent [-].
Please note that this value must be < 0
3: Joule Thomson
Isenthalpic expansion using input 'Temperature Exponent' as the Joule Thomson coefficient
[°C/bar].
This method is prescribed by ISO5167-1:2003.
Temperature Exponent Refer to input Temperature Correction - 0
Unit depends on input Temperature Correction value -°C/bar
Density Location This parameter specifies if and how the density should be corrected from downstream to - 1
upstream conditions (or vice versa).
1: Upstream
Input 'Density' represents the density at the upstream pressure tapping (1).
2: Downstream
Input 'Density' represents the density at the downstream tapping (2).
3: Recovered
Input 'Density' represents the density downstream at a location Where the pressure has fully
recovered (3).
Density Exponent. This factor is used when density correction is enabled. The formula 1/ will be used when - 0
the input value is set to 0, else the input value will be used.
For more details refer to section 'Density correction'.
Fluid The type of fluid being measured - 1
1: Gas
2: Liquid
IT
112 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Function inputs Remark EU Range Default


Year Of Edition 1: Edition 1991 - 3
2: Edition 1998
3: Edition 2003
Only used for calculation of pressure loss, with options 1 and 2 giving the same result

Function outputs Remark EU


Status 0: Normal (No error condition) -
1: Input argument out of range
2: No convergence
Mass flow rate The calculated mass flow rate kg/s
Beta ratio Nozzle to pipe ratio at upstream temperature -
Nozzle diameter At the upstream temperature mm
Pipe diameter At the upstream temperature mm
Upstream pressure Pressure at upstream tapping (p1) bar(a)
Pressure at downstream tapping Pressure at downstream tapping (p2) bar(a)
Recovered downstream pressure Fully recovered downstream pressure (p3) bar(a)
Upstream temperature Temperature at upstream tapping (t1) °C
Temperature at downstream tapping Temperature at downstream tapping (t2) °C
Downstream Temperature 'Fully recovered' downstream temperature (t3) °C
Upstream density Density at upstream tapping (1) kg/m3
Density at downstream tapping Pressure at downstream tapping (2) kg/m3
Downstream density 'Fully recovered' downstream density (3) kg/m3
Reynolds number The pipe Reynolds number (this is the Reynolds number upstream of the ISA1932 Nozzle and not the one -
within the device throat itself
Discharge coefficient -
Expansion Factor -
Velocity of Approach
Pressure Range 0: Pressure is in valid range -
1: Pressure is out of valid range
Reynolds Range 0: Reynolds number is in valid range -
1: Reynolds number is out of valid range
Diameter Range 0: Device and pipe diameter and Beta ratio in valid range -
1: Device diameter, pipe diameter and/or Beta ratio out of valid range
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 113

fxISO5167_LongRadiusNozzle
The function calculates the mass flow rate for Long Radius Compliance
Nozzle pressure differential flow devices according to the ISO- ISO-5167 - 1991 Measurement of fluid flow by means of
5167 standard. pressure differential devices, 1st edition, 1991
ISO-5167 Amd.1 : 1998(E)
ISO-5167 - 2003 Measurement of fluid flow by means of
pressure differential devices inserted in circular cross-section
conduits running full, 2nd edition, 2003

Function inputs Remark EU Range Default


Name Optional tag name, tag description and tag group

Differential Pressure Differential pressure over the primary flow device measured at the up- and downstream mbar 0
pressure tappings, which need to be in the positions as specified in the standard
Pressure Upstream pressure value of the fluid at metering conditions bar(a) 0
Temperature Down- or upstream temperature of the fluid at metering conditions °C 0
Density Down or upstream density of the fluid at metering conditions kg/m3 0
Dynamic Viscosity Dynamic viscosity of the fluid Pa.s 0
Isentropic Exponent Also referred to as  (kappa). For an ideal gas this coefficient is equal to the ratio of the - 0
specific heat capacity at constant pressure to the specific heat at constant volume. According
to the ISO standard this ratio may be used, when the real value is unknown.
Pipe Diameter Internal diameter of the pipe at reference temperature mm 0
Pipe Expansion factor The thermal expansion coefficient of the pipe material 1/°C 0.0000108
Pipe Reference temperature The reference temperature that corresponds to the 'Pipe diameter' input value °C 20
Long Radius Nozzle Diameter Long Radius Nozzle diameter at reference temperature mm 0
Long Radius Nozzle Expansion The thermal expansion coefficient of the Long Radius Nozzle material 1/°C 0.0000163
factor
Long Radius Nozzle Reference The reference temperature that corresponds to the 'Long Radius Nozzle diameter' input value °C 20
Temperature
Pressure Location 1: Upstream - 1
Input 'Pressure' represents the pressure at the upstream pressure tapping (p1).
Since the absolute pressure is usually measured at the upstream tapping this is the most
common setting.
2: Downstream
Input 'Pressure' represents the pressure at the downstream tapping (p2).
Temperature Location 1: Upstream - 2
Input 'Temperature' represents the upstream temperature (t1).
2: Downstream
Input 'Temperature represents the temperature at the downstream tapping (t 2).
3: Recovered
Input 'Temperature' represents the downstream temperature at a location Where the pressure
has fully recovered (t3).
Since temperature measurement is usually downstream of the flow device this is the most
common setting.
Temperature Correction This parameter specifies how the temperature should be corrected from downstream to 3
upstream conditions (or vice versa)
1: (1-)/
Isentropic expansion using (1-)/ as the temperature referral exponent
2: Constant
Isentropic expansion using input 'Temperature Exponent' as the temperature referral
exponent [-].
Please note that this value must be < 0
3: Joule Thomson
Isenthalpic expansion using input 'Temperature Exponent' as the Joule Thomson coefficient
[°C/bar].
This method is prescribed by ISO5167-1:2003.
Temperature Exponent Refer to input Temperature Correction - 0
Unit depends on input Temperature Correction value -°C/bar
Density Location This parameter specifies if and how the density should be corrected from downstream to - 1
upstream conditions (or vice versa).
1: Upstream
Input 'Density' represents the density at the upstream pressure tapping (1).
2: Downstream
Input 'Density' represents the density at the downstream tapping (2).
3: Recovered
Input 'Density' represents the density downstream at a location Where the pressure has fully
recovered (3).
Density Exponent. This factor is used when density correction is enabled. The formula 1/ will be used when the - 0
input value is set to 0, else the input value will be used.
For more details refer to section 'Density correction'.
Fluid The type of fluid being measured - 1
1: Gas
IT
114 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Function inputs Remark EU Range Default


2: Liquid
Year Of Edition 1: Edition 1991 - 3
2: Edition 1998
3: Edition 2003
Only used for calculation of pressure loss, with options 1 and 2 giving the same result

Function outputs Remark EU


Status 0: Normal (No error condition) -
1: Input argument out of range
2: No convergence
Mass flow rate The calculated mass flow rate kg/s
Beta ratio Nozzle to pipe ratio at upstream temperature
Nozzle diameter At the upstream temperature
Pipe diameter At the upstream temperature
Upstream pressure Pressure at upstream tapping (p1) bar(a)
Pressure at downstream tapping Pressure at downstream tapping (p2) bar(a)
Recovered downstream pressure Fully recovered downstream pressure (p3) bar(a)
Upstream temperature Temperature at upstream tapping (t1) °C
Temperature at downstream tapping Temperature at downstream tapping (t2) °C
Downstream Temperature 'Fully recovered' downstream temperature (t3) °C
Upstream density Density at upstream tapping (1) kg/m3
Density at downstream tapping Pressure at downstream tapping (2) kg/m3
Downstream density 'Fully recovered' downstream density (3) kg/m3
Reynolds number The pipe Reynolds number (this is the Reynolds number upstream of the Long Radius Nozzle and not the -
one within the device throat itself
Discharge coefficient -
Expansion Factor -
Velocity of Approach
Pressure Range 0: Pressure is in valid range -
1: Pressure is out of valid range
Reynolds Range 0: Reynolds number is in valid range -
1: Reynolds number is out of valid range
Diameter Range 0: Device and pipe diameter and Beta ratio in valid range -
1: Device diameter, pipe diameter and/or Beta ratio out of valid range
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 115

fxISO5167_Orifice
The function calculates the mass flow rate for Orifice pressure References
differential flow devices according to the ISO-5167 standard and ISO 5167 - Measurement of fluid flow by means of pressure
the ISO/TR 15377 technical report. differential devices, 1991
ISO 5167 - Measurement of fluid flow by means of pressure
Orifices plates with the following type of pressure tappings are differential devices, 1991
supported by this function: Amendment 1 1998
ISO5167 Square-edged orifice with corner tappings ISO 5167 - Measurement of fluid flow by means of pressure
ISO5167 Square-edged orifice with flange tappings differential devices, 2003
ISO5167 Square-edged orifice with D and D/2 tappings British standard 1042: Part 1: 1964
ISO/TR 15377 Quarter circle orifice with corner tappings ISO/TR 15377:2007 Measurement of fluid flow by means of
ISO/TR 15377 Quarter circle orifice with flange tappings pressure differential devices – Guidelines for the specification
ISO/TR 15377 Conical entrance orifice with corner tappings of orifice plates, nozzle and Venturi tubes beyond the scope
of ISO 5167

Function inputs Remark EU Range Default


Name Optional tag name, tag description and tag group
Differential Pressure Differential pressure over the primary flow device measured at the up- and downstream mbar 0..10000 0
pressure tappings, which need to be in the positions as specified in the standard
Pressure Down- or upstream pressure value (p1) of the fluid at metering conditions bar (a) 0..2000 0
Temperature Down- or upstream temperature of the fluid at metering conditions °C -240..1000 0
Density Down or upstream density of the fluid at metering conditions kg/m3 0..2000 0
Dynamic Viscosity Dynamic viscosity of the fluid Pa.s 0..1 0
Isentropic Exponent Also referred to as  (kappa). For an ideal gas this coefficient is equal to the ratio of the - 0..10 0
specific heat capacity at constant pressure to the specific heat at constant volume.
According to the ISO standard this ratio may be used, when the real value is unknown.
Pipe Diameter Internal diameter of the pipe at reference temperature mm 0..2000 0
Pipe Expansion factor The thermal expansion coefficient of the pipe material 1/°C 0..1 0.0000108
Pipe Reference The reference temperature that corresponds to the 'Pipe diameter' input value °C -300..1000 20
temperature
Orifice Diameter Orifice diameter at reference temperature mm 0..2000 0
Orifice Expansion factor The thermal expansion coefficient of the orifice material 1/°C 0..1 0.0000163
Orifice Reference The reference temperature that corresponds to the 'Orifice diameter' input value °C -300..1000 20
Temperature
Configuration The location of the pressure tappings. Several configurations are permitted by the ISO5167 - 2
standard. Each configuration has a different calculation of the discharge coefficient and of
the expansion factor
1: ISO5167 Corner
2: ISO5167 D and D/2
3: ISO5167 Flange
4: ISO15377 Quarter circle (*)
5: ISO15377 Conical entrance
(*) The calculation of the discharge and expansion factor are equal for the quarter circle
orifice with corner and flange tappings.
Single
corner Annular slot corner
tapping tapping

Flange
tapping

25.4 mm
D D/2

D and D/2 tapping

Pressure Location 1: Upstream - 1


Input 'Pressure' represents the pressure at the upstream pressure tapping (p1).
Since the absolute pressure is usually measured at the upstream tapping this is the most
common setting.
2: Downstream
Input 'Pressure' represents the pressure at the downstream tapping (p2).
IT
116 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Function inputs Remark EU Range Default


Temperature Location 1: Upstream - 2
Input 'Temperature' represents the upstream temperature (t1).
2: Downstream
Input 'Temperature represents the temperature at the downstream tapping (t2).
3: Recovered
Input 'Temperature' represents the downstream temperature at a location Where the
pressure has fully recovered (t3).
Since temperature measurement is usually downstream of the flow device this is the most
common setting.

Temperature Correction This parameter specifies how the temperature should be corrected from downstream to 3
upstream conditions (or vice versa)
1: (1-)/
Isentropic expansion using (1-)/ as the temperature referral exponent
2: Constant
Isentropic expansion using input 'Temperature Exponent' as the temperature referral
exponent [-].
Please note that this value must be < 0
3: Joule Thomson
Isenthalpic expansion using input 'Temperature Exponent' as the Joule Thomson coefficient
[°C/bar].
This method is prescribed by ISO5167-1:2003.
Temperature Exponent Refer to input Temperature Correction - 0
Unit depends on input Temperature Correction value -°C/bar
Density Location This parameter specifies if and how the density should be corrected from downstream to - 1
upstream conditions (or vice versa).
1: Upstream
Input 'Density' represents the density at the upstream pressure tapping (1).
2: Downstream
Input 'Density' represents the density at the downstream tapping (2).
3: Recovered
Input 'Density' represents the density downstream at a location Where the pressure has fully
recovered (3).

Density Exponent. This factor is used when density correction is enabled. The formula 1/ will be used when - 0
the input value is set to 0, else the input value will be used.
For more details refer to section 'Density correction'.
Fluid The type of fluid being measured - 1
1: Gas
2: Liquid
Year Of Edition 1: Edition 1991 - 3
2: Edition 1998
3: Edition 2003
Note: Only applicable for ISO5167. ISO/TR15377 refers to ISO5167:2003.
Drain hole When input value is > 0 then an additional correction on the orifice diameter will be applied mm 0
to account for the drain hole, as explained further on.

Function outputs Remark EU Fallback


Status 0: Normal (No error condition)
1: Input argument out of range
2: No convergence
Mass flow rate The calculated mass flow rate kg/s 0
Beta ratio Orifice to pipe diameter ratio at upstream temperature - 0
Orifice diameter At the upstream temperature and optionally with a correction for the drain hole mm 0
Pipe diameter At the upstream temperature mm 0
Upstream pressure Pressure at upstream tapping (p1) bar(a) 0
Pressure at downstream tapping Pressure at downstream tapping (p2) bar(a) 0
Recovered downstream pressure Fully recovered downstream pressure (p3) bar(a) 0
Upstream temperature Temperature at upstream tapping (t1) °C 0
Temperature at downstream tapping Temperature at downstream tapping (t2) °C 0
Downstream Temperature 'Fully recovered' downstream temperature (t3) °C 0
Upstream density Density at upstream tapping (1) kg/m3 0
Density at downstream tapping Pressure at downstream tapping (2) kg/m3 0
Downstream density 'Fully recovered' downstream density (3) kg/m3 0
Reynolds number The pipe Reynolds number (this is the Reynolds number upstream of the orifice and not the one - 0
within the device throat itself
Discharge coefficient - 0
Expansion Factor - 0
Velocity of Approach - 0
Pressure Range 0: Pressure is in valid range - 0
1: Pressure is out of valid range
Reynolds Range 0: Reynolds number is in valid range - 0
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 117

Function outputs Remark EU Fallback


1: Reynolds number is out of valid range
Diameter Range 0: Device and pipe diameter and Beta ratio in valid range - 0
1: Device diameter, pipe diameter and/or Beta ratio out of valid range

Pressure correction KTE Temperature exponent -


JT Joule Thomson coefficient °C/bar
The relation between the pressure at the upstream tapping p1
and the pressure at the downstream tapping (p2) is as following:
ISO-5167 edition 2003 prescribes an isenthalpic expansion
instead of an isentropic expansion. This can be achieved by
p 2  p1 p /1000
assigning a fixed Joule Thomson coefficient to input
'Temperature Exponent'.
The relation between the pressure at the upstream tapping and
the fully recovered pressure (p3) is as following: NOTE: ISO is working a method to calculate the Joule Thomson
rather than using a fixed value.
p 3  p1  p LOSS
Density correction
The calculation of PLOSS is as defined in the standard. When input 'Density exponent' = 0, then the following isentropic
corrections are applied (depending on the type of Density
Where: Correction)
p1 Pressure at upstream tapping [bar(a)] 1 1
p2 Pressure at downstream tapping [bar(a)] p   p  
p3 Fully recovered downstream pressure [bar(a)]  1  2   1   1  3   1 
p
pLOSS
Differential pressure
Pressure loss over the meter
[mbar]
[bar]
 p2   p3 

Temperature correction Else the value of input 'Density Exponent' is used


When input 'Temperature correction' is set to 1, then an
K DE K DE
isentropic expansion based on the isentropic coefficient is p  p 
applied:  1  2   1   1  3   1 
1  p2   p3 
p  
t 2  t 3  273.15   3   273.15 Where:
 p2  1 Upstream density [kg/m3]
1 2 Density at the downstream tapping [kg/m3]
p   3 Density at the fully recovered downstream pressure [kg/m3]
t 1  t 3  273.15   3   273.15 p1 Upstream pressure [bar(a)]
 p1  p2 Pressure at the downstream tapping [bar(a)]
p3 Fully recovered downstream pressure [bar(a)]
When input 'Temperature correction' is set to 2, then an  Isentropic exponent [-]
isentropic expansion based on input 'Temperature exponent' is KDE Density exponent [-]
applied:
p 
K TE
NOTE: In March 2007 the British DTI (Department of Trade and
t 2  t 3  273.15   3   273.15 Industry) has recommended that the density correction method
 p2  should not be based on isentropic expansion but on isenthalpic
K TE expansion instead.
p 
t 1  t 3  273.15   3   273.15
 p1  The correction assumes that the density is measured at p2
When input 'Temperature correction' is set to 3, then an (downstream pressure tapping pressure) and t 3 (downstream
isenthalpic expansion based on the linear Joule Thomson recovered temperature). For this situation the following density
correction as defined in ISO5167-1:2003, taking input correction is defined:
'Temperature exponent' as the Joule Thomson coefficient:
p1  t 3  Z ( p 2 , t 3 )
t 1 t 2   p1  p2    JT  1  M 
p 2  t1  Z ( p1 , t1 )
t 1 t3   p1  p3    JT
Where:
Where: 1 Upstream density [kg/m3]
t1 Upstream temperature °C M Measured density from the densitometer at p 2 and t 3 [kg/m3]
t3 Downstream temperature °C p1 Upstream pressure [bar(a)]
p1 Upstream pressure bar(a)
p2 Pressure at the downstream tapping [bar(a)]
p3 Fully recovered downstream pressure bar(a)
 Isentropic exponent - t1 Upstream temperature °C
IT
118 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

t3 Temperature at downstream side Where pressure has °C


fully recovered
Z(p1,t1) Compressibility at p 1 and t 1 [-]
Z(p2,t3) Compressibility at p 2 and t 3 [-]

When required, this correction should be applied outside the


ISO5167 function by defining an additional compressibility
calculation (e.g. AGA8) at p2 and t3 in the application and
calculating the upstream density, Where the value of p2 is
provided as an output by the ISO5167 function. Subsequently the
upstream density is calculated and fed into the ISO5167 function
(input 'Density') with input 'Density Correction' set to 'Upstream
density'.
Correction for drain hole
When input 'Drain hole' is > 0 then the following correction factor
is applied on the orifice diameter according to the British
standard 1042: Part 1: 1964 and ISO/TR 15377:2007

2
d 
C DH  1  0.55 *  DH 
 d0 
Where:

CDH Darin hole correction factor on orifice diameter [-]


dDH Drain hole diameter [mm]
d0 Orifice diameter at reference temperature (i.e. input [mm]
'Orifice diameter')
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 119

fxISO5167_Venturi
The function calculates the mass flow rate for classical Venturi Compliance
tube pressure differential flow devices according to the ISO-5167 ISO-5167 - 1991 Measurement of fluid flow by means of
standard. pressure differential devices, 1st edition, 1991
ISO-5167 Amd.1 : 1998(E)
ISO-5167 - 2003 Measurement of fluid flow by means of
pressure differential devices inserted in circular cross-section
conduits running full, 2nd edition, 2003

Function inputs and outputs


Function inputs Remark EU Range Default
Name Optional tag name, tag description and tag group
Differential Pressure Differential pressure over the primary flow device measured at the up- and downstream mbar 0
pressure tappings, which need to be in the positions as specified in the standard
Pressure Upstream pressure value of the fluid at metering conditions bar(a) 0
Temperature Down- or upstream temperature of the fluid at metering conditions °C 0
Density Down or upstream density of the fluid at metering conditions kg/m3 0
Dynamic Viscosity Dynamic viscosity of the fluid Pa.s 0
Isentropic Exponent Also referred to as  (kappa). For an ideal gas this coefficient is equal to the ratio of the specific - 0
heat capacity at constant pressure to the specific heat at constant volume. According to the ISO
standard this ratio may be used, when the real value is unknown.
Pipe Diameter Internal diameter of the pipe at reference temperature mm 0
Pipe Expansion factor The thermal expansion coefficient of the pipe material 1/°C 0.0000108
Pipe Reference The reference temperature that corresponds to the 'Pipe diameter' input value °C 20
temperature
Venturi Diameter Venturi diameter at reference temperature mm 0
Venturi Expansion factor The thermal expansion coefficient of the Venturi material 1/°C 0.0000163
Venturi Reference The reference temperature that corresponds to the 'Venturi diameter' input value °C 20
Temperature
Configuration The type of classical venturi tube. - 2
Three configurations are permitted by the ISO5167 standard. Each configuration has a different
calculation of the discharge coefficient and of the expansion factor
1: As cast convergent section
2: Rough welded
3: Machined
4: User-defined (not according to the standard!)
When 'User-defined' is selected then the input 'Discharge coefficient' will be used in the
calculations instead.
Pressure Location 1: Upstream - 1
Input 'Pressure' represents the pressure at the upstream pressure tapping (p1).
Since the absolute pressure is usually measured at the upstream tapping this is the most
common setting.
2: Downstream
Input 'Pressure' represents the pressure at the downstream tapping (p2).
Temperature Location 1: Upstream - 2
Input 'Temperature' represents the upstream temperature (t1).
2: Downstream
Input 'Temperature represents the temperature at the downstream tapping (t 2).
3: Recovered
Input 'Temperature' represents the downstream temperature at a location Where the pressure
has fully recovered (t3).
Since temperature measurement is usually downstream of the flow device this is the most
common setting.
Temperature Correction This parameter specifies how the temperature should be corrected from downstream to 3
upstream conditions (or vice versa)
1: (1-)/
Isentropic expansion using (1-)/ as the temperature referral exponent
2: Constant
Isentropic expansion using input 'Temperature Exponent' as the temperature referral exponent
[-].
Please note that this value must be < 0
3: Joule Thomson
Isenthalpic expansion using input 'Temperature Exponent' as the Joule Thomson coefficient
[°C/bar].
This method is prescribed by ISO5167-1:2003.
Temperature Exponent Refer to input Temperature Correction - 0
Unit depends on input Temperature Correction value -°C/bar
Density Location This parameter specifies if and how the density should be corrected from downstream to - 1
upstream conditions (or vice versa).
1: Upstream
Input 'Density' represents the density at the upstream pressure tapping (1).
2: Downstream
IT
120 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Function inputs Remark EU Range Default


Input 'Density' represents the density at the downstream tapping (2).
3: Recovered
Input 'Density' represents the density downstream at a location Where the pressure has fully
recovered (3).
Density Exponent. This factor is used when density correction is enabled. The formula 1/ will be used when the - 0
input value is set to 0, else the input value will be used.
For more details refer to section 'Density correction'.
Fluid The type of fluid being measured - 1
1: Gas
2: Liquid
Pressure Loss Mode The method for determining the pressure loss - 1
1: Absolute value in mbar
The value of input 'Pressure Loss Value' is taken as a value in mbar
2: Percentage of differential pressure
The value of input 'Pressure Loss Value' is taken as a percentage from input 'Differential
Pressure'
Pressure Loss Value Value in mbar or %, depending on the 'Pressure Loss Mode'. mbar 0
The pressure loss over the Venturi is used to calculate the downstream fully recovered pressure. %
The pressure loss equals the difference between the upstream pressure (p1) and the fully
recovered downstream pressure (p3)
The standard prescribes that only the pressure loss that is caused by the venturi tube should be
included (so it should not include the pressure loss that occurred between the two pressure
tappings before the venturi tube was installed).
Discharge coefficient This value will used instead of the discharge coefficient as specified in the standard. - 0
Only used when input 'Configuration' is set to 'User-defined'.

Function outputs Remark EU Fallback


Status 0: Normal (No error condition)
1: Input argument out of range
2: No convergence
Mass flow rate The calculated mass flow rate kg/s 0
Beta ratio Venturi to pipe diameter ratio at upstream temperature - 0
Venturi diameter At the upstream temperature mm 0
Pipe diameter At the upstream temperature mm 0
Upstream pressure Pressure at upstream tapping (p1) bar(a) 0
Pressure at downstream tapping Pressure at downstream tapping (p2) bar(a) 0
Recovered downstream pressure Fully recovered downstream pressure (p3) bar(a) 0
Upstream temperature Temperature at upstream tapping (t1) °C 0
Temperature at downstream tapping Temperature at downstream tapping (t2) °C 0
Downstream Temperature 'Fully recovered' downstream temperature (t3) °C 0
Upstream density Density at upstream tapping (1) kg/m3 0
Density at downstream tapping Pressure at downstream tapping (2) kg/m3 0
Downstream density 'Fully recovered' downstream density (3) kg/m3 0
Reynolds number The pipe Reynolds number (this is the Reynolds number upstream of the Venturi and not the one - 0
within the device throat itself
Discharge coefficient - 0
Expansion Factor - 0
Velocity of Approach 0
Pressure Range 0: Pressure is in valid range - 0
1: Pressure is out of valid range
Reynolds Range 0: Reynolds number is in valid range - 0
1: Reynolds number is out of valid range
Diameter Range 0: Device and pipe diameter and Beta ratio in valid range - 0
1: Device diameter, pipe diameter and/or Beta ratio out of valid range
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 121

fxISO5167_VenturiNozzle
The function calculates the mass flow rate for Venturi Nozzle Compliance
pressure differential flow devices according to the ISO-5167 ISO-5167 - 1991 Measurement of fluid flow by means of
standard. pressure differential devices, 1st edition, 1991
ISO-5167 Amd.1 : 1998(E)
ISO-5167 - 2003 Measurement of fluid flow by means of
pressure differential devices inserted in circular cross-section
conduits running full, 2nd edition, 2003

Function inputs Remark EU Default


Name Optional tag name, tag description and tag group
Differential Pressure Differential pressure over the primary flow device measured at the up- and downstream pressure tappings, mbar 0
which need to be in the positions as specified in the standard
Pressure Upstream pressure value of the fluid at metering conditions bar(a) 0
Temperature Down- or upstream temperature of the fluid at metering conditions °C 0
Density Down or upstream density of the fluid at metering conditions kg/m3 0
Dynamic Viscosity Dynamic viscosity of the fluid Pa.s 0
Isentropic Exponent Also referred to as  (kappa). For an ideal gas this coefficient is equal to the ratio of the specific heat 0
capacity at constant pressure to the specific heat at constant volume. According to the ISO standard this
ratio may be used, when the real value is unknown.
Pipe Diameter Internal diameter of the pipe at reference temperature mm 0
Pipe Expansion factor The thermal expansion coefficient of the pipe material 1/°C 0.0000108
Pipe Reference The reference temperature that corresponds to the 'Pipe diameter' input value °C 20
temperature
Venturi Nozzle Diameter Venturi Nozzle diameter at reference temperature mm 0
Venturi Nozzle Expansion The thermal expansion coefficient of the Venturi Nozzle material 1/°C 0.0000163
factor
Venturi Nozzle Reference The reference temperature that corresponds to the 'Venturi Nozzle diameter' input value °C 20
Temperature
Pressure Location 1 Input 'Pressure' represents the pressure at the upstream pressure tapping (p1). - 1
Since the absolute pressure is usually measured at the upstream tapping this is the most common
setting.
2 Input 'Pressure' represents the pressure at the downstream tapping (p2).
Temperature Location 1 Input 'Temperature' represents the upstream temperature (t1). - 2
2 Input 'Temperature represents the temperature at the downstream tapping (t 2).
3 Input 'Temperature' represents the downstream temperature at a location Where the pressure has fully
recovered (t3).
Since temperature measurement is usually downstream of the flow device this is the most common
setting.
Temperature Correction 1 Isentropic expansion using (1-)/ as the temperature referral exponent 3
2 Isentropic expansion using input 'Temperature Exponent' as the temperature referral exponent [-]
3 Isenthalpic expansion using input 'Temperature Exponent' as the Joule Thomson coefficient [°C/bar].
This method is prescribed by ISO5167-1:2003.
Temperature Exponent Refer to input Temperature Correction -°C/bar 0
Density Location This parameter specifies if and how the density should be corrected from downstream to upstream - 1
conditions.
1 Input 'Density' represents the density at the upstream pressure tapping (1).
2 Input 'Density' represents the density at the downstream tapping (2).
3 Input 'Density' represents the density downstream at a location Where the pressure has fully recovered
(3).
Density Exponent. This factor is used when density correction is enabled. The formula 1/ will be used when the input value is - 0
set to 0, else the input value will be used.
For more details refer to function 'ISO5167 - Orifice' section 'Density correction'
Fluid The type of fluid being measured - 1
1: Gas
2: Liquid
Pressure Loss Mode The method for determining the pressure loss - 1
1 Absolute value in mbar
The value of input 'Pressure Loss Value' is taken as a value in mbar
2 Percentage of differential pressure
The value of input 'Pressure Loss Value' is taken as a percentage from input 'Differential Pressure'
Pressure Loss Value Value in mbar or %, depending on the 'Pressure Loss Mode'. mbar 0
The pressure loss over the Venturi nozzle is used to calculate the downstream fully recovered pressure. The %
pressure loss equals the difference between the upstream pressure (p1) and the fully recovered
downstream pressure (p3)
The standard prescribes that only the pressure loss that is caused by the venturi nozzle should be included
(so it should not include the pressure loss that occurred between the two pressure tappings before the
venturi nozzle was installed).

Function outputs Remark EU Fallback


Status 0: Normal (No error condition)
IT
122 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Function outputs Remark EU Fallback


1: Input argument out of range
2: No convergence
Mass flow rate The calculated mass flow rate kg/s 0
Beta ratio Venturi nozzle to pipe diameter ratio at upstream temperature 0
Venturi Nozzle diameter At the upstream temperature 0
Pipe diameter At the upstream temperature 0
Upstream pressure Pressure at upstream tapping (p1) bar(a) 0
Pressure at downstream tapping Pressure at downstream tapping (p2) bar(a) 0
Recovered downstream pressure Fully recovered downstream pressure (p3) bar(a) 0
Upstream temperature Temperature at upstream tapping (t1) °C 0
Temperature at downstream tapping Temperature at downstream tapping (t2) °C 0
Downstream Temperature 'Fully recovered' downstream temperature (t3) °C 0
Upstream density Density at upstream tapping (1) kg/m3 0
Density at downstream tapping Pressure at downstream tapping (2) kg/m3 0
Downstream density 'Fully recovered' downstream density (3) kg/m3 0
Reynolds number The pipe Reynolds number (this is the Reynolds number upstream of the Venturi nozzle and not - 0
the one within the device throat itself
Discharge coefficient - 0
Expansion Factor - 0
Velocity of Approach 0
Pressure Range 0: Pressure is in valid range - 0
1: Pressure is out of valid range
Reynolds Range 0: Reynolds number is in valid range - 0
1: Reynolds number is out of valid range
Diameter Range 0: Device and pipe diameter and Beta ratio in valid range - 0
1: Device diameter, pipe diameter and/or Beta ratio out of valid range

Temperature correction
When input ''Temperature exponent' = 0, then an isentropic
expansion is applied:
1
p  
t 1 t 3  273.15   3   273.15
 p1 
Else the value of input 'Temperature exponent' is used:
KTE
p 
t 1 t 3  273.15   3   273.15
 p1 
Where:
t1 Upstream temperature [°C]
t3 Downstream temperature [°C]
p1 Upstream pressure [bar(a)]
p3 Fully recovered downstream pressure [bar(a)]
 Isentropic exponent [-]
KTE Temperature exponent [-]
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 123

fxISO6976_1983_M
ISO standard 6976 defines component properties and Compliance
calculations to determine the calorific value, density and relative International standard, Natural Gas - Calculation of calorific
density for a gas composition at the specified metering and values, density, relative density and Wobbe index (ISO
combustion reference temperatures and 1.01325 bar(a). 6976:1983)

Boundaries
ISO6976:1983 does not define limits for its input data.

Function inputs and outputs


Function inputs Remark EU Range Default
Name Optional tag name, tag description and tag group
Composition Standard composition as defined in section 'Standard gas composition. mol/mol 0..1 0
Metering reference temperature Temperature used for calculating the compressibility, the density and the real relative - 1
density values
1: 0 °C
2: 15 °C
Calorific value reference temperature Temperatures used for calculating the calorific values. - 1
1st value represents the combustion reference temperature and the 2nd value the Gas
volume reference temperature
1: 25 °C / 0 °C
2: 0 °C / 0 °C
3: 15 °C / 0 °C
4: 15 °C / 15 °C
5: 60 °F / 60 °F

Function outputs Remark EU Fallback


Status 0: Normal
1: Input argument out of range
2: Calculation error
3: Mole fractions do not add up to 1.0 +- 0.0001
Superior calorific value Real value at the reference conditions of temperature and pressure MJ/m3 0
Density At the reference conditions of temperature and pressure kg/m3 0
Compressibility - 1
Relative density - 0
Molar mass kg/kmol 0

Calculations
Calculations are performed in accordance with the standard,
using the values as listed in the tables of the standard.
IT
124 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxISO6976_1995_M
ISO standard 6976 edition 1995 defines component properties Boundaries
and calculations to determine the calorific value, density, relative The valid ranges for molar fractions are as follows:
density and Wobbe index for a gas composition at the specified Methane 0.5 <= .. <= 1.0
metering and combustion reference temperatures and 1.01325 Nitrogen 0.0 <= .. <= 0.3
bar(a). Ethane 0.0 <= .. <= 0.15
Both the definitive and alternative methods of calculating the Carbon dioxide 0.0 <= .. <= 0.15
calorific value on a mass and volumetric basis are included. All others 0.0 <= .. <= 0.05

Compliance
International standard, Natural Gas - Calculation of calorific
values, density, relative density and Wobbe index (ISO
6976:1995/BS7589)

Function inputs Remark EU Range Default


Name Optional tag name, tag description and tag group
Composition Standard composition as defined in section 'Standard gas composition. mol/mol 0..1 0
Reference conditions The reference temperature for combustion / metering: 1
1: 15°C / 15°C
2: 0°C / 0°C
3: 15°C / 0°C
4: 25°C / 0°C
5: 20°C / 20°C
6: 25°C / 20°C
Molar mass table 1: Calculate - 1
method Calculates the molar mass from the atomic masses as defined in the note of Table 1 of the standard
2: Table
Uses the values from Table 1 of the standard
Calorific value Refer to paragraph 6.1 and 7.1 of the standard - 1
calculation method 1: Definitive method
Calculates the mass based calorific value from the molar based calorific values from table 3 and from the
calculated molar mass values.
Calculates the volume based calorific value by multiplying the molar based calorific values from table 3 by
p2/R.T2
2: Alternative method
Uses the values from tables 3, 4 and 5 as listed in the standard.

Function outputs Remark EU Fallback


Status 0: Normal
1: Input argument out of range
2: Calculation error
3: Mole fractions do not add up to 1.0 +- 0.0001
Superior calorific value Real superior calorific value on volume basis at the reference conditions of temperature and pressure MJ/m3 0
Density At the reference conditions of temperature and pressure kg/m3 0
Compressibility - 1
Relative density - 0
Molar mass kg/kmol 0
Superior calorific value Real superior calorific value on mass basis at the reference conditions of temperature and pressure MJ/kg 0
Superior calorific value Real superior calorific value on mole basis at the reference conditions of temperature and pressure MJ/kmol 0
Inferior calorific value Real inferior calorific value on volume basis at the reference conditions of temperature and pressure MJ/m3 0
Inferior calorific value Real inferior calorific value on mass basis at the reference conditions of temperature and pressure MJ/kg 0
Inferior calorific value Real superior calorific value on mole basis at the reference conditions of temperature and pressure MJ/kmol 0
Wobbe index MJ/m3 0
Data range With respect to the ISO6976-1995 standard the combination of input values is: -
0: In Range
1: Out of Range

Calculations
Calculations are performed in accordance with the standard.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 125

fxISO6976ex_1995_M
Boundaries
Extended version that takes the first 55 components as
The valid ranges for molar fractions are as follows:
used in the standard plus an additional set of user-
Methane 0.5 <= .. <= 1.0
definable components. Nitrogen 0.0 <= .. <= 0.3
Ethane 0.0 <= .. <= 0.15
ISO standard 6976 edition 1995 defines component properties Carbon dioxide 0.0 <= .. <= 0.15
and calculations to determine the calorific value, density, relative All others 0.0 <= .. <= 0.05
density and Wobbe index for a gas composition at the specified
metering and combustion reference temperatures and 1.01325 Compliance
bar(a). International standard, Natural Gas - Calculation of calorific
Both the definitive and alternative methods of calculating the values, density, relative density and Wobbe index (ISO
calorific value on a mass and volumetric basis are included. 6976:1995/BS7589)

Function inputs Remark EU Default


Name Optional tag name, tag description and tag group
Composition Array of mole fractions of the first 55 components as used in the standard. mol/mol 0
1: Methane
2: Ethane
3: Propane
4: n-Butane
5 2-Methylpropane
6: n-Pentane
7: 2-Methylbutane
8: 2,2-Dimethylpropane
9: n-Hexane
10: 2-Methylpentane
11: 3-Methylpentane
12: 2,2-Dimethylbutane
13: 2,3-Dimethylbutane
14: n-Heptane
15: n-Octane
16: n-Nonane
17: n-Decane
18: Ethylene
19: Propylene
20: 1-Butene
21: cis-2-Butene
22: trans-2-Butene
23: 2-Methylpropene
24: 1-Pentene
25: Propadiene
26: 1,2-Butadiene
27: 1,3-Butadiene
28: Acetylene
29: Cyclopentane
30: Methylcyclopentane
31: Ethylcyclopentane
32: Cyclohexane
33: Methylcyclohexane
34: Ethylcyclohexane
35: Benzene
36: Toluene
37: Ethylbenzene
38: o-Xylene
39: Methanol
40: Methanethiol
41: Hydrogen
42: Water
43: Hydrogen sulfide
44: Ammonia
45: Hydrogen cyanide
46: Carbon monoxide
47: Carbonyl sulfide
48: Carbon disulfide
49: Helium
50: Neon
51: Argon
52: Nitrogen
53: Oxygen
54: Carbon dioxide
IT
126 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Function inputs Remark EU Default


55: Sulfur dioxide
Reference conditions The reference temperature for combustion / metering: 1
1: 15°C / 15°C
2: 0°C / 0°C
3: 15°C / 0°C
4: 25°C / 0°C
5: 20°C / 20°C
6: 25°C / 20°C
Molar mass table 1: Calculate - 1
method Calculates the molar mass from the atomic masses as defined in the note of Table 1 of the standard
2: Table
Uses the values from Table 1 of the standard
Calorific value Refer to paragraph 6.1 and 7.1 of the standard - 1
calculation method 1: Definitive method
Calculates the mass based calorific value from the molar based calorific values from table 3 and from the
calculated molar mass values.
Calculates the volume based calorific value by multiplying the molar based calorific values from table 3 by
p2/R.T2
2: Alternative method
Uses the values from tables 3, 4 and 5 as listed in the standard.
User-defined Array of mole fractions of the additional user-definable components. mol/mol 0
composition Note: The inputs for the additional components are optional inputs.
User-defined molar Array of molar masses of the additional user-definable components. This should be the molar mass kg/kmol 0
mass corresponding to the current ‘Molar mass table method’.
Note: This array should be exactly as long as the user-defined composition array.
User-defined Array of summation factor values of the additional user-definable components. - 0
summation factor Note: The input values have to correspond with the metering conditions of input ‘Reference conditions.
This array should be exactly as long as the user-defined composition array.
User-defined superior Array of Superior Calorific Values of the additional user-definable components. This should be the SCV KJ/mol 0
calorific value (SCV) corresponding to the current reference conditions.
Note: the input values have to correspond with the conditions as defined by input ‘Reference conditions.
This array should be exactly as long as the user-definable composition array.
User-defined inferior Array of Inferior Calorific Values of the additional user-definable components. This should be the ICV KJ/mol 0
calorific value (ICV) corresponding to the current reference conditions.
Note: the input values have to correspond with the conditions as defined by input ‘Reference conditions.
This array should be exactly as long as the user-definable composition array.

Function outputs Remark EU Fallback


Status 0: Normal
1: Input argument out of range
2: Calculation error
3: Mole fractions do not add up to 1.0 +- 0.0001
Superior calorific value Real superior calorific value on volume basis at the reference conditions of MJ/m3 0
temperature and pressure
Density At the reference conditions of temperature and pressure kg/m3 0
Compressibility - 1
Relative density - 0
Molar mass kg/kmol 0
Superior calorific value Real superior calorific value on mass basis at the reference conditions of temperature MJ/kg 0
and pressure
Superior calorific value Real superior calorific value on mole basis at the reference conditions of temperature MJ/kmol 0
and pressure
Inferior calorific value Real inferior calorific value on volume basis at the reference conditions of MJ/m3 0
temperature and pressure
Inferior calorific value Real inferior calorific value on mass basis at the reference conditions of temperature MJ/kg 0
and pressure
Inferior calorific value Real superior calorific value on mole basis at the reference conditions of temperature MJ/kmol 0
and pressure
Wobbe index MJ/m3 0
Data range With respect to the ISO6976-1995 standard the combination of input values is: -
0: In Range
1: Out of Range

Calculations based heating values that are calculated from these input
Calculations are performed in accordance with the standard with properties. Only the Definitive Method for calculating the
the addition of the user-definable components. calorific value is supported in this case.

The properties of the user-definable components are specified


by the corresponding inputs, except for the volume and mass
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 127

fxKeypadFallback
This function provides a generic interface to any input signal,
such as a pressure, temperature, density or flow input. It
provides the option to override the 'live' value with a keypad
value and to fallback to a specific value when the input value is
faulty.
When the input signal fails, the in-use value may fall back to the
last good value, the keypad value or additionally a separate
fallback value. The fallback value allows the user to define a fixed
value (e.g. 0) that is independent from the current keypad value.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Input status Status of he input signal INPSTS
0: Normal
<> 0: Failure
Must be linked to the Status output of the related input function
Input value Value of the input signal INPVAL
Must be linked to the (scaled) value output of the related input function.
Fallback type Determines what to do when input fails FBTYP
1: Use last good value
2: Use fallback value
3: Use keypad value
4: Use measured
Fallback value Used when output 'Input status' becomes 'Faulty' and 'Fallback type' is set to Same as input FBVAL
'Use fallback value'
Keypad mode Forces the usage of the keypad value KPMOD - 0
0: Disabled
1: Enabled
Keypad value Used when output 'Input status' becomes 'Faulty' and 'Fallback type' is set to Same as input KPVAL 0
'Use fallback value'

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Argument out of range FIOOR
2: Keypad FAILLG
3: Fail Last Good FAILKP
4: Fail Keypad FAILFB
5: Fail Fallback KEYPAD
6: Fail Measured FAILMS
Only for status 'Function Input argument out of range' the output vales will
revert to the corresponding fallback value.
In-use value Same as input CUR 0
IT
128 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxKeypadFallbackArray
This function provides a generic interface to an array of input
values, typically a gas composition. It provides the option to
override the 'live' values with keypad values and to fallback to
specific values when the set of input values is faulty.
When the input signals fail, the in-use values may fall back to the
last good values, the keypad values or additionally separate
fallback values. The fallback values allow the user to define a
fixed values (e.g. 0) that is independent from the current keypad
values.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Input status Status of the input signals INPSTS
0: Normal
<> 0: Failure
Input values Array if input values INPVAL
Fallback type Determines what to do when input fails FBTYP
1: Use last good value
2: Use fallback value
3: Use keypad value
4: Use measured
Fallback value Array of fallback values. Same as input FBVAL
Used when output 'Input status' becomes 'Faulty' and 'Fallback type' is set to 'Use
fallback value'
Keypad mode Forces the usage of the keypad value KPMOD - 0
0: Disabled
1: Enabled
Keypad value Array of keypad values. Same as input KPVAL 0
Used when output 'Input status' becomes 'Faulty' and 'Fallback type' is set to 'Use
fallback value'

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Argument out of range FIOOR
2: Keypad FAILLG
3: Fail Last Good FAILKP
4: Fail Keypad FAILFB
5: Fail Fallback KEYPAD
6: Fail Measured FAILMS
Only for status 'Function Input argument out of range' the output vales will revert
to the corresponding fallback value.
In-use value Array of in-use values Same as input CUR 0
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 129

fxLatch
The 'fxLatch' function provides generic latching functionality.

Function inputs Remark EU SW tag Range Default


Name Tag name for the cell that contains the 'fxLatchValue' function.
Latch trigger Trigger to latch the input value
Input value Value to be latched. May be a constant a formula or a reference to
another cell or tag.
Reset trigger Optional
Trigger to resets the latched value to the reset value
Reset value Optional
Reset value (default 0). May be a constant or a formula.

Function outputs Remark EU SW tag Alarm Fallback


Latched value The most recent latched value Same as of Input Name
Note: this value is persistent and will be reloaded upon startup input Input
Value
IT
130 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxLimitAlarm
The function applies alarm limits on any value.

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name
Input value Must be linked to another cell Same as linked cell INPVAL -1e11..1e11 0
Low limit value Same as Input value LLIM -1e11..1e11 -1e11
High limit value Same as Input value HLIM Low limit value .. 1e11 -1e11
Low low limit value Same as Input value LLLIM -1e11.. Low limit value 1e11
High high limit value Same as Input value HHLIM High limit value .. 1e11 1e11
Deadband Same as Input value 0..1e11 0
Enabled Enables or disables the alarm True or false True
Warning behavior Determines the warning behavior when the lo and hi limit 1
are violated:
1: No warnings, just alarms
2: Warn on lo limit
3: Warn on hi limit
4: Warn on lo and hi limit

Function outputs Remark EU SW tag Alarm Fallback


Alarm status 0: Normal - ALMSTS
1: Low alarm LALM
2: High alarm HALM
3: Low low alarm LLALM
4: High high alarm HHALM

Logic
The order of priority in setting the alarm status output is as
follows:
If process value is below the ‘Low low limit value’ then the
status becomes ‘3: Low low alarm’.
Else if process value is above the ‘High high limit value’ then
the status becomes ‘4: High high alarm’.
Else if process value is below the ‘Low limit value’ then the
status becomes ‘1: Low alarm’.
Else if process value is above the ‘High limit value’ then the
status becomes ‘2: High alarm’ and the ‘High high alarm’ is
raised
Else the status becomes ‘0: Normal’.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 131

fxMR113
The relative humidity, compressibility, density, speed of sound, Boundaries
isentropic coefficient and optionally the dynamic viscosity of a The standard defines a valid range for pressure and
gas are calculated from its composition, absolute humidity, temperature. The function will not accept input values outside
temperature and pressure in accordance with the GOST MR113 this range
standard. The CPU-intensive calculation of viscosity can be
optionally enabled if the (flow computer) CPU capacity allows for The valid range is as follows
this. Pressure: 1 .. 150 bar(a)
Temperature: 263..500 K (-10 ..+226 °C)
Compliance
The GSSSD method MR 113-03. Kozlov, Mamonov, Rogovin, NOTE: the standard does not specify a range limitation for the
Rybakov, (10/06/2003). components.

Function inputs and outputs


Function inputs Remark EU Range Default
Name Optional tag name, tag description and tag group
Pressure Flowing pressure bar(a) 1..150 1.01325
Temperature Flowing temperature °C -10..+226 0
Composition Standard composition as defined in section 'Standard gas composition. Unused mol/mol 0..1 0
components must be set to 0.
neo-Pentane mode Determines what to do when component neo-Pentane is larger than zero - 1 . .3 1
1: Add to i-Pentane
2: Add to n-Pentane
3: Neglect
Absolute humidity Absolute humidity at the humidity meter kg/m3 0 .. 1 0
Humidity pressure Pressure value at the humidity meter bar(a) 0..3500 1.01325
Humidity temperature Temperature value at the humidity meter °C -250..+450 0
Reference pressure Reference pressure (base conditions) bar(a) 0..3500 1.01325
Reference temperature Reference temperature (base conditions) °C -250..+450 0
Rounding 0: Disabled, full precision 0 .. 1 0
1: Enabled, results are rounded
Viscosity calculation 0: Disabled 0 .. 1 0
1: Enabled
Note: the viscosity calculation is relative CPU-intensive.

Function outputs Remark EU Fallback


Status 0: Normal
1: Input argument out of range
2: Calculation error
3: No convergence
Base Compressibility At reference conditions - 1
Flow Compressibility At flowing conditions - 1
Base Density At reference conditions kg/m3 0
Flow Density At flowing conditions kg/m3 0
Kappa Isotropic exponent - 0
Molar Mass kg/kmol 0
Speed of Sound At flowing conditions m/s 0
Dew point Water dew point, the temperature at which the water in the gas starts to condensate. K 0
Viscosity The dynamic viscosity of the gas. The calculation is disabled by default. Pa.s 0
Max water fraction Maximum water fraction at flowing conditions %mole 0
Water fraction Actual water fraction at flowing conditions %mole 0
Relative humidity At flow conditions % 0
Range 0: All input values are within the 'Normal Range' 0
1: One or more input values are outside the 'Normal Range

Calculations
The calculations are as documented in the reference.
IT
132 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxName
The 'fxName' function creates a string that defines the prefix,
description and group for any function that generates tags,
except for function fxTag.

Function inputs Remark EU SW tag Range Default


Name Name for the tag
Description Optional description for the tag <Empty>
Group Optional Group for the tag, including optional parent groups. <Empty>
The parent group must proceed the child group and be separated by the '\' character.
E.g. "Meter setup\Meter data" defines that the tag belongs to group 'Meter data', which is a
subgroup of group "Meter setup".

Function outputs Remark EU SW tag Alarm Fallback


String containing the name, description and group for the tag(s) to be created.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 133

fxNX19_1962
The AGA NX-19 standard describes a method to calculate the Compliance
super-compressibility for natural gases and was developed in AGA Par Research Project NX-19 - Manual for the
1962. Determination. of the Supercompressibility Factors for
The 1962 standard describes a standard method for calculating Natural Gas, 1962
the super-compressibility factor that is based on the actual Flow Measurement Engineering Handbook, Third edition,
pressure and temperature, the specific gravity and the mole Richard W. Miller, 1996,
fractions of the carbon dioxide and nitrogen. ISBN-0-07-042366-0
The 1962 standard also specifies 3 alternate methods, which are
based on a full compositional analysis (1st alternate method), Boundaries
the relationship between methane and specific gravity (2nd The following boundaries apply for the input values. Using the
alternate method) and the relationship between the heating standard for conditions that lie outside this range will yield to a
value and the specific gravity higher uncertainty and is not recommended.
The function only performs the standard method as specified by
the standard and none of the alternate methods. Temperature -40..240 °F
Pressure 0..5000 psig
Relative density 0.554 .. 01.000 -
NOTE: the definition of the specific gravity as used in the
Nitrogen 0.00 .. 0.15 mol/mol
standard is that of the ratio of the density of the gas to that of Carbon dioxide 0.00 .. 0.15 mol/mol
air at base conditions, so the real specific gravity or real relative
density.

Function inputs and outputs


Function inputs Remark EU Range Default
Name Optional tag name, tag description and tag group
Pressure Observed pressure psig 0..40000 0
Temperature Observed temperature °F -250..800 60
Specific gravity Ratio of density of gas and density of air at the applicable reference - 0..2 0
conditions of pressure and temperature, i.e. the real specific gravity
(real relative density).at 60°F and 14.73 psia.
Nitrogen Mole fraction of nitrogen mol/mol 0..1 0
Carbon dioxide Mole fraction of carbon dioxide mol/mol 0..1 0

Function outputs Remark EU Fallback


Status 0: Normal
1: Input argument out of range
2: Calculation error
Note: value 1 is also reported when one of the intermediate results is out of limit.
Compressibility factor Compressibility factor at the observed temperature and pressure (Zf) - 1
Base compressibility factor Compressibility factor at 60 °F and 14.7 psia (Zb) - 1
Super-compressibility factor Super-compressibility Fpv. Refer to section Calculations for ist definition. - 1
Range 0: All input values are within the 'Normal Range' - 0
1: One or more input values are outside the 'Normal Range

Calculations The definition of the base compressibility factor when applying


The AGA-NX-19 standard specifies the calculations of the super- the AGA-NX19:1962 method for custody transfer is given in
compressibility Fpv, which is defined as follows: chapter 2 of [Miller:1996].

−2
Zb 0.00132
Fpv = √ Zb = [√1 + ]
Zf T 3.25
Where:
Where T = Tadj/500 with Tadj calculated in accordance with the
Fpv Supercompressibility
AGA NX-19:1962 standard
Zb Compressibility at base conditions of 60 °F and 14.7 psia
Zf Compressibility at flowing conditions, i.e. at the input temperature
and pressure
IT
134 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxNX19_M
The AGA NX-19 standard describes a method to calculate the NOTE: the definition of the specific gravity as used in the
super-compressibility for natural gases and was developed in standard is that of the ratio of the density of the gas to that of
1962. air at base conditions, so the real specific gravity or real relative
density.
The 1962 standard describes a standard method for calculating
the super-compressibility factor that is based on the actual Compliance
pressure and temperature, the specific gravity and the mole AGA Par Research Project NX-19 - Manual for the
fractions of the carbon dioxide and nitrogen. Determination. of the Supercompressibility Factors for
Natural Gas, 1962
The 1962 standard also specifies 3 alternate methods, which are Berechnung von Realgasfaktoren und Kompressibilitätszahlen
based on a full compositional analysis (1st alternate method), für Erdgas, Technische Richtlinie G9 der Physikalisch -
the relationship between methane and specific gravity (2nd Technische Bundesanstalt für meßgeräte für Gas (PTB), TRG 9
alternate method) and the relationship between the heating 8/82
value and the specific gravity
Boundaries
The function only performs the standard method as specified by The following bounds apply for the input values. Using the
the standard and none of the alternate methods. standard for conditions that lie outside this range will yield to a
The function provides the option to perform the PTB G9 higher uncertainty and is not recommended.
correction instead of the 1962 standard method. This consists of
the modified NX-19 method (NX-19-mod) per Herning &
Wolowsky and the additional ‘BR.KORR.3H’ correction for high-
caloric gases (gross heating value >= 39.8 MJ/m3).

Input value AGA-NX-19 (1962) AGA-NX-19-mod AGA-NX-19-mod.BR. KORR.3H EU


Pressure 0 .. 350 0 .. 137.9 0..80 bar(a)
Temperature -40..115.6 -40..115.6 0..30 °C
Relative density 0.554 .. 01.000 0.554..0.75 0.554..0.691 -
Gross heating value Not used 31.8..39.8 39.8..46.2 MJ/m3
Nitrogen 0.00 .. 0.15 0.00 .. 0.15 0.00..0.025 mol/mol
Carbon dioxide 0.00 .. 0.15 0.00 .. 0.15 0.00..0.07 mol/mol

Function inputs and outputs


Function inputs Remark EU Range Default
Name Optional tag name, tag description and tag group
Pressure Observed pressure bar(a) 0..200 1.01325
Temperature Observed temperature °C -100..300 0
Specific gravity Ratio of density of gas and density of air at the applicable reference conditions of pressure - 0..2 0
and temperature, i.e. the real specific gravity (real relative density).
If setting ‘PTB G9 correction’ is disabled the reference conditions are 60°F and 14.73 psia.
Else the specific gravity value shall be at the applicable reference conditions of pressure and
temperature.
Gross heating value At the applicable reference conditions of pressure and temperature MJ/m3 0..100 0
Only required when the ‘PTB G9 correction’ is enabled.
Nitrogen mol/mol 0..1 0
Carbon dioxide mol/mol 0..1 0
PTB G9 correction Determines if the AGA-NX-19-mod / AGA-NX-19-mod.BR.KORR.3H is used instead of the - 1
AGA-NX-19-1962 standard calculation.
0: Disabled
1: Enabled

Function outputs Remark EU Fallback


Status 0: Normal
1: Input argument out of range
2: Calculation error
3: No convergence
Note: value 1 is also reported when one of the intermediate results is out of limit.
Compressibility factor - 1
Range 0: All input values are within the 'Normal Range' - 0
1: One or more input values are outside the 'Normal Range

Calculations
The calculations are as specified in the standards.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 135

fxPeriodFWA
The function calculates a flow-weighted average (FWA) for a
particular period.
The function weights the input value with a flow increment and
updates the average accordingly. The flow increment is provided
by a ‘TotalizerDelta’ or ‘TotalizerRate’ function.
At the end of the period the current average is stored in the
previous value and the current value is reset to 0.

Inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Name used for tag prefix and retentive storage.
Input value Value to be averaged Same as linked
cell
Enabled 0: Disabled EN
<> 0: Enabled
Increment Flow increment with which the input value is weighed. Same as linked
Must refer to the corresponding output from a 'TotalizerRate' or 'TotalizerDelta' cell
function
Negative values will be ignored.
Period type Type of period: TYP
1: Second
2: Minute
3: Hour
4: Day
5: Week
6: Month
7: Quarter
8: Year
Period count Number of periods (e.g. 5 minutes, 8 hours) CNT 1..1e11
Period start Absolute start date and time of the period. This will be used as the reference START <DATETIME>
point to calculate the next period rollover from.
The value may be defined in the past or the future. The next rollover period will be
calculated accordingly (so forwards or backwards in time).

Function outputs Remark EU SW tag Alarm Fallback


Current average Average calculated over the current period. Same as input ‘Input value’ CUR 0
Previous average Average of the previous period. Same as input ‘Input value’ PRV 0
Pre-previous average Average of the pre-previous period (i.e. the period before Same as input ‘Input value’ PPRV 0
the previous period).
IT
136 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxPeriodLatch
The function latches a value at the end of a repeating period of
time.

Inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Name used for tag prefix and retentive storage.
Input value Value to be latched Same as linked cell Not applied
Period type Type of period: TYP
1: Second
2: Minute
3: Hour
4: Day
5: Week
6: Month
7: Quarter
8: Year
Period count Number of periods (e.g. 5 minutes, 8 hours) CNT 1..1e11
Period start Absolute start date and time of the period. This will be used as the reference START <DATETIME>
point to calculate the next period rollover from.
The value may be defined in the past or the future. The next rollover period
will be calculated accordingly (so forwards or backwards in time).

Function outputs Remark EU SW tag Alarm Fallback


Current latch Value that is latched at start of the current period (end of previous Same as input ‘Input value’ CUR 0
period)
Previous latch Value that is latched at the start of the previous period Same as input ‘Input value’ PRV 0
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 137

fxPeriodMax
The function determines a maximum value over a particular
period.

Inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Name used for tag prefix and retentive storage.
Input value Value for which the maximum has to be determined Same as linked cell
Enabled 0: Disabled EN
<> 0: Enabled
Period type Type of period: TYP
1: Second
2: Minute
3: Hour
4: Day
5: Week
6: Month
7: Quarter
8: Year
Period count Number of periods (e.g. 5 minutes, 8 hours) CNT 1..1e11
Period start Absolute start date and time of the period. This will be used as the START <DATETIME>
reference point to calculate the next period rollover from.
The value may be defined in the past or the future. The next rollover period
will be calculated accordingly (so forwards or backwards in time).

Function outputs Remark EU SW tag Alarm Fallback


Current maximum Maximum over the current period. Same as input ‘Input value’ CUR 0
Previous maximum Maximum over the previous period. Same as input ‘Input value’ PRV 0
Pre-previous maximum Maximum over the pre-previous period Same as input ‘Input value’ PPRV 0
(period before the previous period).
IT
138 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxPeriodMin
The function determines a minimum value over a particular
period.

Inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Name used for tag prefix and retentive storage.
Input value Value for which the minimum has to be determined Same as linked cell
Enabled 0: Disabled EN
<> 0: Enabled
Period type Type of period: TYP
1: Second
2: Minute
3: Hour
4: Day
5: Week
6: Month
7: Quarter
8: Year
Period count Number of periods (e.g. 5 minutes, 8 hours) CNT 1..1e11
Period start Absolute start date and time of the period. This will be used as the START <DATETIME>
reference point to calculate the next period rollover from.
The value may be defined in the past or the future. The next rollover period
will be calculated accordingly (so forwards or backwards in time).

Function outputs Remark EU SW tag Alarm Fallback


Current minimum Minimum over the current period. Same as input ‘Input value’ CUR 0
Previous minimum Minimum over the previous period. Same as input ‘Input value’ PRV 0
Pre-previous maximum Minimum over the pre-previous period (i.e. period before Same as input ‘Input value’ PPRV 0
the previous period).
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 139

fxPeriodTotal
The function accumulates a flow increment into a period total. At
the end of the period the current total is stored into the previous
value and the current value is reset to 0.
The flow increment originates from a ‘TotalizerRate’ or
‘TotalizerDelta’ function.

Inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Name used for tag prefix and retentive storage.
Increment Increment value to be added to the period total. Same as linked 0..1e11
Negative values will be ignored, so the period total will not decrease. cell
Enabled 0: Disabled EN
1: Enabled
Period type Type of period: TYP
1: Second
2: Minute
3: Hour
4: Day
5: Week
6: Month
7: Quarter
8: Year
Period count Number of periods (e.g. 5 minutes, 8 hours) CNT 1..1e11
Period start Absolute start date and time of the period. This will be used as the reference START <DATETIME>
point to calculate the next period rollover from.
The value may be defined in the past or the future. The next rollover period will be
calculated accordingly (so forwards or backwards in time).
Rollover value The period total will be reset to 0 when it reaches the rollover value Same as input ROVAL 0..1e15 1e12
Increment
Decimal places Defines the number of decimal places for the current and previous total output DECPLS -1..10 -1
values.
-1 means full precision (no rounding applied)

Function outputs Remark EU SW tag Alarm Fallback


Current total Accumulated total for the current period Same as input ’Increment’ CUR 0
Previous total Accumulated total for the previous period Same as input ’Increment’ PRV 0
Rollover flag Flag indicating a rollover to 0. ROALM
0: Off
1: On
Note: stays 'On' for one calculation cycle only).
Pre-previous total Accumulated total for the pre-previous period Same as input ’Increment’ PPRV 0
(i.e. the period before the previous period
IT
140 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxPeriodTWA
The function calculates a time-weighted average (TWA) for a
particular period. At the end of a period the current average is
stored in the previous value and the current value is reset to 0.
The function weights the input value with the time (in fact the
actual calculation cycle time) and updates the average
accordingly.

Inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Name used for tag prefix and retentive storage.
Input value Value to be averaged Same as linked cell -1e11..1e11
Enabled 0: Disabled EN
1: Enabled
Period type Type of period: TYP
1: Second
2: Minute
3: Hour
4: Day
5: Week
6: Month
7: Quarter
8: Year
Period count Number of periods (e.g. 5 minutes, 8 hours) CNT 1..1e11
Period start Absolute start date and time of the period. This will be used as the START <DATETIME>
reference point to calculate the next period rollover from.
The value may be defined in the past or the future. The next rollover
period will be calculated accordingly (so forwards or backwards in
time).

Function outputs Remark EU SW tag Alarm Fallback


Current average Average calculated over the current Same as input ‘Input value’ CUR 0
period
Previous average Average of the previous period Same as input ‘Input value’ PRV 0

Pre-previous average Average of the pre-previous period (i.e. Same as input ‘Input value’ PPRV 0
the period before the previous period)
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 141

fxPeriodWatch
The function 'remembers' that a condition has been valid during
a period of time.

A typical example is a transmitter that was overridden with a


keypad value.

Inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Name used for tag-prefix and retentive storage.
Condition The condition to be watched
0: Condition is not valid
<>0: Condition is valid
Enabled 0: Disabled EN
1: Enabled
Period type Type of period: TYP
1: Second
2: Minute
3: Hour
4: Day
5: Week
6: Month
7: Quarter
8: Year
Period count Number of periods (e.g. 5 minutes, 8 hours) CNT 1..1e11
Period start Absolute start date and time of the period. This will be used as the reference point to START <DATETIME>
calculate the next period rollover from.
The value may be defined in the past or the future. The next rollover period will be
calculated accordingly (so forwards or backwards in time).

Function outputs Remark EU SW tag Alarm Fallback


Current watch Indicates whether or not the condition has been valid during the current period: CUR 0
0: Not valid
1: Valid
Previous watch Indicates whether or not the condition has been valid during the previous period: PRV 0
0: Not valid
1: Valid
Pre-previous watch Indicates whether or not the condition has been valid during the pre-previous period PPRV 0
(period before the previous period):
0: Not valid
1: Valid
IT
142 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxPID
PID control is a generic method to control a process variable by For systems with a slow responsiveness to disturbances or
means of a feedback control loop and is widely used in the setpoint changes feed forward control may be beneficial.
industry. Besides of the closed PID loop an open feed-forward loop is
A PID controller adjusts its control output by applying a added that reacts immediately to a change in process or
Proportional, Integral and Derivative algorithm based on the setpoint value.
error between the measured process variable and the desired The function provides the option for bumpless transfers
setpoint. between auto and manual mode and vice versa. The actual
The Proportional part of the algorithm determines the reaction process value is copied into the required setpoint value while
to the current error. The Integral part reacts to the recent errors manual mode is enabled (PV tracking). When reverting to auto
accumulated over a sliding time window, while the Derivative mode the process will stay on the current process value. For
part reacts to the change rate of the error. The 3 actions are the same reason the actual output % is copied to the manual
added up by applying individual weigh factors and the sum is output % while Auto mode is enabled.
used to adjust a control device, e.g. the position of a control When the control output reaches its limit (e.g. control valve is
valve. fully opened) there is the risk for wind-up of the integral part,
because the error will continue to be integrated. This results
NOTE: In flow measurement systems typically only PI control is in the integral part to become very large, so the error must
applied, so the derivative action is disabled. have the opposite value for a long time before the control
loop returns to normal. In order to avoid this windup (i.e.
The PID function provides several features for enhanced PID achieve anti-windup) the function compensates the integral
control such as: part when the control output has reached its limit.
To avoid that a change in setpoint value will result in an
In cascade control there are two PID control loops arranged impulse in the control signal the function provides the feature
with one loop controlling the set point of the other loop. to define a maximum for the setpoint clamp rate and the
Within the outer loop the primary physical parameter is control output slew rate. The setpoint clamp rate causes the
controlled, such as fluid level or velocity. The inner loop reads setpoint to change gradually until it has caught up with the
the output of the outer loop as its set point and usually required value. The slew rate directly limits the rate of change
controls a more rapid changing parameter such as flow rate of the control output.
or acceleration.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Process value This represents the actual process value that is being controlled EU
Setpoint value The control loop will try to achieve this input value provided that both the 'Manual mode' EU
and 'Cascade mode' are disabled.
Proportional gain Proportional gain factor -
Integral gain Integral gain factor s
The value 0 disables the integral part of the PID algorithm
Derivative gain Derivative gain factor s
The value 0 disables the derivative part of the PID algorithm
Low scale value Process / setpoint value that corresponds to 0% of the control output EU
High scale value Process / setpoint value that corresponds to 100% of the control output EU
Reverse Selects the direct or reverse action of control 0
0: Forward -> Error = (PV - SP)
1: Reverse -> Error = (SP - PV)
Manual mode 0: Disabled 0
<> 0: Enabled
When this input is enabled the 'Control output %' is set to input 'Manual output %'.
When this input is disabled the PID algorithm is applied and either the 'Setpoint value' or
Cascade value' is used depending on the 'Cascade mode'.
Manual output % The control output % will be set this value when 'Manual mode' is enabled % 0
Upwards SP clamp rate The setpoint will not be allowed to increase faster than this limit EU/s 0
Enter 0 disable this feature
Downwards SP clamp rate The setpoint will not be allowed to decrease faster than this limit EU/s 0
Upwards OP slew rate The control output % will not be allowed to increase faster than this limit %/s 0
Downwards OP slew rate The control output % will not be allowed to decrease faster than this limit %/s 0
Low limit value The control output % will not be allowed to go below this limit % 0
High limit value The control output % will not be allowed to go above this limit % 100
Manual at startup Forces manual mode at restart of flow computer 0
0: Disabled
1: Enabled
Bumpless transfer When this input is enabled bump-less transfers between auto and manual mode and vice 1
versa will be performed.
When enabled and when the mode changes from manual to auto, input 'Setpoint value'
will be set to the scaled value that corresponds with the current control output %.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 143

Function inputs Remark EU SW tag Range Default


When the mode changes from auto to manual, then input 'Manual output %' will be set to
the current output %.
0: Disabled
<> 0: Enabled
Permissive flag When the Permissive flag is not set the output is forced to the 'Idle output %' 1
This input can be used for user-defined logic
0: Disabled
<> 0 : Enabled
Idle output % Value used for control output when the PID permissive flag is not set 0
Cascade mode 0: Disabled 0
<>0 : Enabled
When this input is enabled while Manual mode is disabled, the PID algorithm is applied
using the 'Cascade input %' (after scaling) as the set point value.
Cascade input % The control loop will try to achieve this input value (after scaling) provided that 'Manual % 0
mode' is disabled and 'Cascade mode' is enabled
Must be linked to the output 'Control output" of the primary PID controller.
Tracking mode 0: Disabled 0
<> 0: Enabled
This output is meant for cascade control. If this function acts as the primary (Master) PID
controller in a cascade configuration, this input needs to be connected to output
'Tracking mode' of the secondary (Slave) PID function.

This input tells this function that the secondary (Slave) PID function is not using its
Cascade input, but its Manual output % or Setpoint value instead. This allows the primary
PID function to track the secondary process or setpoint value enabling a bumpless
transfer between modes.
0: Disabled
<> 0 : Enabled
Tracking value This output is meant for cascade control. If this function acts as the primary (Master) PID % 0
controller in a cascade configuration, this input needs to be connected to output
'Tracking value' of the secondary (Slave) PID function.
The value represents the process or setpoint value of the secondary (Slave) PID function
as percentage of scale.
Feed forward Value is directly added to the control output % 0
The advantage of feed forward control is that corrective action is taken for a change in a
disturbance input before it affects the controlled parameter.

Function outputs Remark EU SW tag Alarm Fallback


Control output The actual output value as percentage of scale that shall be used %
for actual control.
Equals the required control output including the slew rate and
min/max limitations.
Setpoint value The actual setpoint in-use (may differ from the required setpoint EU
because of the SP clamp rate)
Tracking mode 0: Disabled
<> 0: Enabled
This output is meant for cascade control. If this function acts as the
secondary (Slave) PID controller in a cascade configuration, this
input needs to be connected to output 'Tracking mode' of the
primary (Master) PID function
This output tells the primary (Master) PID function that the Slave
PID function is not using the Cascade input, but the Manual output
% or Setpoint value instead. This allows the primary PID function
to track the secondary process or setpoint value enabling a
bumpless transfer between modes.
Tracking value This output is meant for cascade control. If this function acts as the %
secondary (Slave) PID controller in a cascade configuration, this
input needs to be connected to output 'Tracking value' of the
primary (Master) PID function
The value depends on the Manual and Cascade mode:
If Manual mode is enabled, this output equals the percentage of
scale of input 'Process value', else this output equals the
percentage of scale of input 'Setpoint value'.
Error Current error
P Current proportional part
I Current integral part
D Current derivative part
v Required control output as percentage of scale (refer to section %
calculations). This output is for information only and shall not be
used for actual control
IT
144 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Logic ICUR = IPRV + Ki * Δt * ( eCUR + (uPRV - vPRV)*(High scale value -


Symbols Low scale value)/100 )
PVCUR process value in current cycle [EU]
PVPREV process value in previous cycle [EU]
SPREQ required setpoint value [EU]
NOTE: the latter part is required to avoid anti-windup.
SPCUR in-use setpoint value in current cycle [EU]
SPPRV in-use setpoint value in previous cycle [EU] Calculate the Derivative part:
eCUR error in current cycle [EU]
D = Kd / Δt * (eCUR - ePRV)
ePRV error in previous cycle [EU]
Δu control output deviation value [%]
vCUR required control output value in current cycle [%] Calculate the required control output:
vPRV required control output value in previous cycle [%] vCUR = [ P + ICUR + D - Low scale value ] / [ High scale vale –
uCUR actual control output value in current cycle [%]
Low scale value ]
uPRV actual control output value in previous cycle [%]
uMIN low limit for control output [%]
uMAX high limit for control output [%] Check if change in control output is within the slew rate
Δt calculation cycle time [s] If vCUR - uPRV > Upwards slew rate * Δt then
KP Proportional gain factor
uCUR = uPRV + ( Upwards slew rate * Δt )
KI Integral gain factor
KD Derivation gain factor Else if Δu < - ( Downwards slew rate * Δt ) then
P Proportional part of current cycle uCUR = uPRV - ( Downwards slew rate * Δt )
ICUR Integral part of current cycle Else
IPRV Integral part of previous cycle
uCUR = vCUR
D Derivative part of current cycle

Control output logic Check if new control output is outside its limits
If uCUR > uMAX then
The logic for the control output depends on the current manual
uCUR = uMAX
and tracking modes.
Else If uCUR < uMIN then
Manual mode = Enabled uCUR = uMIN
Set current output equal to manual input value
vCUR = 'Manual output %' Bumpless transfer logic
If bumpless transfer is enabled, then the following logic is
Manual mode = Disabled AND Tracking mode = Enabled applied.
Set current output equal to tracking input value
vCUR = 'Tracking value' (input) Setpoint tracking
IF Manual mode = Enabled OR Tracking mode = Enabled
Manual mode = Disabled AND Tracking mode = Disabled SPREQ = PVCUR
Determine the current setpoint
If cascade mode enabled then ELSE IF Cascade mode = Enabled
SPCUR = Cascade input value * (High scale value - Low SPREQ = SPCUR
scale value) + Low scale value
Else Manual output tracking
SPCUR = SPREQ
IF Manual mode = Disabled
Check if the current setpoint needs to be gradually ramped up or 'Manual output %' = uCUR
down to the required setpoint:
If (SPCUR - SPPRV) > ( Upwards SP clamp rate * Δt ) then Tracking mode and value
SPCUR = SPPRV + ( Upwards SP clamp rate * Δt ) Outputs 'Tracking mode' and 'Tracking value' are set as follows:
Else if (SPPRV - SPCUR) > ( Downwards SP clamp rate * Δt)
Tracking mode
then
'Tracking mode' = ('Manual mode' = Enabled) OR ('Cascade mode'
SPCUR = SPPRV - ( Downwards SP clamp rate * Δt )
= Disabled)
Calculate the current error:
Tracking value
If Control direction = Forward then
IF 'Manual mode' = Enabled
eCUR = SPCUR – PVCUR
'Tracking value' = (PVCUR * - Low scale value) / (High scale
Else
value - Low scale value) * 100
eCUR = PVCUR – SPCUR

IF 'Manual mode' = Disabled


Calculate the Proportional part:
'Tracking value' = (SPCUR * - Low scale value) / (High scale
P = KP * eCUR
value - Low scale value) * 100

Calculate the Integral part:


IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 145

fxROCAlarm
The function checks if a value does not change its value at a rate
that is higher than a specific limit (‘rate of change’).

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Input value Must be linked to another cell Same as linked cell -1e11..1e11 0
Rate of change limit The unit depends on the 'Deviation type' Absolute: Same as input value 1 / s ROCLIM 0..1e11 0
Relative : % /s
Enabled Enables or disabled the alarm True or false True
Alarm type 1: Alarm 1
2: Warning

Function outputs Remark EU SW tag Alarm Fallback


Rate of change alarm 0: Normal - ROCALM ROCALM
1: Alarm

Logic
A 'Rate of change alarm' is raised when the absolute difference
between two consecutive values divided by the calculation cycle
time in seconds is more than the limit.
IT
146 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxSarasota_C
The function calculates the density from a frequency input signal
provided by a Sarasota densitometer and corrects it for
temperature and pressure effects in US customary units.
Note: The calibration constants also need to be in US customary
units (°F, psi and lbm/ft3).

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Periodic time In microseconds s 0..1e6 0
Equals 1000 divided by the frequency in [Hz]
Line temperature Used when temperature correction is enabled °F -273.15..+500 20
Line pressure Used when pressure correction is enabled psig 0..200 0
Temperature correction 0: Disabled - TEMPCOR 1
1: Enabled
Pressure correction 0: Disabled - PRESCOR 1
1: Enabled
Reference temperature Used when temperature correction is enabled °F REFTEMP 0..100 20
Reference pressure Used when pressure correction is enabled psig REFPRES 0..100 0
d0 Constant from calibration certificate lbm/ft3 D0 0..2000 0
Note: value required in lbm/ft3
0 Constant from calibration certificate s T0 0..1e6 0
K Spool calibration constant from calibration certificate - K 0..3e3 0
Temperature coefficient Constant from calibration certificate s/°F TEMPCOEF -1e6..1e6 0
Pressure coefficient Constant from calibration certificate s/psi PRESCOEF -1e6..1e6 0

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALC
Corrected density Density corrected for temperature and pressure lbm/ft3 CORDENS 0

Calculations
The corrected density ρC is calculated by

  C    C 
C  d0    2  K  
C  C 

 C   0 t COEF t t CAL   p COEF  p  p CAL 


Where:
ρC The corrected density lbm/ft3
d0 Obtained from the calibration certificate lbm/ft3
0 Obtained from the calibration certificate s
K Obtained from the calibration certificate -
pCOEF Obtained from the calibration certificate s/psi
tCOEF Obtained from the calibration certificate s/°F
t Line temperature °F
tCAL Reference temperature °F
p Line temperature psig
pCAL Reference pressure psig
C Time periodic input corrected for temperature and s
pressure
τ Measured time period s
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 147

fxSarasota_M
The function calculates the density from a frequency input signal
provided by a Sarasota densitometer and corrects it for
temperature and pressure effects in metric units.
Note: Calibration constants also need to be in metric units (°C,
bar and kg/m3).

Function inputs Remark EU Range Default


Name Optional tag name, tag description and tag group
Periodic time In microseconds.Equals 1000 divided by the frequency in [Hz] μs 0..1e6 0
Line temperature Used when temperature correction is enabled °C -273.15..+500 20
Line pressure Used when pressure correction is enabled bar(g) 0..200 0
Temperature correction 0: Disabled - 1
1: Enabled
Pressure correction 0: Disabled - 1
1: Enabled
Reference temperature Used when temperature correction is enabled °C 0..100 20
Reference pressure Used when pressure correction is enabled bar(g) 0..100 0
d0 Constant from calibration certificate kg/m3 0..3000 0
0 Constant from calibration certificate s 0..1e6 0
K Spool calibration constant from calibration certificate - 0..3e3 0
Temperature coefficient Constant from calibration certificate s/°C -1e6..1e6 0
Pressure coefficient Constant from calibration certificate. s/bar -1e6..1e6 0
Note: value required in s/bar

Function outputs Remark EU Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
Outputs will be set to fallback values
2: Calculation error CALC
Outputs will be set to fallback values
Corrected density Density corrected for temperature and pressure kg/m3 CORDENS 0

Calculations
The corrected density ρC is calculated by
  C    C 
C  d0    2  K  
C  C 
 C   0 t COEF t t CAL   p COEF  p  p CAL 
Where:
ρC The corrected density kg/m3
d0 Obtained from the calibration certificate kg/m3
0 Obtained from the calibration certificate s
K Obtained from the calibration certificate -
d0 Obtained from the calibration certificate -
pCOEF Obtained from the calibration certificate s/bar
tCOEF Obtained from the calibration certificate s/°C
t Line temperature °C
tCAL Reference temperature °C
p Line temperature bar(g)
pCAL Reference pressure bar(g)
C Time periodic input corrected for temperature and s
pressure
τ The time period in µS s
IT
148 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxSetOnChange
The 'fxSetOnChange function sets a tag or cell to a specific value
whenever another value changes

Function inputs Remark EU SW tag Range Default


Module Number of the Flow-X/M module. -1 .. 8
-1 : local module
1..8 : module 1 through 8
Target The cell or tag that has to be set. This must be a direct reference to a cell.
Value Value to be assigned. May be a constant a formula or a reference to another cell or tag.
Change A change if this value will set the Target to the Value. This must be a direct reference to a cell.

Function outputs Remark EU SW tag Alarm Fallback


Date and time Date and time that the most recent change has occurred

fxSetOnCondition
The 'fxSetOnCondition' function sets a tag or cell to a specific
value whenever a condition is true.
It is a generic function that is especially useful for implementing
logic for controlling output signals (e.g. valve commands) and
state machines (e.g. prove sequences).

Function inputs Remark EU SW tag Range Default


Module Number of the Flow-X/M module. -1 .. 8
-1 : local module
1..8 : module 1 through 8
Target The cell or tag that has to be set. This must be a direct reference to a cell.
Value Value to be assigned. May be a constant a formula or a reference to another cell or tag.
Condition Boolean expression.
When the expression outcome is TRUE (<> 0), then the target is set to the value.

Function outputs Remark EU SW tag Alarm Fallback


Date and time Date and time that the most recent event has occurred

fxSetOnEvent
The 'fxSetOnEvent' function sets a tag to a specific value
whenever an event occurs.
It is a generic function that is especially useful for implementing
logic for controlling output signals (e.g. valve commands) and
state machines (e.g. prove sequences).

Function inputs Remark EU SW tag Range Default


Module Number of the Flow-X/M module. -1 .. 8 -1
-1 : local module
1..8 : module 1 through 8
Target The cell or tag that has to be set. This must be a direct reference to a cell.
Value Value to be assigned. May be a constant a formula or a reference to another cell or tag.
Event Boolean expression.
When the expression outcome changes from FALSE to TRUE (or from 0 to <> 0), then the
target is set to the value.
Condition Optional condition that needs to be valid while the event occurs. TRUE
If the condition is not valid, then teh target will not be set to the value.

Function outputs Remark EU SW tag Alarm Fallback


Date and time Date and time that the most recent event has occurred

fxSetIndexOnChange
The 'fxSetIndexOnChange function sets one tag from an array of
tags to a specific value whenever another value changes.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 149

Function inputs Remark EU SW tag Range Default


Module Number of the Flow-X/M module. -1 .. 8 -1
-1 : local module
1..8 : module 1 through 8
Index The index number of the target tag to be set
Value Value to be assigned. May be a constant a formula or a reference to another cell or tag.
Change A change if this value will set the Target to the Value. This must be a direct reference to a cell.
Target 1 The tag that has to be set when the index number is 1. This must be a direct reference to a cell.
Target 2 The tag that has to be set when the index number is 2. This must be a direct reference to a cell.
etc.

Function outputs Remark EU SW tag Alarm Fallback


Date and time Date and time that the most recent change has occurred

fxSetIndexOnCondition
The 'fxSetIndexOnCondition' function sets one tag from an array
of tags to a specific value whenever a condition is true.
It is a generic function that is especially useful for implementing
logic for controlling output signals (e.g. valve commands) and
state machines (e.g. prove sequences).

Function inputs Remark EU SW tag Range Default


Module Number of the Flow-X/M module. -1 .. 8 -1
-1 : local module
1..8 : module 1 through 8
Index The index number of the target tag to be set
Value Value to be assigned. May be a constant a formula or a reference to another cell or tag.
Condition Boolean expression.
When the expression outcome is TRUE (<> 0), then the target is set to the value.
Target 1 The tag that has to be set when the index number is 1. This must be a direct reference to a
cell.
Target 2 The tag that has to be set when the index number is 2. This must be a direct reference to a
cell.
etc.

Function outputs Remark EU SW tag Alarm Fallback


Date and time Date and time that the most recent event has occurred

fxSetIndexOnEvent
The 'fxSetIndexOnEvent' function sets one tag from an array of
tags to a specific value whenever an event occurs.
It is a generic function that is especially useful for implementing
logic for controlling output signals (e.g. valve commands) and
state machines (e.g. prove sequences).

Function inputs Remark EU SW tag Range Default


Module Number of the Flow-X/M module. -1 .. 8 -1
-1 : local module
1..8 : module 1 through 8
Index The index number of the target tag to be set
Value Value to be assigned. May be a constant a formula or a reference to another cell or tag.
Event Boolean expression.
When the expression outcome changes from FALSE to TRUE (or from 0 to <> 0), then the target
is set to the value.
Condition Condition that needs to be valid while the event occurs.
If the condition is not valid, then the target will not be set to the value.
Target 1 The tag that has to be set when the index number is 1. This must be a direct reference to a cell.
Target 2 The tag that has to be set when the index number is 2. This must be a direct reference to a cell.
etc.

Function outputs Remark EU SW tag Alarm Fallback


Date and time Date and time that the most recent event has occurred
IT
150 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxSGERG_C
This function performs the SGERG calculation in USC units. Compliance
GERG Technical Monograph 5, Standard GERG Virial Equation,
The Standard (or Simplified) GERG TM5 1991 Virial Equation 1991
(SGERG or SGERG-88) has defines a method to calculate the
Compressibility Factor (Z) for Natural Gases. The SGERG Boundaries
calculation is equivalent to the AGA8 Gross Characterisation The standard specifies a maximum uncertainty of the
Method, however .the results are slightly different compressibility factor of 0.1% provided the inputs lie in the
following range.
Instead of the full compositional analysis (as used by the AGA 8 Pressure 0 .. 1740 psi(a)
Detailed Characterization method), the Gross Characterisation Temperature 17 .. 143 °F
Method (SGERG) uses a restricted set of input variables for its Gross heating value 509 .. 1288 Btu/ft3
equation, comprising Relative Density, Superior Calorific Value, Relative density 0.55 .. 0.90 -
Carbon Dioxide and Nitrogen together with pressure and Carbon dioxide 0.00 .. 0.30 mol/mol
temperature.
Nitrogen 0.00 .. 0.50 mol/mol
Hydrogen 0.00 .. 0.10 mol/mol

Function inputs and outputs


Function inputs Remark EU Range Default
Name Optional tag name, tag description and tag group
Pressure Observed pressure psia 0..30000
Temperature Observed temperature °F -250 ..500 0
Relative density At the reference conditions according to input 'Reference conditions' - 0..2 0
Gross heating value At the combustion and reference conditions according to input 'Reference conditions' Btu/ft3 0..2500 0
Nitrogen mol/mol 0..1 0
Carbon dioxide mol/mol 0..1 0
Hydrogen mol/mol 0..1 0
Method Calculation method: - 0
1: All inputs are known
2: Unknown Nitrogen mole fraction
3: Unknown Carbon Dioxide mole fraction
4: Unknown Gross Heating Value
5: Unknown Relative Density
Reference conditions Reference conditions that correspond with the values of inputs 'Relative density' and 'Gross 1
heating value'.
Combustion temp. / metering temp. / pressure
1: 60°F / 60 °F / 14.73 psia
2: 60 °F / 60 °F / 1.01592 bar
Note: the calculations are based on 25°C / 0°C / 1.01325 bar(a). For the other conditions conversion
factors are applied as specified in GERG Technical Monograph 5, Standard GERG Virial Equation,
1991.
Refer to section 'Calculations' for more details

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
Compressibility factor - 1
Molar mass lb/lbmol 0
Range 0: In Normal Range RANGE 0
All components are within the 'Normal Range'
1: In Extended Range
One or more components within the 'Extended Range, but none of the components
outside the Extended rang (outputs values have higher uncertainty)
2: Out of Range
One or more components outside the 'Extended Range' (using the AGA8 calculation is
not recommended in this case) OOR

Calculations the gross heating value (GHV) at 25°C and 1.01325 bar(a)
The calculations are in accordance with the standard. combustion and 0°C and 1.01325 bar(a) metering conditions.

As specified in the standard and depending on the selected Input 'Reference Conditions' Multiply input Multiply input RD
GHV with with
reference conditions (input 'Reference conditions') one of the
60 °F, 60 °F @ 14.73 psia 1.0543/26.85 1.0002
following set of conversions is carried out to obtain the input 60 °F, 60 °F @ 1.01592 bar(a) 1.0543/26.86 1.0002
values of the relative density (RD) at 0°C and 1.01325 bar(a) and
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 151

fxSGERG_M
Description Compliance
This function performs the SGERG calculation in metric units. GERG Technical Monograph 5, Standard GERG Virial Equation,
The Standard (or Simplified) GERG TM5 1991 Virial Equation 1991
(SGERG or SGERG-88) has defines a method to calculate the
Compressibility Factor (Z) for Natural Gases. The SGERG Boundaries
calculation is equivalent to the AGA8 Gross Characterisation The standard specifies a maximum uncertainty of the
Method, however .the results are slightly different compressibility factor of 0.1% provided the inputs lie in the
Instead of the full compositional analysis (as used by the AGA 8 following range.
Detailed Characterization method), the Gross Characterisation Pressure 0 .. 120 bar(a)
Method (SGERG) uses a restricted set of input variables for its Temperature 265..335 K
Gross heating value 19 .. 48 MJ/m3
equation, comprising Relative Density, Superior Calorific Value,
Relative density 0.55 .. 0.90 -
Carbon Dioxide and Nitrogen together with pressure and Carbon dioxide 0.00 .. 0.30 mol/mol
temperature. Nitrogen 0.00 .. 0.50 mol/mol
Hydrogen 0.00 .. 0.10 mol/mol

Function inputs and outputs


Function inputs Remark EU Range Default
Name Optional tag name, tag description and tag group
Pressure Observed pressure bar(a) 0..2000 1.01325
Temperature Observed temperature °C -200..300 0
Relative density At the reference conditions according to input 'Reference conditions' - 0..2 0
Gross heating value At the combustion and reference conditions according to input 'Reference conditions' MJ/m3 0..100 0
Nitrogen mol/mol 0..1 0
Carbon dioxide mol/mol 0..1 0
Hydrogen mol/mol 0..1 0
Method Calculation method: - 0
1: All inputs are known
2: Unknown Nitrogen mole fraction
3: Unknown Carbon Dioxide mole fraction
4: Unknown Gross Heating Value
5: Unknown Relative Density
Reference conditions Reference conditions that correspond with the values of inputs 'Relative density' and 'Gross 1
heating value'.
Combustion temp. / metering temp. / pressure
1: 25°C / 0°C / 1.01325 bar(a)
2: 0°C / 0 °C / 1.01325 bar(a)
3: 15°C / 15°C / 1.01325 bar(a)
Note: the calculations are based on 25°C / 0°C / 1.01325 bar(a). For the other conditions
conversion factors are applied as specified in GERG Technical Monograph 5, Standard GERG
Virial Equation, 1991.
Refer to section 'Calculations' for more details

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
3: No convergence NOCONV
Compressibility factor - 1
Molar mass kg/kmol 0
Range 0: In Normal Range RANGE 0
All components are within the 'Normal Range'
1: In Extended Range
One or more components within the 'Extended Range, but none of the components
outside the Extended rang (outputs values have higher uncertainty)
2: Out of Range
One or more components outside the 'Extended Range' (using the AGA8 calculation is
not recommended in this case)
OOR

Calculations combustion and 0°C and 1.01325 bar(a) metering conditions.


The calculations are in accordance with the standard.
As specified in the standard and depending on the selected Input 'Reference Multiply input GHV Multiply input RD with
Conditions' with
reference conditions (input 'Reference conditions') one of the
25°C / 0 °C / 1.01325 bar(a) Not applicable Not applicable
following set of conversions is carried out to obtain the input 0 °C, 0 °C @ 1.01325 bar(a) 0.9974 Not applicable
values of the relative density (RD) at 0°C and 1.01325 bar(a) and 15 °C, 15°C @ 1.01325 bar(a) 1.0543 1.0002
the gross heating value (GHV) at 25°C and 1.01325 bar(a)
IT
152 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxSolartron_Gas_C
The function calculates the density from a frequency input signal Compliance
provided by a Solartron 7810, 7811 or 7812 gas densitometer and The calculations are in accordance with documents:
corrects it for temperature and velocity of sound effects in US 78125010 'Solartron 7812 Gas Density Transducer Manual',
customary units. 2001.
The function requires that the calibration constants are based 78125040 Rev. C, 'Micro Motion 7812 Gas Density Meter',
on the following units: October 2007.
Temperature °F
Pressure psi
Density g/cc

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Periodic time In microseconds s 0..1e6 0
Equals 1000 divided by the frequency in [Hz]
Line temperature Used when temperature correction is enabled °F -459.67..+1000 20
Temperature correction 0: Disabled - TEMPCOR 1
1: Enabled
VOS correction 0: Disabled - VOSCOR 1
1: Enabled
Reference temperature Used when temperature correction is enabled °F REFTEMP 0..200 60
K0 Constant K0 from calibration certificate - K0 -1e9..1e9
K1 Constant K1 from calibration certificate - K1 -1e9..1e9
K2 Constant K2 from calibration certificate - K2 -1e9..1e9
K18 Constant K18 from calibration certificate - K18 -1e9..1e9
K19 Constant K19 from calibration certificate - K19 -1e9..1e9
K3 Constant K3 from calibration certificate - K3 -1e9..1e9
K4 Constant K4 from calibration certificate - K4 -1e9..1e9
Calibration gas constant Constant Kc from calibration certificate - KC -1e9..1e9
G value method Method of determining value G, which is the ratio of Gas Specific Gravity - GMETHOD 1
and the Ratio of Specific Heats
1: Use input 'G value'
2: Uses ratio of inputs
Uses the ratio of inputs 'Specific Gravity' and 'Ratio of Specific Heats'
G value Value will be used when VOS correction is enabled and the G value method - GVAL
is 'Use input G value'
Specific gravity Value will be used when VOS correction is enabled and the G value method - SG 0..2 0
is 'Use ratio of inputs'
Ratio of specific heats Value will be used when VOS correction is enabled and the G value method - CP_CV 0.01..10 0
is 'Use ratio of inputs'

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
Corrected density Density corrected for temperature and VOS lbm/ft3 CORDENS 0
Density corrected for temperature Density corrected for temperature lbm/ft3 TCORDENS 0
Uncorrected density Uncorrected (indicated density lbm/ft3 UNCDENS 0

Calculations
Density calculations are performed in g/cc, while the function Where:
outputs are in lbm/ft3 ρt The density corrected for temperature g/cc
K18 Obtained from the calibration certificate -
K19 Obtained from the calibration certificate -
The uncorrected density ρi is calculated by t The line temperature °F
 i  K 0  K1    K 2   2 tR The reference temperature °F

Where:
ρi The uncorrected density g/cc The density value corrected for Velocity of Sound is calculated as
K0 Obtained from the calibration certificate - follows:
K1 Obtained from the calibration certificate -
K2 Obtained from the calibration certificate -
τ The time period in µS s  K3  G 
VOS   t 1    Kc  
The temperature corrected density ρt is calculated by
  t  K 4   t  273 
Cc
Kc 
 t   i  1  K18  t  t R   K19  t  t R  t C  273
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 153

Where:
ρVOS The density corrected for temperature and VOS g/cc
K3 Obtained from the calibration certificate -
K4 Obtained from the calibration certificate -
Kc Calibration gas constant from the calibration certificate -
G G value. -
Equals either input 'G value' or the ratio of inputs 'Specific
gravity' and 'Ratio of specific heats', depending on input 'G
value method'
t The line temperature °F
Cc Specific Gravity/Ratio of specific heats of calibration gas -
tc Calibration temperature °F
IT
154 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxSolartron_Gas_M
The function calculates the density from a frequency input signal Compliance
provided by a Solartron 7810, 7811 or 7812 gas densitometer and The calculations are in accordance with documents:
corrects it for temperature and velocity of sound effects in 78125010 'Solartron 7812 Gas Density Transducer Manual',
metric units. 2001.
The function requires that the calibration constants are based 78125040 Rev. C, 'Micro Motion 7812 Gas Density Meter',
on the following units: October 2007.
Temperature °C
Pressure bar
Density kg/m3

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Periodic time In microseconds s 0..1e6 0
Equals 1000 divided by the frequency in [Hz]
Line temperature Used when temperature correction is enabled °C -273..+500 20
Temperature correction 0: Disabled - TEMPCOR 1
1: Enabled
VOS correction 0: Disabled - VOSCOR 1
1: Enabled
Reference temperature Used when temperature correction is enabled °C REFTEMP 0..100 20
K0 Constant K0 from calibration certificate - K0 -1e9..1e9 -1.104252E+2
K1 Constant K1 from calibration certificate - K1 -1e9..1e9 -1.882012E-2
K2 Constant K2 from calibration certificate - K2 -1e9..1e9 4.749797E-4
K18 Constant K18 from calibration certificate - K18 -1e9..1e9 -1.360E-5
K19 Constant K19 from calibration certificate - K19 -1e9..1e9 8.440E-4
K3 Constant K3 from calibration certificate - K3 -1e9..1e9 354
K4 Constant K4 from calibration certificate - K4 -1e9..1e9 57.4
Calibration gas constant Constant Kc from calibration certificate - KC -1e9..1e9 0.00236
G value method Method of determining value G, which is the ratio of Gas Specific Gravity and - GMETHOD 1
the Ratio of Specific Heats
1: Use input 'G value'
2: Uses ratio of inputs
Uses the ratio of inputs 'Specific Gravity' and 'Ratio of Specific Heats'
G value Value will be used when VOS correction is enabled and the G value method is - GVAL 0..100 0
'Use input G value'
Specific gravity Value will be used when VOS correction is enabled and the G value method is - SG 0..2 0
'Use ratio of inputs'
Ratio of specific heats Value will be used when VOS correction is enabled and the G value method is - CP_CV 0..10 0
'Use ratio of inputs'

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
Corrected density Density corrected for temperature and VOS kg/m3 CORDENS 0
Density corrected for temperature Density corrected for temperature kg/m3 TCORDENS 0
Uncorrected density Uncorrected (indicated density kg/m3 UNCDENS 0

Calculations Where:
The uncorrected density ρi is calculated by ρt The density corrected for temperature kg/m3
K18 Obtained from the calibration certificate -
  K 0  K1    K 2  
i
2
K19 Obtained from the calibration certificate -
t The line temperature °C
tR The reference temperature °C
Where:
ρi The uncorrected density kg/m3 The density value corrected for Velocity of Sound is calculated as
K0 Obtained from the calibration certificate -
K1 Obtained from the calibration certificate -
follows:
K2 Obtained from the calibration certificate -
τ The time period in µs s
 K3  G 
VOS   t 1    Kc  
The temperature corrected density ρt is calculated by   t  K 4   t  273 
 t   i  1  K18  t  t R   K19  t  t R  Kc 
Cc
t C  273
Where:
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 155

ρVOS The density corrected for temperature and VOS kg/m3


K3 Obtained from the calibration certificate -
K4 Obtained from the calibration certificate -
Kc Calibration gas constant from the calibration certificate -
G G value. -
Equals either input 'G value' or the ratio of inputs 'Specific
gravity' and 'Ratio of specific heats', depending on input 'G
value method'
t The line temperature °C
Cc Specific Gravity/Ratio of specific heats of calibration gas -
tc Calibration temperature °C
IT
156 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxSolartron_Liquid _C
The function calculates the density from a frequency input signal Compliance
provided by a Solartron 7835, 7845, 7846 or 7847 liquid The calculations are in accordance with documents:
densitometer and corrects it for temperature, pressure and 78355010 'Solartron 7835, 7845, 7846 & 7847 Advanced Liquid
velocity of sound effects using US Customary units. Density Transducer Manual', 2001
The function requires that the calibration constants are based 78355080, Rev. C, 'Micro Motion 7835, 7845, 7846 & 7847
on the following units: Liquid Density Transducer', October 2007

Temperature °F
Pressure psi
Density g/cc

Function inputs and outputs


Function inputs Remark EU Range Default
Name Optional tag name, tag description and tag group
Periodic time In microseconds s 0..1e6 0
Equals 1000 divided by the frequency in [Hz]
Line temperature Used when temperature correction is enabled °F -459.67..+100 0
Line pressure Used when pressure correction is enabled psig 0..3000 0
Temperature correction 0: Disabled - 1
1: Enabled
Pressure correction 0: Disabled - 1
1: Enabled
VOS correction 0: Disabled - 2
1: Based on Kr / Kj Constants
Solartron manual edition 1985
2: Based on VOS value
Solartron manual edition 1996 and later
Reference temperature Used when temperature correction is enabled °F 0..200 60
Reference pressure Used when pressure correction is enabled psig 0..1500 0
K0 Constant from calibration certificate - -1e9..1e9
K1 Constant from calibration certificate - -1e9..1e9
K2 Constant from calibration certificate - -1e9..1e9
K18 Constant from calibration certificate - -1e9..1e9
K19 Constant from calibration certificate - -1e9..1e9
K20A Constant from calibration certificate - -1e9..1e9
K20B Constant from calibration certificate - -1e9..1e9
K21A Constant from calibration certificate - -1e9..1e9
K21B Constant from calibration certificate - -1e9..1e9
Kr Used when VOS method is set to 'Based on Kr / Kj Constants'. -
Constant needs to be obtained from Solartron
Kj Used when VOS method is set to 'Based on Kr / Kj Constants'. lbm/ft3
Constant needs to be obtained from Solartron
Liquid VOS Velocity of sound of liquid ft/s
Used when VOS method is set to ' Based on VOS value'

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
Corrected density Density corrected for temperature, pressure and VOS lbm/ft3 CORDENS 0
Density corrected for temperature lbm/ft3 TCORDENS 0
Density corrected for temperature and lbm/ft3 PTCORDENS 0
pressure
Uncorrected density lbm/ft3 UNCDENS 0

Calculations ρi The indicated density g/cc


K0 Obtained from the calibration certificate -
Density calculations are performed in g/cc and m/s, while K1 Obtained from the calibration certificate -
K2 Obtained from the calibration certificate -
the function inputs and outputs are in lbm/ft3 and ft/s
τ The time period in µS s

The indicated density ρi is calculated by The temperature corrected density ρt is calculated by

 i  K 0  K1    K 2   2
t  i  1  K18  t  tR   K19  t  tR 
Where:
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 157

Where: Else (pt < 0.3 or pt > 1.4) the VOS of sound correction is not
ρt The density corrected for temperature g/cc performed.
K18 Obtained from the calibration certificate -
K19 Obtained from the calibration certificate -
t The line temperature °F Where:
tR The reference temperature °F ρVOS The density corrected for temperature g/cc
Kr Constant obtained from Solartron -
Kj Constant obtained from Solartron g/cc
The pressure and temperature corrected density ρPT is calculated VC Calibration VOS m/s
by VA Liquid VOS m/s

 pt  t  1  K 20   p  pREF   K 21   p  pREF 

K 20  K 20 A  K 20 B   p  pREF 

K 21  K 21A  K 21B   p  pREF 

Where:
ρpt The density corrected for pressure and temperature g/cc
K20A Obtained from the calibration certificate -
K20B Obtained from the calibration certificate -
K21A Obtained from the calibration certificate -
K21B Obtained from the calibration certificate -
p The line pressure psig
pR The reference pressure psig

When 'VOS Correction' is set to 'Based on Kr and Kj Constants'


the following correction for velocity of sound is applied:

VOS   pt  Kr .   pt  K j 3

When 'VOS Correction' is set to 'Based on VOS value', the


following correction for velocity of sound is applied:

 1.4e 6  1 1 
VOS   pt  1    2  2 
 1000   pt  1.4  VC VA 

When 0.3 <= pt <= 1.1:

VC  100  1455   pt 

When 1.1 < pt <= 1.6:

VC  2690  900   pt
IT
158 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxSolartron_Liquid_M
The function calculates the density from a frequency input signal Compliance
provided by a Solartron 7835, 7845, 7846 or 7847 liquid The calculations are in accordance with documents:
densitometer and corrects it for temperature, pressure and 78355010 'Solartron 7835, 7845, 7846 & 7847 Advanced Liquid
velocity of sound effects using metric units. Density Transducer Manual', 2001
The function requires that the calibration constants are based 78355080, Rev. C, 'Micro Motion 7835, 7845, 7846 & 7847
on the following units: Liquid Density Transducer', October 2007
Temperature °C
Pressure bar
Density kg/m3

Function inputs and outputs


Function inputs Remark EU Range Default
Name Optional tag name, tag description and tag group
Periodic time In microseconds s 0..1e6 0
Equals 1000 divided by the frequency in [Hz]
Line temperature Used when temperature correction is enabled °C -273.15..+500 0
Line pressure Used when pressure correction is enabled bar(g) 0..200 0
Temperature correction 0: Disabled - 1
1: Enabled
Pressure correction 0: Disabled - 1
1: Enabled
VOS correction 0: Disabled - 2
1: Based on Kr / Kj Constants
Solartron manual edition 1985
2: Based on VOS value
Solartron manual edition 1996 and later
Reference temperature Used when temperature correction is enabled °C 0..100 20
Reference pressure Used when pressure correction is enabled bar(g) 0..100 0
K0 Constant from calibration certificate - -1e9..1e9 1.7418E2
K1 Constant from calibration certificate - -1e9..1e9 -1.10493e0
K2 Constant from calibration certificate - -1e9..1e9 3.703268e-4
K18 Constant from calibration certificate - -1e9..1e9 -6.415e-4
K19 Constant from calibration certificate - -1e9..1e9 -5.674e-1
K20A Constant from calibration certificate - -1e9..1e9 2.888e-4
K20B Constant from calibration certificate - -1e9..1e9 -5.581e-6
K21A Constant from calibration certificate - -1e9..1e9 -4.467e-1
K21B Constant from calibration certificate - -1e9..1e9 -8.633e-3
Kr Used when VOS method is set to 'Based on Kr / Kj Constants'. - -1..+1 0.0
Constant needs to be obtained from Solartron
Kj Used when VOS method is set to 'Based on Kr / Kj Constants'. kg/m3 0..2000 0.0
Constant needs to be obtained from Solartron
Liquid VOS Velocity of sound of liquid m/s 0..2000 0.0
Used when VOS method is set to ' Based on VOS value'

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
Corrected density Density corrected for temperature, pressure and VOS kg/m3 CORDENS 0
(provided that particular correction is enabled)
Density corrected for temperature kg/m3 TCORDENS 0
Density corrected for temperature kg/m3 PTCORDENS 0
and pressure
Uncorrected density kg/m3 UNCDENS 0

Calculations
The indicated density ρi is calculated by The temperature corrected density ρt is calculated by

 i  K 0  K1    K 2   2
t  i  1  K18  t  tR   K19  t  tR 
Where:
ρi The indicated density kg/m3 Where:
K0 Obtained from the calibration certificate - ρt The density corrected for temperature kg/m3
K1 Obtained from the calibration certificate - K18 Obtained from the calibration certificate -
K2 Obtained from the calibration certificate - K19 Obtained from the calibration certificate -
τ The time period in µS s t The line temperature °C
tR The reference temperature °C
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 159

The pressure and temperature corrected density ρPT is calculated


by:

 pt  t  1  K 20   p  pREF   K 21   p  pREF 

K 20  K 20 A  K 20 B   p  pREF 

K 21  K 21A  K 21B   p  pREF 

Where:
ρpt The density corrected for pressure and temperature kg/m3
K20A Obtained from the calibration certificate -
K20B Obtained from the calibration certificate -
K21A Obtained from the calibration certificate -
K21B Obtained from the calibration certificate -
p The line pressure bar(g)
pR The reference pressure bar(g)

When 'VOS Correction' is set to 'Based on Kr and Kj Constants'


the following correction for velocity of sound is applied:

VOS   pt  Kr .   pt  K j 3

When 'VOS Correction' is set to 'Based on VOS value', the


following correction for velocity of sound is applied:

 1.4e 6  1 1 
VOS   pt  1    2  2 
  pt  1400  VC V A 
When 300 <= pt <= 1100:

VC  100  1.455   pt
When 1100 < pt <= 1600:

VC  2690  0.9   pt

Else (pt < 300 or pt > 1600) the VOS of sound correction is not
performed.

Where:

ρVOS The density corrected for temperature kg/m3


Kr Constant obtained from Solartron -
Kj Constant obtained from Solartron kg/m3
VC Calibration VOS m/s
VA Liquid VOS m/s
IT
160 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxSolartron_SG
The function calculates the specific gravity from a frequency Compliance
input signal provided by a Solartron 3096 or 3098 Specific The calculations are in accordance with documents:
Gravity transducer. 30985020 'Solartron 3098 Gas Specific Gravity Transducer
Manual', 2001
30985020, Rev. B, 'Micro Motion 3098 Gas Specific Gravity
Meter', October 2007

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Periodic time In microseconds s 0..1e6 0
Equals 1000 divided by the frequency in [Hz]
K0 Constant from calibration certificate - K0 -10000..0 -11.952
K2 Constant from calibration certificate - K2 0..1 4.719593e-5

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range FIOOR
2: Calculation error CALCERR
Specific Gravity Ratio of the molecular weight of the gas (mixture) to that of the molecular - SG 0
weight of dry air (i.e. the ideal Specific Gravity).

Calculations If the calibration certificate contains factors Gx, Gy, tx and ty


The specific gravity is calculated by then K2 must be calculated as follows:

Gx  Gy
SG  K 0  K 2   2 K2 
t X2  t Y2
Where:
SG Specific gravity - Gx Specific gravity of calibration gas x -
 Periodic time s Gy Specific gravity of calibration gas y -
K0 Obtained from the calibration certificate - x Periodic time of calibration gas x s
K2 Obtained from the calibration certificate - y Periodic time of calibration gas y s
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 161

fxStatusAlarm
The ‘fxStatusAlarm’ alarm function generates an alarm that can
be triggered by a boolean condition.

Function inputs Remark EU SW tag Range Default


Name Name for the tag
Condition A boolean indicating whether the alarm should be triggered
Enable Enables or disables the alarm True or false True
Alarm type 1: Alarm 1
2: Warning

fxTag
The 'fxTag' function creates a tag for the cell that contains the
'fxTag' function.

Function inputs Remark EU SW tag Range Default


Name Name for the tag
Description Description for the tag
Value May contain a value or a formula.
In case of a formula or a reference to a cell or another tag, the tag becomes read-only.
On the other hand when it is a value the tag is writable and the specified value is considered at
the initial value.
Unit Defines an engineering unit, enumeration date/time, or a special data type, e.g. 'xt_bool',
'xu_kg_s' or 'xe_period').
Write level Applies for writeable tags only.
Security access level that is required to write a new value to the tag. Only applies when input
'Value' contains a value and not a formula.
When not defined (i.e. function argument is left empty) the tag is only internally writable by a
spreadsheet function but not externally writable through the display or communications
Retentive Applies for writable tags only
Defines whether or not the value needs to be 'remembered' (retentive).
When not defined (i.e. function argument is left empty) the tag is retentive provided that the
tag is writable and AutoReset is not enabled
AutoReset Applies for writeable tags only.
Automatically resets the tag to its initial value after it has been written to.
Minimum Minimum value that is accepted when the tag is externally writable.
May be left empty, in which case no minimum check is applied
Maximum Maximum value that is accepted when the tag is externally writable
May be left empty, in which case no maximum check is applied

Function outputs Remark EU SW tag Alarm Fallback


Value Depends on setting 'Mode' Input Unit Input Name
Mode = 'This Cell'
Cell shows the value or the result of the formula that is defined for input
'Value'
Mode = 'Referred Cell'
Cell returns TRUE when the 'fxTag' function evaluates successfully or FALSE
otherwise
IT
162 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxTimer
The 'fxTimer' function provides generic timer functionality.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Start Trigger to start the timer. START
Sets output Running to 1 and starts accumulation of the actual waited time, provided
that the Enable condition is true (<> 0)
If the timer is already running, then it will be restarted, i.e. the Wait Time will be set to 0
and Elapsed status will be reset to False (in case it was True)
Reset Trigger to resets the timer. RST
Sets outputs Elapsed, Running and Wait time to 0
Limit Time-out period for the timer. sec LIM
When the actual wait time is larger than the limit output Elapsed is set to 1.
The limit value is expressed in seconds and may contain a fractional part
The actual wait time however will be a multifold of the flow computer cycle time.
When the limit value does not match an exact number of cycles, then the actual limit
value will be rounded upwards to match the 'next' number of cycles. E.g. when the flow
computer cycle time is 250 ms and the Limit is set to 3.15 sec, the actual limit value
being used will be 3.25 sec.
Enable Condition that controls the accumulation of actual waited time. EN
0: Disabled
1: Enabled
When disabled the actual wait time will be frozen until the timer is enabled again.

Function outputs Remark EU SW tag Alarm Fallback


Elapsed Flag that indicates that timer has timed out, i.e. the actual wait time is larger than the limit ELAP
Running Flag that indicates that the timer is running, i.e. has been started and not been reset yet, RUN
irrespective of the Enable condition
Wait time Time accumulated since the latest start and while being enabled. When this time reached sec TIM
the limit, the Elapsed output is set to 1. Time will remain accumulated even when the timer
has elapsed.
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 163

fxTotalizerDelta
The function accumulates a flow increment into a cumulative NOTE: As opposed to the flow increment input value, the flow
(eternal) total. increment output value is set to 0 when the totalization is
Besides of the cumulative total the function also outputs the disabled and has the proper units and is therefore better suited
flow increment that represents the increase in flow quantity in as input for other functions.
the last calculation cycle. This increment value serves as an input
for related batch and period flow-weighted averaging and
totalization functions.

Inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group and retentive storage.
Flow increment Actual flow increment to be accumulated. Defined by 0..1e11
Negative values will be ignored, so the cumulative total will not decrease. 'Input unit'
Enabled Dictates whether the flow accumulation is enabled or not. When disabled the EN
cumulative total will not be updated and the increment will be set to 0.
0: Disabled
1: Enabled
Input unit Unit of input 'Flow increment'.
Output unit Unit to be used for total and increment.
Refer to the next section 'Unit conversion' for more information.
Changing the unit will only be possible when the cumulative total value
equals 0.
Rollover value The cumulative total will be reset to 0 when it reaches the rollover value Defined by ROVAL 0..1e15 1e12
'Output unit'
Decimal places Defines the number of decimal places for the total and increment output DECPLS -1..10 -1
values.
-1 means full precision (no rounding applied)
Reset This should be used with great care! 0
Command to reset the cumulative total to 0
0: No reset
1: Reset

Function outputs Remark EU SW tag Alarm Fallback


Cumulative total Total quantity accumulated so far since the last rollover or reset Defined by 'Input unit' CUM
Increment Increment in last calculation cycle Defined by 'Input unit' INCR
Rollover flag Flag indicating a rollover to 0. ROALM
0: Off
1: On
Note: stays 'On' for one cycle only.
Reset flag Flag indicating a reset to 0. RESET
0: Off
1: On
Note: stays 'On' for one cycle only
Recoverable reload error Flag that indicates that at startup only 2 of the 3 copies were equal RTOTERR
and that that value is used as the initial total.
0: Off
1: On
Note: stays 'On' for one cycle only
Fatal reload error Flag that indicates that at startup all 3 copies were different and the FTOTERR
total was reset to 0
0: Off
1: On
Note: stays 'On' for one cycle only

Unit conversion The flow increment is converted from 'sm3' to 'MMscf' before
The function will automatically apply the required conversion the cumulative total and increment output values are
based on the unit of the flow increment input value (Input unit) updated.
and the selected 'Output unit' for the flow quantity.
E.g. when flow rate input is in 'scf' the output unit is 'MMscf' then Similar conversions are applied for flow increments that are
the following conversions are applied: expressed in mass, volume, normal volume and energy units.

The flow increment input value is converted to the


corresponding base unit, which is 'sm3' for a 'Volume' unit
IT
164 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxTotalizerRate
The function accumulates a flow rate into a cumulative (eternal) the last calculation cycle. This increment value serves as an input
total. for related batch and period flow-weighted averaging and
Besides of the cumulative total the function also outputs the totalization functions.
flow increment that represents the increase in flow quantity in

Inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group and
retentive storage.
Flow rate Actual flow rate to be accumulated. Defined by 'Input 0..1e11
Negative values will be ignored, so the cumulative total will unit'
not decrease.
Enabled Dictates whether the flow accumulation is enabled or not. EN
When disabled the cumulative total will not be updated and
the increment will be set to 0.
0: Disabled
1: Enabled
Input unit Unit of input 'Flow rate.
Output unit Unit to be used for total and increment.
Refer to the next section 'Unit conversion' for more
information.
Changing the unit will only be possible when the cumulative
total value equals 0.
Rollover value The cumulative total will be reset to 0 when it reaches the Defined by 'Output ROVAL 0..1e15 1e12
rollover value unit'
Decimal places Defines the number of decimal places for the total and DECPLS -1..10 -1
increment output values.
-1 means full precision (no rounding applied)
Reset This should be used with great care! 0
Command to reset the cumulative total to 0
0: No reset
1: Reset

Function outputs Remark EU SW tag Alarm Default


Cumulative total Total quantity accumulated so far since the last rollover or reset Defined by Input unit' CUM
Increment Increment in last calculation cycle Defined by 'Input unit' INCR
Rollover flag Flag indicating a rollover to 0. ROALM
0: Off
1: On
Note: stays 'On' for one cycle only.
Reset flag Flag indicating a reset to 0. RESET
0: Off
1: On
Note: stays 'On' for one cycle only
Reload warning Flag that indicates that at startup only 2 of the 3 copies were equal RLWARN
and that that value is used as the initial total.
0: Off
1: On
Note: stays 'On' for one cycle only
Reload error Flag that indicates that at startup all 3 copies were different and the RLERR
total was reset to 0
0: Off
1: On
Note: stays 'On' for one cycle only

Unit conversion resulting in a value expressed in 'kg' (i.e. the base unit for
The function will automatically apply the required conversion 'Mass').
based on the unit of the flow rate input value (Input unit) and the The flow increment is converted from 'kg' to 'tonne' before
selected 'Output unit' for the flow quantity. the cumulative total and increment output values are
E.g. when flow rate input is in 'kg/hr' the selected unit is 'tonne' updated.
then the following conversions are applied:
Similar conversions are applied for flow rates that are expressed
The flow rate value is converted to the corresponding base in volume, standard volume, normal volume and energy units.
unit, which is 'kg/s' for a 'Mass per Time' unit
The flow increment over the last calculation cycle is calculated
from the 'kg/s' value and the actual calculation cycle time,
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 165

fxUGC_C
The function calculates the density from a frequency input signal
provided by a UGC densitometer and corrects it for temperature
and pressure effects in US customary units.

NOTE: Calibration constants also need to be in US customary


units.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Periodic time In microseconds s 0..1e6
Equals 1000 divided by the frequency in [Hz]
Line temperature Used when temperature correction is enabled °F -459.67..+1000
Line pressure Used when pressure correction is enabled psig 0..3000
Temperature correction 0: Disabled - TEMPCOR 1
1: Enabled
Pressure correction 0: Disabled - PRESCOR 1
1: Enabled
Reference temperature Used when temperature correction is enabled °F REFTEMP 0..200 60
Reference pressure Used when pressure correction is enabled psig REFPRES 0..1500 0
K0 Constant K0 from calibration certificate - K0 -1e9..1e9
K1 Constant K1 from calibration certificate - K1 -1e9..1e9
K2 Constant K2 from calibration certificate - K2 -1e9..1e9
KT1 Constant KT1 from calibration certificate KT1 -1e9..1e9
KT2 Constant KT2 from calibration certificate KT2 -1e9..1e9
KT3 Constant KT3 from calibration certificate KT3 -1e9..1e9
KP1 Constant KP1 from calibration certificate KP1 -1e9..1e9
KP2 Constant KP2 from calibration certificate KP2 -1e9..1e9
KP3 Constant KP3 from calibration certificate KP3 -1e9..1e9

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal (No error condition) STS
1: Input argument out of range FIOOR
2: Calculation error CALC
Corrected density Density corrected for temperature and pressure lbm/ft3 CORDENS 0
Uncorrected density Uncorrected (indicated) density lbm/ft3 UNCDENS 0

Calculations
The uncorrected density ρi is calculated by

  K 0  K1    K 2  
i
2

Where:
ρi The uncorrected density lbm/ft3
K0 Obtained from the calibration certificate -
K1 Obtained from the calibration certificate -
K2 Obtained from the calibration certificate -
τ The time period in µS s

The temperature and pressure corrected density ρt is calculated


by:

   
t  i  K P1  K P 2  i  K P3  i 2   p  pR   KT 1  KT 2  i  KT 3  i 2  t  t R 

Where:
ρt The density corrected for temperature and pressure lbm/ft3
KP1 Obtained from the calibration certificate -
KP2 Obtained from the calibration certificate -
KP3 Obtained from the calibration certificate -
KT1 Obtained from the calibration certificate -
KT2 Obtained from the calibration certificate -
KT3 Obtained from the calibration certificate -
t The line temperature °F
tR The reference temperature °F
p The line pressure psig
pR The reference pressure psig
IT
166 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxUGC_M
The function calculates the density from a frequency input signal
provided by a UGC densitometer and corrects it for temperature
and pressure effects in metric units. Calibration constants also
need to be in metric units.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Periodic time In microseconds s 0..1e6
Equals 1000 divided by the frequency in [Hz]
Line temperature Used when temperature correction is enabled °C -273.15..+500
Line pressure Used when pressure correction is enabled bar(g) 0..200
Temperature correction 0: Disabled - TEMPCOR 1
1: Enabled
Pressure correction 0: Disabled - PRESCOR 1
1: Enabled
Reference temperature Used when temperature correction is enabled °C REFTEMP 0..100 20
Reference pressure Used when pressure correction is enabled bar(g) REFPRES 0..100 0
K0 Constant K0 from calibration certificate - K0 -1e9..1e9
K1 Constant K1 from calibration certificate - K1 -1e9..1e9
K2 Constant K2 from calibration certificate - K2 -1e9..1e9
KT1 Constant KT1 from calibration certificate KT1 -1e9..1e9
KT2 Constant KT2 from calibration certificate KT2 -1e9..1e9
KT3 Constant KT3 from calibration certificate KT3 -1e9..1e9
KP1 Constant KP1 from calibration certificate KP1 -1e9..1e9
KP2 Constant KP2 from calibration certificate KP2 -1e9..1e9
KP3 Constant KP3 from calibration certificate KP3 -1e9..1e9

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal (No error condition) STS
1: Input argument out of range FIOOR
2: Calculation error CALC
Corrected density Density corrected for temperature and pressure kg/m3 CORDENS 0
Uncorrected density Uncorrected (indicated) density kg/m3 UNCDENS 0

Calculations
The uncorrected density ρi is calculated by

  K 0  K1    K 2  
i
2

Where:
ρi The uncorrected density kg/m3
K0 Obtained from the calibration certificate -
K1 Obtained from the calibration certificate -
K2 Obtained from the calibration certificate -
τ The time period in µS s

The temperature and pressure corrected density ρt is calculated


by:

   
t  i  K P1  K P 2  i  K P3  i 2   p  pR   KT 1  KT 2  i  KT 3  i 2  t  t R 

Where:
ρt The density corrected for temperature and pressure kg/m3
KP1 Obtained from the calibration certificate -
KP2 Obtained from the calibration certificate -
KP3 Obtained from the calibration certificate -
KT1 Obtained from the calibration certificate -
KT2 Obtained from the calibration certificate -
KT3 Obtained from the calibration certificate -
t The line temperature °C
tR The reference temperature °C
p The line pressure bar(g)
pR The reference pressure bar(g)
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 167

fxWatchUpdate
This function raises a flag whenever a value has been updated in
the latest calculation cycle.

It is a generic function that can be used for any purpose, e.g. to


report the number of times that a gas chromatograph has sent
updates of the gas composition.

Use function fxTotalizerDelta to accumulate the number of times


the flag has been raised.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group <Empty>
Value The value that needs to be checked for updates VAL 0
Neglect zeros Controls if the value 0 has to be considered as an update or not. NGLZERO 0
0: Disabled
The value 0 is also an update
1: Enabled
The value 0 is not considered as an update

Function outputs Remark EU SW tag Alarm Fallback


UpdateFlag Update flag UPDATEFLAG 0
0: Value has not changed
1: Value has not changed
Flag is automatically cleared (set to 0) at next cycle
IT
168 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxVCone_C
This function calculates the mass flow rate for a measured Compliance
differential pressure over a McCrometer V-Cone meter in U.S. McCrometer: Flow Calculations for the V-Cone Flow meter
customary units. Literature part #24509-54 Rev 3.1/02-05 2005
The calculation, as specified by the meter supplier, is essentially
a modified ISO 5167 flow rate calculation. As opposed to ISO-
5167 the discharge coefficient is a function input. Because the
discharge coefficient is a function of Reynolds number an
optional calibration correction needs to be applied outside this
function.

Function inputs and outputs


Function inputs Remark EU Range Default
Name Optional tag name, tag description and tag group
Differential Pressure Differential pressure over the V-Cone device measured at the up- and inH2O @ 60°F 0..100 0
downstream pressure taps
Pressure Upstream pressure value of the fluid at metering conditions psia 0..30000 0
Temperature Down- or upstream temperature of the fluid at metering conditions °F -400 ..2000 0
Density Down or upstream density of the fluid at metering conditions lbm/ft3 0..200 0
Dynamic Viscosity Dynamic viscosity of the fluid lbm/ft.s 0..10 6.9e-6
Isentropic Exponent Also referred to as  (kappa). For an ideal gas this coefficient is equal to the - 0..10 1.3
ratio of the specific heat capacity at constant pressure to the specific heat at
constant volume. According to the ISO standard this ratio may be used, when
the real value is unknown.
Pipe Diameter Internal diameter of the pipe at reference temperature inches 0..100 0
Pipe Expansion factor The thermal expansion coefficient of the pipe material 1/°F 0..1e-4 6.2e-6
Pipe Reference temperature The reference temperature that corresponds to the 'Pipe diameter' input °F -400..2000 68
value
Cone Diameter Cone diameter at reference temperature inches 0.. 'Pipe Diameter' 0
Cone Expansion factor The thermal expansion coefficient of the Cone material 1/°F 0..1e-4 9.25e-6
Cone Reference Temperature The reference temperature that corresponds to the 'Cone diameter' input °F -400 ..2000 68
value
Configuration The type of McCrometer V-Cone meter. - 1
This setting is used to select the appropriate equation for determination of
the gas expansion factor as specified by McCrometer
1: Standard V-Cone
2: Wafer-Cone
Note of input 'Fluid' is set to 'Liquid', then this input is not used (because the
expansion factor is set to 1)
Pressure Location 1: Upstream - 1
Input 'Pressure' represents the pressure at the upstream pressure tapping
(p1).
Since the absolute pressure is usually measured at the upstream tapping this
is the most common setting.
2: Downstream
Input 'Pressure' represents the pressure at the downstream tapping (p2).
Temperature Location 1: Upstream - 2
Input 'Temperature' represents the upstream temperature (t1).
2: Downstream
Input 'Temperature represents the temperature at the downstream tapping
(t2).
3: Recovered
Input 'Temperature' represents the downstream temperature at a location
Where the pressure has fully recovered (t3).
Since temperature measurement is usually downstream of the flow device
this is the most common setting.
Temperature Correction This parameter specifies if and how the temperature should be corrected 1
from downstream to upstream conditions (or vice versa)
1: (1-)/
Isentropic expansion using (1-)/ as the temperature referral exponent
2: Constant
Isentropic expansion using input 'Temperature Exponent' as the temperature
referral exponent [-]
3: Joule Thomson
Isenthalpic expansion using input 'Temperature Exponent' as the Joule
Thomson coefficient [°F/psi].
This method is prescribed by ISO5167-1:2003.
Temperature Exponent Refer to input Temperature Correction - 0
Unit depends on input Temperature Correction value -°F/psi
Density Location This parameter specifies if and how the density should be corrected from - 1
downstream to upstream conditions (or vice versa).
1: Upstream
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 169

Function inputs Remark EU Range Default


Input 'Density' represents the density at the upstream pressure tapping (1).
2: Downstream
Input 'Density' represents the density at the downstream tapping (2).
3: Recovered
Input 'Density' represents the density downstream at a location Where the
pressure has fully recovered (3).
Density Exponent. This factor is used when density correction is enabled. The formula 1/ will be - 0
used when the input value is set to 0, else the input value will be used.
For more details refer to section 'Density correction'.
Fluid The type of fluid being measured - 1
1: Gas
2: Liquid
Discharge coefficient The McCrometer reference document states that the discharge coefficient is - 0..2 0.85
a function of Reynolds number. A calibration correction needs to be
implemented through an additional function and input 'Discharge coefficient'
needs to be linked to the corresponding output of this additional function.

Function outputs Remark EU Fallback


Status 0: Normal (No error condition)
1: Input argument out of range
2: No convergence
Mass flow rate The calculated mass flow rate klbm/hr 0
Beta ratio Cone to pipe diameter ratio at upstream temperature - Input Cone diameter /
Input Pipe diameter
Cone diameter At the upstream temperature inches Input Cone diameter
Pipe diameter At the upstream temperature inches Input Pipe diameter
Upstream pressure Pressure at upstream tapping (p1) psia Input Pressure
Pressure at downstream tapping Pressure at downstream tapping (p2) psia Input Pressure
Recovered downstream pressure Fully recovered downstream pressure (p3) psia Input Pressure
Upstream temperature Temperature at upstream tapping (t1) °F Input Temperature
Temperature at downstream tapping Temperature at downstream tapping (t2) °F Input Temperature
Downstream Temperature 'Fully recovered' downstream temperature (t3) °F Input Temperature
Upstream density Density at upstream tapping (1) lbm/ft3 Input Density
Density at downstream tapping Pressure at downstream tapping (2) lbm/ft3 Input Density
Downstream density 'Fully recovered' downstream density (3) lbm/ft3 Input Density
Reynolds number - 0
Discharge coefficient Same as input value -
Expansion Factor - 0
Velocity Pipeline velocity Ft/s 0
Expansion Factor Range The McCrometer reference document states that for gas applications - 0
the expansion factor should not get below 0.84
0: Expansion factor is in valid range
1: Expansion factor is out of valid range

Calculations
The flow calculation is as specified in the McCrometer reference
document.
The downstream to upstream correction (and vice versa) for
pressure, temperature and density are as specified for function
'ASME MFC-3M Orifice'.
IT
170 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

fxVCone_M
This function calculates the mass flow rate for a measured Compliance
differential pressure over a McCrometer V-Cone meter in metric McCrometer: Flow Calculations for the V-Cone Flow meter
units. Literature part #24509-54 Rev 3.1/02-05 2005
The calculation, as specified by the meter supplier, is essentially
a modified ISO 5167 flow rate calculation. As opposed to ISO-
5167 the discharge coefficient is a function input. Because the
discharge coefficient is a function of Reynolds number an
optional calibration correction needs to be applied outside this
function.

Function inputs and outputs


Function inputs Remark EU Range Default
Name Optional tag name, tag description and tag group
Differential Pressure Differential pressure over the V-Cone device measured at the up- and downstream mbar 0..2000 0
pressure taps
Pressure Upstream pressure value of the fluid at metering conditions bar(a) 0..2000 0
Temperature Down- or upstream temperature of the fluid at metering conditions °C -240..1000 0
Density Down or upstream density of the fluid at metering conditions kg/m3 0..2000 0
Dynamic Viscosity Dynamic viscosity of the fluid Pa.s 0..1 0.01115
Isentropic Exponent Also referred to as  (kappa). For an ideal gas this coefficient is equal to the ratio of the - 0..2 0
specific heat capacity at constant pressure to the specific heat at constant volume.
According to the ISO standard this ratio may be used, when the real value is unknown.
Pipe Diameter Internal diameter of the pipe at reference temperature mm 0..2000 0
Pipe Expansion factor The thermal expansion coefficient of the pipe material 1/°C 0..1 0.0000108
Pipe Reference temperature The reference temperature that corresponds to the 'Pipe diameter' input value °C -240..1000 20
Cone Diameter Cone diameter at reference temperature mm 0 0
Cone Expansion factor The thermal expansion coefficient of the Cone material 1/°C 0.0000163
Cone Reference Temperature The reference temperature that corresponds to the 'Cone diameter' input value °C -240 .. 1000 20
Configuration The type of McCrometer V-Cone meter. - 1
This setting is used to select the appropriate equation for determination of the gas
expansion factor as specified by McCrometer
1: Standard V-Cone
2: Wafer-Cone
Note of input 'Fluid' is set to 'Liquid', then this input is not used (because the expansion
factor is set to 1)
Pressure Location 1: Upstream - 1
Input 'Pressure' represents the pressure at the upstream pressure tapping (p1).
Since the absolute pressure is usually measured at the upstream tapping this is the
most common setting.
2: Downstream
Input 'Pressure' represents the pressure at the downstream tapping (p2).
Temperature Location 1: Upstream - 2
Input 'Temperature' represents the upstream temperature (t1).
2: Downstream
Input 'Temperature represents the temperature at the downstream tapping (t 2).
3: Recovered
Input 'Temperature' represents the downstream temperature at a location Where the
pressure has fully recovered (t3).
Since temperature measurement is usually downstream of the flow device this is the
most common setting.
Temperature Correction This parameter specifies if and how the temperature should be corrected from 1
downstream to upstream conditions (or vice versa)
1: (1-)/
Isentropic expansion using (1-)/ as the temperature referral exponent
2: Constant
Isentropic expansion using input 'Temperature Exponent' as the temperature referral
exponent [-]
3: Joule Thomson
Isenthalpic expansion using input 'Temperature Exponent' as the Joule Thomson
coefficient [°C/bar].
This method is prescribed by ISO5167-1:2003.
Temperature Exponent Refer to input Temperature Correction - 0
Unit depends on input Temperature Correction value -°C/bar
Density Location This parameter specifies if and how the density should be corrected from downstream - 1
to upstream conditions (or vice versa).
1: Upstream
Input 'Density' represents the density at the upstream pressure tapping (1).
2: Downstream
Input 'Density' represents the density at the downstream tapping (2).
3: Recovered
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 171

Function inputs Remark EU Range Default


Input 'Density' represents the density downstream at a location Where the pressure has
fully recovered (3).
Density Exponent. This factor is used when density correction is enabled. The formula 1/ will be used - 0
when the input value is set to 0, else the input value will be used.
For more details refer to section 'Density correction'.
Fluid The type of fluid being measured - 1
1: Gas
2: Liquid
Discharge coefficient The discharge coefficient of the meter as specified by the manufacturer. - 0..2 0.85
The McCrometer reference document states that the discharge coefficient is a function
of Reynolds number. It is advised that the meter is calibrated across the range of
Reynold numbers for which the meter is used.
The resulting correction curve can be implemented through function
fxInterolationCurve. Input 'Discharge coefficient' needs to be linked to the
corresponding output of this additional function.

Function outputs Remark EU Fallback


Status 0: Normal (No error condition)
1: Input argument out of range
2: No convergence
Mass flow rate The calculated mass flow rate tonne/h 0
Beta ratio Cone to pipe diameter ratio at upstream temperature - Input Cone diameter /
Input Pipe diameter
Cone diameter At the upstream temperature mm Input Cone diameter
Pipe diameter At the upstream temperature mm Input Pipe diameter
Upstream pressure Pressure at upstream tapping (p1) bar(a) Input Pressure
Pressure at downstream tapping Pressure at downstream tapping (p2) bar(a) Input Pressure
Recovered downstream pressure Fully recovered downstream pressure (p3) bar(a) Input Pressure
Upstream temperature Temperature at upstream tapping (t1) °C Input Temperature
Temperature at downstream tapping Temperature at downstream tapping (t2) °C Input Temperature
Downstream Temperature 'Fully recovered' downstream temperature (t3) °C Input Temperature
Upstream density Density at upstream tapping (1) kg/m3 Input Density
Density at downstream tapping Pressure at downstream tapping (2) kg/m3 Input Density
Downstream density 'Fully recovered' downstream density (3) kg/m3 Input Density
Reynolds number - 0
Discharge coefficient Same as input value -
Expansion Factor - 0
Velocity Pipeline velocity m/s 0
Expansion Factor Range The McCrometer reference document states that for gas applications the - 0
expansion factor should not get below 0.84
0: Expansion factor is in valid range
1: Expansion factor is out of valid range

Calculations
The flow calculation is as specified in the McCrometer reference
document.
The downstream to upstream correction (and vice versa) for
pressure, temperature and density are as specified for function
'ISO 5167 Orifice'.
IT
172 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

3 Flow-X IO functions
This chapter lists all available IO functions. Please refer to the
pinouts for your specific model of flow computer in the
installation manual provided with the Flow-Xpress software.

fxAnalogInput
Each flow module supports a maximum of 6 analog input Squares (RMS), Where the latter is meant for a differential
signals. The first 2 signals can be used as either a mA/VDC input pressure signal of a primary flow device (e.g. an orifice plate)
or as a RTD input.
The input signal is considered to be faulty when the input
The Analog input function is used for mA and VDC inputs. For circuitry has an open or a short circuit or when the measured
RTD inputs refer to function 'RTD Input'. value is outside a configurable range.
Analog signals are sampled at a rate of about 15 Hz. Every
calculation cycle the samples are averaged and the average is NOTE: Function fxKeypadfallback provides the option to force
scaled to a value in engineering units. the analog input value to a specific fallback value in case it
The output value can be equal to either the last sample or the should fail. It also provides the option to force the input value to
average of the samples of the last calculation cycle. The average a keypad value e.g. upon user request.
is either the arithmetic mean or the Root of the Mean of the

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Channel number CHAN 1..6 1
Input type 1: 4-20 mA INPTYP 2
2: 0-20 mA
3: 1-5 VDC
4: 0-5 VDC
Averaging type 1: Arithmetic mean AVGTYP 1
2: Root Mean Square

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Function Input argument out of range FIOOR
Percentage value Actual percentage of scale value % PERC 0

fxAnalogOutput
This function configures a single 4-20 mA output channel on the
local Flow-X module. Use function 'fxSetAnalogOutput' to control
the actual output signal.

The output current is either set directly or gradually changed to


the required set point based on the specified filter method.

Function inputs Remark EU SW tag Range Default


Name Optional Optional tag name, tag description and tag group <Empty>
Channel number 1..4 CHAN 0
Filter setpoint 0 .. 15 FILSP 0
0: No filtering
1: Fastest filter
..
15: Slowest filter

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Function Input argument out of range FIOOR
Percentage value The actual (and filtered) output value expressed as a percentage % PERC 0
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 173

fxSetAnalogOutput
This function writes an analog value to an output. Make sure that
the analog output has been set up by calling fxAnalogOutput
first.

Function inputs Remark EU SW tag Range Default


Name Optional Optional tag name, tag description and tag group <Empty>
Module Not used, set to -1 -1..16 -1
Channel number 1..4 CHAN 0
Filter setpoint 0 .. 15 FILSP 0
0: No filtering
1: Fastest filter
..
15: Slowest filter

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Function Input argument out of range FIOOR

fxDigitalInput
The Digital Input function processes a single digital input and
outputs either the actual input signal or the latched input signal.

Function inputs Remark EU SW tag Default


Name Optional tag name, tag description and tag group
Channel number 1..16 CHAN 1
Logic 1: Positive LOGIC 1
2: Negative
Mode 1: Actual MODE 1
2: Latched
Threshold Each digital input has 2 threshold levels that determine whether the signal is considered to be THRESHOLD 1
either high (above the threshold) or low (below the threshold).
The threshold levels are as follows (all relative to signal ground):
Channels 1 through 8:
1: + 1.25 Volts
2: + 12 Volts
Channels 9 through 16:
1: + 3.75 Volts
2: + 12 Volts

Function outputs Remark SW tag Alarm EU


Status 0: Normal STS -
1: Input argument out of range FIOOR
Signal State 0: Off SIGSTATE -
1: On
Meaning depends on the input Logic and Mode, refer to the table below.

Calculations
The following table summarizes the relationship between the
input signal and the output 'State', depending on the inputs
'Logic and 'Mode'.

Logic Mode Signal state = Off Signal State = On


Positive Actual Actual signal is low Actual signal is high
Positive Latched Signal has not been high during last calculation cycle Signal has been high during last calculation cycle
Negative Actual Actual signal is high Actual signal is low
Negative Latched Signal has not been low during last calculation cycle Signal has been low during last calculation cycle

fxDigitalOutput
The Digital Output function configures a single digital output on
the local module. Use function 'fxSetDigitalOutput' to control the
actual output signal.
IT
174 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Function inputs Remark EU SW tag Range Default


Name Name for output 'Signal State'
Channel number One of the 16 digital I/O channels. CHAN 1..16 1
Logic 1: Positive LOGIC 1
2: Negative
Delay Period of time that the control signal must be high (> 0) without interruption ms DELAY >= 0 0
before the output will be activated.
The value 0 disables the delay function
If the control signal becomes 0 before the time has elapsed, then the output
signal will not be activated.
Minimum activation time Minimum period of time that the signal will remain activated. ms MINACTITM >= 0 0
After the minimum activation time has elapsed the output signal will remain
activated until the control value becomes 0.

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS 0
1: Input argument out of range or conflict FIOOR
Signal State 0: Not activated - SIGSTATE 0
1: Activated

Calculations
The following table summarizes the relationship between the
output signal, the input 'Logic and the control value as set by
function 'fxSetDigitalOutput'.

fxSetDigitalOutput
This function writes a value to a configured digital output.

Function inputs Remark EU SW tag Range Default


Name Name for output 'Signal State'
Module Unused, set to -1 -1..16 -1
Channel number One of the 16 digital i/o channels. 1..16
Setpoint Logic is positive:
0: Output is activated
<>0: Output is not activated
Logic is negative:
0: Output is not activated
<>0: Output is activated

Function outputs Remark SW tag Alarm EU Fallback


Status 0: Normal STS - 0
1: Input argument out of range or conflict FIOOR

fxFrequencyOutput
This function provides a programmable output frequency on one
of the digital pins. The frequency as well as the duty cycle are
user programmable. When using the frequency output to
configure a dual pulse system, channel 2 can be configured.

Function inputs Remark EU SW tag Range Default


Name
Index Index of the frequency output 1..4
Channel number Output channel number, the digital IO pin that is used. 0..16
Channel number 2 Output channel number, the digital IO pin that is used. 0..16 0

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS 1
1: Input argument out of range or conflict FIOOR
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 175

fxSetFrequencyOutput
This function starts a programmed frequency on the digital pin,
set by fxFrequencyOutput. In case of a dual pulse via frequency
out, here the phase shift between the pins can be configured.

Function inputs Remark EU SW tag Range Default


Name
Module Not used, set to -1 -1..16 -1
Index Index of the frequency output 1..4
Frequency Output frequency (Hz) Hz 0.01.. 10000
Duty cycle Duty cycle % 0..100
Enabled Enables (<>0) or disables (0) the output signal.
Phase shift Phase shift between dual pulse channel A and B expressed as the ratio of the 0..0.5 0
time delay between the last A and B and the time between two A pulses. A
typical phase difference is 90° corresponding to a value of 0.25.
The shift is limited to [0°..180°).

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS 1
1: Input argument out of range or conflict FIOOR
Actual frequency Actual frequency, which can deviate from the programmed frequency because Hz ACTFREQ 0
of hardware limitations.
Actual duty cycle % ACTDC 0

fxDoubleChronometry
The function provides double chronometry measurement for the other end (C and D) there are 4 possible detector
meter proving and calibration purposes with a resolution of 100 combinations A-C, A-D, B-C and B-D, resulting in four available
nanoseconds. prover volumes. By defining 4 Prove measurement functions
The function monitors a (dual) pulse input signal provided by the all 4 prove volumes can be used to prove the meter by a single
meter under test and by one or more digital signals that prove sequence. The operator selects the primary detector
represent the start and stop of the measurement. combination that will be used for calculating the new K factor
The digital inputs used for start and stop of the measurement or meter factor. The result of the 4 detector combinations are
are typically connected to the sphere detector switches of a pipe compared to each other and an alarm is raised in case of
prover or the piston detectors of a compact prover. discrepancy.
The start / stop signal may also be any other type of signal, e.g. Meters that operate in series can all be proved at the same
a digital output from another flow computer. This allows for time.
flexible master meter configurations in which a single prove For meters that provide more than flow signal all signals can
measurement is performed by two separate flow computers, be proved at the same time
one that monitors the meter under test and one that monitors For provers with a range of calibrated prover volumes to
the reference or master meter. accommodate proving of meters of different capacities,
multiple prover volumes can be processed at the same time.
By using multiple Double Chronometry functions multiple prove
measurements can be performed at the same time by one and Combinations of these scenarios are possible as well.
the same flow module.
Some examples of simultaneous prove measurements are: The double chronometry method comprises the measurement of
the time between the start and stop signals and the time
For a prover with 2 begin and 2 end detector switches the between the two meter pulses that immediately follow the start
flow meter can be proved against all 4 the calibrated prover and stop signals. The flow module then determines the
volumes at the same time. interpolated number of meter pulses that correspond to the
measurement start and stop signals as follows:
With 2 detectors at one end of the prover (A and B) and 2 at
IT
176 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Time A between start and stop signal


Stop
Start
signal
Time B between the meter pulses following start and stop signal

time A
Interpolated pulse count  whole pulses 
time B

Function inputs and outputs


Function inputs Remark EU SW tag Range Default
Name Optional tag name, tag description and tag group
Index Index number INDEX 1..4 1
Flow input channel number Number of the digital input channel FLOWCHAN
Start DI channel number Channel number of the digital input that is to be used as the Start signal STRTCHAN 0
Start DI logic 1: Positive STRTLOGIC 1..2
2: Negative
Stop DI channel number Channel number of the digital input that is to be used as the Stop signal. STOPCHAN 0
Note: the same digital input may be used for both Start and Stop of
measurement
Stop DI logic 1: Positive STOPLOGIC 1..2
2: Negative
Start minimum delay time * After the Reset command has been given the function will wait for at least sec STRTMINDLY 0..1e9 0
this delay time before considering the activation of the Start digital input
Start maximum delay time * After the Reset command has been given the function will wait for no longer sec STRTMAXDLY 0..1e9 0
than this delay time before the Start digital input must have been activated
0 disables this delay check
Stop minimum delay time * After the Reset command has been given the function will wait for at least sec STOPMINDLY 0..1e9 0
this delay time before considering the activation of the Stop digital input.
0 disables this delay check
Note: The stop minimum delay time must be defined when a common digital
input is used as both the Start and Stop signals
Stop maximum delay time * After the Reset command has been given the function will wait for no longer sec STOPMAXDLY 0..1e9 0
than this delay time before the Stop digital input must have been activated.
0 disables this delay check
Number of pulses per Applies for flow meter that provide a direct pulse signal (typically turbine PLSPERREV 1..1e9 1
revolution and Positive Displacement (PD) meters)
To exclude the influence of geometrical imperfections of the primary
metering device the function may be forced to accumulate a number of
pulses that corresponds to a whole number of flow meter revolutions.
E.g. suppose that at the stop signal 6754 pulses have been accumulated and
that corresponding turbine meter provides 20 pulses for each turbine
revolution, the function will accumulate another 6 pulses before the
measurement is stopped.
Start 0 No action START 0
<> 0 Starts the double chronometry
If the double chronometry function is already running, then it will be
restarted.
Reset 0 No action RST
<> 0 Resets all outputs to 0 or, where applicable, FALSE.

Function outputs Remark SW tag Alarm EU


Status 0: Normal STS -
1: Input argument out of range or conflict FIOOR
Interpolated pulse count Equals : INPOLCNT
Whole pulse count * Time A / Time B
According to API requirements the interpolated pulse count should be used when less than
10000 pulses are acquired
Whole pulse count The number of meter pulses that were acquired within the measurement period (time B). WHOLECNT
Could be used instead of interpolated pulses when more than 10000 pulses are acquired
Note: Whole pulse count = the decimal part of Interpolated pulse count
Time between start and stop Time period between start and stop signal INPOLTIM sec
Time between pulses Time between the meter pulses immediately following the start and stop signals WHOLETIM sec
In Progress Status bit that indicates that the measurement is in progress INPRG
Completed Prove measurement has been completed COMPL
Start time-out Prove measurement has been aborted - Start signal time-out STRTTO
Stop time-out Aborted - Stop signal time-out STOPTO
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 177

fxPulseInput
The 'fxPulseInput' function is meant for a flow meter that The function also provides the option to output the raw pulse
provides a single or a dual pulse output signal. Each flow module signals, which is useful in case a separate flow computer is used
supports either 1 single or 1 dual pulse input. for proving purposes. The proving flow computer takes the pulse
A dual pulse signal is a set of two pulse signals ('pulse trains') A output from the flow computer that processes the meter on
and B that originate from the same flow meter. The two pulse prove to perform prove measurements including double
trains are similar but shifted in phase (typically 90°). chronometry if required. The prover output signal is generated
The primary purpose of the dual signal is to allow for pulse at 20 MHz, the same frequency at which the raw pulse input
integrity checking. Added or missing pulses on either pulse train signals are sampled.
are detected and corrected for and simultaneous noise pulses
are rejected. Compliance
The function provides detailed information on the raw, corrected ISO 6551:1982, Petroleum liquids and gases -- Fidelity and
and bad pulses for both channels and for both the forward and security of dynamic measurement -- Cabled transmission of
reverse flow direction. electric and/or electronic pulsed data
The phase shifted pulse train signal also allows for automatic
detection of flow direction. Each A pulse is followed by a B pulse NOTE: The Flow/X series of flow computers provides Level A
within a time period (t) in case the flow runs in the forward pulse security as defined in ISO 6551, which means that bad
direction. In case the flow runs in the reverse direction, the pulses are not only detected (level B) but also corrected for.
opposite is the case, i.e. each B pulse is followed by an A pulse
within the same time period t.

B
t

Channel B lags channel A

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Index Index number. Always 1. INDEX 1..1 1
Channel A Input channel number for pulse A CHANA 0..16 0
0 disables the entire function
Channel B Input channel number for pulse B CHANB 0..16 Input Channel A + 1
Enter 0 in a case of single pulse input
Pulse fidelity threshold All pulse fidelity checking will be disabled when the corrected pulse Hz FRQTHD 0..1e5 0
frequency is below the 'Pulse fidelity threshold'
Enter a 0 to disable this functionality (the default value)
Error pulses limit When the total number of missing pulses, added and simultaneous pulses ERRLIM 0..1e99 0
for either channel becomes larger than this value, the status becomes
'Error Pulses'
The value 0 disables the error pulses limit check.
Missing pulses limit When the total number of missing pulses on channel A or B becomes - MISLIM 0..1e99 0
larger than this value, the status becomes 'Missing Pulses Channel x'
(with x either A or B)
The value 0 disables the missing pulses limit check.
Added pulses limit When the total number of added pulses on channel A or B becomes larger - ADDLIM 0..1e99 0
than this value, the status becomes 'Added Pulses Channel x' (with x
either A or B)
The value 0 disables the added pulses limit check.
Simultaneous pulses When the total number of simultaneous pulses on both channels becomes - SIMLIM 0..1e99 0
limit larger than this value, the status becomes Simultaneous Pulses '
The value 0 disables the simultaneous pulses limit check.
Good pulse reset limit When the number of good pulses since the last 'bad' pulse has reached - RSTLIM 0..1e99 0
this value, all the bad pulse count and alarms will be reset automatically.
The value 0 disables the automatic reset function.
Bad pulse reset When the value changes the bad pulse count and alarms are reset. Can be - RSTCMD Any value 0
command used reset the bad pulses manually or automatically e.g. at a every new
batch.
Error rate limit When the difference in frequency between the two raw pulse trains is % ERRLIM 0..100 0
larger than this limit within the last calculation cycle, the status becomes
'Pulse Rate Error'
The value 0 disables the error rate limit check
Pulse A output channel Number of digital I/O channel that is used to output the raw A pulses. - POCHANA 0
0:Not used
IT
178 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Function inputs Remark EU SW tag Range Default


1:Digital I/O channel 1
..
16:Digital I/O channel 16
Pulse B output channel Number of digital I/O channel that is used to output the raw B pulses. - POCHANA 0
0:Not used
1:Digital I/O channel 1
..
16:Digital I/O channel 16
Pulse A output mode Used to switch the pulse A output on and off. POMODA 0
0: Pulse output A is disabled
<> 0: Pulse output A is enabled
Pulse B output mode Used to switch the pulse B output on and off. POMODA 0
0: Pulse output B is disabled
<> 0: Pulse output B is enabled

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range FIOOR
2: No A pulses (while B pulses) NOPLSA
3: No B pulses (while A pulses) NOPLSB
4: Missing pulses channel A MISPLSA
5: Missing pulses channel B MISPLSB
6: Added pulses channel A ADDPLSA
7: Added pulses channel B ADDPLSB
8: Simultaneous pulses SIMPLS
9: Pulse rate error ERRRATE
10: Low frequency (above 0 and below cut-off) LOFRQ
11: Error pulses
Note: during normal operation status 'Low frequency' occurs ERRPLS
for a relative short time whenever the flow starts or stops. In
order to avoid unnecessary alarms the corresponding alarm
delay time shall be defined accordingly (default 5 sec).
Corrected pulse increment Number of good pulses within the last calculation cycle - CORINC
Corrected frequency Frequency that corresponds to the last corrected pulse Hz CORFRQ
increment the last calculation cycle
Error pulse increment Number of bad pulses within the last calculation cycle ERRINC
Error pulse rate Number of bad pulses within the last calculation cycle divided Hz ERRFRQ
by the last calculation cycle time in seconds
Flow direction 0: Forward - FLOWDIR
1: Reverse
Raw pulse increment channel A Number of raw pulses of channel A within the last calculation RAWINCA
cycle
Raw pulse increment channel B Number of raw pulses of channel B within the last calculation RAWINCB
cycle
Missing pulse count channel A Total missing pulse count channel A since the last reset - MISCNTA
Added pulse count channel A Total added pulse count channel A since the last reset - ADDCNTA
Missing pulse count channel B Total missing pulse count channel B since the last reset - MISCNTB
Added pulse count channel B Total added pulse count channel B since the last reset - ADDCNTB
Simultaneous pulses Total simultaneous pulse count since the last reset SIMPLSF
Phase difference Last measured phase difference between A and B pulse - PHASEDIF
expressed as the ratio of the time delay between the last A
and B and the time between two A pulses. A typical phase
difference is 90° corresponding to a value of 0.25.

fxResetPulseInputErrors
This function resets the error pulse counters (error, added,
missing and simultaneous pulses) of the pulse input of one of
the modules part of the same configuration.
It is required that the pulse input of the specified module is
configured by function 'fxPulseInput'.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group <Empty>
Module Unused, set to 0 0..16 0
Index Index number as defined in the corresponding fxPulseInput function 0..1
0 disables the function
Reset 0: No action
<> 0 All error counters are reset to 0
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 179

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range or in conflict FIOOR

fxPulseOutput
This function is used to feed pulses to an electro-mechanical
(E/M) counter. There are 4 pulse output units, to be selected by
the index parameter. The function uses a reservoir to accumulate
the pulses. On one hand the number of pulses that need to be
added to the reservoir is calculated from inputs 'Increment' and
‘Significance factor'. On the other hand pulses are taken from
the reservoir and fed to the E/M counter at a rate that will not
exceed the specified output rate.
This can also be used to configure a dual pulse situation, for this
case you can configure a second channel and the delay it has on
the primary channel.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Index Index number 1..4. INDEX 1..4 1
Channel Digital I/O channel number CHAN 0..16 0
0 disables the function
Significance factor Factor that specifies the relation between the Increment value and the number of output - SIGFCT 0..1e99 1
pulses.
E.g. a value of 100 means that 1 pulse is generated whenever 100 increment units have
been accumulated.
Pulse width Time that each output pulse remains active (high) in millisecond ms PLSWID 0..1e6 20
Restriction (pulse duty cycle is 50%):
Pulse width <= 1000 / (2* max. output rate)
Max. output rate Maximum pulse output rate. Hz MAXFREQ 0..1e6 40
When output pulses are generated at a frequency higher than the maximum output rate,
the superfluous pulses will be accumulated in the pulse reservoir.
Restriction when pulse duty cycle should not exceed 50%:
Max. output rate <= 1000 / (2* Pulse width)
Reservoir alarm limit Alarm limit for the number of pulses in the reservoir buffer - RSVLIM 0..1e99 1e9
Channel 2 Digital I/O channel number CHAN 0..16 0
0 disables the function
Delay Delay between dual pulse channel A and B in milliseconds ms 0..1e99 0

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range or in conflict FIOOR
Pulse reservoir Number of pulses that are accumulated in the reservoir. - RSVPLS 0
Reservoir alarm status With respect to the 'Reservoir alarm limit' the number of pulses in the reservoir is: - RSVSTS 0
0: Within limit
1: Out of limit RSVALM

Calculations
Every calculation cycle a number of pulses is added to the
reservoir that is equal to input value 'Increment' divided by input
value Significance factor.

fxSetPulseOutput
Adds pulses to the reservoir, to be output on the next cycle.
Takes the ‘significance factor’ into account, see fxPulseOutput.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
module Not used, set to -1. -1..16 -1
index Index of the pulse output 0..4
0 disables the function
Increment Number of pulses to be added to the reservoir..
Reset command 0 is normal, 1 is no hardware state changed 0
IT
180 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal - STS
1: Input argument out of range or in conflict FIOOR

fxPT100Input
Each flow module provides 2 inputs for Pt-100 sensors. For each sample the temperature value is obtained from the
A Pt-100 sensor is a Platinum Resistance Thermometer (PRT) measured Ohms by means of the standard RTD quadratic
element with a resistance of 100 Ω at 0°C. 'Pt' is the symbol for equation.
platinum.
The input signal is considered to be faulty when the input
Resistance thermometers as such are also referred to as circuitry has an open or a short circuit or when the measured
Resistance Temperature Detectors (RTD). value is outside its range (as defined in table below).

The resistance changes linearly with temperature. For Pt-100


elements the linearity coefficient is 0.385 Ohm/°C for European
elements and 0.392 Ohm/°C for American elements.

Function inputs Remark EU Default


Name Optional tag name, tag description and tag group
Channel number 1..2 1
Input Type 1: European, 0.00385 Ω/ Ω /°C 1
As per DIN 43760, BS1905,IEC751
Range - 200..+850 °C
2: American, 0.00392 Ω/ Ω /°C
Range - 100..+457 °C

Function outputs Remark EU SW tag Alarm Fallback


Status Status output STS
0: Normal
1: Input argument out of range FIOOR
2: Under range failure (*)
3: Over range failure (*)
4: Open circuit (*)
5: Short circuit (*)
Value Temperature in degrees Celsius °C VAL 0
(*) Note that no alarm is generated for this status output value. This is to avoid an unnecessary alarm in case the input is not used.

fxRTDInput
Reads the PT100 input as a ‘raw’ Ohm number. Use fxPT100Table to
convert to degrees Celsius.

Function inputs Remark EU Default


Name Optional tag name, tag description and tag group
Channel number 1..2

Function outputs Remark EU SW tag Alarm Fallback


Status Status output STS
0: Normal
1: Input argument out of range FIOOR
2: Under range failure (*)
3: Over range failure (*)
4: Open circuit (*)
5: Short circuit (*)
Value Ohm 0
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 181

fxPT100Table
This function converts a resistance value (Ohm) into a For each sample the temperature value is obtained from the
temperature value (°C) according to the Pt-100 conversion measured Ohms by means of the standard RTD quadratic
tables. A Pt-100 sensor is a Platinum Resistance Thermometer equation.
(PRT) element with a resistance of 100 Ω at 0°C. 'Pt' is the
symbol for platinum. The input signal is considered to be faulty when the input
Resistance thermometers as such are also referred to as circuitry has an open or a short circuit or when the measured
Resistance Temperature Detectors (RTD). value is outside its range (as defined in table below).
The resistance changes linearly with temperature. For Pt-100
elements the linearity coefficient is 0.385 Ohm/°C for European
elements and 0.392 Ohm/°C for American elements

Function inputs Remark EU Default


Name Optional tag name, tag description and tag group
Ohm Measured temperature in Ohms Ohm
Input Type 1: European, 0.00385 Ω/ Ω /°C 1
As per DIN 43760, BS1905,IEC751
Range - 200..+850 °C
2: American, 0.00392 Ω/ Ω /°C
Range - 100..+457 °C

Function outputs Remark EU SW tag Alarm Fallback


Value °C 0

fxTimePeriodInput
This function measures the time period between two pulses with The measured time period value can be linked to a subsequent
a high resolution (100 nanoseconds) and is typically used for densitometer-specific (Solartron, Sarasota, UGC) function that
densitometer inputs. The measurement is performed calculates the density at the densitometer conditions.
continuously in the background and the function returns the Abnormal measurements are filtered out and alarmed for.
average value since the previous calculation cycle.

Function inputs Remark EU SW tag Range Default


Name Optional tag name, tag description and tag group
Channel Channel number for the signal - CHAN 1..16 0
Time period differential limit Maximum allowable difference in microseconds. μs
When the time period between two consecutive pulses differs more than this limit from
the previous time period, the reading is considered to be abnormal.
Following an abnormal reading there must be 3 consecutive readings within the limit
before the time period value is considered normal again.
When no 3 consecutive readings within the limit are available in the last 5 readings then
the input signal is considered to be invalid.
Resolution of the limit value is 100 nanoseconds.
Minimum stable time Minimum time for high- and low-times of a pulse to be considered valid. μs 0..10000 30

Function outputs Remark EU SW tag Alarm Fallback


Status 0: Normal STS
1: Input argument out of range INPERR
Outputs will be set to fallback values
2: No valid measurement (*)
Outputs will be set to fallback values
Time period Average (arithmetic mean) in microseconds of the last μs TIME 0
calculation cycle
Frequency Average (arithmetic mean) of the last calculation cycle Hz FREQ 0
Curcount Current counter value CURCNT 0
Curtime Current time value sec CURTIME 0
Oldcount Previous counter value PRVCNT 0
Oldtime Previous time value sec PRVTIME 0
(*) Note that no alarm is generated for this status output value. This is to avoid an unnecessary alarm in case the input is not used
IT
182 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

4 Control Center reference


Unit Types
Type of unit Description Unit Convert to Excel constant Multiply by Conversion
Acceleration meters per second squared m/s2 xu_m_s2
kilometers per second squared km/s2 m/s2 xu_km_s2 1.0 E+03 Exact
inch per second squared in/s2 m/s2 xu_in_s2 2.54 E-02 Exact
foot per second squared ft/s2 m/s2 xu_ft_s2 3.048 E-01 Exact
Area square meter m2 xu_m2
square millimeter mm2 m2 xu_mm2 1.0 E-06 Exact
square centimeter cm2 m2 xu_cm2 1.0 E-04 Exact
square kilometer km2 m2 xu_km2 1.0 E+06 Exact
square inch in2 m2 xu_in2 6.4516 E-04 Exact
square foot ft2 m2 xu_ft2 9.290304 E-02 Exact
Dynamic Viscosity pascal second Pa.s xu_Pa.s
poise poise Pa.s xu_poise 1.0 E-01 Exact
centipoise cP Pa.s xu_cP 1.0 E-03 Exact
kilogram force second per square meter kgf.s/m2 Pa.s xu_kgf.s_m2 9.80665 Exact
pound-mass per foot second lbm/ft.s Pa.s xu_lbm_ft.s 0.45359237 / 0.3048 Exact
Energy joules J xu_J
kilojoules kJ J xu_kJ 1.0 E+03 Exact
megajoules MJ J xu_MJ 1.0 E+06 Exact
gigajoules GJ J xu_GJ 1.0 E+09 Exact
terajoules TJ J xu_TJ 1.0 E+12 Exact
watt hour W.h J 3.6 E+03 Exact
kilowatt hour kW.h J 3.6 E+06 Exact
watt second W.s J 1 Exact
British thermal unit Btu J 1.05505585262 E+03 Exact
kilo British thermal unit kBtu J 1.05505585262 E+06 Exact
million British thermal unit MMBtu J 1.05505585262 E+09 Exact
calorie cal J 4.1868 Exact
kilocalorie kcal J 4.1868 E+03 Exact
megacalorie Mcal J 4.1868 E+09 Exact
decatherm dT J 1.05505585262 E+09 Exact
Energy per Mass joule per kilogram J/kg
kilojoule per kilogram kJ/kg J/kg 1.0 E+03 Exact
megajoule per kilogram MJ/kg J/kg 1.0 E+06 Exact
British thermal unit per pound Btu/lbm J/kg 2.32601 E+03 Exact
(avoirdupois)
kilo British thermal unit per pound kBtu/lbm J/kg 2.32601 E+06 Exact
(avoirdupois)
calorie per kilogram cal/kg J/kg 4.1868 Exact
kilocalorie per kilogram kcal/kg J/kg 4.1868 E+03 Exact
million calorie per kilogram MMcal/kg J/kg 4.1868 E+06 Exact
Energy per Mole joules per mole J/mol
kilojoules per mole kJ/mol J/mol 1.0 E+03 Exact
megajoules per mole MJ/mol J/mol 1.0 E+06 Exact
kilojoules per kilomole kJ/kmol J/mol 1 Exact
megajoules per kilomole MJ/kmol J/mol 1.0 E+03 Exact
British thermal unit per pound mole Btu/lbmol J/mol 2.326 E+03 Exact
kilo British thermal unit per pound mole kBtu/lbmol J/mol 2.326 E+06 Exact
calorie per mole cal/mol J/mol 4.1868 Exact
kilocalorie per mole kcal/mol J/mol 4.1868 E+03 Exact
megacalorie per mole Mcal/mol J/mol 4.1868 E+06 Exact
Energy per Time joules per second J/s
megajoules per hour MJ/hr J/s (1.0/3600) E+06 Exact
gigajoules per hour GJ/hr J/s (1.0/3600) E+09 Exact
megajoules per day MJ/day J/s (1.0/86400) E+06 Exact
gigajoules per day GJ/day J/s (1.0/86400) E+09 Exact
kilo British thermal unit per hour kBtu/hr J/s (1.05505585262 / 3600) Exact
E+06
million British thermal unit per hour MMBtu/hr J/s (1.05505585262 / 3600) Exact
E+09
kilo British thermal unit per day kBtu/d J/s (1.05505585262 / Exact
86400) E+06
million British thermal unit per day MMBtu/d J/s (1.05505585262 / Exact
86400) E+09
mega calorie per hour Mcal/hr J/mol (4.1868/3600) E+06 Exact
giga calorie per hour Gcal/hr J/mol (4.1868/3600) E+09 Exact
million calorie per day Mcal/d J/mol (4.1868/86400) E+06 Exact
giga calorie per day Gcal/d J/mol (4.1868/86400) E+09 Exact
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 183

Type of unit Description Unit Convert to Excel constant Multiply by Conversion


Energy per Volume joules per cubic meter J/m3
kilojoules per cubic meter kJ/m3 J/m3 1.0 E+03 Exact
megajoules per cubic meter MJ/m3 J/m3 1.0 E+06 Exact
British thermal unit per cubic foot Btu/ft3 J/m3 (1.05505585262 / Exact
0.02831685) E+03
kilo British thermal unit per cubic foot kBtu/ft3 J/m3 (1.05505585262 / Exact
0.02831685) E+06
calorie per cubic meter cal/m3 J/mol 4.1868 Exact
kilocalorie per cubic meter kcal/m3 J/mol 4.1868 E+03 Exact
Energy per Standard joules per standard cubic meter J/sm3
Volume
kilojoules per standard cubic meter kJ/sm3 J/sm3 1.0 E+03 Exact
megajoules per standard cubic meter MJ/sm3 J/sm3 1.0 E+06 Exact
British thermal unit per standard cubic Btu/scf J/sm3 (1.05505585262 / Exact
foot 0.02831685) E+03
kilo British thermal unit per standard kBtu/scf J/sm3 (1.05505585262 / Exact
cubic foot 0.02831685) E+06
calorie per standard cubic meter cal/sm3 J/sm3 4.1868 Exact
kilocalorie per standard cubic meter kcal/sm3 J/sm3 4.1868 E+03 Exact
Energy per Normal joules per standard cubic meter J/m3(n)
Volume
kilojoules per standard cubic meter kJ/m3(n) J/m3(n) xu_J/m3n 1.0 E+03 Exact
megajoules per standard cubic meter MJ/m3(n) J/m3(n) 1.0 E+06 Exact
calorie per standard cubic meter cal/m3(n) J/m3(n) 4.1868 Exact
kilocalorie per standard cubic meter kcal/m3(n) J/m3(n) 4.1868 E+03 Exact
Factor scaling value Decimal
percent % Decimal 1.0 E-02 Exact
parts per million ppm Decimal 1.0 E-06 Exact
Force Newton N
kilogram-force kgf N 9.80665 Exact
pound-force lbf N 4.4482216152605 Exact
Frequency Hertz Hz
Heat Capacity per Mass Joule per kilogram per degree Celsius J/kg.°C xu_J_kg.degC
Joule per kilogram per degree Celsius kJ/kg.°C J/kg.°C 1.0 E+03 Exact
British thermal unit per pound Btu/lbm.°F J/kg. °C 4186.8 Exact
(avoirdupois) per degree Fahrenheit
Heat Capacity per Mole Joule per mole per degree Celsius J/mol.°C
kilo Joule per kilo mole per degree Celsius kJ/kmol.°C J/mol.°C 1 Exact
British thermal unit per mole per degree Btu/lbmol.°F J/mol.°C 2.326E+03 / 1.8 Exact
Fahrenheit
Kinematic Viscosity square meter per second m2/s
square millimeter per second mm2/s m2/s 1.0 E-06 Exact
centistokes cSt m2/s 1.0 E-06 Exact
stokes St m2/s 1.0 E-04 Exact
Length meter m
centimeter cm m 1.0 E-02 Exact
millimeter mm m 1.0 E-03 Exact
kilometer km m 1.0 E+03 Exact
micron µ m 1.0 E-06 Exact
foot ft m 3.048 E-01 Exact
inch in m 2.54 E-02 Exact
Length per meter per degree Celsius m/°C
Temperature
meter per degree Fahrenheit m/°F m/°C 1.8 Exact
centimeter per degree Celsius cm/°C m/°C 1.0 E-02 Exact
centimeter per degree Fahrenheit cm/°F m/°C 1.8 E-02 Exact
millimeter per degree Celsius mm/°C m/°C 1.0 E-03 Exact
millimeter per degree Fahrenheit mm/°F m/°C 1.8 E-03 Exact
feet per degree Celsius ft/°C m/°C 3.048 E-01 Exact
feet per degree Fahrenheit ft/°F m/°C 5.4864 E-01 Exact
inches per degree Celsius in/°C m/°C 2.54 E-02 Exact
inches per degree Fahrenheit in/°F m/°C 4.572 E-02 Exact
Mass kilogram kg
gram g kg 1.0 E-03 Exact
milligram mg kg 1.0 E-06 Exact
pound mass (avoirdupois) lbm kg 4.5359237 E-01 Exact
kilopound mass (avoirdupois) klbm kg 4.5359237 E+02 Exact
Million pound mass (avoirdupois) Mlbm kg 4.5359237 E+05 Exact
metric ton tonne kg 1.0 E+03 Exact
short ton (equals 2000 lb, also called short ton kg 9.0718474 E+02 Exact
tonUS)
long ton (equals 2240 lb, also called long ton kg 1.016046909 E+03 Exact
tonUK)
IT
184 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Type of unit Description Unit Convert to Excel constant Multiply by Conversion


Mass per Mass mass fraction mass/mass
mass percentage %mass mass/mass 1.0 E-02 Exact
Mass per Mole kilograms per mole kg/mol
kilograms per kilomole kg/kmol kg/mol 1.0 E-03 Exact
grams per mole g/mol kg/mol 1.0 E-03 Exact
pound per pound mole lbm/lbmol kg/mol 1.0 E-03 Exact
kilopound per kilopound mole klbm/klbmol kg/mol 1.0 E-03 Exact
Mass per Pulse kilograms per pulse kg/pulse
grams per pulse g/pulse kg/pulse 1.0 E-03 Exact
pounds mass per pulse lbm/pulse kg/pulse 4.535924 E-01 Exact
Mass per Time kilogram per second kg/s
kilogram per hour kg/hr kg/s (1.0/3600) Exact
ton (metric) per hour tonne/hr kg/s (1.0/3600) E+03 Exact
ton (short) per hour short ton/hr kg/s (9.071847/3600) E+02 Exact
ton (long) per hour long ton/hr kg/s (1.016046909/3600) Exact
E+03
pound mass (avoirdupois) per second lbm/s kg/s 4.535924 E-01 Exact
pound mass (avoirdupois) per hour lbm/hr kg/s (4.535924/3600) E-01 Exact
kilopound mass (avoirdupois) per hour klbm/hr kg/s (4.535924/3600) E+02 Exact
kilogram per day kg/d kg/s (1.0/86400) Exact
ton (metric) per day tonne/d kg/s (1.0/86400) E+03 Exact
ton (short) per day short ton/d kg/s (9.071847/86400) E+02 Exact
ton (long) per day long ton/d kg/s (1.016046909/86400) Exact
E+03
pound mass (avoirdupois) per day lbm/d kg/s (4.535924/86400) E-01 Exact
kilopound mass (avoirdupois) per day klbm/d kg/s (4.535924/86400) E+02 Exact
Mass per Volume kilogram per cubic meter kg/m3
gram per cubic centimeter g/cm3 kg/m3 1.0 E03 Exact
pound per cubic foot lbm/ft3 kg/m3 1.601846337 E+01 Exact
API gravity (1) °API kg/m3 ρH2O,60°F * 141.5 / Exact (3)
(°API+131.5) (2)
Specific Gravity at 60 degrees Fahrenheit SG @ 60°F kg/m3 ρH2O,60°F (2) Exact (3)
(1)

Relative Density at 60 degrees Fahrenheit RD @ 60°F kg/m3 ρH2O,60°F (2) Exact (3)
(1)

(1)
This conversion only applies when
conversion is to /from the 'Mass per
Volume' value at 60 °F
(2)
ρH2O,60°F the density of water at 60 °F is
a global setting with a default value of
999.012 kg/m3
(2)
The conversion is exact, however the
resulting value is an approximation
because of ρH2O,60°F
Mass per Standard kilogram per standard cubic meter kg/sm3
Volume
gram per standard cubic centimeter g/scm3 kg/sm3 1.0 E03 Exact
pound per standard cubic foot lbm/scf kg/sm3 1.601846337 E+01 Exact
Mass per Normal kilogram per normal cubic meter kg/m3(n)
Volume
gram per normal cubic centimeter g/cm3(n) kg/m3(n) 1.0 E-03 Exact
Mole mole mol
A mole resembles 6.0251 x 10^23
molecules of a substance, a standard
number of molecules known as
Avogadro’s number.
kilomole kmol mol 1.0 E+03 Exact
pound mole lbmol mol 4.5359237 E-01 Exact
In English units, the pound-mass (lbm) is
the standard unit of mass. In order to use
the same molecular weights as those
listed on the periodic chart, the pound-
mol, (lbmol, sometimes lb-mol, lbm-mol,
or lbm-mole) is defined
kilopound mole klbmol mol 4.5359237 E+02 Exact
Mole per Mole mole fraction mole/mole
mole percentage %mole mole/mole 1.0 E-02 Exact
Mole per Volume mole per cubic meter mol/m³
mole per cubic centimeter mol/cm³ mol/m³ 1.0 E+6 Exact
mole per litre mol/l mol/m³ 1.0 E+3 Exact
kilomole per cubic meter kmol/m³ mol/m³ 1.0 E+3 Exact
kilomole per cubic centimeter kmol/cm³ mol/m³ 1.0 E+9 Exact
kilomole per litre kmol/l mol/m³ 1.0 E+6 Exact
kilomole per cubic feet kmol/ft³ mol/m³ 1 / 28.31685 E -03 Exact
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 185

Type of unit Description Unit Convert to Excel constant Multiply by Conversion


Power watt W
kilowatt kW W 1.0 E+03 Exact
megawatt MW W 1.0 E+06 Exact
gigawatt GW W 1.0 E+09 Exact
Pressure (differential) pascal Pa
kilo pascal kPa Pa 1.0 E+03 Exact
kilogram-force per square meter kgf/m2 Pa 9.80665 Exact
kilogram-force per square centimeter kgf/cm2 Pa 9.80665 E+04 Exact
pound-force per square foot lbf/ft2 Pa 47.8803 Exact
pound-force per square inch (psi) lbf/in2 Pa 6894.76 Exact
pound-force per square inch (psi) psi Pa 6894.76 Exact
bar bar Pa 1.0 E+05 Exact
millibar mbar Pa 1.0 E+02 Exact
millimeter of mercury, convential mmHg Pa 133.322387415 Exact
millimeter of water, convential mmH2O Pa 9.80665 Exact
millimeter of water @ 60°F mmH2O @ Pa 248.84/25.4 Approximate
60°F
inch of mercury, convential inHg con Pa 3386.38864 Exact
inch of mercury @ 32°F (0°C) inHg @ 32°F Pa 3386.38 Approximate
inch of mercury @ 60°F inHg @ 60°F Pa 3376.85 Approximate
inch of water, convential inH2O con Pa 249.08891 Exact
inch of water @ 39.2°F (4°C) inH2O @ Pa 249.082 Approximate
39.2°F
inch of water @ 60°F inH2O @ Pa 248.84 Approximate
60°F
inch of water @ 68°F inH2O @ Pa 248.64108 Approximate
68°F
Pressure (absolute) pascal absolute Pa(a)
kilo pascal absolute kPa(a) Pa(a) 1.0 E+03 Exact
pound-force per square inch (psi) psia Pa(a) 6894.76 Exact
absolute
bar absolute bar(a) Pa(a) 1.0 E+05 Exact
millibar absolute mbar(a) Pa(a) 1.0 E+02 Exact
millimeter of mercury, convential mmHga Pa(a) 133.322387415 Exact
absolute
millimeter of water, convential absolute mmH2Oa Pa(a) 9.80665 Exact
millimeter of water @ 60°F absolute mmH2Oa @ Pa(a) 248.84/25.4 Approximate
60°F
inch of mercury, convential absolute inHga con Pa(a) 3386.38864 Exact
inch of mercury @ 32°F (0°C) absolute inHga @ 32°F Pa(a) 3386.38 Approximate
inch of mercury @ 60°F absolute inHga @ 60°F Pa(a) 3376.85 Approximate
inch of water, convential absolute inH2Oa con Pa(a) 249.08891 Exact
inch of water @ 39.2°F (4°C) absolute inH2Oa @ Pa(a) 249.082 Approximate
39.2°F
inch of water @ 60°F absolute inH2Oa @ Pa(a) 248.84 Approximate
60°F
inch of water @ 68°F absolute inH2Oa @ Pa(a) 248.64107 Approximate
68°F
Pressure (gauge) pascal gauge Pa(g)
kilo pascal gauge kPa(g) Pa(g) 1.0 E+03 Exact
pound-force per square inch (psi) gauge psig Pa(g) 6894.76 Exact
bar gauge bar(g) Pa(g) 1.0 E+05 Exact
millibar gauge mbar(g) Pa(g) 1.0 E+02 Exact
millimeter of mercury, convential gauge mmHgg Pa(g) 133.322387415 Exact
millimeter of water, convential gauge mmH2Og Pa(g) 9.80665 Exact
millimeter of water @ 60°F gauge mmH2Og @ Pa(g) 248.84/25.4 Approximate
60°F
inch of mercury, convential gauge inHgg con Pa(g) 3386.38864 Exact
inch of mercury @ 32°F (0°C) gauge inHgg @ 32°F Pa(g) 3386.38 Approximate
inch of mercury @ 60°F gauge inHgg @ Pa(g) 3376.85 Approximate
60°F
inch of water, convential gauge inH2Og con Pa(g) 249.08891 Exact
inch of water @ 39.2°F (4°C) gauge inH2Og @ Pa(g) 249.082 Approximate
39.2°F
inch of water @ 60°F gauge inH2Og @ Pa(g) 248.84 Approximate
60°F
Pressure inverse per pascal 1/Pa
per kilo pascal 1/kPa 1/Pa 1.0 E-03 Exact
per Mega pascal 1/MPa 1/Pa 1.0 E-06
per pound-force per square inch (psi) 1/psi 1/Pa 1/6894.76 Exact
per bar 1/bar 1/Pa 1.0 E-05 Exact
Pressure per Mass pascals per kilogram Pa/kg
kilopascals per kilogram kPa/kg Pa/kg 1.0 E+03 Exact
IT
186 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Type of unit Description Unit Convert to Excel constant Multiply by Conversion


megapascals per kilogram MPa/kg Pa/kg 1.0 E+06 Exact
pounds mass (avoirdupois) per square psi/kg Pa/kg 6894.76 Exact
inch per kilogram
bar per per kilogram bar/kg Pa/kg 1.0 E+05 Exact
Pulses per Mass pulses per kilogram pulses/kg
pulses per gram pulses/g pulses/kg 1.0 E+03 Exact
pulses per pound mass (avoirdupois) pulses/lbm pulses/kg 1/0.4535924 Exact
Pulses per Volume pulses per cubic meter pulses/m3
pulses per cubic centimeter pulses/cm3 pulses/m3 1.0 E-06 Exact
pulses per litre pulses/lb pulses/m3 1.0 E-03 Exact
pulses per cubic inch pulses/in pulses/m3 1/0.0000163871 Exact
pulses per cubic feet pulses/ft3 pulses/m3 1/0.0283168 Exact
Temperature Kelvin K
degree Celsius °C K T[K] = t[°C] + 273.15 Exact
degree Fahrenheit °F K T[K] = (t[°F] + Exact
459.67)/1.8
Rankine R K T[K] = T[R]/1.8 Exact
Temperature inverse per Kelvin 1/K
per degree Celsius 1/°C 1/K 1.0 Exact
per degree Fahrenheit 1/°F 1/K 1.8 Exact
per Rankine 1/R 1/K 1.8 Exact
Temperature per degree Celsius per bar °C/bar
Pressure (Joule-Thomson coefficient)
°F/psi °C/bar 1.8/6894.76 Exact
Time second s
milli second ms s 1.0 E-03 Exact
micro second μs s 1.0 E-06 Exact
nano second ns s 1.0 E-09 Exact
minute min s 6.0 E+01 Exact
hour H s 3.6 E+03 Exact
day D s 8.64 E+04 Exact
Velocity meters per second m/s
kilometers per second km/s m/s 1.0 E+03 Exact
kilometers per hour km/hr m/s (1/3600) E+03 Exact
foot per second ft/s m/s 3.048 E-01 Exact
Volume cubic meter m3
cubic centimeter cm3 m3 1.0 E-06 Exact
kilo cubic meter km3 m3 1.0 E+03 Exact
mega cubic meter Mm3 m3 1.0 E+06 Exact
liter L m3 1.0 E-03 Exact
cubic inch in3 m3 16.38706 E+06 Exact
cubic foot ft3 m3 28.31685 E -03 Exact
kilo cubic foot kft3 m3 28.31685 Exact
million cubic foot MMft3 m3 28.31685 E +03 Exact
barrel (42 US liquid gallons exactly) bbl m3 0.158987295 Exact
US liquid gallon (231 cubic inches exactly) US.gal m3 3.785411784 E-03 Exact
Imperial (U.K.) gallon UK.gal m3 4.54609 E-03 Exact
Standard Volume standard cubic meter sm3
kilo standard cubic meter ksm3 sm3 1.0 E+03 Exact
mega standard cubic meter Msm3 sm3 1.0 E+06 Exact
standard cubic foot scf sm3 28.31685 E -03 Exact
kilo standard cubic foot kscf sm3 28.31685 Exact
million standard cubic foot MMscf sm3 28.31685 E +03 Exact
barrel (standard) bbl (s) sm3 0.158987295 Exact
Normal Volume normal cubic meter m3(n)
kilo normal cubic meter km3(n) m3(n) 1.0 E+03 Exact
mega normal cubic meter Mm3(n) m3(n) 1.0 E+06 Exact
Volume per Volume volume fraction vol/vol
volume percentage %vol vol/vol 1.0 E-02 Exact
Volume per Pulse cubic meters per pulse m3/pulse
cubic centimeters per pulse cm3/pulse m3/pulse 1.0 E-06 Exact
litres per pulse l/pulse m3/pulse 1.0 E-03 Exact
cubic inches per pulse in3/pulse m3/pulse 1.63871E-05 Exact
cubic feet per pulse ft3/pulse m3/pulse 0.0283168 Exact
Volume per Time cubic meter per second m3/s
cubic meter per hour m3/hr m3/s 1/3600 Exact
cubic meter per day m3/d m3/s 1/86400 Exact
kilo cubic meter per second km3/s m3/s 1.0 E+03 Exact
kilo cubic meter per hour km3/hr m3/s (1/3600) E+03 Exact
kilo cubic meter per day km3/d m3/s (1/86400) E+03 Exact
mega cubic meter per hour Mm3/hr m3/s (1/3600) E+06 Exact
mega cubic meter per day Mm3/d m3/s (1/86400) E+06 Exact
cubic feet per hour ft3/hr m3/s 0.02831685/3600 Exact
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 187

Type of unit Description Unit Convert to Excel constant Multiply by Conversion


cubic feet per day ft3/d m3/s 0.02831685/86400 Exact
kilo cubic feet per hour kft3/hr m3/s 28.31685/3600 Exact
kilo cubic feet per day kft3/d m3/s 28.31685/86400 Exact
million cubic feet per hour Mft3/hr m3/s 28316.85/3600 Exact
million cubic feet per day Mft3/d m3/s 28316.85/86400 Exact
barrels per hour bbl/hr m3/s 0.158987295/3600 Exact
barrels per day bbl/d m3/s 0.158987295/86400 Exact
Standard Volume per standard cubic meter per second sm3/s
Time
standard cubic meter per hour sm3/hr sm3/s 1/3600 Exact
standard cubic meter per day sm3/d sm3/s 1/86400 Exact
kilo standard cubic meter per second ksm3/s sm3/s 1.0 E+03 Exact
kilo standard cubic meter per hour ksm3/hr sm3/s (1/3600) E+03 Exact
kilo standard cubic meter per day ksm3/d sm3/s (1/86400) E+03 Exact
mega standard cubic meter per hour Msm3/hr sm3/s (1/3600) E+06 Exact
mega standard cubic meter per day Msm3/d sm3/s (1/86400) E+06 Exact
standard cubic feet per hour scf/hr sm3/s 0.02831685/3600 Exact
standard cubic feet per day scf/d sm3/s 0.02831685/86400 Exact
kilo standard cubic feet per hour kscf/hr sm3/s 28.31685/3600 Exact
kilo standard cubic feet per day kscf/d sm3/s 28.31685/86400 Exact
million standard cubic feet per hour MMscf/hr sm3/s 28316.85/3600 Exact
million standard cubic feet per day MMscf/d sm3/s 28316.85/86400 Exact
barrels per hour (standard) bbl/hr sm3/s 0.158987295/3600 Exact
barrels per day (standard) bbl/d sm3/s 0.158987295/86400 Exact
Normal Volume per normal cubic meter per second m3(n)/s
Time
normal cubic meter per hour m3(n)/hr m3(n)/s 1/3600 Exact
normal cubic meter per day m3(n)/d m3(n)/s 1/86400 Exact
kilo normal cubic meter per second km3(n)/s m3(n)/s 1.0 E+03 Exact
kilo normal cubic meter per hour km3(n)/hr m3(n)/s (1/3600) E+03 Exact
kilo normal cubic meter per day km3(n)/d m3(n)/s (1/86400) E+03 Exact
mega normal cubic meter per hour Mm3(n)/hr m3(n)/s (1/3600) E+06 Exact
mega normal cubic meter per day Mm3(n)/d m3(n)/s (1/86400) E+06 Exact

Terminology
Term Description Same as
Heating Value Usually the same as Gross Heating Value
Calorific Value Usually the same as Superior Calorific Value
Superior Calorific Value Heating value when assuming that water formed at the combustion stays in the gaseous state. Gross Heating Value
From ISO6976.
Inferior Calorific Value Heating value when assuming that water formed at the combustion has totally condensed to the liquid Net Heating Value
state.
From ISO6976.
Gross Heating Value Heating value when assuming that water formed at the combustion stays in the gaseous state Superior Calorific Value
Term used in GPA2172.
Net Heating Value Heating value when assuming that water formed at the combustion has totally condensed to the liquid Inferior Calorific Value
state.
Term used in GPA2172.
Molar Mass Ratio Ratio of molar mass of gas and molar mass of air at the base conditions Specific Gravity
Ideal Specific Gravity
Ideal Relative Density
Relative Density Ratio of real mass density of gas and real mass density of air at the base conditions Real Relative Density
Real Specific Gravity
Specific Gravity Ratio of real mass density of gas and real density of air at the base conditions Molar Mass Ratio
Ideal Specific Gravity
Ideal Relative Density
IT
188 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Standard composition
The Standard Composition is a standard array of mole fractional
values that is used by all functions that require a (partial)
compositional analysis.
The following table defines the sequence of the components and
also defines which function uses which component.

Component Used in Used in Used in Used in Used in GERG Used in MR113


AGA8 / AGA10 ISO6976 GPA2172 AGA5 2008
Methane     
Nitrogen      
Carbon Dioxide      
Ethane     
Propane     
Water   (2)   (3)
Hydrogen Sulphide      
Hydrogen    
Carbon Monoxide    
Oxygen      
i-Butane     
n-Butane     
i-Pentane     
n-Pentane     
n-Hexane     
n-Heptane     
n-Octane    
n-Nonane    
n-Decane    
Helium     
Argon   
Neo-Pentane (1)  (1) (1) (1)

1) Depending on function input 'Neo-Pentane mode' the value is added to i-Pentane or n-Pentane or it is neglected.
2) GPA2172 uses the specified water fraction for wet gas calculation only.
3) MR113 requires the input water fraction to be 0. The output water fraction is calculated from absolute humidity
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 189

Notes
IT
190 SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN

Notes
IT
SPIRIT EXLERATE | FUNCTION REFERENCE MANUAL | CM/EXL/FR -EN 191

Notes

ABB b.v. ABB Inc.
Measurement & Analytics Measurement & Analytics
Prof. Dr. Dorgelolaan 20 7051 Industrial Boulevard
5613 AM Eindhoven Bartlesville OK 74006
The Netherlands United States of America
Phone: +31 40 236 9445 Phone: +1 800 442 3097
Mail: nl-spiritit-sales@abb.com
ABB Limited
ABB Malaysia Sdn Bhd. Measurement & Analytics
Measurement & Analytics Oldends Lane, Stonehouse
Lot 608, Jalan SS 13/1K Gloucestershire, GL10 3TA
47500 Subang Jaya United Kingdom
Selangor Darul Ehsan, Malaysia Phone: +44 7730 019 180
Phone: +60 3 5628 4888

abb.com/midstream

CM/eXL/FR-EN Rev. B  10.2017


We reserve the right to make technical changes or modify the contents of this document
without prior notice. With regard to purchase orders, the agreed particulars shall prevail.
ABB AG does not accept any responsibility whatsoever for potential errors or possible lack
of information in this document.
We reserve all rights in this document and in the subject matter and illustrations contained
therein. Any reproduction, disclosure to third parties or utilization of its contents – in
whole or in parts – is forbidden without prior written consent of ABB.
© ABB 2017

You might also like