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_TRAZA → GESTION_ULTIMO_REGISTRO → GESTION_ORDEN_INICIAR → SECUENCIA_TRAZA → #REPOSO → #COMPROBACION_INICIAL → #GENERAR_TEXTO → #LANZAR_AVISO → #ESPERA → #BORRAR_TEXTO → #QUITAR_AVISO → #BORRAR_DATOS → ACTIVACION_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.