Can't get Chrono working with EFIS and MCPv3 modules (SOLVED

Forum for the OC4BA v2/v3 and OC4BAConfig including the OCP4NGX driver
Post Reply
CAVENEY747
Posts: 37
Joined: Sat Apr 02, 2016 1:43 pm
Location: Scotland

Can't get Chrono working with EFIS and MCPv3 modules (SOLVED

Post by CAVENEY747 »

Hello
I am new to this software and Open Cockpit modules so I am probably just being stupid! The problem I have is that I have three modules in my cockpit - a Chronometer, an EFIS and an MCPv3. I have installed all the software as detailed in the text files and I have run the Auto configure program but I cannot get all three modules to work together. They all show up in the cockpit configuration window but I can only get the Chrono to work if I use the OCP4NGX_v4.4OC.ssi script. However when I use this script the EFIS module also works fine but the MCP module doesn't work properly. If I use any of the other scripts, the EFIS and MCP modules work perfectly but the Chrono stops working. I just don't know what to do next. Any help would be much appreciated!
mvr1918
Site Admin
Posts: 1624
Joined: Thu Aug 30, 2012 3:35 pm

Re: Can't get Chrono working with EFIS and MCPv3 modules

Post by mvr1918 »

Hi,

What to do to get the Chronos work:


Start SIOC.exe from your SIOC folder

Start Edit Script from the SIOC window


Go to Files/Open and get OCP4NGX_PP_v2.0.ssi

Export to txt file and save


Open the txt file in Notepad


Add the text below to the bottom of the txt file and save

Now you have the code for the Chronos in the text file and need to recompile to get a new script


Import the modified txt file and it will auto compile

Save with original OCP4NGX_PP_v2.0.ssi name ( in order to not run a new configuration again)


That's it.


---------------------------


Var 5001, 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
}

Var 3010, name Time_Date_Year // Indice para digitos Time-Date-Year

Var 3012, name Modif_Year // Activamos control modificacion año. 0

Var 3014, name Modif_DDMM // Activamos control modificacion Dia.Mes -

Var 3015, name Modif_HHMM // Activamos control modificacion Hora.Minu

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 d

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 -

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 Tim

Var 3036, name Estado_ET // COntrola el estado del Botón ET. 0 ->

Var 3037, name Limit_DD_Mes // Almacena el total de días que tiene e

Var 3038, name DayofYear // Almacena el día del año

