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

Análisis — Bloques de programa/ZC_Estandar_Alimentacion/000_Sistema_Datos

Cobertura: 4 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 DB1_SYS

  • Archivo: Bloques de programa/ZC_Estandar_Alimentacion/000_Sistema_Datos/DB1_SYS.s7dcl
  • Tipo: DB

Propósito general

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

Interfaz principal

Estado/estáticos:

Variable Tipo / inicialización
"ON" Bool
OFF Bool
SIM Bool
ACK Bool
ARRANQUE Bool
Pulso100ms Bool
Pulso1seg Bool
Pulso2seg Bool
Pulso5seg Bool
Pulso1min Bool
Pulso1h Bool
FlipFlop1seg Bool
FlipFlop2seg Bool
FlipFlop5seg Bool
ResetEntidades Bool
SincronizarFecha Bool
WatchDog Int
Pulsador STRUCT EscribirFechaHora : _.UDT_ZC_PULSADOR
Ack Array[0..9] of _.UDT_ZC_PULSADOR
FechaHoraActual DTL

Estado retentivo:

Variable Tipo / inicialización
FechaHoraNuevaManual DTL
FechaHoraNuevaAuto DTL

Estado/estáticos:

Variable Tipo / inicialización
TiempoCiclo Real

Estado retentivo:

Variable Tipo / inicialización
Usuario STRUCT Seleccion : Array[0..9] of STRUCT Orden : Bool
Usuario String[25]
Actual String[25]

Estado/estáticos:

Variable Tipo / inicialización
RedProfinet Array[0..1023] of Bool

Estado retentivo:

Variable Tipo / inicialización
Aux STRUCT P_Trig_Pulso100ms : Bool
P_Trig_Pulso1Seg Bool
Contador2seg USInt
Contador5seg USInt
Contador1min USInt
Contador1h UInt
auxRuntime LReal

Dependencias

Clase Elementos referenciados/llamados
UDT UDT_ZC_PULSADOR

Lógica clave

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

DB DB3_CHECKSUM

  • Archivo: Bloques de programa/ZC_Estandar_Alimentacion/000_Sistema_Datos/DB3_CHECKSUM.s7dcl
  • Tipo: DB

Propósito general

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

Interfaz principal

Sin parámetros formales ni estructura VAR explícita exportada.

Dependencias

Clase Elementos referenciados/llamados
FB FB3_ZC_CHECKSUM

Lógica clave

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

FB FB3_ZC_CHECKSUM

  • Archivo: Bloques de programa/ZC_Estandar_Alimentacion/000_Sistema_Datos/FB3_ZC_CHECKSUM.s7dcl
  • Tipo: FB

Propósito general

El bloque FB3_CHECKSUM implementa la lectura del checksum del programa actual del PLC y su comparación con el checksum de fábrica, permitiendo detectar modificaciones no autorizadas en el proyecto. Funcionalidades principales: - Detección de flanco ascendente en la entrada #Comprobar para ejecutar la comprobación bajo demanda (modo "pulso"), mediante la variable interna #s_OldComprobar. - Lectura del checksum del bloque Scope:=1 (objeto PLC) con Range:=0 y Subrange:=0 (rango completo), invocando la función de sistema GetChecksum a través del FB GetChecksum y depositando el resultado en #s_EstadoCheckSum. - Captura del checksum de fábrica: cuando se activa la entrada #Copiar, se copia el checksum actual al valor de referencia #s_CheckSumFabrica, operación que se realiza una sola vez durante la puesta en marcha para fijar la línea base. - Comparación continua entre el checksum actual y el de fábrica, exponiendo el resultado en la salida #CheckSumOK (TRUE cuando coinciden). > Restricciones: Ninguna.

Interfaz principal

Entradas:

Variable Tipo / inicialización
Comprobar Bool
Copiar Bool

Salidas:

Variable Tipo / inicialización
CheckSumOK Bool

Estado/estáticos:

