Análisis — Bloques de programa/ZC_Estandar_Alimentacion/300_Procesos_Gestor
Cobertura: 3 fuente(s) .s7dcl.
Resumen de carpeta
Esta carpeta pertenece a la capa indicada por su prefijo numérico y agrupa elementos con responsabilidad funcional común. El detalle siguiente diferencia bloques ejecutables, memoria global/instancia y contratos UDT.
FC FC4_ZC_ENT_DISPONIBILIDAD
- Archivo:
Bloques de programa/ZC_Estandar_Alimentacion/300_Procesos_Gestor/FC4_ZC_ENT_DISPONIBILIDAD.s7dcl - Tipo: FC; retorno
Bool
Propósito general
Función encargada de evaluar y determinar la disponibilidad operativa de las entidades del sistema.
Las tareas que realiza son las siguientes:
- Calcular el estado de disponibilidad de la entidad correspondiente en función del valor recibido en la entrada Entidad.
- Verificar y restringir, por motivos de seguridad, el valor de la entrada Entidad para garantizar que no exceda los límites definidos en el array de entidades.
Interfaz principal
Entradas:
| Variable | Tipo / inicialización |
|---|---|
Entidad |
Int |
Dependencias
| Clase | Elementos referenciados/llamados |
|---|---|
| DB | DB6_ENTIDAD |
Lógica clave
Flujo organizado en las regiones: GESTION_DISPONIBILIDAD. Mecanismos relevantes detectados: decisiones condicionales. Operaciones señaladas por el código: ==========================================================================================================; Comprobacion de limites de la entrada Entidad. En caso de estar fuera de indices, devolvemos un FALSE.; En caso de estar dentro de limites, devolvemos el estado de la entidad.
FC FC5_ZC_PROCESO
- Archivo:
Bloques de programa/ZC_Estandar_Alimentacion/300_Procesos_Gestor/FC5_ZC_PROCESO.s7dcl - Tipo: FC; retorno
Void
Propósito general
Función principal para la gestión integral del ciclo de vida, la máquina de estados y los recursos asociados a un proceso individual.
Las tareas que realiza son las siguientes:
- Generación de pulsos de transición (flancos) y evaluación continua de los enclavamientos externos y la entrada de seguridad general.
- Gestión centralizada de las órdenes de mando procedentes del HMI mediante pulsadores temporizados (Marcha, Paro, Pausa, Reanudar, Salto de etapa y Reset de errores).
- Ejecución cíclica de la máquina de estados (Grafcet) del proceso, gestionando las etapas de Reposo/Finalizado, Arrancando, En Marcha, Pausando/Pausado/Reanudando, Finalizando y En Error.
- Administración dinámica de las entidades operativas (equipos, válvulas, motores): validación de disponibilidad, captura/liberación, y asignación de sus estados físicos y lógicos (Producción, CIP, SIP, Standby, Con Producto, Con Agua, Vacía).
- Monitoreo consolidado de alarmas, agrupando fallos de dispositivos o de usuario para abortar el proceso si la configuración lo requiere.
- Gestión de transiciones y recursos internos de la etapa actual: salto de etapa (forzado o automático), temporizaciones (TON, TONR, Tiempo de Etapa) y volumetría (Litros de Etapa).
- Registro de datos de informe operativo, capturando marcas de tiempo de inicio/fin y contabilizando el tiempo en marcha y total.
- Generación y envío estructurado de registros de trazabilidad al sistema para auditar los cambios de estado principales (Inicio, Pausa, Reanudar, Fin), saltos de etapa y errores.
Interfaz principal
Entradas:
| Variable | Tipo / inicialización |
|---|---|
Pulso1Seg |
Bool |
Usuario |
String |
FechaHoraActual |
DTL |
PrimerArranque |
Bool |
SeguridadOk |
Bool |
ComunicacionesOk |
Bool |
HabilitacionErrores |
Bool |
HabilitacionErroresEntidades |
Bool |
HabilitacionErroresDispositivos |
Bool |
HabilitacionAbortarErrores |
Bool |
TiempoPulsadores |
Int |
Entrada/salida (in/out):
| Variable | Tipo / inicialización |
|---|---|
PRO |
_.UDT_ZC_PRO_PROCESO |
Temporales:
| Variable | Tipo / inicialización |
|---|---|
for_i |
Int |
t_TipoError |
Int |
t_DispNumero |
Int |
t_EntidadesCargadas |
Bool |
t_ErrorYaRegistrado |
Bool |
Estado/estáticos:
| Variable | Tipo / inicialización |
|---|---|
CONSTANT REANUDANDO |
USInt := 3 |
ARRANCANDO |
USInt := 4 |
EN_MARCHA |
USInt := 5 |
PAUSANDO |
USInt := 6 |
PAUSADO |
USInt := 7 |
FINALIZANDO |
USInt := 8 |
FINALIZADO |
USInt := 0 |
EN_ERROR |
USInt := 10 |
COMPROBACION_ERRORES |
USInt := 0 |
COMPROBACION_ENTIDADES |
USInt := 1 |
ARRANQUE_OK |
USInt := 2 |
ERR_ENT_NO_DISP |
USInt := 1 |
ERR_ENT_ARRANQUE |
USInt := 2 |
ERR_ENT_EN_ERROR |
USInt := 3 |
ERR_ENTRADA_SEG |
USInt := 4 |
ERR_COM_NOOK |
USInt := 5 |
ERR_PRIMER_ARRANQUE |
USInt := 5 |
AVI_PARO_OP |
USInt := 2 |
ENC_ENTRADA_SEG |
USInt := 1 |
ENC_COM_NO_OK |
USInt := 2 |
Dependencias
| Clase | Elementos referenciados/llamados |
|---|---|
| DB | DB6_ENTIDAD |
| FC | FC15001_ZC_INT_TO_STRING, FC15025_ZC_CONTADOR_TIEMPO, FC15026_ZC_PULSADOR, FC15151_ZC_MARCHA_PARO_SEC, FC2928_ZC_TON_INDV, FC2930_ZC_TONR_INDV, FC4_ZC_ENT_DISPONIBILIDAD, FC6_ZC_ENT_ESTADO, FC8_ZC_TRZ_REGISTRO |
| Instrucción Siemens / librería | USInt |
| UDT | UDT_ZC_CONTADOR_TIEMPO, UDT_ZC_DISP_TON, UDT_ZC_DISP_TONR, UDT_ZC_FECHA, UDT_ZC_MARCHA_PARO_SEC, UDT_ZC_PRO_LITROS_ETAPA, UDT_ZC_PRO_PROCESO, UDT_ZC_PRO_TIEMPO_ETAPA, UDT_ZC_PULSADOR |
Lógica clave
Flujo organizado en las regiones: COMPROBACION_PROCESO_HABILITADO → GESTION_PULSOS_ESTADOS → PULSADORES → RESET_ORDENES_PREVIAS → PRIMER_ARRANQUE → ENTRADA_SEGURIDAD → COMUNICACIONES_NO_OK → ENCLAVAMIENTO → BITS_ESTADO → PERMISO_PULSADORES → MAQUINA_DE_ESTADOS → FINALIZADO → RESET_VARIABLES → FINALIZADO_TO_ARRANCANDO → ARRANCANDO → SECUENCIA_ARRANQUE → COMPROBACION_ERRORES → COMPROBACION_ENTIDADES → ARRANQUE_OK → EN_MARCHA → EN_MARCHA_A_PAUSANDO → EN_MARCHA_A_PAUSANDO_POR_ERROR → EN_MARCHA_A_FINALIZANDO → PAUSANDO → PAUSANDO_A_PAUSADO → PAUSADO → PAUSADO_A_EN_ERROR → PAUSADO_A_REANUDANDO → PAUSADO_A_FINALIZANDO → REANUDANDO → REANUDANDO_A_EN_MARCHA → REANUDANDO_A_EN_ERROR → REANUDANDO_A_ARRANCANDO → FINALIZANDO → LIBERAR_ENTIDADES → FINALIZANDO_A_FINALIZADO → EN_ERROR → EN_ERROR_A_PAUSADO → EN_ERROR_A_FINALIZANDO → ESTADO_DESCONOCIDO → ENTIDADES → GESTION_DISPONIBILIDAD_Y_ESTADOS → CAPTURAR_LIBERAR_ENTIDADES → LIBERAR_ENTIDAD → CAPTURAR_ENTIDAD → ERRORES → ALGUN_ERROR → RECONOCER_ERRORES → AVISOS → VENTANA_DE_AVISOS → CAMBIO_ETAPA → TIEMPO_ETAPA → LITROS_ETAPA → TEMPORIZADORES → BIT_M → RESET_ORDENES_INCONDICIONALES → TRAZABILIDAD → TRAZA_INICIO → TRAZA_PAUSA → TRAZA_REANUDAR → TRAZA_ERROR → TRAZA_FIN. Mecanismos relevantes detectados: recorridos iterativos, máquina de estados/selección CASE, decisiones condicionales, temporización IEC. Operaciones señaladas por el código: ==========================================================================================================; Si el proceso no esta habilitado, salimos de la funcion; Flancos de estado de procesos; Actualizar Estado y Etapa Anterior; Pulsador marcha; Pulsador paro; Pulsador pausa; Pulsador reanudar; Pulsador reset errores; Pulsador salto etapa.
FC FC6_ZC_ENT_ESTADO
- Archivo:
Bloques de programa/ZC_Estandar_Alimentacion/300_Procesos_Gestor/FC6_ZC_ENT_ESTADO.s7dcl - Tipo: FC; retorno
Void
Propósito general
Función para la gestión integral de estados, disponibilidad y supervisión de los dispositivos asociados a una entidad.
Las tareas que realiza son las siguientes:
- Supervisión de dispositivos: Escaneo cíclico de los dispositivos vinculados a la entidad (Válvulas, Motores, Variadores y Sinamics) mediante un bucle FOR.
- Verificación de alarmas generales (Alarmas_General) y estados de mando manual (Estado_AutoMan) en cada equipo.
- Identificación del tipo de incidencia en las salidas TipoError (1 para Error, 2 para Manual) y reporte del índice del dispositivo afectado en DispNumero.
- Cálculo de disponibilidad: Determinación del estado Disponible basándose en la ausencia de alarmas, mandos manuales, capturas activas y estados de proceso (Producción, CIP, SIP, Standby).
- Actualización del estado Capturada si la entidad tiene una asignación distinta de cero.
- Gestión de códigos de estado: Asignación dinámica del código numérico CodEstado según la fase de operación actual (Producción: 1000, CIP: 2000, SIP: 3000, Standby: 4000).
- Refinamiento del código según el contenido detectado (Producto: +10, Agua: +20, Vacío: +30).
- Registro de estados de limpieza (Sucia: 10000, Limpia: 11000, Esterilizada: 12000).
- Sincronización de producto: Actualización de la variable Producto con el valor de entrada CodigoProducto siempre que la entidad tenga un estado activo.
Interfaz principal
Entradas:
| Variable | Tipo / inicialización |
|---|---|
Entidad |
Int |
TipoProceso |
Int |
CodigoProducto |
Int |
Salidas:
| Variable | Tipo / inicialización |
|---|---|
TipoError |
Int |
DispNumero |
Int |
Temporales:
| Variable | Tipo / inicialización |
|---|---|
for_i |
Int |
t_DispError |
Bool |
t_DispManual |
Bool |
t_DispNumero |
Int |
Estado/estáticos:
| Variable | Tipo / inicialización |
|---|---|
CONSTANT DISP_V |
Int := 1 |
DISP_M |
Int := 2 |
DISP_M_VF |
Int := 3 |
DISP_M_SINA |
Int := 4 |
Dependencias
| Clase | Elementos referenciados/llamados |
|---|---|
| DB | DB2010_V, DB2015_M, DB2016_M_VF, DB2017_M_SINA, DB6_ENTIDAD |
Lógica clave
Flujo organizado en las regiones: GESTION_ENTIDADES → COMPROBACION_DISPOSITIVOS → VALVULA → MOTOR → MOTOR_SINAMICS → MOTOR_VARIADOR → ASIGNACION_ESTADOS. Mecanismos relevantes detectados: recorridos iterativos, máquina de estados/selección CASE, decisiones condicionales. Operaciones señaladas por el código: ==========================================================================================================; Asignacion de estado entidad capturada; Reset de estados; Comprobacion de estado de dispositivo declarados dentro de la entidad; Se revisan solamente las entidades declaradas; Comprobacion de errores o dispositivo en manual; Activacion de estado en error; Activacion de estado en manual; Asignacion de estado disponible; Asignacion de codigo de estado.