chore: Se añade marca modo FAT en el DB1. Se modifica FC50_MAIN para poder gestionar la marca FAT.
This commit is contained in:
@@ -44,6 +44,8 @@ DATA_BLOCK DB1_SYS
|
||||
ResetEntidades : Bool;
|
||||
{ S7_MLC := "MLC_3pE" }
|
||||
SincronizarFecha : Bool;
|
||||
{ S7_MLC := "MLC_dm" }
|
||||
FAT : Bool;
|
||||
{ S7_MLC := "MLC_3v5" }
|
||||
WatchDog : Int;
|
||||
Pulsador : STRUCT
|
||||
@@ -124,6 +126,7 @@ DATA_BLOCK DB1_SYS
|
||||
FlipFlop5seg := TRUE;
|
||||
ResetEntidades := FALSE;
|
||||
SincronizarFecha := FALSE;
|
||||
FAT := FALSE;
|
||||
Pulsador.EscribirFechaHora.Hmi := FALSE;
|
||||
Pulsador.EscribirFechaHora.Plc := FALSE;
|
||||
Pulsador.EscribirFechaHora.Permiso := TRUE;
|
||||
|
||||
@@ -33,6 +33,8 @@
|
||||
es-ES: Reset todas las entidades
|
||||
- id: MLC_3pE
|
||||
es-ES: Orden sincronizacion fecha desde sistema superior
|
||||
- id: MLC_dm
|
||||
es-ES: Activar modo FAT para prueba de cuadros
|
||||
- id: MLC_3v5
|
||||
es-ES: Watchdog para comunicaciones
|
||||
- id: MLC_3ER
|
||||
|
||||
+116
-101
@@ -88,6 +88,122 @@ FUNCTION "FC1_ZC_SISTEMA" : Void
|
||||
END_REGION TIEMPO_DE_CICLO
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION GESTION_MARCAS_GENERALES_Y_FLANCOS
|
||||
|
||||
// ==========================================================================================================
|
||||
// Marca siempre a ON
|
||||
"DB1_SYS".OFF := FALSE;
|
||||
|
||||
// Marca siempre a OFF
|
||||
"DB1_SYS".ON := TRUE;
|
||||
|
||||
// Marca primer arranque
|
||||
"DB1_SYS".ARRANQUE := #CPU_MarcasSistema.%X0;
|
||||
|
||||
// ==========================================================================================================
|
||||
// Pulso por 100 ms
|
||||
"DB1_SYS".Pulso100ms := #CPU_MarcasCiclo.%X0 AND NOT "DB1_SYS".Aux.P_Trig_Pulso100ms;
|
||||
|
||||
// Pulso por 1 segundo
|
||||
"DB1_SYS".Pulso1seg := #CPU_MarcasCiclo.%X5 AND NOT "DB1_SYS".Aux.P_Trig_Pulso1Seg;
|
||||
|
||||
// Pulso por 2 segundos
|
||||
"DB1_SYS".Pulso2seg := FALSE;
|
||||
IF "DB1_SYS".Pulso1seg THEN
|
||||
"DB1_SYS".Aux.Contador2seg += 1;
|
||||
IF "DB1_SYS".Aux.Contador2seg >= 2 THEN
|
||||
"DB1_SYS".Pulso2seg := TRUE;
|
||||
"DB1_SYS".Aux.Contador2seg := 0;
|
||||
END_IF;
|
||||
END_IF;
|
||||
|
||||
// Pulso por 5 segundos
|
||||
"DB1_SYS".Pulso5seg := FALSE;
|
||||
IF "DB1_SYS".Pulso1seg THEN
|
||||
"DB1_SYS".Aux.Contador5seg += 1;
|
||||
IF "DB1_SYS".Aux.Contador5seg >= 5 THEN
|
||||
"DB1_SYS".Pulso5seg := TRUE;
|
||||
"DB1_SYS".Aux.Contador5seg := 0;
|
||||
END_IF;
|
||||
END_IF;
|
||||
|
||||
// Pulso por 1 minuto
|
||||
"DB1_SYS".Pulso1min := FALSE;
|
||||
IF "DB1_SYS".Pulso1seg THEN
|
||||
"DB1_SYS".Aux.Contador1min += 1;
|
||||
IF "DB1_SYS".Aux.Contador1min >= 60 THEN
|
||||
"DB1_SYS".Pulso1min := TRUE;
|
||||
"DB1_SYS".Aux.Contador1min := 0;
|
||||
END_IF;
|
||||
END_IF;
|
||||
|
||||
// Pulso por 1 hora
|
||||
"DB1_SYS".Pulso1h := FALSE;
|
||||
IF "DB1_SYS".Pulso1seg THEN
|
||||
"DB1_SYS".Aux.Contador1h += 1;
|
||||
IF "DB1_SYS".Aux.Contador1h >= 3600 THEN
|
||||
"DB1_SYS".Pulso1h := TRUE;
|
||||
"DB1_SYS".Aux.Contador1h := 0;
|
||||
END_IF;
|
||||
END_IF;
|
||||
|
||||
// ==========================================================================================================
|
||||
// Flip Flop 1 segundo
|
||||
IF "DB1_SYS".Pulso1seg AND NOT "DB1_SYS".FlipFlop1seg THEN
|
||||
"DB1_SYS".FlipFlop1seg := TRUE;
|
||||
ELSIF "DB1_SYS".Pulso1seg AND "DB1_SYS".FlipFlop1seg THEN
|
||||
"DB1_SYS".FlipFlop1seg := FALSE;
|
||||
END_IF;
|
||||
|
||||
// Flip Flop 2 segundos
|
||||
IF "DB1_SYS".Pulso2seg AND NOT "DB1_SYS".FlipFlop2seg THEN
|
||||
"DB1_SYS".FlipFlop2seg := TRUE;
|
||||
ELSIF "DB1_SYS".Pulso2seg AND "DB1_SYS".FlipFlop2seg THEN
|
||||
"DB1_SYS".FlipFlop2seg := FALSE;
|
||||
END_IF;
|
||||
|
||||
// Flip Flop 5 segundos
|
||||
IF "DB1_SYS".Pulso5seg AND NOT "DB1_SYS".FlipFlop5seg THEN
|
||||
"DB1_SYS".FlipFlop5seg := TRUE;
|
||||
ELSIF "DB1_SYS".Pulso5seg AND "DB1_SYS".FlipFlop5seg THEN
|
||||
"DB1_SYS".FlipFlop5seg := FALSE;
|
||||
END_IF;
|
||||
|
||||
// ==========================================================================================================
|
||||
// Watchdog
|
||||
IF "DB1_SYS".Pulso100ms THEN
|
||||
"DB1_SYS".WatchDog += 1;
|
||||
IF "DB1_SYS".WatchDog > 20000 THEN
|
||||
"DB1_SYS".WatchDog := 0;
|
||||
END_IF;
|
||||
END_IF;
|
||||
|
||||
// ==========================================================================================================
|
||||
// Estados anteriores
|
||||
"DB1_SYS".Aux.P_Trig_Pulso100ms := #CPU_MarcasCiclo.%X0;
|
||||
"DB1_SYS".Aux.P_Trig_Pulso1Seg := #CPU_MarcasCiclo.%X5;
|
||||
|
||||
END_REGION GESTION_MARCAS_GENERALES_Y_FLANCOS
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION ARRANQUE
|
||||
|
||||
IF "DB1_SYS".ARRANQUE THEN
|
||||
|
||||
// Actualizamos la fecha y hora nueva para editar desde HMI/SCADA
|
||||
#t_RetVal := RD_LOC_T("DB1_SYS".FechaHoraNuevaManual);
|
||||
|
||||
// Reseteamos marcas de simulacion y FAT
|
||||
"DB1_SYS".SIM := FALSE;
|
||||
"DB1_SYS".FAT := FALSE;
|
||||
|
||||
END_IF;
|
||||
|
||||
END_REGION ARRANQUE
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION GESTION_PULSADORES
|
||||
|
||||
@@ -226,107 +342,6 @@ FUNCTION "FC1_ZC_SISTEMA" : Void
|
||||
END_REGION GESTION_ACUSE_GENERAL
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION GESTION_MARCAS_GENERALES_Y_FLANCOS
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
// Marca siempre a ON
|
||||
"DB1_SYS".OFF := FALSE;
|
||||
|
||||
// Marca siempre a OFF
|
||||
"DB1_SYS".ON := TRUE;
|
||||
|
||||
// Marca primer arranque
|
||||
"DB1_SYS".ARRANQUE := #CPU_MarcasSistema.%X0;
|
||||
|
||||
// ==========================================================================================================
|
||||
// Pulso por 100 ms
|
||||
"DB1_SYS".Pulso100ms := #CPU_MarcasCiclo.%X0 AND NOT "DB1_SYS".Aux.P_Trig_Pulso100ms;
|
||||
|
||||
// Pulso por 1 segundo
|
||||
"DB1_SYS".Pulso1seg := #CPU_MarcasCiclo.%X5 AND NOT "DB1_SYS".Aux.P_Trig_Pulso1Seg;
|
||||
|
||||
// Pulso por 2 segundos
|
||||
"DB1_SYS".Pulso2seg := FALSE;
|
||||
IF "DB1_SYS".Pulso1seg THEN
|
||||
"DB1_SYS".Aux.Contador2seg += 1;
|
||||
IF "DB1_SYS".Aux.Contador2seg >= 2 THEN
|
||||
"DB1_SYS".Pulso2seg := TRUE;
|
||||
"DB1_SYS".Aux.Contador2seg := 0;
|
||||
END_IF;
|
||||
END_IF;
|
||||
|
||||
// Pulso por 5 segundos
|
||||
"DB1_SYS".Pulso5seg := FALSE;
|
||||
IF "DB1_SYS".Pulso1seg THEN
|
||||
"DB1_SYS".Aux.Contador5seg += 1;
|
||||
IF "DB1_SYS".Aux.Contador5seg >= 5 THEN
|
||||
"DB1_SYS".Pulso5seg := TRUE;
|
||||
"DB1_SYS".Aux.Contador5seg := 0;
|
||||
END_IF;
|
||||
END_IF;
|
||||
|
||||
// Pulso por 1 minuto
|
||||
"DB1_SYS".Pulso1min := FALSE;
|
||||
IF "DB1_SYS".Pulso1seg THEN
|
||||
"DB1_SYS".Aux.Contador1min += 1;
|
||||
IF "DB1_SYS".Aux.Contador1min >= 60 THEN
|
||||
"DB1_SYS".Pulso1min := TRUE;
|
||||
"DB1_SYS".Aux.Contador1min := 0;
|
||||
END_IF;
|
||||
END_IF;
|
||||
|
||||
// Pulso por 1 hora
|
||||
"DB1_SYS".Pulso1h := FALSE;
|
||||
IF "DB1_SYS".Pulso1seg THEN
|
||||
"DB1_SYS".Aux.Contador1h += 1;
|
||||
IF "DB1_SYS".Aux.Contador1h >= 3600 THEN
|
||||
"DB1_SYS".Pulso1h := TRUE;
|
||||
"DB1_SYS".Aux.Contador1h := 0;
|
||||
END_IF;
|
||||
END_IF;
|
||||
|
||||
// ==========================================================================================================
|
||||
// Flip Flop 1 segundo
|
||||
IF "DB1_SYS".Pulso1seg AND NOT "DB1_SYS".FlipFlop1seg THEN
|
||||
"DB1_SYS".FlipFlop1seg := TRUE;
|
||||
ELSIF "DB1_SYS".Pulso1seg AND "DB1_SYS".FlipFlop1seg THEN
|
||||
"DB1_SYS".FlipFlop1seg := FALSE;
|
||||
END_IF;
|
||||
|
||||
// Flip Flop 2 segundos
|
||||
IF "DB1_SYS".Pulso2seg AND NOT "DB1_SYS".FlipFlop2seg THEN
|
||||
"DB1_SYS".FlipFlop2seg := TRUE;
|
||||
ELSIF "DB1_SYS".Pulso2seg AND "DB1_SYS".FlipFlop2seg THEN
|
||||
"DB1_SYS".FlipFlop2seg := FALSE;
|
||||
END_IF;
|
||||
|
||||
// Flip Flop 5 segundos
|
||||
IF "DB1_SYS".Pulso5seg AND NOT "DB1_SYS".FlipFlop5seg THEN
|
||||
"DB1_SYS".FlipFlop5seg := TRUE;
|
||||
ELSIF "DB1_SYS".Pulso5seg AND "DB1_SYS".FlipFlop5seg THEN
|
||||
"DB1_SYS".FlipFlop5seg := FALSE;
|
||||
END_IF;
|
||||
|
||||
// ==========================================================================================================
|
||||
// Watchdog
|
||||
IF "DB1_SYS".Pulso100ms THEN
|
||||
"DB1_SYS".WatchDog += 1;
|
||||
IF "DB1_SYS".WatchDog > 20000 THEN
|
||||
"DB1_SYS".WatchDog := 0;
|
||||
END_IF;
|
||||
END_IF;
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
// Estados anteriores
|
||||
"DB1_SYS".Aux.P_Trig_Pulso100ms := #CPU_MarcasCiclo.%X0;
|
||||
"DB1_SYS".Aux.P_Trig_Pulso1Seg := #CPU_MarcasCiclo.%X5;
|
||||
|
||||
END_REGION GESTION_MARCAS_GENERALES_Y_FLANCOS
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION FECHA_Y_HORA
|
||||
|
||||
|
||||
-17
@@ -5,21 +5,4 @@
|
||||
S7_Version := "0.1"
|
||||
}
|
||||
ORGANIZATION_BLOCK "OB100_Startup"
|
||||
VAR_TEMP
|
||||
t_dummyInt : Int;
|
||||
END_VAR
|
||||
|
||||
{
|
||||
S7_Language := "LAD";
|
||||
S7_NetworkTitle := "MLC_3Ju"
|
||||
}
|
||||
NETWORK
|
||||
RUNG wire#powerrail
|
||||
{ S7_Templates := "date_type := DTL" }
|
||||
RD_LOC_T(
|
||||
RET_VAL => #t_dummyInt,
|
||||
OUT => "DB1_SYS".FechaHoraNuevaManual
|
||||
)
|
||||
END_RUNG
|
||||
END_NETWORK
|
||||
END_ORGANIZATION_BLOCK
|
||||
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
MultiLingualTexts:
|
||||
- id: MLC_3Ju
|
||||
es-ES: Al arrancar, actualizamos la fecha y hora nueva para editar desde HMI/SCADA
|
||||
+24
-5
@@ -68,13 +68,37 @@ FUNCTION "FC50_MAIN" : Void
|
||||
// ==========================================================================================================
|
||||
REGION SISTEMA
|
||||
|
||||
// Llamada a marcas de sistema
|
||||
"FC1_ZC_SISTEMA"(CPU_MarcasCiclo := "Clock_Byte",
|
||||
CPU_MarcasSistema := "System_Byte",
|
||||
RedProfinet := "Local~PROFINET_IO-System");
|
||||
|
||||
// Llamada a utilizades
|
||||
"DB15994_ZC_INICIALIZAR_DISP"();
|
||||
"DB15995_ZC_BUSCAR_DIR"();
|
||||
|
||||
END_REGION SISTEMA
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION FAT
|
||||
|
||||
// Llamada a bloques FAT
|
||||
// Si tenemos la marca activada, salimos del bloque sin ejecutar nada mas para poder realizar
|
||||
// las pruebas de señales de los cuadros.
|
||||
IF "DB1_SYS".FAT THEN
|
||||
|
||||
"DB15990_FAT_DI"();
|
||||
"DB15991_FAT_DO"();
|
||||
"DB15992_FAT_AI"();
|
||||
"DB15993_FAT_AO"();
|
||||
|
||||
RETURN;
|
||||
END_IF;
|
||||
|
||||
END_REGION FAT
|
||||
|
||||
|
||||
// ==========================================================================================================
|
||||
REGION DISPOSITIVOS
|
||||
|
||||
@@ -379,10 +403,5 @@ FUNCTION "FC50_MAIN" : Void
|
||||
|
||||
END_REGION POST_PROGRAMA
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
END_NETWORK
|
||||
END_FUNCTION
|
||||
|
||||
@@ -8,7 +8,6 @@ FUNCTION "Documentacion" : Void
|
||||
{ S7_Language := "SCL" }
|
||||
NETWORK
|
||||
|
||||
|
||||
REGION DESCRIPCION
|
||||
(*
|
||||
###### (C)Copyright ZeusControl 2020 - 2026
|
||||
@@ -20,7 +19,7 @@ FUNCTION "Documentacion" : Void
|
||||
| PLC serie 1200/1500 | TIA Portal 18 |ASasASadsadsasd
|
||||
|
||||
---
|
||||
> **Restricciones:** [!!! INDICA AQUÍ LIMITACIONES (O ESCRIBE "Ninguna") !!!]
|
||||
> **Restricciones:** [!!! INDICA AQUÍ LIMITACIONES (O ESCRIBE "Ninguna.") !!!]
|
||||
|
||||
---
|
||||
### Descripción Funcional
|
||||
@@ -51,6 +50,6 @@ FUNCTION "Documentacion" : Void
|
||||
*)
|
||||
END_REGION DESCRIPCION
|
||||
|
||||
// borrar
|
||||
|
||||
END_NETWORK
|
||||
END_FUNCTION
|
||||
|
||||
Reference in New Issue
Block a user