SmartSignal Expression Syntax

Unit Conversions

Electric Current

UnitStandard UnitUnit Conversion Function
AmpsAToAmps
KiloampskAToKiloamps
MilliampsmAToMilliamps

Electric Potential

UnitStandard UnitUnit Conversion Function
MillivoltsmVToMillivolts
VoltsVToVolts
KilovoltskVToKilovolts

Flow Rate - Mass

UnitStandard UnitUnit Conversion Function
pound per secondlbm/secToPoundsOfMassPerSecond
pound per minutelbm/minToPoundsOfMassPerMinute
pound per hourlbm/hrToPoundsOfMassPerHour
pound per daylbm/dayToPoundsOfMassPerDay
kilopounds per secklbm/secToThousandsOfPoundsOfMassPerSecond
kilopound per minuteklbm/minToThousandsOfPoundsOfMassPerMinute
kilopound per hourklbm/hrToThousandsOfPoundsOfMassPerHour
kilopound per dayklbm/dayToThousandsOfPoundsOfMassPerDay
megapound per secondMlbm/secToMillionsOfPoundsOfMassPerSecond
megapound per minuteMlbm/minToMillionsOfPoundsOfMassPerMinute
megapound per hourMlbm/hrToMillionsOfPoundsOfMassPerHour
megapound per dayMlbm/dayToMillionsOfPoundsOfMassPerDay
kilograms per seckg/secToKilogramsOfMassPerSecond
kilograms per minutekg/minToKilogramsOfMassPerMinute
kilograms per hourkg/hrToKilogramsOfMassPerHour
kilograms per daykg/dayToKilogramsOfMassPerDay
metric ton per secondMetric Ton/secToMetricTonsPerSecond
metric ton per hourMetric Ton/hrToMetricTonsPerHour
metric ton per dayMetric Ton/dayToMetricTonsPerDay
metric ton per minuteMetric Ton/minToMetricTonsPerMinute

Flow Rate - Volumetric

UnitStandard UnitUnit Conversion Function
Barrels of oil per daybbl/dayToBarrelsOfOilPerDay
Barrels of oil per hourbbl/hrToBarrelsOfOilPerHour
Barrels of oil per minutebbl/minToBarrelsOfOilPerMinute
Barrels of oil per secondbbl/secToBarrelsOfOilPerSecond
Cubic centimeters per daycm3/dayToCubicCentimetersPerDay
Cubic centimeters per hourcm3/hrToCubicCentimetersPerHour
Cubic centimeters per minutecm3/minToCubicCentimetersPerMinute
Cubic centimeters per secondcm3/secToCubicCentimetersPerSecond
Cubic feet per dayft3/dayToCubicFeetPerDay
Cubic feet per hourft3/hrToCubicFeetPerHour
Cubic feet per minuteft3/minToCubicFeetPerMinute
Cubic feet per secondft3/secToCubicFeetPerSecond
Gallons per dayga/dayToGallonsPerDay
Gallons per hourgal/hrToGallonsPerHour
Gallons per minutegal/minToGallonsPerMinute
Gallons per secondgal/secToGallonsPerSecond
Cubic inches per dayin3/dayToCubicInchesPerDay
Cubic inches per hourin3/hrToCubicInchesPerHour
Cubic inches per minutein3/minToCubicInchesPerMinute
Cubic inches per secondin3/secToCubicInchesPerSecond
Thousands of barrels of oil per daykbbl/dayToThousandsOfBarrelsOfOilPerDay
Thousands of barrels of oil per hourkbbl/hrToThousandsOfBarrelsOfOilPerHour
Thousands of barrels of oil per minutekbbl/minToThousandsOfBarrelsOfOilPerMinute
Thousands of barrels of oil per secondkbbl/secToThousandsOfBarrelsOfOilPerSecond
Thousands of cubic feet per dayk(ft3)/dayToThousandsOfCubicFeetPerDay
Thousands of cubic feet per hourk(ft3)/hrToThousandsOfCubicFeetPerHour
Thousands of Cubic feet per minutek(ft3)/minToThousandsOfCubicFeetPerMinute
Thousands of cubic feet per secondk(ft3)/secToThousandsOfCubicFeetPerSecond
Liters per dayliter/dayToLitersPerDay
Liters per hourliter/hrToLitersPerHour
Liters per minuteliter/minToLitersPerMinute
Liters per secondliter/secToLitersPerSecond
Cubic meters per daym3/dayToCubicMetersPerDay
Cubic meters per hourm3/hrToCubicMetersPerHour
Cubic meters per minutem3/minToCubicMetersPerMinute
Cubic meters per secondm3/secToCubicMetersPerSecond
Thousands of cubic meter per dayk(m3)/dayToThousandsOfCubicMetersPerDay
Thousands of cubic meter per hourk(m3)/hrToThousandsOfCubicMetersPerHour
Thousands of Cubic meter per minutek(m3)/minToThousandsOfCubicMetersPerMinute
Thousands of cubic meter per secondk(m3)/secToThousandsOfCubicMetersPerSecond
Millions of cubic meter per dayM(m3)/dayToMillionsOfCubicMetersPerDay
Millions of cubic meter per hourM(m3)/hrToMillionsOfCubicMetersPerHour
Millions of cubic meter per minuteM(m3)/minToMillionsOfCubicMetersPerMinute
Millions of cubic meter per secondM(m3)/dayToMillionsOfCubicMetersPerSecond
Millions of barrels of oil per dayMbbl/dayToMillionsOfBarrelsOfOilPerDay
Millions of barrels of oil per hourMbbl/hrToMillionsOfBarrelsOfOilPerHour
Millions of barrels of oil per minuteMbbl/minToMillionsOfBarrelsOfOilPerMinute
Millions of barrels of oil per secondMbbl/secToMillionsOfBarrelsOfOilPerSecond
Millions of cubic feet per dayM(ft3)/dayToMillionsOfCubicFeetPerDay
Millions of cubic feet per hourM(ft3)/hrToMillionsOfCubicFeetPerHour
Millions of cubic feet per minuteM(ft3)/minToMillionsOfCubicFeetPerMinute
Millions of cubic feet per secondM(ft3)/secToMillionsOfCubicFeetPerSecond

Frequency

UnitStandard UnitUnit Conversion Function
Cycles per secondcycles/secToCyclesPerSecond
Cycles per minutecycles/minToRevolutionsPerMinute
HertzHzToHertz
Revolutions per minuterpmToCyclesPerMinute

Length

UnitStandard UnitUnit Conversion Function
MilliinchesmilsToMilliInches
InchesinToInches
feetftToFeet
MicrometersµmToMicrometers
MillimetersmmToMilliMeters
CentimeterscmToCentiMeters
MetersmToMeters

Mass

UnitStandard UnitUnit Conversion Function
KilogramskgToKilograms
PoundslbmToPounds
KilopoundsklbmToKilopounds

Power

UnitStandard UnitUnit Conversion Function
horsepowerhpToHorsepower
british thermal units per hourbtu/hourToBtuPerHour
millions of british thermal units per hourMbtu/hrToMillionsOfBtuPerHour
WattsWToWatts
KilowattskWToKilowatts
MegawattsMWToMegawatts
Newton-meters per secondN-m/secToNewtonMetersPerSecond

Pressure

UnitStandard UnitUnit Conversion Function
AtmospheresatmToAtmospheres
Pounds per square inch (absolute)psiaToPoundsPerSquareInchAbsolute
Pounds per square inch (gauge)psigToPoundsPerSquareInchGauge
Bar (absolute)bar aToBars
Bar (gauge)bar gToBarsGauge
MillibarsmBarToMillibars
Millimeters of watermm.H2OToMillimetersOfH2O
Inches of waterin.H2OToInchesOfH2O
Feet of waterft.H2OToFeetOfH2O
Millimeters of mercurymm.HgToMillimetersOfMercury
Inches of mercuryin.HgToInchesOfMercury
TorrTorrToTorrs
Kilograms per square centimeter absolutekg/cm2 aToKilogramsPerSquareCentimeterAbsolute
Kilograms per square centimeter gaugekg/cm2 gToKilogramsPerSquareCentimeterGauge
MicropascalµPaToMicropascals
MillipascalmPaToMillipascals
CentipascalcPaToCentipascals
DecipascaldPaToDecipascals
PascalPaToPascals
DekapascaldaPaToDekapascals
HectopascalhPaToHectopascals
KilopascalkPaToKilopascals
MegapascalMPaToMegapascals

Reactive Power

UnitStandard UnitUnit Conversion Function
MillivarmVarToMillivar
VarVarToVar
KilovarkVarToKilovar
MegavarMVarToMegavar

Speed

UnitStandard UnitUnit Conversion Function
Inches per secondin/secToInchesPerSecond
Feet per minuteft/minToFeetPerMinute
Feet per secondft/secToFeetPerSecond
Micrometers per secondµm/secToMicrometersPerSecond
Millimeters per secondmm/secToMicrometersPerSecond
Meters per minutem/minToMetersPerMinute
Meters per secondm/secToMetersPerSecond

Temperature

UnitStandard UnitUnit Conversion Function
FahrenheitFahrenheitToFahrenheit
RankineRankineToRankine
CelciusCelciusToCelsius
KelvinKelvinToKelvin

Time

UnitStandard UnitUnit Conversion Function
DaysdaysToDays
HourshoursToHours
MinutesminutesToMinutes
SecondssecondsToSeconds
YearsyearsToYears

Torque

UnitStandard UnitUnit Conversion Function
Foot pound forceft-lbFToFootPoundsOfForce
Newton-metersN-mToNewtonMeters

Mathematical Functions

This topic lists the Mathematical function descriptions that are currently supported by the SmartSignal Expression Syntax feature.

Algebraic

FunctionDescriptionArgumentExample
Abs ()Returns the absolute value of a number(Float value)

value: A value to find the absolute value of

Abs(-9) = 9; Abs(9) = 9
Exp ( )Returns e raised to the specified power(Float power)

power: A power to raise e to

Exp(2) = 7.389
Log ( )Returns the natural (base-e) logarithm of a number(Float value)

value: A number to find its natural logarithm

log(10) = 2.303
Log10 ( )Returns the base 10 logarithm of a number(Float value)

value: A number to find its base 10 logarithm

log10(10) = 1
Modulus ( )The remainder after a number is divided by a divisor(Float dividend, Float divisor)

dividend: A dividend or numerator of the division

divisor: A divisor or denominator of the division

Modulus (5.3, 2.0) = 1.3
Power ( )Returns the result of a number raised to a power(Float value, Float power)

value: The base of the exponentiation

power: The power (exponent) of the exponentiation

Power(2,3) = 8
Quotient ( )Returns the integer portion of a division(Float dividend, Float divisor)

dividend: The dividend or numerator of the division

divisor: The divisor or denominator of the division

Quotient(13,5) = 2
Sign ( )Returns the sign of a number: 1 if the number is positive, -1 if the number is negative(Float value)

value: A value to find the sign of

sign(-5) = -1
Sqrt ( )Returns the square root of a number(Float value)

value: A number to calculate its square root

sqrt(4) = 2
Sum ( )Returns the summation of a set of tag values(List<Float> tagValues, Float lowerThreshold, Float upperThreshold, Boolean alwaysEvaluate)

tagValues: A list of tag values on which the summation will be evaluated. Either a list of tags or a list of tag history can be accepted. If a list of tags is used only active tags (Active in Asset checked) will be used

lowerThreshold: The lower threshold will be applied to the list of tagvalues. Any tag value less than the lowerThreshold will be ignored during evaluation. If a threshold is not specified or NaN() than a lowerThreshold will not be applied

upperThreshold: The upper threshold will be applied to the list of tagvalues. Any tag value greater than the upperThreshold will be ignored during evaluation. If a threshold is not specified or NaN() than an upperThreshold will not be applied

alwaysEvaluate: When set to true NaNs and tag values outside of the threshold(s) will be ignored and an summation of the remaining tag values will be returned. When set to false any NaN or tag value outside of the threshold(s) will cause a NaN to be returned. If not specified a value of true is assumed

Sum([Tag1, Tag2, Tag3]); Sum (Tag1.Actual(20))

Sum ([Tag1, Tag2, Tag3], Tag1.ActualHigh, Tag1,ActualLow, False)

Statistical

FunctionDescriptionArgumentExample
Average ( )Returns the average of a set of tag values(List<Float> tagValues, Float lowerThreshold, Float upperThreshold, Boolean alwaysEvaluate)

tagValues: A list of tag values on which the average will be evaluated. Either a list of tags or a list of tag history can be accepted. If a list of tags is used only active tags (Active in Asset checked) will be used

