1
28_500_Datos_Trazabilidad
Aketza edited this page 2026-07-22 08:41:30 +02:00

Análisis — Bloques de programa/ZC_Estandar_Alimentacion/500_Datos_Trazabilidad

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.

DB DB7_TRZ

  • Archivo: Bloques de programa/ZC_Estandar_Alimentacion/500_Datos_Trazabilidad/DB7_TRZ.s7dcl
  • Tipo: DB

Propósito general

Bloque de datos DB7_TRZ que centraliza el estado persistente y/o de intercambio asociado a DB7 TRZ. No ejecuta lógica: proporciona memoria estructurada a los bloques consumidores.

Interfaz principal

Estado retentivo:

Variable Tipo / inicialización
Gestion _.UDT_ZC_TRZ_GESTION
Buffer Array[0.._.N_MAX_TRAZA_BUFFER] of _.UDT_ZC_TRZ_DATOS

Dependencias

Clase Elementos referenciados/llamados
UDT UDT_ZC_TRZ_DATOS, UDT_ZC_TRZ_GESTION

Lógica clave

Elemento declarativo; no contiene flujo ejecutable. La lógica reside en los FC/FB/OB que leen o modifican sus campos.

FC FC7_ZC_TRZ_GESTOR

  • Archivo: Bloques de programa/ZC_Estandar_Alimentacion/500_Datos_Trazabilidad/FC7_ZC_TRZ_GESTOR.s7dcl
  • Tipo: FC; retorno Void

Propósito general

Función principal para la gestión de mensajes de trazabilidad y su envío estructurado a los sistemas de supervisión. Las tareas que realiza son las siguientes: - Búsqueda en orden inverso dentro del buffer para localizar y extraer el último registro con orden de registrar. - Transferencia del registro a variables de gestión estáticas, formateo de cadenas de tiempo y usuario, y liberación de la posición ocupada en el buffer. - Ejecución de la Etapa Reposo: Con un registro habilitado y conexión activa, lanza la orden de inicio de secuencia. - Ejecución de la Etapa Comprobaciones Iniciales: Valida que la categoría del evento se encuentre en los límites permitidos (forzando una categoría de usuario si excede el índice), limpia las confirmaciones previas y espera la actualización temporal. - Ejecución de la Etapa Generar Texto: Envía la orden de generación de textos a los SCADAs habilitados, transitando al recibir la confirmación de todos o al superar un tiempo de espera de seguridad. - Ejecución de la Etapa Lanzar Aviso: Activa la señal de aviso correspondiente a la categoría de la trazabilidad procesada. - Ejecución de la Etapa Espera: Retiene el aviso activo durante el tiempo configurado para garantizar su captura en los sistemas de supervisión. - Ejecución de la Etapa Borrar Texto: Lanza la orden de limpieza de textos en pantalla a todos los SCADAs. - Ejecución de la Etapa Quitar Aviso: Desactiva la señal de aviso y verifica mediante un tiempo corto que el evento ha caído. - Ejecución de la Etapa Borrar Datos: Inicializa por completo los valores, códigos y textos del aviso actual, regresando a la etapa de reposo. - Mapeo final de las activaciones de alarma a nivel de bit, agrupándolas en dos variables tipo Word para las 32 categorías y aplicando sus respectivas máscaras de habilitación individual.

Interfaz principal

Entradas:

Variable Tipo / inicialización
Pulso1Seg Bool

Temporales:

Variable Tipo / inicialización
for_i Int
t_PosicionRegistro Int
t_RegistroEncontrado Bool
t_TextoGenerado Bool

Estado/estáticos:

Variable Tipo / inicialización
CONSTANT REPOSO Int := 0
COMPROBACION_INICIAL Int := 10
GENERAR_TEXTO Int := 20
LANZAR_AVISO Int := 30
ESPERA Int := 40
BORRAR_TEXTO Int := 50
QUITAR_AVISO Int := 60
BORRAR_DATOS Int := 70

Dependencias

Clase Elementos referenciados/llamados
DB DB7_TRZ

Lógica clave

Flujo organizado en las regiones: GESTION_TRAZAGESTION_ULTIMO_REGISTROGESTION_ORDEN_INICIARSECUENCIA_TRAZA#REPOSO#COMPROBACION_INICIAL#GENERAR_TEXTO#LANZAR_AVISO#ESPERA#BORRAR_TEXTO#QUITAR_AVISO#BORRAR_DATOSACTIVACION_ALARMAS. Mecanismos relevantes detectados: recorridos iterativos, máquina de estados/selección CASE, decisiones condicionales. Operaciones señaladas por el código: ==========================================================================================================; Si la gestion esta habilitada, se busca el ultimo registro y se mueve a la variable de gestion de avisos para; los sistemas de supervision; Buscamos el ultimo registro; Registro encontrado; Si hemos encontrado el registro, copiamos a variable estatica; Copiamos el los datos de la traza a variable estatica para tratarla; Quitamos el registro del buffer; =============================================================================; Si existe registro a trazar, lanzamos la orden de iniciar la secuencia.

FC FC8_ZC_TRZ_REGISTRO

  • Archivo: Bloques de programa/ZC_Estandar_Alimentacion/500_Datos_Trazabilidad/FC8_ZC_TRZ_REGISTRO.s7dcl
  • Tipo: FC; retorno Void

Propósito general

Función encargada de almacenar de forma secuencial un nuevo evento de trazabilidad dentro del buffer de registros. Las tareas que realiza son las siguientes: - Verifica que la gestión general de trazabilidad se encuentre habilitada en el sistema. - Desplaza el contenido actual del buffer de trazas una posición hacia abajo mediante la instrucción MOVE_BLK_VARIANT, liberando el primer índice. - Convierte la marca de tiempo de entrada (formato DTL) a una cadena de texto (String) haciendo uso de la función FC15006_ZC_DTL_TO_STRING. - Almacena los parámetros del nuevo registro (orden de registrar, marca de tiempo, categoría, códigos numéricos enteros y reales) en la posición inicial (índice 0) del buffer. - Valida la cadena de caracteres correspondiente al usuario: si se encuentra vacía, registra una cadena de espacios por defecto; en caso contrario, asigna el nombre de usuario proporcionado en la entrada.

Interfaz principal

Entradas:

Variable Tipo / inicialización
FechaHora DTL
Registrar USInt
Categoria Int
User String
CodInt_1 Int
CodInt_2 Int
CodInt_3 Int
CodInt_4 Int
CodInt_5 Int
CodReal_1 Real
CodReal_2 Real

Temporales:

Variable Tipo / inicialización
t_dummy Int

Dependencias

Clase Elementos referenciados/llamados
DB DB7_TRZ
FC FC15006_ZC_DTL_TO_STRING
Instrucción Siemens / librería MOVE_BLK_VARIANT

Lógica clave

Flujo organizado en las regiones: GESTION_REGISTRO_TRAZA. Mecanismos relevantes detectados: decisiones condicionales. Operaciones señaladas por el código: ==========================================================================================================; Si la trazabilidad esta habilitada; Desplazamos los datos una posicion hacia abajo; Guardamos el nuevo registro en la primera posicion.