Partager l'article ! Ignition And Engine Start: Attention, ce code (en NOIR) ne peut pas être utilisé en copier-collé à cause des explications (en JAUNE). ...
Attention, ce code (en NOIR)
ne peut pas être utilisé en copier-collé à cause des explications (en JAUNE).
Pour que cela ne vous pose pas de souci rendez vous ICI pour retrouver le programme complet sans
explication.
// *****************************************************************************
// * Config_SIOC ver 3.7B1 - By Manolo Vélez - www.opencockpits.com
// *****************************************************************************
// * FileName : sioc.txt
// * Date : 19/07/2010
Var 0000, name iNITIALISATION
{
CALL &Init_voyants // Sub 0399
}
Var 0001, name BATTERY, Link FSUIPC_INOUT, Offset $3102, Length 1 // Commande de courant
{
&BATTERY = &BATTERY_SW
IF &BATTERY = 1 // Si il y a du courant
{
IF &L_ENG_START = 0 // Et moteur gauche n'est pas démarré
{
IF &R_ENG_START = 0 // Et moteur droit n'est pas démarré
{
&INVERTER_LED = 1 // Les Leds suivantes s'allument
&L_FUEL_PRE_LED = 1
&R_FUEL_PRE_LED = 1
&L_B_AI_FAI_LED = 1
&R_B_AI_FA_LED = 1
&L_DC_GEN_LED = 1
&R_DC_GEN_LED = 1
&RVS_NO_REA_LED = 1
&L_AIR_OFF_LED = 1
&R_AIR_OFF_LED = 1
}
}
}
CALL &Init_voyants // Sub 0399
}
Var 0019, name L_ENG_START, Link FSUIPC_INOUT, Offset $0892, Length 2 // Allumage moteur gauche
{
CALL &L_DC_GEN // Call 0312 Voyant L DC GEN
}
Var 0020, name R_ENG_START, Link FSUIPC_INOUT, Offset $092A, Length 2 // Allumage moteur droit
{
CALL &R_DC_GEN // Sub 0315 Voyant R DC GEN
CALL &PNEUMATIC_GYRO // Sub 1025
}
Var 0033, name L_FUEL_FLOW, Link FSUIPC_IN, Offset $0918, Length 8, Numbers 2 // Débit de carburant gauche PPH x 100
{
IF &L_FUEL_FLOW > 60 // Si pression fuel > 6 PPH
{
&L_FUEL_PRE_LED = 0 // Alarme s'éteint
}
ELSE // Si la pression retombe
{
IF &BATTERY_SW = 1 // On rallume l'alarme...
{
IF &L_ENGINCOMBUST = 0 // ..si le moteur est éteint pour éviter...
{
&L_FUEL_PRE_LED = 1 // ...le clignotement de l'alarme.
}
}
}
}
Var 0034, name R_FUEL_FLOW, Link FSUIPC_IN, Offset $09B0, Length 8, Numbers 2 // Débit de carburant droit PPH x 100
{
IF &R_FUEL_FLOW > 60 // Si pression fuel > 6 PPH
{
&R_FUEL_PRE_LED = 0 // Alarme s'éteint
}
ELSE // Si la pression retombe
{
IF &BATTERY_SW = 1 // On rallume l'alarme...
{
IF &R_ENGINCOMBUST = 0 // ..si le moteur est éteint pour éviter...
{
&R_FUEL_PRE_LED = 1 // ...le clignotement de l'alarme.
}
}
}
}
Var 0037, name L_ENGINCOMBUST, Link FSUIPC_IN, Offset $0894, Length 2 // "1" si moteur gauche démarré
{
IF &L_ENGINCOMBUST = 1 // Si le moteur Gauche démarre
{
&BATT_CHARGE = &BATT_CHARGE + 1 // Ajoute 1 au compteur BATT CHARGE - 0318
&MOTEUR_EN_ROUT = &MOTEUR_EN_ROUT + 1
}
ELSE // Si le moteur Gauche s'arrête
{
IF &R_ENGINCOMBUST = 0 // Et que le moteur Droit est déjà arrêté
{
&BATT_CHARGE = 0 // Remet compteur BATT CHARGE à zéro - 0318
}
&MOTEUR_EN_ROUT = &MOTEUR_EN_ROUT - 1
}
CALL &AVIONIQUE // Sub 0351 Ecrans instrum. allumé/étient
CALL &L_ICE_VANE_EXT // Sub 0325
CALL &L_BL_AIR_FAIL // Sub 0309
}
Var 0038, name R_ENGINCOMBUST, Link FSUIPC_IN, Offset $092C, Length 2 // "1" si moteur droit démarré
{
IF &R_ENGINCOMBUST = 1 // Si le moteur Droit démarre
{
&BATT_CHARGE = &BATT_CHARGE + 1 // Ajoute 1 au compteur BATT CHARGE - 0318
&MOTEUR_EN_ROUT = &MOTEUR_EN_ROUT + 1
}
ELSE // Si le moteur droit s'arrête
{
IF &L_ENGINCOMBUST = 0 // Et que le Gauche est déjà arrêté
{
&BATT_CHARGE = 0 // Remet compteur BATT CHARGE à zéro - 0318
}
&MOTEUR_EN_ROUT = &MOTEUR_EN_ROUT - 1
}
CALL &AVIONIQUE // Sub 0351 Ecrans instrum. allumé/étient
CALL &R_ICE_VANE_EXT // Sub 0329
CALL &R_BL_AIR_FAIL // Sub 0311
}
Var 0039, name MOTEUR_EN_ROUT, Value 0 // Un des 2 moteur en route
{
&MOTEUR_EN_ROUT = &L_ENGINCOMBUST + &R_ENGINCOMBUST
CALL &PITOT_OFF
CALL &PROP_AMPS
}
Var 0306, name L_FUEL_PRESS, Link SUBRUTINE // Alarme R FUEL PRESS
{
IF &BATTERY = 0
{
&L_FUEL_PRE_LED = 0
}
ELSE
{
IF &L_FUEL_FLOW < 57 // Si débit de carburant insuffisant
{
IF &L_AUTO_IGN_SW = 0 // Evite allumage lors d'une auto-ingnition
{
&L_FUEL_PRE_LED = 1 // Alarme allumée
}
}
ELSE
{
&L_FUEL_PRE_LED = 0
}
}
}
Var 0307, name R_FUEL_PRESS, Link SUBRUTINE // Alarme R FUEL PRESS
{
IF &BATTERY = 0
{
&R_FUEL_PRE_LED = 0
}
ELSE
{
IF &R_FUEL_FLOW < 60 // Si débit de carburant insuffisant
{
IF &R_AUTO_IGN_SW = 0 // Evite allumage lors d'une auto-ingnition
{
&R_FUEL_PRE_LED = 1 // Alarme allumée
}
}
ELSE
{
&R_FUEL_PRE_LED = 0
}
}
}
Var 0309, name L_BL_AIR_FAIL, Link SUBRUTINE // Alarme BL AIR FAIL gauche
{
IF &BATTERY = 1
{
IF &L_ENGINCOMBUST = 1 // Si Moteur gauche démarré
{
&L_B_AI_FAI_LED = &BLEED_L_OFF_SW // Led allumée si inter en position Off
}
ELSE // Si Moteur gauche éteint
{
&L_B_AI_FAI_LED = 1 // Led Allumée
}
}
ELSE
{
&L_B_AI_FAI_LED = 0
}
}
Var 0311, name R_BL_AIR_FAIL, Link SUBRUTINE // Alarme BL AIR FAIL droite
{
IF &BATTERY = 1
{
IF &R_ENGINCOMBUST = 1 // Si Moteur droit démarré
{
&R_B_AI_FA_LED = &BLEED_R_OFF_SW // Led allumée si inter en position Off
}
ELSE // Si Moteur droit éteint
{
&R_B_AI_FA_LED = 1 // Led Allumée
}
}
ELSE
{
&R_B_AI_FA_LED = 0
}
}
Var 0318, name BATT_CHARGE, Link SUBRUTINE // Alarme BATT CHARGE
{
IF &BATTERY = 1
{
IF &BATT_CHARGE = 1 // Si Batt Charge n'a pas encore été allumé
{
&BATT_CHARG_LED = DELAY 1 ,300 // Alarme Batt Charge s'allume après 3"
&BATT_CHARG_LED = DELAY 0 ,2500 // Et s'éteint après 25"
}
}
}
Var 0319, name EXT_POWER, Link SUBRUTINE // Alarme EXT POWER
{
L0 = &AVIONIC_SW + &INVERTER_SW
L1 = &R_ENG_TORQUE + &R_GEN_SW
L2 = L0 + L1
L1 = &N_PKG_BRAKE - &N_ACFT_ON_GND // Avion au sol et frein serré
L0 = L1 + L2
L1 = &L_ENG_TORQUE + &L_GEN_SW
L2 = L0 + L1
IF L2 = 0 // Si les 6 inters Off et moteurs arrêtés
{
&EXT_PWR_LED = &BATTERY_SW // Led allumée si inter Batt ON
}
ELSE
{
&EXT_PWR_LED = 0
}
}
Var 0335, name L_INGNITION, Link SUBRUTINE // Alarme verte démarrage moteur gauche
{
IF &L_ENG_START_SW = 1 // Si l'inter en position ON
{
&L_ENG_START = 1 // Démarrage Moteur et GEN 2 Off
&L_IGNITION_LED = 1 // Led s'allume
&L_FUEL_PRE_LED = DELAY 0 ,500 // Led s'éteint après 5"
}
ELSE
{
IF &L_ENGINCOMBUST = 1 // Si Moteur en route
{
&L_ENG_START = &L_GEN_SW * 2
}
ELSE
{
&L_ENG_START = 0
}
IF &L_AUTO_IGN_SW = 0 // Si Auto Ingnition non Armé
{
&L_IGNITION_LED = DELAY 0 ,400 // Led s'éteint après 4"
}
CALL &L_FUEL_PRESS // Sub 0306
}
&EXT_PWR_LED = 0 // Eteindre EXT PWR
}
Var 0336, name R_INGNITION, Link SUBRUTINE // Alarme verte démarrage moteur droit
{
IF &R_ENG_START_SW = 1 // Si l'inter en position ON
{
&R_ENG_START = 1 // Démarrage Moteur et GEN 1 Off
&R_IGNITION_LED = 1 // Led s'allume
&R_FUEL_PRE_LED = DELAY 0 ,400 // Led s'éteint après 4"
}
ELSE
{
IF &R_ENGINCOMBUST = 1 // Si Moteur en route
{
&R_ENG_START = &R_GEN_SW * 2
}
ELSE
{
&R_ENG_START = 0
}
IF &R_AUTO_IGN_SW = 0 // Si Auto Ingnition non Armé
{
&R_IGNITION_LED = DELAY 0 ,300 // Led s'éteint après 3"
}
CALL &R_FUEL_PRESS // Sub 0307
}
&EXT_PWR_LED = 0 // Eteindre EXT PWR
}
Var 0399, name Init_voyants, Link SUBRUTINE // Initialisation des sorties
{
IF &BATTERY = 0
{
&L_FUEL_PRE_LED = 0
&R_FUEL_PRE_LED = 0
&BATT_CHARG_LED = 0
&EXT_PWR_LED = 0
&L_IGNITION_LED = 0
&R_IGNITION_LED = 0
}
ELSE
{
CALL &L_INGNITION // Sub 0335 réallume L INGNITION LED
CALL &R_INGNITION // Sub 0336 réallume R INGNITION LED
CALL &EXT_POWER // Sub 0319 réallume EXT PWR LED
}
}
Var 0413, name L_ENG_START_SW, Link IOCARD_SW, Input 6 // Inter démarrage moteur gauche
{
IF &BATTERY = 1
{
CALL &L_INGNITION // Sub 0335
}
}
Var 0414, name R_ENG_START_SW, Link IOCARD_SW, Input 0 // Inter démarrage moteur droit
{
IF &BATTERY = 1
{
CALL &R_INGNITION // Sub 0336
}
}
Var 0713, name L_FUEL_PRE_LED, Link IOCARD_OUT, Output 28 // Alarme rouge L FUEL PRESS
Var 0714, name R_FUEL_PRE_LED, Link IOCARD_OUT, Output 22 // Alarme rouge R FUEL PRESS
Var 0724, name BATT_CHARG_LED, Link IOCARD_OUT, Output 34 // Alarme Jaune BATT CHARGE LED
Var 0725, name EXT_PWR_LED, Link IOCARD_OUT, Output 44 // Alarme Jaune EXTERNE Power LED
Var 0736, name L_IGNITION_LED, Link IOCARD_OUT, Output 43 // Alarme verte IGNITION Gauche
Var 0740, name R_IGNITION_LED, Link IOCARD_OUT, Output 50 // Alarme verte IGNITION Droit