lowerThreshold: The lower threshold will be applied to the list of tagvalues. Any tag value less than the lowerThreshold will be ignored during evaluation. If a threshold is not specified or NaN() than a lowerThreshold will not be applied

upperThreshold: The upper threshold will be applied to the list of tagvalues. Any tag value greater than the upperThreshold will be ignored during evaluation. If a threshold is not specified or NaN() than an upperThreshold will not be applied.

alwaysEvaluate: When set to true NaNs and tag values outside of the threshold(s) will be ignored and an average of the remaining tag values will be returned. When set to false any NaN or tag value outside of the threshold(s) will cause a NaN to be returned. If not specified a value of true is assumed.

Average([Tag1, Tag2, Tag3]); Average(Tag1.Actual(20));

Average([Tag1, Tag2, Tag3], Tag1.ActualLow, Tag1,ActualHigh, False)

Maximum ( )Returns the maximum of a set of tag values(List<Float> tagValues, Float lowerThreshold, Float upperThreshold, Boolean alwaysEvaluate)

tagValues: A list of tag values on which the maximum will be evaluated. Either a list of tags or a list of tag history can be accepted. If a list of tags is used only active tags (Active in Asset checked) will be used.

lowerThreshold: The lower threshold will be applied to the list of tagvalues. Any tag value less than the lowerThreshold will be ignored during evaluation. If a threshold is not specified or NaN() than a lowerThreshold will not be applied

upperThreshold: The upper threshold will be applied to the list of tagvalues. Any tag value greater than the upperThreshold will be ignored during evaluation. If a threshold is not specified or NaN() than an upperThreshold will not be applied.

alwaysEvaluate: When set to true NaNs and tag values outside of the threshold(s) will be ignored and an average of the remaining tag values will be returned. When set to false any NaN or tag value outside of the threshold(s) will cause a NaN to be returned. If not specified a value of true is assumed.

Maximum([Tag1, Tag2, Tag3]); Maximum (Tag1.Actual(20))

Maximum ([Tag1, Tag2, Tag3], Tag1.ActualHigh, Tag1,ActualLow, False)

Minimum ( )Returns the minimum of a set of tag values(List<Float> tagValues, Float lowerThreshold, Float upperThreshold, Boolean alwaysEvaluate)

tagValues: A list of tag values on which the maximum will be evaluated. Either a list of tags or a list of tag history can be accepted. If a list of tags is used only active tags (Active in Asset checked) will be used.

lowerThreshold: The lower threshold will be applied to the list of tagvalues. Any tag value less than the lowerThreshold will be ignored during evaluation. If a threshold is not specified or NaN() than a lowerThreshold will not be applied

upperThreshold: The upper threshold will be applied to the list of tagvalues. Any tag value greater than the upperThreshold will be ignored during evaluation. If a threshold is not specified or NaN() than an upperThreshold will not be applied.

alwaysEvaluate: When set to true NaNs and tag values outside of the threshold(s) will be ignored and an average of the remaining tag values will be returned. When set to false any NaN or tag value outside of the threshold(s) will cause a NaN to be returned. If not specified a value of true is assumed.

Minimum([Tag1, Tag2, Tag3]); Minimum (Tag1.Actual(20))

Minimum ([Tag1, Tag2, Tag3], Tag1.ActualHigh, Tag1,ActualLow, False)

MeanShiftedWindow ( )Returns the average of a set of tag values over a window shifted backwards from current(List<Float> tagValues, Integer windowSize, Integer windowStart)

tagValues: A list of tag values to find the average of. Be sure that the number of tag values provided is greater than windowSize + WindowStart

windowSize: The size of the window to average the tagValues

windowStart: The index (datapolls) back from current of where to start the windowSize. A value of 0 will not shift the window and yield the same results as average()

MeanShiftedWindow(Tag.Actual(11), 5, 5)
Median ( )Returns the median of a set of tag values(List<Float> tagValues, Float lowerThreshold, Float upperThreshold, Boolean alwaysEvaluate)

tagValues: A list of tag values on which the median will be evaluated. Either a list of tags or a list of tag history can be accepted. If a list of tags is used only active tags (Active in Asset checked) will be used.

lowerThreshold: The lower threshold will be applied to the list of tagvalues. Any tag value less than the lowerThreshold will be ignored during evaluation. If a threshold is not specified or NaN() than a lowerThreshold will not be applied

upperThreshold: The upper threshold will be applied to the list of tagvalues. Any tag value greater than the upperThreshold will be ignored during evaluation. If a threshold is not specified or NaN() than an upperThreshold will not be applied

alwaysEvaluate: When set to true NaNs and tag values outside of the threshold(s) will be ignored and an median of the remaining tag values will be returned. When set to false any NaN or tag value outside of the threshold(s) will cause a NaN to be returned. If not specified a value of true is assumed

Median([Tag1, Tag2, Tag3]); Median (Tag1.Actual(20));

Median ([Tag1, Tag2, Tag3], Tag1.ActualHigh, Tag1,ActualLow, False)

Random ( )Returns a random number between the specified limits(Integer minValue, Integer maxValue)

minValue: The result will be greater than or equal to minValue

maxValue: The result will be less than maxValue

Random(0, 1)
SlopePerPoll ( )

Returns the 1st order regression modeling slope of a set of tag valuesThe specified tag values will be used for the y coordinates. X coordinates will be indexed. The resultant slope will be measured in change in tag value per index (E.g. change in tag value per datapoll rate)

(List<Float> tagValues)

tagValues: A set of tag values to find the slope of

Slope(Tag.Actual(10))
Spread ( )Returns the spread of a set of tag values. Spread is the difference between the maximum and minimum tag values(List<Float> tagValues, Float lowerThreshold, Float upperThreshold, Boolean alwaysEvaluate)

tagValues: A list of tag values on which the spread will be evaluated. Either a list of tags or a list of tag history can be accepted. If a list of tags is used only active tags (Active in Asset checked) will be used.

lowerThreshold: The lower threshold will be applied to the list of tagvalues. Any tag value less than the lowerThreshold will be ignored during evaluation. If a threshold is not specified or NaN() than a lowerThreshold will not be applied.

upperThreshold: The upper threshold will be applied to the list of tagvalues. Any tag value greater than the upperThreshold will be ignored during evaluation. If a threshold is not specified or NaN() than an upperThreshold will not be applied.

alwaysEvaluate: When set to true NaNs and tag values outside of the threshold(s) will be ignored and an spread of the remaining tag values will be returned. When set to false any NaN or tag value outside of the threshold(s) will cause a NaN to be returned. If not specified a value of true is assumed.

Spread([Tag1, Tag2, Tag3]); Spread (Tag1.Actual(20))

Spread ([Tag1, Tag2, Tag3], Tag1.ActualHigh, Tag1,ActualLow, False)

StandardDeviation ( )Returns the standard deviation of a set of tag values(List<Float> tagValues, Float lowerThreshold, Float upperThreshold, Boolean alwaysEvaluate)

tagValues: A list of tag values on which the spread will be evaluated. Either a list of tags or a list of tag history can be accepted. If a list of tags is used only active tags (Active in Asset checked) will be used.

lowerThreshold: The lower threshold will be applied to the list of tagvalues. Any tag value less than the lowerThreshold will be ignored during evaluation. If a threshold is not specified or NaN() than a lowerThreshold will not be applied.

upperThreshold: The upper threshold will be applied to the list of tagvalues. Any tag value greater than the upperThreshold will be ignored during evaluation. If a threshold is not specified or NaN() than an upperThreshold will not be applied.

alwaysEvaluate: When set to true NaNs and tag values outside of the threshold(s) will be ignored and an spread of the remaining tag values will be returned. When set to false any NaN or tag value outside of the threshold(s) will cause a NaN to be returned. If not specified a value of true is assumed.

StandardDeviation([Tag1, Tag2, Tag3]); Spread (Tag1.Actual(20))

StandardDeviation ([Tag1, Tag2, Tag3], Tag1.ActualHigh, Tag1,ActualLow, False)

Variance ( )Returns the variance of a set of tag values(List<Float> tagValues, Float lowerThreshold, Float upperThreshold, Boolean alwaysEvaluate)

tagValues: A list of tag values on which the median will be evaluated. Either a list of tags or a list of tag history can be accepted. If a list of tags is used only active tags (Active in Asset checked) will be used.

lowerThreshold: The lower threshold will be applied to the list of tagvalues. Any tag value less than the lowerThreshold will be ignored during evaluation. If a threshold is not specified or NaN() than a lowerThreshold will not be applied

upperThreshold: The upper threshold will be applied to the list of tagvalues. Any tag value greater than the upperThreshold will be ignored during evaluation. If a threshold is not specified or NaN() than an upperThreshold will not be applied

alwaysEvaluate: When set to true NaNs and tag values outside of the threshold(s) will be ignored and an median of the remaining tag values will be returned. When set to false any NaN or tag value outside of the threshold(s) will cause a NaN to be returned. If not specified a value of true is assumed

Variance([Tag1, Tag2, Tag3]); Variance (Tag1.Actual(20))

Variance ([Tag1, Tag2, Tag3], Tag1.ActualHigh, Tag1,ActualLow, False)

VarianceShiftedWindow ( )Returns the variance of a set of tag values over a window shifted backwards from current(List<Float> tagValues, Integer windowSize, Integer windowStart)

tagValues: A list of tag values to find the variance of. Be sure that the number of tag values provided is greater than windowSize + WindowStart

windowSize: The size of the window to find the variance of the tagValues

windowStart: The index (datapolls) back from current of where to start the windowSize. A value of 0 will not shift the window and yield the same results as variance()

VarianceShiftedWindow(Tag.Actual(11), 5, 5)

Trignometric

FunctionDescriptionArgumentExample
Sin ( )Returns the sine of an angle(Float angle)

angle: An angle in radians

Sin(π) = 0; Sin(π/2) = 1
Asin ( )Returns the angle in radians whose sine is the specified number(Float value)

value: A number representing a sine

asin(0) = 0; asin(1) = π/2
Cos ( )Returns the cosine of an angle(Float angle)

angle: An angle in radians

Cos(π) = -1; Cos(π/2) = 0
ACos ( )Returns the angle in radians whose cosine is the specified number(Float value)

value: A number representing a cosine

acos(0) = π/2; acos(1) = 0
Tan ( )Returns the tangent of an angle(Float angle)

angle: An angle in radians

Tan(π) = 0; Tan(π/2) = ∞
Atan ( )Returns the angle in radians whose tangent is the specified number(Float value)

value: A number representing a tangent

atan(0) = 0; atan(1) = π/4
Atan2 ( )Returns the angle in radians of the specified x and y coordinates(Float x, Float y)

x: The x coordinate of a point

y: The y coordinate of a point

