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_COMPROBACION → LECTURA_CHECKSUM → SALIDAS. 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_CICLO → GESTION_PULSADORES → GESTION_ACUSE_GENERAL → GESTION_MARCAS_GENERALES_Y_FLANCOS → FECHA_Y_HORA → USUARIOS → RESET_ENTIDADES → CHECKSUM → RED_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.