Variable Tipo / inicialización
s_GetCheckSum GetChecksum

Estado retentivo:

Variable Tipo / inicialización
s_EstadoCheckSum Array[0..7] of Byte
s_CheckSumFabrica Array[0..7] of Byte

Estado/estáticos:

Variable Tipo / inicialización
s_Comprobar Bool
s_OldComprobar Bool

Dependencias

Clase Elementos referenciados/llamados
Instrucción Siemens / librería GetChecksum

Lógica clave

Flujo organizado en las regiones: ORDEN_COMPROBACIONLECTURA_CHECKSUMSALIDAS. Mecanismos relevantes detectados: decisiones condicionales. Operaciones señaladas por el código: (C)Copyright ZeusControl 2020 - 2026; ==========================================================================================================; Comprobacion mediante un pulso; Estado anterior; Copia de checksum a valor de fabrica; Checksum OK.

FC FC1_ZC_SISTEMA

  • Archivo: Bloques de programa/ZC_Estandar_Alimentacion/000_Sistema_Datos/FC1_ZC_SISTEMA.s7dcl
  • Tipo: FC; retorno Void

Propósito general

Función central para la gestión de marcas de sistema, temporizaciones generales, usuarios y resets del sistema. En ella se realizan las siguientes acciones: - Cálculo dinámico del tiempo de ciclo del OB1 (en milisegundos) evaluando la variable auxiliar con la instrucción RUNTIME. - Tratamiento y registro de trazabilidad de los 10 pulsadores de acuse de alarmas y del pulsador de modificación de fecha/hora mediante la función FC15026_ZC_PULSADOR. - Consolidación del acuse general (ACK), agrupando las activaciones del PLC de todos los pulsadores de reconocimiento en una única marca. - Generación de marcas estáticas (ON fijo y OFF fijo) y captura del primer ciclo de escáner tras el arranque. - Creación de pulsos temporizados (100 ms, 1 s, 2 s, 5 s, 1 min, 1 h) y señales Flip-Flop a partir de las marcas de ciclo del hardware de la CPU. - Lectura constante de la fecha y hora local (RD_LOC_T) y ejecución de la escritura en el sistema (WR_SYS_T) ante una orden del HMI. - Escaneo continuo de las órdenes de selección para determinar y fijar el usuario actualmente activo en el sistema. - Ejecución bajo demanda del reset general del array de entidades (solo aplicable con procesos parados), reinicializando sus variables a estados de disponibilidad, limpieza y vacío. - Llamada a la rutina DB3_CHECKSUM para la validación y gestión de la suma de comprobación del programa.

Interfaz principal

Entradas:

Variable Tipo / inicialización
CPU_MarcasCiclo Byte
CPU_MarcasSistema Byte
RedProfinet HW_IOSYSTEM

Temporales:

Variable Tipo / inicialización
for_i Int
t_RetVal Int

Dependencias

Clase Elementos referenciados/llamados
DB DB1_SYS, DB3_CHECKSUM, DB6_ENTIDAD
FB FB3_ZC_CHECKSUM
FC FC15026_ZC_PULSADOR
Instrucción Siemens / librería DeviceStates, RD_LOC_T, RUNTIME, WR_SYS_T

Lógica clave

Flujo organizado en las regiones: TIEMPO_DE_CICLOGESTION_PULSADORESGESTION_ACUSE_GENERALGESTION_MARCAS_GENERALES_Y_FLANCOSFECHA_Y_HORAUSUARIOSRESET_ENTIDADESCHECKSUMRED_PROFINET. Mecanismos relevantes detectados: recorridos iterativos, decisiones condicionales, detección de flancos. Operaciones señaladas por el código: ==========================================================================================================; Se almacena el tiempo de ciclo del OB1; Gestion pulsadores de ack; Gestion pulsador cambio de fecha y hora; Activacion de marca de acuse general; Marca siempre a ON; Marca siempre a OFF; Marca primer arranque; Pulso por 100 ms; Pulso por 1 segundo.