atan2(0,1) = π/2; atan2(1,0) = 0; atan2(1,1) = π/4
Pi ( )Return the value of Pi (πN/A Pi() = π or 3.14159265…
ToRadians ( )Converts an angle from degrees to radians(Float degrees)

degrees: An angle measured in degrees

ToRadians(Tag.Actual)
ToDegrees ( )Converts an angle from radians to degrees(Float radians)

radians: An angle measured in radians

ToDegrees(Tag.Actual)

Smoothing

FunctionDescriptionArgumentExample
MovingAverage ( )This function applies smoothing by averaging the set of tag values(List<Float> values)

values: A set of tag history to be smoothed

MovingAverage(Tag.Actual(6))
Olympic ( )This function applies smoothing by using a moving average after discarding the highest and lowest values(List<Float> values)

values: A set of tag history to be smoothed

Olympic(Tag.Actual(6))
Spline ( )This function applies smoothing via a spline curve fit of the data(List<Float> values, Float factor, Float stdDeviation)

values: A set of tag history to be smoothed

factor: A value between 0 and 1 scaling the amount of fitting. A value of 0 will fit the data to a line, a value of 1 will result in a perfect fit (i.e. no smoothing). A factor of 0.25 is often a good place to start.

stdDeviation: The standard deviation of the data

Spline(Tag.Actual(6), 0.25, Tag.ActualStandardDeviationReference)

Rounding

FunctionDescriptionArgumentExample
Round ( )Returns the nearest integer value(Float value)

value: The number to be rounded

Round(2.4) = 2, Round(2.5) = 3
RoundUp ( )Returns the smallest integer value that is greater than or equal to a value(Float value)

value: The number to be rounded up

RoundUp(5.3) = 6, RoundUp(-5.3) = -5, RoundUp(5) = 5
RoundDown ( )Returns the largest integer value that is less than or equal to a value(Float value)

value: The number to be rounded down

RoundDown(5.3) = 5, RoundDown(-5.3) = -6
Truncate ( )Truncates a number to an integer by removing the decimal(Float value)

value: The number to be truncated

Truncate(6.6) = 6, Truncate(-5.3) = -5

Logical Functions

This topic lists the Mathematical function descriptions that are currently supported by the SmartSignal Expression Syntax feature.

Logical Functions

FunctionDescriptionArgumentsExample
WindowRatio ( )This function looks at a window of data and compares it to a threshold. If the number of true comparisons is greater than or equal to the trueSize than windowRatio will return true otherwise it will return false(Integer trueSize, List<Float> values, String comparisonOperator, Float threshold, Integer requiredGoodSize)

trueSize: The trueSize specifies the number of true comparison must be found in the window (specified in values) for windowRatio to return True. When a NaN present in values the TrueSize is divided by the window to create a ratio (or percentage) for which

values: A list of tag values to be compared to the threshold. The window size is specified by the size of the list. E.g. Tag.Actual(20) is a window of 20

comparisonOperator: Specifies how to compare the values to the threshold. Valid options are: =, >, <, >=, <=, !=. The operator must be in quotes, “=”

threshold: A threshold that the values will be compared to

requiredGoodSize: The required number of numeric values. If the number of numeric (non NaNs) in values is less than this value windowRatio will return false. Typically requiredGoodSize is about one half the window size

WindowRatio(17, Tag.ResidualIndicationPositive(18), ”=”, 1, 9)
Compare ( )This function looks at a window of data and compares it to a threshold. If the number of true comparisons is greater than or equal to the trueSize than compare will return true otherwise it will return false(Integer trueSize, List<Float> tagValues, String compareOperator, Float threshold)

trueSize: The trueSize specifies the number of true comparison must be found in the window (specified in tagValues) for windowRatio to return True

tagValues: A list of tag values to be compared to the threshold. The window size is specified by the size of the list. E.g. Tag.Actual(20) is a window of 20. When a NaN present in tagValues compare will return a false

compareOperator: Specifies how to compare the tagValues to the threshold. Valid options are: =, >, <, >=, <=, !=. The operator must be in quotes, “=”

threshold: A threshold that the tagValues will be compared to

Compare(17, Tag.ResidualIndicationPositive(18), ”=”, 1)
IsConstantValue ( )

This function returns true if the values provided are constant in value.

The average of all provided values is evaluated. A constant value is determined if all values are within one (plus or minus) epsilon of the average. If any value is a NaN the function will return false. If any value is outside of the lowerThreshold or upperThreshold the function will return false.

(List<Float> values, Float epsilon, Float lowerThreshold, Float upperThreshold)

values: A list of tag history

epsilon: Specifies the resolution of how similar the values most be to be considered constant. All values most be within + or - one epsilon

lowerThreshold: All values must be higher in value then the lowerThreshold or the function will return false. Outlier checking can be ignored by specifying a lowerThreshold of Nan()

upperThreshold: All values must be lower in value then the upperThreshold or the function will return false. Outlier checking can be ignored by specifying an upperThreshold of NaN()

isConstantValue(Tag.Actual(10), 0.00000001, Tag.ActualHigh, Tag.ActualLow)
IsStep ( )

This function returns true if there is a step change in values provided.

Olympic smoothing will be performed on the values provided (excluding the most recent observation) to obtain the averageValue previous to the most recent observation. The two most recent observations will be compared to the averageValue evaluating the difference. A step change is determined if for both comparisons: value – averageValue > |stepUpThreshold| or value – averageValue < -|stepDownThreshold|

(List<Float> actualValues, Float stepUpThreshold, Float stepDownThreshold )

values: A set of tag history containing at least 4 observations E.g. Tag.Actual(7)

stepUpThreshold: Required magnitude of the step change in the positive direction. Step up can be ignored by specifying a stepUpThreshold of NaN()

stepDownThreshold: Required magnitude of the step change in the negative direction. Step down can be ignored by specifying a stepUpThreshold of NaN()

isStep(Tag.Actual(7), Tag.StepHigh, Tag.StepLow)
IsBetween ( )Returns true if the value is between the lower and upper thresholds(Float value, Float lowerThreshold, Float upperThreshold)

value: The value to validate is between the lower and upper thresholds

lowerThreshold: The lower threshold for which value must be greater than

upperThreshold: The upper threshold for which value must be less than

trueSize: The minimum number of values that must be between the thresholds to evaluate as true

isBetween(Tag.Actual, Tag.ActualLow, Tag.ActualLow)
IsEqual ( )

Returns true if the left and right values are equal to each other within a value of epsilon

Using the equal symbol (”=”) is the same as IsEqual() with an epsilon of 0.00000001

(Float leftValue, Float rightValue, Float epsilon

leftValue: The left side of the equality

rightValue: The right side of the equality

epsilon: The acceptable amount of error. For IsEqual()( to return true abs(leftValue – rightValue) < epsilon

IsEqual(Tag1.Actual, Tag2.Actual, 0.00000001)
IsNaN ( )Returns true of the value is a not a number (NaN)(Float value)

value: The value to validate is a NaN

IsNaN(Tag.Actual)
IsOutlier ( )Returns true if the value are outside the lower and upper thresholds(Float value, Float lowerThreshold, Float upperThreshold)

value: The value to validate is an outlier

lowerThreshold: The lower threshold for which value must be less than

upperThreshold: The upper threshold for which value must be greater than

IsOutlier(Tag.Actual, Tag.ActuaLow, Tag.ActualLow)
IsNanOrOutlier ( )Returns true if the value are outside the lower and upper thresholds or a NaN(Float value, Float LowerThreshold, Float upperThreshold)

value: The value to validate is an outlier or NaN

LowerThreshold: The lower threshold for which value must be less than

upperThreshold: The upper threshold for which value must be greater than

IsNanOrOutlier(Tag.Actual, Tag.ActualLow, Tag.ActualHigh)
IsNanOrOutlier ( )Returns true if the value are outside the lower and upper thresholds or a NaN(Float value, Float LowerThreshold, Float upperThreshold)

value: The value to validate is an outlier or NaN

LowerThreshold: The lower threshold for which value must be less than

upperThreshold: The upper threshold for which value must be greater than

index: The index (datapolls) back from current of where to validate the a value. An index of 0 will not shift the window and yield the same results as using InNanOrOutlier without an index

InNanOrOutlier(Tag.Actual(6), Tag.ActualLow, Tag.ActualHigh, 5)
IsValidHistoryLength ( )

Returns true if all values are valid.

Invalid values are NaNs or values outside the lower and upper thresholds

(List<Float> values, Float lowerThreshold, Float upperThreshold)

values: A list of tag history

lowerThreshold: The lower threshold for which all values must be greater than. The lower threshold can be ignored by specifying NaN()

upperThreshold: The upper threshold for which all values must be less than. The upper threshold can be ignored by specifying NaN()

isValidHistoryLength(Tag.Actual(10), Tag.OutlierNegative, Tag.OutlierPositive)
IsValidHistoryLength ( )

Returns true if the number of valid values is greater than or equal to windowSize.

Invalid values are NaNs or values outside the lower and upper thresholds

(List<Float> values, Integer windowSize, Float lowerThreshold, Float upperThreshold)

values: A list of tag history

windowSize: The required number of valid values in the tag history

lowerThreshold: The lower threshold for which all values must be greater than. The lower threshold can be ignored by specifying NaN()

upperThreshold: The upper threshold for which all values must be less than. The upper threshold can be ignored by specifying NaN()

IsValidHistoryLength(Tag.Actual(12), 10, Tag.OutlierNegative, Tag.OutlierPositive)

Counting Functions

This topic lists the Mathematical function descriptions that are currently supported by the SmartSignal Expression Syntax feature.

Counting Functions

FunctionDescriptionArgumentsExample
CountComparison ( )This function looks at a window of data and compares it to a threshold then returns the number of times the comparison returns a true result(List<Float> tagValues, String comparisonOperator, Float threshold)

tagValues: A list of tag values to be compared to the threshold. The window size is specified by the size of the list. E.g. Tag.Actual(20) is a window of 20

comparisonOperator: Specifies how to compare the values to the threshold. Valid options are: =, >, <, >=, <=, !=. The operator must be in quotes, “=”

threshold: A threshold that the tagValues will be compared to

CountComparison(Tag.Actual(10), “>”, Tag.ActualHigh)
CountOutliers ( )This function looks at a window of data and returns the number of times an outlier is found(List<Float> values, Float lowerThreshold, Float upperThreshold)

values: A list of tag values to look for outliers in

lowerThreshold: The lower threshold for which value must be less than

upperThreshold: The upper threshold for which value must be greater than

CountOutliers(Tag.Actual(10), Tag.OutlierNegative, Tag.OutlierPositive)
CountNaNs ( )This function looks at a list of values and returns the number of times an NaN is found(List<Float> values)

values: A list of tag values to look for NaNs in

CountNaNs(Tag.Actual(10)); CountNaNs([Tag1.Actual, Tag2.Actual])

Steam Table Functions

All steam table function require a unitSet input. This is an integer from 0 to 6 that picks a set of units from the below table. The specified unitSet determines the require unit of measure of all inputs as well as the unit of measure of the functional output.

Unit SetEnglishSI CustomaryEnglish GaugeSI FormalSI kPaMetricMetric Formal
Unit Set Number0123456
Unit Set Name"ENG""SI""ENGG""SIF""SIK""MET""METF"
Temperature°F°C°FK°C°C°C
PressurePsiaBarPsigMpakPaBarkg/cm2
EnthalpyBtu/lbmkJ/kgBtu/lbmkJ/kgkJ/kgkcal/kgkcal/kg
EntropyBtu/lbm/°FkJ/kg/°CBtu/lbm/°FkJ/kg/°CkJ/kg/°CkJcalkg/°CkJcalkg/°C
Specific VolumeFt3/lbmt3/kgFt3/lbmt3/kgmt3/kgmt3/kgmt3/kg
QualityNon-DimNon-DimNon-DimNon-DimNon-DimNon-DimNon-Dim
Specific HeatBtu/lb/°FkJ/kg/°CBtu/lb/°FkJ/kg/°CkJ/kg/°Ckcal/kg/°Ckcal/kg/°C
Thermal ConductivityBtu/hr/ft/°FWatt/m/°CBtu/hr/ft/°FWatt/m/KWatt/m/°CWatt/m/°Ckcal/m/h/°C
Dynamic Viscositylbm/ft/hrCentipoiselbm/ft/hrPa-secCentipoiseCentipoiseCentipoise
Isentropic Expansion CoefficientNon-DimNon-DimNon-DimNon-DimNon-DimNon-DimNon-Dim
Sonic Velocityft/secm/secft/secm/secm/secm/secm/sec
FunctionDescriptionArgumentsExample
Saturation
StemTableSaturationPressure ( ) Returns the corresponding saturation steam pressure for the provided saturation temperature (Float temperature, Integer unitSet)

temperature: A saturated steam temperature value

StemTableSaturationPressure(Tag1.Actual.ToFahrenheit, 0)
SteamTableSaturationTemperature ( ) Returns the corresponding saturation steam temperature for the provided saturation pressure(Float pressure, Integer unitSet)

pressure: A saturated steam pressure value

SteamTableSaturationTemperature(Tag1.Actual.ToPoundsPerSquareInchAbsolute, 0)
SteamTableDynamicViscosity ( ) Returns the dynamic viscosity of steam(Float pressure, Float temperature, Integer unitSet)

pressure: A steam pressure value

temperature: A steam temperature value

SteamTableDynamicViscosity(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2.Actual.ToFahrenheit, 0)
SteamTableDynamicViscosityPQ ( ) Returns the dynamic viscosity of steam(Float pressure, Float quality, Integer unitSet)

pressure: A steam pressure value

quality: A steam quality. Vapor quality is the percentage of mass in a saturated mixture that is vapor.

SteamTableDynamicViscosityPQ(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableDynamicViscosityTQ ( ) Returns the dynamic viscosity of steam(Float temperature, Float quality, Integer unitSet)

temperature: A steam temperature value

quality: A steam quality. Vapor quality is the percentage of mass in a saturated mixture that is vapor.

SteamTableDynamicViscosityTQ(Tag1.Actual.ToFahrenheit, Tag2, 0)
Enthalpy
SteamTableEnthalpy ( ) Returns the enthalpy of steam(Float pressure, Float temperature, Integer unitSet)

pressure: A steam pressure value

temperature: A steam temperature value

SteamTableEnthalpy(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2.Actual.ToFahrenheit, 0)
SteamTableEnthalpyPS ( ) Returns the enthalpy of steam(Float pressure, Float entropy, Integer unitSet)

pressure: A steam pressure value

entropy: A steam entropy value

SteamTableEnthalpyPS(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableEnthalpyPQ ( ) Returns the enthalpy of steam(Float pressure, Float quality, Integer unitSet)

pressure: A saturated steam pressure value

quality: A steam quality. Vapor quality is the percentage of mass in a saturated mixture that is vapor.

SteamTableEnthalpyPQ(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableEnthalpyTQ ( ) Returns the enthalpy of steam(Float temperature, Float quality, Integer unitSet)

temperature: A steam temperature value

quality: A steam quality. Vapor quality is the percentage of mass in a saturated mixture that is vapor.

SteamTableEnthalpyTQ (Tag1.Actual.ToFahrenheit, Tag2, 0)
Entropy
SteamTableEntropy ( ) Returns the entropy of steam(Float pressure, Float temperature, Integer unitSet)

pressure: A steam pressure value

temperature: A steam temperature value

SteamTableEntropy(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2.Actual.ToFahrenheit, 0)
SteamTableEntropyPH ( ) Returns the entropy of steam(Float pressure, Float enthalpy, Integer unitSet)

pressure: A steam pressure value

enthalpy: A steam enthalpy value

SteamTableEntropyPH(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableEntropyPQ ( ) Returns the entropy of steam(Float pressure, Float quality, Integer unitSet)

pressure: A steam pressure value

quality: A steam quality. Vapor quality is the percentage of mass in a saturated mixture that is vapor.

SteamTableEntropyPQ(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableEntropyTQ ( ) Returns the entropy of steam(Float temperature, Float quality, Integer unitSet)

temperature A steam temperature value

quality A steam quality. Vapor quality is the percentage of mass in a saturated mixture that is vapor.

SteamTableEntropyTQ(Tag1.Actual.ToFahrenheit, Tag2, 0)
Isentropic Expansion Coefficient
SteamTableIsentropicExpansion ( ) Returns the isentropic expansion of steam(Float pressure, Float temperature, Integer unitSet)

pressure: A steam pressure value

temperature: A steam temperature value

SteamTableIsentropicExpansion(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2.Actual.ToFahrenheit, 0)
SteamTableIsentropicExpansionPH ( ) Returns the isentropic expansion of steam(Float pressure, Float enthalpy, Integer unitSet)

pressure: A steam pressure value

enthalpy: A steam enthalpy value

SteamTableIsentropicExpansionPH(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableIsentropicExpansionPS ( ) Returns the isentropic expansion of steam(Float pressure, Float entropy, Integer unitSet)

pressure: A steam pressure value

entropy: A steam entropy value

SteamTableIsentropicExpansionPS(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableIsentropicExpansionPQ ( ) Returns the isentropic expansion of steam(Float pressure, Float quality, Integer unitSet)

pressure: A saturated steam pressure value

quality: A steam quality. Vapor quality is the percentage of mass in a saturated mixture that is vapor.

SteamTableIsentropicExpansionPQ(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableIsentropicExpansionTQ ( ) Returns the isentropic expansion of steam(Float temperature, Float quality, Integer unitSet)

temperature: A steam temperature value

quality: A steam quality. Vapor quality is the percentage of mass in a saturated mixture that is vapor

SteamTableIsentropicExpansionTQ(Tag1.Actual.ToFahrenheit, Tag2, 0)
Sonic Velocity
SteamTableSonicVelocity ( ) Returns the sonic velocity of steam(Float pressure, Float temperature, Integer unitSet)

pressure: A steam pressure value

temperature: A steam temperature value

SteamTableSonicVelocity(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2.Actual.ToFahrenheit, 0)
SteamTableSonicVelocityPH ( ) Returns the sonic velocity of steam(Float pressure, Float enthalpy, Integer unitSet)

pressure: A steam pressure value

enthalpy: A steam enthalpy value

SteamTableSonicVelocityPH(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableSonicVelocityPS ( ) Returns the sonic velocity of steam(Float pressure, Float enthalpy, Integer unitSet)

pressure: A steam pressure value

enthalpy: A steam enthalpy value

SteamTableSonicVelocityPS(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableSonicVelocityPQ ( ) Returns the sonic velocity of steam(Float pressure, Float quality, Integer unitSet)

pressure: A saturated steam pressure value

quality: A steam quality. Vapor quality is the percentage of mass in a saturated mixture that is vapor.

SteamTableSonicVelocityPQ(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableSonicVelocityTQ ( ) Returns the sonic velocity of steam(Float temperature, Float quality, Integer unitSet)

temperature: A steam temperature value

quality: A steam quality. Vapor quality is the percentage of mass in a saturated mixture that is vapor

SteamTableSonicVelocityTQ(Tag1.Actual.ToFahrenheit, Tag2, 0)
Specific Volume
SteamTableSpecificVolume ( ) Returns the specific volume of steam(Float pressure, Float temperature, Integer unitSet)

pressure: A steam pressure value

temperature: A steam temperature value

SteamTableSpecificVolume(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2.Actual.ToFahrenheit, 0)
SteamTableSpecificVolumePH ( ) Returns the specific volume of steam(Float pressure, Float enthalpy, Integer unitSet)

pressure: A steam pressure value

enthalpy: A steam enthalpy value

SteamTableSpecificVolumePH(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableSpecificVolumePS ( ) Returns the specific volume of steam(Float pressure, Float entropy, Integer unitSet)

pressure: A steam pressure value

entropy: A steam entropy value

SteamTableSpecificVolumePS(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableSpecificVolumePQ ( ) Returns the specific volume of steam(Float pressure, Float quality, Integer unitSet)

pressure: A steam pressure value

quality: A steam quality. Vapor quality is the percentage of mass in a saturated mixture that is vapor.

SteamTableSpecificVolumePQ(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableSpecificVolumeTQ ( ) Returns the specific volume of steam(Float temperature, Float quality, Integer unitSet)

temperature: A steam temperature value

quality: A steam quality. Vapor quality is the percentage of mass in a saturated mixture that is vapor.

SteamTableSpecificVolumeTQ(Tag1.Actual.ToFahrenheit, Tag2, 0)
Specific Heat
SteamTableSpecificHeat ( ) Returns the specific heat of steam(Float pressure, Float temperature, Integer unitSet)

pressure: A steam pressure value

temperature: A steam temperature value

SteamTableSpecificHeat(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2.Actual.ToFahrenheit, 0)
SteamTableSpecificHeatPH ( ) Returns the specific heat of steam(Float pressure, Float enthalpy, Integer unitSet)

pressure: A steam pressure value

enthalpy: A steam enthalpy value

SteamTableSpecificHeatPH(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableSpecificHeatPS ( ) Returns the specific heat of steam(Float pressure, Float entropy, Integer unitSet)

pressure: A steam pressure value

entropy: A steam entropy value

SteamTableSpecificHeatPS(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableSpecificHeatPQ ( ) Returns the specific heat of steam(Float pressure, Float quality, Integer unitSet)

pressure: A saturated steam pressure value

quality: A steam quality. Vapor quality is the percentage of mass in a saturated mixture that is vapor.

SteamTableSpecificHeatPQ(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableSpecificHeatTQ ( ) Returns the specific heat of steam(Float temperature, Float quality, Integer unitSet)

temperature: A steam temperature value

quality: A steam quality. Vapor quality is the percentage of mass in a saturated mixture that is vapor.

SteamTableSpecificHeatTQ(Tag1.Actual.ToFahrenheit, Tag2, 0)
Temperature
SteamTableTemperaturePH ( ) Returns the temperature of steam(Float pressure, Float enthalpy, Integer unitSet)

pressure: A steam pressure value

enthalpy: A steam enthalpy value

SteamTableTemperaturePH(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableTemperaturePS ( ) Returns the temperature of steam(Float pressure, Float entropy, Integer unitSet)

pressure: A steam pressure value

entropy: A steam entropy value

SteamTableTemperaturePS(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
Thermal Conductivity
SteamTableThermalConductivity ( ) Returns the thermal conductivity of steam(Float pressure, Float temperature, Integer unitSet)

pressure: A steam pressure value

temperature: A steam temperature value

SteamTableThermalConductivity(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2.Actual.ToFahrenheit, 0)
SteamTableThermalConductivityPQ ( ) Returns the thermal conductivity of steam(Float pressure, Float quality, Integer unitSet)

pressure: A steam pressure value

quality: A steam quality. Vapor quality is the percentage of mass in a saturated mixture that is vapor.

SteamTableThermalConductivityPQ(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableThermalConductivityTQ ( ) Returns the thermal conductivity of steam(Float temperature, Float quality, Integer unitSet)

temperature: A steam temperature value

quality: A steam quality. Vapor quality is the percentage of mass in a saturated mixture that is vapor

SteamTableThermalConductivityTQ(Tag1.Actual.ToFahrenheit, Tag2, 0)
Quality
SteamTableQualityPH ( ) Returns the quality of steam(Float pressure, Float enthalpy, Integer unitSet)

pressure: A saturated steam pressure value

enthalpy: A saturated steam enthalpy value

SteamTableQualityPH(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
SteamTableQualityPS ( ) Returns the quality of steam(Float pressure, Float entropy, Integer unitSet)

pressure: A saturated steam pressure value

entropy: A saturated steam entropy value

SteamTableQualityPQ(Tag1.Actual.ToPoundsPerSquareInchAbsolute, Tag2, 0)
Temperature Scale Conversion
SteamTableTemperatureTo1990 ( ) Returns the corresponding 1990 steam temperature for the provided 1968 steam temperature(Float temperature, Integer unitSet)

temperature: A steam temperature value

SteamTableTemperatureTo1990(Tag1.Actual.ToFahrenheit, 0)
SteamTableTemperatureTo1968 ( ) Returns the corresponding 1968 steam temperature for the provided 1990 steam temperature(Float temperature, Integer unitSet)

temperature: A steam temperature value

SteamTableTemperatureTo1968(Tag1.Actual.ToFahrenheit, 0)

Equipment Specific Functions

FunctionDescriptionArgumentsExample
Airplane Engine
NonLinearFuelFlowEstimate ( )-(Float totalAirTemperature, Float pressureAltitude, Float aircraftMachNumber, Float mainEngineControl, Float beta1, Float beta2, Float beta3, Float beta4, Float beta5, Float beta6)-
Air Heater
AirHeaterEfficiency ( ) Returns air heater efficiency (percentage, ratio of gas heat transfer to the air) assuming no leakage(Float inletGasTemp, Float outletGasTemp, Float inletAirTemp)

inletGasTemp: DEG F -- Gas inlet temp to the air heater from the boiler

outletGasTemp: DEG F -- Gas outlet temp from the air heater

inletAirTemp: DEG F -- Air inlet temp to the air heater

AirHeaterEfficiency(Gas_Inlet_Temp_Mean.Actual.ToFahrenheit, Gas_Outlet_Temp_Mean.Actual.ToFahrenheit, Air_Inlet_Temp_Mean.Actual.ToFahrenheit)
AirHeaterEfficiency2 ( ) Returns air heater efficiency (percentage, ratio of gas heat transfer to the air) accounting for leakage with an assumption of 20.9 % oxygen in air(Float inletGasTemp, Float outletGasTemp, Float inletAirTemp, Float inletGasOxygenConcentration, Float outletGasOxygenConcentration)

inletGasTemp: DEG F -- Gas inlet temp to the air heater from the boiler

outletGasTemp: DEG F -- Gas outlet temp from the air heater

inletAirTemp: DEG F -- Air inlet temp to the Air Heater

inletGasOxygenConcentration: % -- Flue gas oxygen content into the Air Heater

outletGasOxygenConcentration: % -- Flue gas oxygen content out of the Air Heater

AirHeaterEfficiency2(Gas_Inlet_Temp_Mean.Actual.ToFahrenheit, Gas_Outlet_Temp_Mean.Actual.ToFahrenheit, Air_Inlet_Temp_Mean.Actual.ToFahrenheit, O2_Concencentation_In, O2_Concentration_Out)
AirHeaterLeakageRate ( ) Returns the leakage rate (%) with an assumption of 20.9% oxygen in air(Float inletGasOxygenConcentration, Float outletGasOxygenConcentration)

inletGasOxygenConcentration: % -- Flue gas oxygen content into the air heater

outletGasOxygenConcentration: % -- Flue gas oxygen content out of the air heater

AirHeaterLeakageRate(O2_Concencentation_In, O2_Concentration_Out)
AirHeaterThermalPower ( ) Returns the thermal power (Btu/hr) of the air heater using an assumed Cp for air of 0.245 (Btu/lbm.F)(Float airFlowrate, Float inletAirTemp, Float outletAirTemp)

airFlowrate: Lbm/hr -- Air mass flow rate through the air-side

inletAirTemp: DEG F -- Air inlet temp to the air-side

outletAirTemp: DEG F -- Air outlet temp from the air-side

AirHeaterThermalPower(Total_Mass_Air_Flow.Actual.ToPoundsOfMassPerHour, Air_Inlet_Temp_Mean.Actual.ToFahrenheit, Air_Outlet_Temp_Mean.Actual.ToFahrenheit)
AirHeaterCrossRatio ( ) Returns the X-ratio (unitless, the ratio of gas temperature drop to air temperature rise) assuming no leakage(Float inletGasTemp, Float outletGasTemp, Float inletAirTemp, Float outletAirTemp)

inletGasTemp: DEG F -- Gas inlet temp to the air heater from the boiler

outletGasTemp: DEG F -- Gas outlet temp from the air heater

inletAirTemp: DEG F -- Air inlet temp to the air heater

outletAirTemp: DEG F -- Air outlet temp from the air-side

AirHeaterCrossRatio(Gas_Inlet_Temp_Mean.Actual.ToFahrenheit,Gas_Outlet_Temp_Mean.Actual.ToFahrenheit, Air_Inlet_Temp_Mean.Actual.ToFahrenheit, Air_Outlet_Temp_Mean.Actual.ToFahrenheit)
AirHeaterCrossRatio2 ( ) Returns the X-ratio (Unitless, ratio of gas temperature drop to air temperature rise) accounting for leakage with the assumption of 20.9% oxygen in air(Float inletGasTemp, Float outletGasTemp, Float inletAirTemp, Float outletAirTemp, Float inletGasOxygenConcentration, Float outletGasOxygenConcentration)

inletGasTemp: DEG F -- Gas inlet temp to the air heater from the boiler

outletGasTemp: DEG F -- Gas outlet temp from the air heater

inletAirTemp: DEG F -- Air inlet temp to the air heater

outletAirTemp: DEG F -- Air outlet temp from the air-side

inletGasOxygenConcentration: % -- Flue gas oxygen content into the air heater

outletGasOxygenConcentration: % -- Flue gas oxygen content out of the air heater

AirHeaterCrossRatio2(Gas_Inlet_Temp_Mean.Actual.ToFahrenheit, Gas_Outlet_Temp_Mean.Actual.ToFahrenheit, Air_Inlet_Temp_Mean.Actual.ToFahrenheit, Air_Outlet_Temp_Mean.Actual.ToFahrenheit, O2_Concencentation_In, O2_Concentration_Out)
Heat Exchanger
SteamHeatExchangerThermalPower ( ) Returns the heat exchanger thermal power (Btu/lb) of a steam heat exchanger via steam table functions(Float flowrate, Float inletPressure, Float inletTemp, Float outletTemp)

flowrate: Klbm/hr -- Mass flowrate of the water to be heated

inletPressure: PSIG -- Pressure of the water to be heated

inletTemp: DEG F -- Inlet temperature of the water to be heated

outletTemp: DEG F -- Outlet temperature of the water to be heated

SteamHeatExchangerThermalPower(Feedwater_Flow.Actual.ToThousandsOfPoundsOfMassPerHour, Feedwater_Pressure.Actual.ToPoundsPerSquareInchGauge, Feedwater_Heater_Inlet_Temp.Actual.ToFahrenheit, Feedwater_Heater_Outlet_Temp.Actual.ToFahrenheit)
HeatExchangerLogMeanTemperatureDiff ( ) Returns the log-mean temperature difference of a heat exchanger in the same units of the inputs. All inputs must be in consistent temperature units(Float hotFluidInletTemp, Float coldFluidInletTemp, Float hotFluidOutletTemp, Float coldFluidOutletTemp)

hotFluidInletTemp: Consistent Temps -- Hot side inlet temp of the heat exchanger

coldFluidInletTemp: Consistent Temps -- Cold side inlet temp of the heat exchanger

hotFluidOutletTemp: Consistent Temps -- Hot side outlet temp of the heat exchanger

coldFluidOutletTemp: Consistent Temps -- Cold side outlet temp of the heat exchanger

HeatExchangerLogMeanTemperatureDiff(Hot_Process_Gas_Temp, Cooling_Water_Supply_Temp, Cooled_Process_Gas_Temp, Cooling_Water_Outlet_Temp)
Centrifugal Compressor
CompressorHorsePower ( ) This returns the compression work (hp) by the compressor(Float polytropicHead, Float volumetricFlowRate, Float polytropicEfficiency, Float molecularWeight)

polytropicHead: Ft -- Polytropic head of the compressor process stage

volumetricFlowRate: Mft3/day -- Volumetric flow rate of the compressor process stage

polytropicEfficiency: % -- Polytropic efficiency of the compressor process stage

molecularWeight: Lbm/mole -- Process gas molecular weight

CompressorHorsePower(Process_Stage_1_Polytropic_Head, Process_Stage_1_Suction_Flow.Actual.ToMillionsOfCubicFeetPerDay, Process_Stage_1_Polytropic_Efficiency, Process_Stage_1_Gas_Molecular_Weight)
CompressorPolytropicEfficiency ( ) This returns the Polytropic Efficiency (%, the ratio of the work performed by the compressor under ideal polytropic conditions to the actual work performed by the compressor) of a compressor process stage(Float pressureRatio, Float temperatureRatio, Float specificHeatRatio)

pressureRatio: Unitless -- Compressor pressure ratio

temperatureRatio: Unitless -- Compressor temperature ratio

specificHeatRatio: Unitless -- Process gas specific heat ratio (Gamma, Cp/Cv)

CompressorPolytropicEfficiency(Process_Stage_1_Press_Ratio, Process_Stage_1_Temp_Ratio, Process_Stage_1_Gas_Specific_Heat_Ratio)
CompressorPolytropicHead ( ) Returns the polytropic head (feet) of a compressor(Float pressureRatio, Float suctionTemp, Float specificHeatRatio, Float molecularWeight, Float compressibilityFactor)

pressureRatio: Unitless -- Pressure ratio of the compressor process stage

suctionTemp: DEG F -- Compressor suction gas temp

specificHeatRatio: Unitless -- Process gas specific heat ratio (Gamma, Cp/Cv)

molecularWeight: Lbm/mole -- Process gas molecular weight

compressibilityFactor: Unitless -- Process gas compressibility factor (Z)

CompressorPolytropicHead(Process_Stage_1_Press_Ratio, Process_Stage_1_Suction_Temp.Actual.ToFahrenheit, Process_Stage_1_Gas_Specific_Heat_Ratio, Process_Stage_1_Gas_Molecular_Weight, Process_Stage_1_Gas_Compressibility_Factor)
Combustion Turbine
CTCompressorEfficiency ( ) Returns the compressor isentropic efficiency (%, ratio of the work performed by the compressor under ideal isentropic compression to the actual work performed by the compressor) using a gamma (Cp/Cv) of 1.4 for air at 59 DEG F and 14.7 psia(Float pressureRatio, Float temperatureRatio)

pressureRatio: Unitless -- Compressor pressure ratio

temperatureRatio: Unitless -- Compressor temperature ratio

CTCompressorEfficiency(Compressor_Press_Ratio, Compressor_Temp_Ratio)
CTModifiedWobbeIndex ( ) Returns the Modified Wobbe Index (Unitless) which is a temperature-corrected measure of the volumetric energy content of the fuel gas. The function uses the measuredHeatValue if available otherwise the defaultHeatValue will be used(Float fuelGasSupplyTemp, Float measuredHeatValue, Float defaultHeatValue)

fuelGasSupplyTemp: DEG F -- Fuel gas temperature

measuredHeatValue: Btu/ft3 -- Measured fuel gas heating value

defaultHeatValue: Btu/ft3 -- Assumed constant fuel gas heating value when a measured value is unavailable

CTModifiedWobbeIndex(Fuel_Gas_Supply_Temp.Actual.ToFahrenheit, Fuel_Gas_Heating_Value, Fuel_Gas_Heating_Value_Constant)
CTPressureRatio ( ) Returns the compressor pressure ratio (unitless). The function uses the first available tag among the inletPressure, barometricPressure, and differentialPressure to calculate the pressure ratio. If none are available the function uses standard atmospheric pressure (14.69595 psia)(Float OutletPressure, Float InletPressure, Float barometricPressure, Float differentialPressure)

OutletPressure: PSIG -- Compressor discharge pressure

inletPressure: PSIA -- Compressor static inlet pressure

barometricPressure: PSIA -- Barometric pressure as a proxy for inlet pressure

differentialPressure: PSIA -- Differential pressure across the inlet from standard pressure

CTPressureRatio(Compressor_Discharge_Press_Selected.Actual.ToPoundsPerSquareInchGauge, Compressor_Inlet_Press_Absolute.Actual.ToPoundsPerSquareInchAbsolute, Barometric_Press.Actual.ToPoundsPerSquareInchAbsolute, Compressor_Inlet_Press_Drop.Actual.ToPoundsPerSquareInchAbsolute)
CTTemperatureRatio ( ) Returns the temperature ratio (unitless). Both inputs must be consistent absolute temperatures(Float outletTemp, Float inletTemp)

outletTemp: Kelvin, Rankine -- Compressor discharge temp

inletTemp: Kelvin, Rankine -- Compressor inlet temp

CTTemperatureRatio(Compressor_Discharge_Temp_Median.Actual.ToRankine, Compressor_Inlet_Temp_Median.Actual.ToRankine)
CTThermalEfficiency ( )

Returns the CT overall thermal efficiency (%, ratio of the total power produced by the CT to the power available in the natural gas fuel)

The function uses the volumetricFuelFlowRate if available otherwise the massFuelFlowRate will be used. massFuelFlowRate is converted to volumetric flow using specific volume 20 (ft3/lbm) for natural gas. The function uses the measuredHeatValue if available otherwise the defaultHeatValue will be used.

(Float turbinePower, Float volumetricFuelFlowRate, Float massFuelFlowRate, Float measuredHeatValue, Float defaultHeatValue)

turbinePower: MW -- Power output of the CT

volumetricFuelFlowRate: ft3/hr -- Total volumetric fuel flow rate

massFuelFlowRate: Lbm/hr -- Total mass fuel flow rate

measuredHeatValue: Btu/ft3 – Measured fuel gas heating value

defaultHeatValue: Btu/ft3 -- Assumed constant fuel gas heating value when a measured value is unavailable

CTThermalEfficiency(Gross_Load.Actual.ToMegawatts, Volumetric_Fuel_Flow.Actual.ToCubicFeetPerHour, Mass_Fuel_Flow.Actual.ToPoundsOfMassPerHour, Gas_Fuel_Heating_Value, 1030)
CTTurbineEfficiency ( ) Returns the turbine isentropic efficiency (%, ratio of the actual performed by the turbine to the work performed under ideal isentropic expansion). The function uses a gamma (Cp/Cv) of 1.4 of air at 59 DEG F and 14.7 psia(Float pressureRatio, Float temperatureRatio)

pressureRatio: Unitless -- This is the turbine expansion ratio (in/out)

temperatureRatio: Unitless -- This is the turbine temperature ratio (in/out)

CTTurbineEfficiency(Power_Turbine_Press_Ratio, Power_Turbine_Temp_Ratio)
Steam Turbine
SteamTurbineEfficiency ( ) Returns the Steam Turbine isentropic efficiency (%, ratio of the actual power extracted from the steam to the ideal, isentropic power). The process is assumed to be adiabatic and the ideal state (H2s) involves no increase in entropy. The function will return a NaN anytime the turbine exhaust temperature is at or below the saturation temperature and uses steam table lookups(Float exhaustPressure, Float inletPressure, Float exhaustTemp, Float inletTemp)

exhaustPressure: PSIG -- Steam turbine exhaust pressure

inletPressure: PSIG -- Steam turbine inlet pressure (after valves)

exhaustTemp: DEG F -- Steam turbine exhaust temperature

inletTemp: DEG F -- Steam turbine inlet temperature (after valves)

SteamTurbineEfficiency(Turbine_Exhaust_Steam_Press_Mean.Actual.ToPoundsPerSquareInchGauge, Turbine_Inlet_Steam_Press_Mean.Actual.ToPoundsPerSquareInchGauge, Turbine_Exhaust_Steam_Temp_Mean.Actual.ToFahrenheit, Turbine_Inlet_Steam_Temp_Mean.Actual.ToFahrenheit)
SteamTurbineFlow ( ) Returns the steam turbine flow function (ft2). It is a function of the effective cross-sectional area of the flow-path past the turbine blades. This function uses steam tables to lookup the specific volume of steam(Float steamFlowRate, Float inletPressure, Float inletTemp)

steamFlowRate: Klb/hr -- Steam turbine inlet steam flow rate

inletPressure: PSIG -- Steam turbine inlet steam pressure (after control valves)

inletTemp: DEG F -- Steam turbine inlet steam temperature

SteamTurbineFlow(HPT_Inlet_Steam_Flow_Median.Actual.ToThousandsOfPoundsOfMassPerHour, HPT_First_Stage_Steam_Press_MT1.Actual.ToPoundsPerSquareInchGauge, HPT_ First_Stage _Steam_Temp_Mean.Actual.ToFahrenheit)
SteamTurbineHighPressureEfficiency ( ) Returns the steam turbine isentropic efficiency (%, ratio of the actual power extracted from the steam to the ideal, isentropic power). The process is assumed to be adiabatic and the ideal state (H2s) involves no increase in entropy. The function will return a NaN anytime the turbine exhaust temperature is at or below the saturation temperature and uses steam table lookups(Float inletPressure, Float inletTemp, Float exhaustPressure, Float exhaustTemp)

inletPressure: PSIG -- Steam turbine inlet pressure (after valves)

inletTemp: DEG F -- Steam turbine inlet temperature (after valves)

exhaustPressure: PSIG -- Steam turbine exhaust pressure

exhaustTemp: DEG F -- Steam turbine exhaust temperature

SteamTurbineEfficiency(HPT_First_Stage_Steam_Press_MT1.Actual.ToPoundsPerSquareInchGauge, HPT_ First_Stage_Steam_Temp_Mean.Actual.ToFahrenheit,HPT_CRH_Press_MT1.Actual.ToPoundsPerSquareInchGauge, HPT_Exhaust_Steam_Temp_MT1.Actual.ToFahrenheit)
SteamTurbineLowPressureEfficiency ( ) Returns the steam turbine isentropic efficiency (%, ratio of the actual power extracted from the steam to the ideal, isentropic power). The process is assumed to be adiabatic and the ideal state (H2s) uses the entropy at the inlet to determine the enthalpy at the exhaust for wet steam(Float inletPressure, Float inletTemp, Float exhaustPressure, Float exhaustSteamQuality)

inletPressure: PSIG -- Steam turbine inlet steam pressure

inletTemp: DEG F -- Steam turbine inlet steam temperature

exhaustPressure: PSIG -- Steam turbine exhaust pressure

exhaustSteamQuality: Unitless (0-1) -- Steam turbine exhaust steam quality

SteamTurbineLowPressureEfficiency(LP_turbine_Inlet_Press.Actual.ToPoundsPerSquareInchGauge, LP_Turbine_inlet_Temp.Actual.ToFahrenheit, LP_Turbine_Exhaust_Press.Actual.ToPoundsPerSquareInchGauge, LP_Turbine_Exhaust_Steam_Quality_Calculated)
Pump
PumpDriverPower ( ) This returns the driver power (Hp) required at the current conditions(Float hydraulicPower, Float efficiency)

hydraulicPower: Hp -- Hydraulic power to pump the fluid

efficiency: Unitless (0-1) -- Pump efficiency

PumpDriverPower(Pump_Hydraulic_Power.Actual.ToHorsepower, (Pump_efficiency_Percent/100))
PumpEfficiency ( ) Returns the pump isentropic efficiency (%, ratio of the actual power used to pump water to the ideal, isentropic power). The process is assumed to be adiabatic and the ideal state (H2s) involves no increase in entropy. This function is for water pumping applications and uses steam table lookups(Float dischargePressure, Float suctionPressure, Float dischargeTemp, Float suctionTemp)

dischargePressure: PSIG -- Pump discharge pressure

suctionPressure: PSIG -- Pump suction pressure

dischargeTemp: DEG F -- Pump discharge temperature

suctionTemp: DEG F -- Pump suction temperature

PumpEfficiency(Feedpump_discharge_Press.Actual.ToPoundsPerSquareInchGauge, Feedpump_Suction_Press.Actual.ToPoundsPerSquareInchGauge, Feedpump_Discharge_Temp.Actual.ToFahrenheit, Feedpump_Suction_Temp.Actual.ToFahrenheit)
PumpHydraulicPower ( ) Returns the required pump hydraulic power (hp) pump water at the current pressures and flow rates. This function is for water pumping applications and uses steam table lookups(Float dischargeFlowRate, Float dischargePressure, Float suctionPressure, Float dischargeTemp)

dischargeFlowRate: Klbm/hr -- Pump water mass flow rate

dischargePressure: PSIG -- Pump discharge pressure

suctionPressure: PSIG -- Pump suction pressure

dischargeTemp: DEG F -- Water temperature moved through the pump for specific volume lookup

PumpHydraulicpower(Condensate_Flow.Actual.ToThousandsOfPoundsOfMassPerHour, Condensatepump_discharge_Press.Actual.ToPoundsPerSquareInchGauge, Condsatepump_Suction_Press.Actual.ToPoundsPerSquareInchGauge, Condensate_Temp.Actual.ToFahrenheit)
PumpTorque ( ) Returns the pump torque (ft-lbf)(Float driverPower, Float speed)

driverPower: Hp -- Pump shaft power

speed: RPM -- Pump speed

PumpTorque(Pump_Motor_Driver_Power.Actual.ToHorsepower, Pump_Speed.Actual.ToRevolutionsPerMinute)
PumpTotalDischargeHead ( ) Returns the pump total discharge head (Ft). This function uses steam table lookups and is only applicable for applications that pump water(Float dischargePressure, Float suctionPressure, Float dischargeTemp)

dischargePressure: PSIG -- Pump discharge pressure

suctionPressure: PSIG -- Pump suction pressure

dischargeTemp: DEG F -- Water temperature moved through the pump for specific volume lookup

PumpTotalDischargeHead(Condensate_Pump_Discharge_Press.Actual.ToPoundsPerSquareInchGauge, Condsate_Pump_Suction_Press.Actual.ToPoundsPerSquareInchGauge, Condensate_Temp.Actual.ToFahrenheit)
Journal Bearing (Extended Vibration Monitoring)
ForwardAmplitude ( ) Returns the magnitude of the forward component of a vibration vector. This function checks for probe quality as the last argument before returning an output otherwise it returns NaN(float amplitudeA, float amplitudeB, float phaseA, float phaseB, boolean isRadianUnitAngleMeasurement, boolean isValidVibrationProbeSignal)

amplitudeA: The filtered amplitude of a vibration reading typically called X or Horizontal

amplitudeB: The filtered amplitude of a vibration reading typically called Y or Vertical

phaseA: The filtered phase of a vibration reading typically called X or Horizontal

phaseB: The filtered phase of a vibration reading typically called Y or Vertical

isRadianUnitAngleMeasurement: True/False: A Boolean statement to define the units of measurement of the phase signals. Typically an internal tag. True=Radians, False=Degrees

isValidVibrationProbeSignal: True/False: A Boolean statement to define the sensor validity of the readings coming for amplitudeA and amplitudeB, this can be a dynamically updating calculation or an embedded function

ForwardAmplitude(DE_BRG_VIB_HOR_1X_AMPLITUDE, DE_BRG_VIB_VER_1X_AMPLITUDE, DE_BRG_VIB_HOR_1X_PHASE, DE_BRG_VIB_VER_1X_PHASE, PHASE_MEASUREMENT_ISRADIAN.defaultvalue, (DE_BRG_VIB_HOR_1X_ISVALID AND DE_BRG_VIB_VER_1X_ISVALID))
ReverseAmplitude ( ) Returns the magnitude of the reverse component of a vibration vector. This function checks for probe quality as the last argument before returning an output otherwise it returns NaN(float amplitudeA, float amplitudeB, float phaseA, float phaseB, boolean isRadianUnitAngleMeasurement, boolean isValidVibrationProbeSignal)

amplitudeA: The filtered amplitude of a vibration reading typically called X or Horizontal

amplitudeB: The filtered amplitude of a vibration reading typically called Y or Vertical

phaseA: The filtered phase of a vibration reading typically called X or Horizontal

phaseB: The filtered phase of a vibration reading typically called Y or Vertical

isRadianUnitAngleMeasurement: True/False: A Boolean statement to define the units of measurement of the phase signals. Typically an internal tag. True=Radians, False=Degrees

isValidVibrationProbeSignal: True/False: A Boolean statement to define the sensor validity of the readings coming for amplitudeA and amplitudeB, this can be a dynamically updating calculation or an embedded function

ReverseAmplitude(DE_BRG_VIB_HOR_1X_AMPLITUDE, DE_BRG_VIB_VER_1X_AMPLITUDE, DE_BRG_VIB_HOR_1X_PHASE, DE_BRG_VIB_VER_1X_PHASE, PHASE_MEASUREMENT_ISRADIAN.defaultvalue, (DE_BRG_VIB_HOR_1X_ISVALID AND DE_BRG_VIB_VER_1X_ISVALID))
ForwardPhase ( ) Returns the direction (polar) of the forward component of a vibration vector. This function checks for probe quality as the last argument before returning an output otherwise it returns NaN(float amplitudeA, float amplitudeB, float phaseA, float phaseB, boolean isRadianUnitAngleMeasurement, boolean isValidVibrationProbeSignal)

amplitudeA: The filtered amplitude of a vibration reading typically called X or Horizontal

amplitudeB: The filtered amplitude of a vibration reading typically called Y or Vertical

phaseA: The filtered phase of a vibration reading typically called X or Horizontal

phaseB: The filtered phase of a vibration reading typically called Y or Vertical

isRadianUnitAngleMeasurement: True/False: A Boolean statement to define the units of measurement of the phase signals. Typically an internal tag. True=Radians, False=Degrees

isValidVibrationProbeSignal: True/False: A Boolean statement to define the sensor validity of the readings coming for amplitudeA and amplitudeB, this can be a dynamically updating calculation or an embedded function

ForwardPhase(DE_BRG_VIB_HOR_1X_AMPLITUDE, DE_BRG_VIB_VER_1X_AMPLITUDE, DE_BRG_VIB_HOR_1X_PHASE, DE_BRG_VIB_VER_1X_PHASE, PHASE_MEASUREMENT_ISRADIAN.defaultvalue, (DE_BRG_VIB_HOR_1X_ISVALID AND DE_BRG_VIB_VER_1X_ISVALID))
ReversePhase ( ) Returns the direction (polar) of the reverse component of a vibration vector. This function checks for probe quality as the last argument before returning an output otherwise it returns NaN(float amplitudeA, float amplitudeB, float phaseA, float phaseB, boolean isRadianUnitAngleMeasurement, boolean isValidVibrationProbeSignal)

amplitudeA: The filtered amplitude of a vibration reading typically called X or Horizontal

amplitudeB: The filtered amplitude of a vibration reading typically called Y or Vertical

phaseA: The filtered phase of a vibration reading typically called X or Horizontal

phaseB: The filtered phase of a vibration reading typically called Y or Vertical

isRadianUnitAngleMeasurement: True/False: A Boolean statement to define the units of measurement of the phase signals. Typically an internal tag. True=Radians, False=Degrees

isValidVibrationProbeSignal: True/False: A Boolean statement to define the sensor validity of the readings coming for amplitudeA and amplitudeB, this can be a dynamically updating calculation or an embedded function

ReversePhase(DE_BRG_VIB_HOR_1X_AMPLITUDE, DE_BRG_VIB_VER_1X_AMPLITUDE, DE_BRG_VIB_HOR_1X_PHASE, DE_BRG_VIB_VER_1X_PHASE, PHASE_MEASUREMENT_ISRADIAN.defaultvalue, (DE_BRG_VIB_HOR_1X_ISVALID AND DE_BRG_VIB_VER_1X_ISVALID))
MajorAxis ( ) Returns the magnitude for the major axis of a filtered orbit. The major axis is the sum of the forward and reverse amplitudes. This function checks for probe quality as the last argument before returning an output otherwise it returns NaN(float amplitudeA, float amplitudeB, float phaseA, float phaseB, boolean isRadianUnitAngleMeasurement, boolean isValidVibrationProbeSignal)

amplitudeA: The filtered amplitude of a vibration reading typically called X or Horizontal

amplitudeB: The filtered amplitude of a vibration reading typically called Y or Vertical

phaseA: The filtered phase of a vibration reading typically called X or Horizontal

phaseB: The filtered phase of a vibration reading typically called Y or Vertical

isRadianUnitAngleMeasurement: True/False: A Boolean statement to define the units of measurement of the phase signals. Typically an internal tag. True=Radians, False=Degrees

isValidVibrationProbeSignal: True/False: A Boolean statement to define the sensor validity of the readings coming for amplitudeA and amplitudeB, this can be a dynamically updating calculation or an embedded function

MajorAxis(DE_BRG_VIB_HOR_1X_AMPLITUDE, DE_BRG_VIB_VER_1X_AMPLITUDE, DE_BRG_VIB_HOR_1X_PHASE, DE_BRG_VIB_VER_1X_PHASE, PHASE_MEASUREMENT_ISRADIAN.defaultvalue, (DE_BRG_VIB_HOR_1X_ISVALID AND DE_BRG_VIB_VER_1X_ISVALID))
MinorAxis ( ) Returns the magnitude for the minor axis of a filtered orbit. The minor axis is the absolute difference of the forward and reverse amplitudes. This function checks for probe quality as the last argument before returning an output otherwise it returns NaN(float amplitudeA, float amplitudeB, float phaseA, float phaseB, boolean isRadianUnitAngleMeasurement, boolean isValidVibrationProbeSignal)

amplitudeA: The filtered amplitude of a vibration reading typically called X or Horizontal

amplitudeB: The filtered amplitude of a vibration reading typically called Y or Vertical

phaseA: The filtered phase of a vibration reading typically called X or Horizontal

phaseB: The filtered phase of a vibration reading typically called Y or Vertical

isRadianUnitAngleMeasurement: True/False: A Boolean statement to define the units of measurement of the phase signals. Typically an internal tag. True=Radians, False=Degrees

isValidVibrationProbeSignal: True/False: A Boolean statement to define the sensor validity of the readings coming for amplitudeA and amplitudeB, this can be a dynamically updating calculation or an embedded function

MinorAxis(DE_BRG_VIB_HOR_1X_AMPLITUDE, DE_BRG_VIB_VER_1X_AMPLITUDE, DE_BRG_VIB_HOR_1X_PHASE, DE_BRG_VIB_VER_1X_PHASE, PHASE_MEASUREMENT_ISRADIAN.defaultvalue, (DE_BRG_VIB_HOR_1X_ISVALID AND DE_BRG_VIB_VER_1X_ISVALID)=1.0)
EllipticityRatio ( ) This function returns a non-dimensional relationship of the major and minor axis to quantify the shape of an orbit map. This will return 0 when the orbit is completely circular and 1 when the orbit is completely planar. This function checks for probe quality as the last argument before returning an output otherwise it returns NaN(float amplitudeA, float amplitudeB, float phaseA, float phaseB, boolean isRadianUnitAngleMeasurement, boolean isValidVibrationProbeSignal)

amplitudeA: The filtered amplitude of a vibration reading typically called X or Horizontal

amplitudeB: The filtered amplitude of a vibration reading typically called Y or Vertical

phaseA: The filtered phase of a vibration reading typically called X or Horizontal

phaseB: The filtered phase of a vibration reading typically called Y or Vertical

isRadianUnitAngleMeasurement: True/False: A Boolean statement to define the units of measurement of the phase signals. Typically an internal tag. True=Radians, False=Degrees

isValidVibrationProbeSignal: True/False: A Boolean statement to define the sensor validity of the readings coming for amplitudeA and amplitudeB, this can be a dynamically updating calculation or an embedded function

EllipticityRatio(DE_BRG_VIB_HOR_1X_AMPLITUDE, DE_BRG_VIB_VER_1X_AMPLITUDE, DE_BRG_VIB_HOR_1X_PHASE, DE_BRG_VIB_VER_1X_PHASE, PHASE_MEASUREMENT_ISRADIAN.defaultvalue, (DE_BRG_VIB_HOR_1X_ISVALID AND DE_BRG_VIB_VER_1X_ISVALID)=1.0)
PrecessionDirection ( ) This function is a relationship between forward and reverse amplitude components and returns an integer that describes the direction of the precession of the shaft motion relative to the rotational direction. Forward precession indicates the shaft motion is in the same direction as the rotational direction and is outputted to 1.0. Indeterminate precession is denoted 0. Reverse precession indicates the shaft motion is in the opposite direction of rotation and is denoted -1.0. This function checks for probe quality as the last argument before returning an output otherwise it returns NaN(float amplitudeA, float amplitudeB, float phaseA, float phaseB, boolean isRadianUnitAngleMeasurement, boolean isValidVibrationProbeSignal, float lowFactor, float highFactor)

amplitudeA: The filtered amplitude of a vibration reading typically called X or Horizontal

amplitudeB: The filtered amplitude of a vibration reading typically called Y or Vertical

phaseA: The filtered phase of a vibration reading typically called X or Horizontal

phaseB: The filtered phase of a vibration reading typically called Y or Vertical

isRadianUnitAngleMeasurement: True/False: A Boolean statement to define the units of measurement of the phase signals. Typically an internal tag. True=Radians, False=Degrees

isValidVibrationProbeSignal: True/False: A Boolean statement to define the sensor validity of the readings coming for amplitudeA and amplitudeB, this can be a dynamically updating calculation or an embedded function

lowFactor: Constant: This is a threshold typically set to 0.99 for bounding the relationship between forward and reverse amplitude to determine forward precession (output 1.0)

highFactor: Constant: This is a threshold typically set to 1.01 for bounding the relationship between forward and reverse amplitude to determine reverse precession (output -1.0)

PrecessionDirection(DE_BRG_VIB_HOR_1X_AMPLITUDE, DE_BRG_VIB_VER_1X_AMPLITUDE, DE_BRG_VIB_HOR_1X_PHASE, DE_BRG_VIB_VER_1X_PHASE, PHASE_MEASUREMENT_ISRADIAN.defaultvalue, (DE_BRG_VIB_HOR_1X_ISVALID AND DE_BRG_VIB_VER_1X_ISVALID)=1.0, 0.99, 1.01)
MaximumProbeRange ( ) This function describes the maximum valid reading output from the vibration probe. The maximum reading is a sum of gap voltage and the amplitude peak to peak variation over one rotation of the shaft. It converts the amplitude reading to voltage using the voltage displacement gradient constant(float probeGap, float directAmplitude, float voltageDisplacementGradient)

probeGap: This is the gap reading coming from a vibration probe, typically in DC Voltage

directAmplitude: This is the direct amplitude reading coming from the vibration probe in displacement

voltageDisplacementGradient: Constant: This is typically an internal tag that describes the calibration of DC voltage to displacement of the probe

MaximumProbeRange(DE_BRG_VIB_HOR_GAP, DE_BRG_VIB_HOR_DIRECT_AMPLITUDE, VOLTAGE_DISPLACEMENT_GRADIENT)
MinimumProbeRange ( ) This function describes the minimum valid reading output from the vibration probe. The minimum reading is the difference of gap voltage and the amplitude peak to peak variation over one rotation of the shaft. It converts the amplitude reading to voltage using the voltage displacement gradient constant(float probeGap, float directAmplitude, float voltageDisplacementGradient)

probeGap: This is the gap reading coming from a vibration probe, typically in DC Voltage

directAmplitude: This is the direct amplitude reading coming from the vibration probe in displacement

voltageDisplacementGradient: Constant: This is typically an internal tag that describes the calibration of DC voltage to displacement of the probe

MaximumProbeRange(DE_BRG_VIB_HOR_GAP, DE_BRG_VIB_HOR_DIRECT_AMPLITUDE, 0.2)
CompensatedAmplitude ( ) This function is the amplitude (magnitude) of the vector difference between a reference vector and current vector. The reference vector is typically at slow roll conditions (Coast down at 5-15 % running speed) where dynamic influences are negated. This function checks for probe quality as the last argument before returning an output otherwise it returns NaN(float amplitude, float amplitudeSlowRoll, float phase, float phaseSlowRoll, boolean isRadianUnitAngleMeasurement, boolean isValidVibrationProbeSignal)

amplitude: The current filtered amplitude of a vibration reading typically called 1X, 2X etc.

amplitudeSlowRoll: The reference filtered amplitude of a vibration reading typically called 1X, 2X at slow roll conditions

phase: The filtered phase of a vibration reading typically called 1X,2X etc.

phaseSlowRoll: The reference filtered phase of a vibration reading typically called 1X, 2X at slow roll conditions

isRadianUnitAngleMeasurement: True/False: A Boolean statement to define the units of measurement of the phase signals. Typically an internal tag. True=Radians, False=Degrees

isValidVibrationProbeSignal: True/False: A Boolean statement to define the sensor validity of the readings coming for amplitudeA and amplitudeB, this can be a dynamically updating calculation or an embedded function

CompensatedAmplitude(BEARING_1_VIB_HOR_1X_AMPLITUDE, BEARING_1_VIB_HOR_1X_SLOW_ROLL_AMPLITUDE_SSC, BEARING_1_VIB_HOR_1X_PHASE, BEARING_1_VIB_HOR_1X_SLOW_ROLL_PHASE_SSC, PHASE_MEASUREMENT_ISRADIAN.defaultvalue, IsValidVibrationProbeSignal(BEARING_1_VIB_HOR_1X_AMPLITUDE, MIN_AMPLITUDE_THRESHOLD, BEARING_1_VIB_HOR_MAXIMUM_PROBE_RANGE, BEARING_1_VIB_HOR_MAXIMUM_PROBE_RANGE.ActualHigh, BEARING_1_VIB_HOR_MINIMUM_PROBE_RANGE, BEARING_1_VIB_HOR_MINIMUM_PROBE_RANGE.ActualLow)
CompensatedPhase ( ) This function is the direction (polar) vector difference between a reference vector and current vector. The reference vector is typically at slow roll conditions (Coast down at 5-15% running speed) where dynamic influences are negated. This function checks for probe quality as the last argument before returning an output otherwise it returns NaN(float amplitude, float amplitudeSlowRoll, float phase, float phaseSlowRoll, boolean isRadianUnitAngleMeasurement, boolean isValidVibrationProbeSignal)

amplitude: The current filtered amplitude of a vibration reading typically called 1X, 2X etc.

amplitudeSlowRoll: The reference filtered amplitude of a vibration reading typically called 1X, 2X at slow roll conditions

phase: The filtered phase of a vibration reading typically called 1X,2X etc.

phaseSlowRoll: The reference filtered phase of a vibration reading typically called 1X, 2X at slow roll conditions

isRadianUnitAngleMeasurement: True/False: A Boolean statement to define the units of measurement of the phase signals. Typically an internal tag. True=Radians, False=Degrees

isValidVibrationProbeSignal: True/False: A Boolean statement to define the sensor validity of the readings coming for amplitudeA and amplitudeB, this can be a dynamically updating calculation or an embedded function

CompensatedPhase(BEARING_1_VIB_HOR_1X_AMPLITUDE, BEARING_1_VIB_HOR_1X_SLOW_ROLL_AMPLITUDE_SSC, BEARING_1_VIB_HOR_1X_PHASE, BEARING_1_VIB_HOR_1X_SLOW_ROLL_PHASE_SSC, PHASE_MEASUREMENT_ISRADIAN.defaultvalue, IsValidVibrationProbeSignal(BEARING_1_VIB_HOR_1X_AMPLITUDE, MIN_AMPLITUDE_THRESHOLD, BEARING_1_VIB_HOR_MAXIMUM_PROBE_RANGE, BEARING_1_VIB_HOR_MAXIMUM_PROBE_RANGE.ActualHigh, BEARING_1_VIB_HOR_MINIMUM_PROBE_RANGE, BEARING_1_VIB_HOR_MINIMUM_PROBE_RANGE.ActualLow)
OrbitShape ( ) This function returns a quantitive value to describe the shape of a filtered orbit based on the relationship between the Major and Minor Axis. There are 5 defined shapes and are compared to their corresponding thresholds to output an integer orbit shape. Circular = 0, Elliptical = 1, Highly Elliptical = 2, Planar = 3, Indeterminate = 4. This function checks for probe quality as the last argument before returning an output otherwise it returns NaN(float amplitudeA, float amplitudeB, float phaseA, float phaseB, boolean isRadianUnitAngleMeasurement, boolean isValidVibrationProbeSignal, float ellipticalThreshold, float highlyEllipticalThreshold, float planarThreshold, float minimumAmplitudeThreshold)

amplitudeA: The filtered amplitude of a vibration reading typically called X or Horizontal

amplitudeB: The filtered amplitude of a vibration reading typically called Y or Vertical

phaseA: The filtered phase of a vibration reading typically called X or Horizontal

phaseB: The filtered phase of a vibration reading typically called Y or Vertical

isRadianUnitAngleMeasurement: True/False: A Boolean statement to define the units of measurement of the phase signals. Typically an internal tag. True=Radians, False=Degrees

isValidVibrationProbeSignal: True/False: A Boolean statement to define the sensor validity of the readings coming for amplitudeA and amplitudeB, this can be a dynamically updating calculation or an embedded function

ellipticalThreshold: Constant: Typically an internal tag and set to 0.8. A Major to minor relationship below this number determines the Orbit Shape of 1. This threshold is dependent on equipment type and expert opinion

highlyEllipticalThreshold: Constant: Typically an internal tag and set to 0.4. A Major to minor relationship below this number determines the Orbit Shape of 2. This threshold is dependent on equipment type and expert opinion

planarThreshold: Constant: Typically an internal tag and set to 0.025. This number is dependent on equipment type and expert opinion for determining the Orbit Shape of 3

minimumAmplitudeThreshold: Constant displacement: This is the minimum amplitude reading at which there is no longer reliable value to detect the energy from shaft dynamic changes. This value is inversely dependent on running speed

OrbitShape(BEARING_1_VIB_HOR_1X_AMPLITUDE, BEARING_1_VIB_VER_1X_AMPLITUDE, BEARING_1_VIB_HOR_1X_PHASE, BEARING_1_VIB_VER_1X_PHASE, PHASE_MEASUREMENT_ISRADIAN.defaultvalue, BEARING_1_VIB_HOR_1X_ISVALID AND BEARING_1_VIB_VER_1X_ISVALID)=1.0, 0.8, 0.4, 0.025, 0.3)
IsValidVibrationProbeSignal ( ) This function returns a Boolean True or False result after doing a series of comparisons to determine whether a Vibration Probe output is good. It checks for range, NaNs and Minimum Amplitude. This function would be used for each probe and filtered harmonic pair, ie Horizontal 1X(float amplitude, float minimumAmplitudeThreshold, float maximumProbeRange, float maximumProbeRangeLimit, float minimumProbeRange, float minimumProbeRangeLimit)

amplitude: The filtered amplitude of a vibration reading typically called 1X, 2X

minimumAmplitudeThreshold: Constant displacement: This is the minimum amplitude reading at which there is no longer reliable value to detect the energy from shaft dynamic changes. This value is inversely dependent on running speed

maximumProbeRange: The output of the high range of a probe, the output of the MaximumProbeRange Function

maximumProbeRangeLimit: The threshold for the maximum probe range. The Maximum Probe Range must be less than this value to be considered valid

minimumProbeRange: The output of the low range of a probe, the output of the MinimumProbeRange Function

minimumProbeRangeLimit: The threshold for the minimum probe range. The Minimum Probe Range must be greater than this value to be considered valid

IsValidVibrationProbeSignal(BEARING_1_VIB_HOR_1X_AMPLITUDE, MIN_AMPLITUDE_THRESHOLD.defaultvalue, BEARING_1_VIB_HOR_MAXIMUM_PROBE_RANGE, BEARING_1_VIB_HOR_MAXIMUM_PROBE_RANGE.ActualHigh, BEARING_1_VIB_HOR_MINIMUM_PROBE_RANGE, BEARING_1_VIB_HOR_MINIMUM_PROBE_RANGE.ActualLow) Or as a Calculated Variable (If (IsValidVibrationProbeSignal(BEARING_1_VIB_HOR_1X_AMPLITUDE, MIN_AMPLITUDE_THRESHOLD.defaultvalue, BEARING_1_VIB_HOR_MAXIMUM_PROBE_RANGE, BEARING_1_VIB_HOR_MAXIMUM_PROBE_RANGE.ActualHigh, BEARING_1_VIB_HOR_MINIMUM_PROBE_RANGE, BEARING_1_VIB_HOR_MINIMUM_PROBE_RANGE.ActualLow)=TRUE) then 1.0 else 0.0)

Concatenation Functions

FunctionDescriptionArgumentsExample
TextLength ( ) Returns the number of characters in a set of text(String sourceString)

sourceString: A string to count the number of characters

TextLength(“message”) = 7
IsContainedInText ( ) Returns true if the substring is contained in the sourceString. This function is not case sensitive(string subString, string sourceString)

subString: The sub string to search for

sourceString: The string to search in

IsContainedInText(“your”, “Your flight”) = true
TextPosition ( ) Returns the starting position of the first occurrence of the substring in the sourcestring. Returns 0 if the substring was not found(string subString, string sourceString)

subString: The sub string to search for

sourceString: The string to search in

TextPosition("fli", "Your flight") = 6
ReadFromText ( ) Returns the string of characters beginning at startIndex and ending at endIndex(string sourceString, Integer startIndex, Integer endIndex)

sourceString: The string to read from

startIndex: The index of the first character to read

endIndex: The index of the last character to read

ReadFromText("one two three", 5, 7) = "two"
InsertInText ( ) Returns the sourceString with the substring inserted before the character at insertIndex(string stringToInsert, string sourceString, Integer insertIndex)

stringToInsert: The string to insert sourceString

sourceString: The source string

insertIndex: The index to insert before

InsertInText(" not ", "do enter", 3) = "do not enter"
ReplaceInText ( ) Returns the sourceString with a text substitution starting and startIndex and ending at endIndex(string stringToSubstitute, string sourceString, Integer startIndex, Integer endIndex)

stringToSubstitute: The string to substitute

sourceString: The source string

startIndex: The start index to begin substitution

endIndex: The end index to end substitution

ReplaceInText("exit", "do not enter here", 8 , 12) = "do not exit here"
OmitFromText ( ) Returns the sourceString omitting the characters startIndex and ending at endIndex(string sourceString, Integer startIndex, Integer endIndex)

sourceString: The source string

startIndex: The start index to begin omission

endIndex: The end index to end omission

OmitFromText("do not enter",4,7) = "do enter"
CapitalizeWords ( ) Returns the sourceString with the first letter of each word capitalized(string sourceString)

sourceString: The source string

CapitalizeWords("this is a test") = "This Is A Test"
UppercaseText ( ) Returns the sourceString will all alphabetic characters capitalized(string sourceString)

sourceString: The source string

UppercaseText("123AbcDef") = "123ABCDEF"
LowercaseText ( ) Returns the sourceString will all alphabetic characters uncapitalized(string sourceString)

sourceString: The source string

LowercaseText("123AbcDef") ="123abcdef"
DoesTextBeginWithQuantity ( ) Returns true if the string begins with one or more numeric characters(string sourceString)

sourceString: The source string

DoesTextBeginWithQuantity("123abc") = true; DoesTextBeginWithQuantity("abc123") = false

Diagnostics Functions

These functions are only available when writing diagnostics.

FunctionDescriptionArgumentsExample
AssetIndications ( )

Returns a count of the number of asset tag advisory indications on a set of asset tags.

An advisory indication exists when the conditional logic of the rule evaluates to true for the asset tag. Using the AssetIndications() function will assign each of the asset rules to each of the asset tags. When the conditional logic is met the advisory indication chart marker will be displayed in Sentinel.

(List<AssetBlueprintTagRule> assetTagRules, List<AssetTag> assetTags)

assetTagRules: A list of asset blueprint tag rules (mnemonics). Asset blueprint tag rules are specified on the Rules tab (in blue)

assetTags: A list of asset blueprint tags aliases. Asset blueprint tags are specified on the Tags sub tab of the Asset Blueprints tab

If (AssetIndications([AVH],[Tag1, Tag2]) >=2 ) then …
ModelIndications( )

Returns a count of the number of model tag advisory indications on a set of model tags.

An advisory indication exists when the conditional logic of the rule evaluates to true for the model tag. Using the ModelIndications() function will assign each of the model rules to each of the model tags. When the conditional logic is met the advisory indication chart marker will be displayed in Sentinel.

(Model model, List<ModelBlueprintTagRule> modelTagRules, List<AssetTag> assetTags)

model: A name of a model in the asset blueprint. Only one model may be specified. All modelTagRules will counted from this model only

modelTagRules: A list of model blueprint tag rules (mnemonics). Model blueprint tag rules are specified on the Rules tab of Blueprint Center (in green)

assetTags: A list of asset blueprint tags aliases. Asset blueprint tags are specified on the Tags sub tab of the Asset Blueprints tab. If the asset blueprint tag alias is not assigned to the model then model tag advisory indications cannot be created

If (ModelIndications(Mechanical,[H],[Tag1, Tag2]) >=2 ) then …
Priority ( ) Result of a diagnostic condition. When the diagnostic condition is true an advisory will be created of the specified priority(Integer value, String message)

value: The priority of the diagnostic condition. Can range from 1 to 5 where 1 is the highest priority possible

message: The advisory message of the diagnostic condition. If a message is not specified name of the diagnostic will be used for the advisory message in Sentinel.

If (ModelIndications(Mechanical,[H],[Tag1, Tag2]) >=2 ) then Priority(5) else …
None ( ) Used to complete diagnostic logic-If (ModelIndications(Mechanical,[H],[Tag1, Tag2]) >=2 ) then Priority(5) else None()
Normal ( )

Returns true when there are no specified asset tag advisory indications on any of the specified asset tags

Any specified asset tag advisory indication on any specified asset tag will cause Normal() to return false. If none of the specified asset tags are active in asset Normal() will return false

(List<AssetBlueprintTagRule> assetTagRules, List<AssetTag> assetTags)

assetTagRules: A list of asset blueprint tag rules (mnemonics). Asset blueprint tag rules are specified on the Rules tab (in blue)

assetTags: A list of asset blueprint tags aliases. Asset blueprint tags are specified on the Tags sub tab of the Asset Blueprints tab

If (Normal([AVH],[Tag1, Tag2])) then …
Normal ( )

Returns true when there are no specified model tag advisory indications on any of the specified model tags

Any specified model tag advisory indication on any specified model tag will cause Normal() to return false. If none of the specified asset tags are active in asset Normal() will return false
(Model model, List<ModelBlueprintTagRule> modelTagRules, List<AssetTag> assetTags)

model: A name of a model in the asset blueprint. Only one model may be specified. All modelTagRules will counted from this model only

modelTagRules: A list of model blueprint tag rules (mnemonics). Model blueprint tag rules are specified on the Rules tab of Blueprint Center (in green)

assetTags: A list of asset blueprint tags aliases. Asset blueprint tags are specified on the Tags sub tab of the Asset Blueprints tab. If the asset blueprint tag alias is not assigned to the model then model tag advisory indications cannot be created

If (Normal(Mechanical,[H],[Tag1, Tag2])) then …
IsAssociated ( )

Used to complete diagnostic logic as well as associated asset tags with diagnostic logic

Associated tags will be displayed in the diagnostic advisory folder in Sentinel’s asset explorer. Any asset tag used in Assetindications() is automatically associated with the diagnostic

(List<AssetTag> assetTags)

assetTags: A list of asset tags to associate with the diagnostic

If (AssetIndications([AVH],[Tag1, Tag2]) >=2 ) then Priority(5) else IsAssociated([Tag3])
IsAssociated ( )

Used to complete diagnostic logic as well as associated model tags with diagnostic logic

Associated tags will be displayed in the diagnostic advisory folder in Sentinel’s asset explorer. Any model tag used in Modelindications() is automatically associated with the diagnostic

(Model model, List<AssetTag> assetTags)

model: A name of a model in the asset blueprint. Only one model may be specified

assetTags: A list of asset tags to associated with the diagnostic. If the asset blueprint tag alias is not assigned to model no association will be created

If (ModelIndications(Mechanical,[H],[Tag1, Tag2]) >=2 ) then Priority(5) else IsAssociated(Mechanical,[Tag3])
History ( ) Returns a value of from a point in a tag history(List<Float> history, Integer index)

history: A list of tag history

index: The index (datapolls) back from current of to return a value. An index of 0 will return the current value

history(Tag.Actual(5), 4)
Position ( )

Returns the index of a specific value in a tag's history

If the value is in the tag's history more than once, the most recent (closest to 0) index will be returned. If the value is not in the tag's history -1 will be returned

(List<double> history, double value)

history: A list of tag history

value: The value to find

postition(Tag.Actual(5), 200 )
NaN ( ) Returns a NaN (not a number) that is useful for passing into other functions when it is not desired to specify an input (For example, the lower or upper threshold in Average() )-Average([Tag1, Tag2, Tag3], NaN(), Tag1.ActualHigh)