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

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

View file

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

View file

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

View file

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