Var 3039, name M_MOTOR, Link IOCARD_MOTOR, Device 16, 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

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
{
&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 mod
{
&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 mod
{
&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 mod
{
&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 mod
{
&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 C
}
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 inferio
{
CALL &Ver_CHR
}
ELSE // Mostramos el ET en los displays inferior
{
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

Var 3058, name Day_of_Month, Link FSUIPC_IN, Offset $023D, Length 1 // Día del mes correspondiente. Sólo
{
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
}

Var 0900, name Disp_Year, Link IOCARD_DISPLAY, Device 16, Digit 0, Numbers 4 // UP Displays Year

Var 0901, name Disp_Day_Hour, Link IOCARD_DISPLAY, Device 16, Digit 2, Numbers 2 // UP Displays Day or Hour

Var 0902, name Disp_Month_Min, Link IOCARD_DISPLAY, Device 16, Digit 0, Numbers 2 // UP Displays Month or Minutes

Var 0904, name Disp_DWN_Min, Link IOCARD_DISPLAY, Device 16, Digit 6, Numbers 2 // Down Displays CHR - ET -> Min

Var 0905, name Disp_DWN_Sec, Link IOCARD_DISPLAY, Device 16, Digit 4, Numbers 2 // Down Displays CHR - ET -> Sec

Var 0908, name D_CHRBRIGHT, Link IOCARD_DISPLAY, Device 16, Digit 16, Numbers 3

Var 0913, name DECIMAL_U, Link IOCARD_OUT, Device 16, Output 20

Var 0914, name DECIMAL_D, Link IOCARD_OUT, Device 16, Output 21

Var 0915, name DECIMAL_C, Link IOCARD_OUT, Device 16, Output 22

Var 0916, name SW_Time_Date, Link IOCARD_SW, Device 16, Input 1, Type P // Botón TIME-DATE
{
IF &Modif_Year = 0 // Si NO estamos en activacion del control
{
&Time_Date_Year = &Time_Date_Year + 1
IF &Modif_DDMM > 0 // Si estoy modificando dia del mes o el me
{
&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 correspond
IF &Estado_CHR = 3 // Si el CHR esta parado
{
}
}

Var 0917, name SW_SET, Link IOCARD_SW, Device 16, 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 modifi
}
ELSE
{
CALL &Chk_Bisiesto // Comprobamos si es bisiesto
CALL &Calc_DayofYear
&Day_of_Year = &DayofYear // Devolvemos el día al FS para que lo m
&Modif_Year = 0 // Desactivamos control modificacion año
&Zulu_Year_Set = &Year_to_Modif // Devolvemos el año al FS para que lo m
CALL &Show_Display // Mostramos el año
}
}
IF &Time_Date_Year = 2 // Si estoy visualizando el dia del mes y e
{
IF &Modif_DDMM = 0 // Si NO estoy modificando dia del mes y el
{
&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
{
CALL &Chk_DiasDelMes // Calculamos cuantos dias tiene el mes que
&Modif_DDMM = 2 // Activamos control modificacion Día
&DD_to_Modif = &Day_of_Month // Pasamos el día a una vble para modifi
&Disp_Month_Min = DELAY &MM_to_Modif ,50
}
ELSE // Terminamos de modificar así que manda
{
CALL &Calc_DayofYear
&Day_of_Year = &DayofYear // Devolvemos el día al FS para que lo m
&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
{
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
{
&Modif_HHMM = 2 // Activamos control modificacion Día
&HH_to_Modif = &Zulu_Hour // Pasamos el día a una vble para modifi
&Disp_Month_Min = DELAY &MI_to_Modif ,50
}
ELSE // Terminamos de modificar así que manda
{
&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 16, 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 C
}
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
}
IF &Estado_CHR <> 2
{
&PARPADEO_D = 2
}
}
}
}

Var 0925, name SW_ET, Link IOCARD_SW, Device 16, 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 E
}
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 E
}
IF &Estado_ET <> 2
{
&PARPADEO_D = 2
}
}
}

Var 0926, Link IOCARD_SW, Device 16, 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 16, Input 3, Type P // Botón +
{
IF &Modif_Year = 1 // Si estamos en activacion del control del
{
&Year_to_Modif = &Year_to_Modif + 1
&Disp_Year = &Year_to_Modif
}
IF &Modif_DDMM = 1 // Si estamos en activacion del control del
{
&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
{
&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
{
&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
{
&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 16, Input 4, Type P // Botón -
{
IF &Modif_Year = 1 // Si estamos en activacion del control del
{
&Year_to_Modif = &Year_to_Modif - 1
&Disp_Year = &Year_to_Modif
}
IF &Modif_DDMM = 1 // Si estamos en activacion del control del
{
&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
{
&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
{
&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
{
&HH_to_Modif = &HH_to_Modif - 1
IF &HH_to_Modif < 0
{
&HH_to_Modif = 23
}
&Disp_Day_Hour = &HH_to_Modif
}
}

Var 3800, 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 3802, name Ver_CHR, Link SUBRUTINE // Pasa CHR al display
{
&Disp_DWN_Min = &CHR_Min // Mostramos los minutos del CHR en Display
&Disp_DWN_Sec = &CHR_Sec // Mostramos los minutos del CHR en Display
}

Var 3804, 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
&Disp_DWN_Sec = &ET_Sec // Mostramos los segundos del ET en Display
}
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
}
}

Var 3806, name Chk_Bisiesto, Link SUBRUTINE // Comprueba si el año es bisisesto
{
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 3808, name Chk_DiasDelMes, Link SUBRUTINE // Calcula cuantos días tiene el mes
{
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 3810, name Calc_DayofYear, Link SUBRUTINE // Calcula el dia del mes en relacion al aÃ
{
IF &MM_to_Modif = 1 // ENE 31
{
&DayofYear = &DD_to_Modif // Paso a Calc_DayofYear el día del mes
}
IF &MM_to_Modif = 2 // FEB 28
{
&DayofYear = &DD_to_Modif + 31 // Le sumo a los días del mes los del me
}
IF &MM_to_Modif = 3 // MAR 31
{
&DayofYear = &DD_to_Modif + 59 // Le sumo a los días del mes los de los
}
IF &MM_to_Modif = 4 // ABR 30
{
&DayofYear = &DD_to_Modif + 90 // Le sumo a los días del mes los de los
}
IF &MM_to_Modif = 5 // MAY 31
{
&DayofYear = &DD_to_Modif + 120 // Le sumo a los días del mes los de los
}
IF &MM_to_Modif = 6 // JUN 30
{
&DayofYear = &DD_to_Modif + 151 // Le sumo a los días del mes los de los
}
IF &MM_to_Modif = 7 // JUL 31
{
&DayofYear = &DD_to_Modif + 181 // Le sumo a los días del mes los de los
}
IF &MM_to_Modif = 8 // AGO 31
{
&DayofYear = &DD_to_Modif + 212 // Le sumo a los días del mes los de los
}
IF &MM_to_Modif = 9 // SEP 30
{
&DayofYear = &DD_to_Modif + 243 // Le sumo a los días del mes los de los
}
IF &MM_to_Modif = 10 // OCT 31
{
&DayofYear = &DD_to_Modif + 273 // Le sumo a los días del mes los de los
}
IF &MM_to_Modif = 11 // NOV 30
{
&DayofYear = &DD_to_Modif + 304 // Le sumo a los días del mes los de los
}
IF &MM_to_Modif = 12 // DIC 31
{
&DayofYear = &DD_to_Modif + 334 // Le sumo a los días del mes los de los
}
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 3812, 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 3814, 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
}
}
}

Var 5002, 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
}

Var 4000, name 2Date_Year // Indice para digitos Time-Date-Year

Var 4002, name Modif_Year2 // Activamos control modificacion año. 0

Var 4004, name Modif_DDMM2 // Activamos control modificacion Dia.Mes -

Var 4006, name Modif_HHMM2 // Activamos control modificacion Hora.Minu

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 d

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 -

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 Tim

Var 4028, name Estado_ET2 // COntrola el estado del Botón ET. 0 ->

Var 4030, name Limit_DD_Mes2 // Almacena el total de días que tiene e

Var 4032, name DayofYear2 // Almacena el día del año

Var 4034, name M_MOTOR2, Link IOCARD_MOTOR, Device 26, 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

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
{
&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 mod
{
&DispMonthMin2 = &MM_to_Modif2
&DispMonthMin2 = DELAY -999999 ,50
&Disp_Day_Hour2 = &DD_to_Modif2
}
IF &Modif_DDMM2 = 2 // Si estamos en activacion del control mod
{
&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 mod
{
&DispMonthMin2 = &MI_to_Modif2
&DispMonthMin2 = DELAY -999999 ,50
&Disp_Day_Hour2 = &HH_to_Modif2
}
IF &Modif_HHMM2 = 2 // Si estamos en activacion del control mod
{
&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 C
}
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 inferio
{
CALL &Ver_CHR2
}
ELSE // Mostramos el ET en los displays inferior
{
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

Var 4054, name DayofMonth2, Link FSUIPC_IN, Offset $023D, Length 1 // Día del mes correspondiente. Sólo
{
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
}

Var 4060, name Disp_Year2, Link IOCARD_DISPLAY, Device 26, Digit 0, Numbers 4 // UP Displays Year

Var 4062, name Disp_Day_Hour2, Link IOCARD_DISPLAY, Device 26, Digit 2, Numbers 2 // UP Displays Day or Hour

Var 4064, name DispMonthMin2, Link IOCARD_DISPLAY, Device 26, Digit 0, Numbers 2 // UP Displays Month or Minutes

Var 4068, name Disp_DWN_Min2, Link IOCARD_DISPLAY, Device 26, Digit 6, Numbers 2 // Down Displays CHR - ET -> Min

Var 4070, name Disp_DWN_Sec2, Link IOCARD_DISPLAY, Device 26, Digit 4, Numbers 2 // Down Displays CHR - ET -> Sec

Var 4072, name D_CHRBRIGHT2, Link IOCARD_DISPLAY, Device 26, Digit 16, Numbers 3

Var 4074, name DECIMAL_U2, Link IOCARD_OUT, Device 26, Output 20

Var 4076, name DECIMAL_D2, Link IOCARD_OUT, Device 26, Output 21

Var 4078, name DECIMAL_C2, Link IOCARD_OUT, Device 26, Output 22

Var 4080, name SW_Time_Date2, Link IOCARD_SW, Device 26, Input 1, Type P // Botón TIME-DATE
{
IF &Modif_Year2 = 0 // Si NO estamos en activacion del control
{
&2Date_Year = &2Date_Year + 1
IF &Modif_DDMM2 > 0 // Si estoy modificando dia del mes o el me
{
&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 correspond
IF &Estado_CHR2 = 3 // Si el CHR esta parado
{
}
}

Var 4082, name SW_SET2, Link IOCARD_SW, Device 26, 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 modifi
}
ELSE
{
CALL &Chk_Bisiesto2 // Comprobamos si es bisiesto
CALL &Calc_DayYear2
&Day_of_Year2 = &DayofYear2 // Devolvemos el día al FS para que lo m
&Modif_Year2 = 0 // Desactivamos control modificacion año
&Zulu_Year_Set2 = &Year_to_Modif2 // Devolvemos el año al FS para que lo m
CALL &Show_Display2 // Mostramos el año
}
}
IF &2Date_Year = 2 // Si estoy visualizando el dia del mes y e
{
IF &Modif_DDMM2 = 0 // Si NO estoy modificando dia del mes y el
{
&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
{
CALL &Chk_DiasMes2 // Calculamos cuantos dias tiene el mes que
&Modif_DDMM2 = 2 // Activamos control modificacion Día
&DD_to_Modif2 = &DayofMonth2 // Pasamos el día a una vble para modifi
&DispMonthMin2 = DELAY &MM_to_Modif2 ,50
}
ELSE // Terminamos de modificar así que manda
{
CALL &Calc_DayYear2
&Day_of_Year2 = &DayofYear2 // Devolvemos el día al FS para que lo m
&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
{
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
{
&Modif_HHMM2 = 2 // Activamos control modificacion Día
&HH_to_Modif2 = &Zulu_Hour2 // Pasamos el día a una vble para modifi
&DispMonthMin2 = DELAY &MI_to_Modif2 ,50
}
ELSE // Terminamos de modificar así que manda
{
&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 26, 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 C
}
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
}
IF &Estado_CHR2 <> 2
{
&PARPADEO_D2 = 2
}
}
}
}

Var 4086, name SW_ET2, Link IOCARD_SW, Device 26, 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 E
}
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 E
}
IF &Estado_ET2 <> 2
{
&PARPADEO_D2 = 2
}
}
}

Var 4088, Link IOCARD_SW, Device 26, 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 26, Input 3, Type P // Botón +
{
IF &Modif_Year2 = 1 // Si estamos en activacion del control del
{
&Year_to_Modif2 = &Year_to_Modif2 + 1
&Disp_Year2 = &Year_to_Modif2
}
IF &Modif_DDMM2 = 1 // Si estamos en activacion del control del
{
&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
{
&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
{
&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
{
&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 26, Input 4, Type P // Botón -
{
IF &Modif_Year2 = 1 // Si estamos en activacion del control del
{
&Year_to_Modif2 = &Year_to_Modif2 - 1
&Disp_Year2 = &Year_to_Modif2
}
IF &Modif_DDMM2 = 1 // Si estamos en activacion del control del
{
&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
{
&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
{
&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
{
&HH_to_Modif2 = &HH_to_Modif2 - 1
IF &HH_to_Modif2 < 0
{
&HH_to_Modif2 = 23
}
&Disp_Day_Hour2 = &HH_to_Modif2
}
}

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
&Disp_DWN_Sec2 = &CHR_Sec2 // Mostramos los minutos del CHR en Display
}

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
&Disp_DWN_Sec2 = &ET_Sec2 // Mostramos los segundos del ET en Display
}
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
}
}

Var 4100, name Chk_Bisiesto2, Link SUBRUTINE // Comprueba si el año es bisisesto
{
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
{
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Ã
{
IF &MM_to_Modif2 = 1 // ENE 31
{
&DayofYear2 = &DD_to_Modif2 // Paso a Calc_DayYear2 el día del mes d
}
IF &MM_to_Modif2 = 2 // FEB 28
{
&DayofYear2 = &DD_to_Modif2 + 31 // Le sumo a los días del mes los del me
}
IF &MM_to_Modif2 = 3 // MAR 31
{
&DayofYear2 = &DD_to_Modif2 + 59 // Le sumo a los días del mes los de los
}
IF &MM_to_Modif2 = 4 // ABR 30
{
&DayofYear2 = &DD_to_Modif2 + 90 // Le sumo a los días del mes los de los
}
IF &MM_to_Modif2 = 5 // MAY 31
{
&DayofYear2 = &DD_to_Modif2 + 120 // Le sumo a los días del mes los de los
}
IF &MM_to_Modif2 = 6 // JUN 30
{
&DayofYear2 = &DD_to_Modif2 + 151 // Le sumo a los días del mes los de los
}
IF &MM_to_Modif2 = 7 // JUL 31
{
&DayofYear2 = &DD_to_Modif2 + 181 // Le sumo a los días del mes los de los
}
IF &MM_to_Modif2 = 8 // AGO 31
{
&DayofYear2 = &DD_to_Modif2 + 212 // Le sumo a los días del mes los de los
}
IF &MM_to_Modif2 = 9 // SEP 30
{
&DayofYear2 = &DD_to_Modif2 + 243 // Le sumo a los días del mes los de los
}
IF &MM_to_Modif2 = 10 // OCT 31
{
&DayofYear2 = &DD_to_Modif2 + 273 // Le sumo a los días del mes los de los
}
IF &MM_to_Modif2 = 11 // NOV 30
{
&DayofYear2 = &DD_to_Modif2 + 304 // Le sumo a los días del mes los de los
}
IF &MM_to_Modif2 = 12 // DIC 31
{
&DayofYear2 = &DD_to_Modif2 + 334 // Le sumo a los días del mes los de los
}
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
}
}
}
CAVENEY747
Posts: 37
Joined: Sat Apr 02, 2016 1:43 pm
Location: Scotland

Re: Can't get Chrono working with EFIS and MCPv3 modules

Post by CAVENEY747 »

Hi
Thanks very much for your quick reply. I will try this out tomorrow if I have time and let you know if it works.
Thanks again!!
CAVENEY747
Posts: 37
Joined: Sat Apr 02, 2016 1:43 pm
Location: Scotland

Re: Can't get Chrono working with EFIS and MCPv3 modules

Post by CAVENEY747 »

Hi
Worked perfectly !! Thanks very much, you saved my sanity.
mvr1918
Site Admin
Posts: 1624
Joined: Thu Aug 30, 2012 3:35 pm

Re: Can't get Chrono working with EFIS and MCPv3 modules

Post by mvr1918 »

Then I set this topic as SOLVED
Post Reply