Re: Can't get Chrono working with EFIS and MCPv3 modules
Posted: Sat Apr 02, 2016 4:43 pm
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
}
}
}