// MIP SCRIPT FOR PROSIM: SINGLE AND DUAL SEAT.
// IDX DEVICES SHOULD BE:
// MCP = 0
// EFIS CAPT = 1
// EFIS F/O = 2
// CDU CAPT = 13
// CDU F/O = 14
// CHRONO CAPT = 15
// CHRONO F/O = 16
// USB EXPANSION INPUTS AND OUTPUTS (WARNINGS, DUs, AFDSs, FLAPS, SWITCHES AND INDICATORS) = 17
// USB SERVOS = 18
// ////////////////////////////////////////////////
// EFIS Capt
// Prosim reads from 500 - 522
// ////////////////////////////////////////////////
Var 500, name I_E1_DISPMODE
Var 501, name I_E1_ZOOM
Var 502, name I_E1_NAV1
Var 503, name I_E1_NAV2
Var 504, name I_E1_STA, Link IOCARD_SW, Device 1, Input 27
Var 505, name I_E1_WPT, Link IOCARD_SW, Device 1, Input 28
Var 506, name I_E1_CTR, Link IOCARD_SW, Device 1, Input 29
Var 507, name I_E1_ARPT, Link IOCARD_SW, Device 1, Input 30
Var 508, name I_E1_TFC, Link IOCARD_SW, Device 1, Input 31
Var 509, name I_E1_DATA, Link IOCARD_SW, Device 1, Input 32
Var 510, name I_E1_POS, Link IOCARD_SW, Device 1, Input 33
Var 511, name I_E1_FPV, Link IOCARD_SW, Device 1, Input 34
Var 512, name I_E1_MTR, Link IOCARD_SW, Device 1, Input 38
Var 513, name I_E1_MINRST
Var 514, name I_E1_QNHSTD
Var 515, name I_E1_MINRADIO
Var 516, name I_E1_MINBARO
Var 517, name I_E1_CHANGEMIN
Var 518, name I_E1_BAROHPA
Var 519, name I_E1_BAROINCH
Var 520, name I_E1_CHGBARO
Var 521, name I_E1_TERR
Var 522, name I_E1_WXR
Var 523, Link IOCARD_SW, Device 1, Input 10 // VOR mode
{
If V523 = 1
{
&I_E1_DISPMODE = 2
}
}
Var 524, Link IOCARD_SW, Device 1, Input 11 // MAP mode
{
If V524 = 1
{
&I_E1_DISPMODE = 3
}
}
Var 525, Link IOCARD_SW, Device 1, Input 12 // PLAN mode
{
If V525 = 1
{
&I_E1_DISPMODE = 4
}
}
Var 526, Link IOCARD_SW, Device 1, Input 0 // Range 5
{
If V526 = 1
{
&I_E1_ZOOM = 1
}
}
Var 527, Link IOCARD_SW, Device 1, Input 1 // Range 10
{
If V527 = 1
{
&I_E1_ZOOM = 2
}
}
Var 528, Link IOCARD_SW, Device 1, Input 2 // Range 20
{
If V528 = 1
{
&I_E1_ZOOM = 3
}
}
Var 529, Link IOCARD_SW, Device 1, Input 3 // Range 40
{
If V529 = 1
{
&I_E1_ZOOM = 4
}
}
Var 530, Link IOCARD_SW, Device 1, Input 4 // Range 80
{
If V530 = 1
{
&I_E1_ZOOM = 5
}
}
Var 531, Link IOCARD_SW, Device 1, Input 5 // Range 160
{
If V531 = 1
{
&I_E1_ZOOM = 6
}
}
Var 532, Link IOCARD_SW, Device 1, Input 6 // Range 320
{
If V532 = 1
{
&I_E1_ZOOM = 7
}
}
Var 533, Link IOCARD_SW, Device 1, Input 7 // Range 640
{
If V533 = 1
{
&I_E1_ZOOM = 8
}
}
Var 535, Link IOCARD_SW, Device 1, Input 36 // NAV 1 VOR
{
CALL &E1NAV1
}
Var 536, Link IOCARD_SW, Device 1, Input 37 // NAV 1 ADF
{
CALL &E1NAV1
}
var 537, name E1NAV1, Link SUBRUTINE
{
If V535 = 1
{
&I_E1_NAV1 = 1
}
Else
{
If V536 = 1
{
&I_E1_NAV1 = 2
}
Else
{
&I_E1_NAV1 = 0
}
}
}
Var 538, Link IOCARD_SW, Device 1, Input 18 // NAV 2 VOR
{
CALL &E1NAV2
}
Var 539, Link IOCARD_SW, Device 1, Input 19 // NAV 2 ADF
{
CALL &E1NAV2
}
var 540, name E1NAV2, Link SUBRUTINE
{
If V538 = 1
{
&I_E1_NAV2 = 1
}
Else
{
If V539 = 1
{
&I_E1_NAV2 = 2
}
Else
{
&I_E1_NAV2 = 0
}
}
}
Var 541, Link IOCARD_SW, Device 1, Input 9 // APP mode
{
If V541 = 1
{
&I_E1_DISPMODE = 1
}
}
var 550, name Min1Moved
Var 551, name Bar1Moved
// Minimums knob push button
Var 552, Link IOCARD_SW, Device 1, Input 25
{
If V552 = 1
{
&Min1Moved = 0
}
Else
{
If &Min1Moved = 0
{
&I_E1_MINRST = Toggle 0
}
}
}
// QNH knob push button
Var 553, Link IOCARD_SW, Device 1, Input 22
{
If V553 = 1
{
&Bar1Moved = 0
}
Else
{
If &Bar1Moved = 0
{
&I_E1_QNHSTD = Toggle 0
}
}
}
// Minimums rotary encoder
Var 554, Link IOCARD_ENCODER, Device 1, Input 23, Aceleration 4, Type 2
{
&Min1Moved = 1
If V552 = 1
{
If V554 > 0
{
&I_E1_MINRADIO = Toggle 0
}
Else
{
&I_E1_MINBARO = Toggle 0
}
}
Else
{
&I_E1_CHANGEMIN = V554 * -1
&I_E1_CHANGEMIN = 0
}
}
// QNH rotary encoder
Var 555, Link IOCARD_ENCODER, Device 1, Input 20, Aceleration 4, Type 2
{
&Bar1Moved = 1
If V553 = 1
{
If V555 > 0
{
&I_E1_BAROINCH = Toggle 0
}
Else
{
&I_E1_BAROHPA = Toggle 0
}
}
Else
{
&I_E1_CHGBARO = V555 * -1
&I_E1_CHGBARO = 0
}
}
// ///////////////////////////////////
// End EFIS Captain
// ///////////////////////////////////
// ////////////////////////////////////////////////
// EFIS F/O
// ////////////////////////////////////////////////
Var 600, name I_E2_DISPMODE
Var 601, name I_E2_ZOOM
Var 602, name I_E2_NAV1
Var 603, name I_E2_NAV2
Var 604, name I_E2_STA, Link IOCARD_SW, Device 2, Input 27
Var 605, name I_E2_WPT, Link IOCARD_SW, Device 2, Input 28
Var 606, name I_E2_CTR, Link IOCARD_SW, Device 2, Input 29
Var 607, name I_E2_ARPT, Link IOCARD_SW, Device 2, Input 30
Var 608, name I_E2_TFC, Link IOCARD_SW, Device 2, Input 31
Var 609, name I_E2_DATA, Link IOCARD_SW, Device 2, Input 32
Var 610, name I_E2_POS, Link IOCARD_SW, Device 2, Input 33
Var 611, name I_E2_FPV, Link IOCARD_SW, Device 2, Input 34
Var 612, name I_E2_MTR, Link IOCARD_SW, Device 2, Input 38
Var 613, name I_E2_MINRST
Var 614, name I_E2_QNHSTD
Var 615, name I_E2_MINRADIO
Var 616, name I_E2_MINBARO
Var 617, name I_E2_CHANGEMIN
Var 618, name I_E2_BAROHPA
Var 619, name I_E2_BAROINCH
Var 620, name I_E2_CHGBARO
Var 621, name I_E2_TERR
Var 622, name I_E2_WXR
Var 623, Link IOCARD_SW, Device 2, Input 10 // VOR mode
{
If V623 = 1
{
&I_E2_DISPMODE = 2
}
}
Var 624, Link IOCARD_SW, Device 2, Input 11 // MAP mode
{
If V624 = 1
{
&I_E2_DISPMODE = 3
}
}
Var 625, Link IOCARD_SW, Device 2, Input 12 // PLAN mode
{
If V625 = 1
{
&I_E2_DISPMODE = 4
}
}
Var 626, Link IOCARD_SW, Device 2, Input 0 // Range 5
{
If V626 = 1
{
&I_E2_ZOOM = 1
}
}
Var 627, Link IOCARD_SW, Device 2, Input 1 // Range 10
{
If V627 = 1
{
&I_E2_ZOOM = 2
}
}
Var 628, Link IOCARD_SW, Device 2, Input 2 // Range 20
{
If V628 = 1
{
&I_E2_ZOOM = 3
}
}
Var 629, Link IOCARD_SW, Device 2, Input 3 // Range 40
{
If V629 = 1
{
&I_E2_ZOOM = 4
}
}
Var 630, Link IOCARD_SW, Device 2, Input 4 // Range 80
{
If V630 = 1
{
&I_E2_ZOOM = 5
}
}
Var 631, Link IOCARD_SW, Device 2, Input 5 // Range 160
{
If V631 = 1
{
&I_E2_ZOOM = 6
}
}
Var 632, Link IOCARD_SW, Device 2, Input 6 // Range 320
{
If V632 = 1
{
&I_E2_ZOOM = 7
}
}
Var 633, Link IOCARD_SW, Device 2, Input 7 // Range 640
{
If V633 = 1
{
&I_E2_ZOOM = 8
}
}
Var 635, Link IOCARD_SW, Device 2, Input 36 // NAV 1 VOR
{
CALL &E2NAV1
}
Var 636, Link IOCARD_SW, Device 2, Input 37 // NAV 1 ADF
{
CALL &E2NAV1
}
var 637, name E2NAV1, Link SUBRUTINE
{
If V635 = 1
{
&I_E2_NAV1 = 1
}
Else
{
If V636 = 1
{
&I_E2_NAV1 = 2
}
Else
{
&I_E2_NAV1 = 0
}
}
}
Var 638, Link IOCARD_SW, Device 2, Input 18 // NAV 2 VOR
{
CALL &E2NAV2
}
Var 639, Link IOCARD_SW, Device 2, Input 19 // NAV 2 ADF
{
CALL &E2NAV2
}
var 640, name E2NAV2, Link SUBRUTINE
{
If V638 = 1
{
&I_E2_NAV2 = 1
}
Else
{
If V639 = 1
{
&I_E2_NAV2 = 2
}
Else
{
&I_E2_NAV2 = 0
}
}
}
Var 641, Link IOCARD_SW, Device 2, Input 9 // APP mode
{
If V641 = 1
{
&I_E2_DISPMODE = 1
}
}
var 650, name Min2Moved
Var 651, name Bar2Moved
Var 652, Link IOCARD_SW, Device 2, Input 25
{
If V652 = 1
{
&Min2Moved = 0
}
Else
{
If &Min2Moved = 0
{
&I_E2_MINRST = Toggle 0
}
}
}
Var 653, Link IOCARD_SW, Device 2, Input 22
{
If V653 = 1
{
&Bar2Moved = 0
}
Else
{
If &Bar2Moved = 0
{
&I_E2_QNHSTD = Toggle 0
}
}
}
Var 654, Link IOCARD_ENCODER, Device 2, Input 23, Aceleration 4, Type 2
{
&Min2Moved = 1
If V652 = 1
{
If V654 > 0
{
&I_E2_MINRADIO = Toggle 0
}
Else
{
&I_E2_MINBARO = Toggle 0
}
}
Else
{
&I_E2_CHANGEMIN = V654 * -1
&I_E2_CHANGEMIN = 0
}
}
Var 655, Link IOCARD_ENCODER, Device 2, Input 20, Aceleration 4, Type 2
{
&Bar2Moved = 1
If V653 = 1
{
If V655 > 0
{
&I_E2_BAROINCH = Toggle 0
}
Else
{
&I_E2_BAROHPA = Toggle 0
}
}
Else
{
&I_E2_CHGBARO = V655 * -1
&I_E2_CHGBARO = 0
}
}
// ///////////////////////////
// End EFIS F/O
// ///////////////////////////
// ///////////////////////////
// MCP
// ///////////////////////////
// INITIALIZATION
Var 0000, Value 0
{
&SUB_BLINK = 0
&SUB_BLINK = TIMER 1, 0, 100
}
// DIGITS
// These are the actual MCP values that are read and written by Prosim. They need to be whole values.
Var 100, name D_COURSE1, Link IOCARD_DISPLAY, Device 0, Digit 0, Numbers 3
Var 102, name D_IAS, Link IOCARD_DISPLAY, Device 0, Digit 3, Numbers 3
Var 104, name D_HDG, Link IOCARD_DISPLAY, Device 0, Digit 6, Numbers 3
Var 106, name D_ALT, Link IOCARD_DISPLAY, Device 0, Digit 9, Numbers 5
Var 108, name D_VS, Link IOCARD_DISPLAY, Device 0, Digit 14, Numbers 5
Var 110, name D_COURSE2, Link IOCARD_DISPLAY, Device 0, Digit 19, Numbers 3
Var 112, Name VS_Trigger // Vertical Speed Trigger
// This variable is set to 1 when the VS wheel is rotated while the VS display is blanked.
// This can trigger a V/S mode if MCP altitude is different than current altitude.
Var 114, name BRIGHT, Link IOCARD_DISPLAY, Device 0, Digit 32, Numbers 3 // Bright control for digits
Var 116, name D_IAS_IND, Link IOCARD_DISPLAY, Device 0, Digit 22, Numbers 1
Var 118, name SUB_BLINK, Link SUBRUTINE
{
If &Inhibit_IAS = 0
{
IF &O_IASSYMB = 0
{
&D_IAS_IND = -999999
}
ELSE
{
IF &O_IASSYMB = 1
{
&D_IAS_IND = -999996
&D_IAS_IND = DELAY -999999 80
}
IF &O_IASSYMB = 2
{
&D_IAS_IND = 8
&D_IAS_IND = DELAY -999999 80
}
}
}
}
Var 120, name HDG_temp
Var 122, name BANK_act
// OUTPUTS
// These are the lights on the MCP, written by Prosim
Var 200, name DECIMAL
{
If &Inhibit_IAS = 0 // Do not place the decimal if the display is blanked
{
&IAS_DOT = &DECIMAL
}
}
Var 201, name IAS_DOT, Link IOCARD_OUT, Device 0, Output 20
Var 202, name O_N1, Link IOCARD_OUT, Device 0, Output 21
Var 204, name O_AT, Link IOCARD_OUT, Device 0, Output 22
Var 206, name O_SPEED, Link IOCARD_OUT, Device 0, Output 23
Var 208, name O_LVLCHG, Link IOCARD_OUT, Device 0, Output 24
Var 210, name O_VNAV, Link IOCARD_OUT, Device 0, Output 25
Var 212, name O_HDGSEL, Link IOCARD_OUT, Device 0, Output 26
Var 214, name O_APP, Link IOCARD_OUT, Device 0, Output 27
Var 216, name O_VORLOC, Link IOCARD_OUT, Device 0, Output 28
Var 218, name O_LNAV, Link IOCARD_OUT, Device 0, Output 29
Var 220, name O_ALTHLD, Link IOCARD_OUT, Device 0, Output 30
Var 222, name O_VS, Link IOCARD_OUT, Device 0, Output 31
Var 224, name O_CWSA, Link IOCARD_OUT, Device 0, Output 32
Var 226, name O_CMDA, Link IOCARD_OUT, Device 0, Output 33
Var 228, name O_CWSB, Link IOCARD_OUT, Device 0, Output 34
Var 230, name O_CMDB, Link IOCARD_OUT, Device 0, Output 35
Var 232, name O_FD1, Link IOCARD_OUT, Device 0, Output 37
Var 234, name O_FD2, Link IOCARD_OUT, Device 0, Output 36
Var 236, name O_IASSYMB // Flashing A/B in IAS window, 0=No warning, 1=Flashing A, 2=Flashing B
Var 238, name O_BACKLIGHT // Backlight: 1 = on, 0 = off
// ROTARY ENCODERS
// The rotary encoders control the MCP values. The actual rotary encoder variables are not read or written by Prosim.
// The rotary encoders change the MCP values. Before doing this, they will check the associated inhibit variable, to
// see if the display is not blanked. If the display is blanked, the rotary encoder ds nothing.
Var 300, name E_IAS, Link IOCARD_ENCODER, Device 0, Input 0, Aceleration 4, Type 2
{
If &Inhibit_IAS = 0
{
L0 = -1 * V300
If &DECIMAL = 1
{
V102 = LIMIT 50, 90, L0
}
Else
{
V102 = LIMIT 110, 400, L0
}
}
}
Var 302, name E_ALT, Link IOCARD_ENCODER, Device 0, Input 2, Aceleration 4, Type 2
{
If &Inhibit_Alt = 0
{
L0 = -100 * V302
V106 = LIMIT 0 ,50000, L0
}
}
Var 304, name E_COURSE1, Link IOCARD_ENCODER, Device 0, Input 4, Aceleration 4, Type 2
{
If &Inhibit_OBS1 = 0
{
L0 = V304 * -1
V100 = ROTATE 0, 359, L0
}
}
Var 306, name E_HDG, Link IOCARD_ENCODER, Device 0, Input 6, Aceleration 4, Type 2
{
If &Inhibit_HDG = 0
{
If &Bank_act = 0
{
L0 = &E_HDG * -1
&D_HDG = ROTATE 0, 359, L0
&HDG_temp = &D_HDG
}
If &I_BANK_SW = 1
{
&D_HDG = &I_BANK_LIMIT
L1 = &E_HDG * -5
&D_HDG = LIMIT 10, 30, L1
&I_BANK_LIMIT = &D_HDG
}
ELSE
{
&D_HDG = &HDG_temp
}
}
}
Var 308, name E_COURSE2, Link IOCARD_ENCODER, Device 0, Input 9, Aceleration 4, Type 2
{
If &Inhibit_OBS2 = 0
{
L0 = V308 * -1
V110 = ROTATE 0, 359, L0
}
}
Var 310, name E_VS, Link IOCARD_ENCODER, Device 0, Input 11, Aceleration 4, Type 2
{
If &Inhibit_VS = 0
{
L0 = V310 * -50
V108 = LIMIT -7000, 7000, L0
}
Else
{
&VS_Trigger = 1
}
}
// Display Inhibit
// Display inhibit variables signal the blanking of the displays. They are written by Prosim
Var 320, name Inhibit_IAS
{
If V320 = 1
{
&D_IAS = -999999
V201 = 0
}
Else
{
V201 = &DECIMAL
}
}
Var 322, name Inhibit_Alt
{
If V322 = 1
{
&D_ALT = -999999
}
}
Var 324, name Inhibit_OBS1
{
If V324 = 1
{
&D_COURSE1 = -999999
}
}
Var 326, name Inhibit_HDG
{
If V326 = 1
{
&D_HDG = -999999
}
}
Var 328, name Inhibit_OBS2
{
If V328 = 1
{
&D_COURSE2 = -999999
}
}
Var 330, name Inhibit_VS
{
If V330 = 1
{
&D_VS = -999999
}
}
// SWITCHES
// The MCP switches are read by Prosim
Var 400, name I_CO, Link IOCARD_SW, Device 0, Input 13
Var 402, name I_FD2, Link IOCARD_SW, Device 0, Input 14
Var 404, name I_DISENGAGE, Link IOCARD_SW, Device 0, Input 15
Var 406, name I_FD1, Link IOCARD_SW, Device 0, Input 16
Var 408, name I_CWSB, Link IOCARD_SW, Device 0, Input 18
Var 410, name I_CMDB, Link IOCARD_SW, Device 0, Input 19
Var 412, name I_CWSA, Link IOCARD_SW, Device 0, Input 20
Var 414, name I_CMDA, Link IOCARD_SW, Device 0, Input 21
Var 416, name I_VS, Link IOCARD_SW, Device 0, Input 22
Var 418, name I_ALTHLD, Link IOCARD_SW, Device 0, Input 23
Var 420, name I_APP, Link IOCARD_SW, Device 0, Input 24
Var 422, name I_VORLOC, Link IOCARD_SW, Device 0, Input 25
Var 424, name I_LNAV, Link IOCARD_SW, Device 0, Input 27
Var 426, name I_HDGSEL, Link IOCARD_SW, Device 0, Input 28
Var 428, name I_LVLCHG, Link IOCARD_SW, Device 0, Input 29
Var 430, name I_VNAV, Link IOCARD_SW, Device 0, Input 30
Var 432, name I_SPEED, Link IOCARD_SW, Device 0, Input 31
Var 434, name I_N1, Link IOCARD_SW, Device 0, Input 32
Var 436, name I_AT, Link IOCARD_SW, Device 0, Input 33
Var 438, name I_SPD_INTER, Link IOCARD_SW, Device 0, Input 37
Var 440, name I_ALT_INTER, Link IOCARD_SW, Device 0, Input 36
Var 442, name I_BANK_LIMIT, VALUE 10
Var 444, name I_BANK_SW, Link IOCARD_SW, Device 0, Input 34 // Activate bank limit
{
If &I_BANK_SW = 1
{
&Bank_act = 1
&D_HDG = &I_BANK_LIMIT
}
Else
{
&Bank_act = 0
&D_HDG = &HDG_temp
}
}
// ///////////////////////////
// END MCP
// ///////////////////////////
// ///////////////////////////
// CDU CAPT
// ///////////////////////////
Var 45, name CDUKey, Link IOCARD_KEYS, device 13 // Keyboard reading
Var 46, name CDUExec, Link IOCARD_OUT, device 13, Output 2 // device
Var 47, name CDUFail, Link IOCARD_OUT, device 13, Output 4
Var 48, name CDUMSG, Link IOCARD_OUT, device 13, Output 1
// ///////////////////////////
// END CDU CAPT
// ///////////////////////////
// ///////////////////////////
// CDU F/O
// ///////////////////////////
Var 50, name CDUKeyfo, Link IOCARD_KEYS, device 14 // Keyboard reading
Var 51, name CDUExecfo, Link IOCARD_OUT, device 14, Output 2 // device
Var 52, name CDUFailfo, Link IOCARD_OUT, device 14, Output 4
Var 53, name CDUMSGfo, Link IOCARD_OUT, device 14, Output 1
// ///////////////////////////
// END CDU F/O
// ///////////////////////////
// ///////////////////////////
// CHRONO CAPT
// ///////////////////////////
Var 0001, Value 0 // Inicializacion de valores de variables
{
&D_CHRBRIGHT = 120
&PARPADEO_U = 0
&PARPADEO_D = 1
&Time_Date_Year = 3
&Disp_Year = &Zulu_Year_Set
&Year_to_Modif = &Zulu_Year_Set // Pasamos el aà±o a una vble interna
&Modif_Year = 0
&Estado_CHR = 1
&Estado_ET = 1
&CHR_ET_ToDisp = -1
&DECIMAL_C = 0
&Aguja_Segundos = 45
}
// ///////////////////////////////////////
// VARIABLES PROPIAS
// ///////////////////////////////////////
Var 3010, name Time_Date_Year // Indice para digitos Time-Date-Year
Var 3012, name Modif_Year // Activamos control modificacion aà±o. 0=Descativado, 1=Activado
Var 3014, name Modif_DDMM // Activamos control modificacion Dia.Mes -> 0=Descativado, 1=Mes 2=Dàa
Var 3015, name Modif_HHMM // Activamos control modificacion Hora.Minutos-> 0=Descativado, 1=Minutos 2=Horas
Var 3016, name Year_to_Modif // Guarda el aà±o para modificar
Var 3018, name DD_to_Modif // Guarda el Dia para modificar
Var 3020, name MM_to_Modif // Guarda el Mes para modificar
Var 3022, name CHR_ET_ToDisp // Controla si vemos el CHR o el ET en el display inferior. 0=CHR 1=ET
Var 3024, name CHR_Min // Acumula los Minutos del cronometro
Var 3026, name CHR_Sec // Acumula los Segundos del cronometro
Var 3028, name Estado_CHR // COntrola el estado del Botà³n CHR. 0 -> Pone Crono en display
// 2 -> Inicia CHR o continàºa
// 3 -> STOP Cronà³metro.
Var 3030, name ET_Hr // Acumula las Horas del ET (Elapsed Time)
Var 3032, name ET_Min // Acumula los Minutos del ET (Elapsed Time)
Var 3034, name ET_Sec // Acumula los Segundos del ET (Elapsed Time)
Var 3036, name Estado_ET // COntrola el estado del Botà³n ET. 0 -> Pone ET en display
// 2 -> Inicia ET o continàºa
// 3 -> STOP ET
Var 3037, name Limit_DD_Mes // Almacena el total de dàas que tiene el mes activo
Var 3038, name DayofYear // Almacena el dàa del aà±o
Var 3039, name M_MOTOR, Link IOCARD_MOTOR, Device 15, Output 1, Aceleration 200
Var 3040, name Aguja_Segundos
{
L0 = 4065 / 60
L0 = L0 * &Aguja_Segundos
&M_MOTOR = ROUND L0
}
Var 3041, name PARPADEO_U, link SUBRUTINE
{
&BLINK = 0
}
Var 3042, name PARPADEO_D, Link SUBRUTINE
{
&BLINK2 = 0
}
Var 3043, name HH_to_Modif // Guarda la hora para modificar
Var 3044, name MI_to_Modif // Guarda los minutos para modificar
// ///////////////////////////////////////
// VARIABLES FSUIPC
// ///////////////////////////////////////
Var 3050, name Clock_Seconds, link FSUIPC_INOUT, offset $023A, length 1 // Segundos del Reloj del FS
{
IF &Time_Date_Year = 1 // Visualizo el aà±o
{
IF &Modif_Year = 1 // Si estamos en activacion del control del aà±o
{
&Disp_Year = &Year_to_Modif
&Disp_Year = Delay -999999, 50
}
}
IF &Time_Date_Year = 2 // Visualizo el dia y mes
{
IF &Modif_DDMM = 1 // Si estamos en activacion del control modificacion Mes
{
&Disp_Month_Min = &MM_to_Modif
&Disp_Month_Min = Delay -999999, 50
&Disp_Day_Hour = &DD_to_Modif
}
IF &Modif_DDMM = 2 // Si estamos en activacion del control modificacion Dàa
{
&Disp_Day_Hour = &DD_to_Modif
&Disp_Day_Hour = Delay -999999, 50
&Disp_Month_Min = &MM_to_Modif
}
}
IF &Time_Date_Year = 3 // Visualizo la hora Zulu
{
CALL &Show_Display
IF &Modif_HHMM = 1 // Si estamos en activacion del control modificacion Minutos
{
&Disp_Month_Min = &MI_to_Modif
&Disp_Month_Min = Delay -999999, 50
&Disp_Day_Hour = &HH_to_Modif
}
IF &Modif_HHMM = 2 // Si estamos en activacion del control modificacion Horas
{
&Disp_Day_Hour = &HH_to_Modif
&Disp_Day_Hour = Delay -999999, 50
&Disp_Month_Min = &MI_to_Modif
}
}
IF &Time_Date_Year = 4 // Visualizo Minutos y Segundos
{
CALL &Show_Display
}
IF &Estado_CHR = 2 // 2 -> Inicia CHR o continàºa
{
IF &CHR_ET_ToDisp = 0
{
&PARPADEO_D = 1
}
&CHR_Sec = &CHR_Sec + 1
IF &CHR_Sec > 59
{
&CHR_Sec = 0
&CHR_Min = &CHR_Min + 1
IF &CHR_Min > 59 // Cuando llegamos a 1 hora se pone a cero
{
&CHR_Min = 0
}
}
&Aguja_Segundos = &CHR_Sec // Movemos la aguja de los segundos si el CHR esta funcionando
}
IF &Estado_ET = 2 // 2 -> Inicia ET o continàºa
{
IF &CHR_ET_ToDisp = 1
{
&PARPADEO_D = 1
}
&ET_Sec = &ET_Sec + 1
IF &ET_Sec > 59
{
&ET_Sec = 0
&ET_Min = &ET_Min + 1
IF &ET_Min > 59
{
&ET_Min = 0
&ET_Hr = &ET_Hr + 1
}
}
}
IF &CHR_ET_ToDisp = 0 // Mostramos el CHR en los displays inferiores
{
Call &Ver_CHR
}
ELSE // Mostramos el ET en los displays inferiores
{
IF &CHR_ET_ToDisp = 1
{
Call &Ver_ET
}
}
}
Var 3052, name Zulu_Hour, link FSUIPC_INOUT, offset $023B, length 1 // Hora Zulu. Lectura y escritura
{
CALL &Show_Display
}
Var 3054, name Zulu_Minute, link FSUIPC_INOUT, offset $023C, length 1 // Minutos Zulu. Lectura y escritura
{
CALL &Show_Display
}
Var 3056, name Day_of_Year, link FSUIPC_INOUT, offset $023E, length 2 // Numero del dàa del aà±o. Lectura y escritura. Numero total de dias al aà±o
Var 3058, name Day_of_Month, link FSUIPC_IN, offset $023D, length 1 // Dàa del mes correspondiente. Sà³lo lectura
{
CALL &Show_Display
}
Var 3060, name Current_Month, link FSUIPC_IN, offset $0242, length 1 // Numero del mes. Sà³lo lectura
{
CALL &Show_Display
}
Var 3062, name Zulu_Year_Set, link FSUIPC_INOUT, offset $0240, length 2 // Aà±o. Lectura y escritura
{
&Year_to_Modif = &Zulu_Year_Set
Call &Chk_Bisiesto // Comprobamos si es bisiesto
}
// /////////////////////////////////////////////////////////////////////////////////////////
// VARIABLES IOCARDS ------------ DISPLAYS ------------
// /////////////////////////////////////////////////////////////////////////////////////////
Var 0900, name Disp_Year, Link IOCARD_DISPLAY, Device 15, Digit 0, Numbers 4 // UP Displays Year
Var 0901, name Disp_Day_Hour, Link IOCARD_DISPLAY, Device 15, Digit 2, Numbers 2 // UP Displays Day or Hour
Var 0902, name Disp_Month_Min, Link IOCARD_DISPLAY, Device 15, Digit 0, Numbers 2 // UP Displays Month or Minutes
Var 0904, name Disp_DWN_Min, Link IOCARD_DISPLAY, Device 15, Digit 6, Numbers 2 // Down Displays CHR - ET -> Min
Var 0905, name Disp_DWN_Sec, Link IOCARD_DISPLAY, Device 15, Digit 4, Numbers 2 // Down Displays CHR - ET -> Sec
Var 0908, name D_CHRBRIGHT, Link IOCARD_DISPLAY, Device 15, Digit 16, Numbers 3
Var 0913, name DECIMAL_U, Link IOCARD_OUT, Device 15, Output 20
Var 0914, name DECIMAL_D, Link IOCARD_OUT, Device 15, Output 21
Var 0915, name DECIMAL_C, Link IOCARD_OUT, Device 15, Output 22
// /////////////////////////////////////////////////////////////////////////////////////////
// VARIABLES IOCARDS ------------ ENTRADAS ------------
// /////////////////////////////////////////////////////////////////////////////////////////
Var 0916, name SW_Time_Date, Link IOCARD_SW, Device 15, Input 1, Type P // Botà³n TIME-DATE
{
IF &Modif_Year = 0 // Si NO estamos en activacion del control del Aà±o-Set (Botà³n SET)
{
&Time_Date_Year = &Time_Date_Year + 1
IF &Modif_DDMM > 0 // Si estoy modificando dia del mes o el mes
{
&Modif_DDMM = 0
}
IF &Modif_HHMM > 0 // Si estoy modificando dia hora o minutos
{
&Modif_HHMM = 0
}
}
IF &Time_Date_Year > 4 // Comprobamos si nos salimos de margenes
{
&Time_Date_Year = 1 // Ponemos a 1
}
Call &Show_Display // Mostramos en displays el dato correspondiente
If &Estado_CHR = 3 // Si el CHR esta parado
{
// &Aguja_Segundos = 9000 // Movemos la aguja de los segundos a 15 para ver los displays mejor
}
}
Var 0917, name SW_SET, Link IOCARD_SW, Device 15, Input 2, Type P // Botà³n SET
{
IF &Time_Date_Year = 1 // Si estoy visualizando el aà±o
{
IF &Modif_Year = 0 // Si NO estoy modificando el aà±o
{
&Modif_Year = 1 // Activamos control modificacion aà±o
&Year_to_Modif = &Zulu_Year_Set // Pasamos el aà±o a una vble para modificar
}
else
{
Call &Chk_Bisiesto // Comprobamos si es bisiesto
call &calc_DayofYear
&Day_of_Year = &DayofYear // Devolvemos el dàa al FS para que lo modifique
&Modif_Year = 0 // Desactivamos control modificacion aà±o
&Zulu_Year_Set = &Year_to_Modif // Devolvemos el aà±o al FS para que lo modifique
Call &Show_Display // Mostramos el aà±o
}
}
IF &Time_Date_Year = 2 // Si estoy visualizando el dia del mes y el mes (DD.MM)
{
IF &Modif_DDMM = 0 // Si NO estoy modificando dia del mes y el mes
{
&Modif_DDMM = 1 // Activamos control modificacion Mes
&MM_to_Modif = &Current_Month // Pasamos el mes a una vble para modificar
&DD_to_Modif = &Day_of_Month
&PARPADEO_U = 0
}
else
{
IF &Modif_DDMM = 1 // Si estamos modificando el mes pasamos a modificar el dàa
{
Call &Chk_DiasDelMes // Calculamos cuantos dias tiene el mes que hemos modificado
&Modif_DDMM = 2 // Activamos control modificacion Dàa
&DD_to_Modif = &Day_of_Month // Pasamos el dàa a una vble para modificar
&Disp_Month_Min = Delay &MM_to_Modif, 50
}
else // Terminamos de modificar asà que mandamos valores al FS
{
call &calc_DayofYear
&Day_of_Year = &DayofYear // Devolvemos el dàa al FS para que lo modifique
&PARPADEO_U = 2
&Modif_DDMM = 0
call &Show_Display
&show_Display = Delay 1, 50
}
}
}
IF &Time_Date_Year = 3 // Si estoy visualizando el dia del Hora y minutos (HH.MM)
{
IF &Modif_HHMM = 0 // Si NO estoy modificando Nada
{
&Modif_HHMM = 1 // Activamos control modificacion Minutos
&MI_to_Modif = &Zulu_Minute // Pasamos minutos
&HH_to_Modif = &Zulu_Hour // Pasamos Horas
&PARPADEO_U = 0
}
else
{
IF &Modif_HHMM = 1 // Si estamos modificando Minutos pasamos a modificar Horas
{
// Call &Chk_DiasDelMes
&Modif_HHMM = 2 // Activamos control modificacion Dàa
&HH_to_Modif = &Zulu_Hour // Pasamos el dàa a una vble para modificar *OJO*
&Disp_Month_Min = Delay &MI_to_Modif, 50
}
else // Terminamos de modificar asà que mandamos valores al FS
{
//call &calc_DayofYear
//&Day_of_Year = &DayofYear // Devolvemos el dàa al FS para que lo modifique *OJO*
&Zulu_Hour = &HH_to_Modif
&Zulu_Minute = &MI_to_Modif
&PARPADEO_U = 2
&Modif_HHMM = 0
call &Show_Display
&show_Display = Delay 1, 50
}
}
}
}
Var 0924, name SW_CHR, Link IOCARD_SW, Device 15, Input 0 // Botà³n CHR
{
if &SW_CHR = 1
{
if &CHR_ET_ToDisp = -1
{
&CHR_ET_ToDisp = 0
&Aguja_Segundos = 0
&DECIMAL_C = 1
&DECIMAL_D = 1
}
else
{
&DECIMAL_C = 1
Call &Ver_CHR
If &CHR_ET_ToDisp = 1 // Venimos de la Funcià³n ET
{
&CHR_ET_ToDisp = 0 // Acivamos control sobre el display para CHR
}
else // Ya estabamos en la funcià³n CHR
{
&Estado_CHR = &Estado_CHR + 1 // Cambiamos el estado de CHR
}
If &Estado_CHR > 3 // Comprobamos limite del estado del CHR
{
&Estado_CHR = 2 // 2 -> Inicia CHR o continàºa 3 -> STOP Cronà³metro.
}
If &Estado_CHR <> 2
{
&PARPADEO_D = 2
}
}
}
}
Var 0925, name SW_ET, Link IOCARD_SW, Device 15, Input 6, type P // Botà³n ET
{
if &CHR_ET_ToDisp = -1
{
&CHR_ET_ToDisp = 0
&Aguja_Segundos = 0
&DECIMAL_C = 1
&DECIMAL_D = 1
}
else
{
&DECIMAL_C = 0
Call &Ver_ET
If &CHR_ET_ToDisp = 0 // Venimos de la Funcià³n CHR
{
&CHR_ET_ToDisp = 1 // Acivamos control sobre el display para ET
}
else // Ya estabamos en la funcià³n ET
{
&Estado_ET = &Estado_ET + 1 // Cambiamos el estado de ET
}
If &Estado_ET > 3 // Comprobamos limite del estado del ET
{
&Estado_ET = 2 // 2 -> Inicia ET o continàºa 3 -> STOP ET
}
If &Estado_ET <> 2
{
&PARPADEO_D = 2
}
}
}
Var 0926, Link IOCARD_SW, Device 15, Input 5, type P // Botà³n RST
{
if &SW_CHR = 1
{
&CHR_ET_ToDisp = -1
&Estado_CHR = 1
&Estado_ET = 1
&DECIMAL_C = 1
&Aguja_Segundos = 45
&Disp_DWN_Min = -999999
&Disp_DWN_Sec = -999999
&DECIMAL_D = 0
&CHR_Min = 0
&CHR_Sec = 0
&ET_Hr = 0
&ET_Min = 0
&ET_Sec = 0
&DECIMAL_C = 0
}
else
{
if &CHR_ET_ToDisp = -1
{
&CHR_ET_ToDisp = 0
&Aguja_Segundos = 0
&DECIMAL_C = 1
&DECIMAL_D = 1
}
else
{
If &CHR_ET_ToDisp = 0
{
&CHR_Min = 0 // Ponemos a cero los minutos del CHR
&CHR_Sec = 0 // Ponemos a cero los segundos del CHR
&Aguja_Segundos = 0
Call &Ver_CHR
}
else
{
&ET_Hr = 0 // Ponemos a cero la hora del ET
&ET_Min = 0 // Ponemos a cero los minutos del ET
&ET_Sec = 0 // Ponemos a cero los segundos del ET
Call &Ver_ET
}
}
}
}
Var 0927, Link IOCARD_SW, Device 15, Input 3, type P // Botà³n +
{
IF &Modif_Year = 1 // Si estamos en activacion del control del aà±o
{
&Year_to_Modif = &Year_to_Modif + 1
&Disp_Year = &Year_to_Modif
}
IF &Modif_DDMM = 1 // Si estamos en activacion del control del Mes
{
&MM_to_Modif = &MM_to_Modif + 1
If &MM_to_Modif > 12
{
&MM_to_Modif = 1
}
&Disp_Month_Min = &MM_to_Modif
}
IF &Modif_DDMM = 2 // Si estamos en activacion del control del Dàa
{
&DD_to_Modif = &DD_to_Modif + 1
If &DD_to_Modif > &Limit_DD_Mes
{
&DD_to_Modif = 1
}
&Disp_Day_Hour = &DD_to_Modif
}
IF &Modif_HHMM = 1 // Si estamos en activacion del control de Minutos
{
&MI_to_Modif = &MI_to_Modif + 1
If &MI_to_Modif > 59
{
&MI_to_Modif = 0
}
&Disp_Month_Min = &MI_to_Modif
}
IF &Modif_HHMM = 2 // Si estamos en activacion del control de Horas
{
&HH_to_Modif = &HH_to_Modif + 1
If &HH_to_Modif > 23
{
&HH_to_Modif = 0
}
&Disp_Day_Hour = &HH_to_Modif
}
}
Var 0928, Link IOCARD_SW, Device 15, Input 4, type P // Botà³n -
{
IF &Modif_Year = 1 // Si estamos en activacion del control del aà±o
{
&Year_to_Modif = &Year_to_Modif - 1
&Disp_Year = &Year_to_Modif
}
IF &Modif_DDMM = 1 // Si estamos en activacion del control del Mes
{
&MM_to_Modif = &MM_to_Modif - 1
If &MM_to_Modif < 1
{
&MM_to_Modif = 12
}
&Disp_Month_Min = &MM_to_Modif
}
IF &Modif_DDMM = 2 // Si estamos en activacion del control del Dàa
{
&DD_to_Modif = &DD_to_Modif - 1
If &DD_to_Modif < 1
{
&DD_to_Modif = &Limit_DD_Mes
}
&Disp_Day_Hour = &DD_to_Modif
}
IF &Modif_HHMM = 1 // Si estamos en activacion del control de Minutos
{
&MI_to_Modif = &MI_to_Modif - 1
If &MI_to_Modif < 0
{
&MI_to_Modif = 59
}
&Disp_Month_Min = &MI_to_Modif
}
IF &Modif_HHMM = 2 // Si estamos en activacion del control de Horas
{
&HH_to_Modif = &HH_to_Modif - 1
If &HH_to_Modif < 0
{
&HH_to_Modif = 23
}
&Disp_Day_Hour = &HH_to_Modif
}
}
// /////////////////////////////////////////////////////////////////////////////////////////
// SUBRUTINAS
// /////////////////////////////////////////////////////////////////////////////////////////
Var 2000, name Show_Display, Link SUBRUTINE // Muestra el aà±o
{
&PARPADEO_U = 0
IF &Time_Date_Year = 1 // Visualizo el aà±o
{
&Disp_Year = -999999 // Apagamos el aà±o
&Disp_Year = &Zulu_Year_Set
}
IF &Time_Date_Year = 2 // Visualizo el dia y mes
{
&Disp_Day_Hour = &Day_of_Month
&Disp_Month_Min = &Current_Month
&PARPADEO_U = 2
}
IF &Time_Date_Year = 3 // Visualizo la hora Zulu y Minutos
{
&Disp_Day_Hour = &Zulu_Hour
&Disp_Month_Min = &Zulu_Minute
&PARPADEO_U = 1
}
IF &Time_Date_Year = 4 // Visualizo Minutos y Segundos
{
&Disp_Day_Hour = &Zulu_Minute
&Disp_Month_Min = &Clock_Seconds
&PARPADEO_U = 1
}
}
Var 2002, name Ver_CHR, Link SUBRUTINE // Pasa CHR al display
{
&Disp_DWN_Min = &CHR_Min // Mostramos los minutos del CHR en Display Down
&Disp_DWN_Sec = &CHR_Sec // Mostramos los minutos del CHR en Display Down
}
Var 2004, name Ver_ET, Link SUBRUTINE // Pasa ET al display
{
If &ET_Hr = 0 // Durante la primera hora mostramos MM:SS
{
&Disp_DWN_Min = &ET_Min // Mostramos los minutos del ET en Display Down
&Disp_DWN_Sec = &ET_Sec // Mostramos los segundos del ET en Display Down
}
else // Despues mostramos HH:MM
{
&Disp_DWN_Min = &ET_Hr // Mostramos la hora del ET en Display Down
&Disp_DWN_Sec = &ET_Min // Mostramos los minutos del ET en Display Down
}
}
Var 2006, name Chk_Bisiesto, Link SUBRUTINE // Comprueba si el aà±o es bisis'esto
{
L0 = MOD &Zulu_Year_Set ,4 // L0 acumula el resto de la divisià³n
IF L0 = 0
{
&Chk_Bisiesto = 1 // No Bisiesto = 0 Bisiesto = 1
}
ELSE
{
L0 = MOD &Zulu_Year_Set ,400
IF L0 = 0
{
L0 = MOD &Zulu_Year_Set ,100
IF L0 = 0
{
&Chk_Bisiesto = 1 // No Bisiesto = 0 Bisiesto = 1
}
ELSE
{
&Chk_Bisiesto = 0 // No Bisiesto = 0 Bisiesto = 1
}
}
ELSE
{
&Chk_Bisiesto = 0 // No Bisiesto = 0 Bisiesto = 1
}
}
}
Var 2008, name Chk_DiasDelMes, Link SUBRUTINE // Calcula cuantos dàas tiene el mes
// 31 dàas tienen ENE, MAR, MAY, JUL, AGO, OCT, DIC
// 30 dàas tienen ABR, JUN, SEP, NOV
// 28 dàas tiene FEB excepto los bisiestos que tiene 29
{
If &MM_to_Modif = 1 // ENE
{
&Limit_DD_Mes = 31
}
If &MM_to_Modif = 2 // FEB
{
If &Chk_Bisiesto = 0 // Si no es bisiesto
{
&Limit_DD_Mes = 28
}
else // Si es bisiesto
{
&Limit_DD_Mes = 29
}
}
If &MM_to_Modif = 3 // MAR
{
&Limit_DD_Mes = 31
}
If &MM_to_Modif = 4 // ABR
{
&Limit_DD_Mes = 30
}
If &MM_to_Modif = 5 // MAY
{
&Limit_DD_Mes = 31
}
If &MM_to_Modif = 6 // JUN
{
&Limit_DD_Mes = 30
}
If &MM_to_Modif = 7 // JUL
{
&Limit_DD_Mes = 31
}
If &MM_to_Modif = 8 // AGO
{
&Limit_DD_Mes = 31
}
If &MM_to_Modif = 9 // SEP
{
&Limit_DD_Mes = 30
}
If &MM_to_Modif = 10 // OCT
{
&Limit_DD_Mes = 31
}
If &MM_to_Modif = 11 // NOV
{
&Limit_DD_Mes = 30
}
If &MM_to_Modif = 12 // DIC
{
&Limit_DD_Mes = 31
}
}
Var 2010, name Calc_DayofYear, Link SUBRUTINE // Calcula el dia del mes en relacion al aà±o total
// // Asà el 1 de ENE es el calc_DayofYear = 1 y el
// // 31 de DIC es el 365 excepto en bisiesto que es el 366
{
If &MM_to_Modif = 1 // ENE 31
{
&DayofYear = &DD_to_Modif // Paso a Calc_DayofYear el dàa del mes de Enero
}
If &MM_to_Modif = 2 // FEB 28
{
&DayofYear = &DD_to_Modif + 31 // Le sumo a los dàas del mes los del mes anterior
}
If &MM_to_Modif = 3 // MAR 31
{
&DayofYear = &DD_to_Modif + 59 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif = 4 // ABR 30
{
&DayofYear = &DD_to_Modif + 90 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif = 5 // MAY 31
{
&DayofYear = &DD_to_Modif + 120 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif = 6 // JUN 30
{
&DayofYear = &DD_to_Modif + 151 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif = 7 // JUL 31
{
&DayofYear = &DD_to_Modif + 181 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif = 8 // AGO 31
{
&DayofYear = &DD_to_Modif + 212 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif = 9 // SEP 30
{
&DayofYear = &DD_to_Modif + 243 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif = 10 // OCT 31
{
&DayofYear = &DD_to_Modif + 273 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif = 11 // NOV 30
{
&DayofYear = &DD_to_Modif + 304 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif = 12 // DIC 31
{
&DayofYear = &DD_to_Modif + 334 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif > 1
{
If &Chk_Bisiesto = 1 // Si es bisiesto
{
&DayofYear = &DayofYear + 1
}
}
&Current_Month = &MM_to_Modif
&Day_of_Month = &DD_to_Modif
}
Var 2012, name BLINK, Link SUBRUTINE
{
IF &BLINK = 0
{
IF &PARPADEO_U = 0 // No parpadea y queda apagado
{
&DECIMAL_U = 0
}
IF &PARPADEO_U = 1 // Parpadea
{
&DECIMAL_U = 1
&BLINK = DELAY 1, 50
}
IF &PARPADEO_U = 2 // No parpadea y queda encendido
{
&DECIMAL_U = 1
}
}
ELSE
{
IF &PARPADEO_U = 0
{
&DECIMAL_U = 0
}
IF &PARPADEO_U = 1
{
&DECIMAL_U = 0
}
IF &PARPADEO_U = 2
{
&DECIMAL_U = 1
}
}
}
Var 2014, name BLINK2, Link SUBRUTINE
{
IF &BLINK2 = 0
{
IF &PARPADEO_D = 0 // No parpadea y queda apagado
{
&DECIMAL_D = 0
}
IF &PARPADEO_D = 1 // Parpadea
{
&DECIMAL_D = 1
&BLINK2 = DELAY 1, 50
}
IF &PARPADEO_D = 2 // No parpadea y queda encendido
{
&DECIMAL_D = 1
}
}
ELSE
{
IF &PARPADEO_D = 0
{
&DECIMAL_D = 0
}
IF &PARPADEO_D = 1
{
&DECIMAL_D = 0
}
IF &PARPADEO_D = 2
{
&DECIMAL_D = 1
}
}
}
// //////////////////////////////////////
// END CHRONO CAPT
// //////////////////////////////////////
// ///////////////////////////
// CHRONO F/O
// ///////////////////////////
Var 0002, Value 0 // Inicializacion de valores de variables
{
&D_CHRBRIGHT2 = 120
&PARPADEO_U2 = 0
&PARPADEO_D2 = 1
&2Date_Year = 3
&Disp_Year2 = &Zulu_Year_Set2
&Year_to_Modif2 = &Zulu_Year_Set2 // Pasamos el aà±o a una vble interna
&Modif_Year2 = 0
&Estado_CHR2 = 1
&Estado_ET2 = 1
&CHR_ET_ToDisp2 = -1
&DECIMAL_C2 = 0
&Aguja_Segs2 = 45
}
// /////////////////////////////////////////////////////////////////////////////////////////
// VARIABLES PROPIAS
// /////////////////////////////////////////////////////////////////////////////////////////
Var 4000, name 2Date_Year // Indice para digitos Time-Date-Year
Var 4002, name Modif_Year2 // Activamos control modificacion aà±o. 0=Descativado, 1=Activado
Var 4004, name Modif_DDMM2 // Activamos control modificacion Dia.Mes -> 0=Descativado, 1=Mes 2=Dàa
Var 4006, name Modif_HHMM2 // Activamos control modificacion Hora.Minutos-> 0=Descativado, 1=Minutos 2=Horas
Var 4008, name Year_to_Modif2 // Guarda el aà±o para modificar
Var 4010, name DD_to_Modif2 // Guarda el Dia para modificar
Var 4012, name MM_to_Modif2 // Guarda el Mes para modificar
Var 4014, name CHR_ET_ToDisp2 // Controla si vemos el CHR o el ET en el display inferior. 0=CHR 1=ET
Var 4016, name CHR_Min2 // Acumula los Minutos del cronometro
Var 4018, name CHR_Sec2 // Acumula los Segundos del cronometro
Var 4020, name Estado_CHR2 // COntrola el estado del Botà³n CHR. 0 -> Pone Crono en display
// 2 -> Inicia CHR o continàºa
// 3 -> STOP Cronà³metro.
Var 4022, name ET_Hr2 // Acumula las Horas del ET (Elapsed Time)
Var 4024, name ET_Min2 // Acumula los Minutos del ET (Elapsed Time)
Var 4026, name ET_Sec2 // Acumula los Segundos del ET (Elapsed Time)
Var 4028, name Estado_ET2 // COntrola el estado del Botà³n ET. 0 -> Pone ET en display
// 2 -> Inicia ET o continàºa
// 3 -> STOP ET
Var 4030, name Limit_DD_Mes2 // Almacena el total de dàas que tiene el mes activo
Var 4032, name DayofYear2 // Almacena el dàa del aà±o
Var 4034, name M_MOTOR2, Link IOCARD_MOTOR, Device 16, Output 1, Aceleration 200
Var 4036, name Aguja_Segs2
{
L0 = 4065 / 60
L0 = L0 * &Aguja_Segs2
&M_MOTOR2 = ROUND L0
}
Var 4038, name PARPADEO_U2, link SUBRUTINE
{
&BLINK3 = 0
}
Var 4040, name PARPADEO_D2, Link SUBRUTINE
{
&BLINK4 = 0
}
Var 4042, name HH_to_Modif2 // Guarda la hora para modificar
Var 4044, name MI_to_Modif2 // Guarda los minutos para modificar
// /////////////////////////////////////////////////////////////////////////////////////////
// VARIABLES FSUIPC
// /////////////////////////////////////////////////////////////////////////////////////////
Var 4046, name Clock_Seconds2, link FSUIPC_INOUT, offset $023A, length 1 // Segundos del Reloj del FS
{
IF &2Date_Year = 1 // Visualizo el aà±o
{
IF &Modif_Year2 = 1 // Si estamos en activacion del control del aà±o
{
&Disp_Year2 = &Year_to_Modif2
&Disp_Year2 = Delay -999999, 50
}
}
IF &2Date_Year = 2 // Visualizo el dia y mes
{
IF &Modif_DDMM2 = 1 // Si estamos en activacion del control modificacion Mes
{
&DispMonthMin2 = &MM_to_Modif2
&DispMonthMin2 = Delay -999999, 50
&Disp_Day_Hour2 = &DD_to_Modif2
}
IF &Modif_DDMM2 = 2 // Si estamos en activacion del control modificacion Dàa
{
&Disp_Day_Hour2 = &DD_to_Modif2
&Disp_Day_Hour2 = Delay -999999, 50
&DispMonthMin2 = &MM_to_Modif2
}
}
IF &2Date_Year = 3 // Visualizo la hora Zulu
{
CALL &Show_Display2
IF &Modif_HHMM2 = 1 // Si estamos en activacion del control modificacion Minutos
{
&DispMonthMin2 = &MI_to_Modif2
&DispMonthMin2 = Delay -999999, 50
&Disp_Day_Hour2 = &HH_to_Modif2
}
IF &Modif_HHMM2 = 2 // Si estamos en activacion del control modificacion Horas
{
&Disp_Day_Hour2 = &HH_to_Modif2
&Disp_Day_Hour2 = Delay -999999, 50
&DispMonthMin2 = &MI_to_Modif2
}
}
IF &2Date_Year = 4 // Visualizo Minutos y Segundos
{
CALL &Show_Display2
}
If &Estado_CHR2 = 2 // 2 -> Inicia CHR o continàºa
{
IF &CHR_ET_ToDisp2 = 0
{
&PARPADEO_D2 = 1
}
&CHR_Sec2 = &CHR_Sec2 + 1
If &CHR_Sec2 > 59
{
&CHR_Sec2 = 0
&CHR_Min2 = &CHR_Min2 + 1
If &CHR_Min2 > 59 // Cuando llegamos a 1 hora se pone a cero
{
&CHR_Min2 = 0
}
}
&Aguja_Segs2 = &CHR_Sec2 // Movemos la aguja de los segundos si el CHR esta funcionando
}
If &Estado_ET2 = 2 // 2 -> Inicia ET o continàºa
{
IF &CHR_ET_ToDisp2 = 1
{
&PARPADEO_D2 = 1
}
&ET_Sec2 = &ET_Sec2 + 1
If &ET_Sec2 > 59
{
&ET_Sec2 = 0
&ET_Min2 = &ET_Min2 + 1
If &ET_Min2 > 59
{
&ET_Min2 = 0
&ET_Hr2 = &ET_Hr2 + 1
}
}
}
If &CHR_ET_ToDisp2 = 0 // Mostramos el CHR en los displays inferiores
{
Call &Ver_CHR2
}
else // Mostramos el ET en los displays inferiores
{
if &CHR_ET_ToDisp2 = 1
{
Call &Ver_ET2
}
}
}
Var 4048, name Zulu_Hour2, link FSUIPC_INOUT, offset $023B, length 1 // Hora Zulu. Lectura y escritura
{
CALL &Show_Display2
}
Var 4050, name Zulu_Minute2, link FSUIPC_INOUT, offset $023C, length 1 // Minutos Zulu. Lectura y escritura
{
CALL &Show_Display2
}
Var 4052, name Day_of_Year2, link FSUIPC_INOUT, offset $023E, length 2 // Numero del dàa del aà±o. Lectura y escritura. Numero total de dias al aà±o
Var 4054, name DayofMonth2, link FSUIPC_IN, offset $023D, length 1 // Dàa del mes correspondiente. Sà³lo lectura
{
CALL &Show_Display2
}
Var 4056, name Current_Month2, link FSUIPC_IN, offset $0242, length 1 // Numero del mes. Sà³lo lectura
{
CALL &Show_Display2
}
Var 4058, name Zulu_Year_Set2, link FSUIPC_INOUT, offset $0240, length 2 // Aà±o. Lectura y escritura
{
&Year_to_Modif2 = &Zulu_Year_Set2
Call &Chk_Bisiesto2 // Comprobamos si es bisiesto
}
// /////////////////////////////////////////////////////////////////////////////////////////
// VARIABLES IOCARDS ------------ DISPLAYS ------------
// /////////////////////////////////////////////////////////////////////////////////////////
Var 4060, name Disp_Year2, Link IOCARD_DISPLAY, Device 16, Digit 0, Numbers 4 // UP Displays Year
Var 4062, name Disp_Day_Hour2, Link IOCARD_DISPLAY, Device 16, Digit 2, Numbers 2 // UP Displays Day or Hour
Var 4064, name DispMonthMin2, Link IOCARD_DISPLAY, Device 16, Digit 0, Numbers 2 // UP Displays Month or Minutes
Var 4068, name Disp_DWN_Min2, Link IOCARD_DISPLAY, Device 16, Digit 6, Numbers 2 // Down Displays CHR - ET -> Min
Var 4070, name Disp_DWN_Sec2, Link IOCARD_DISPLAY, Device 16, Digit 4, Numbers 2 // Down Displays CHR - ET -> Sec
Var 4072, name D_CHRBRIGHT2, Link IOCARD_DISPLAY, Device 16, Digit 16, Numbers 3
Var 4074, name DECIMAL_U2, Link IOCARD_OUT, Device 16, Output 20
Var 4076, name DECIMAL_D2, Link IOCARD_OUT, Device 16, Output 21
Var 4078, name DECIMAL_C2, Link IOCARD_OUT, Device 16, Output 22
// /////////////////////////////////////////////////////////////////////////////////////////
// VARIABLES IOCARDS ------------ ENTRADAS ------------
// /////////////////////////////////////////////////////////////////////////////////////////
Var 4080, name SW_Time_Date2, Link IOCARD_SW, Device 16, Input 1, Type P // Botà³n TIME-DATE
{
IF &Modif_Year2 = 0 // Si NO estamos en activacion del control del Aà±o-Set (Botà³n SET)
{
&2Date_Year = &2Date_Year + 1
IF &Modif_DDMM2 > 0 // Si estoy modificando dia del mes o el mes
{
&Modif_DDMM2 = 0
}
IF &Modif_HHMM2 > 0 // Si estoy modificando dia hora o minutos
{
&Modif_HHMM2 = 0
}
}
IF &2Date_Year > 4 // Comprobamos si nos salimos de margenes
{
&2Date_Year = 1 // Ponemos a 1
}
Call &Show_Display2 // Mostramos en displays el dato correspondiente
If &Estado_CHR2 = 3 // Si el CHR esta parado
{
// &Aguja_Segs2 = 9000 // Movemos la aguja de los segundos a 15 para ver los displays mejor
}
}
Var 4082, name SW_SET2, Link IOCARD_SW, Device 16, Input 2, Type P // Botà³n SET
{
IF &2Date_Year = 1 // Si estoy visualizando el aà±o
{
IF &Modif_Year2 = 0 // Si NO estoy modificando el aà±o
{
&Modif_Year2 = 1 // Activamos control modificacion aà±o
&Year_to_Modif2 = &Zulu_Year_Set2 // Pasamos el aà±o a una vble para modificar
}
else
{
Call &Chk_Bisiesto2 // Comprobamos si es bisiesto
call &Calc_DayYear2
&Day_of_Year2 = &DayofYear2 // Devolvemos el dàa al FS para que lo modifique
&Modif_Year2 = 0 // Desactivamos control modificacion aà±o
&Zulu_Year_Set2 = &Year_to_Modif2 // Devolvemos el aà±o al FS para que lo modifique
Call &Show_Display2 // Mostramos el aà±o
}
}
IF &2Date_Year = 2 // Si estoy visualizando el dia del mes y el mes (DD.MM)
{
IF &Modif_DDMM2 = 0 // Si NO estoy modificando dia del mes y el mes
{
&Modif_DDMM2 = 1 // Activamos control modificacion Mes
&MM_to_Modif2 = &Current_Month2 // Pasamos el mes a una vble para modificar
&DD_to_Modif2 = &DayofMonth2
&PARPADEO_U2 = 0
}
else
{
IF &Modif_DDMM2 = 1 // Si estamos modificando el mes pasamos a modificar el dàa
{
Call &Chk_DiasMes2 // Calculamos cuantos dias tiene el mes que hemos modificado
&Modif_DDMM2 = 2 // Activamos control modificacion Dàa
&DD_to_Modif2 = &DayofMonth2 // Pasamos el dàa a una vble para modificar
&DispMonthMin2 = Delay &MM_to_Modif2, 50
}
else // Terminamos de modificar asà que mandamos valores al FS
{
call &Calc_DayYear2
&Day_of_Year2 = &DayofYear2 // Devolvemos el dàa al FS para que lo modifique
&PARPADEO_U2 = 2
&Modif_DDMM2 = 0
call &Show_Display2
&show_Display2 = Delay 1, 50
}
}
}
IF &2Date_Year = 3 // Si estoy visualizando el dia del Hora y minutos (HH.MM)
{
IF &Modif_HHMM2 = 0 // Si NO estoy modificando Nada
{
&Modif_HHMM2 = 1 // Activamos control modificacion Minutos
&MI_to_Modif2 = &Zulu_Minute2 // Pasamos minutos
&HH_to_Modif2 = &Zulu_Hour2 // Pasamos Horas
&PARPADEO_U2 = 0
}
else
{
IF &Modif_HHMM2 = 1 // Si estamos modificando Minutos pasamos a modificar Horas
{
// Call &Chk_DiasMes2
&Modif_HHMM2 = 2 // Activamos control modificacion Dàa
&HH_to_Modif2 = &Zulu_Hour2 // Pasamos el dàa a una vble para modificar *OJO*
&DispMonthMin2 = Delay &MI_to_Modif2, 50
}
else // Terminamos de modificar asà que mandamos valores al FS
{
//call &Calc_DayYear2
//&Day_of_Year2 = &DayofYear2 // Devolvemos el dàa al FS para que lo modifique *OJO*
&Zulu_Hour2 = &HH_to_Modif2
&Zulu_Minute2 = &MI_to_Modif2
&PARPADEO_U2 = 2
&Modif_HHMM2 = 0
call &Show_Display2
&show_Display2 = Delay 1, 50
}
}
}
}
Var 4084, name SW_CHR2, Link IOCARD_SW, Device 16, Input 0 // Botà³n CHR
{
if &SW_CHR2 = 1
{
if &CHR_ET_ToDisp2 = -1
{
&CHR_ET_ToDisp2 = 0
&Aguja_Segs2 = 0
&DECIMAL_C2 = 1
&DECIMAL_D2 = 1
}
else
{
&DECIMAL_C2 = 1
Call &Ver_CHR2
If &CHR_ET_ToDisp2 = 1 // Venimos de la Funcià³n ET
{
&CHR_ET_ToDisp2 = 0 // Acivamos control sobre el display para CHR
}
else // Ya estabamos en la funcià³n CHR
{
&Estado_CHR2 = &Estado_CHR2 + 1 // Cambiamos el estado de CHR
}
If &Estado_CHR2 > 3 // Comprobamos limite del estado del CHR
{
&Estado_CHR2 = 2 // 2 -> Inicia CHR o continàºa 3 -> STOP Cronà³metro.
}
If &Estado_CHR2 <> 2
{
&PARPADEO_D2 = 2
}
}
}
}
Var 4086, name SW_ET2, Link IOCARD_SW, Device 16, Input 6, type P // Botà³n ET
{
if &CHR_ET_ToDisp2 = -1
{
&CHR_ET_ToDisp2 = 0
&Aguja_Segs2 = 0
&DECIMAL_C2 = 1
&DECIMAL_D2 = 1
}
else
{
&DECIMAL_C2 = 0
Call &Ver_ET2
If &CHR_ET_ToDisp2 = 0 // Venimos de la Funcià³n CHR
{
&CHR_ET_ToDisp2 = 1 // Acivamos control sobre el display para ET
}
else // Ya estabamos en la funcià³n ET
{
&Estado_ET2 = &Estado_ET2 + 1 // Cambiamos el estado de ET
}
If &Estado_ET2 > 3 // Comprobamos limite del estado del ET
{
&Estado_ET2 = 2 // 2 -> Inicia ET o continàºa 3 -> STOP ET
}
If &Estado_ET2 <> 2
{
&PARPADEO_D2 = 2
}
}
}
Var 4088, Link IOCARD_SW, Device 16, Input 5, type P // Botà³n RST
{
if &SW_CHR2 = 1
{
&CHR_ET_ToDisp2 = -1
&Estado_CHR2 = 1
&Estado_ET2 = 1
&DECIMAL_C2 = 1
&Aguja_Segs2 = 45
&Disp_DWN_Min2 = -999999
&Disp_DWN_Sec2 = -999999
&DECIMAL_D2 = 0
&CHR_Min2 = 0
&CHR_Sec2 = 0
&ET_Hr2 = 0
&ET_Min2 = 0
&ET_Sec2 = 0
&DECIMAL_C2 = 0
}
else
{
if &CHR_ET_ToDisp2 = -1
{
&CHR_ET_ToDisp2 = 0
&Aguja_Segs2 = 0
&DECIMAL_C2 = 1
&DECIMAL_D2 = 1
}
else
{
If &CHR_ET_ToDisp2 = 0
{
&CHR_Min2 = 0 // Ponemos a cero los minutos del CHR
&CHR_Sec2 = 0 // Ponemos a cero los segundos del CHR
&Aguja_Segs2 = 0
Call &Ver_CHR2
}
else
{
&ET_Hr2 = 0 // Ponemos a cero la hora del ET
&ET_Min2 = 0 // Ponemos a cero los minutos del ET
&ET_Sec2 = 0 // Ponemos a cero los segundos del ET
Call &Ver_ET2
}
}
}
}
Var 4090, Link IOCARD_SW, Device 16, Input 3, type P // Botà³n +
{
IF &Modif_Year2 = 1 // Si estamos en activacion del control del aà±o
{
&Year_to_Modif2 = &Year_to_Modif2 + 1
&Disp_Year2 = &Year_to_Modif2
}
IF &Modif_DDMM2 = 1 // Si estamos en activacion del control del Mes
{
&MM_to_Modif2 = &MM_to_Modif2 + 1
If &MM_to_Modif2 > 12
{
&MM_to_Modif2 = 1
}
&DispMonthMin2 = &MM_to_Modif2
}
IF &Modif_DDMM2 = 2 // Si estamos en activacion del control del Dàa
{
&DD_to_Modif2 = &DD_to_Modif2 + 1
If &DD_to_Modif2 > &Limit_DD_Mes2
{
&DD_to_Modif2 = 1
}
&Disp_Day_Hour2 = &DD_to_Modif2
}
IF &Modif_HHMM2 = 1 // Si estamos en activacion del control de Minutos
{
&MI_to_Modif2 = &MI_to_Modif2 + 1
If &MI_to_Modif2 > 59
{
&MI_to_Modif2 = 0
}
&DispMonthMin2 = &MI_to_Modif2
}
IF &Modif_HHMM2 = 2 // Si estamos en activacion del control de Horas
{
&HH_to_Modif2 = &HH_to_Modif2 + 1
If &HH_to_Modif2 > 23
{
&HH_to_Modif2 = 0
}
&Disp_Day_Hour2 = &HH_to_Modif2
}
}
Var 4092, Link IOCARD_SW, Device 16, Input 4, type P // Botà³n -
{
IF &Modif_Year2 = 1 // Si estamos en activacion del control del aà±o
{
&Year_to_Modif2 = &Year_to_Modif2 - 1
&Disp_Year2 = &Year_to_Modif2
}
IF &Modif_DDMM2 = 1 // Si estamos en activacion del control del Mes
{
&MM_to_Modif2 = &MM_to_Modif2 - 1
If &MM_to_Modif2 < 1
{
&MM_to_Modif2 = 12
}
&DispMonthMin2 = &MM_to_Modif2
}
IF &Modif_DDMM2 = 2 // Si estamos en activacion del control del Dàa
{
&DD_to_Modif2 = &DD_to_Modif2 - 1
If &DD_to_Modif2 < 1
{
&DD_to_Modif2 = &Limit_DD_Mes2
}
&Disp_Day_Hour2 = &DD_to_Modif2
}
IF &Modif_HHMM2 = 1 // Si estamos en activacion del control de Minutos
{
&MI_to_Modif2 = &MI_to_Modif2 - 1
If &MI_to_Modif2 < 0
{
&MI_to_Modif2 = 59
}
&DispMonthMin2 = &MI_to_Modif2
}
IF &Modif_HHMM2 = 2 // Si estamos en activacion del control de Horas
{
&HH_to_Modif2 = &HH_to_Modif2 - 1
If &HH_to_Modif2 < 0
{
&HH_to_Modif2 = 23
}
&Disp_Day_Hour2 = &HH_to_Modif2
}
}
// /////////////////////////////////////////////////////////////////////////////////////////
// SUBRUTINAS
// /////////////////////////////////////////////////////////////////////////////////////////
Var 4094, name Show_Display2, Link SUBRUTINE // Muestra el aà±o
{
&PARPADEO_U2 = 0
IF &2Date_Year = 1 // Visualizo el aà±o
{
&Disp_Year2 = -999999 // Apagamos el aà±o
&Disp_Year2 = &Zulu_Year_Set2
}
IF &2Date_Year = 2 // Visualizo el dia y mes
{
&Disp_Day_Hour2 = &DayofMonth2
&DispMonthMin2 = &Current_Month2
&PARPADEO_U2 = 2
}
IF &2Date_Year = 3 // Visualizo la hora Zulu y Minutos
{
&Disp_Day_Hour2 = &Zulu_Hour2
&DispMonthMin2 = &Zulu_Minute2
&PARPADEO_U2 = 1
}
IF &2Date_Year = 4 // Visualizo Minutos y Segundos
{
&Disp_Day_Hour2 = &Zulu_Minute2
&DispMonthMin2 = &Clock_Seconds2
&PARPADEO_U2 = 1
}
}
Var 4096, name Ver_CHR2, Link SUBRUTINE // Pasa CHR al display
{
&Disp_DWN_Min2 = &CHR_Min2 // Mostramos los minutos del CHR en Display Down
&Disp_DWN_Sec2 = &CHR_Sec2 // Mostramos los minutos del CHR en Display Down
}
Var 4098, name Ver_ET2, Link SUBRUTINE // Pasa ET al display
{
If &ET_Hr2 = 0 // Durante la primera hora mostramos MM:SS
{
&Disp_DWN_Min2 = &ET_Min2 // Mostramos los minutos del ET en Display Down
&Disp_DWN_Sec2 = &ET_Sec2 // Mostramos los segundos del ET en Display Down
}
else // Despues mostramos HH:MM
{
&Disp_DWN_Min2 = &ET_Hr2 // Mostramos la hora del ET en Display Down
&Disp_DWN_Sec2 = &ET_Min2 // Mostramos los minutos del ET en Display Down
}
}
Var 4100, name Chk_Bisiesto2, Link SUBRUTINE // Comprueba si el aà±o es bisis'esto
{
L0 = MOD &Zulu_Year_Set2 ,4 // L0 acumula el resto de la divisià³n
IF L0 = 0
{
&Chk_Bisiesto2 = 1 // No Bisiesto = 0 Bisiesto = 1
}
ELSE
{
L0 = MOD &Zulu_Year_Set2 ,400
IF L0 = 0
{
L0 = MOD &Zulu_Year_Set2 ,100
IF L0 = 0
{
&Chk_Bisiesto2 = 1 // No Bisiesto = 0 Bisiesto = 1
}
ELSE
{
&Chk_Bisiesto2 = 0 // No Bisiesto = 0 Bisiesto = 1
}
}
ELSE
{
&Chk_Bisiesto2 = 0 // No Bisiesto = 0 Bisiesto = 1
}
}
}
Var 4102, name Chk_DiasMes2, Link SUBRUTINE // Calcula cuantos dàas tiene el mes
// 31 dàas tienen ENE, MAR, MAY, JUL, AGO, OCT, DIC
// 30 dàas tienen ABR, JUN, SEP, NOV
// 28 dàas tiene FEB excepto los bisiestos que tiene 29
{
If &MM_to_Modif2 = 1 // ENE
{
&Limit_DD_Mes2 = 31
}
If &MM_to_Modif2 = 2 // FEB
{
If &Chk_Bisiesto2 = 0 // Si no es bisiesto
{
&Limit_DD_Mes2 = 28
}
else // Si es bisiesto
{
&Limit_DD_Mes2 = 29
}
}
If &MM_to_Modif2 = 3 // MAR
{
&Limit_DD_Mes2 = 31
}
If &MM_to_Modif2 = 4 // ABR
{
&Limit_DD_Mes2 = 30
}
If &MM_to_Modif2 = 5 // MAY
{
&Limit_DD_Mes2 = 31
}
If &MM_to_Modif2 = 6 // JUN
{
&Limit_DD_Mes2 = 30
}
If &MM_to_Modif2 = 7 // JUL
{
&Limit_DD_Mes2 = 31
}
If &MM_to_Modif2 = 8 // AGO
{
&Limit_DD_Mes2 = 31
}
If &MM_to_Modif2 = 9 // SEP
{
&Limit_DD_Mes2 = 30
}
If &MM_to_Modif2 = 10 // OCT
{
&Limit_DD_Mes2 = 31
}
If &MM_to_Modif2 = 11 // NOV
{
&Limit_DD_Mes2 = 30
}
If &MM_to_Modif2 = 12 // DIC
{
&Limit_DD_Mes2 = 31
}
}
Var 4104, name Calc_DayYear2, Link SUBRUTINE // Calcula el dia del mes en relacion al aà±o total
// // Asà el 1 de ENE es el Calc_DayYear2 = 1 y el
// // 31 de DIC es el 365 excepto en bisiesto que es el 366
{
If &MM_to_Modif2 = 1 // ENE 31
{
&DayofYear2 = &DD_to_Modif2 // Paso a Calc_DayYear2 el dàa del mes de Enero
}
If &MM_to_Modif2 = 2 // FEB 28
{
&DayofYear2 = &DD_to_Modif2 + 31 // Le sumo a los dàas del mes los del mes anterior
}
If &MM_to_Modif2 = 3 // MAR 31
{
&DayofYear2 = &DD_to_Modif2 + 59 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif2 = 4 // ABR 30
{
&DayofYear2 = &DD_to_Modif2 + 90 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif2 = 5 // MAY 31
{
&DayofYear2 = &DD_to_Modif2 + 120 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif2 = 6 // JUN 30
{
&DayofYear2 = &DD_to_Modif2 + 151 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif2 = 7 // JUL 31
{
&DayofYear2 = &DD_to_Modif2 + 181 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif2 = 8 // AGO 31
{
&DayofYear2 = &DD_to_Modif2 + 212 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif2 = 9 // SEP 30
{
&DayofYear2 = &DD_to_Modif2 + 243 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif2 = 10 // OCT 31
{
&DayofYear2 = &DD_to_Modif2 + 273 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif2 = 11 // NOV 30
{
&DayofYear2 = &DD_to_Modif2 + 304 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif2 = 12 // DIC 31
{
&DayofYear2 = &DD_to_Modif2 + 334 // Le sumo a los dàas del mes los de los meses anteriores
}
If &MM_to_Modif2 > 1
{
If &Chk_Bisiesto2 = 1 // Si es bisiesto
{
&DayofYear2 = &DayofYear2 + 1
}
}
&Current_Month2 = &MM_to_Modif2
&DayofMonth2 = &DD_to_Modif2
}
Var 4106, name BLINK3, Link SUBRUTINE
{
IF &BLINK3 = 0
{
IF &PARPADEO_U2 = 0 // No parpadea y queda apagado
{
&DECIMAL_U2 = 0
}
IF &PARPADEO_U2 = 1 // Parpadea
{
&DECIMAL_U2 = 1
&BLINK3 = DELAY 1, 50
}
IF &PARPADEO_U2 = 2 // No parpadea y queda encendido
{
&DECIMAL_U2 = 1
}
}
ELSE
{
IF &PARPADEO_U2 = 0
{
&DECIMAL_U2 = 0
}
IF &PARPADEO_U2 = 1
{
&DECIMAL_U2 = 0
}
IF &PARPADEO_U2 = 2
{
&DECIMAL_U2 = 1
}
}
}
Var 4108, name BLINK4, Link SUBRUTINE
{
IF &BLINK4 = 0
{
IF &PARPADEO_D2 = 0 // No parpadea y queda apagado
{
&DECIMAL_D2 = 0
}
IF &PARPADEO_D2 = 1 // Parpadea
{
&DECIMAL_D2 = 1
&BLINK4 = DELAY 1, 50
}
IF &PARPADEO_D2 = 2 // No parpadea y queda encendido
{
&DECIMAL_D2 = 1
}
}
ELSE
{
IF &PARPADEO_D2 = 0
{
&DECIMAL_D2 = 0
}
IF &PARPADEO_D2 = 1
{
&DECIMAL_D2 = 0
}
IF &PARPADEO_D2 = 2
{
&DECIMAL_D2 = 1
}
}
}
// //////////////////////////////////
// END CHRONO F/O
// //////////////////////////////////
// /////////////////////////////////////////////////////////
// FRONTAL INPUTS AND OUTPUTS
// /////////////////////////////////////////////////////////
// N1 SET, FLAPS & AUTOBRAKES
// FLAPS OUTPUTS
Var 2020, name MIproblèmeRAKEDIS_O, Link IOCARD_OUT, DEVICE 17, Output 21 // AUTO BRAKE DISARM INDICATOR
Var 2022, name MIPANTI_SKID_O, Link IOCARD_OUT, DEVICE 17, Output 22 // ANTI SKID INOP INDICATOR
Var 2024, name MIPFLAPTRANS_O, Link IOCARD_OUT, DEVICE 17, Output 23 // LE FLAPS TRANSIT INDICATOR
Var 2026, name MIPFLAPSEXT_O, Link IOCARD_OUT, DEVICE 17, Output 24 // LE FLAPS EXTENDED INDICATOR
// INPUTS
// N1 SET
Var 2028, name N1SET2_I, Link IOCARD_SW, DEVICE 17, Input 36 // N1 SET ROTARY SWITCH POSITION 2
Var 2030, name N1SET1_I, Link IOCARD_SW, DEVICE 17, Input 37 // N1 SET ROTARY SWITCH POSITION 1
Var 2032, name N1SETAUTO_I, Link IOCARD_SW, DEVICE 17, Input 38 // N1 SET ROTARY SWITCH POSITION AUTO
Var 2034, name N1SETBOTH_I, Link IOCARD_SW, DEVICE 17, Input 39 // N1 SET ROTARY SWITCH POSITION BOTH
Var 2036, name N1SETENC_I, Link IOCARD_SW, DEVICE 17, Input 40 // N1 SET ENCODER INPUT
// FUEL FLOW
Var 2038, name FUEL_USED_I, Link IOCARD_SW, DEVICE 17, Input 42 // FUEL FLOW SWITCH USED
Var 2040, name FUEL_RESET_I, Link IOCARD_SW, DEVICE 17, Input 43 // FUEL FLOW SWITCH RESET
// SPD REF
Var 2042, name SPD_AUTO_I, Link IOCARD_SW, DEVICE 17, Input 45 // SPD REF ROTARY SWITCH POSITION AUTO
Var 2044, name SPD_V1_I, Link IOCARD_SW, DEVICE 17, Input 46 // SPD REF ROTARY SWITCH POSITION V1
Var 2046, name SPD_VR_I, Link IOCARD_SW, DEVICE 17, Input 47 // SPD REF ROTARY SWITCH POSITION VR
Var 2048, name SPD_WT_I, Link IOCARD_SW, DEVICE 17, Input 48 // SPD REF ROTARY SWITCH POSITION WT
Var 2050, name SPD_VREF_I, Link IOCARD_SW, DEVICE 17, Input 49 // SPD REF ROTARY SWITCH POSITION VREF
Var 2052, name SPD_A_I, Link IOCARD_SW, DEVICE 17, Input 50 // SPD REF ROTARY SWITCH POSITION TRIANGLE
Var 2054, name SPD_SET_I, Link IOCARD_SW, DEVICE 17, Input 51 // SPD REF ROTARY SWITCH POSITION SET
Var 2056, name SPD_ENC_I, Link IOCARD_SW, DEVICE 17, Input 52 // SPD REF ENCODER INPUT
// AUTO BRAKE
Var 2058, name BRAKE_RTO_I, Link IOCARD_SW, DEVICE 17, Input 54 // AUTO BRAKE ROTARY SWITCH POSITION RTO
Var 2060, name BRAKE_OFF_I, Link IOCARD_SW, DEVICE 17, Input 55 // AUTO BRAKE ROTARY SWITCH POSITION OFF
Var 2062, name BRAKE_1_I, Link IOCARD_SW, DEVICE 17, Input 56 // AUTO BRAKE ROTARY SWITCH POSITION 1
Var 2064, name BRAKE_2_I, Link IOCARD_SW, DEVICE 17, Input 57 // AUTO BRAKE ROTARY SWITCH POSITION 2
Var 2066, name BRAKE_3_I, Link IOCARD_SW, DEVICE 17, Input 58 // AUTO BRAKE ROTARY SWITCH POSITION 3
Var 2068, name BRAKE_MAX_I, Link IOCARD_SW, DEVICE 17, Input 59 // AUTO BRAKE ROTARY SWITCH POSITION MAX
// MFD
Var 2070, name MFD_ENG_I, Link IOCARD_SW, DEVICE 17, Input 60 // MFD ENG MOMENTARY SWITCH BUTTON
Var 2072, name MFD_SYS_I, Link IOCARD_SW, DEVICE 17, Input 61 // MFD SYS MOMENTARY SWITCH BUTTON
// SERVOS
Var 2074, name SERVO_YAW, Link USB_SERVOS, Device 18, Output 1, PosL 185, PosC 400, PosR 675, Type 1 // YAW DAMPER GAUGE.
Var 2075, name SERVO_FLAPL, Link USB_SERVOS, Device 18, Output 2, PosL 200, PosC 630, PosR 1023, Type 1 // LEFT NEEDLE FLAPS GAUGE SERVO.
Var 2076, name SERVO_FLAPR, Link USB_SERVOS, Device 18, Output 3, PosL 170, PosC 600, PosR 1023, Type 1 // RIGHT NEEDLE FLAPS GAUGE SERVO.
Var 2077, name SERVO_BRAKE, Link USB_SERVOS, Device 18, Output 4, PosL 200, PosC 600, PosR 972, Type 1 // BRAKE PRESS GAUGE SERVO.
// NOSE WHEEL
Var 2078, name NOSEWHEEL_I, Link IOCARD_SW, DEVICE 17, Input 66 // NOSE WHEEL SWITCH
// DU LEFT
Var 2080, name DUL_OUTBD_I, Link IOCARD_SW, DEVICE 17, Input 0 // DU LEFT ROTARY SWITCH POSITION "MAIN OUTBD PFD"
Var 2082, name DUL_MAINNORM_I, Link IOCARD_SW, DEVICE 17, Input 1 // DU LEFT ROTARY SWITCH POSITION "MAIN NORM"
Var 2084, name DUL_MAINENG_I, Link IOCARD_SW, DEVICE 17, Input 2 // DU LEFT ROTARY SWITCH POSITION "MAIN ENG PRI"
Var 2086, name DUL_MAINPFD_I, Link IOCARD_SW, DEVICE 17, Input 3 // DU LEFT ROTARY SWITCH POSITION "MAIN PFD"
Var 2088, name DUL_MAINMFD_I, Link IOCARD_SW, DEVICE 17, Input 4 // DU LEFT ROTARY SWITCH POSITION "MAIN MFD"
Var 2090, name DUL_LOWENG_I, Link IOCARD_SW, DEVICE 17, Input 5 // DU LEFT ROTARY SWITCH POSITION "LOWER ENG PRI"
Var 2092, name DUL_LOWNORM_I, Link IOCARD_SW, DEVICE 17, Input 6 // DU LEFT ROTARY SWITCH POSITION "LOWER NORM"
Var 2094, name DUL_LOWND_I, Link IOCARD_SW, DEVICE 17, Input 7 // DU LEFT ROTARY SWITCH POSITION "LOWER ND"
// DU RIGHT
Var 2096, name DUR_LOWND_I, Link IOCARD_SW, DEVICE 17, Input 9 // DU RIGHT ROTARY SWITCH POSITION "LOWER ND"
Var 2098, name DUR_LOWNORM_I, Link IOCARD_SW, DEVICE 17, Input 10 // DU RIGHT ROTARY SWITCH POSITION "LOWER NORM"
Var 2100, name DUR_LOWENG_I, Link IOCARD_SW, DEVICE 17, Input 11 // DU RIGHT ROTARY SWITCH POSITION "LOWER ENG PRI"
Var 2102, name DUR_MAINMFD_I, Link IOCARD_SW, DEVICE 17, Input 12 // DU RIGHT ROTARY SWITCH POSITION "MAIN MFD"
Var 2104, name DUR_MAINPFD_I, Link IOCARD_SW, DEVICE 17, Input 13 // DU RIGHT ROTARY SWITCH POSITION "MAIN PFD"
Var 2106, name DUR_MAINENG_I, Link IOCARD_SW, DEVICE 17, Input 14 // DU RIGHT ROTARY SWITCH POSITION "MAIN ENG PRI"
Var 2108, name DUR_MAINNORM_I, Link IOCARD_SW, DEVICE 17, Input 15 // DU RIGHT ROTARY SWITCH POSITION "NORM"
Var 2110, name DUR_OUTBD_I, Link IOCARD_SW, DEVICE 17, Input 16 // DU RIGHT ROTARY SWITCH POSITION "OUTBD PFD"
// AFDS LEFT INPUTS
Var 2112, name AFDSAP_L_I, Link IOCARD_SW, DEVICE 17, Input 18 // AFDS LEFT SWITCH "AP/P/RST"
Var 2114, name AFDSAT_L_I, Link IOCARD_SW, DEVICE 17, Input 19 // AFDS LEFT SWITCH "AT/P/RST"
Var 2116, name AFDSFMC_L_I, Link IOCARD_SW, DEVICE 17, Input 20 // AFDS LEFT SWITCH "FMC/P/RST"
Var 2120, name AFDST1_L_I, Link IOCARD_SW, DEVICE 17, Input 21 // AFDS LEFT SWITCH "TEST 1"
Var 2122, name AFDST2_L_I, Link IOCARD_SW, DEVICE 17, Input 22 // AFDS LEFT SWITCH "TEST 2"
// AFDS RIGHT INPUTS
Var 2124, name AFDSAP_R_I, Link IOCARD_SW, DEVICE 17, Input 27 // AFDS RIGHT SWITCH "AP/P/RST"
Var 2126, name AFDSAT_R_I, Link IOCARD_SW, DEVICE 17, Input 28 // AFDS RIGHT SWITCH "AT/P/RST"
Var 2128, name AFDSFMC_R_I, Link IOCARD_SW, DEVICE 17, Input 29 // AFDS RIGHT SWITCH "FMC/P/RST"
Var 2130, name AFDST1_R_I, Link IOCARD_SW, DEVICE 17, Input 30 // AFDS RIGHT SWITCH "TEST 1"
Var 2132, name AFDST2_R_I, Link IOCARD_SW, DEVICE 17, Input 31 // AFDS RIGHT SWITCH "TEST 2"
// FIRE WARNINGS INPUTS
Var 2134, name FIREW_L_I, Link IOCARD_SW, DEVICE 17, Input 63 // LEFT FIRE WARNING MOMENTARY SWITCH
Var 2136, name FIREW_R_I, Link IOCARD_SW, DEVICE 17, Input 23 // RIGHT FIRE WARNING MOMENTARY SWITCH
// MASTER CAUTIONS INPUTS
Var 2138, name MASTERC_L_I, Link IOCARD_SW, DEVICE 17, Input 64 // LEFT MASTER CAUTION MOMENTARY SWITCH
Var 2140, name MASTERC_R_I, Link IOCARD_SW, DEVICE 17, Input 17 // RIGHT MASTER CAUTION MOMENTARY SWITCH
// SIXPACKS INPUTS
Var 2142, name SIXPACK_L_I, Link IOCARD_SW, DEVICE 17, Input 65 // LEFT SIXPACK MOMENTARY SWITCH
Var 2144, name SIXPACK_R_I, Link IOCARD_SW, DEVICE 17, Input 8 // RIGHT SIXPACK MOMENTARY SWITCH
// LIGHTS TEST
Var 2146, name MIPDIMTEST_I, Link IOCARD_SW, DEVICE 17, Input 67 // MIP LIGHTS TEST MOMENTARY SWITCH POSITION "DIM"
Var 2148, name MIPTESTTEST_I, Link IOCARD_SW, DEVICE 17, Input 68 // MIP LIGHTS TEST MOMENTARY SWITCH POSITION "TEST"
// LANDING GEAR INPUTS
Var 2150, name GEARL_UP_I, Link IOCARD_SW, DEVICE 17, Input 69 // LANDING GEAR SWITCH "UP" POSITION
Var 2152, name GEARL_DW_I, Link IOCARD_SW, DEVICE 17, Input 70 // LANDING GEAR SWITCH "DW" POSITION
// MISCELANIOUS INPUTS
Var 2154, name SIXPACKFO_I, Link IOCARD_SW, DEVICE 17, Input 8 // F/O SIXPACK SWITCH
Var 2156, name MASTERCAUTFO_I, Link IOCARD_SW, DEVICE 17, Input 17 // F/O MASTER CAUTION SWITCH
Var 2158, name FIREWARNFO_I, Link IOCARD_SW, DEVICE 17, Input 23 // F/O FIRE WARNING SWITCH
Var 2166, name GRDPROXSYST_I, Link IOCARD_SW, DEVICE 17, Input 32 // GROUND PROXIMITY SYS TEST SWITCH
Var 2168, name GRDPROXFLAP_I, Link IOCARD_SW, DEVICE 17, Input 33 // GROUND PROXIMITY FLAP INHIBIT SWITCH
Var 2170, name GRDPROXGEAR_I, Link IOCARD_SW, DEVICE 17, Input 34 // GROUND PROXIMITY GEAR INHIBIT SWITCH
Var 2172, name GRDPROXTERR_I, Link IOCARD_SW, DEVICE 17, Input 35 // GROUND PROXIMITY TERR INHIBIT SWITCH
// FREE INPUTS
Var 2160, name FREE_1_I, Link IOCARD_SW, DEVICE 17, Input 24 // FREE INPUT
Var 2162, name FREE_2_I, Link IOCARD_SW, DEVICE 17, Input 25 // FREE INPUT
Var 2164, name FREE_3_I, Link IOCARD_SW, DEVICE 17, Input 26 // FREE INPUT
Var 2174, name FREE_4_I, Link IOCARD_SW, DEVICE 17, Input 44 // FREE INPUT
Var 2176, name FREE_5_I, Link IOCARD_SW, DEVICE 17, Input 62 // FREE INPUT
Var 2178, name FREE_6_I, Link IOCARD_SW, DEVICE 17, Input 71 // FREE INPUT
// AFDS LEFT OUTPUTS
Var 2180, name AFDSAPG_L_O, Link IOCARD_OUT, DEVICE 17, Output 11 // AFDS LEFT GREEN AP/P/RST LED
Var 2182, name AFDSAPR_L_O, Link IOCARD_OUT, DEVICE 17, Output 12 // AFDS LEFT "RED AP/P/RST LED"
Var 2184, name AFDSATG_L_O, Link IOCARD_OUT, DEVICE 17, Output 13 // AFDS LEFT "GREEN AT/P/RST LED"
Var 2186, name AFDSATR_L_O, Link IOCARD_OUT, DEVICE 17, Output 14 // AFDS LEFT "RED AT/P/RST LED"
Var 2188, name AFDSFMCG_L_O, Link IOCARD_OUT, DEVICE 17, Output 15 // AFDS LEFT "GREEN FMC/P/RST LED"
// AFDS RIGHT OUTPUTS
Var 2190, name AFDSAPG_R_O, Link IOCARD_OUT, DEVICE 17, Output 16 // AFDS RIGHT "GREEN AP/P/RST LED"
Var 2192, name AFDSAPR_R_O, Link IOCARD_OUT, DEVICE 17, Output 17 // AFDS RIGHT "RED AP/P/RST LED"
Var 2194, name AFDSATG_R_O, Link IOCARD_OUT, DEVICE 17, Output 18 // AFDS RIGHT "GREEN AT/P/RST LED"
Var 2196, name AFDSATR_R_O, Link IOCARD_OUT, DEVICE 17, Output 19 // AFDS RIGHT "RED AT/P/RST LED"
Var 2198, name AFDSFMCG_R_O, Link IOCARD_OUT, DEVICE 17, Output 20 // AFDS RIGHT "GREEN FMC/P/RST LED"
// FIRE WARNINGS OUTPUTS
Var 2200, name FIREW_L_O, Link IOCARD_OUT, DEVICE 17, Output 25 // LEFT FIRE WARNING INDICATOR
Var 2202, name FIREW_R_O, Link IOCARD_OUT, DEVICE 17, Output 50 // RIGHT FIRE WARNING INDICATOR
// MASTER CAUTIONS OUTPUTS
Var 2204, name MASTERC_L_O, Link IOCARD_OUT, DEVICE 17, Output 26 // LEFT MASTER CAUTION INDICATOR
Var 2206, name MASTERC_R_O, Link IOCARD_OUT, DEVICE 17, Output 49 // RIGHT MASTER CAUTION INDICATOR
// SIXPACKS OUTPUTS
// LEFT
Var 2208, name SIXPFLT_L_O, Link IOCARD_OUT, DEVICE 17, Output 27 // LEFT SIXPACK FLT CONT INDICATOR
Var 2210, name SIXPELE_L_O, Link IOCARD_OUT, DEVICE 17, Output 28 // LEFT SIXPACK ELEC INDICATOR
Var 2212, name SIXPIRS_L_O, Link IOCARD_OUT, DEVICE 17, Output 29 // LEFT SIXPACK IRS INDICATOR
Var 2214, name SIXPAPU_L_O, Link IOCARD_OUT, DEVICE 17, Output 30 // LEFT SIXPACK APU INDICATOR
Var 2216, name SIXPFUEL_L_O, Link IOCARD_OUT, DEVICE 17, Output 31 // LEFT SIXPACK FUEL INDICATOR
Var 2218, name SIXPOVHT_L_O, Link IOCARD_OUT, DEVICE 17, Output 32 // LEFT SIXPACK OVHT/DET INDICATOR
// RIGHT
Var 2220, name SIXPICE_R_O, Link IOCARD_OUT, DEVICE 17, Output 43 // RIGHT LEFT SIXPACK ANTI-ICE INDICATOR
Var 2222, name SIXPENG_R_O, Link IOCARD_OUT, DEVICE 17, Output 44 // RIGHT SIXPACK ENG INDICATOR
Var 2224, name SIXPHYD_R_O, Link IOCARD_OUT, DEVICE 17, Output 45 // RIGHT SIXPACK HYD INDICATOR
Var 2226, name SIXPOVE_R_O, Link IOCARD_OUT, DEVICE 17, Output 46 // RIGHT SIXPACK OVERHEAD INDICATOR
Var 2228, name SIXPDOO_R_O, Link IOCARD_OUT, DEVICE 17, Output 47 // RIGHT SIXPACK DOORS INDICATOR
Var 2230, name SIXPAIR_R_O, Link IOCARD_OUT, DEVICE 17, Output 48 // RIGHT SIXPACK AIR COND INDICATOR
// MISCELLANIOUS OUTPUTS-INDICATORS
Var 2232, name BELOW_L_O, Link IOCARD_OUT, DEVICE 17, Output 33 // LEFT BELOW G/S P-INHIBIT INDICATOR
Var 2234, name SPDBKARM_O, Link IOCARD_OUT, DEVICE 17, Output 34 // SPEED BRAKE ARMED INDICATOR
Var 2236, name SPDBKNARM_O, Link IOCARD_OUT, DEVICE 17, Output 35 // SPEED BRAKE DO NOT ARM INDICATOR
Var 2238, name STABOUT_O, Link IOCARD_OUT, DEVICE 17, Output 36 // STAB OUT OF TRIM KORRY INDICATOR
Var 2240, name NOSEG_UP_O, Link IOCARD_OUT, DEVICE 17, Output 37 // NOSE GEAR UP INDICATOR
Var 2242, name NOSEG_DW_O, Link IOCARD_OUT, DEVICE 17, Output 38 // NOSE GEAR DW INDICATOR
Var 2244, name LEFTG_UP_O, Link IOCARD_OUT, DEVICE 17, Output 39 // LEFT GEAR UP INDICATOR
Var 2246, name RIGHTG_UP_O, Link IOCARD_OUT, DEVICE 17, Output 40 // RIGHT GEAR UP INDICATOR
Var 2248, name LEFTG_DW_O, Link IOCARD_OUT, DEVICE 17, Output 41 // LEFT GEAR DW INDICATOR
Var 2250, name RIGHTG_DW_O, Link IOCARD_OUT, DEVICE 17, Output 42 // RIGHT GEAR DW INDICATOR
Var 2252, name SPDBKEXT_O, Link IOCARD_OUT, DEVICE 17, Output 51 // SPEED BRAKE EXTENDED
Var 2254, name BELOW_R_O, Link IOCARD_OUT, DEVICE 17, Output 52 // RIGHT-F/O BELOW G/S P-INHIBIT INDICATOR
Var 2256, name GPWSINOP_O, Link IOCARD_OUT, DEVICE 17, Output 53 // GPWS INOP INDICATOR
// FREE OUTPUTS
Var 2258, name FREE_1_O, Link IOCARD_OUT, DEVICE 17, Output 54 // FREE OUTPUT
Var 2260, name FREE_2_O, Link IOCARD_OUT, DEVICE 17, Output 55 // FREE OUTPUT