Ignition And Engine Start

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