Engine anti-ice failures and warnings
This commit is contained in:
parent
c439905886
commit
48e86504e2
5 changed files with 145 additions and 26 deletions
|
@ -58,6 +58,10 @@ var warningNodes = {
|
|||
bleed1Off5Output: props.globals.initNode("/ECAM/warnings/logic/bleed-1-off-5-output"),
|
||||
bleed2Off60Output: props.globals.initNode("/ECAM/warnings/logic/bleed-2-off-60-output"),
|
||||
bleed2Off5Output: props.globals.initNode("/ECAM/warnings/logic/bleed-2-off-5-output"),
|
||||
eng1AiceNotClsd: props.globals.initNode("/ECAM/warnings/timer/eng-aice-1-open-output"),
|
||||
eng2AiceNotClsd: props.globals.initNode("/ECAM/warnings/timer/eng-aice-2-open-output"),
|
||||
eng1AiceNotOpen: props.globals.initNode("/ECAM/warnings/timer/eng-aice-1-closed-output"),
|
||||
eng2AiceNotOpen: props.globals.initNode("/ECAM/warnings/timer/eng-aice-2-closed-output"),
|
||||
},
|
||||
Flipflops: {
|
||||
bleed1LowTemp: props.globals.initNode("/ECAM/warnings/logic/bleed-1-low-temp-flipflop-output"),
|
||||
|
|
|
@ -1230,7 +1230,7 @@ var messages_priority_2 = func {
|
|||
|
||||
# Bleed
|
||||
# BLEED 1 FAULT
|
||||
if ((FWC.Timer.eng1idleOutput.getBoolValue() and !pts.Controls.Engines.Engine.cutoffSw[0].getValue()) and (systems.PNEU.Warnings.overpress1.getValue() or systems.PNEU.Warnings.ovht1.getValue())) {
|
||||
if ((FWC.Timer.eng1idleOutput.getBoolValue() == 1 and !pts.Controls.Engines.Engine.cutoffSw[0].getValue()) and (systems.PNEU.Warnings.overpress1.getValue() or systems.PNEU.Warnings.ovht1.getValue())) {
|
||||
warningNodes.Timers.bleed1Fault.setValue(1);
|
||||
} else {
|
||||
warningNodes.Timers.bleed1Fault.setValue(0);
|
||||
|
@ -1267,7 +1267,7 @@ var messages_priority_2 = func {
|
|||
}
|
||||
|
||||
# BLEED 2 FAULT
|
||||
if ((FWC.Timer.eng2idleOutput.getBoolValue() and !pts.Controls.Engines.Engine.cutoffSw[1].getValue()) and (systems.PNEU.Warnings.overpress2.getValue() or systems.PNEU.Warnings.ovht2.getValue())) {
|
||||
if ((FWC.Timer.eng2idleOutput.getBoolValue() == 1 and !pts.Controls.Engines.Engine.cutoffSw[1].getValue()) and (systems.PNEU.Warnings.overpress2.getValue() or systems.PNEU.Warnings.ovht2.getValue())) {
|
||||
warningNodes.Timers.bleed2Fault.setValue(1);
|
||||
} else {
|
||||
warningNodes.Timers.bleed2Fault.setValue(0);
|
||||
|
@ -1571,6 +1571,39 @@ var messages_priority_2 = func {
|
|||
ECAM_controller.warningReset(bleedMon2Fault);
|
||||
}
|
||||
|
||||
# ENG AICE
|
||||
if (eng1IceClosed.clearFlag == 0 and (phaseVar <= 2 or phaseVar >= 9 or phaseVar == 6) and warningNodes.Timers.eng1AiceNotOpen.getValue() == 1) {
|
||||
eng1IceClosed.active = 1;
|
||||
eng1IceClosedIcing.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1IceClosed);
|
||||
ECAM_controller.warningReset(eng1IceClosedIcing);
|
||||
}
|
||||
|
||||
if (eng2IceClosed.clearFlag == 0 and (phaseVar <= 2 or phaseVar >= 9 or phaseVar == 6) and warningNodes.Timers.eng2AiceNotOpen.getValue() == 1) {
|
||||
eng2IceClosed.active = 1;
|
||||
eng2IceClosedIcing.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2IceClosed);
|
||||
ECAM_controller.warningReset(eng2IceClosedIcing);
|
||||
}
|
||||
|
||||
if (eng1IceOpen.clearFlag == 0 and (phaseVar <= 2 or phaseVar >= 9 or phaseVar == 6) and warningNodes.Timers.eng1AiceNotClsd.getValue() == 1) {
|
||||
eng1IceOpen.active = 1;
|
||||
eng1IceOpenThrust.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1IceOpen);
|
||||
ECAM_controller.warningReset(eng1IceOpenThrust);
|
||||
}
|
||||
|
||||
if (eng2IceOpen.clearFlag == 0 and (phaseVar <= 2 or phaseVar >= 9 or phaseVar == 6) and warningNodes.Timers.eng2AiceNotClsd.getValue() == 1) {
|
||||
eng2IceOpen.active = 1;
|
||||
eng2IceOpenThrust.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2IceOpen);
|
||||
ECAM_controller.warningReset(eng2IceOpenThrust);
|
||||
}
|
||||
|
||||
# Eng fire
|
||||
if (eng1FireDetFault.clearFlag == 0 and (systems.engFireDetectorUnits.vector[0].condition == 0 or (systems.engFireDetectorUnits.vector[0].loopOne == 9 and systems.engFireDetectorUnits.vector[0].loopTwo == 9 and systems.eng1Inop.getBoolValue())) and (phaseVar == 6 or phaseVar >= 9 or phaseVar <= 2)) {
|
||||
eng1FireDetFault.active = 1;
|
||||
|
|
|
@ -110,13 +110,13 @@ var phaseLoop = func() {
|
|||
gnd = 0;
|
||||
}
|
||||
|
||||
if (eng1n2 >= 59.4) {
|
||||
if (eng1n2 >= 59.4 and !master1) {
|
||||
FWC.Timer.eng1idle.setValue(1);
|
||||
} else {
|
||||
FWC.Timer.eng1idle.setValue(0);
|
||||
}
|
||||
|
||||
if (eng2n2 >= 59.4) {
|
||||
if (eng2n2 >= 59.4 and !master2) {
|
||||
FWC.Timer.eng2idle.setValue(1);
|
||||
} else {
|
||||
FWC.Timer.eng2idle.setValue(0);
|
||||
|
@ -128,7 +128,7 @@ var phaseLoop = func() {
|
|||
FWC.Timer.eng1or2.setValue(0);
|
||||
}
|
||||
|
||||
if ((!FWC.Timer.eng1idleOutput.getBoolValue() or master1) and (!FWC.Timer.eng2idleOutput.getBoolValue() or master2)) {
|
||||
if ((FWC.Timer.eng1idleOutput.getBoolValue() == 0 or master1) and (FWC.Timer.eng2idleOutput.getBoolValue() == 0 or master2)) {
|
||||
twoEngOff = 1;
|
||||
} else {
|
||||
twoEngOff = 0;
|
||||
|
|
|
@ -139,12 +139,40 @@
|
|||
<rate_limit sense="incr">0.2</rate_limit> <!-- 5 seconds -->
|
||||
</actuator>
|
||||
|
||||
<actuator name="/ECAM/warnings/logic/bleed-2-off-5-output">
|
||||
<actuator name="/ECAM/warnings/timer/bleed-2-off-5-output">
|
||||
<description>Timer for the ECAM system</description>
|
||||
<input>/ECAM/warnings/logic/bleed-2-off-5</input>
|
||||
<rate_limit sense="decr">100</rate_limit> <!-- Instant -->
|
||||
<rate_limit sense="incr">0.2</rate_limit> <!-- 5 seconds -->
|
||||
</actuator>
|
||||
|
||||
<actuator name="/ECAM/warnings/timer/eng-aice-1-open-output">
|
||||
<description>Timer for the ECAM system</description>
|
||||
<input>/ECAM/warnings/logic/eng-aice-1-open</input>
|
||||
<rate_limit sense="decr">100</rate_limit> <!-- Instant -->
|
||||
<rate_limit sense="incr">0.2</rate_limit> <!-- 5 seconds -->
|
||||
</actuator>
|
||||
|
||||
<actuator name="/ECAM/warnings/timer/eng-aice-2-open-output">
|
||||
<description>Timer for the ECAM system</description>
|
||||
<input>/ECAM/warnings/logic/eng-aice-2-open</input>
|
||||
<rate_limit sense="decr">100</rate_limit> <!-- Instant -->
|
||||
<rate_limit sense="incr">0.2</rate_limit> <!-- 5 seconds -->
|
||||
</actuator>
|
||||
|
||||
<actuator name="/ECAM/warnings/timer/eng-aice-1-closed-output">
|
||||
<description>Timer for the ECAM system</description>
|
||||
<input>/ECAM/warnings/logic/eng-aice-1-closed</input>
|
||||
<rate_limit sense="decr">100</rate_limit> <!-- Instant -->
|
||||
<rate_limit sense="incr">0.1</rate_limit> <!-- 5 seconds -->
|
||||
</actuator>
|
||||
|
||||
<actuator name="/ECAM/warnings/timer/eng-aice-2-closed-output">
|
||||
<description>Timer for the ECAM system</description>
|
||||
<input>/ECAM/warnings/logic/eng-aice-2-closed</input>
|
||||
<rate_limit sense="decr">100</rate_limit> <!-- Instant -->
|
||||
<rate_limit sense="incr">0.1</rate_limit> <!-- 5 seconds -->
|
||||
</actuator>
|
||||
</channel>
|
||||
|
||||
<channel name="ECAM">
|
||||
|
@ -503,6 +531,44 @@
|
|||
/ECAM/warning-phase eq 7
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng-aice-1-open">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/ECAM/phases/timer/eng1idle-output ne 0
|
||||
/systems/electrical/bus/dc-1 ge 25
|
||||
/controls/ice-protection/lengfault eq 1
|
||||
/controls/ice-protection/leng eq 0
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng-aice-2-open">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/ECAM/phases/timer/eng2idle-output ne 0
|
||||
/systems/electrical/bus/dc-2 ge 25
|
||||
/controls/ice-protection/rengfault eq 1
|
||||
/controls/ice-protection/reng eq 0
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng-aice-1-closed">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/ECAM/phases/timer/eng1idle-output ne 0
|
||||
/controls/ice-protection/lengfault eq 1
|
||||
/controls/ice-protection/leng eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/eng-aice-2-closed">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/ECAM/phases/timer/eng2idle-output ne 0
|
||||
/controls/ice-protection/rengfault eq 1
|
||||
/controls/ice-protection/reng eq 1
|
||||
</test>
|
||||
</switch>
|
||||
</channel>
|
||||
|
||||
</system>
|
||||
|
|
|
@ -415,8 +415,9 @@
|
|||
|
||||
<switch name="/systems/pneumatics/valves/wing-ice-1-cmd">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="0">
|
||||
<test logic="OR" value="0">
|
||||
/systems/electrical/bus/dc-ess-shed lt 25
|
||||
/systems/pneumatics/psi/engine-1-psi lt 7
|
||||
</test>
|
||||
<test logic="AND" value="1">
|
||||
/controls/ice-protection/wing eq 1
|
||||
|
@ -427,10 +428,12 @@
|
|||
<default value="0"/>
|
||||
<test logic="OR" value="0">
|
||||
/systems/failures/icing/wing-left-valve eq 1
|
||||
/systems/pneumatics/psi/engine-1-psi lt 7
|
||||
</test>
|
||||
<test logic="AND" value="0.5">
|
||||
<test logic="OR">
|
||||
/systems/electrical/bus/dc-ess-shed lt 25
|
||||
/systems/pneumatics/psi/engine-1-psi lt 7
|
||||
</test>
|
||||
/systems/pneumatics/valves/wing-ice-1-cmd eq 0
|
||||
/systems/pneumatics/valves/wing-ice-1 ne 0
|
||||
</test>
|
||||
|
@ -446,8 +449,9 @@
|
|||
|
||||
<switch name="/systems/pneumatics/valves/wing-ice-2-cmd">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="0">
|
||||
<test logic="OR" value="0">
|
||||
/systems/electrical/bus/dc-ess-shed lt 25
|
||||
/systems/pneumatics/psi/engine-2-psi lt 7
|
||||
</test>
|
||||
<test logic="AND" value="1">
|
||||
/controls/ice-protection/wing eq 1
|
||||
|
@ -458,10 +462,12 @@
|
|||
<default value="0"/>
|
||||
<test logic="OR" value="0">
|
||||
/systems/failures/icing/wing-right-valve eq 1
|
||||
/systems/pneumatics/psi/engine-2-psi lt 7
|
||||
</test>
|
||||
<test logic="AND" value="0.5">
|
||||
<test logic="OR">
|
||||
/systems/electrical/bus/dc-ess-shed lt 25
|
||||
/systems/pneumatics/psi/engine-2-psi lt 7
|
||||
</test>
|
||||
/systems/pneumatics/valves/wing-ice-2-cmd eq 0
|
||||
/systems/pneumatics/valves/wing-ice-2 ne 0
|
||||
</test>
|
||||
|
@ -477,6 +483,9 @@
|
|||
|
||||
<switch name="/systems/pneumatics/valves/engine-ice-1-cmd">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="0">
|
||||
/systems/pneumatics/source/engine-1-hp-psi lt 7
|
||||
</test>
|
||||
<test logic="AND" value="1">
|
||||
/systems/electrical/bus/dc-1 lt 25
|
||||
</test>
|
||||
|
@ -487,16 +496,18 @@
|
|||
|
||||
<switch name="/systems/pneumatics/valves/engine-ice-1-power">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="0">
|
||||
<test logic="OR" value="0">
|
||||
/systems/failures/icing/engine-left-valve eq 1
|
||||
</test>
|
||||
<test logic="AND" value="0.50">
|
||||
<test logic="OR">
|
||||
/systems/electrical/bus/dc-1 lt 25
|
||||
/systems/pneumatics/source/engine-1-hp-psi lt 7
|
||||
</test>
|
||||
<test logic="AND" value="0.5">
|
||||
/systems/electrical/bus/dc-1 lt 25
|
||||
/systems/pneumatics/valves/engine-ice-1-cmd eq 1
|
||||
/systems/pneumatics/valves/engine-ice-1 ne 1
|
||||
</test>
|
||||
<test logic="AND" value="2">
|
||||
<test logic="AND" value="1.0">
|
||||
/systems/electrical/bus/dc-1 ge 25
|
||||
</test>
|
||||
</switch>
|
||||
|
@ -508,6 +519,9 @@
|
|||
|
||||
<switch name="/systems/pneumatics/valves/engine-ice-2-cmd">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="0">
|
||||
/systems/pneumatics/source/engine-2-hp-psi lt 7
|
||||
</test>
|
||||
<test logic="AND" value="1">
|
||||
/systems/electrical/bus/dc-2 lt 25
|
||||
</test>
|
||||
|
@ -518,16 +532,18 @@
|
|||
|
||||
<switch name="/systems/pneumatics/valves/engine-ice-2-power">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="0">
|
||||
<test logic="OR" value="0">
|
||||
/systems/failures/icing/engine-right-valve eq 1
|
||||
/systems/pneumatics/source/engine-1-hp-psi lt 7
|
||||
</test>
|
||||
<test logic="AND" value="0.5">
|
||||
<test logic="AND" value="0.50">
|
||||
<test logic="OR">
|
||||
/systems/electrical/bus/dc-2 lt 25
|
||||
/systems/pneumatics/source/engine-2-hp-psi lt 7
|
||||
</test>
|
||||
/systems/pneumatics/valves/engine-ice-2-cmd eq 1
|
||||
/systems/pneumatics/valves/engine-ice-2 ne 1
|
||||
</test>
|
||||
<test logic="AND" value="2">
|
||||
<test logic="AND" value="1.0">
|
||||
/systems/electrical/bus/dc-2 ge 25
|
||||
</test>
|
||||
</switch>
|
||||
|
@ -1259,8 +1275,8 @@
|
|||
<switch name="/controls/ice-protection/wingfault">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/systems/pneumatics/valves/wing-ice-1 ne /systems/pneumatics/valves/wing-ice-1-cmd
|
||||
/systems/pneumatics/valves/wing-ice-2 ne /systems/pneumatics/valves/wing-ice-2-cmd
|
||||
/systems/pneumatics/valves/wing-ice-1 ne /controls/ice-protection/wing
|
||||
/systems/pneumatics/valves/wing-ice-2 ne /controls/ice-protection/wing
|
||||
/systems/electrical/bus/dc-ess-shed lt 25
|
||||
</test>
|
||||
</switch>
|
||||
|
@ -1268,14 +1284,14 @@
|
|||
<switch name="/controls/ice-protection/lengfault">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/systems/pneumatics/valves/engine-ice-1 ne /systems/pneumatics/valves/engine-ice-1-cmd
|
||||
/systems/pneumatics/valves/engine-ice-1 ne /controls/ice-protection/leng
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/controls/ice-protection/rengfault">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/systems/pneumatics/valves/engine-ice-2 ne /systems/pneumatics/valves/engine-ice-2-cmd
|
||||
/systems/pneumatics/valves/engine-ice-2 ne /controls/ice-protection/reng
|
||||
</test>
|
||||
</switch>
|
||||
</channel>
|
||||
|
|
Loading…
Reference in a new issue