chore: Actualizacion de comentarios. Actualizacion de interfaces. Se añaden elementos.

This commit is contained in:
2026-07-24 09:01:20 +02:00
parent e8d73901e4
commit 0cfcfd4555
19 changed files with 643 additions and 48 deletions
@@ -245,7 +245,9 @@ FUNCTION "FC50_MAIN" : Void
// Gestion dispositivo
"FC2041_ZC_TQ_AE"(Pulso1seg := "DB1_SYS".Pulso1seg,
Arranque := "DB1_SYS".ARRANQUE,
Ack := "DB1_SYS".ACK);
Ack := "DB1_SYS".ACK,
UsuarioActual := "DB1_SYS".Usuario.Actual,
FechaHoraActual := "DB1_SYS".FechaHoraActual);
END_REGION LLAMADA_TQ_AE
@@ -315,17 +317,65 @@ FUNCTION "FC50_MAIN" : Void
// ==========================================================================================================
REGION POST_PROGRAMA
// Alarmas generales
"FC5000_GEST_ALARMAS_GNR"();
// ==========================================================================================================
REGION ALARMAS_GENERALES
// Alarmas generales
"FC5000_GNR_ALM"();
// Gestion balizas
"FC60_GESTOR_BALIZAS"();
END_REGION ALARMAS_GENERALES
// Parametros generales
"FC15_ZC_GEST_PREAL"(PrimerCiclo:="DB1_SYS".ARRANQUE,
FechaHora:="DB1_SYS".FechaHoraActual,
Usuario:="DB1_SYS".Usuario.Actual,
PReal:="DB3000_GNR_PREAL".PReal,
IndexTraza:=1,
ValorAnterior:="DB3000_GNR_PREAL".PReal);
// ==========================================================================================================
REGION PARAMETROS_GENERALES
// Parametros reales generales
"FC15_ZC_GEST_PREAL"(PrimerCiclo := "DB1_SYS".ARRANQUE,
FechaHora := "DB1_SYS".FechaHoraActual,
Usuario := "DB1_SYS".Usuario.Actual,
PReal := "DB3000_GNR_PARAM".PReal,
IndexTraza := 1,
ValorAnterior := "DB3000_GNR_PARAM".Aux.PReal_ValorAnterior);
// Parametros enteros generales
"FC16_ZC_GEST_PINT"(PrimerCiclo := "DB1_SYS".ARRANQUE,
FechaHora := "DB1_SYS".FechaHoraActual,
Usuario := "DB1_SYS".Usuario.Actual,
PInt := "DB3000_GNR_PARAM".PInt,
IndexTraza := 1,
ValorAnterior := "DB3000_GNR_PARAM".Aux.PInt_ValorAnterior);
END_REGION PARAMETROS_GENERALES
// ==========================================================================================================
REGION TRAZABILIDAD
// Gestor trazabilidad
"FC7_ZC_TRZ_GESTOR"("DB1_SYS".Pulso1seg);
END_REGION TRAZABILIDAD
// ==========================================================================================================
REGION INFORMES
// Gestor informes
"FC11_ZC_INF_GESTOR"("DB1_SYS".Pulso1seg);
END_REGION INFORMES
// ==========================================================================================================
REGION COMUNICACIONES
// Gestor comunicaciones
"FC11000_GESTOR_COM"();
END_REGION COMUNICACIONES
END_REGION POST_PROGRAMA
@@ -11,7 +11,9 @@ FUNCTION_BLOCK "FB15049_ZC_AIRE_ESTERIL"
VAR_INPUT
{ S7_MLC := "MLC_33z" }
Pulso1Seg : Bool;
{ S7_MLC := "MLC_4GG" }
HabilitarMantenimiento : Bool;
{ S7_MLC := "MLC_39V" }
AlarmaFalloVapor : Bool;
{ S7_MLC := "MLC_Xw" }
FechaHora : DTL;
@@ -21,23 +23,29 @@ FUNCTION_BLOCK "FB15049_ZC_AIRE_ESTERIL"
SP_TiempoEsterilizacion : Int;
{ S7_MLC := "MLC_3XU" }
SP_TiempoEnfriamiento : Int;
{ S7_MLC := "MLC_45q" }
SP_NumeroMaximoEsterilizacion : Int;
{ S7_MLC := "MLC_zF" }
SP_DiasMaximoFiltroEsteril : Int;
{ S7_MLC := "MLC_WZ" }
ProcesoID : Int;
ProcesoID : Int := 15049;
END_VAR
VAR_INPUT RETAIN
{ S7_MLC := "MLC_3cm" }
Usuario : String[25];
END_VAR
VAR_INPUT
{ S7_MLC := "MLC_42q" }
MinutoAlarma : USInt;
{ S7_MLC := "MLC_sZ" }
SegundoAlarma : USInt;
END_VAR
VAR_IN_OUT
{ S7_MLC := "MLC_54s" }
ParoMantenimiento : Bool;
{ S7_MLC := "MLC_3Du" }
AvisoDiasEsterilizacion : Bool;
{ S7_MLC := "MLC_52S" }
AlarmaDiasEsterilizacion : Bool;
END_VAR
VAR
@@ -64,16 +72,27 @@ FUNCTION_BLOCK "FB15049_ZC_AIRE_ESTERIL"
s_TiempoEtapa : _.UDT_ZC_PRO_TIEMPO_ETAPA;
END_VAR
VAR
{ S7_MLC := "MLC_4vd" }
Pulsadores : STRUCT
{ S7_Setpoint := "False" }
{
S7_MLC := "MLC_3jq";
S7_Setpoint := "False"
}
Habilitar : _.UDT_ZC_PULSADOR;
{ S7_Setpoint := "False" }
{
S7_MLC := "MLC_3im";
S7_Setpoint := "False"
}
Deshabilitar : _.UDT_ZC_PULSADOR;
{ S7_Setpoint := "False" }
{
S7_MLC := "MLC_49T";
S7_Setpoint := "False"
}
Mantenimiento : _.UDT_ZC_PULSADOR;
END_STRUCT;
END_VAR
VAR RETAIN
{ S7_MLC := "MLC_4jg" }
TiempoEsterelizado : _.UDT_ZC_CONTADOR_TIEMPO;
END_VAR
VAR
@@ -91,15 +110,14 @@ FUNCTION_BLOCK "FB15049_ZC_AIRE_ESTERIL"
s_oldMostrarAlarmaMto : Bool;
END_VAR
VAR_TEMP
{ S7_MLC := "MLC_ps" }
t_ResetContador : Bool;
t_DiasAvisos : Int;
END_VAR
VAR CONSTANT
REPOSO : Int := 0;
ESTERILIZANDO : Int := 10;
ESTERILIZADO : Int := 20;
ENFRIAMIENTO : Int := 30;
ETAPA_0_REPOSO : Int := 0;
ETAPA_10_ESTERILIZANDO : Int := 10;
ETAPA_20_ESTERILIZADO : Int := 20;
ETAPA_30_ENFRIAMIENTO : Int := 30;
END_VAR
{ S7_Language := "SCL" }
@@ -134,7 +152,7 @@ FUNCTION_BLOCK "FB15049_ZC_AIRE_ESTERIL"
|------|-----------|
| FC | `FC15025_ZC_CONTADOR_TIEMPO`, `FC15026_ZC_PULSADOR` |
| FB | - |
| DB | `DB1_SYS` |
| DB | - |
| UDT | `UDT_ZC_CONTADOR_TIEMPO`, `UDT_ZC_PRO_TIEMPO_ETAPA`, `UDT_ZC_PULSADOR` |
---
@@ -197,24 +215,24 @@ FUNCTION_BLOCK "FB15049_ZC_AIRE_ESTERIL"
CASE #s_Etapa OF
// =============================================================================
#REPOSO:
#ETAPA_0_REPOSO:
IF #s_Habilitar THEN
#s_Etapa := #ESTERILIZADO;
#s_Etapa := #ETAPA_20_ESTERILIZADO;
#s_TiempoEtapa.Actual := 0;
END_IF;
// =============================================================================
#ESTERILIZANDO:
#ETAPA_10_ESTERILIZANDO:
#s_TiempoEtapa.SP := #SP_TiempoEsterilizacion;
IF NOT #s_Habilitar THEN
#s_Etapa := #REPOSO;
#s_Etapa := #ETAPA_0_REPOSO;
END_IF;
IF #AlarmaFalloVapor THEN
#s_Etapa := #REPOSO;
#s_Etapa := #ETAPA_0_REPOSO;
END_IF;
IF #s_TiempoEtapa.Cumplido THEN
#s_Etapa := #ENFRIAMIENTO;
#s_Etapa := #ETAPA_30_ENFRIAMIENTO;
#s_TiempoEtapa.Actual := 0;
#S_NumeroDiasEsterilizacion := 0;
#s_NumeroEsterilizaciones += 1;
@@ -228,25 +246,25 @@ FUNCTION_BLOCK "FB15049_ZC_AIRE_ESTERIL"
#s_TiempoEtapa.Actual := 0;
END_IF;
// =============================================================================
#ENFRIAMIENTO:
#ETAPA_30_ENFRIAMIENTO:
#s_TiempoEtapa.SP := #SP_TiempoEnfriamiento;
#s_TiempoEtapa.Activar := TRUE;
IF NOT #s_Habilitar THEN
#s_Etapa := #REPOSO;
#s_Etapa := #ETAPA_0_REPOSO;
END_IF;
IF #s_TiempoEtapa.Cumplido THEN
#s_Etapa := #ESTERILIZADO;
#s_Etapa := #ETAPA_20_ESTERILIZADO;
#s_TiempoEtapa.Actual := 0;
END_IF;
// =============================================================================
#ESTERILIZADO:
#ETAPA_20_ESTERILIZADO:
#s_TiempoEtapa.SP := 5;
IF NOT #s_Habilitar THEN
#s_Etapa := #REPOSO;
#s_Etapa := #ETAPA_0_REPOSO;
END_IF;
IF #s_TiempoEtapa.Cumplido THEN
#s_Etapa := #ESTERILIZANDO;
#s_Etapa := #ETAPA_10_ESTERILIZANDO;
#s_TiempoEtapa.Actual := 0;
END_IF;
IF #TempEsterilAlcanzada AND NOT #s_FiltroEsteril THEN
@@ -256,7 +274,7 @@ FUNCTION_BLOCK "FB15049_ZC_AIRE_ESTERIL"
#s_TiempoEtapa.Actual := 0;
END_IF;
ELSE
#s_Etapa := #REPOSO;
#s_Etapa := #ETAPA_0_REPOSO;
END_CASE;
END_REGION SECUENCIA_FILTRO
@@ -272,7 +290,7 @@ FUNCTION_BLOCK "FB15049_ZC_AIRE_ESTERIL"
END_IF;
"FC15025_ZC_CONTADOR_TIEMPO"(Pulso1seg:=#Pulso1Seg,
Iniciar:=#Pulso1Seg AND (#s_Etapa = #ESTERILIZADO),
Iniciar:=#Pulso1Seg AND (#s_Etapa = #ETAPA_20_ESTERILIZADO),
Reset:=#t_ResetContador,
Contador:=#TiempoEsterelizado);
@@ -288,7 +306,7 @@ FUNCTION_BLOCK "FB15049_ZC_AIRE_ESTERIL"
REGION TIEMPO_ETAPA
// Proceso en estado parado
IF #s_Etapa = #REPOSO THEN
IF #s_Etapa = #ETAPA_0_REPOSO THEN
#s_TiempoEtapa.Actual := 0;
#s_TiempoEtapa.Activar := FALSE;
END_IF;
@@ -3,20 +3,36 @@
es-ES: FB15049_ZC_AIRE_ESTERIL
- id: MLC_33z
es-ES: Pulso 1 Segundo
- id: MLC_4GG
es-ES: Habilitar mantenimiento
- id: MLC_39V
es-ES: Alarma fallo vaor
- id: MLC_Xw
es-ES: Fecha y hora actual
- id: MLC_4TG
es-ES: Estado temperatura de esterilizacion alcanzada
- id: MLC_3r4
es-ES: SP_Tiempo de esterilizacion
es-ES: Set Point Tiempo de esterilizacion
- id: MLC_3XU
es-ES: SP_Tiempo de enfriamiento
es-ES: Set Point Tiempo de enfriamiento
- id: MLC_45q
es-ES: Set Point numero maximo esterilizaciones
- id: MLC_zF
es-ES: SP_Dias Maximo Filtro Esteril
- id: MLC_WZ
es-ES: ID Proceso para trazabilidad
- id: MLC_3cm
es-ES: Usuario actual
- id: MLC_42q
es-ES: Minuto alarma
- id: MLC_sZ
es-ES: Segundo alarma
- id: MLC_54s
es-ES: Paro mantenimiento
- id: MLC_3Du
es-ES: Aviso dias esterilizacion
- id: MLC_52S
es-ES: Alarma dias esterilizacion
- id: MLC_4jQ
es-ES: Estado habilitado
- id: MLC_ZU
@@ -29,9 +45,17 @@
es-ES: Numerpo de dias con filtro esterilizado
- id: MLC_4hW
es-ES: Tiempo de etapa
- id: MLC_4vd
es-ES: Pulsador
- id: MLC_3jq
es-ES: Habilitar
- id: MLC_3im
es-ES: Deshabilitar
- id: MLC_49T
es-ES: Mantenimiento
- id: MLC_4jg
es-ES: Tiempo esterilizado
- id: MLC_RL
es-ES: Contraseña calculada de mantenimiento
- id: MLC_3mQ
es-ES: Contraseña calculada de mantenimiento
- id: MLC_ps
es-ES: Tempoeral reset contador de horas
@@ -72,7 +72,7 @@ FUNCTION "FC2010_ZC_V" : Void
|------|-----------|
| FC | `FC8_ZC_TRAZA_REGISTRO` |
| FB | - |
| DB | `DB1_SYS`, `DB2010_V` |
| DB | `DB2010_V` |
| UDT | - |
---
@@ -12,6 +12,10 @@ FUNCTION "FC2041_ZC_TQ_AE" : Void
Pulso1seg : Bool;
Arranque : Bool;
Ack : Bool;
{ S7_MLC := "MLC_4jC" }
UsuarioActual : String;
{ S7_MLC := "MLC_5BC" }
FechaHoraActual : DTL;
END_VAR
VAR_TEMP
for_i : Int;
@@ -300,10 +304,10 @@ FUNCTION "FC2041_ZC_TQ_AE" : Void
REGION TRAZABILIDAD_MANUALIZACION
IF "DB2041_TQ_AE".TQ_AE[#for_i].Estado_AutoMan AND NOT "DB2041_TQ_AE".TQ_AE[#for_i].Aux_oldAutoMan THEN
"FC8_ZC_TRZ_REGISTRO"(FechaHora := "DB1_SYS".FechaHoraActual,
"FC8_ZC_TRZ_REGISTRO"(FechaHora := #FechaHoraActual,
Registrar := 1,
Categoria := "TRZ_CAT_20_DISP_TQ_AE",
User := "DB1_SYS".Usuario.Actual,
User := #UsuarioActual,
CodInt_1 := "TRZ_SYS_DISP_TIPO_TQ_AE",
CodInt_2 := #for_i,
CodInt_3 := "TRZ_SYS_DISP_ACC_MAN",
@@ -314,10 +318,10 @@ FUNCTION "FC2041_ZC_TQ_AE" : Void
END_IF;
IF NOT "DB2041_TQ_AE".TQ_AE[#for_i].Estado_AutoMan AND "DB2041_TQ_AE".TQ_AE[#for_i].Aux_oldAutoMan THEN
"FC8_ZC_TRZ_REGISTRO"(FechaHora := "DB1_SYS".FechaHoraActual,
"FC8_ZC_TRZ_REGISTRO"(FechaHora := #FechaHoraActual,
Registrar := 1,
Categoria := "TRZ_CAT_20_DISP_TQ_AE",
User := "DB1_SYS".Usuario.Actual,
User := #UsuarioActual,
CodInt_1 := "TRZ_SYS_DISP_TIPO_TQ_AE",
CodInt_2 := #for_i,
CodInt_3 := "TRZ_SYS_DISP_ACC_AUTO",
@@ -328,10 +332,10 @@ FUNCTION "FC2041_ZC_TQ_AE" : Void
END_IF;
IF "DB2041_TQ_AE".TQ_AE[#for_i].Estado_AutoMan AND "DB2041_TQ_AE".TQ_AE[#for_i].Orden_Manual AND NOT "DB2041_TQ_AE".TQ_AE[#for_i].Aux_oldOrdenManual THEN
"FC8_ZC_TRZ_REGISTRO"(FechaHora := "DB1_SYS".FechaHoraActual,
"FC8_ZC_TRZ_REGISTRO"(FechaHora := #FechaHoraActual,
Registrar := 1,
Categoria := "TRZ_CAT_20_DISP_TQ_AE",
User := "DB1_SYS".Usuario.Actual,
User := #UsuarioActual,
CodInt_1 := "TRZ_SYS_DISP_TIPO_TQ_AE",
CodInt_2 := #for_i,
CodInt_3 := "TRZ_SYS_DISP_ACC_MAN_ON",
@@ -342,10 +346,10 @@ FUNCTION "FC2041_ZC_TQ_AE" : Void
END_IF;
IF "DB2041_TQ_AE".TQ_AE[#for_i].Estado_AutoMan AND NOT "DB2041_TQ_AE".TQ_AE[#for_i].Orden_Manual AND "DB2041_TQ_AE".TQ_AE[#for_i].Aux_oldOrdenManual THEN
"FC8_ZC_TRZ_REGISTRO"(FechaHora := "DB1_SYS".FechaHoraActual,
"FC8_ZC_TRZ_REGISTRO"(FechaHora := #FechaHoraActual,
Registrar := 1,
Categoria := "TRZ_CAT_20_DISP_TQ_AE",
User := "DB1_SYS".Usuario.Actual,
User := #UsuarioActual,
CodInt_1 := "TRZ_SYS_DISP_TIPO_TQ_AE",
CodInt_2 := #for_i,
CodInt_3 := "TRZ_SYS_DISP_ACC_MAN_OFF",
@@ -1,3 +1,7 @@
MultiLingualTexts:
- id: MLC_562
es-ES: FC2041_ZC_TQ_AE
- id: MLC_4jC
es-ES: Usuario actual
- id: MLC_5BC
es-ES: Fecha y hora actual
@@ -0,0 +1,56 @@
{
S7_EditorMode := "SCL";
S7_IECCheck := "TRUE";
S7_Optimized := "TRUE";
S7_Version := "0.1"
}
FUNCTION "Documentacion" : Void
{ S7_Language := "SCL" }
NETWORK
REGION DESCRIPCION
(*
###### (C)Copyright ZeusControl 2020 - 2026
---
### Información del Sistema
| Hardware Compatible | Entorno de Ingeniería |
|---------------------|-----------------------|
| PLC serie 1200/1500 | TIA Portal 18 |ASasASadsadsasd
---
> **Restricciones:** [!!! INDICA AQUÍ LIMITACIONES (O ESCRIBE "Ninguna") !!!]
---
### Descripción Funcional
[!!! ESCRIBE AQUÍ UN RESUMEN BREVE DEL BLOQUE (1 O 2 LÍNEAS) !!!]
[!!! EXPLICA AQUÍ LOS DETALLES TÉCNICOS. POR EJEMPLO: !!!]
A nivel secuencial, la función realiza las siguientes tareas:
- Tarea principal 1, destacando el uso de la entrada `NombreVariable`.
- Tarea principal 2 evaluando el estado de **En Marcha**.
- Condición secundaria o sub-tarea (usando dos espacios antes del guion).
---
### Dependencias Requeridas
| Tipo | Elementos |
|------|-----------|
| FC | - |
| FB | - |
| DB | - |
| UDT | - |
---
### Historial de Cambios
| Versión | Fecha | Técnico | Cambios |
|----------|------------|---------|---------|
| 00.00.01 | DD.MM.YYYY | (ZC) | Primera versión. |
*)
END_REGION DESCRIPCION
// borrar
END_NETWORK
END_FUNCTION