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

Análisis — Bloques de programa/ZC_Estandar_Alimentacion/300_Procesos_Controles

Cobertura: 2 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.

FB FB15152_ZC_PARO_SEC

  • Archivo: Bloques de programa/ZC_Estandar_Alimentacion/300_Procesos_Controles/FB15152_ZC_PARO_SEC.s7dcl
  • Tipo: FB

Propósito general

El bloque FB15051_PARO_SECUENCIAL implementa un secuenciador bidireccional para el paro ordenado de un array de dispositivos. Permite detener los dispositivos uno a uno esperando una confirmación por etapa, y rearmar la secuencia en sentido inverso si se retira la orden de marcha, continuando desde la última etapa alcanzada en lugar de reiniciar desde el inicio. Funcionalidades principales: - Validación del número de dispositivos: #NumeroDispositivos se acota entre 1 y la constante de dimensionamiento #N_MAX. - Estado REPOSO: bloque en espera. Al recibir #MarchaSecuenciaParo := TRUE se inicializa el índice y se transita a la etapa PARANDO. - Estado PARANDO: avanza secuencialmente por los dispositivos de menor a mayor índice. Cada dispositivo se considera parado cuando se cumple #ConfirmacionDisp[i] = TRUE durante #TiempoEntreEtapas segundos. Al confirmar, se incrementa el índice hasta superar #s_NumeroDispositivos, momento en el que se transita a FINALIZADO. Si durante esta etapa se desactiva #MarchaSecuenciaParo, se invierte el sentido y se pasa a REARMANDO sin perder la posición alcanzada. - Estado REARMANDO: retrocede secuencialmente por los dispositivos de mayor a menor índice. Cada dispositivo se considera rearmado cuando #ConfirmacionDisp[i] = FALSE durante #TiempoEntreEtapas segundos. Al rearmar, se decrementa el índice hasta alcanzar 1, momento en el que se transita a REPOSO. Si durante esta etapa se vuelve a activar #MarchaSecuenciaParo, se invierte nuevamente el sentido y se pasa a PARANDO desde la posición actual. - Estado FINALIZADO: secuencia de paro completa. Al retirar #MarchaSecuenciaParo, se rearman los dispositivos en orden inverso empezando desde el último, transitando a REARMANDO. - Mapeado dinámico de salidas: para cada dispositivo se activa #ParoDispositivo[i] := TRUE si su índice es menor o igual al puntero actual y la etapa es PARANDO; en el resto de casos se mantiene en FALSE. Esto garantiza que los dispositivos ya parados en la fase actual permanezcan parados durante el rearmado inverso de los posteriores. - Señales de estado: #SecReposo indica que la secuencia está en REPOSO y #SecParoFinalizada que ha terminado (FINALIZADO). - Contadores de tiempo por etapa del tipo ZC_TIEMPO_ETAPA con base de tiempo en segundos (#Pulso1Seg). > Restricciones: PLC serie 1200/1500.

Interfaz principal

Entradas:

Variable Tipo / inicialización
Pulso1Seg Bool
MarchaSecuenciaParo Bool
NumeroDispositivos Int := 4
TiempoEntreEtapas Int := 2
ConfirmacionDisp Array[1..#N_MAX] of Bool

Salidas:

Variable Tipo / inicialización
SecParoFinalizada Bool
SecReposo Bool
ParoDispositivo Array[1..#N_MAX] of Bool

Estado/estáticos:

Variable Tipo / inicialización
s_NumeroDispositivos Int

Estado retentivo:

Variable Tipo / inicialización
s_EtapaActual Int
s_Indice Int
s_TiempoActual Int

Temporales:

Variable Tipo / inicialización
for_i Int

Estado/estáticos:

Variable Tipo / inicialización
CONSTANT N_MAX Int := 8
REPOSO Int := 0
PARANDO Int := 10
REARMANDO Int := 20
FINALIZADO Int := 30

Dependencias

No se detectan llamadas ni referencias a otros bloques exportados. Para un DB/UDT esto significa que es una hoja declarativa; sus consumidores aparecen en el mapa inverso.

Lógica clave

Flujo organizado en las regiones: LIMITESSECUENCIADOR_BIDIRECCIONALMAPEADO_DINAMICO_DE_SALIDAS. Mecanismos relevantes detectados: recorridos iterativos, máquina de estados/selección CASE, decisiones condicionales. Operaciones señaladas por el código: (C)Copyright ZeusControl 2023 - 2026; ==========================================================================================================; Limite de seguridad; Contador de tiempo con confirmacion de dispositivo; Tiempo cumplido; Comprobación de fin de secuencia de paro; Si se desactiva la orden de marcha de la secuencia, comenzamos el rearme inverso; Límite de seguridad inferior; Contador de tiempo sin confirmacion de dispositivo; Si se vuelve a dar marcha, invertimos dirección nuevamente.

FC FC15151_ZC_MARCHA_PARO_SEC

  • Archivo: Bloques de programa/ZC_Estandar_Alimentacion/300_Procesos_Controles/FC15151_ZC_MARCHA_PARO_SEC.s7dcl
  • Tipo: FC; retorno Void

Propósito general

Función encargada de la gestión de secuencias de arranque y parada escalonada de hasta 8 dispositivos de forma temporizada. - Evaluar dinámicamente los parámetros de configuración, limitando el número de elementos de la secuencia a un rango válido entre 1 y 8 mediante la variable NumElementos. - Gestionar el traspaso del tiempo de espera entre etapas, aplicando de forma automática los parámetros TiempoEntreMarcha o TiempoEntreParo según el estado de la orden activa en la entrada Marcha. - Ejecutar una máquina de estados para la transición secuencial de las etapas de operación, controlando el tiempo de permanencia en cada fase mediante la señal base de tiempo Pulso1Seg. - Monitorizar de forma continua la señal de Seguridad, forzando el reinicio seguro de la máquina de estados a la etapa de reposo y limpiando los temporizadores en caso de pérdida. - Calcular y activar las señales de salida operativas, incluyendo los bits individuales de activación por dispositivo (M[1] a M[8]) y las confirmaciones de ciclo finalizado (SecMarchaCompletada y SecParoCompletada).

Interfaz principal

Entradas:

Variable Tipo / inicialización
Pulso1Seg Bool
Seguridad Bool
Marcha Bool

Entrada/salida (in/out):

Variable Tipo / inicialización
MP_SEC _.UDT_ZC_MARCHA_PARO_SEC

Estado/estáticos:

Variable Tipo / inicialización
CONSTANT REPOSO Int := 0
MARCHA_1 Int := 10
MARCHA_2 Int := 20
MARCHA_3 Int := 30
MARCHA_4 Int := 40
MARCHA_5 Int := 50
MARCHA_6 Int := 60
MARCHA_7 Int := 70
MARCHA_8 Int := 80

Dependencias

Clase Elementos referenciados/llamados
UDT UDT_ZC_MARCHA_PARO_SEC

Lógica clave

Flujo organizado en las regiones: TRASPASO_PARAMETROSSECUENCIATIEMPO_DE_ETAPASALIDAS. Mecanismos relevantes detectados: máquina de estados/selección CASE, decisiones condicionales. Operaciones señaladas por el código: ==========================================================================================================; Limite de numero de elementos; Traspaso de set point tiempo etapa; Seguridad; Activacion tiempo de etapa; Con tiempo de etapa cumplido; Estando en marcha, si hay mas elementos saltamos a la siguiente etapa, de lo contrario, reseteamos el tiempo de etapa; Estando en marcha, reseteamos el tiempo de etapa; Secuencia paro completada; Secuencia Marcha completada.