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
|
# Crossbleed
|
||||||
if (xBleedFault.clearFlag == 0 and (phaseVar2 <= 2 or phaseVar2 >= 9 or phaseVar2 == 6) and warningNodes.Logic.crossbleedFault.getValue()) {
|
if (xBleedFault.clearFlag == 0 and (phaseVar2 <= 2 or phaseVar2 >= 9 or phaseVar2 == 6) and warningNodes.Logic.crossbleedFault.getValue()) {
|
||||||
xBleedFault.active = 1;
|
xBleedFault.active = 1;
|
||||||
} else {
|
|
||||||
ECAM_controller.warningReset(xBleedFault);
|
if (xBleedFaultMan.clearFlag == 0 and systems.PNEU.Switch.xbleed.getValue() == 1) {
|
||||||
}
|
|
||||||
|
|
||||||
if (xBleedFault.active) {
|
|
||||||
if (systems.PNEU.Switch.xbleed.getValue() == 1) {
|
|
||||||
xBleedFaultMan.active = 1;
|
xBleedFaultMan.active = 1;
|
||||||
} else {
|
} else {
|
||||||
ECAM_controller.warningReset(xBleedFaultMan);
|
ECAM_controller.warningReset(xBleedFaultMan);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (warningNodes.Logic.crossbleedWai.getValue()) {
|
if (xBleedFaultWAI.clearFlag == 0 and wing_pb.getValue() and warningNodes.Logic.crossbleedWai.getValue()) {
|
||||||
if (getprop("/controls/ice-protection/wing")) {
|
xBleedFaultWAI.active = 1;
|
||||||
xBleedOff.active = 1;
|
|
||||||
} else {
|
|
||||||
ECAM_controller.warningReset(xBleedOff);
|
|
||||||
}
|
|
||||||
xBleedIcing.active = 1;
|
|
||||||
} else {
|
} else {
|
||||||
ECAM_controller.warningReset(xBleedOff);
|
ECAM_controller.warningReset(xBleedFaultWAI);
|
||||||
ECAM_controller.warningReset(xBleedIcing);
|
}
|
||||||
|
|
||||||
|
if (xBleedFaultICE.clearFlag == 0 and warningNodes.Logic.crossbleedWai.getValue()) {
|
||||||
|
xBleedFaultICE.active = 1;
|
||||||
|
} else {
|
||||||
|
ECAM_controller.warningReset(xBleedFaultICE);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
ECAM_controller.warningReset(xBleedFault);
|
||||||
ECAM_controller.warningReset(xBleedFaultMan);
|
ECAM_controller.warningReset(xBleedFaultMan);
|
||||||
ECAM_controller.warningReset(xBleedOff);
|
ECAM_controller.warningReset(xBleedFaultWAI);
|
||||||
ECAM_controller.warningReset(xBleedIcing);
|
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)) {
|
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 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 xBleedFaultWAI = warning.new(msg: " -WING ANTI ICE......OFF", colour: "c"),
|
||||||
var xBleedIcing = warning.new(msg: " AVOID ICING CONDITIONS", 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 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 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),
|
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 -->
|
<rate_limit sense="incr">0.1</rate_limit> <!-- 10 seconds -->
|
||||||
</actuator>
|
</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">
|
<actuator name="/ECAM/warnings/timer/prv-1-not-shut-apu-output">
|
||||||
<description>Timer for the ECAM system</description>
|
<description>Timer for the ECAM system</description>
|
||||||
<input>/ECAM/warnings/logic/prv-1-not-shut-apu</input>
|
<input>/ECAM/warnings/logic/prv-1-not-shut-apu</input>
|
||||||
|
@ -474,13 +487,27 @@
|
||||||
</test>
|
</test>
|
||||||
</switch>
|
</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">
|
<switch name="/ECAM/warnings/logic/crossbleed-fault">
|
||||||
<default value="0"/>
|
<default value="0"/>
|
||||||
<test logic="OR" value="1">
|
<test logic="OR" value="1">
|
||||||
/ECAM/warnings/timer/xbleed-fault-output eq 1
|
/ECAM/warnings/timer/xbleed-fault-output eq 1
|
||||||
<test logic="AND">
|
<test logic="AND">
|
||||||
/ECAM/warnings/timer/xbleed-fault-output-10 eq 1
|
<test logic="AND">
|
||||||
/ECAM/warnings/timer/xbleed-fault-output-15 eq 0
|
/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>
|
||||||
</test>
|
</test>
|
||||||
</switch>
|
</switch>
|
||||||
|
|
|
@ -1183,28 +1183,47 @@
|
||||||
<rate_limit sense="decr">120</rate_limit>
|
<rate_limit sense="decr">120</rate_limit>
|
||||||
</actuator>
|
</actuator>
|
||||||
|
|
||||||
<switch name="/systems/pneumatics/warnings/crossbleed-disag-open">
|
<switch name="/systems/pneumatics/warnings/crossbleed-disag-open-man">
|
||||||
<default value="0"/>
|
<default value="0"/>
|
||||||
<test logic="AND" value="1">
|
<test logic="AND" value="1">
|
||||||
/systems/pneumatics/valves/crossbleed-valve-cmd eq 1
|
/systems/pneumatics/valves/crossbleed-valve-cmd eq 1
|
||||||
/systems/pneumatics/valves/crossbleed-valve ne 1
|
/systems/pneumatics/valves/crossbleed-valve ne 1
|
||||||
/controls/pneumatics/switches/x-bleed eq 2
|
/controls/pneumatics/switches/x-bleed eq 2
|
||||||
</test>
|
</test>
|
||||||
|
</switch>
|
||||||
|
|
||||||
|
<switch name="/systems/pneumatics/warnings/crossbleed-disag-open-auto">
|
||||||
|
<default value="0"/>
|
||||||
<test logic="AND" value="1">
|
<test logic="AND" value="1">
|
||||||
/systems/pneumatics/valves/crossbleed-valve-cmd eq 1
|
/systems/pneumatics/valves/crossbleed-valve-cmd eq 1
|
||||||
/systems/pneumatics/valves/crossbleed-valve ne 1
|
/systems/pneumatics/valves/crossbleed-valve ne 1
|
||||||
/controls/pneumatics/switches/x-bleed eq 1
|
/controls/pneumatics/switches/x-bleed eq 1
|
||||||
/systems/electrical/bus/dc-2 ge 25
|
|
||||||
</test>
|
</test>
|
||||||
</switch>
|
</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"/>
|
<default value="0"/>
|
||||||
<test logic="AND" value="1">
|
<test logic="AND" value="1">
|
||||||
/systems/pneumatics/valves/crossbleed-valve-cmd eq 0
|
/systems/pneumatics/valves/crossbleed-valve-cmd eq 0
|
||||||
/systems/pneumatics/valves/crossbleed-valve ne 0
|
/systems/pneumatics/valves/crossbleed-valve ne 0
|
||||||
</test>
|
</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
|
/systems/pneumatics/warnings/crossbleed-disag-open eq 1
|
||||||
</test>
|
</test>
|
||||||
</switch>
|
</switch>
|
||||||
|
|
|
@ -412,30 +412,6 @@
|
||||||
</flipflop>
|
</flipflop>
|
||||||
|
|
||||||
<!-- falling edge detectors -->
|
<!-- 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>
|
<flipflop>
|
||||||
<type>SR</type>
|
<type>SR</type>
|
||||||
<S>
|
<S>
|
||||||
|
|
Loading…
Reference in a new issue