XBLEED FAULT fixes so they don't come on with engine fire
This commit is contained in:
parent
f10da37fed
commit
59b6196e4c
5 changed files with 69 additions and 50 deletions
|
@ -1657,32 +1657,29 @@ var messages_priority_2 = func {
|
|||
# Crossbleed
|
||||
if (xBleedFault.clearFlag == 0 and (phaseVar2 <= 2 or phaseVar2 >= 9 or phaseVar2 == 6) and warningNodes.Logic.crossbleedFault.getValue()) {
|
||||
xBleedFault.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(xBleedFault);
|
||||
}
|
||||
|
||||
if (xBleedFault.active) {
|
||||
if (systems.PNEU.Switch.xbleed.getValue() == 1) {
|
||||
|
||||
if (xBleedFaultMan.clearFlag == 0 and systems.PNEU.Switch.xbleed.getValue() == 1) {
|
||||
xBleedFaultMan.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(xBleedFaultMan);
|
||||
}
|
||||
|
||||
if (warningNodes.Logic.crossbleedWai.getValue()) {
|
||||
if (getprop("/controls/ice-protection/wing")) {
|
||||
xBleedOff.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(xBleedOff);
|
||||
}
|
||||
xBleedIcing.active = 1;
|
||||
if (xBleedFaultWAI.clearFlag == 0 and wing_pb.getValue() and warningNodes.Logic.crossbleedWai.getValue()) {
|
||||
xBleedFaultWAI.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(xBleedOff);
|
||||
ECAM_controller.warningReset(xBleedIcing);
|
||||
ECAM_controller.warningReset(xBleedFaultWAI);
|
||||
}
|
||||
|
||||
if (xBleedFaultICE.clearFlag == 0 and warningNodes.Logic.crossbleedWai.getValue()) {
|
||||
xBleedFaultICE.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(xBleedFaultICE);
|
||||
}
|
||||
} else {
|
||||
ECAM_controller.warningReset(xBleedFault);
|
||||
ECAM_controller.warningReset(xBleedFaultMan);
|
||||
ECAM_controller.warningReset(xBleedOff);
|
||||
ECAM_controller.warningReset(xBleedIcing);
|
||||
ECAM_controller.warningReset(xBleedFaultWAI);
|
||||
ECAM_controller.warningReset(xBleedFaultICE);
|
||||
}
|
||||
|
||||
if (bleed1Off.clearFlag == 0 and (warningNodes.Timers.bleed1Off60Output.getValue() == 1 or warningNodes.Timers.bleed1Off5Output.getValue() == 1) and FWC.Timer.eng1idleOutput.getBoolValue() and (phaseVar2 == 2 or phaseVar2 == 6)) {
|
||||
|
|
|
@ -362,8 +362,8 @@ var warnings = std.Vector.new([
|
|||
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 xBleedFaultMan = warning.new(msg: " -X BLEED........MAN CTL", colour: "c"),
|
||||
var xBleedOff = warning.new(msg: " -WING ANTI ICE......OFF", colour: "c"),
|
||||
var xBleedIcing = warning.new(msg: " AVOID ICING CONDITIONS", colour: "c"),
|
||||
var xBleedFaultWAI = warning.new(msg: " -WING ANTI ICE......OFF", colour: "c"),
|
||||
var xBleedFaultICE = warning.new(msg: " AVOID ICING CONDITIONS", colour: "c"),
|
||||
var bleed1Off = warning.new(msg: "AIR BLEED 1 OFF", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||
var bleed2Off = warning.new(msg: "AIR BLEED 2 OFF", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||
var engBleedLowTemp = warning.new(msg: "AIR ENG 1+2 BLEED LO TEMP", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||
|
|
|
@ -62,6 +62,19 @@
|
|||
<rate_limit sense="incr">0.1</rate_limit> <!-- 10 seconds -->
|
||||
</actuator>
|
||||
|
||||
<actuator name="/ECAM/warnings/timer/xbleed-fault-output-10"> <!-- 10 second delay on fall -->
|
||||
<description>Timer for the ECAM system</description>
|
||||
<input>/ECAM/warnings/logic/crossbleed-fault-timer-was-one</input>
|
||||
<rate_limit sense="decr">0.1</rate_limit> <!-- 10 seconds -->
|
||||
<rate_limit sense="incr">120</rate_limit> <!-- Instant -->
|
||||
</actuator>
|
||||
|
||||
<actuator name="/ECAM/warnings/timer/xbleed-fault-eng-fire">
|
||||
<description>Timer for the ECAM system</description>
|
||||
<input>/controls/engines/engine[0]/fire-btn</input>
|
||||
<rate_limit>0.06666666666</rate_limit>
|
||||
</actuator>
|
||||
|
||||
<actuator name="/ECAM/warnings/timer/prv-1-not-shut-apu-output">
|
||||
<description>Timer for the ECAM system</description>
|
||||
<input>/ECAM/warnings/logic/prv-1-not-shut-apu</input>
|
||||
|
@ -474,13 +487,27 @@
|
|||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/ECAM/warnings/logic/crossbleed-fault-timer-was-one">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/ECAM/warnings/timer/xbleed-fault-output eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
|
||||
<switch name="/ECAM/warnings/logic/crossbleed-fault">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/ECAM/warnings/timer/xbleed-fault-output eq 1
|
||||
<test logic="AND">
|
||||
/ECAM/warnings/timer/xbleed-fault-output-10 eq 1
|
||||
/ECAM/warnings/timer/xbleed-fault-output-15 eq 0
|
||||
<test logic="AND">
|
||||
/ECAM/warnings/timer/xbleed-fault-output eq 0
|
||||
/ECAM/warnings/timer/xbleed-fault-output-10 ne 0
|
||||
</test>
|
||||
<test logic="OR">
|
||||
/ECAM/warnings/timer/xbleed-fault-eng-fire eq 0
|
||||
/ECAM/warnings/timer/xbleed-fault-eng-fire eq 1
|
||||
</test>
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
|
|
@ -1183,28 +1183,47 @@
|
|||
<rate_limit sense="decr">120</rate_limit>
|
||||
</actuator>
|
||||
|
||||
<switch name="/systems/pneumatics/warnings/crossbleed-disag-open">
|
||||
<switch name="/systems/pneumatics/warnings/crossbleed-disag-open-man">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/systems/pneumatics/valves/crossbleed-valve-cmd eq 1
|
||||
/systems/pneumatics/valves/crossbleed-valve ne 1
|
||||
/controls/pneumatics/switches/x-bleed eq 2
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/pneumatics/warnings/crossbleed-disag-open-auto">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/systems/pneumatics/valves/crossbleed-valve-cmd eq 1
|
||||
/systems/pneumatics/valves/crossbleed-valve ne 1
|
||||
/controls/pneumatics/switches/x-bleed eq 1
|
||||
/systems/electrical/bus/dc-2 ge 25
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/pneumatics/warnings/crossbleed-disag">
|
||||
|
||||
<switch name="/systems/pneumatics/warnings/crossbleed-disag-open">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/systems/pneumatics/warnings/crossbleed-disag-open-man eq 1
|
||||
<test logic="AND">
|
||||
/systems/pneumatics/warnings/crossbleed-disag-open-auto eq 1
|
||||
/systems/electrical/bus/dc-2 ge 25
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/pneumatics/warnings/crossbleed-disag-closed">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/systems/pneumatics/valves/crossbleed-valve-cmd eq 0
|
||||
/systems/pneumatics/valves/crossbleed-valve ne 0
|
||||
</test>
|
||||
<test logic="AND" value="1">
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/pneumatics/warnings/crossbleed-disag">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1">
|
||||
/systems/pneumatics/warnings/crossbleed-disag-closed eq 1
|
||||
/systems/pneumatics/warnings/crossbleed-disag-open eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
|
|
@ -412,30 +412,6 @@
|
|||
</flipflop>
|
||||
|
||||
<!-- falling edge detectors -->
|
||||
<flipflop>
|
||||
<type>monostable</type>
|
||||
<inverted type="bool">true</inverted>
|
||||
<time>
|
||||
<value>10.0</value>
|
||||
</time>
|
||||
<S>
|
||||
<property>/ECAM/warnings/timer/xbleed-fault-output</property>
|
||||
</S>
|
||||
<output>/ECAM/warnings/timer/xbleed-fault-output-10</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>monostable</type>
|
||||
<inverted type="bool">true</inverted>
|
||||
<time>
|
||||
<value>15.0</value>
|
||||
</time>
|
||||
<S>
|
||||
<property>/controls/engines/engine[0]/fire-btn</property>
|
||||
</S>
|
||||
<output>/ECAM/warnings/timer/xbleed-fault-output-15</output>
|
||||
</flipflop>
|
||||
|
||||
<flipflop>
|
||||
<type>SR</type>
|
||||
<S>
|
||||
|
|
Loading…
Reference in a new issue