1
0
Fork 0

EMER ELEC: big fixes to the logic of the warning

This commit is contained in:
legoboyvdlp R 2021-01-31 17:24:49 +00:00
parent 7abb18dca7
commit 177679ff7a
7 changed files with 183 additions and 69 deletions

View file

@ -87,6 +87,8 @@ var warningNodes = {
spdBrkConfig2: props.globals.initNode("/ECAM/warnings/fctl/spd-brk-config-range"),
pitchTrimConfig2: props.globals.initNode("/ECAM/warnings/fctl/pitch-trim-config-range"),
rudTrimConfig2: props.globals.initNode("/ECAM/warnings/fctl/rudder-trim-config-range"),
dc2FuelConsumptionIncreased: props.globals.initNode("/ECAM/warnings/logic/dc-2-fuel-consumption-increased"),
dc2FMSPredictions: props.globals.initNode("/ECAM/warnings/logic/dc-2-fms-predictions-unreliable"),
},
Timers: {
apuFaultOutput: props.globals.initNode("/ECAM/warnings/timer/apu-fault-output"),
@ -121,6 +123,7 @@ var warningNodes = {
navTerrFault: props.globals.initNode("/ECAM/warnings/timer/nav-gpws-terr-fault"),
leftElevFail: props.globals.initNode("/ECAM/warnings/fctl/leftElevFault-output"),
rightElevFail: props.globals.initNode("/ECAM/warnings/fctl/rightElevFault-output"),
staticInverter: props.globals.initNode("/systems/electrical/some-electric-thingie/static-inverter-timer"),
},
Flipflops: {
apuGenFault: props.globals.initNode("/ECAM/warnings/flipflop/apu-gen-fault"),

View file

@ -828,41 +828,38 @@ var messages_priority_3 = func {
}
# ESS on BAT
if ((!gear.getValue() or !pts.Controls.Gear.gearDown.getValue()) and getprop("/systems/electrical/some-electric-thingie/static-inverter-timer") == 1 and phaseVar3 >= 5 and phaseVar3 <= 7) {
# NEW EMER ELEC CONFIG
if (essBusOnBat.clearFlag == 0 and warningNodes.Timers.staticInverter.getValue() == 1 and phaseVar3 >= 5 and phaseVar3 <= 7) {
essBusOnBat.active = 1;
essBusOnBatLGUplock.active = 1;
essBusOnBatManOn.active = 1;
essBusOnBatRetract.active = 1;
if (essBusOnBatMinSpeed.clearFlag == 0 and systems.HYD.Rat.position.getValue() != 0) {
essBusOnBatMinSpeed.active = 1;
essBusOnBatLGCB.active = 1;
} else {
ECAM_controller.warningReset(essBusOnBatMinSpeed);
}
} else {
ECAM_controller.warningReset(essBusOnBat);
ECAM_controller.warningReset(essBusOnBatLGUplock);
ECAM_controller.warningReset(essBusOnBatManOn);
ECAM_controller.warningReset(essBusOnBatRetract);
ECAM_controller.warningReset(essBusOnBatMinSpeed);
ECAM_controller.warningReset(essBusOnBatLGCB);
}
# EMER CONFIG
if (systems.ELEC.EmerElec.getValue() and !dualFailNode.getBoolValue() and phaseVar3 != 4 and phaseVar3 != 8 and emerconfig.clearFlag == 0 and !getprop("/systems/acconfig/autoconfig-running")) {
if (systems.ELEC.EmerElec.getValue() and !dualFailNode.getBoolValue() and phaseVar3 != 4 and phaseVar3 != 8 and emerconfig.clearFlag == 0 and !pts.Acconfig.running.getBoolValue()) {
emerconfig.active = 1;
if (getprop("/systems/hydraulic/sources/rat/position") != 0 and emerconfigMinRat.clearFlag == 0) {
if (systems.HYD.Rat.position.getValue() != 0 and emerconfigMinRat.clearFlag == 0 and FWC.Timer.gnd.getValue() == 0) {
emerconfigMinRat.active = 1;
} else {
ECAM_controller.warningReset(emerconfigMinRat);
}
if (!(getprop("/systems/electrical/some-electric-thingie/generator-1-reset") and getprop("/systems/electrical/some-electric-thingie/generator-2-reset")) and emerconfigGen.clearFlag == 0) {
if ((!getprop("/systems/electrical/some-electric-thingie/generator-1-reset") or !getprop("/systems/electrical/some-electric-thingie/generator-2-reset")) and emerconfigGen.clearFlag == 0) {
emerconfigGen.active = 1; # EGEN12R TRUE
} else {
ECAM_controller.warningReset(emerconfigGen);
}
if (!(getprop("/systems/electrical/some-electric-thingie/generator-1-reset-bustie") and getprop("/systems/electrical/some-electric-thingie/generator-2-reset-bustie")) and emerconfigGen2.clearFlag == 0) {
if ((!getprop("/systems/electrical/some-electric-thingie/generator-1-reset-bustie") or !getprop("/systems/electrical/some-electric-thingie/generator-2-reset-bustie")) and emerconfigGen2.clearFlag == 0) {
emerconfigGen2.active = 1;
if (getprop("/controls/electrical/switches/bus-tie")) {
if (systems.ELEC.Switch.busTie.getBoolValue()) {
emerconfigBusTie.active = 1;
} else {
ECAM_controller.warningReset(emerconfigBusTie);
@ -880,7 +877,7 @@ var messages_priority_3 = func {
ECAM_controller.warningReset(emerconfigManOn);
}
if (getprop("/controls/engines/engine-start-switch") != 2 and emerconfigEngMode.clearFlag == 0) {
if (pts.Controls.Engines.startSw.getValue() != 2 and emerconfigEngMode.clearFlag == 0) {
emerconfigEngMode.active = 1;
} else {
ECAM_controller.warningReset(emerconfigEngMode);
@ -892,12 +889,7 @@ var messages_priority_3 = func {
ECAM_controller.warningReset(emerconfigRadio);
}
if (emerconfigIcing.clearFlag == 0) {
emerconfigIcing.active = 1;
} else {
ECAM_controller.warningReset(emerconfigIcing);
}
if (FWC.Timer.gnd.getValue() == 0) {
if (emerconfigFuelG.clearFlag == 0) {
emerconfigFuelG.active = 1;
} else {
@ -915,13 +907,19 @@ var messages_priority_3 = func {
} else {
ECAM_controller.warningReset(emerconfigFAC);
}
} else {
ECAM_controller.warningReset(emerconfigFuelG);
ECAM_controller.warningReset(emerconfigFuelG2);
ECAM_controller.warningReset(emerconfigFAC);
}
if (!getprop("/controls/electrical/switches/bus-tie") and emerconfigBusTie2.clearFlag == 0) {
if (!systems.ELEC.Switch.busTie.getBoolValue() and emerconfigBusTie2.clearFlag == 0) {
emerconfigBusTie2.active = 1;
} else {
ECAM_controller.warningReset(emerconfigBusTie2);
}
if (FWC.Timer.gnd.getValue() == 0) {
if (emerconfigAPU.clearFlag == 0) {
emerconfigAPU.active = 1;
} else {
@ -933,7 +931,22 @@ var messages_priority_3 = func {
} else {
ECAM_controller.warningReset(emerconfigVent);
}
} else {
ECAM_controller.warningReset(emerconfigAPU);
ECAM_controller.warningReset(emerconfigVent);
}
if (emerconfigFuelIN.clearFlag == 0 and warningNodes.Logic.dc2FuelConsumptionIncreased.getValue()) {
emerconfigFuelIN.active = 1;
} else {
ECAM_controller.warningReset(emerconfigFuelIN);
}
if (emerconfigFMSPRD.clearFlag == 0 and warningNodes.Logic.dc2FMSPredictions.getValue()) {
emerconfigFMSPRD.active = 1;
} else {
ECAM_controller.warningReset(emerconfigFMSPRD);
}
} else {
ECAM_controller.warningReset(emerconfig);
ECAM_controller.warningReset(emerconfigMinRat);
@ -944,13 +957,14 @@ var messages_priority_3 = func {
ECAM_controller.warningReset(emerconfigManOn);
ECAM_controller.warningReset(emerconfigEngMode);
ECAM_controller.warningReset(emerconfigRadio);
ECAM_controller.warningReset(emerconfigIcing);
ECAM_controller.warningReset(emerconfigFuelG);
ECAM_controller.warningReset(emerconfigFuelG2);
ECAM_controller.warningReset(emerconfigFAC);
ECAM_controller.warningReset(emerconfigBusTie2);
ECAM_controller.warningReset(emerconfigAPU);
ECAM_controller.warningReset(emerconfigVent);
ECAM_controller.warningReset(emerconfigFuelIN);
ECAM_controller.warningReset(emerconfigFMSPRD);
}
if (hydBYloPr.clearFlag == 0 and phaseVar3 != 4 and phaseVar3 != 5 and warningNodes.Logic.blueYellow.getValue()) {
@ -2661,7 +2675,7 @@ var messages_right_memo = func {
ptu.active = 0;
}
if (getprop("/systems/hydraulic/sources/rat/position") != 0) {
if (systems.HYD.Rat.position.getValue() != 0) {
rat.active = 1;
} else {
rat.active = 0;
@ -2673,7 +2687,7 @@ var messages_right_memo = func {
rat.colour = "g";
}
if (systems.ELEC.Source.EmerGen.relayPos.getValue() == 1 and getprop("/systems/hydraulic/sources/rat/position") != 0 and !pts.Gear.wow[1].getValue()) {
if (systems.ELEC.Source.EmerGen.relayPos.getValue() == 1 and systems.HYD.Rat.position.getValue() != 0 and !pts.Gear.wow[1].getValue()) {
emer_gen.active = 1;
} else {
emer_gen.active = 0;

View file

@ -188,14 +188,16 @@ var warnings = std.Vector.new([
var lavatorySmoke = warning.new(msg: "SMOKE LAVATORY SMOKE ", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var lavatorySmokeComm = warning.new(msg: "-CKPT/CAB COM.ESTABLISH ", colour: "c"),
# EXCES RESID PR
var excessResidPress = warning.new(msg: "CAB PR EXCES RESIDUAL PR ", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var excessResidPressPack1 = warning.new(msg: "-PACK 1.............OFF", colour: "c"),
var excessResidPressPack2 = warning.new(msg: "-PACK 2.............OFF", colour: "c"),
var excessResidPressCabCr = warning.new(msg: "-CABIN CREW.......ALERT", colour: "c"),
# ESS Bus on Bat
# NEW EMER CONFIG
var essBusOnBat = warning.new(msg: "ELEC ESS BUSES ON BAT", colour: "r", aural: 0, light: 0, isMainMsg: 1),
var essBusOnBatLGUplock = warning.new(msg: " •WHEN L/G UPLOCKED :", colour: "w", isMainMsg: 1),
var essBusOnBatManOn = warning.new(msg: " -EMER ELEC PWR...MAN ON", colour: "c"),
var essBusOnBatRetract = warning.new(msg: " •IF L/G RETRACT FAULT:", colour: "w", isMainMsg: 1),
var essBusOnBatMinSpeed = warning.new(msg: " MIN RAT SPD......180 KT", colour: "c"),
var essBusOnBatLGCB = warning.new(msg: " -LGCIU1 C/B (C09)..PULL", colour: "c"),
var essBusOnBatManOn2 = warning.new(msg: " -EMER ELEC PWR...MAN ON", colour: "c"),
var essBusOnBatMinSpeed = warning.new(msg: " MIN RAT SPD......140 KT", colour: "c"),
# Emer Config
var emerconfig = warning.new(msg: "ELEC EMER CONFIG", colour: "r", aural: 0, light: 0, isMainMsg: 1),
@ -207,13 +209,14 @@ var warnings = std.Vector.new([
var emerconfigManOn = warning.new(msg: " -EMER ELEC PWR...MAN ON", colour: "c"),
var emerconfigEngMode = warning.new(msg: " -ENG MODE SEL.......IGN", colour: "c"),
var emerconfigRadio = warning.new(msg: " -VHF1/ATC1..........USE", colour: "c"),
var emerconfigIcing = warning.new(msg: " AVOID ICING CONDITIONS", colour: "c"),
var emerconfigFuelG = warning.new(msg: " FUEL GRVTY FEED", colour: "c"),
var emerconfigFuelG2 = warning.new(msg: " PROC:GRVTY FUEL FEEDING", colour: "c"),
var emerconfigFAC = warning.new(msg: " -FAC 1......OFF THEN ON", colour: "c"),
var emerconfigBusTie2 = warning.new(msg: " -BUS TIE...........AUTO", colour: "c"),
var emerconfigAPU = warning.new(msg: " -APU (IF AVAIL)...START", colour: "c"),
var emerconfigVent = warning.new(msg: " -BLOWER + EXTRACT..OVRD", colour: "c"),
var emerconfigFuelIN = warning.new(msg: " FUEL CONSUMPT INCRSD", colour: "c"),
var emerconfigFMSPRD = warning.new(msg: " FMS PRED UNRELIABLE", colour: "c"),
# B + Y LO PR
var hydBYloPr = warning.new(msg: "HYD B+Y SYS LO PR", colour: "r", aural: 0, light: 0, isMainMsg: 1),

View file

@ -1848,6 +1848,7 @@
<test logic="AND" value="1">
/systems/electrical/some-electric-thingie/emer-elec-config eq 1
/systems/electrical/some-electric-thingie/generator-1-pb eq 1
/controls/electrical/switches/gen-1 eq 1
/controls/electrical/switches/bus-tie eq 0
</test>
</switch>
@ -1857,6 +1858,7 @@
<test logic="AND" value="1">
/systems/electrical/some-electric-thingie/emer-elec-config eq 1
/systems/electrical/some-electric-thingie/generator-2-pb eq 1
/controls/electrical/switches/gen-2 eq 1
/controls/electrical/switches/bus-tie eq 0
</test>
</switch>
@ -1866,6 +1868,7 @@
<test logic="AND" value="1">
/systems/electrical/some-electric-thingie/emer-elec-config eq 1
/systems/electrical/some-electric-thingie/generator-1-pb eq 1
/controls/electrical/switches/gen-1 eq 1
</test>
</switch>
@ -1874,6 +1877,7 @@
<test logic="AND" value="1">
/systems/electrical/some-electric-thingie/emer-elec-config eq 1
/systems/electrical/some-electric-thingie/generator-2-pb eq 1
/controls/electrical/switches/gen-2 eq 1
</test>
</switch>

View file

@ -1474,8 +1474,8 @@
<switch name="/ECAM/warnings/logic/green-yellow-press-on-monostable-input">
<default value="0"/>
<test logic="AND" value="1">
/systems/hydraulics/warnings/green-lo-pr eq 0
/systems/hydraulics/warnings/yellow-lo-pr eq 0
/systems/hydraulic/warnings/green-lo-pr eq 0
/systems/hydraulic/warnings/yellow-lo-pr eq 0
</test>
</switch>
@ -1684,6 +1684,86 @@
</test>
</switch>
<switch name="/ECAM/warnings/logic/BLUE-EMER-ELEC">
<default value="0"/>
<test logic="AND" value="1">
/ECAM/warnings/hyd/blue-abnorm-lo-pr eq 1
/systems/electrical/some-electric-thingie/emer-elec-config eq 1
/systems/electrical/some-electric-thingie/emer-elec-config-20-sec eq 1
</test>
</switch>
<switch name="/ECAM/warnings/logic/SSLATEXT">
<default value="0"/>
<test logic="AND" value="1">
/ECAM/warnings/logic/BLUE-EMER-ELEC NE 1
fcs/slat-pos-rate eq 0
fcs/slat-pos-deg ge 2
</test>
</switch>
<switch name="/ECAM/warnings/logic/SFLAPEXT">
<default value="0"/>
<test logic="AND" value="1">
fcs/flap-pos-rate eq 0
fcs/flap-pos-deg ge 2
</test>
</switch>
<switch name="/ECAM/warnings/logic/dc-2-fuel-consumption-increased">
<default value="0"/>
<test logic="AND" value="1">
/ECAM/timer/ground-calc eq 0
/ECAM/dual-failure-enabled eq 0
<test logic="OR">
<test logic="AND">
<test logic="OR">
/ECAM/warnings/hyd/green-abnorm-lo-pr eq 1
/systems/electrical/bus/dc-ess lt 25
</test>
/ECAM/warnings/logic/SFLAPEXT eq 1
</test>
<test logic="AND">
<test logic="OR">
/ECAM/warnings/hyd/blue-abnorm-lo-pr eq 1
/systems/electrical/bus/dc-ess lt 25
</test>
/ECAM/warnings/logic/SSLATEXT eq 1
</test>
<test logic="AND">
<test logic="OR">
<test logic="AND">
hydraulics/aileron-l/pressure-switch-or eq 1
<test logic="OR">
/systems/fctl/elac1 eq 0
/systems/hydraulic/blue-psi lt 1500
</test>
/ECAM/warnings/logic/BLUE-EMER-ELEC ne 1
</test>
<test logic="AND">
hydraulics/aileron-r/pressure-switch-or eq 1
<test logic="OR">
/systems/fctl/elac1 eq 0
/systems/hydraulic/green-psi lt 1500
</test>
</test>
</test>
<test logic="OR">
/gear/gear[0]/position-norm eq 0
/ECAM/warnings/hyd/blue-abnorm-lo-pr eq 0
</test>
</test>
</test>
</test>
</switch>
<switch name="/ECAM/warnings/logic/dc-2-fms-predictions-unreliable">
<default value="0"/>
<test logic="AND" value="1">
/ECAM/warnings/logic/dc-2-fuel-consumption-increased eq 1
/systems/electrical/relay/dc-ess-shed-switch/contact-pos eq 0
</test>
</switch>
</channel>
<channel name="STALL" execrate="16">
@ -2610,7 +2690,7 @@
<switch name="/ECAM/warnings/hyd/blue-abnorm-lo-pr">
<default value="0"/>
<test logic="AND" value="1">
/systems/hydraulics/warnings/blue-lo-pr eq 1
/systems/hydraulic/warnings/blue-lo-pr eq 1
<test logic="OR">
/ECAM/warnings/hyd/engines-2-online eq 1
/ECAM/warnings/hyd/engines-2-off-in-air-output eq 1
@ -2621,7 +2701,7 @@
<switch name="/ECAM/warnings/hyd/green-abnorm-lo-pr">
<default value="0"/>
<test logic="AND" value="1">
/systems/hydraulics/warnings/green-lo-pr eq 1
/systems/hydraulic/warnings/green-lo-pr eq 1
/ECAM/warnings/hyd/engine-1-start-output eq 1
</test>
</switch>
@ -2629,7 +2709,7 @@
<switch name="/ECAM/warnings/hyd/yellow-abnorm-lo-pr">
<default value="0"/>
<test logic="AND" value="1">
/systems/hydraulics/warnings/yellow-lo-pr eq 1
/systems/hydraulic/warnings/yellow-lo-pr eq 1
/ECAM/warnings/hyd/engine-2-start-output eq 1
</test>
</switch>

View file

@ -610,34 +610,34 @@
</test>
</switch>
<switch name="/systems/hydraulics/warnings/blue-lo-pr">
<switch name="/systems/hydraulic/warnings/blue-lo-pr">
<default value="0"/>
<test logic="OR" value="1">
<test logic="AND">
/systems/hydraulic/blue-psi lt 1750
/systems/hydraulics/warnings/blue-lo-pr eq 1
/systems/hydraulic/warnings/blue-lo-pr eq 1
</test>
/systems/hydraulic/blue-psi lt 1450
</test>
</switch>
<switch name="/systems/hydraulics/warnings/green-lo-pr">
<switch name="/systems/hydraulic/warnings/green-lo-pr">
<default value="0"/>
<test logic="OR" value="1">
<test logic="AND">
/systems/hydraulic/green-psi lt 1750
/systems/hydraulics/warnings/green-lo-pr eq 1
/systems/hydraulic/warnings/green-lo-pr eq 1
</test>
/systems/hydraulic/green-psi lt 1450
</test>
</switch>
<switch name="/systems/hydraulics/warnings/yellow-lo-pr">
<switch name="/systems/hydraulic/warnings/yellow-lo-pr">
<default value="0"/>
<test logic="OR" value="1">
<test logic="AND">
/systems/hydraulic/yellow-psi lt 1750
/systems/hydraulics/warnings/yellow-lo-pr eq 1
/systems/hydraulic/warnings/yellow-lo-pr eq 1
</test>
/systems/hydraulic/yellow-psi lt 1450
</test>

View file

@ -6,24 +6,22 @@
<flipflop>
<type>monostable</type>
<inverted type="bool">true</inverted>
<time>
<value>0.1</value>
<value>1.0</value>
</time>
<S>
<property>/controls/electrical/switches/gen-1</property>
<not><property>/controls/electrical/switches/gen-1</property></not>
</S>
<output>/systems/electrical/some-electric-thingie/generator-1-pb</output>
</flipflop>
<flipflop>
<type>monostable</type>
<inverted type="bool">true</inverted>
<time>
<value>0.1</value>
<value>1.0</value>
</time>
<S>
<property>/controls/electrical/switches/gen-2</property>
<not><property>/controls/electrical/switches/gen-2</property></not>
</S>
<output>/systems/electrical/some-electric-thingie/generator-2-pb</output>
</flipflop>
@ -80,6 +78,18 @@
<output>/systems/electrical/some-electric-thingie/generator-2-reset</output>
</flipflop>
<flipflop>
<type>monostable</type>
<time>
<value>20.0</value>
</time>
<S>
<not><property>/systems/electrical/some-electric-thingie/emer-elec-config</property></not>
</S>
<output>/systems/electrical/some-electric-thingie/emer-elec-config-20-sec</output>
</flipflop>
<flipflop>
<type>RS</type>
<S>