Trim air / cabin fans failures
This commit is contained in:
parent
914ecaed4f
commit
85b9d39593
5 changed files with 110 additions and 19 deletions
|
@ -51,6 +51,7 @@ var warningNodes = {
|
||||||
pack12Fault: props.globals.initNode("/ECAM/warnings/logic/pack-1-2-fault"),
|
pack12Fault: props.globals.initNode("/ECAM/warnings/logic/pack-1-2-fault"),
|
||||||
pack1ResetPb: props.globals.initNode("/ECAM/warnings/logic/reset-pack-1-switch-cmd"),
|
pack1ResetPb: props.globals.initNode("/ECAM/warnings/logic/reset-pack-1-switch-cmd"),
|
||||||
pack2ResetPb: props.globals.initNode("/ECAM/warnings/logic/reset-pack-2-switch-cmd"),
|
pack2ResetPb: props.globals.initNode("/ECAM/warnings/logic/reset-pack-2-switch-cmd"),
|
||||||
|
cabinFans: props.globals.initNode("/ECAM/warnings/logic/cabin-fans-fault"),
|
||||||
},
|
},
|
||||||
Timers: {
|
Timers: {
|
||||||
apuFaultOutput: props.globals.initNode("/ECAM/warnings/timer/apu-fault-output"),
|
apuFaultOutput: props.globals.initNode("/ECAM/warnings/timer/apu-fault-output"),
|
||||||
|
@ -76,6 +77,7 @@ var warningNodes = {
|
||||||
pack2Fault: props.globals.initNode("/ECAM/warnings/timer/pack-2-fault-2"),
|
pack2Fault: props.globals.initNode("/ECAM/warnings/timer/pack-2-fault-2"),
|
||||||
pack1Off: props.globals.initNode("/ECAM/warnings/timer/pack-1-off"),
|
pack1Off: props.globals.initNode("/ECAM/warnings/timer/pack-1-off"),
|
||||||
pack2Off: props.globals.initNode("/ECAM/warnings/timer/pack-2-off"),
|
pack2Off: props.globals.initNode("/ECAM/warnings/timer/pack-2-off"),
|
||||||
|
trimAirFault: props.globals.initNode("/ECAM/warnings/timer/trim-air-fault"),
|
||||||
},
|
},
|
||||||
Flipflops: {
|
Flipflops: {
|
||||||
bleed1LowTemp: props.globals.initNode("/ECAM/warnings/logic/bleed-1-low-temp-flipflop-output"),
|
bleed1LowTemp: props.globals.initNode("/ECAM/warnings/logic/bleed-1-low-temp-flipflop-output"),
|
||||||
|
|
|
@ -1716,6 +1716,42 @@ var messages_priority_2 = func {
|
||||||
ECAM_controller.warningReset(pack2Off);
|
ECAM_controller.warningReset(pack2Off);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# COND
|
||||||
|
if (cabFanFault.clearFlag == 0 and (phaseVar <= 2 or phaseVar >= 9 or phaseVar == 6) and warningNodes.Logic.cabinFans.getBoolValue()) {
|
||||||
|
cabFanFault.active = 1;
|
||||||
|
cabFanFaultFlow.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(cabFanFault);
|
||||||
|
ECAM_controller.warningReset(cabFanFaultFlow);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (trimAirFault.clearFlag == 0 and (phaseVar <= 2 or phaseVar >= 9 or phaseVar == 6) and warningNodes.Timers.trimAirFault.getValue() == 1) {
|
||||||
|
trimAirFault.active = 1;
|
||||||
|
|
||||||
|
if (systems.PNEU.Fail.trimValveAft.getBoolValue()) {
|
||||||
|
trimAirFaultAft.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(trimAirFaultAft);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (systems.PNEU.Fail.trimValveFwd.getBoolValue()) {
|
||||||
|
trimAirFaultFwd.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(trimAirFaultFwd);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (systems.PNEU.Fail.trimValveCockpit.getBoolValue()) {
|
||||||
|
trimAirFaultCkpt.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(trimAirFaultCkpt);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(trimAirFault);
|
||||||
|
ECAM_controller.warningReset(trimAirFaultAft);
|
||||||
|
ECAM_controller.warningReset(trimAirFaultFwd);
|
||||||
|
ECAM_controller.warningReset(trimAirFaultCkpt);
|
||||||
|
}
|
||||||
|
|
||||||
# ENG AICE
|
# ENG AICE
|
||||||
if (eng1IceClosed.clearFlag == 0 and (phaseVar <= 2 or phaseVar >= 9 or phaseVar == 6) and warningNodes.Timers.eng1AiceNotOpen.getValue() == 1) {
|
if (eng1IceClosed.clearFlag == 0 and (phaseVar <= 2 or phaseVar >= 9 or phaseVar == 6) and warningNodes.Timers.eng1AiceNotOpen.getValue() == 1) {
|
||||||
eng1IceClosed.active = 1;
|
eng1IceClosed.active = 1;
|
||||||
|
|
|
@ -250,8 +250,8 @@ var warnings = std.Vector.new([
|
||||||
var bleed2FaultPack = warning.new(msg: " -PACK 2.............OFF", colour: "c"),
|
var bleed2FaultPack = warning.new(msg: " -PACK 2.............OFF", colour: "c"),
|
||||||
var bleed2FaultXBleed = warning.new(msg: " -X BLEED...........OPEN", colour: "c"),
|
var bleed2FaultXBleed = warning.new(msg: " -X BLEED...........OPEN", colour: "c"),
|
||||||
var apuBleedFault = warning.new(msg: "AIR APU BLEED FAULT", colour: "a", aural: 1, light: 1),
|
var apuBleedFault = warning.new(msg: "AIR APU BLEED FAULT", colour: "a", aural: 1, light: 1),
|
||||||
var hpValve1Fault = warning.new(msg: "AIR ENG 1 HP VALVE FAULT", colour: "a", aural: 0, light: 0),
|
var hpValve1Fault = warning.new(msg: "AIR ENG 1 HP VALVE FAULT", colour: "a"),
|
||||||
var hpValve2Fault = warning.new(msg: "AIR ENG 2 HP VALVE FAULT", colour: "a", aural: 0, light: 0),
|
var hpValve2Fault = warning.new(msg: "AIR ENG 2 HP VALVE FAULT", colour: "a"),
|
||||||
var xBleedFault = warning.new(msg: "AIR X BLEED FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
var xBleedFault = warning.new(msg: "AIR X BLEED FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||||
var xBleedFaultMan = warning.new(msg: " -X BLEED........MAN CTL", colour: "c"),
|
var xBleedFaultMan = warning.new(msg: " -X BLEED........MAN CTL", colour: "c"),
|
||||||
var xBleedOff = warning.new(msg: " -WING ANTI ICE......OFF", colour: "c"),
|
var xBleedOff = warning.new(msg: " -WING ANTI ICE......OFF", colour: "c"),
|
||||||
|
@ -292,9 +292,9 @@ var warnings = std.Vector.new([
|
||||||
var eng1BleedNotClsdOff = warning.new(msg: " -ENG 1 BLEED........OFF", colour: "c"),
|
var eng1BleedNotClsdOff = warning.new(msg: " -ENG 1 BLEED........OFF", colour: "c"),
|
||||||
var eng2BleedNotClsd = warning.new(msg: "AIR ENG 2 BLEED NOT CLSD", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
var eng2BleedNotClsd = warning.new(msg: "AIR ENG 2 BLEED NOT CLSD", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||||
var eng2BleedNotClsdOff = warning.new(msg: " -ENG 2 BLEED........OFF", colour: "c"),
|
var eng2BleedNotClsdOff = warning.new(msg: " -ENG 2 BLEED........OFF", colour: "c"),
|
||||||
var bleedMonFault = warning.new(msg: "BLEED MONITORING FAULT", colour: "a", aural: 0, light: 0, isMainMsg: 1),
|
var bleedMonFault = warning.new(msg: "BLEED MONITORING FAULT", colour: "a", isMainMsg: 1),
|
||||||
var bleedMon1Fault = warning.new(msg: "BLEED MONIT SYS 1 FAULT", colour: "a", aural: 0, light: 0, isMainMsg: 1),
|
var bleedMon1Fault = warning.new(msg: "BLEED MONIT SYS 1 FAULT", colour: "a", isMainMsg: 1),
|
||||||
var bleedMon2Fault = warning.new(msg: "BLEED MONIT SYS 2 FAULT", colour: "a", aural: 0, light: 0, isMainMsg: 1),
|
var bleedMon2Fault = warning.new(msg: "BLEED MONIT SYS 2 FAULT", colour: "a", isMainMsg: 1),
|
||||||
|
|
||||||
# PACK
|
# PACK
|
||||||
var pack12Fault = warning.new(msg: "AIR PACK 1+2 FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
var pack12Fault = warning.new(msg: "AIR PACK 1+2 FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||||
|
@ -322,10 +322,12 @@ var warnings = std.Vector.new([
|
||||||
var pack2FaultOff = warning.new(msg: " -PACK 2.............OFF", colour: "c"),
|
var pack2FaultOff = warning.new(msg: " -PACK 2.............OFF", colour: "c"),
|
||||||
var pack1Off = warning.new(msg: "AIR PACK 1 OFF", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
var pack1Off = warning.new(msg: "AIR PACK 1 OFF", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||||
var pack2Off = warning.new(msg: "AIR PACK 2 OFF", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
var pack2Off = warning.new(msg: "AIR PACK 2 OFF", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||||
var pack1RegulFlt = warning.new(msg: "AIR PACK 1 REGUL FAULT", colour: "a", aural: 0, light: 0, isMainMsg: 1),
|
var cabFanFault = warning.new(msg: "COND L+R CAB FAN FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||||
var pack2RegulFlt = warning.new(msg: "AIR PACK 2 REGUL FAULT", colour: "a", aural: 0, light: 0, isMainMsg: 1),
|
var cabFanFaultFlow = warning.new(msg: " -PACK FLOW...........HI", colour: "c"),
|
||||||
var aftCrgVentFlt = warning.new(msg: "AIR AFT CRG VENT FAULT", colour: "a", aural: 0, light: 0, isMainMsg: 1),
|
var trimAirFault = warning.new(msg: "COND TRIM AIR SYS FAULT", colour: "a", isMainMsg: 1),
|
||||||
var fwdCrgVentFlt = warning.new(msg: "AIR FWD CRG VENT FAULT", colour: "a", aural: 0, light: 0, isMainMsg: 1),
|
var trimAirFaultAft = warning.new(msg: " -AFT CAB TRIM VALVE", colour: "c"),
|
||||||
|
var trimAirFaultFwd = warning.new(msg: " -FWD CAB TRIM VALVE", colour: "c"),
|
||||||
|
var trimAirFaultCkpt = warning.new(msg: " -CKPT TRIM VALVE", colour: "c"),
|
||||||
|
|
||||||
# Eng AICE
|
# Eng AICE
|
||||||
var eng1IceClosed = warning.new(msg: "ANTI ICE ENG1 VALVE CLSD", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
var eng1IceClosed = warning.new(msg: "ANTI ICE ENG1 VALVE CLSD", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||||
|
@ -364,9 +366,9 @@ var warnings = std.Vector.new([
|
||||||
var wingIceROpenThrust = warning.new(msg: " THRUST LIM PENALTY", colour: "c"),
|
var wingIceROpenThrust = warning.new(msg: " THRUST LIM PENALTY", colour: "c"),
|
||||||
var wingIceOpenGnd = warning.new(msg: "WING A.ICE OPEN ON GND", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
var wingIceOpenGnd = warning.new(msg: "WING A.ICE OPEN ON GND", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||||
var wingIceOpenGndShut = warning.new(msg: " -WING ANTI ICE......OFF", colour: "c"),
|
var wingIceOpenGndShut = warning.new(msg: " -WING ANTI ICE......OFF", colour: "c"),
|
||||||
var wingIceLHiPr = warning.new(msg: "WING A.ICE L HI PR", colour: "a", aural: 0, light: 0, isMainMsg: 1),
|
var wingIceLHiPr = warning.new(msg: "WING A.ICE L HI PR", colour: "a", isMainMsg: 1),
|
||||||
var wingIceLHiPrThrust = warning.new(msg: " THRUST LIM PENTALTY", colour: "c"),
|
var wingIceLHiPrThrust = warning.new(msg: " THRUST LIM PENTALTY", colour: "c"),
|
||||||
var wingIceRHiPr = warning.new(msg: "WING A.ICE R HI PR", colour: "a", aural: 0, light: 0, isMainMsg: 1),
|
var wingIceRHiPr = warning.new(msg: "WING A.ICE R HI PR", colour: "a", isMainMsg: 1),
|
||||||
var wingIceRHiPrThrust = warning.new(msg: " THRUST LIM PENTALTY", colour: "c"),
|
var wingIceRHiPrThrust = warning.new(msg: " THRUST LIM PENTALTY", colour: "c"),
|
||||||
|
|
||||||
# FIRE det fault
|
# FIRE det fault
|
||||||
|
|
|
@ -313,7 +313,7 @@
|
||||||
<function>
|
<function>
|
||||||
<ifthen>
|
<ifthen>
|
||||||
<eq>
|
<eq>
|
||||||
<property>/controls/pneumatics/switches/hot-air</property>
|
<property>/systems/air-conditioning/valves/hot-air</property>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</eq>
|
</eq>
|
||||||
<min>
|
<min>
|
||||||
|
@ -373,7 +373,7 @@
|
||||||
<function>
|
<function>
|
||||||
<ifthen>
|
<ifthen>
|
||||||
<eq>
|
<eq>
|
||||||
<property>/controls/pneumatics/switches/hot-air</property>
|
<property>/systems/air-conditioning/valves/hot-air</property>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</eq>
|
</eq>
|
||||||
<min>
|
<min>
|
||||||
|
@ -413,7 +413,7 @@
|
||||||
<function>
|
<function>
|
||||||
<ifthen>
|
<ifthen>
|
||||||
<eq>
|
<eq>
|
||||||
<property>/controls/pneumatics/switches/hot-air</property>
|
<property>/systems/air-conditioning/valves/hot-air</property>
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
</eq>
|
</eq>
|
||||||
<min>
|
<min>
|
||||||
|
@ -766,12 +766,20 @@
|
||||||
</test>
|
</test>
|
||||||
</switch>
|
</switch>
|
||||||
|
|
||||||
|
<switch name="/systems/air-conditioning/recirc/cabin-fans">
|
||||||
|
<default value="0"/>
|
||||||
|
<test logic="AND" value="1">
|
||||||
|
/controls/switches/pneumatics/cabin-fans eq 1
|
||||||
|
/systems/failures/pneumatics/cabin-fans eq 0
|
||||||
|
</test>
|
||||||
|
</switch>
|
||||||
|
|
||||||
<fcs_function name="/systems/air-conditioning/mass-flow-total-kg_s">
|
<fcs_function name="/systems/air-conditioning/mass-flow-total-kg_s">
|
||||||
<function>
|
<function>
|
||||||
<sum>
|
<sum>
|
||||||
<product>
|
<product>
|
||||||
<property>/systems/air-conditioning/recirc/recirc-factor</property>
|
<property>/systems/air-conditioning/recirc/recirc-factor</property>
|
||||||
<property>/controls/switches/pneumatics/cabin-fans</property>
|
<property>/systems/air-conditioning/recirc/cabin-fans</property>
|
||||||
<property>/systems/air-conditioning/mass-flow-fresh-kg_s</property>
|
<property>/systems/air-conditioning/mass-flow-fresh-kg_s</property>
|
||||||
</product>
|
</product>
|
||||||
<property>/systems/air-conditioning/mass-flow-fresh-kg_s</property>
|
<property>/systems/air-conditioning/mass-flow-fresh-kg_s</property>
|
||||||
|
|
|
@ -314,6 +314,13 @@
|
||||||
<rate_limit sense="incr">0.0166666</rate_limit> <!-- 60 seconds -->
|
<rate_limit sense="incr">0.0166666</rate_limit> <!-- 60 seconds -->
|
||||||
</actuator>
|
</actuator>
|
||||||
|
|
||||||
|
<actuator name="/ECAM/warnings/timer/trim-air-fault">
|
||||||
|
<description>Timer for the ECAM system</description>
|
||||||
|
<input>/ECAM/warnings/logic/trim-air-fault-input</input>
|
||||||
|
<rate_limit sense="decr">100</rate_limit> <!-- Instant -->
|
||||||
|
<rate_limit sense="incr">0.2</rate_limit> <!-- 5 seconds -->
|
||||||
|
</actuator>
|
||||||
|
|
||||||
</channel>
|
</channel>
|
||||||
|
|
||||||
<channel name="ECAM">
|
<channel name="ECAM">
|
||||||
|
@ -1160,6 +1167,42 @@
|
||||||
</test>
|
</test>
|
||||||
</switch>
|
</switch>
|
||||||
|
|
||||||
|
<switch name="/ECAM/warnings/logic/trim-air-fault-inhibit">
|
||||||
|
<default value="0"/>
|
||||||
|
<test logic="OR" value="1">
|
||||||
|
/systems/electrical/bus/ac-ess lt 110
|
||||||
|
<test logic="AND">
|
||||||
|
<test logic="OR">
|
||||||
|
/ECAM/warning-phase eq 1
|
||||||
|
/ECAM/warning-phase eq 10
|
||||||
|
</test>
|
||||||
|
/systems/air-conditioning/valves/hot-air eq 0
|
||||||
|
</test>
|
||||||
|
</test>
|
||||||
|
</switch>
|
||||||
|
|
||||||
|
<switch name="/ECAM/warnings/logic/trim-air-fault-input">
|
||||||
|
<default value="0"/>
|
||||||
|
<test logic="AND" value="1">
|
||||||
|
<test logic="OR">
|
||||||
|
/systems/failures/pneumatics/trim-valve-cabin-aft eq 1
|
||||||
|
/systems/failures/pneumatics/trim-valve-cabin-fwd eq 1
|
||||||
|
/systems/failures/pneumatics/trim-valve-cockpit eq 1
|
||||||
|
</test>
|
||||||
|
/ECAM/warnings/logic/trim-air-fault-inhibit eq 0
|
||||||
|
</test>
|
||||||
|
</switch>
|
||||||
|
|
||||||
|
<switch name="/ECAM/warnings/logic/cabin-fans-fault">
|
||||||
|
<default value="0"/>
|
||||||
|
<test logic="AND" value="1">
|
||||||
|
/systems/failures/pneumatics/cabin-fans eq 1
|
||||||
|
/systems/electrical/bus/dc-1 ge 25
|
||||||
|
/systems/electrical/bus/dc-2 ge 25
|
||||||
|
/systems/electrical/bus/ac-1 ge 110
|
||||||
|
/systems/electrical/bus/ac-2 ge 110
|
||||||
|
</test>
|
||||||
|
</switch>
|
||||||
</channel>
|
</channel>
|
||||||
|
|
||||||
</system>
|
</system>
|
||||||
|
|
Loading…
Reference in a new issue