Define how parameters interact by creating formulas that compute target values.
These formulas are evaluated when the configurator runs calculations.
| ID | Name | Target Parameter | Expression | Engine | Active | Actions |
|---|---|---|---|---|---|---|
| 12 | Device online? | deviceOnline (Device online?) |
(!!powerOk)
|
expr | Active | |
| 14 | Estimated accuracy | accuracy_percent_rd (Estimated accuracy) |
(
(calibrationGrade === "Premium" ? 0.8 :
calibrationGrade === "Standard" ? 1.2 :
1.6)
+ (Math.min(1, Math.max(0, Number(feasibleFlow_ln_min||0) / Math.max(1e-6, Number(maxFlow_ln_min||1)))) * 0.7)
)
|
expr | Active | |
| 15 | Estimated response time | responseTime_ms (Estimated response time) |
(
180
+ (Number(valveSize_mm||0) * 35)
+ (Math.min(1, Math.max(0, Number(feasibleFlow_ln_min||0) / Math.max(1e-6, Number(maxFlow_ln_min||1)))) * 190)
)
|
expr | Active | |
| 13 | Feasible flow | feasibleFlow_ln_min (Feasible flow) |
(
(!deviceOnline) ? 0 :
(!tempOk) ? Math.min(Number(requestedFlow_ln_min||0), Number(maxFlow_ln_min||0)) * 0.35 :
(pressureOk)
? Math.min(Number(requestedFlow_ln_min||0), Number(maxFlow_ln_min||0))
: (
Math.min(Number(requestedFlow_ln_min||0), Number(maxFlow_ln_min||0))
* Math.max(0.15, Math.min(1, Number(pressureDrop_bar||0) / Math.max(1e-6, Number(minPressureDrop_bar||0))))
)
)
|
expr | Active | |
| 1 | Gas factor | gasFactor (Gas factor) |
(
gasType === "Air" ? 1.00 :
gasType === "Nitrogen" ? 0.97 :
gasType === "CO2" ? 1.55 :
gasType === "Argon" ? 1.38 :
gasType === "Helium" ? 0.16 :
1.00
)
|
expr | Active | |
| 5 | Max achievable flow | maxFlow_ln_min (Max achievable flow) |
(
(Number(valveSize_mm||0) <= 0.4 ? 12 :
Number(valveSize_mm||0) <= 0.6 ? 25 :
Number(valveSize_mm||0) <= 1.0 ? 60 :
95)
* Math.sqrt(Math.max(0.3, Number(inletPressure_bar||1)))
/ Math.max(0.2, Number(gasFactor||1))
)
|
expr | Active | |
| 8 | Max temp by seal | maxProcessTemp_C (Max temperature allowed) |
(
sealMaterial === "EPDM" ? 120 :
sealMaterial === "FKM" ? 200 :
sealMaterial === "FFKM" ? 260 :
150
)
|
expr | Active | |
| 6 | Min pressure drop needed | minPressureDrop_bar (Minimum pressure drop needed) |
(
0.18 + (Math.min(1, Math.max(0, Number(requestedFlow_ln_min||0) / Math.max(1e-6, Number(maxFlow_ln_min||1)))) * 0.35)
)
|
expr | Active | |
| 16 | Notes | notes (Notes) |
(
(!deviceOnline) ? "No feasible flow: power/protocol mismatch (device offline)." :
(!tempOk) ? "Temperature exceeds selected seal capability; flow heavily reduced." :
(!pressureOk) ? "Low pressure drop limits control performance; feasible reduced." :
(!valveOk) ? "Selected valve is smaller than recommended; flow may cap early." :
(Number(requestedFlow_ln_min||0) > Number(maxFlow_ln_min||0)) ? "Requested flow above max achievable; feasible capped." :
"OK"
)
|
expr | Active | |
| 11 | Power OK? | powerOk (Power OK?) |
(Number(powerSupply_V||0) === Number(recommendedPower_V||0))
|
expr | Active | |
| 2 | Pressure drop | pressureDrop_bar (Pressure drop) |
(Number(inletPressure_bar||0) - Number(outletPressure_bar||0))
|
expr | Active | |
| 7 | Pressure OK? | pressureOk (Pressure OK?) |
(Number(pressureDrop_bar||0) >= Number(minPressureDrop_bar||0))
|
expr | Active | |
| 10 | Recommended power | recommendedPower_V (Recommended power) |
(24)
|
expr | Active | |
| 3 | Recommended valve size | recommendedValveSize_mm (Recommended valve size) |
(
(Number(requestedFlow_ln_min||0) <= 10) ? "0.4" :
(Number(requestedFlow_ln_min||0) <= 20) ? "0.6" :
(Number(requestedFlow_ln_min||0) <= 50) ? "1.0" :
"1.5"
)
|
expr | Active | |
| 9 | Temperature OK? | tempOk (Temperature OK?) |
(Number(processTemperature_C||0) <= Number(maxProcessTemp_C||0))
|
expr | Active | |
| 4 | Valve OK? | valveOk (Valve size OK?) |
(
Number(valveSize_mm||0) >= Number(recommendedValveSize_mm||0)
)
|
expr | Active |
A formula computes the value of a target parameter based on other parameters in the context.