Análisis — Bloques de programa/ZC_Estandar_Alimentacion/500_Datos_Informes
Cobertura: 6 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 DB11_INF
- Archivo:
Bloques de programa/ZC_Estandar_Alimentacion/500_Datos_Informes/DB11_INF.s7dcl - Tipo: DB
Propósito general
Bloque de datos DB11_INF que centraliza el estado persistente y/o de intercambio asociado a DB11 INF. No ejecuta lógica: proporciona memoria estructurada a los bloques consumidores.
Interfaz principal
Estado retentivo:
| Variable | Tipo / inicialización |
|---|---|
Gestion |
_.UDT_ZC_INF_GESTION |
Buffer |
Array[0.._.N_MAX_INF_BUFFER] of _.UDT_ZC_INF_DATOS |
Dependencias
| Clase | Elementos referenciados/llamados |
|---|---|
| UDT | UDT_ZC_INF_DATOS, UDT_ZC_INF_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.
FB FB15051_ZC_INF_CPR
- Archivo:
Bloques de programa/ZC_Estandar_Alimentacion/500_Datos_Informes/FB15051_ZC_INF_CPR.s7dcl - Tipo: FB
Propósito general
Bloque de funcion para la gestión de informes de descargas de compacto de recepcion. En ella se realizan las siguientes acciones: - Cálculo dinámico de indices de array de informes. - Gestion de ordenes de inicio y fin informe. - Desplazamiento y captura de datos de informe. - Borrado de informes.
Interfaz principal
Entradas:
| Variable | Tipo / inicialización |
|---|---|
GuardarDatos |
Bool |
FinGuardarDatos |
Bool |
FechaActual |
DTL |
TipoProceso |
Int |
Destino |
Int |
Producto |
Int |
Producto1Destino |
Int |
Producto2Destino |
Int |
Nombre |
String[40] |
Matricula |
String[10] |
LetraQ |
String[10] |
KilosSP |
Real |
KilosDescargados |
Real |
DensidadMedia |
LReal |
TempMediaDescarga |
LReal |
TempMediaEnfriamiento |
LReal |
EmpujeRealizado |
Bool |
AclaradoRealizado |
Bool |
Salidas:
| Variable | Tipo / inicialización |
|---|---|
GuardarSQL |
Bool |
Entrada/salida (in/out):
| Variable | Tipo / inicialización |
|---|---|
"Mux" |
_.UDT_ZC_MUX |
Informe |
Array[*] of _.UDT_ZC_INF_CPR_PROD |
Estado retentivo:
| Variable | Tipo / inicialización |
|---|---|
s_OrdenGuardarDatos |
Bool |
s_OrdenGuardarFechaInicio |
Bool |
Estado/estáticos:
| Variable | Tipo / inicialización |
|---|---|
s_OrdenGuardarFechaFin |
Bool |
s_OrdenBorrarInforme |
Bool |
s_NumeroBorrado |
Int |
Estado retentivo:
| Variable | Tipo / inicialización |
|---|---|
s_P_Trig_TomarFechaInicio |
Bool |
s_P_Trig_TomarFechaFin |
Bool |
Temporales:
| Variable | Tipo / inicialización |
|---|---|
for_i |
Int |
t_dummyInt |
Int |
t_IndiceSuperior |
Int |
t_IndiceInferior |
Int |
t_InformeVacio |
_.UDT_ZC_INF_CPR_PROD |
Estado/estáticos:
| Variable | Tipo / inicialización |
|---|---|
CONSTANT ACTUAL |
Int := 1 |
TIPO_DESCARGA_PARCIAL |
Int := 1 |
TIPO_DESCARGA_TOTAL |
Int := 2 |
Dependencias
| Clase | Elementos referenciados/llamados |
|---|---|
| FC | FC15005_ZC_DTL_TO_ZC_FECHA |
| Instrucción Siemens / librería | MOVE_BLK_VARIANT |
| UDT | UDT_ZC_INF_CPR_PROD, UDT_ZC_MUX |
Lógica clave
Flujo organizado en las regiones: LIMITES_Y_MULTIPLEXADO → ORDEN_INICIO_FIN → ADQUISICION_DE_DATOS → BORRADO_INFORMES. Mecanismos relevantes detectados: recorridos iterativos, decisiones condicionales, detección de flancos. Operaciones señaladas por el código: ==========================================================================================================; Calculo limites array de informes; Si no hay informes configurados, salimos inmediatamente.; Limites multiplexado; Orden de inicio; Orden de fin; Estados anteriores; Con flanco de guardar datos fecha de inicio, desplazamos los registros y almacenamos la fecha de inicio; Desplazamiento de datos; Tomar valor de fecha de inicio.
FB FB15052_ZC_INF_PROD_MEM
- Archivo:
Bloques de programa/ZC_Estandar_Alimentacion/500_Datos_Informes/FB15052_ZC_INF_PROD_MEM.s7dcl - Tipo: FB
Propósito general
Bloque de funcion que implementa la gestión de los datos de informe de producción de una máquina de membranas, manteniendo un histórico de hasta #N_REGISTROS producciones con todos los datos relevantes del proceso (volúmenes, Brix, FCV, temperaturas, tiempos, destinos y producto) para su trazabilidad y consulta desde el sistema de supervisión.
Funcionalidades principales:
- Detección de flanco ascendente en las órdenes #OrdenInicioInforme y #OrdenFinInforme mediante las variables estáticas #s_P_Trig_Inicio y #s_P_Trig_Fin, generando los pulsos internos #s_OrdenInicioInforme y #s_OrdenFinInforme.
- Inicialización de informe: al recibir #s_OrdenInicioInforme se desplazan los informes existentes una posición hacia abajo mediante MOVE_BLK_VARIANT, se reinicializan los campos del nuevo informe activo (#Informe[#ACTUAL]: fechas, tiempo de producción, destinos, producto, litros, Brix, FCV y temperaturas) y se almacena la fecha/hora de inicio mediante la conversión realizada por FC15005_ZC_DTL_TO_ZC_FECHA.
- Datos en curso: mientras #EnProduccion está activo, se copian en #Informe[#ACTUAL] los valores de proceso en tiempo real: tiempo de producción, destinos de concentrado y permeado, código de producto, litros (entrada, concentrado y permeado por diferencia), Brix, FCV y las tres temperaturas (concentrado, permeado y entrada), aplicando LREAL_TO_REAL para adaptar la precisión al tipo de dato del UDT.
- Fin de informe: al detectar #s_OrdenFinInforme se registra la fecha/hora de fin en #Informe[#ACTUAL].FechaFin.
- Borrado masivo: la entrada #s_Borrar permite limpiar completamente todos los registros del array, inicializando fechas, tiempos, litros, Brix, FCV, temperatura de concentrado y código de producto a sus valores neutros. La propia variable de orden se autodesactiva tras la operación.
> Restricciones: PLC serie 1200/1500.
Interfaz principal
Entradas:
| Variable | Tipo / inicialización |
|---|---|
OrdenInicioInforme |
Bool |
OrdenFinInforme |
Bool |
EnProduccion |
Bool |
FechaHoraActual |
DTL |
Producto |
Int |
DestinoConcentrado |
Int |
DestinoPermeado |
Int |
LitrosEntrada |
LReal |
LitrosConcentrado |
LReal |
Brix |
LReal |
Fcv |
Real |
TempEntrada |
LReal |
TempConcentrado |
LReal |
TempPermeado |
LReal |
TiempoProduccion |
_.UDT_ZC_CONTADOR_TIEMPO |
Entrada/salida (in/out):
| Variable | Tipo / inicialización |
|---|---|
Informe |
Array[*] of _.UDT_ZC_INF_PROD_MEM |
Estado/estáticos:
| Variable | Tipo / inicialización |
|---|---|
s_OrdenInicioInforme |
Bool |
s_OrdenFinInforme |
Bool |
Estado retentivo:
| Variable | Tipo / inicialización |
|---|---|
s_oldInicio |
Bool |
s_oldFin |
Bool |
Estado/estáticos:
| Variable | Tipo / inicialización |
|---|---|
s_OrdenBorrarInforme |
Bool |
s_NumeroBorrado |
Int |
Temporales:
| Variable | Tipo / inicialización |
|---|---|
for_i |
Int |
t_dummyInt |
Int |
t_IndiceSuperior |
Int |
t_IndiceInferior |
Int |
t_InformeVacio |
_.UDT_ZC_INF_PROD_MEM |
Estado/estáticos:
| Variable | Tipo / inicialización |
|---|---|
CONSTANT ACTUAL |
Int := 1 |
Dependencias
| Clase | Elementos referenciados/llamados |
|---|---|
| FC | FC15005_ZC_DTL_TO_ZC_FECHA |
| Instrucción Siemens / librería | MOVE_BLK_VARIANT |
| UDT | UDT_ZC_CONTADOR_TIEMPO, UDT_ZC_INF_PROD_MEM |
Lógica clave
Flujo organizado en las regiones: LIMITES → GESTION_ORDENES → INICIALIZACION → DATOS_DURANTE_PRODUCCION → FIN_INFORME → BORRADO_DATOS. Mecanismos relevantes detectados: recorridos iterativos, decisiones condicionales, detección de flancos. Operaciones señaladas por el código: (C)Copyright ZeusControl 2023 - 2026; ==========================================================================================================; Calculo limites array de informes; Si no hay informes configurados, salimos inmediatamente.; Orden de inicio; Orden de fin; Estados anteriores; Desplazamiento de datos; Reinicializacion de los datos; Guardado de fecha y hora actual.
FB FB15053_ZC_INF_LIMP_MAQ
- Archivo:
Bloques de programa/ZC_Estandar_Alimentacion/500_Datos_Informes/FB15053_ZC_INF_LIMP_MAQ.s7dcl - Tipo: FB
Propósito general
Bloque de funcion que implementa la gestión de los datos de informe de limpieza de la máquina, manteniendo un histórico de hasta #N_REGISTROS limpiezas con todos los datos relevantes de cada fase (básica 1, ácida y básica 2): tiempo total, tipo de limpieza, temperaturas, conductividades de limpieza y enjuague, porcentaje de caudal de referencia y tiempo de recirculación por etapa. Se utiliza en máquinas de membranas para trazabilidad y consulta desde el sistema de supervisión.
Funcionalidades principales:
- Detección de flanco ascendente y descendente en #EnLimpieza mediante las variables estáticas #s_P_Trig_Inicio y #s_P_Trig_Fin, generando el pulso de inicio #s_OrdenInicioInforme y el de fin #s_OrdenFinInforme.
- Inicialización del informe: al recibir #s_OrdenInicioInforme se desplazan los informes existentes una posición hacia abajo mediante MOVE_BLK_VARIANT, se reinicializan a cero los contadores internos de recirculación (#TiempoRecircBasica1, #TiempoRecircAcida, #TiempoRecircBasica2) y los campos del nuevo informe activo (#Informe[1]: tipo de limpieza, tiempos de recirculación por fase, tiempo total, temperaturas, conductividades y porcentajes de caudal de referencia de cada fase). Se almacena la fecha/hora de inicio mediante la conversión realizada por FC15005_ZC_DTL_TO_ZC_FECHA.
- Datos en curso: mientras #EnLimpieza está activo, se incrementan los contadores de tiempo de recirculación de cada fase (#TiempoRecircBasica1, #TiempoRecircAcida, #TiempoRecircBasica2) cuando el pulso de 1 segundo y el flag de fase correspondiente (#LimpBasica1, #LimpAcida, #LimpBasica2) están activos, y se copian en #Informe[1] los valores de proceso en tiempo real: tipo de limpieza, tiempo total de limpieza, temperatura, conductividad de limpieza, conductividad de enjuague, porcentaje de caudal de referencia y tiempo de recirculación para cada una de las tres fases.
- Fin de informe: al detectar #s_OrdenFinInforme se registra la fecha/hora de fin en #Informe[1].FechaFin.
- Borrado masivo: la entrada #s_Borrar permite limpiar completamente todos los registros del array, inicializando fechas, tipo de limpieza, tiempos de recirculación, tiempo total, temperaturas, conductividades y porcentajes de caudal de referencia a sus valores neutros. La propia variable de orden se autodesactiva tras la operación.
> Restricciones: Ninguna.
Interfaz principal
Entradas:
| Variable | Tipo / inicialización |
|---|---|
EnLimpieza |
Bool |
LimpBasica1 |
Bool |
LimpAcida |
Bool |
LimpBasica2 |
Bool |
Pulso1Seg |
Bool |
FechaHoraActual |
DTL |
TempBasica1 |
LReal |
CTLimpBasica1 |
LReal |
CTEnjBasica1 |
LReal |
PorcentajeQRefBasica1 |
LReal |
TempAcida |
LReal |
CTLimpAcida |
LReal |
CTEnjAcida |
LReal |
PorcentajeQRefAcida |
LReal |
TempBasica2 |
LReal |
CTLimpBasica2 |
LReal |
CTEnjBasica2 |
LReal |
PorcentajeQRefBasica2 |
LReal |
TipoLimpieza |
Int |
TiempoLimpieza |
_.UDT_ZC_CONTADOR_TIEMPO |
Entrada/salida (in/out):
| Variable | Tipo / inicialización |
|---|---|
Informe |
Array[*] of _.UDT_ZC_INF_LIMP_MAQ |
Estado/estáticos:
| Variable | Tipo / inicialización |
|---|---|
s_OrdenInicioInforme |
Bool |
s_OrdenFinInforme |
Bool |
Estado retentivo:
| Variable | Tipo / inicialización |
|---|---|
s_oldInicio |
Bool |
s_oldFin |
Bool |
Estado/estáticos:
| Variable | Tipo / inicialización |
|---|---|
s_OrdenBorrarInforme |
Bool |
s_NumeroBorrado |
Int |
Estado retentivo:
| Variable | Tipo / inicialización |
|---|---|
TiempoRecircBasica1 |
Int |
TiempoRecircAcida |
Int |
TiempoRecircBasica2 |
Int |
Temporales:
| Variable | Tipo / inicialización |
|---|---|
for_i |
Int |
t_dummyInt |
Int |
t_IndiceSuperior |
Int |
t_IndiceInferior |
Int |
t_InformeVacio |
_.UDT_ZC_INF_LIMP_MAQ |
Estado/estáticos:
| Variable | Tipo / inicialización |
|---|---|
CONSTANT ACTUAL |
Int := 1 |
Dependencias
| Clase | Elementos referenciados/llamados |
|---|---|
| FC | FC15005_ZC_DTL_TO_ZC_FECHA |
| Instrucción Siemens / librería | MOVE_BLK_VARIANT |
| UDT | UDT_ZC_CONTADOR_TIEMPO, UDT_ZC_INF_LIMP_MAQ |
Lógica clave
Flujo organizado en las regiones: LIMITES → GESTION_ORDENES → INICIALIZACION → DATOS_DURANTE_PRODUCCION → FIN_INFORME → BORRADO_DATOS. Mecanismos relevantes detectados: recorridos iterativos, decisiones condicionales, detección de flancos. Operaciones señaladas por el código: (C)Copyright ZeusControl 2025 - 2026; ==========================================================================================================; Calculo limites array de informes; Si no hay informes configurados, salimos inmediatamente.; Orden inicio produccion; Orden fin produccion; Estados anteriores; Desplazamiento de datos; Reinicializacion de los datos; Guardado de fecha y hora actual.
FC FC11_ZC_INF_GESTOR
- Archivo:
Bloques de programa/ZC_Estandar_Alimentacion/500_Datos_Informes/FC11_ZC_INF_GESTOR.s7dcl - Tipo: FC; retorno
Void
Propósito general
Función para la gestión e interfaz de escritura de informes hacia el sistema SCADA/HMI mediante una máquina de estados y la lectura de un buffer.
Las tareas que realiza son las siguientes:
- Extracción de datos del buffer: Búsqueda inversa del registro más antiguo pendiente de envío evaluando la condición Registrar = 1 mediante un bucle FOR.
- Transferencia del registro a la estructura estática Gestion.Datos y generación de un Id único basado en la fecha y hora actual.
- Limpieza inmediata de todas las variables (Booleanos, Reales, Enteros, Fechas y Strings) en la posición original del buffer.
- Ejecución de la etapa REPOSO: Activación de la secuencia ante la orden OrdenIniciar, siempre que se detecte conexión con el SCADA y la habilitación general esté activa.
- Ejecución de la etapa ESPERA_ENTRE_AVISOS: Temporización basada en pulsos de 1 segundo (Pulso1Seg) antes de un reintento. Deriva a fallo si se supera el máximo de intentos.
- Ejecución de la etapa LANZAR_AVISO: Activación de la señal Aviso.Registrar hacia el SCADA y paso a espera tras cumplirse el tiempo parametrizado.
- Ejecución de la etapa ESPERA_CONFIRMACION: Monitoreo de la respuesta del sistema superior. Si Aviso.Estado es igual a 4, el envío es exitoso. Si hay error (estado 12) o agotamiento de tiempo, se incrementa el contador de intentos y se repite el ciclo.
- Ejecución de la etapa FALLO: Generación de una traza de sistema (TRZ_CAT_1_SYS) registrando el código de error TRZ_SYS_INF_ERR ante la imposibilidad de entrega del informe.
- Ejecución de la etapa BORRAR_DATOS: Reseteo íntegro de la estructura Gestion.Datos para preparar el sistema para el próximo ciclo de comunicación y retorno al estado de reposo.
Interfaz principal
Entradas:
| Variable | Tipo / inicialización |
|---|---|
Pulso1Seg |
Bool |
Temporales:
| Variable | Tipo / inicialización |
|---|---|
for_i |
Int |
t_PosicionRegistro |
Int |
t_RegistroEncontrado |
Bool |
t_RetVal |
Int |
Estado/estáticos:
| Variable | Tipo / inicialización |
|---|---|
CONSTANT REPOSO |
Int := 0 |
ESPERA_ENTRE_AVISOS |
Int := 10 |
LANZAR_AVISO |
Int := 20 |
ESPERA_CONFIRMACION |
Int := 30 |
FALLO |
Int := 40 |
BORRAR_DATOS |
Int := 50 |
Dependencias
| Clase | Elementos referenciados/llamados |
|---|---|
| DB | DB11_INF, DB1_SYS |
| FC | FC15006_ZC_DTL_TO_STRING, FC8_ZC_TRZ_REGISTRO |
Lógica clave
Flujo organizado en las regiones: GESTION_INFORMES → SECUENCIA_INFORME. Mecanismos relevantes detectados: recorridos iterativos, máquina de estados/selección CASE, decisiones condicionales. Operaciones señaladas por el código: ==========================================================================================================; =============================================================================; COPIAMOS EL ULTIMO REGISTRO (El mas antiguo) A LA VARIABLE REGISTRO QUE ES LA; ENCARGADA DE COMUNICARLA CON EL SCADA/HMI; 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 FC12_ZC_INF_REGISTRO
- Archivo:
Bloques de programa/ZC_Estandar_Alimentacion/500_Datos_Informes/FC12_ZC_INF_REGISTRO.s7dcl - Tipo: FC; retorno
Void
Propósito general
Función para el almacenamiento y estructuración masiva de registros de trazabilidad dentro del buffer de informes del sistema.
En ella se realizan las siguientes acciones:
- Comprobación de habilitación: Verificación de la variable de permiso HabilitacionGeneral; si no se encuentra activa, se omite la ejecución del bloque mediante un retorno anticipado.
- Desplazamiento de datos (FIFO):
- Ejecución de la instrucción de bloque para desplazar todos los registros existentes en el Buffer una posición hacia abajo.
- Liberación del índice 0 del array para permitir la inserción del nuevo registro sin sobrescribir el histórico reciente.
- Gestión e inserción del nuevo registro:
- Generación y asignación de un identificador único (Id) transformando la fecha y hora actual del sistema a formato cadena.
- Escritura de los metadatos de control y catalogación (Registrar, Tipo, Codigo) en la primera posición del buffer.
- Procesamiento y validación de hasta 4 marcas de tiempo dinámicas (Fecha_1 a Fecha_4), forzando una fecha por defecto (01/01/1970) si el año recibido es 0.
- Mapeo y transferencia masiva de todas las variables de proceso vinculadas al evento, incluyendo cadenas de texto (CodString_1 a 15), booleanos (Bool_1 a 32), reales (Real_1 a 20) y enteros (Int_1 a 20).
Interfaz principal
Entradas:
| Variable | Tipo / inicialización |
|---|---|
Registrar |
USInt |
Tipo |
Int |
Codigo |
String |
Fecha_1_Ano |
UInt |
Fecha_1_Mes |
USInt |
Fecha_1_Dia |
USInt |
Fecha_1_DiaSemana |
USInt |
Fecha_1_Hora |
USInt |
Fecha_1_Minuto |
USInt |
Fecha_1_Segundo |
USInt |
Fecha_1_NanoSegundo |
UDInt |
Fecha_2_Ano |
UInt |
Fecha_2_Mes |
USInt |
Fecha_2_Dia |
USInt |
Fecha_2_DiaSemana |
USInt |
Fecha_2_Hora |
USInt |
Fecha_2_Minuto |
USInt |
Fecha_2_Segundo |
USInt |
Fecha_2_NanoSegundo |
UDInt |
Fecha_3_Ano |
UInt |
Fecha_3_Mes |
USInt |
Fecha_3_Dia |
USInt |
Fecha_3_DiaSemana |
USInt |
Fecha_3_Hora |
USInt |
Fecha_3_Minuto |
USInt |
Fecha_3_Segundo |
USInt |
Fecha_3_NanoSegundo |
UDInt |
Fecha_4_Ano |
UInt |
Fecha_4_Mes |
USInt |
Fecha_4_Dia |
USInt |
Fecha_4_DiaSemana |
USInt |
Fecha_4_Hora |
USInt |
Fecha_4_Minuto |
USInt |
Fecha_4_Segundo |
USInt |
Fecha_4_NanoSegundo |
UDInt |
CodString_1 |
Int |
CodString_2 |
Int |
CodString_3 |
Int |
CodString_4 |
Int |
CodString_5 |
Int |
CodString_6 |
Int |
CodString_7 |
Int |
CodString_8 |
Int |
CodString_9 |
Int |
CodString_10 |
Int |
CodString_11 |
Int |
CodString_12 |
Int |
CodString_13 |
Int |
CodString_14 |
Int |
CodString_15 |
Int |
Bool_1 |
Bool |
Bool_2 |
Bool |
Bool_3 |
Bool |
Bool_4 |
Bool |
Bool_5 |
Bool |
Bool_6 |
Bool |
Bool_7 |
Bool |
Bool_8 |
Bool |
Bool_9 |
Bool |
Bool_10 |
Bool |
Bool_11 |
Bool |
Bool_12 |
Bool |
Bool_13 |
Bool |
Bool_14 |
Bool |
Bool_15 |
Bool |
Bool_16 |
Bool |
Bool_17 |
Bool |
Bool_18 |
Bool |
Bool_19 |
Bool |
Bool_20 |
Bool |
Bool_21 |
Bool |
Bool_22 |
Bool |
Bool_23 |
Bool |
Bool_24 |
Bool |
Bool_25 |
Bool |
Bool_26 |
Bool |
Bool_27 |
Bool |
Bool_28 |
Bool |
Bool_29 |
Bool |
Bool_30 |
Bool |
Bool_31 |
Bool |
Bool_32 |
Bool |
Real_1 |
Real |
Real_2 |
Real |
Real_3 |
Real |
Real_4 |
Real |
Real_5 |
Real |
Real_6 |
Real |
Real_7 |
Real |
Real_8 |
Real |
Real_9 |
Real |
Real_10 |
Real |
Real_11 |
Real |
Real_12 |
Real |
Real_13 |
Real |
Real_14 |
Real |
Real_15 |
Real |
Real_16 |
Real |
Real_17 |
Real |
Real_18 |
Real |
Real_19 |
Real |
Real_20 |
Real |
Int_1 |
Int |
Int_2 |
Int |
Int_3 |
Int |
Int_4 |
Int |
Int_5 |
Int |
Int_6 |
Int |
Int_7 |
Int |
Int_8 |
Int |
Int_9 |
Int |
Int_10 |
Int |
Int_11 |
Int |
Int_12 |
Int |
Int_13 |
Int |
Int_14 |
Int |
Int_15 |
Int |
Int_16 |
Int |
Int_17 |
Int |
Int_18 |
Int |
Int_19 |
Int |
Int_20 |
Int |
Temporales:
| Variable | Tipo / inicialización |
|---|---|
t_dummy |
Int |
t_fecha_vacia |
DTL |
Dependencias
| Clase | Elementos referenciados/llamados |
|---|---|
| DB | DB11_INF, DB1_SYS |
| FC | FC15006_ZC_DTL_TO_STRING |
| Instrucción Siemens / librería | MOVE_BLK_VARIANT |
Lógica clave
Flujo organizado en las regiones: COMPROBACION_HABILITACION → DESPLAZAMIENTO_DE_DATOS → GESTION_REGISTRO_INFORME. Mecanismos relevantes detectados: decisiones condicionales. Operaciones señaladas por el código: ==========================================================================================================; Si no esta habilitado los informes, salimos de la funcion.; Desplazamos los datos del buffer una posicion hacia abajo; Grabamos el nuevo registro.