1
0
Fork 0

XBLEED FAULT fixes so they don't come on with engine fire

This commit is contained in:
legoboyvdlp R 2021-01-29 21:09:21 +00:00
parent f10da37fed
commit 59b6196e4c
5 changed files with 69 additions and 50 deletions

View file

@ -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)) {

View file

@ -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),

View file

@ -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>

View file

@ -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>

View file

@ -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>