From 164667bc2fd8617d277acd5bd1e74039ece2588d Mon Sep 17 00:00:00 2001 From: Miguel Date: Thu, 10 Jul 2025 12:20:54 +0200 Subject: [PATCH] =?UTF-8?q?Se=20modific=C3=B3=20el=20script=20`x1=5Flad=5F?= =?UTF-8?q?converter.py`=20para=20cambiar=20el=20manejo=20de=20los=20objet?= =?UTF-8?q?ivos=20de=20red,=20pasando=20de=20un=20solo=20objetivo=20a=20un?= =?UTF-8?q?a=20lista=20de=20objetivos.=20Se=20implementaron=20mejoras=20en?= =?UTF-8?q?=20la=20l=C3=B3gica=20de=20an=C3=A1lisis=20de=20redes,=20permit?= =?UTF-8?q?iendo=20la=20recopilaci=C3=B3n=20de=20m=C3=BAltiples=20salidas?= =?UTF-8?q?=20y=20optimizando=20la=20generaci=C3=B3n=20de=20c=C3=B3digo=20?= =?UTF-8?q?SCL.=20Adem=C3=A1s,=20se=20actualizaron=20los=20mensajes=20de?= =?UTF-8?q?=20depuraci=C3=B3n=20y=20se=20mejor=C3=B3=20la=20estructura=20d?= =?UTF-8?q?el=20c=C3=B3digo=20para=20una=20mayor=20claridad=20y=20mantenim?= =?UTF-8?q?iento.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../script_groups/TwinCat/x1_lad_converter.py | 564 +- data/log.txt | 5397 +---------------- 2 files changed, 572 insertions(+), 5389 deletions(-) diff --git a/backend/script_groups/TwinCat/x1_lad_converter.py b/backend/script_groups/TwinCat/x1_lad_converter.py index a2482a5..6729843 100644 --- a/backend/script_groups/TwinCat/x1_lad_converter.py +++ b/backend/script_groups/TwinCat/x1_lad_converter.py @@ -366,7 +366,7 @@ class SimpleLadConverter: "id": self.current_network_id, "comment": "", "logic": None, - "target": "", + "targets": [], "calls": [], # NUEVO: para almacenar llamadas a FB/FUN "function_blocks": [], } @@ -417,13 +417,31 @@ class SimpleLadConverter: # Continuar buscando i += 1 + elif line.startswith("_OUTPUTS"): + num_outputs = int(line.split(":")[1].strip()) + i += 1 + for _ in range(num_outputs): + while i < len(lines) and not lines[i].strip().startswith("_OUTPUT"): + i += 1 + if i >= len(lines): + break + i += 1 # past _OUTPUT + + while i < len(lines) and lines[i].strip().startswith("_"): # flags + i += 1 + if i < len(lines): + var_name = lines[i].strip() + if var_name: + network["targets"].append(var_name) + i += 1 + elif line.startswith("_OUTPUT"): # Buscar variable de salida i += 1 while i < len(lines) and lines[i].strip().startswith("_"): i += 1 if i < len(lines) and lines[i].strip() and "ENABLELIST" not in lines[i]: - network["target"] = lines[i].strip() + network["targets"].append(lines[i].strip()) i += 1 else: i += 1 @@ -442,7 +460,7 @@ class SimpleLadConverter: print(f" 🎯 Función reconocida: {call['name']}") else: print(f" 📋 Llamada: {call['type']} - {call['name']}") - print(f" Target: '{network['target']}'") + print(f" Targets: '{network['targets']}'") return i def _parse_lad_expression(self, lines, start_idx): @@ -1030,7 +1048,7 @@ class SimpleLadConverter: "id": self.current_network_id, "comment": f'Llamada a función: {function_logic.get("name", "unknown")}', "logic": function_logic, - "target": target_name, + "targets": [target_name], "function_blocks": [], "calls": [function_logic], # ✅ Añadir la llamada al array calls } @@ -1134,18 +1152,19 @@ class SimpleLadConverter: if condition_str: output.append(" END_IF;") - elif network["target"]: - # Red sin llamadas pero con target + elif network["targets"]: + # Red sin llamadas pero con target(s) if condition_str: output.append(f" IF {condition_str} THEN") - output.append(f" {network['target']} := TRUE;") + for target in network["targets"]: + output.append(f" {target} := TRUE;") output.append(" ELSE") - output.append(f" {network['target']} := FALSE;") + for target in network["targets"]: + output.append(f" {target} := FALSE;") output.append(" END_IF;") else: - output.append( - f" {network['target']} := TRUE; // Sin condición" - ) + for target in network["targets"]: + output.append(f" {target} := TRUE; // Sin condición") output.append("") @@ -1301,6 +1320,8 @@ class SimpleLadConverter: # Asegurar que el campo 'calls' existe if "calls" not in network: network["calls"] = [] + if "targets" not in network: + network["targets"] = [] output.append(f" // Red {network['id']}") if network["comment"]: @@ -1325,19 +1346,22 @@ class SimpleLadConverter: call_str = self._convert_call_to_string(call, indent) output.append(call_str) - elif network["target"]: - output.append(f"{indent}{network['target']} := TRUE;") + elif network["targets"]: + for target in network["targets"]: + output.append(f"{indent}{target} := TRUE;") if condition_str: - if not network_calls and network["target"]: + if not network_calls and network["targets"]: output.append(" ELSE") - output.append(f" {network['target']} := FALSE;") + for target in network["targets"]: + output.append(f" {target} := FALSE;") output.append(" END_IF;") - elif network["target"]: - output.append( - f" {network['target']} := TRUE; // Sin condición, solo target" - ) + elif network["targets"]: + for target in network["targets"]: + output.append( + f" {target} := TRUE; // Sin condición, solo target" + ) output.append("") @@ -1461,7 +1485,7 @@ class SimpleLadConverter: print(f"\nRed {network['id']}:") if network["comment"]: print(f" Comentario: {network['comment']}") - print(f" Target: {network['target']}") + print(f" Targets: {network['targets']}") if network["logic"]: print(f" Lógica: {self._debug_logic_string(network['logic'])}") @@ -1652,7 +1676,7 @@ class SimpleLadConverter: for network in self.networks: if ( network["logic"] - and network["target"] + and network["targets"] and network["id"] in self.sympy_expressions ): groupable_networks.append(network) @@ -1892,45 +1916,57 @@ class SimpleLadConverter: print(f"Total ACTIONs: {len(self.actions)}") def _parse_action_lad(self, action_name, action_content): - """Parsear una ACTION que contiene código LAD""" - # Crear un convertidor temporal para esta ACTION - action_converter = SimpleLadConverter() - action_converter.symbol_manager = self.symbol_manager # Compartir símbolos + # We create a completely new, isolated instance of the converter to parse the action's LAD code. + # This prevents any state (like network counts) from leaking between the main program and the action parsing. + action_converter = SimpleLadConverter(self.function_registry) - # Encontrar sección LAD - lad_start = action_content.find("_LD_BODY") - if lad_start != -1: - # Extraer contenido LAD hasta el final - lad_content = action_content[lad_start:] - lines = lad_content.split("\n") + # Extract just the LAD body from the action content + lad_body_match = re.search(r"_LD_BODY(.*)", action_content, re.DOTALL) + if lad_body_match: + lad_content = lad_body_match.group(1) + lines = lad_content.strip().split("\n") + + # The parse_networks method will process all networks it finds in the provided lines. action_converter._parse_networks(lines) - return { - "type": "LAD", - "networks": action_converter.networks, - "raw_content": action_content, - } + # The parsed networks are stored in the temporary converter's `networks` list. + # We return this list as the logic for the action. + return {"type": "LAD", "networks": action_converter.networks} + + # If no LAD body is found, return an empty structure. + return {"type": "LAD", "networks": []} def _extract_st_code(self, content): """Extraer código ST del programa principal""" # Buscar desde después de END_VAR hasta ACTION o END_PROGRAM - var_end = content.rfind("END_VAR") - if var_end == -1: + var_end_match = re.search(r"END_VAR", content) + if not var_end_match: + self.st_main_code = None return - # Buscar el final del código principal - action_start = content.find("\nACTION", var_end) - end_program = content.find("\nEND_PROGRAM", var_end) + start_index = var_end_match.end() - code_end = action_start if action_start != -1 else end_program - if code_end == -1: - code_end = len(content) + # Buscar el final del código principal + action_start_match = re.search(r"\nACTION", content[start_index:]) + end_program_match = re.search(r"\nEND_PROGRAM", content[start_index:]) + + end_index = -1 + + if action_start_match: + end_index = start_index + action_start_match.start() + + if end_program_match: + program_end = start_index + end_program_match.start() + if end_index == -1 or program_end < end_index: + end_index = program_end + + if end_index == -1: + end_index = len(content) # Extraer código ST - st_code = content[var_end + 7 : code_end].strip() # +7 para saltar "END_VAR" + st_code = content[start_index:end_index].strip() if st_code: - # Almacenar código ST para usar en la generación self.st_main_code = st_code print(f"Código ST principal extraído: {len(st_code)} caracteres") else: @@ -2121,251 +2157,221 @@ def collect_function_interfaces(input_directory, debug_mode=False): return function_registry, function_files +def run_debug_mode(debug_file_arg): + """Ejecuta el convertidor en modo debug para un solo archivo.""" + print(f"=== MODO DEBUG: Procesando archivo específico ===") + print(f"Archivo: {debug_file_arg}") + print("🔧 VERIFICACIÓN: Script modificado y ejecutándose en tiempo real") + + # Determinar el path absoluto del archivo de debug. + # Esto permite que el script se ejecute desde cualquier lugar. + debug_file_path = os.path.abspath(debug_file_arg) + + if not debug_file_path.endswith(".EXP"): + debug_file_path += ".EXP" + + if not os.path.exists(debug_file_path): + print(f"Error: No se encontró el archivo de debug: {debug_file_path}") + # Intenta buscarlo en el directorio relativo ExportTwinCat por si acaso + script_dir = os.path.dirname(os.path.abspath(__file__)) + export_dir_path = os.path.join( + script_dir, "..", "ExportTwinCat", os.path.basename(debug_file_path) + ) + if os.path.exists(export_dir_path): + debug_file_path = os.path.abspath(export_dir_path) + print(f"Archivo encontrado en path alternativo: {debug_file_path}") + else: + return + + # El directorio de entrada y salida es el del archivo de debug + input_directory = os.path.dirname(debug_file_path) + scl_output_dir = input_directory + + print(f"Directorio de análisis para interfaces: {input_directory}") + print(f"Directorio de salida para .SCL: {scl_output_dir}") + + # PRIMERA PASADA: Recopilar interfaces de TODOS los archivos .EXP en el directorio + function_registry, _ = collect_function_interfaces(input_directory, debug_mode=True) + + if function_registry.functions or function_registry.function_blocks: + print("\n🔧 REGISTRY DE FUNCIONES PARA EL DEBUG:") + function_registry.print_summary() + + # SEGUNDA PASADA: Procesar solo el archivo de debug + print("\n=== SEGUNDA PASADA (DEBUG): CONVIRTIENDO ARCHIVO ÚNICO ===") + filename = os.path.basename(debug_file_path) + base_name = os.path.splitext(filename)[0] + scl_filename = f"{base_name}.scl" + scl_output_path = os.path.join(scl_output_dir, scl_filename) + + print(f"{'='*60}") + print(f"Procesando: {filename}") + print(f"Salida: {scl_output_path}") + + try: + converter = SimpleLadConverter(function_registry) + converter.parse_file(debug_file_path) + + print(f" ✓ Redes encontradas: {len(converter.networks)}") + print(f" ✓ Secciones de variables: {list(converter.var_sections.keys())}") + print(f" ✓ ACTIONs encontradas: {list(converter.actions.keys())}") + + converter.print_debug_info() + converter.optimize_expressions() + converter.group_common_conditions() + + print(f" Generando código SCL...") + structured_code = converter.save_to_file(scl_output_path) + + # Mostrar código por stdout como fue solicitado + print("\n\n=== CÓDIGO SCL GENERADO (STDOUT) ===") + print(structured_code) + print("====================================") + + print(f"\n ✓ Guardado en: {scl_output_path}") + + except Exception as e: + print(f" ✗ Error procesando {filename}: {e}") + import traceback + + traceback.print_exc() + + print(f"\n✓ Proceso de debug finalizado.") + + +def run_mass_conversion(): + """Ejecuta el convertidor en modo masivo usando la configuración global.""" + print("=== Convertidor Masivo LAD a SCL con SymPy (2 Pasadas) ===") + + # Cargar configuración + configs = load_configuration() + + if not configs: + print("Error: No se pudo cargar la configuración. Abortando.") + return + + # Obtener configuraciones + working_directory = configs.get("working_directory", "./") + level1_config = configs.get("level1", {}) + level2_config = configs.get("level2", {}) + level3_config = configs.get("level3", {}) + + debug_mode = level1_config.get("debug_mode", True) + show_optimizations = level1_config.get("show_optimizations", True) + scl_output_dir = level2_config.get("scl_output_dir", "scl") + show_generated_code = level2_config.get("show_generated_code", False) + max_display_lines = level2_config.get("max_display_lines", 50) + force_regenerate = level2_config.get("force_regenerate", False) + input_directory = level3_config.get("twincat_exp_directory", working_directory) + sympy_optimization = level3_config.get("sympy_optimization", True) + group_analysis = level3_config.get("group_analysis", True) + + if not os.path.exists(working_directory): + print(f"Error: El directorio de trabajo no existe: {working_directory}") + return + + if not os.path.exists(input_directory): + print(f"Error: El directorio de entrada no existe: {input_directory}") + return + + full_scl_path = os.path.join(working_directory, scl_output_dir) + if not os.path.exists(full_scl_path): + os.makedirs(full_scl_path) + print(f"Directorio creado: {full_scl_path}") + + # PRIMERA PASADA: Recopilar interfaces de funciones + function_registry, _ = collect_function_interfaces(input_directory, debug_mode) + + # SEGUNDA PASADA: Procesar todos los archivos + exp_pattern = os.path.join(input_directory, "*.EXP") + exp_files = glob.glob(exp_pattern) + + if not exp_files: + print(f"No se encontraron archivos .EXP en: {input_directory}") + return + + print(f"\nEncontrados {len(exp_files)} archivos .EXP en: {input_directory}") + print(f"Directorio de salida SCL: {full_scl_path}") + print("\n=== SEGUNDA PASADA: CONVERSIÓN CON INTERFACES CONOCIDAS ===") + + successful_conversions, failed_conversions = 0, 0 + + for exp_file in exp_files: + filename = os.path.basename(exp_file) + base_name = os.path.splitext(filename)[0] + scl_filename = f"{base_name}.scl" + scl_output_path = os.path.join(full_scl_path, scl_filename) + + if os.path.exists(scl_output_path) and not force_regenerate: + print( + f"SALTANDO: {filename} - Ya existe. (Usar 'force_regenerate: true' para sobreescribir)" + ) + successful_conversions += 1 + continue + + print(f"\n{'='*60}") + print(f"Procesando: {filename} -> {scl_filename}") + + try: + converter = SimpleLadConverter(function_registry) + converter.parse_file(exp_file) + + if debug_mode: + converter.print_debug_info() + if sympy_optimization and show_optimizations: + converter.optimize_expressions() + if group_analysis and show_optimizations: + converter.group_common_conditions() + + structured_code = converter.save_to_file(scl_output_path) + + if show_generated_code: + lines = structured_code.split("\n") + display_lines = min(max_display_lines, len(lines)) + print( + f" Código SCL generado ({len(lines)} líneas, mostrando {display_lines}):" + ) + for i in range(display_lines): + print(f" {i+1:3d}: {lines[i]}") + if len(lines) > display_lines: + print(f" ... ({len(lines) - display_lines} líneas más)") + + print(f" ✓ Guardado en: {scl_output_path}") + successful_conversions += 1 + + except Exception as e: + print(f" ✗ Error procesando {filename}: {e}") + if debug_mode: + import traceback + + traceback.print_exc() + failed_conversions += 1 + + print(f"\n{'='*60}") + print(f"RESUMEN DE CONVERSIÓN MASIVA:") + print(f" ✓ Exitosas: {successful_conversions}") + print(f" ✗ Fallidas: {failed_conversions}") + print(f" 📁 Directorio salida: {full_scl_path}") + + def main(): - """Función principal - Convierte todos los archivos .EXP a .SCL con dos pasadas""" + """Función principal - Despachador para modo debug o masivo.""" try: import time timestamp = time.strftime("%Y-%m-%d %H:%M:%S") print("=== SCRIPT VERIFICADO Y EJECUTÁNDOSE CORRECTAMENTE ===") print(f"🕒 Timestamp: {timestamp}") - print("=== INICIANDO CONVERTIDOR SCRIPT (2 PASADAS) ===") - # Verificar si se pasó un archivo específico como parámetro para debug - debug_file = None if len(sys.argv) > 1: - debug_file = sys.argv[1] - print(f"=== MODO DEBUG: Procesando archivo específico ===") - print(f"Archivo: {debug_file}") - print("🔧 VERIFICACIÓN: Script modificado y ejecutándose en tiempo real") + # Modo debug si hay argumentos en la línea de comandos + run_debug_mode(sys.argv[1]) else: - print("=== Convertidor Masivo LAD a SCL con SymPy (2 Pasadas) ===") - - # Cargar configuración - configs = load_configuration() - - # Verificar que se cargó correctamente - if not configs: - print( - "Advertencia: No se pudo cargar la configuración, usando valores por defecto" - ) - working_directory = "./" - scl_output_dir = "scl" - debug_mode = True - show_optimizations = True - show_generated_code = False - max_display_lines = 50 - force_regenerate = False - level1_config = {} - level2_config = {} - level3_config = {} - else: - # Obtener configuraciones - working_directory = configs.get("working_directory", "./") - level1_config = configs.get("level1", {}) - level2_config = configs.get("level2", {}) - level3_config = configs.get("level3", {}) - - # Parámetros de configuración - debug_mode = level1_config.get("debug_mode", True) - show_optimizations = level1_config.get("show_optimizations", True) - scl_output_dir = level2_config.get("scl_output_dir", "scl") - backup_existing = level2_config.get("backup_existing", True) - show_generated_code = level2_config.get("show_generated_code", False) - max_display_lines = level2_config.get("max_display_lines", 50) - sympy_optimization = level3_config.get("sympy_optimization", True) - group_analysis = level3_config.get("group_analysis", True) - force_regenerate = level2_config.get( - "force_regenerate", False - ) # Nueva opción - - # Directorio de entrada para archivos .EXP - # En modo debug, usar el directorio actual si no hay configuración específica - if debug_file: - # Modo debug: usar directorio actual donde están los archivos EXP - input_directory = os.path.dirname(os.path.abspath(__file__)) - # Buscar directorio ExportTwinCat si existe - export_dir = os.path.join(input_directory, "../ExportTwinCat") - if os.path.exists(export_dir): - input_directory = os.path.abspath(export_dir) - print(f"Detectado directorio ExportTwinCat: {input_directory}") - else: - print(f"Usando directorio actual: {input_directory}") - else: - # Modo normal: usar configuración - input_directory = level3_config.get( - "twincat_exp_directory", working_directory - ) - - # Verificar directorio de trabajo - if not os.path.exists(working_directory): - print(f"Error: El directorio de trabajo no existe: {working_directory}") - return - - # Verificar directorio de entrada - if not os.path.exists(input_directory): - print(f"Error: El directorio de entrada no existe: {input_directory}") - return - - # Crear directorio de salida SCL - full_scl_path = os.path.join(working_directory, scl_output_dir) - if not os.path.exists(full_scl_path): - os.makedirs(full_scl_path) - print(f"Directorio creado: {full_scl_path}") - - # PRIMERA PASADA: Recopilar interfaces de funciones - # IMPORTANTE: Siempre hacer primera pasada, incluso en modo debug - print(f"Directorio para primera pasada: {input_directory}") - function_registry, function_files = collect_function_interfaces( - input_directory, debug_mode - ) - - # Determinar archivos a procesar - if debug_file: - # Modo debug - archivo específico - if not debug_file.endswith(".EXP"): - debug_file += ".EXP" - - debug_file_path = os.path.join(input_directory, debug_file) - if not os.path.exists(debug_file_path): - print(f"Error: No se encontró el archivo {debug_file_path}") - return - - exp_files = [debug_file_path] - print(f"🔍 MODO DEBUG ACTIVADO") - print(f"Procesando archivo específico: {debug_file}") - print(f"Directorio de entrada: {input_directory}") - print(f"Directorio de salida SCL: {full_scl_path}") - print(f"Funciones en registry: {len(function_registry.functions)}") - print( - f"Function Blocks en registry: {len(function_registry.function_blocks)}" - ) - - # En modo debug, forzar regeneración y mostrar más información - force_regenerate = True - debug_mode = True - show_generated_code = True - max_display_lines = 100 - - # Mostrar información detallada del registry en modo debug - if function_registry.functions: - print("\n🔧 FUNCIONES DETECTADAS:") - for name, func_info in function_registry.functions.items(): - print(f" ✓ {name}: {func_info.return_type}") - if func_info.inputs: - print(f" IN: {[f'{n}:{t}' for n, t in func_info.inputs]}") - if func_info.outputs: - print(f" OUT: {[f'{n}:{t}' for n, t in func_info.outputs]}") - print() - else: - # Modo normal - todos los archivos - exp_pattern = os.path.join(input_directory, "*.EXP") - exp_files = glob.glob(exp_pattern) - - if not exp_files: - print(f"No se encontraron archivos .EXP en: {input_directory}") - return - - print(f"Encontrados {len(exp_files)} archivos .EXP en: {input_directory}") - print(f"Directorio de salida SCL: {full_scl_path}") - - print() - print("=== SEGUNDA PASADA: CONVERSIÓN CON INTERFACES CONOCIDAS ===") - - # Procesar cada archivo - successful_conversions = 0 - failed_conversions = 0 - - for exp_file in exp_files: - filename = os.path.basename(exp_file) - base_name = os.path.splitext(filename)[0] - scl_filename = f"{base_name}.scl" - scl_output_path = os.path.join(full_scl_path, scl_filename) - - # Verificar si ya existe el archivo SCL (exportación progresiva) - if os.path.exists(scl_output_path) and not force_regenerate: - print(f"{'='*60}") - print(f"SALTANDO: {filename} - Ya existe {scl_filename}") - print( - f" (usa force_regenerate: true en configuración para forzar regeneración)" - ) - successful_conversions += 1 # Contar como exitoso - continue - - print(f"{'='*60}") - print(f"Procesando: {filename}") - print(f"Salida: {scl_filename}") - - try: - # Crear nuevo convertidor para cada archivo CON el registry de funciones - converter = SimpleLadConverter(function_registry) - - # Parsear archivo - converter.parse_file(exp_file) - - print(f" ✓ Redes encontradas: {len(converter.networks)}") - print( - f" ✓ Secciones de variables: {list(converter.var_sections.keys())}" - ) - print(f" ✓ ACTIONs encontradas: {list(converter.actions.keys())}") - - # Mostrar información de debug si está habilitado - if debug_mode: - converter.print_debug_info() - - # Optimizar expresiones con SymPy si está habilitado - if sympy_optimization and show_optimizations: - converter.optimize_expressions() - - # Analizar agrupación de condiciones si está habilitado - if group_analysis and show_optimizations: - converter.group_common_conditions() - - # Convertir y guardar - print(f" Generando código SCL...") - structured_code = converter.save_to_file(scl_output_path) - - # Mostrar parte del código generado si está habilitado - if show_generated_code: - lines = structured_code.split("\n") - display_lines = min(max_display_lines, len(lines)) - print( - f" Código SCL generado ({len(lines)} líneas, mostrando {display_lines}):" - ) - for i in range(display_lines): - print(f" {i+1:3d}: {lines[i]}") - if len(lines) > display_lines: - print(f" ... ({len(lines) - display_lines} líneas más)") - - print(f" ✓ Guardado en: {scl_output_path}") - successful_conversions += 1 - - except Exception as e: - print(f" ✗ Error procesando {filename}: {e}") - if debug_mode: - import traceback - - traceback.print_exc() - failed_conversions += 1 - - print() - - # Resumen final - print(f"{'='*60}") - print(f"RESUMEN DE CONVERSIÓN:") - print(f" 📋 Funciones registradas: {len(function_registry.functions)}") - print( - f" 📋 Function Blocks registrados: {len(function_registry.function_blocks)}" - ) - print(f" ✓ Exitosas: {successful_conversions}") - print(f" ✗ Fallidas: {failed_conversions}") - print(f" 📁 Directorio salida: {full_scl_path}") - - if successful_conversions > 0: - print(f"\n✓ Conversión masiva completada!") + # Modo masivo por defecto + run_mass_conversion() except Exception as e: - print(f"Error general: {e}") + print(f"Error general en main: {e}") import traceback traceback.print_exc() diff --git a/data/log.txt b/data/log.txt index c81abbf..18bd115 100644 --- a/data/log.txt +++ b/data/log.txt @@ -1,5110 +1,287 @@ -[11:20:26] Iniciando ejecución de x1_lad_converter.py en C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\Analisis... -[11:20:26] === SCRIPT FILE ACCESSED BY PYTHON === -[11:20:26] === SCRIPT VERIFICADO Y EJECUTÁNDOSE CORRECTAMENTE === -[11:20:26] 🕒 Timestamp: 2025-07-10 11:20:26 -[11:20:26] === INICIANDO CONVERTIDOR SCRIPT (2 PASADAS) === -[11:20:26] === Convertidor Masivo LAD a SCL con SymPy (2 Pasadas) === -[11:20:26] Directorio para primera pasada: C:/Trabajo/SIDEL/13 - E5.007560 - Modifica O&U - SAE235/Reporte/ExportTwinCat -[11:20:26] === PRIMERA PASADA: RECOPILANDO INTERFACES DE FUNCIONES === -[11:20:26] Saltando (no es función pura): ADSVARREAD.EXP -[11:20:26] Saltando (no es función pura): ADSVARTRANSLATE.EXP -[11:20:26] Saltando (no es función pura): ADSVARWRITE.EXP -[11:20:26] Saltando (no es función pura): AMMONIACTRL.EXP -[11:20:26] Analizando función: ARRAYTOREAL.EXP -[11:20:26] Función encontrada: FUNCTION ArrayToReal: REAL | IN: [mIn_Value: POINTER TO BYTE] | OUT: [] -[11:20:26] Saltando (no es función pura): BLENDERPROCEDURE_VARIABLES.EXP -[11:20:26] Saltando (no es función pura): BLENDERRINSE.EXP -[11:20:26] Saltando (no es función pura): BLENDER_PID_CTRL_LOOP.EXP -[11:20:26] Saltando (no es función pura): BLENDER_PROCEDURECALL.EXP -[11:20:26] Saltando (no es función pura): BLENDER_RUNCONTROL.EXP -[11:20:26] Saltando (no es función pura): BLENDER_VARIABLES.EXP -[11:20:26] Saltando (no es función pura): BLENDFILLRECSTRUCT.EXP -[11:20:26] Saltando (no es función pura): BLENDFILLSENDSTRUCT.EXP -[11:20:26] Saltando (no es función pura): BLENDFILLSYSTEM_STARTUP.EXP -[11:20:26] Saltando (no es función pura): BRIXTRACKING.EXP -[11:20:26] Analizando función: BYTES_TO_DWORD.EXP -[11:20:26] Función encontrada: FUNCTION Bytes_To_Dword: DWORD | IN: [] | OUT: [] -[11:20:26] Analizando función: BYTES_TO_WORD.EXP -[11:20:26] Función encontrada: FUNCTION Bytes_To_Word: WORD | IN: [] | OUT: [] -[11:20:26] Analizando función: CALC_INJPRESS.EXP -[11:20:26] Función encontrada: FUNCTION Calc_InjPress: REAL | IN: [i_GasTemperature: REAL, i_GasMW: REAL, i_GasDensity: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): CARBOWATERLINE.EXP -[11:20:26] Saltando (no es función pura): CENTRALCIP_CTRL.EXP -[11:20:26] Analizando función: CETRIFUGAL_HEAD.EXP -[11:20:26] Función encontrada: FUNCTION Cetrifugal_Head: REAL | IN: [i_Diameter: REAL, i_NumValve: REAL, i_Speed: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): CIPRECEIVESTRUCT.EXP -[11:20:26] Saltando (no es función pura): CIPSENDSTRUCT.EXP -[11:20:26] Analizando función: CIP_CVQ.EXP -[11:20:26] Función encontrada: FUNCTION CIP_CVQ: REAL | IN: [i_TempIn: REAL, i_TempOut: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): CIP_LINK_TYPE.EXP -[11:20:26] Saltando (no es función pura): CIP_LIST_ELEMENT.EXP -[11:20:26] Saltando (no es función pura): CIP_MAIN.EXP -[11:20:26] Saltando (no es función pura): CIP_PROGRAM_VARIABLES.EXP -[11:20:26] Saltando (no es función pura): CIP_SIMPLE_TYPE.EXP -[11:20:26] Saltando (no es función pura): CIP_STEP_TYPE.EXP -[11:20:26] Saltando (no es función pura): CIP_WAITEVENT_TYPE.EXP -[11:20:26] Analizando función: CLEANBOOLARRAY.EXP -[11:20:26] Función encontrada: FUNCTION CleanBoolArray: BOOL | IN: [i_ArrayPtr: DWORD, i_UpBound: INT] | OUT: [] -[11:20:26] Saltando (no es función pura): CLOCK_SIGNAL.EXP -[11:20:26] Saltando (no es función pura): CLOCK_VARIABLES.EXP -[11:20:26] Analizando función: CO2EQPRESS.EXP -[11:20:26] Función encontrada: FUNCTION CO2EqPress: REAL | IN: [i_CO2Vol: REAL, i_Temp: REAL] | OUT: [] -[11:20:26] Analizando función: CO2INJPRESSURE.EXP -[11:20:26] Función encontrada: FUNCTION CO2InjPressure: REAL | IN: [i_Temp: REAL, i_Dens: REAL] | OUT: [] -[11:20:26] Analizando función: CO2_SOLUBILITY.EXP -[11:20:26] Función encontrada: FUNCTION CO2_Solubility: REAL | IN: [i_Temp: REAL] | OUT: [] -[11:20:26] Analizando función: CONVERTREAL.EXP -[11:20:26] Función encontrada: FUNCTION ConvertReal: MFM_Real_Struct | IN: [mIn_ValueFromMFM: ARRAY[0..4] OF BYTE] | OUT: [] -[11:20:26] Analizando función: CVQ_0_6_PERC.EXP -[11:20:26] Función encontrada: FUNCTION CVQ_0_6_Perc: REAL | IN: [i_Temp: REAL] | OUT: [] -[11:20:26] Analizando función: CVQ_1P7_8_PERC.EXP -[11:20:26] Función encontrada: FUNCTION CVQ_1p7_8_Perc: REAL | IN: [i_Temp: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): DATA_FROM_CIP.EXP -[11:20:26] Saltando (no es función pura): DATA_TO_CIP.EXP -[11:20:26] Analizando función: DEAIRCO2TEMPCOMP.EXP -[11:20:26] Función encontrada: FUNCTION DeairCO2TempComp: REAL | IN: [i_Temp: REAL, i_CO2Off: REAL] | OUT: [] -[11:20:26] Analizando función: DEAIREATIONVALVE.EXP -[11:20:26] Función encontrada: FUNCTION DeaireationValve: REAL | IN: [in_DeaireationFlow: REAL, in_InletPressure: REAL, in_FlowCoefficient: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): DEAIREATOR_STARTUP.EXP -[11:20:26] Saltando (no es función pura): DELAY.EXP -[11:20:26] Analizando función: DELTAP.EXP -[11:20:26] Función encontrada: FUNCTION DeltaP: REAL | IN: [i_Flow: REAL, i_K: REAL, i_Valve: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): DENSIMETER_CALIBRATION.EXP -[11:20:26] Saltando (no es función pura): DERIVE.EXP -[11:20:26] Saltando (no es función pura): DEVICENET_VARIABLES.EXP -[11:20:26] Saltando (no es función pura): DWORD_TO_BYTES.EXP -[11:20:26] Saltando (no es función pura): EXEC_SIMPLE_CIP.EXP -[11:20:26] Saltando (no es función pura): FASTRINSE.EXP -[11:20:26] Saltando (no es función pura): FB41_PIDCONTROLLER.EXP -[11:20:26] Saltando (no es función pura): FC_CONTROL_WORD.EXP -[11:20:26] Saltando (no es función pura): FC_STATUS_WORD.EXP -[11:20:26] Analizando función: FEEDFORWARD.EXP -[11:20:26] Función encontrada: FUNCTION FeedForward: REAL | IN: [i_Flow: REAL, i_KFF: REAL, i_Delta_P: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): FILLERHEAD.EXP -[11:20:26] Saltando (no es función pura): FILLERRECEIVESTRUCT.EXP -[11:20:26] Saltando (no es función pura): FILLERRINSE.EXP -[11:20:26] Saltando (no es función pura): FILLERRINSETANK_CTRL.EXP -[11:20:26] Saltando (no es función pura): FILLERSENDSTRUCT.EXP -[11:20:26] Saltando (no es función pura): FILLER_CONTROL.EXP -[11:20:26] Analizando función: FILLINGTIME.EXP -[11:20:26] Función encontrada: FUNCTION FillingTime: REAL | IN: [i_FillingValveHead: REAL, i_BottleSize: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): FIRSTPRODUCTION.EXP -[11:20:26] Analizando función: FLOW_TO_PRESS_LOSS.EXP -[11:20:26] Función encontrada: FUNCTION Flow_To_Press_Loss: REAL | IN: [i_Flow: REAL, i_K_Loss: REAL] | OUT: [] -[11:20:26] Analizando función: FREQ_TO_MMH2O.EXP -[11:20:26] Función encontrada: FUNCTION Freq_To_mmH2O: REAL | IN: [i_Freq: REAL, i_K_freq: REAL] | OUT: [] -[11:20:26] Analizando función: FRICTIONLOSS.EXP -[11:20:26] Función encontrada: FUNCTION FrictionLoss: REAL | IN: [i_Flow: REAL, i_K: REAL, i_Dens: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): GETPRODBRIXCO2_FROMANALOGINPUT.EXP -[11:20:26] Saltando (no es función pura): GETPRODO2_FROMANALOGINPUT.EXP -[11:20:26] Saltando (no es función pura): GLOBAL_ALARMS.EXP -[11:20:26] Saltando (no es función pura): GLOBAL_VARIABLES_IN_OUT.EXP -[11:20:26] Saltando (no es función pura): HMI_ALARMS.EXP -[11:20:26] Saltando (no es función pura): HMI_BLENDER_PARAMETERS.EXP -[11:20:26] Saltando (no es función pura): HMI_IO_SHOWING.EXP -[11:20:26] Saltando (no es función pura): HMI_LOCAL_CIP_VARIABLES.EXP -[11:20:26] Saltando (no es función pura): HMI_SERVICE.EXP -[11:20:26] Saltando (no es función pura): HMI_VARIABLES_CMD.EXP -[11:20:26] Saltando (no es función pura): HMI_VARIABLES_STATUS.EXP -[11:20:26] Saltando (no es función pura): INPUT.EXP -[11:20:26] Saltando (no es función pura): INPUT_CIP_SIGNALS.EXP -[11:20:26] Saltando (no es función pura): INPUT_SIGNAL.EXP -[11:20:26] Saltando (no es función pura): INTEGRAL.EXP -[11:20:26] Saltando (no es función pura): LOCALCIP_CTRL.EXP -[11:20:26] Saltando (no es función pura): LOWPASSFILTER.EXP -[11:20:26] Saltando (no es función pura): LOWPASSFILTEROPT.EXP -[11:20:26] Saltando (no es función pura): MASELLI.EXP -[11:20:26] Saltando (no es función pura): MASELLIOPTO_TYPE.EXP -[11:20:26] Saltando (no es función pura): MASELLIUC05_TYPE.EXP -[11:20:26] Saltando (no es función pura): MASELLIUR22_TYPE.EXP -[11:20:26] Saltando (no es función pura): MASELLI_CONTROL.EXP -[11:20:26] Analizando función: MAXCARBOCO2_VOL.EXP -[11:20:26] Función encontrada: FUNCTION MaxCarboCO2_Vol: REAL | IN: [i_Temp: REAL, i_Press: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): MESSAGESCROLL.EXP -[11:20:26] Saltando (no es función pura): MESSAGE_SCROLL.EXP -[11:20:26] Saltando (no es función pura): MFMANALOG_VALUES.EXP -[11:20:26] Saltando (no es función pura): MFM_REAL_STRUCT.EXP -[11:20:26] Analizando función: MMH2O_TO_FREQ.EXP -[11:20:26] Función encontrada: FUNCTION mmH2O_TO_Freq: REAL | IN: [i_Head: REAL, i_K_Pump: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): MODVALVEFAULT.EXP -[11:20:26] Analizando función: MOVEARRAY.EXP -[11:20:26] Función encontrada: FUNCTION MoveArray: BOOL | IN: [i_InArrayPtr: DWORD, i_OutArrayPtr: DWORD, i_UpBound: INT] | OUT: [] -[11:20:26] Saltando (no es función pura): MPDS1000.EXP -[11:20:26] Saltando (no es función pura): MPDS1000_CONTROL.EXP -[11:20:26] Saltando (no es función pura): MPDS1000_TYPE.EXP -[11:20:26] Saltando (no es función pura): MPDS2000.EXP -[11:20:26] Saltando (no es función pura): MPDS2000_CONTROL.EXP -[11:20:26] Saltando (no es función pura): MPDS2000_TYPE.EXP -[11:20:26] Saltando (no es función pura): MPDS_PA_CONTROL.EXP -[11:20:26] Saltando (no es función pura): MSE_SLOPE.EXP -[11:20:26] Saltando (no es función pura): MYVAR.EXP -[11:20:26] Analizando función: OR_ARRAYBOOL.EXP -[11:20:26] Función encontrada: FUNCTION OR_ArrayBool: BOOL | IN: [i_ArrayPtr: DWORD, i_UpBound: INT] | OUT: [] -[11:20:26] Saltando (no es función pura): OUTPUT.EXP -[11:20:26] Saltando (no es función pura): PARAMETERNAMETYPE.EXP -[11:20:26] Saltando (no es función pura): PA_MPDS.EXP -[11:20:26] Saltando (no es función pura): PERIPHERIAL.EXP -[11:20:26] Saltando (no es función pura): PID_VARIABLES.EXP -[11:20:26] Saltando (no es función pura): PLC CONFIGURATION.EXP -[11:20:26] Saltando (no es función pura): PNEUMATIC_VALVE_CTRL.EXP -[11:20:26] Analizando función: PPM_O2.EXP -[11:20:26] Función encontrada: FUNCTION PPM_O2: REAL | IN: [i_Temp: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): PRODBRIXRECOVERY.EXP -[11:20:26] Saltando (no es función pura): PRODTANK_DRAIN.EXP -[11:20:26] Saltando (no es función pura): PRODTANK_RUNOUT.EXP -[11:20:26] Saltando (no es función pura): PRODUCTAVAILABLE.EXP -[11:20:26] Saltando (no es función pura): PRODUCTION_VARIABLES.EXP -[11:20:26] Analizando función: PRODUCTLITERINTANK.EXP -[11:20:26] Función encontrada: FUNCTION ProductLiterInTank: REAL | IN: [i_TankLevel: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): PRODUCTPIPEDRAIN.EXP -[11:20:26] Saltando (no es función pura): PRODUCTPIPERUNOUT.EXP -[11:20:26] Saltando (no es función pura): PRODUCTQUALITY.EXP -[11:20:26] Saltando (no es función pura): PRODUCTTANKBRIX.EXP -[11:20:26] Saltando (no es función pura): PRODUCTTANK_PRESSCTRL.EXP -[11:20:26] Saltando (no es función pura): PROFIBUS_DATA.EXP -[11:20:26] Saltando (no es función pura): PROFIBUS_NETWORK.EXP -[11:20:26] Saltando (no es función pura): PROFIBUS_VARIABLES.EXP -[11:20:26] Analizando función: PULSEPRESSURE.EXP -[11:20:26] Función encontrada: FUNCTION PulsePressure: REAL | IN: [i_Flow: REAL, i_DN_Pipe: REAL, i_Mass: REAL, i_T_Filling: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): PUMPSCONTROL.EXP -[11:20:26] Analizando función: READANALOGIN.EXP -[11:20:26] Función encontrada: FUNCTION ReadAnalogIn: Peripherial | IN: [i_Periferial: INT, i_MaxAnalog: REAL, i_MinAnalog: REAL, i_PerMin: INT, i_PerMax: INT] | OUT: [] -[11:20:26] Analizando función: READPERIPHERIAL.EXP -[11:20:26] Función encontrada: FUNCTION ReadPeripherial: REAL | IN: [i_Periferial: INT, i_MaxAnalog: REAL, i_MinAnalog: REAL, i_PerMin: INT, i_PerMax: INT] | OUT: [] -[11:20:26] Saltando (no es función pura): SAFETIES.EXP -[11:20:26] Saltando (no es función pura): SELCHECKBRIXSOURCE.EXP -[11:20:26] Saltando (no es función pura): SIGNALS_INTEFACE.EXP -[11:20:26] Saltando (no es función pura): SIGNAL_GEN.EXP -[11:20:26] Analizando función: SINUSOIDAL_SIGNAL.EXP -[11:20:26] Función encontrada: FUNCTION Sinusoidal_Signal: REAL | IN: [i_Amplitude: UINT, i_Frequency: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): SLEWLIMIT.EXP -[11:20:26] Saltando (no es función pura): SLIM_BLOCK.EXP -[11:20:26] Saltando (no es función pura): SLIM_VARIABLES.EXP -[11:20:26] Saltando (no es función pura): SOFTNET_VARIABLES.EXP -[11:20:26] Analizando función: SPEEDADJUST.EXP -[11:20:26] Función encontrada: FUNCTION SpeedAdjust: REAL | IN: [i_PrdTnkLvl: REAL, i_TrgTnkLvl: REAL, i_IstLvl: REAL, i_SpeedPerc: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): SP_AND_P_VARIABLES.EXP -[11:20:26] Saltando (no es función pura): STANDARD.LIB_5.6.98 09_39_02.EXP -[11:20:26] Saltando (no es función pura): STATISTICALANALISYS.EXP -[11:20:26] Saltando (no es función pura): SYRBRIX_AUTOCORRECTION.EXP -[11:20:26] Analizando función: SYRUPDENSITY.EXP -[11:20:26] Función encontrada: FUNCTION SyrupDensity: REAL | IN: [i_SyrupBrix: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): SYRUPROOMCTRL.EXP -[11:20:26] Saltando (no es función pura): SYRUP_LINE_MFM_PREP.EXP -[11:20:26] Saltando (no es función pura): SYRUP_MFM_STARTUP.EXP -[11:20:26] Saltando (no es función pura): SYRUP_RUNOUT.EXP -[11:20:26] Saltando (no es función pura): SYSTEMRUNOUT_VARIABLES.EXP -[11:20:26] Saltando (no es función pura): SYSTEM_DATAS.EXP -[11:20:26] Saltando (no es función pura): SYSTEM_RUN_OUT.EXP -[11:20:26] Saltando (no es función pura): TANKLEVEL.EXP -[11:20:26] Analizando función: TANKLEVELTOHEIGHT.EXP -[11:20:26] Función encontrada: FUNCTION TankLevelToHeight: REAL | IN: [Level_Percentage: REAL, Level_Perc0: REAL, Level_Height0: REAL, Level_Perc1: REAL, Level_Height1: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): TASK CONFIGURATION.EXP -[11:20:26] Saltando (no es función pura): TCPLCUTILITIES.LIB_11.12.01 09_39_02.EXP -[11:20:26] Saltando (no es función pura): TCSYSTEM.LIB_16.9.02 09_39_02.EXP -[11:20:26] Saltando (no es función pura): TESTFLOWMETERS.EXP -[11:20:26] Saltando (no es función pura): UDP_STRUCT.EXP -[11:20:26] Saltando (no es función pura): UV_LAMP.EXP -[11:20:26] Saltando (no es función pura): VACUUMCTRL.EXP -[11:20:26] Saltando (no es función pura): VALVEFAULT.EXP -[11:20:26] Analizando función: VALVEFLOW.EXP -[11:20:26] Función encontrada: FUNCTION ValveFlow: REAL | IN: [i_DeltaP: REAL, i_ValveOp: REAL, i_KFF: REAL, i_Dens: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): VARIABLE_CONFIGURATION.EXP -[11:20:26] Saltando (no es función pura): VOID.EXP -[11:20:26] Analizando función: WATERDENSITY.EXP -[11:20:26] Función encontrada: FUNCTION WaterDensity: REAL | IN: [i_Temperature: REAL] | OUT: [] -[11:20:26] Saltando (no es función pura): WORD_TO_BYTES.EXP -[11:20:26] Analizando función: WRITEPERIPHERIAL.EXP -[11:20:26] Función encontrada: FUNCTION WritePeripherial: WORD | IN: [i_Analog: REAL, i_MaxAnalog: REAL, i_MinAnalog: REAL, i_PerMin: UINT, i_PerMax: UINT] | OUT: [] -[11:20:26] Saltando (no es función pura): _BLENDER_CTRL_MAIN.EXP -[11:20:26] Saltando (no es función pura): _BLENDER_PID_MAIN.EXP -[11:20:26] Analizando función: _BOOLARRAY_TO_DWORD.EXP -[11:20:26] Función encontrada: FUNCTION _BoolArray_To_DWord: DWORD | IN: [i_Array: ARRAY [0..31] OF BOOL] | OUT: [] -[11:20:26] Analizando función: _BOOLARRAY_TO_WORD.EXP -[11:20:26] Función encontrada: FUNCTION _BoolArray_To_Word: WORD | IN: [i_Array: ARRAY [0..15] OF BOOL] | OUT: [] -[11:20:26] Analizando función: _DWORD_SWAP_BYTEARRAY.EXP -[11:20:26] Función encontrada: FUNCTION _Dword_Swap_ByteArray: ARRAY | IN: [i_Real: REAL] | OUT: [] -[11:20:26] Analizando función: _DWORD_TO_BOOLARRAY.EXP -[11:20:26] Función encontrada: FUNCTION _DWord_To_BoolArray: ARRAY | IN: [i_DWord: DWORD] | OUT: [] -[11:20:26] Saltando (no es función pura): _FILLING_HEAD_PID_CTRL.EXP -[11:20:26] Saltando (no es función pura): _PUMPCONTROL.EXP -[11:20:26] Saltando (no es función pura): _STEPMOVE.EXP -[11:20:26] Analizando función: _WORD_TO_BOOLARRAY.EXP -[11:20:26] Función encontrada: FUNCTION _Word_To_BoolArray: ARRAY | IN: [i_Word: WORD] | OUT: [] -[11:20:26] Funciones encontradas: 42 -[11:20:26] Function Blocks encontrados: 0 -[11:20:26] === REGISTRO DE FUNCIONES === -[11:20:26] Funciones: 42 -[11:20:26] FUNCTION ArrayToReal: REAL | IN: [mIn_Value: POINTER TO BYTE] | OUT: [] -[11:20:26] FUNCTION Bytes_To_Dword: DWORD | IN: [] | OUT: [] -[11:20:26] FUNCTION Bytes_To_Word: WORD | IN: [] | OUT: [] -[11:20:26] FUNCTION Calc_InjPress: REAL | IN: [i_GasTemperature: REAL, i_GasMW: REAL, i_GasDensity: REAL] | OUT: [] -[11:20:26] FUNCTION Cetrifugal_Head: REAL | IN: [i_Diameter: REAL, i_NumValve: REAL, i_Speed: REAL] | OUT: [] -[11:20:26] FUNCTION CIP_CVQ: REAL | IN: [i_TempIn: REAL, i_TempOut: REAL] | OUT: [] -[11:20:26] FUNCTION CleanBoolArray: BOOL | IN: [i_ArrayPtr: DWORD, i_UpBound: INT] | OUT: [] -[11:20:26] FUNCTION CO2EqPress: REAL | IN: [i_CO2Vol: REAL, i_Temp: REAL] | OUT: [] -[11:20:26] FUNCTION CO2InjPressure: REAL | IN: [i_Temp: REAL, i_Dens: REAL] | OUT: [] -[11:20:26] FUNCTION CO2_Solubility: REAL | IN: [i_Temp: REAL] | OUT: [] -[11:20:26] FUNCTION ConvertReal: MFM_Real_Struct | IN: [mIn_ValueFromMFM: ARRAY[0..4] OF BYTE] | OUT: [] -[11:20:26] FUNCTION CVQ_0_6_Perc: REAL | IN: [i_Temp: REAL] | OUT: [] -[11:20:26] FUNCTION CVQ_1p7_8_Perc: REAL | IN: [i_Temp: REAL] | OUT: [] -[11:20:26] FUNCTION DeairCO2TempComp: REAL | IN: [i_Temp: REAL, i_CO2Off: REAL] | OUT: [] -[11:20:26] FUNCTION DeaireationValve: REAL | IN: [in_DeaireationFlow: REAL, in_InletPressure: REAL, in_FlowCoefficient: REAL] | OUT: [] -[11:20:26] FUNCTION DeltaP: REAL | IN: [i_Flow: REAL, i_K: REAL, i_Valve: REAL] | OUT: [] -[11:20:26] FUNCTION FeedForward: REAL | IN: [i_Flow: REAL, i_KFF: REAL, i_Delta_P: REAL] | OUT: [] -[11:20:26] FUNCTION FillingTime: REAL | IN: [i_FillingValveHead: REAL, i_BottleSize: REAL] | OUT: [] -[11:20:26] FUNCTION Flow_To_Press_Loss: REAL | IN: [i_Flow: REAL, i_K_Loss: REAL] | OUT: [] -[11:20:26] FUNCTION Freq_To_mmH2O: REAL | IN: [i_Freq: REAL, i_K_freq: REAL] | OUT: [] -[11:20:26] FUNCTION FrictionLoss: REAL | IN: [i_Flow: REAL, i_K: REAL, i_Dens: REAL] | OUT: [] -[11:20:26] FUNCTION MaxCarboCO2_Vol: REAL | IN: [i_Temp: REAL, i_Press: REAL] | OUT: [] -[11:20:26] FUNCTION mmH2O_TO_Freq: REAL | IN: [i_Head: REAL, i_K_Pump: REAL] | OUT: [] -[11:20:26] FUNCTION MoveArray: BOOL | IN: [i_InArrayPtr: DWORD, i_OutArrayPtr: DWORD, i_UpBound: INT] | OUT: [] -[11:20:26] FUNCTION OR_ArrayBool: BOOL | IN: [i_ArrayPtr: DWORD, i_UpBound: INT] | OUT: [] -[11:20:26] FUNCTION PPM_O2: REAL | IN: [i_Temp: REAL] | OUT: [] -[11:20:26] FUNCTION ProductLiterInTank: REAL | IN: [i_TankLevel: REAL] | OUT: [] -[11:20:26] FUNCTION PulsePressure: REAL | IN: [i_Flow: REAL, i_DN_Pipe: REAL, i_Mass: REAL, i_T_Filling: REAL] | OUT: [] -[11:20:26] FUNCTION ReadAnalogIn: Peripherial | IN: [i_Periferial: INT, i_MaxAnalog: REAL, i_MinAnalog: REAL, i_PerMin: INT, i_PerMax: INT] | OUT: [] -[11:20:26] FUNCTION ReadPeripherial: REAL | IN: [i_Periferial: INT, i_MaxAnalog: REAL, i_MinAnalog: REAL, i_PerMin: INT, i_PerMax: INT] | OUT: [] -[11:20:26] FUNCTION Sinusoidal_Signal: REAL | IN: [i_Amplitude: UINT, i_Frequency: REAL] | OUT: [] -[11:20:26] FUNCTION SpeedAdjust: REAL | IN: [i_PrdTnkLvl: REAL, i_TrgTnkLvl: REAL, i_IstLvl: REAL, i_SpeedPerc: REAL] | OUT: [] -[11:20:26] FUNCTION SyrupDensity: REAL | IN: [i_SyrupBrix: REAL] | OUT: [] -[11:20:26] FUNCTION TankLevelToHeight: REAL | IN: [Level_Percentage: REAL, Level_Perc0: REAL, Level_Height0: REAL, Level_Perc1: REAL, Level_Height1: REAL] | OUT: [] -[11:20:26] FUNCTION ValveFlow: REAL | IN: [i_DeltaP: REAL, i_ValveOp: REAL, i_KFF: REAL, i_Dens: REAL] | OUT: [] -[11:20:26] FUNCTION WaterDensity: REAL | IN: [i_Temperature: REAL] | OUT: [] -[11:20:26] FUNCTION WritePeripherial: WORD | IN: [i_Analog: REAL, i_MaxAnalog: REAL, i_MinAnalog: REAL, i_PerMin: UINT, i_PerMax: UINT] | OUT: [] -[11:20:26] FUNCTION _BoolArray_To_DWord: DWORD | IN: [i_Array: ARRAY [0..31] OF BOOL] | OUT: [] -[11:20:26] FUNCTION _BoolArray_To_Word: WORD | IN: [i_Array: ARRAY [0..15] OF BOOL] | OUT: [] -[11:20:26] FUNCTION _Dword_Swap_ByteArray: ARRAY | IN: [i_Real: REAL] | OUT: [] -[11:20:26] FUNCTION _DWord_To_BoolArray: ARRAY | IN: [i_DWord: DWORD] | OUT: [] -[11:20:26] FUNCTION _Word_To_BoolArray: ARRAY | IN: [i_Word: WORD] | OUT: [] -[11:20:26] Function Blocks: 0 -[11:20:26] Encontrados 183 archivos .EXP en: C:/Trabajo/SIDEL/13 - E5.007560 - Modifica O&U - SAE235/Reporte/ExportTwinCat -[11:20:26] Directorio de salida SCL: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\Analisis\TwinCat/scl -[11:20:26] === SEGUNDA PASADA: CONVERSIÓN CON INTERFACES CONOCIDAS === -[11:20:26] ============================================================ -[11:20:26] SALTANDO: ADSVARREAD.EXP - Ya existe ADSVARREAD.scl -[11:20:26] (usa force_regenerate: true en configuración para forzar regeneración) -[11:20:26] ============================================================ -[11:20:26] SALTANDO: ADSVARTRANSLATE.EXP - Ya existe ADSVARTRANSLATE.scl -[11:20:26] (usa force_regenerate: true en configuración para forzar regeneración) -[11:20:26] ============================================================ -[11:20:26] SALTANDO: ADSVARWRITE.EXP - Ya existe ADSVARWRITE.scl -[11:20:26] (usa force_regenerate: true en configuración para forzar regeneración) -[11:20:26] ============================================================ -[11:20:26] SALTANDO: AMMONIACTRL.EXP - Ya existe AMMONIACTRL.scl -[11:20:26] (usa force_regenerate: true en configuración para forzar regeneración) -[11:20:26] ============================================================ -[11:20:26] SALTANDO: ARRAYTOREAL.EXP - Ya existe ARRAYTOREAL.scl -[11:20:26] (usa force_regenerate: true en configuración para forzar regeneración) -[11:20:26] ============================================================ -[11:20:26] SALTANDO: BLENDERPROCEDURE_VARIABLES.EXP - Ya existe BLENDERPROCEDURE_VARIABLES.scl -[11:20:26] (usa force_regenerate: true en configuración para forzar regeneración) -[11:20:26] ============================================================ -[11:20:26] SALTANDO: BLENDERRINSE.EXP - Ya existe BLENDERRINSE.scl -[11:20:26] (usa force_regenerate: true en configuración para forzar regeneración) -[11:20:26] ============================================================ -[11:20:26] Procesando: BLENDER_PID_CTRL_LOOP.EXP -[11:20:26] Salida: BLENDER_PID_CTRL_LOOP.scl -[11:20:26] Programa encontrado: Blender_PID_Ctrl_Loop -[11:20:26] Path: \/TASK1_PID\/PID_Controllers -[11:20:26] Variables VAR_OUTPUT: 1 encontradas -[11:20:26] Variables VAR: 88 encontradas -[11:20:26] Se esperan 82 redes según el archivo -[11:20:26] ⚠️ ADVERTENCIA: 82 redes es demasiado. Limitando a 50 redes para evitar colgarse. -[11:20:26] Procesando red 1... -[11:20:26] Comenzando en línea 2: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 3: '' -[11:20:26] Línea 4: '_COMMENT' -[11:20:26] Línea 5: '' -[11:20:26] Línea 6: '_END_COMMENT' -[11:20:26] Línea 7: '_LD_ASSIGN' -[11:20:26] Línea 8: '_EMPTY' -[11:20:26] Línea 9: '_EXPRESSION' -[11:20:26] Línea 10: '_POSITIV' -[11:20:26] Línea 11: '' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 8 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 8 -[11:20:26] Entrando a _parse_empty_network desde línea 9 -[11:20:26] Línea 9: '_EXPRESSION' -[11:20:26] Línea 10: '_POSITIV' -[11:20:26] Línea 11: '' -[11:20:26] Línea 12: '' -[11:20:26] Línea 13: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 14: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 14 -[11:20:26] Entrando a _parse_assign_section desde línea 15 -[11:20:26] Línea 15: '_FUNCTIONBLOCK' -[11:20:26] ENCONTRADO _FUNCTIONBLOCK en _ASSIGN: línea 15 -[11:20:26] Detectado Function Block directo: _FBD_PROGRAM -[11:20:26] ADVERTENCIA: Bucle infinito evitado en function block en línea 15 -[11:20:26] Línea 21: 'Blender_PID_Ctrl_Loop.Read_AnalogInput' -[11:20:26] Función encontrada pero sin target específico -[11:20:26] Usando target por defecto: mDummy -[11:20:26] Red de función 2 creada para FUNCTION_BLOCK: _FBD_PROGRAM -[11:20:26] Target: 'mDummy' -[11:20:26] 📋 Lógica parseada: {'type': 'FUNCTION_BLOCK', 'name': '_FBD_PROGRAM', 'instance_name': '_FBD_PROGRAM', 'inputs': [], 'outputs': []} -[11:20:26] 🔎 Buscando ENABLELIST en línea 22: '_OUTPUTS : 0' -[11:20:26] 📤 Sección de outputs encontrada en línea 22 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 38 -[11:20:26] 📋 Lógica parseada: {'type': 'AND', 'operands': [{'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gBlenderBlending', 'negated': False}, {'type': 'CONTACT', 'name': 'gBlendErrorEn', 'negated': False}]}, {'type': 'CONTACT', 'name': 'gManual_PID_H2O', 'negated': True}, {'type': 'CONTACT', 'name': 'gManual_PID_SYR', 'negated': True}, {'type': 'CONTACT', 'name': 'gWaterRecipe', 'negated': True}, {'type': 'CONTACT', 'name': 'gStopBlendCarboError', 'negated': True}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 68: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 69: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 70: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 71: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 72: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 73: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 74: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 74 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 75 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 1: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 1 agregada. Total redes: 2 -[11:20:26] Con lógica: AND - Sin nombre -[11:20:26] Target: 'gBlendErrorEn' -[11:20:26] Procesando red 3... -[11:20:26] Comenzando en línea 81: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 82: '' -[11:20:26] Línea 83: '_COMMENT' -[11:20:26] Línea 84: '' -[11:20:26] Línea 85: '_END_COMMENT' -[11:20:26] Línea 86: '_LD_ASSIGN' -[11:20:26] Línea 87: '_LD_AND' -[11:20:26] Línea 88: '_LD_OPERATOR : 5' -[11:20:26] Línea 89: '_LD_OR' -[11:20:26] Línea 90: '_LD_OPERATOR : 2' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 87 -[11:20:26] 📋 Lógica parseada: {'type': 'AND', 'operands': [{'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gBlenderBlending', 'negated': False}, {'type': 'CONTACT', 'name': 'gCarboCO2ErrorEn', 'negated': False}]}, {'type': 'CONTACT', 'name': 'gManual_PID_CO2', 'negated': True}, {'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gCarboStillProduct', 'negated': False}, {'type': 'CONTACT', 'name': 'gH_Blender_OPT_DoubleDeair', 'negated': False}]}, {'type': 'CONTACT', 'name': 'gStopBlendCarboError', 'negated': True}, {'type': 'CONTACT', 'name': 'gWorkshopTest', 'negated': True}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 125: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 126: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 127: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 128: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 129: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 130: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 131: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 131 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 132 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 3: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 3 agregada. Total redes: 3 -[11:20:26] Con lógica: AND - Sin nombre -[11:20:26] Target: 'gCarboCO2ErrorEn' -[11:20:26] Procesando red 4... -[11:20:26] Comenzando en línea 138: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 139: '' -[11:20:26] Línea 140: '_COMMENT' -[11:20:26] Línea 141: '' -[11:20:26] Línea 142: '_END_COMMENT' -[11:20:26] Línea 143: '_LD_ASSIGN' -[11:20:26] Línea 144: '_LD_CONTACT' -[11:20:26] Línea 145: 'gAlwaysOff' -[11:20:26] Línea 146: '_EXPRESSION' -[11:20:26] Línea 147: '_NEGATIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 144 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 148: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 149: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 150: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 151: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 152: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 152 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 153 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 4: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 4 agregada. Total redes: 4 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mI_Sel_H2O' -[11:20:26] Procesando red 5... -[11:20:26] Comenzando en línea 159: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 160: '' -[11:20:26] Línea 161: '_COMMENT' -[11:20:26] Línea 162: '' -[11:20:26] Línea 163: '_END_COMMENT' -[11:20:26] Línea 164: '_LD_ASSIGN' -[11:20:26] Línea 165: '_LD_CONTACT' -[11:20:26] Línea 166: 'gAlwaysOff' -[11:20:26] Línea 167: '_EXPRESSION' -[11:20:26] Línea 168: '_NEGATIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 165 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 169: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 170: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 171: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 172: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 173: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 173 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 174 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 5: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 5 agregada. Total redes: 5 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mP_Sel_H2O' -[11:20:26] Procesando red 6... -[11:20:26] Comenzando en línea 180: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 181: '' -[11:20:26] Línea 182: '_COMMENT' -[11:20:26] Línea 183: '' -[11:20:26] Línea 184: '_END_COMMENT' -[11:20:26] Línea 185: '_LD_ASSIGN' -[11:20:26] Línea 186: '_LD_CONTACT' -[11:20:26] Línea 187: 'gAlwaysOff' -[11:20:26] Línea 188: '_EXPRESSION' -[11:20:26] Línea 189: '_NEGATIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 186 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 190: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 191: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 192: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 193: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 194: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 194 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 195 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 6: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 6 agregada. Total redes: 6 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mD_Sel_H2O' -[11:20:26] Procesando red 7... -[11:20:26] Comenzando en línea 201: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 202: '' -[11:20:26] Línea 203: '_COMMENT' -[11:20:26] Línea 204: '' -[11:20:26] Línea 205: '_END_COMMENT' -[11:20:26] Línea 206: '_LD_ASSIGN' -[11:20:26] Línea 207: '_LD_OR' -[11:20:26] Línea 208: '_LD_OPERATOR : 4' -[11:20:26] Línea 209: '_LD_CONTACT' -[11:20:26] Línea 210: 'gBlenderBlending' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 207 -[11:20:26] 📋 Lógica parseada: {'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gBlenderBlending', 'negated': False}, {'type': 'CONTACT', 'name': 'gBlenderCIPMode', 'negated': False}, {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gRinseCloseVM1', 'negated': True}, {'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gBlenderRinse_Running', 'negated': False}, {'type': 'CONTACT', 'name': 'gProdTankRunOut_Running', 'negated': False}, {'type': 'CONTACT', 'name': 'gProdPipeRunOut_Running', 'negated': False}]}]}, {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gBlenderRun_Latch', 'negated': True}, {'type': 'CONTACT', 'name': 'gH_CMD_BlenderMaintenance', 'negated': False}]}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 251: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 252: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 253: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 254: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 255: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 256: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 257: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 258: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 259: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 259 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 260 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 7: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 7 agregada. Total redes: 7 -[11:20:26] Con lógica: OR - Sin nombre -[11:20:26] Target: 'gPID_H2O_Enabled' -[11:20:26] Procesando red 8... -[11:20:26] Comenzando en línea 266: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 267: '' -[11:20:26] Línea 268: '_COMMENT' -[11:20:26] Línea 269: '' -[11:20:26] Línea 270: '_END_COMMENT' -[11:20:26] Línea 271: '_LD_ASSIGN' -[11:20:26] Línea 272: '_LD_AND' -[11:20:26] Línea 273: '_LD_OPERATOR : 2' -[11:20:26] Línea 274: '_LD_CONTACT' -[11:20:26] Línea 275: 'gPID_H2O_Enabled' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 272 -[11:20:26] 📋 Lógica parseada: {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gPID_H2O_Enabled', 'negated': False}, {'type': 'CONTACT', 'name': 'gBlenderStableFlow', 'negated': True}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 282: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 283: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 284: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 285: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 286: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 287: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 288: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 288 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 289 -[11:20:26] 🔎 Línea 289: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 289 -[11:20:26] ✅ Llamada parseada: OPERATOR - MOVE -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 307 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 8: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 315 -[11:20:26] 📋 Lógica parseada: {'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gPID_H2O_Enabled', 'negated': False}, {'type': 'CONTACT', 'name': 'gI_ITL_PID_H2O', 'negated': False}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 325: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 326: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 327: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 328: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 329: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 330: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 331: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 331 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 332 -[11:20:26] 🔎 Línea 332: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 332 -[11:20:26] ✅ Llamada parseada: FUNCTION_BLOCK - None -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 448 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 8: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 456 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gI_ITL_PID_H2O', 'negated': False} -[11:20:26] 🔎 Buscando ENABLELIST en línea 460: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 461: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 462: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 463: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 464: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 464 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 465 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 8: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 8 agregada. Total redes: 8 -[11:20:26] Con lógica: CONTACT - gI_ITL_PID_H2O -[11:20:26] Target: 'gI_ITL_PID_H2O' -[11:20:26] Procesando red 9... -[11:20:26] Comenzando en línea 471: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 472: '' -[11:20:26] Línea 473: '_COMMENT' -[11:20:26] Línea 474: '' -[11:20:26] Línea 475: '_END_COMMENT' -[11:20:26] Línea 476: '_LD_ASSIGN' -[11:20:26] Línea 477: '_LD_AND' -[11:20:26] Línea 478: '_LD_OPERATOR : 2' -[11:20:26] Línea 479: '_LD_CONTACT' -[11:20:26] Línea 480: 'gPID_H2O_Enabled' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 477 -[11:20:26] Detectado Function Block directo: mH2OPIDEn -[11:20:26] ADVERTENCIA: Bucle infinito evitado en function block en línea 483 -[11:20:26] 📋 Lógica parseada: {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gPID_H2O_Enabled', 'negated': False}, {'type': 'FUNCTION_BLOCK', 'name': 'mH2OPIDEn', 'instance_name': 'mH2OPIDEn', 'inputs': [], 'outputs': []}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 489: 'F_TRIG' -[11:20:26] 🔎 Buscando ENABLELIST en línea 490: '_OUTPUTS : 0' -[11:20:26] 📤 Sección de outputs encontrada en línea 490 -[11:20:26] Red 9 agregada. Total redes: 9 -[11:20:26] Con lógica: AND - Sin nombre -[11:20:26] Target: 'mH2OONS' -[11:20:26] Procesando red 10... -[11:20:26] Comenzando en línea 504: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 505: '' -[11:20:26] Línea 506: '_COMMENT' -[11:20:26] Línea 507: '' -[11:20:26] Línea 508: '_END_COMMENT' -[11:20:26] Línea 509: '_LD_ASSIGN' -[11:20:26] Línea 510: '_LD_CONTACT' -[11:20:26] Línea 511: 'mH2OONS' -[11:20:26] Línea 512: '_EXPRESSION' -[11:20:26] Línea 513: '_POSITIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 510 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'mH2OONS', 'negated': False} -[11:20:26] 🔎 Buscando ENABLELIST en línea 514: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 515: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 516: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 517: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 518: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 518 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 519 -[11:20:26] 🔎 Línea 519: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 519 -[11:20:26] ✅ Llamada parseada: OPERATOR - MOVE -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 537 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 10: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 545 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 545 -[11:20:26] Entrando a _parse_empty_network desde línea 546 -[11:20:26] Línea 546: '_EXPRESSION' -[11:20:26] Línea 547: '_POSITIV' -[11:20:26] Línea 548: '' -[11:20:26] Línea 549: '' -[11:20:26] Línea 550: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 551: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 551 -[11:20:26] Entrando a _parse_assign_section desde línea 552 -[11:20:26] Línea 552: '_OPERATOR' -[11:20:26] Línea 553: '_BOX_EXPR : 3' -[11:20:26] Línea 554: '_ENABLED' -[11:20:26] Línea 555: '_OPERAND' -[11:20:26] Línea 556: '_EXPRESSION' -[11:20:26] Línea 557: '_POSITIV' -[11:20:26] Línea 558: 'gPID_H2O_Enabled' -[11:20:26] Línea 559: '_OPERAND' -[11:20:26] Línea 560: '_EXPRESSION' -[11:20:26] Línea 561: '_POSITIV' -[11:20:26] Línea 562: '0.0' -[11:20:26] Línea 563: '_OPERAND' -[11:20:26] Línea 564: '_EXPRESSION' -[11:20:26] Línea 565: '_POSITIV' -[11:20:26] Línea 566: 'gR_Out_H2O_PID' -[11:20:26] _parse_assign_section terminó sin encontrar función -[11:20:26] Línea 567: '_EXPRESSION' -[11:20:26] Línea 568: '_POSITIV' -[11:20:26] Línea 569: 'SEL' -[11:20:26] Línea 570: '_EXPRESSION' -[11:20:26] Línea 571: '_POSITIV' -[11:20:26] _parse_empty_network terminó sin encontrar función -[11:20:26] 📋 Lógica parseada: None -[11:20:26] 🔎 Buscando ENABLELIST en línea 572: '_OUTPUTS : 2' -[11:20:26] 📤 Sección de outputs encontrada en línea 572 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 589 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 593: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 594: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 595: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 596: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 597: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 597 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 598 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 10: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 10 agregada. Total redes: 10 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mI_Sel_SYR' -[11:20:26] Procesando red 11... -[11:20:26] Comenzando en línea 604: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 605: '' -[11:20:26] Línea 606: '_COMMENT' -[11:20:26] Línea 607: '' -[11:20:26] Línea 608: '_END_COMMENT' -[11:20:26] Línea 609: '_LD_ASSIGN' -[11:20:26] Línea 610: '_LD_CONTACT' -[11:20:26] Línea 611: 'gAlwaysOff' -[11:20:26] Línea 612: '_EXPRESSION' -[11:20:26] Línea 613: '_NEGATIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 610 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 614: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 615: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 616: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 617: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 618: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 618 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 619 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 11: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 11 agregada. Total redes: 11 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mP_Sel_SYR' -[11:20:26] Procesando red 12... -[11:20:26] Comenzando en línea 625: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 626: '' -[11:20:26] Línea 627: '_COMMENT' -[11:20:26] Línea 628: '' -[11:20:26] Línea 629: '_END_COMMENT' -[11:20:26] Línea 630: '_LD_ASSIGN' -[11:20:26] Línea 631: '_LD_CONTACT' -[11:20:26] Línea 632: 'gAlwaysOff' -[11:20:26] Línea 633: '_EXPRESSION' -[11:20:26] Línea 634: '_NEGATIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 631 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 635: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 636: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 637: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 638: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 639: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 639 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 640 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 12: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 12 agregada. Total redes: 12 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mD_Sel_SYR' -[11:20:26] Procesando red 13... -[11:20:26] Comenzando en línea 646: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 647: '' -[11:20:26] Línea 648: '_COMMENT' -[11:20:26] Línea 649: '' -[11:20:26] Línea 650: '_END_COMMENT' -[11:20:26] Línea 651: '_LD_ASSIGN' -[11:20:26] Línea 652: '_LD_OR' -[11:20:26] Línea 653: '_LD_OPERATOR : 4' -[11:20:26] Línea 654: '_LD_AND' -[11:20:26] Línea 655: '_LD_OPERATOR : 2' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 652 -[11:20:26] 📋 Lógica parseada: {'type': 'OR', 'operands': [{'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gBlenderBlending', 'negated': False}, {'type': 'CONTACT', 'name': 'gWaterRecipe', 'negated': True}]}, {'type': 'CONTACT', 'name': 'gBlenderCIPMode', 'negated': False}, {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gRinseCloseVM2', 'negated': True}, {'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gBlenderRinse_Running', 'negated': False}, {'type': 'CONTACT', 'name': 'gProdTankRunOut_Running', 'negated': False}, {'type': 'CONTACT', 'name': 'gProdPipeRunOut_Running', 'negated': False}]}]}, {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gBlenderRun_Latch', 'negated': True}, {'type': 'CONTACT', 'name': 'gH_CMD_BlenderMaintenance', 'negated': False}]}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 704: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 705: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 706: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 707: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 708: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 709: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 710: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 711: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 712: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 712 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 713 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 13: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 13 agregada. Total redes: 13 -[11:20:26] Con lógica: OR - Sin nombre -[11:20:26] Target: 'gPID_SYR_Enabled' -[11:20:26] Procesando red 14... -[11:20:26] Comenzando en línea 719: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 720: '' -[11:20:26] Línea 721: '_COMMENT' -[11:20:26] Línea 722: '' -[11:20:26] Línea 723: '_END_COMMENT' -[11:20:26] Línea 724: '_LD_ASSIGN' -[11:20:26] Línea 725: '_LD_AND' -[11:20:26] Línea 726: '_LD_OPERATOR : 2' -[11:20:26] Línea 727: '_LD_CONTACT' -[11:20:26] Línea 728: 'gPID_SYR_Enabled' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 725 -[11:20:26] 📋 Lógica parseada: {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gPID_SYR_Enabled', 'negated': False}, {'type': 'CONTACT', 'name': 'gBlenderStableFlow', 'negated': True}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 735: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 736: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 737: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 738: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 739: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 740: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 741: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 741 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 742 -[11:20:26] 🔎 Línea 742: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 742 -[11:20:26] ✅ Llamada parseada: OPERATOR - MOVE -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 760 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 14: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 768 -[11:20:26] 📋 Lógica parseada: {'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gPID_SYR_Enabled', 'negated': False}, {'type': 'CONTACT', 'name': 'gI_ITL_PID_SYR', 'negated': False}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 778: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 779: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 780: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 781: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 782: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 783: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 784: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 784 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 785 -[11:20:26] 🔎 Línea 785: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 785 -[11:20:26] ✅ Llamada parseada: FUNCTION_BLOCK - None -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 901 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 14: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 909 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gI_ITL_PID_SYR', 'negated': False} -[11:20:26] 🔎 Buscando ENABLELIST en línea 913: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 914: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 915: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 916: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 917: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 917 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 918 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 14: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 14 agregada. Total redes: 14 -[11:20:26] Con lógica: CONTACT - gI_ITL_PID_SYR -[11:20:26] Target: 'gI_ITL_PID_SYR' -[11:20:26] Procesando red 15... -[11:20:26] Comenzando en línea 924: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 925: '' -[11:20:26] Línea 926: '_COMMENT' -[11:20:26] Línea 927: '' -[11:20:26] Línea 928: '_END_COMMENT' -[11:20:26] Línea 929: '_LD_ASSIGN' -[11:20:26] Línea 930: '_LD_AND' -[11:20:26] Línea 931: '_LD_OPERATOR : 2' -[11:20:26] Línea 932: '_LD_CONTACT' -[11:20:26] Línea 933: 'gPID_SYR_Enabled' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 930 -[11:20:26] Detectado Function Block directo: mSyrPIDEn -[11:20:26] ADVERTENCIA: Bucle infinito evitado en function block en línea 936 -[11:20:26] 📋 Lógica parseada: {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gPID_SYR_Enabled', 'negated': False}, {'type': 'FUNCTION_BLOCK', 'name': 'mSyrPIDEn', 'instance_name': 'mSyrPIDEn', 'inputs': [], 'outputs': []}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 942: 'F_TRIG' -[11:20:26] 🔎 Buscando ENABLELIST en línea 943: '_OUTPUTS : 0' -[11:20:26] 📤 Sección de outputs encontrada en línea 943 -[11:20:26] Red 15 agregada. Total redes: 15 -[11:20:26] Con lógica: AND - Sin nombre -[11:20:26] Target: 'mSyrONS' -[11:20:26] Procesando red 16... -[11:20:26] Comenzando en línea 957: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 958: '' -[11:20:26] Línea 959: '_COMMENT' -[11:20:26] Línea 960: '' -[11:20:26] Línea 961: '_END_COMMENT' -[11:20:26] Línea 962: '_LD_ASSIGN' -[11:20:26] Línea 963: '_LD_CONTACT' -[11:20:26] Línea 964: 'mSyrONS' -[11:20:26] Línea 965: '_EXPRESSION' -[11:20:26] Línea 966: '_POSITIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 963 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'mSyrONS', 'negated': False} -[11:20:26] 🔎 Buscando ENABLELIST en línea 967: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 968: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 969: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 970: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 971: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 971 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 972 -[11:20:26] 🔎 Línea 972: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 972 -[11:20:26] ✅ Llamada parseada: OPERATOR - MOVE -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 990 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 16: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 998 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 998 -[11:20:26] Entrando a _parse_empty_network desde línea 999 -[11:20:26] Línea 999: '_EXPRESSION' -[11:20:26] Línea 1000: '_POSITIV' -[11:20:26] Línea 1001: '' -[11:20:26] Línea 1002: '' -[11:20:26] Línea 1003: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 1004: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 1004 -[11:20:26] Entrando a _parse_assign_section desde línea 1005 -[11:20:26] Línea 1005: '_OPERATOR' -[11:20:26] Línea 1006: '_BOX_EXPR : 3' -[11:20:26] Línea 1007: '_ENABLED' -[11:20:26] Línea 1008: '_OPERAND' -[11:20:26] Línea 1009: '_EXPRESSION' -[11:20:26] Línea 1010: '_POSITIV' -[11:20:26] Línea 1011: 'gPID_SYR_Enabled' -[11:20:26] Línea 1012: '_OPERAND' -[11:20:26] Línea 1013: '_EXPRESSION' -[11:20:26] Línea 1014: '_POSITIV' -[11:20:26] Línea 1015: '0.0' -[11:20:26] Línea 1016: '_OPERAND' -[11:20:26] Línea 1017: '_EXPRESSION' -[11:20:26] Línea 1018: '_POSITIV' -[11:20:26] Línea 1019: 'gR_Out_SYR_PID' -[11:20:26] _parse_assign_section terminó sin encontrar función -[11:20:26] Línea 1020: '_EXPRESSION' -[11:20:26] Línea 1021: '_POSITIV' -[11:20:26] Línea 1022: 'SEL' -[11:20:26] Línea 1023: '_EXPRESSION' -[11:20:26] Línea 1024: '_POSITIV' -[11:20:26] _parse_empty_network terminó sin encontrar función -[11:20:26] 📋 Lógica parseada: None -[11:20:26] 🔎 Buscando ENABLELIST en línea 1025: '_OUTPUTS : 2' -[11:20:26] 📤 Sección de outputs encontrada en línea 1025 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1042 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1046: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1047: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1048: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1049: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1050: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 1050 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 1051 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 16: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 16 agregada. Total redes: 16 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mI_Sel_CO2' -[11:20:26] Procesando red 17... -[11:20:26] Comenzando en línea 1057: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 1058: '' -[11:20:26] Línea 1059: '_COMMENT' -[11:20:26] Línea 1060: '' -[11:20:26] Línea 1061: '_END_COMMENT' -[11:20:26] Línea 1062: '_LD_ASSIGN' -[11:20:26] Línea 1063: '_LD_CONTACT' -[11:20:26] Línea 1064: 'gAlwaysOff' -[11:20:26] Línea 1065: '_EXPRESSION' -[11:20:26] Línea 1066: '_NEGATIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1063 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1067: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1068: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1069: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1070: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1071: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 1071 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 1072 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 17: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 17 agregada. Total redes: 17 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mP_Sel_CO2' -[11:20:26] Procesando red 18... -[11:20:26] Comenzando en línea 1078: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 1079: '' -[11:20:26] Línea 1080: '_COMMENT' -[11:20:26] Línea 1081: '' -[11:20:26] Línea 1082: '_END_COMMENT' -[11:20:26] Línea 1083: '_LD_ASSIGN' -[11:20:26] Línea 1084: '_LD_CONTACT' -[11:20:26] Línea 1085: 'gAlwaysOff' -[11:20:26] Línea 1086: '_EXPRESSION' -[11:20:26] Línea 1087: '_NEGATIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1084 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1088: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1089: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1090: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1091: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1092: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 1092 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 1093 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 18: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 18 agregada. Total redes: 18 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mD_Sel_CO2' -[11:20:26] Procesando red 19... -[11:20:26] Comenzando en línea 1099: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 1100: '' -[11:20:26] Línea 1101: '_COMMENT' -[11:20:26] Línea 1102: '' -[11:20:26] Línea 1103: '_END_COMMENT' -[11:20:26] Línea 1104: '_LD_ASSIGN' -[11:20:26] Línea 1105: '_LD_OR' -[11:20:26] Línea 1106: '_LD_OPERATOR : 2' -[11:20:26] Línea 1107: '_LD_AND' -[11:20:26] Línea 1108: '_LD_OPERATOR : 2' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1105 -[11:20:26] 📋 Lógica parseada: {'type': 'OR', 'operands': [{'type': 'AND', 'operands': [{'type': 'OR', 'operands': [{'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gBlenderBlending', 'negated': False}, {'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gCarboStillProduct', 'negated': False}, {'type': 'CONTACT', 'name': 'gH_Blender_OPT_DoubleDeair', 'negated': False}]}, {'type': 'CONTACT', 'name': 'gH_Blender_OPT_RemoteInjection', 'negated': True}]}, {'type': 'CONTACT', 'name': 'gP_CarboPipe_En', 'negated': False}, {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gP_CIP_CO2_Inj', 'negated': False}, {'type': 'CONTACT', 'name': 'gBlenderCIPMode', 'negated': False}]}]}, {'type': 'CONTACT', 'name': 'gWorkshopTest', 'negated': True}]}, {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gBlenderRun_Latch', 'negated': True}, {'type': 'CONTACT', 'name': 'gH_CMD_BlenderMaintenance', 'negated': False}]}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1169: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1170: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1171: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1172: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1173: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1174: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1175: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1176: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1177: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 1177 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 1178 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 19: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 19 agregada. Total redes: 19 -[11:20:26] Con lógica: OR - Sin nombre -[11:20:26] Target: 'gPID_CarboCO2_Enabled' -[11:20:26] Procesando red 20... -[11:20:26] Comenzando en línea 1184: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 1185: '' -[11:20:26] Línea 1186: '_COMMENT' -[11:20:26] Línea 1187: '' -[11:20:26] Línea 1188: '_END_COMMENT' -[11:20:26] Línea 1189: '_LD_ASSIGN' -[11:20:26] Línea 1190: '_LD_AND' -[11:20:26] Línea 1191: '_LD_OPERATOR : 5' -[11:20:26] Línea 1192: '_LD_CONTACT' -[11:20:26] Línea 1193: 'gPID_CarboCO2_Enabled' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1190 -[11:20:26] 📋 Lógica parseada: {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gPID_CarboCO2_Enabled', 'negated': False}, {'type': 'CONTACT', 'name': 'gBlenderStableFlow', 'negated': True}, {'type': 'CONTACT', 'name': 'gP_CarboPipe_En', 'negated': True}, {'type': 'CONTACT', 'name': 'gBlenderRinse_Running', 'negated': True}, {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': False}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1212: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1213: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1214: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1215: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1216: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1217: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1218: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 1218 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 1219 -[11:20:26] 🔎 Línea 1219: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 1219 -[11:20:26] ✅ Llamada parseada: OPERATOR - MOVE -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 1237 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 20: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1245 -[11:20:26] 📋 Lógica parseada: {'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gPID_CarboCO2_Enabled', 'negated': False}, {'type': 'CONTACT', 'name': 'gI_ITL_PID_CO2', 'negated': False}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1255: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1256: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1257: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1258: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1259: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1260: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1261: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 1261 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 1262 -[11:20:26] 🔎 Línea 1262: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 1262 -[11:20:26] ✅ Llamada parseada: FUNCTION_BLOCK - None -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 1378 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 20: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1386 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gI_ITL_PID_CO2', 'negated': False} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1390: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1391: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1392: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1393: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1394: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 1394 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 1395 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 20: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 20 agregada. Total redes: 20 -[11:20:26] Con lógica: CONTACT - gI_ITL_PID_CO2 -[11:20:26] Target: 'gI_ITL_PID_CO2' -[11:20:26] Procesando red 21... -[11:20:26] Comenzando en línea 1401: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 1402: '' -[11:20:26] Línea 1403: '_COMMENT' -[11:20:26] Línea 1404: '' -[11:20:26] Línea 1405: '_END_COMMENT' -[11:20:26] Línea 1406: '_LD_ASSIGN' -[11:20:26] Línea 1407: '_LD_AND' -[11:20:26] Línea 1408: '_LD_OPERATOR : 2' -[11:20:26] Línea 1409: '_LD_CONTACT' -[11:20:26] Línea 1410: 'gPID_CarboCO2_Enabled' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1407 -[11:20:26] Detectado Function Block directo: mCO2PIDEn -[11:20:26] ADVERTENCIA: Bucle infinito evitado en function block en línea 1413 -[11:20:26] 📋 Lógica parseada: {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gPID_CarboCO2_Enabled', 'negated': False}, {'type': 'FUNCTION_BLOCK', 'name': 'mCO2PIDEn', 'instance_name': 'mCO2PIDEn', 'inputs': [], 'outputs': []}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1419: 'F_TRIG' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1420: '_OUTPUTS : 0' -[11:20:26] 📤 Sección de outputs encontrada en línea 1420 -[11:20:26] Red 21 agregada. Total redes: 21 -[11:20:26] Con lógica: AND - Sin nombre -[11:20:26] Target: 'mCO2ONS' -[11:20:26] Procesando red 22... -[11:20:26] Comenzando en línea 1434: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 1435: '' -[11:20:26] Línea 1436: '_COMMENT' -[11:20:26] Línea 1437: '' -[11:20:26] Línea 1438: '_END_COMMENT' -[11:20:26] Línea 1439: '_LD_ASSIGN' -[11:20:26] Línea 1440: '_LD_CONTACT' -[11:20:26] Línea 1441: 'mCO2ONS' -[11:20:26] Línea 1442: '_EXPRESSION' -[11:20:26] Línea 1443: '_POSITIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1440 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'mCO2ONS', 'negated': False} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1444: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1445: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1446: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1447: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1448: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 1448 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 1449 -[11:20:26] 🔎 Línea 1449: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 1449 -[11:20:26] ✅ Llamada parseada: OPERATOR - MOVE -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 1467 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 22: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1475 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 1475 -[11:20:26] Entrando a _parse_empty_network desde línea 1476 -[11:20:26] Línea 1476: '_EXPRESSION' -[11:20:26] Línea 1477: '_POSITIV' -[11:20:26] Línea 1478: '' -[11:20:26] Línea 1479: '' -[11:20:26] Línea 1480: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 1481: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 1481 -[11:20:26] Entrando a _parse_assign_section desde línea 1482 -[11:20:26] Línea 1482: '_OPERATOR' -[11:20:26] Línea 1483: '_BOX_EXPR : 3' -[11:20:26] Línea 1484: '_ENABLED' -[11:20:26] Línea 1485: '_OPERAND' -[11:20:26] Línea 1486: '_EXPRESSION' -[11:20:26] Línea 1487: '_POSITIV' -[11:20:26] Línea 1488: 'gPID_CarboCO2_Enabled' -[11:20:26] Línea 1489: '_OPERAND' -[11:20:26] Línea 1490: '_EXPRESSION' -[11:20:26] Línea 1491: '_POSITIV' -[11:20:26] Línea 1492: '0.0' -[11:20:26] Línea 1493: '_OPERAND' -[11:20:26] Línea 1494: '_EXPRESSION' -[11:20:26] Línea 1495: '_POSITIV' -[11:20:26] Línea 1496: 'gR_Out_CO2_PID' -[11:20:26] _parse_assign_section terminó sin encontrar función -[11:20:26] Línea 1497: '_EXPRESSION' -[11:20:26] Línea 1498: '_POSITIV' -[11:20:26] Línea 1499: 'SEL' -[11:20:26] Línea 1500: '_EXPRESSION' -[11:20:26] Línea 1501: '_POSITIV' -[11:20:26] _parse_empty_network terminó sin encontrar función -[11:20:26] 📋 Lógica parseada: None -[11:20:26] 🔎 Buscando ENABLELIST en línea 1502: '_OUTPUTS : 2' -[11:20:26] 📤 Sección de outputs encontrada en línea 1502 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1519 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 1519 -[11:20:26] Entrando a _parse_empty_network desde línea 1520 -[11:20:26] Línea 1520: '_EXPRESSION' -[11:20:26] Línea 1521: '_POSITIV' -[11:20:26] Línea 1522: '' -[11:20:26] Línea 1523: '' -[11:20:26] Línea 1524: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 1525: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 1525 -[11:20:26] Entrando a _parse_assign_section desde línea 1526 -[11:20:26] Línea 1526: '_FUNCTIONBLOCK' -[11:20:26] ENCONTRADO _FUNCTIONBLOCK en _ASSIGN: línea 1526 -[11:20:26] Detectado Function Block directo: _FBD_PROGRAM -[11:20:26] ADVERTENCIA: Bucle infinito evitado en function block en línea 1526 -[11:20:26] Línea 1532: 'Blender_PID_Ctrl_Loop.PIDMonitor' -[11:20:26] Función encontrada pero sin target específico -[11:20:26] Usando target por defecto: mDummy -[11:20:26] Red de función 23 creada para FUNCTION_BLOCK: _FBD_PROGRAM -[11:20:26] Target: 'mDummy' -[11:20:26] 📋 Lógica parseada: {'type': 'FUNCTION_BLOCK', 'name': '_FBD_PROGRAM', 'instance_name': '_FBD_PROGRAM', 'inputs': [], 'outputs': []} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1533: '_OUTPUTS : 0' -[11:20:26] 📤 Sección de outputs encontrada en línea 1533 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1549 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 1549 -[11:20:26] Entrando a _parse_empty_network desde línea 1550 -[11:20:26] Línea 1550: '_EXPRESSION' -[11:20:26] Línea 1551: '_POSITIV' -[11:20:26] Línea 1552: '' -[11:20:26] Línea 1553: '' -[11:20:26] Línea 1554: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 1555: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 1555 -[11:20:26] Entrando a _parse_assign_section desde línea 1556 -[11:20:26] Línea 1556: '_FUNCTIONBLOCK' -[11:20:26] ENCONTRADO _FUNCTIONBLOCK en _ASSIGN: línea 1556 -[11:20:26] Detectado Function Block directo: _FBD_PROGRAM -[11:20:26] ADVERTENCIA: Bucle infinito evitado en function block en línea 1556 -[11:20:26] Línea 1562: 'Blender_PID_Ctrl_Loop.SaveIntegral' -[11:20:26] Función encontrada pero sin target específico -[11:20:26] Usando target por defecto: mDummy -[11:20:26] Red de función 24 creada para FUNCTION_BLOCK: _FBD_PROGRAM -[11:20:26] Target: 'mDummy' -[11:20:26] 📋 Lógica parseada: {'type': 'FUNCTION_BLOCK', 'name': '_FBD_PROGRAM', 'instance_name': '_FBD_PROGRAM', 'inputs': [], 'outputs': []} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1563: '_OUTPUTS : 0' -[11:20:26] 📤 Sección de outputs encontrada en línea 1563 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1579 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': False} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1583: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1584: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1585: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1586: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1587: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 1587 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 1588 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 22: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 22 agregada. Total redes: 24 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mI_Sel_PressCO2' -[11:20:26] Procesando red 25... -[11:20:26] Comenzando en línea 1594: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 1595: '' -[11:20:26] Línea 1596: '_COMMENT' -[11:20:26] Línea 1597: '' -[11:20:26] Línea 1598: '_END_COMMENT' -[11:20:26] Línea 1599: '_LD_ASSIGN' -[11:20:26] Línea 1600: '_LD_CONTACT' -[11:20:26] Línea 1601: 'gAlwaysOff' -[11:20:26] Línea 1602: '_EXPRESSION' -[11:20:26] Línea 1603: '_NEGATIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1600 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1604: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1605: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1606: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1607: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1608: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 1608 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 1609 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 25: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 25 agregada. Total redes: 25 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mP_Sel_PressCO2' -[11:20:26] Procesando red 26... -[11:20:26] Comenzando en línea 1615: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 1616: '' -[11:20:26] Línea 1617: '_COMMENT' -[11:20:26] Línea 1618: '' -[11:20:26] Línea 1619: '_END_COMMENT' -[11:20:26] Línea 1620: '_LD_ASSIGN' -[11:20:26] Línea 1621: '_LD_CONTACT' -[11:20:26] Línea 1622: 'gAlwaysOff' -[11:20:26] Línea 1623: '_EXPRESSION' -[11:20:26] Línea 1624: '_POSITIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1621 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': False} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1625: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1626: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1627: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1628: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1629: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 1629 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 1630 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 26: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 26 agregada. Total redes: 26 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mD_Sel_PressCO2' -[11:20:26] Procesando red 27... -[11:20:26] Comenzando en línea 1636: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 1637: '' -[11:20:26] Línea 1638: '_COMMENT' -[11:20:26] Línea 1639: '' -[11:20:26] Línea 1640: '_END_COMMENT' -[11:20:26] Línea 1641: '_LD_ASSIGN' -[11:20:26] Línea 1642: '_EMPTY' -[11:20:26] Línea 1643: '_EXPRESSION' -[11:20:26] Línea 1644: '_POSITIV' -[11:20:26] Línea 1645: '' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1642 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 1642 -[11:20:26] Entrando a _parse_empty_network desde línea 1643 -[11:20:26] Línea 1643: '_EXPRESSION' -[11:20:26] Línea 1644: '_POSITIV' -[11:20:26] Línea 1645: '' -[11:20:26] Línea 1646: '' -[11:20:26] Línea 1647: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 1648: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 1648 -[11:20:26] Entrando a _parse_assign_section desde línea 1649 -[11:20:26] Línea 1649: '_OPERATOR' -[11:20:26] Línea 1650: '_BOX_EXPR : 1' -[11:20:26] Línea 1651: '_ENABLED' -[11:20:26] Línea 1652: '_OPERAND' -[11:20:26] Línea 1653: '_EXPRESSION' -[11:20:26] Línea 1654: '_POSITIV' -[11:20:26] Línea 1655: '40' -[11:20:26] Línea 1656: '_EXPRESSION' -[11:20:26] Línea 1657: '_POSITIV' -[11:20:26] Línea 1658: 'MOVE' -[11:20:26] Línea 1659: '_EXPRESSION' -[11:20:26] Línea 1660: '_POSITIV' -[11:20:26] Línea 1661: '_OUTPUTS : 1' -[11:20:26] Línea 1662: '_OUTPUT' -[11:20:26] Línea 1663: '_POSITIV' -[11:20:26] _parse_assign_section terminó sin encontrar función -[11:20:26] Línea 1664: '_NO_SET' -[11:20:26] Línea 1665: 'gR_PressCO2_TI' -[11:20:26] Línea 1666: 'ENABLELIST_END' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] _parse_empty_network terminó sin encontrar función -[11:20:26] 📋 Lógica parseada: None -[11:20:26] 🔎 Buscando ENABLELIST en línea 1667: '_OUTPUTS : 0' -[11:20:26] 📤 Sección de outputs encontrada en línea 1667 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1674 -[11:20:26] 📋 Lógica parseada: {'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gProdTankPress_Running', 'negated': False}, {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gManual_PID_PressCO2', 'negated': False}, {'type': 'CONTACT', 'name': 'gBlenderCIPMode', 'negated': True}]}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1690: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1691: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1692: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1693: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1694: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1695: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1696: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1697: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1698: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 1698 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 1699 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 27: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 27 agregada. Total redes: 27 -[11:20:26] Con lógica: OR - Sin nombre -[11:20:26] Target: 'gPID_PressCO2_Enabled' -[11:20:26] Procesando red 28... -[11:20:26] Comenzando en línea 1705: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 1706: '' -[11:20:26] Línea 1707: '_COMMENT' -[11:20:26] Línea 1708: '' -[11:20:26] Línea 1709: '_END_COMMENT' -[11:20:26] Línea 1710: '_LD_ASSIGN' -[11:20:26] Línea 1711: '_LD_OR' -[11:20:26] Línea 1712: '_LD_OPERATOR : 2' -[11:20:26] Línea 1713: '_LD_CONTACT' -[11:20:26] Línea 1714: 'gPID_PressCO2_Enabled' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1711 -[11:20:26] 📋 Lógica parseada: {'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gPID_PressCO2_Enabled', 'negated': False}, {'type': 'CONTACT', 'name': 'gI_ITL_PID_PressCO2', 'negated': False}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1721: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1722: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1723: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1724: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1725: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1726: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1727: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 1727 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 1728 -[11:20:26] 🔎 Línea 1728: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 1728 -[11:20:26] ✅ Llamada parseada: FUNCTION_BLOCK - gP_LimitCO2PressValve -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 1866 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 28: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1874 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gI_ITL_PID_PressCO2', 'negated': False} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1878: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1879: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1880: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1881: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1882: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 1882 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 1883 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 28: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 28 agregada. Total redes: 28 -[11:20:26] Con lógica: CONTACT - gI_ITL_PID_PressCO2 -[11:20:26] Target: 'gI_ITL_PID_PressCO2' -[11:20:26] Procesando red 29... -[11:20:26] Comenzando en línea 1889: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 1890: '' -[11:20:26] Línea 1891: '_COMMENT' -[11:20:26] Línea 1892: '' -[11:20:26] Línea 1893: '_END_COMMENT' -[11:20:26] Línea 1894: '_LD_ASSIGN' -[11:20:26] Línea 1895: '_EMPTY' -[11:20:26] Línea 1896: '_EXPRESSION' -[11:20:26] Línea 1897: '_POSITIV' -[11:20:26] Línea 1898: '' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1895 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 1895 -[11:20:26] Entrando a _parse_empty_network desde línea 1896 -[11:20:26] Línea 1896: '_EXPRESSION' -[11:20:26] Línea 1897: '_POSITIV' -[11:20:26] Línea 1898: '' -[11:20:26] Línea 1899: '' -[11:20:26] Línea 1900: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 1901: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 1901 -[11:20:26] Entrando a _parse_assign_section desde línea 1902 -[11:20:26] Línea 1902: '_OPERATOR' -[11:20:26] Línea 1903: '_BOX_EXPR : 3' -[11:20:26] Línea 1904: '_ENABLED' -[11:20:26] Línea 1905: '_OPERAND' -[11:20:26] Línea 1906: '_EXPRESSION' -[11:20:26] Línea 1907: '_POSITIV' -[11:20:26] Línea 1908: 'gPID_PressCO2_Enabled' -[11:20:26] Línea 1909: '_OPERAND' -[11:20:26] Línea 1910: '_EXPRESSION' -[11:20:26] Línea 1911: '_POSITIV' -[11:20:26] Línea 1912: '0.0' -[11:20:26] Línea 1913: '_OPERAND' -[11:20:26] Línea 1914: '_EXPRESSION' -[11:20:26] Línea 1915: '_POSITIV' -[11:20:26] Línea 1916: 'gR_Out_PressCO2_PID' -[11:20:26] _parse_assign_section terminó sin encontrar función -[11:20:26] Línea 1917: '_EXPRESSION' -[11:20:26] Línea 1918: '_POSITIV' -[11:20:26] Línea 1919: 'SEL' -[11:20:26] Línea 1920: '_EXPRESSION' -[11:20:26] Línea 1921: '_POSITIV' -[11:20:26] _parse_empty_network terminó sin encontrar función -[11:20:26] 📋 Lógica parseada: None -[11:20:26] 🔎 Buscando ENABLELIST en línea 1922: '_OUTPUTS : 2' -[11:20:26] 📤 Sección de outputs encontrada en línea 1922 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1939 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 1939 -[11:20:26] Entrando a _parse_empty_network desde línea 1940 -[11:20:26] Línea 1940: '_EXPRESSION' -[11:20:26] Línea 1941: '_POSITIV' -[11:20:26] Línea 1942: '' -[11:20:26] Línea 1943: '' -[11:20:26] Línea 1944: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 1945: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 1945 -[11:20:26] Entrando a _parse_assign_section desde línea 1946 -[11:20:26] Línea 1946: '_FUNCTIONBLOCK' -[11:20:26] ENCONTRADO _FUNCTIONBLOCK en _ASSIGN: línea 1946 -[11:20:26] Detectado Function Block directo: _FBD_PROGRAM -[11:20:26] ADVERTENCIA: Bucle infinito evitado en function block en línea 1946 -[11:20:26] Línea 1952: 'Blender_PID_Ctrl_Loop.PressureRelease' -[11:20:26] Función encontrada pero sin target específico -[11:20:26] Usando target por defecto: mDummy -[11:20:26] Red de función 30 creada para FUNCTION_BLOCK: _FBD_PROGRAM -[11:20:26] Target: 'mDummy' -[11:20:26] 📋 Lógica parseada: {'type': 'FUNCTION_BLOCK', 'name': '_FBD_PROGRAM', 'instance_name': '_FBD_PROGRAM', 'inputs': [], 'outputs': []} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1953: '_OUTPUTS : 0' -[11:20:26] 📤 Sección de outputs encontrada en línea 1953 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1969 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1973: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1974: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1975: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1976: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1977: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 1977 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 1978 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 29: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 29 agregada. Total redes: 30 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mI_Sel_SYRLevel' -[11:20:26] Procesando red 31... -[11:20:26] Comenzando en línea 1984: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 1985: '' -[11:20:26] Línea 1986: '_COMMENT' -[11:20:26] Línea 1987: '' -[11:20:26] Línea 1988: '_END_COMMENT' -[11:20:26] Línea 1989: '_LD_ASSIGN' -[11:20:26] Línea 1990: '_LD_CONTACT' -[11:20:26] Línea 1991: 'gAlwaysOff' -[11:20:26] Línea 1992: '_EXPRESSION' -[11:20:26] Línea 1993: '_NEGATIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 1990 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 1994: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1995: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1996: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1997: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 1998: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 1998 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 1999 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 31: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 31 agregada. Total redes: 31 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mP_Sel_SYRLevel' -[11:20:26] Procesando red 32... -[11:20:26] Comenzando en línea 2005: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 2006: '' -[11:20:26] Línea 2007: '_COMMENT' -[11:20:26] Línea 2008: '' -[11:20:26] Línea 2009: '_END_COMMENT' -[11:20:26] Línea 2010: '_LD_ASSIGN' -[11:20:26] Línea 2011: '_LD_CONTACT' -[11:20:26] Línea 2012: 'gAlwaysOff' -[11:20:26] Línea 2013: '_EXPRESSION' -[11:20:26] Línea 2014: '_NEGATIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 2011 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 2015: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2016: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2017: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2018: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2019: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 2019 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 2020 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 32: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 32 agregada. Total redes: 32 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mD_Sel_SYRLevel' -[11:20:26] Procesando red 33... -[11:20:26] Comenzando en línea 2026: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 2027: '' -[11:20:26] Línea 2028: '_COMMENT' -[11:20:26] Línea 2029: '' -[11:20:26] Línea 2030: '_END_COMMENT' -[11:20:26] Línea 2031: '_LD_ASSIGN' -[11:20:26] Línea 2032: '_LD_OR' -[11:20:26] Línea 2033: '_LD_OPERATOR : 4' -[11:20:26] Línea 2034: '_LD_AND' -[11:20:26] Línea 2035: '_LD_OPERATOR : 2' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 2032 -[11:20:26] 📋 Lógica parseada: {'type': 'OR', 'operands': [{'type': 'AND', 'operands': [{'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gBlenderCIPMode', 'negated': False}, {'type': 'CONTACT', 'name': 'gBlenderRinseMode', 'negated': False}]}, {'type': 'CONTACT', 'name': 'gCIPSyrupStopLevel', 'negated': True}]}, {'type': 'AND', 'operands': [{'type': 'OR', 'operands': [{'type': 'AND', 'operands': [{'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gSyrRunOut_Latch', 'negated': False}, {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gFirstProd_Latch', 'negated': False}, {'type': 'CONTACT', 'name': 'gSyrLineMFMPrep_Done', 'negated': False}]}, {'type': 'CONTACT', 'name': 'gFastChangeOverActivated', 'negated': True}]}, {'type': 'CONTACT', 'name': 'gBlenderRun_Latch', 'negated': False}]}, {'type': 'AND', 'operands': [{'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gSyrLineMFMPrep_Running', 'negated': False}, {'type': 'CONTACT', 'name': 'gSyrMFMStartUp_Running', 'negated': False}]}, {'type': 'CONTACT', 'name': 'gInSyrRoomOk', 'negated': False}]}, {'type': 'CONTACT', 'name': 'gSyrupTankLoading', 'negated': False}, {'type': 'CONTACT', 'name': 'gProdPipeRunOut_Running', 'negated': False}]}, {'type': 'CONTACT', 'name': 'gWaterRecipe', 'negated': True}, {'type': 'CONTACT', 'name': 'gBlenderProdMode', 'negated': False}, {'type': 'CONTACT', 'name': 'gBlenderRinseMode', 'negated': True}]}, {'type': 'CONTACT', 'name': 'gP_EV03', 'negated': False}, {'type': 'CONTACT', 'name': 'gManual_PID_SYR_Level', 'negated': False}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 2142: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2143: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2144: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2145: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2146: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2147: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2148: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 2148 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 2149 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 33: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 33 agregada. Total redes: 33 -[11:20:26] Con lógica: OR - Sin nombre -[11:20:26] Target: 'gPID_SYRLevel_Enabled' -[11:20:26] Procesando red 34... -[11:20:26] Comenzando en línea 2155: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 2156: '' -[11:20:26] Línea 2157: '_COMMENT' -[11:20:26] Línea 2158: '' -[11:20:26] Línea 2159: '_END_COMMENT' -[11:20:26] Línea 2160: '_LD_ASSIGN' -[11:20:26] Línea 2161: '_LD_AND' -[11:20:26] Línea 2162: '_LD_OPERATOR : 3' -[11:20:26] Línea 2163: '_LD_CONTACT' -[11:20:26] Línea 2164: 'gPID_SYRLevel_Enabled' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 2161 -[11:20:26] 📋 Lógica parseada: {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gPID_SYRLevel_Enabled', 'negated': False}, {'type': 'OR', 'operands': [{'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gSyrLineMFMPrep_Running', 'negated': True}, {'type': 'CONTACT', 'name': 'gSyrMFMStartUp_Running', 'negated': True}, {'type': 'CONTACT', 'name': 'gBlenderRun_Running', 'negated': True}]}, {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gBlenderCIPMode', 'negated': False}, {'type': 'CONTACT', 'name': 'gBlenderRun_Wait', 'negated': False}]}]}, {'type': 'CONTACT', 'name': 'gProdPipeRunOut_Running', 'negated': True}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 2203: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2204: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2205: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2206: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2207: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2208: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2209: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 2209 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 2210 -[11:20:26] 🔎 Línea 2210: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 2210 -[11:20:26] ✅ Llamada parseada: OPERATOR - MOVE -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 2228 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 34: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 2236 -[11:20:26] 📋 Lógica parseada: {'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gPID_SYRLevel_Enabled', 'negated': False}, {'type': 'CONTACT', 'name': 'gI_ITL_PID_SYR_Level', 'negated': False}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 2246: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2247: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2248: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2249: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2250: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2251: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2252: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 2252 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 2253 -[11:20:26] 🔎 Línea 2253: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 2253 -[11:20:26] ✅ Llamada parseada: FUNCTION_BLOCK - None -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 2369 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 34: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 2377 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gI_ITL_PID_SYR_Level', 'negated': False} -[11:20:26] 🔎 Buscando ENABLELIST en línea 2381: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2382: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2383: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2384: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2385: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 2385 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 2386 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 34: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 34 agregada. Total redes: 34 -[11:20:26] Con lógica: CONTACT - gI_ITL_PID_SYR_Level -[11:20:26] Target: 'gI_ITL_PID_SYR_Level' -[11:20:26] Procesando red 35... -[11:20:26] Comenzando en línea 2392: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 2393: '' -[11:20:26] Línea 2394: '_COMMENT' -[11:20:26] Línea 2395: '' -[11:20:26] Línea 2396: '_END_COMMENT' -[11:20:26] Línea 2397: '_LD_ASSIGN' -[11:20:26] Línea 2398: '_EMPTY' -[11:20:26] Línea 2399: '_EXPRESSION' -[11:20:26] Línea 2400: '_POSITIV' -[11:20:26] Línea 2401: '' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 2398 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 2398 -[11:20:26] Entrando a _parse_empty_network desde línea 2399 -[11:20:26] Línea 2399: '_EXPRESSION' -[11:20:26] Línea 2400: '_POSITIV' -[11:20:26] Línea 2401: '' -[11:20:26] Línea 2402: '' -[11:20:26] Línea 2403: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 2404: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 2404 -[11:20:26] Entrando a _parse_assign_section desde línea 2405 -[11:20:26] Línea 2405: '_OPERATOR' -[11:20:26] Línea 2406: '_BOX_EXPR : 2' -[11:20:26] Línea 2407: '_ENABLED' -[11:20:26] Línea 2408: '_OPERAND' -[11:20:26] Línea 2409: '_EXPRESSION' -[11:20:26] Línea 2410: '_POSITIV' -[11:20:26] Línea 2411: 'gSyrupTankLevel' -[11:20:26] Línea 2412: '_OPERATOR' -[11:20:26] Línea 2413: '_BOX_EXPR : 3' -[11:20:26] Línea 2414: '_OPERAND' -[11:20:26] Línea 2415: '_EXPRESSION' -[11:20:26] Línea 2416: '_POSITIV' -[11:20:26] Línea 2417: 'gSyrRunOut_Latch' -[11:20:26] Línea 2418: '_OPERAND' -[11:20:26] Línea 2419: '_EXPRESSION' -[11:20:26] _parse_assign_section terminó sin encontrar función -[11:20:26] Línea 2420: '_POSITIV' -[11:20:26] Línea 2421: '85' -[11:20:26] Línea 2422: '_OPERAND' -[11:20:26] Línea 2423: '_EXPRESSION' -[11:20:26] Línea 2424: '_POSITIV' -[11:20:26] Línea 2425: '15' -[11:20:26] Línea 2426: '_EXPRESSION' -[11:20:26] Línea 2427: '_POSITIV' -[11:20:26] Línea 2428: 'SEL' -[11:20:26] Línea 2429: '_EXPRESSION' -[11:20:26] Línea 2430: '_POSITIV' -[11:20:26] Línea 2431: 'GT' -[11:20:26] Línea 2432: '_EXPRESSION' -[11:20:26] Línea 2433: '_POSITIV' -[11:20:26] _parse_empty_network terminó sin encontrar función -[11:20:26] 📋 Lógica parseada: None -[11:20:26] 🔎 Buscando ENABLELIST en línea 2434: '_OUTPUTS : 1' -[11:20:26] 📤 Sección de outputs encontrada en línea 2434 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 2447 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 2447 -[11:20:26] Entrando a _parse_empty_network desde línea 2448 -[11:20:26] Línea 2448: '_EXPRESSION' -[11:20:26] Línea 2449: '_POSITIV' -[11:20:26] Línea 2450: '' -[11:20:26] Línea 2451: '' -[11:20:26] Línea 2452: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 2453: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 2453 -[11:20:26] Entrando a _parse_assign_section desde línea 2454 -[11:20:26] Línea 2454: '_OPERATOR' -[11:20:26] Línea 2455: '_BOX_EXPR : 3' -[11:20:26] Línea 2456: '_ENABLED' -[11:20:26] Línea 2457: '_OPERATOR' -[11:20:26] Línea 2458: '_BOX_EXPR : 2' -[11:20:26] Línea 2459: '_OPERAND' -[11:20:26] Línea 2460: '_EXPRESSION' -[11:20:26] Línea 2461: '_POSITIV' -[11:20:26] Línea 2462: 'gPID_SYRLevel_Enabled' -[11:20:26] Línea 2463: '_OPERATOR' -[11:20:26] Línea 2464: '_BOX_EXPR : 3' -[11:20:26] Línea 2465: '_OPERAND' -[11:20:26] Línea 2466: '_EXPRESSION' -[11:20:26] Línea 2467: '_NEGATIV' -[11:20:26] Línea 2468: 'mMaxSyrLevelAnalog' -[11:20:26] _parse_assign_section terminó sin encontrar función -[11:20:26] Línea 2469: '_OPERAND' -[11:20:26] Línea 2470: '_EXPRESSION' -[11:20:26] Línea 2471: '_POSITIV' -[11:20:26] Línea 2472: 'gManual_PID_SYR_Level' -[11:20:26] Línea 2473: '_OPERAND' -[11:20:26] Línea 2474: '_EXPRESSION' -[11:20:26] Línea 2475: '_POSITIV' -[11:20:26] Línea 2476: 'gBlenderCIPMode' -[11:20:26] Línea 2477: '_EXPRESSION' -[11:20:26] Línea 2478: '_POSITIV' -[11:20:26] Línea 2479: 'OR' -[11:20:26] Línea 2480: '_EXPRESSION' -[11:20:26] Línea 2481: '_POSITIV' -[11:20:26] Línea 2482: 'AND' -[11:20:26] _parse_empty_network terminó sin encontrar función -[11:20:26] 📋 Lógica parseada: None -[11:20:26] 🔎 Buscando ENABLELIST en línea 2483: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2484: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2485: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2486: '0.0' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2487: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2488: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2489: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2490: 'gR_Out_SYR_Level_PID' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2491: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2492: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2493: 'SEL' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2494: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2495: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2496: '_OUTPUTS : 2' -[11:20:26] 📤 Sección de outputs encontrada en línea 2496 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 2513 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 2517: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2518: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2519: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2520: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2521: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 2521 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 2522 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 35: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 35 agregada. Total redes: 35 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mI_Sel_WaterTemp' -[11:20:26] Procesando red 36... -[11:20:26] Comenzando en línea 2528: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 2529: '' -[11:20:26] Línea 2530: '_COMMENT' -[11:20:26] Línea 2531: '' -[11:20:26] Línea 2532: '_END_COMMENT' -[11:20:26] Línea 2533: '_LD_ASSIGN' -[11:20:26] Línea 2534: '_LD_CONTACT' -[11:20:26] Línea 2535: 'gAlwaysOff' -[11:20:26] Línea 2536: '_EXPRESSION' -[11:20:26] Línea 2537: '_NEGATIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 2534 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 2538: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2539: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2540: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2541: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2542: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 2542 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 2543 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 36: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 36 agregada. Total redes: 36 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mP_Sel_WaterTemp' -[11:20:26] Procesando red 37... -[11:20:26] Comenzando en línea 2549: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 2550: '' -[11:20:26] Línea 2551: '_COMMENT' -[11:20:26] Línea 2552: '' -[11:20:26] Línea 2553: '_END_COMMENT' -[11:20:26] Línea 2554: '_LD_ASSIGN' -[11:20:26] Línea 2555: '_LD_CONTACT' -[11:20:26] Línea 2556: 'gAlwaysOff' -[11:20:26] Línea 2557: '_EXPRESSION' -[11:20:26] Línea 2558: '_NEGATIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 2555 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 2559: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2560: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2561: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2562: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2563: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 2563 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 2564 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 37: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 37 agregada. Total redes: 37 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mD_Sel_waterTemp' -[11:20:26] Procesando red 38... -[11:20:26] Comenzando en línea 2570: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 2571: '' -[11:20:26] Línea 2572: '_COMMENT' -[11:20:26] Línea 2573: '' -[11:20:26] Línea 2574: '_END_COMMENT' -[11:20:26] Línea 2575: '_LD_ASSIGN' -[11:20:26] Línea 2576: '_EMPTY' -[11:20:26] Línea 2577: '_EXPRESSION' -[11:20:26] Línea 2578: '_POSITIV' -[11:20:26] Línea 2579: '' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 2576 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 2576 -[11:20:26] Entrando a _parse_empty_network desde línea 2577 -[11:20:26] Línea 2577: '_EXPRESSION' -[11:20:26] Línea 2578: '_POSITIV' -[11:20:26] Línea 2579: '' -[11:20:26] Línea 2580: '' -[11:20:26] Línea 2581: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 2582: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 2582 -[11:20:26] Entrando a _parse_assign_section desde línea 2583 -[11:20:26] Línea 2583: '_OPERATOR' -[11:20:26] Línea 2584: '_BOX_EXPR : 2' -[11:20:26] Línea 2585: '_ENABLED' -[11:20:26] Línea 2586: '_OPERATOR' -[11:20:26] Línea 2587: '_BOX_EXPR : 4' -[11:20:26] Línea 2588: '_OPERATOR' -[11:20:26] Línea 2589: '_BOX_EXPR : 4' -[11:20:26] Línea 2590: '_OPERAND' -[11:20:26] Línea 2591: '_EXPRESSION' -[11:20:26] Línea 2592: '_POSITIV' -[11:20:26] Línea 2593: 'gBlenderBlending' -[11:20:26] Línea 2594: '_OPERAND' -[11:20:26] Línea 2595: '_EXPRESSION' -[11:20:26] Línea 2596: '_POSITIV' -[11:20:26] Línea 2597: 'gCarboWaterLine_Running' -[11:20:26] _parse_assign_section terminó sin encontrar función -[11:20:26] Línea 2598: '_OPERATOR' -[11:20:26] Línea 2599: '_BOX_EXPR : 2' -[11:20:26] Línea 2600: '_OPERAND' -[11:20:26] Línea 2601: '_EXPRESSION' -[11:20:26] Línea 2602: '_POSITIV' -[11:20:26] Línea 2603: 'gH_ColdRinseRun' -[11:20:26] Línea 2604: '_OPERAND' -[11:20:26] Línea 2605: '_EXPRESSION' -[11:20:26] Línea 2606: '_POSITIV' -[11:20:26] Línea 2607: 'gBlenderRinse_Running' -[11:20:26] Línea 2608: '_EXPRESSION' -[11:20:26] Línea 2609: '_POSITIV' -[11:20:26] Línea 2610: 'AND' -[11:20:26] Línea 2611: '_OPERAND' -[11:20:26] _parse_empty_network terminó sin encontrar función -[11:20:26] 📋 Lógica parseada: None -[11:20:26] 🔎 Buscando ENABLELIST en línea 2612: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2613: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2614: 'gManual_PID_TempWater' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2615: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2616: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2617: 'OR' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2618: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2619: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2620: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2621: 'gWaterChillerEn' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2622: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2623: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2624: '_NEGATIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2625: 'gBlenderCIPMode' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2626: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2627: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2628: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2629: 'gCoolerEnabled' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2630: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2631: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2632: 'AND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2633: '_OPERATOR' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2634: '_BOX_EXPR : 2' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2635: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2636: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2637: '_NEGATIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2638: 'gBlenderRun_Latch' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2639: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2640: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2641: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2642: 'gH_CMD_BlenderMaintenance' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2643: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2644: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2645: 'AND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2646: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2647: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2648: 'OR' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2649: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2650: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2651: '_OUTPUTS : 1' -[11:20:26] 📤 Sección de outputs encontrada en línea 2651 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 2664 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 2664 -[11:20:26] Entrando a _parse_empty_network desde línea 2665 -[11:20:26] Línea 2665: '_EXPRESSION' -[11:20:26] Línea 2666: '_POSITIV' -[11:20:26] Línea 2667: '' -[11:20:26] Línea 2668: '' -[11:20:26] Línea 2669: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 2670: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 2670 -[11:20:26] Entrando a _parse_assign_section desde línea 2671 -[11:20:26] Línea 2671: '_OPERATOR' -[11:20:26] Línea 2672: '_BOX_EXPR : 3' -[11:20:26] Línea 2673: '_ENABLED' -[11:20:26] Línea 2674: '_OPERATOR' -[11:20:26] Línea 2675: '_BOX_EXPR : 2' -[11:20:26] Línea 2676: '_OPERATOR' -[11:20:26] Línea 2677: '_BOX_EXPR : 4' -[11:20:26] Línea 2678: '_OPERAND' -[11:20:26] Línea 2679: '_EXPRESSION' -[11:20:26] Línea 2680: '_POSITIV' -[11:20:26] Línea 2681: 'gPID_WaterTemp_Enabled' -[11:20:26] Línea 2682: '_OPERAND' -[11:20:26] Línea 2683: '_EXPRESSION' -[11:20:26] Línea 2684: '_NEGATIV' -[11:20:26] Línea 2685: 'gBlenderEnToRamp' -[11:20:26] _parse_assign_section terminó sin encontrar función -[11:20:26] Línea 2686: '_OPERAND' -[11:20:26] Línea 2687: '_EXPRESSION' -[11:20:26] Línea 2688: '_NEGATIV' -[11:20:26] Línea 2689: 'gCarboWaterLine_Running' -[11:20:26] Línea 2690: '_OPERAND' -[11:20:26] Línea 2691: '_EXPRESSION' -[11:20:26] Línea 2692: '_NEGATIV' -[11:20:26] Línea 2693: 'gBlenderRinse_Running' -[11:20:26] Línea 2694: '_EXPRESSION' -[11:20:26] Línea 2695: '_POSITIV' -[11:20:26] Línea 2696: 'AND' -[11:20:26] Línea 2697: '_OPERATOR' -[11:20:26] Línea 2698: '_BOX_EXPR : 2' -[11:20:26] Línea 2699: '_OPERAND' -[11:20:26] _parse_empty_network terminó sin encontrar función -[11:20:26] 📋 Lógica parseada: None -[11:20:26] 🔎 Buscando ENABLELIST en línea 2700: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2701: '_NEGATIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2702: 'gBlenderRun_Latch' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2703: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2704: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2705: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2706: 'gH_CMD_BlenderMaintenance' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2707: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2708: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2709: 'AND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2710: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2711: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2712: 'OR' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2713: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2714: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2715: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2716: 'gR_TempWater_SP' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2717: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2718: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2719: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2720: 'gTempWater_PV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2721: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2722: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2723: 'SEL' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2724: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2725: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2726: '_OUTPUTS : 1' -[11:20:26] 📤 Sección de outputs encontrada en línea 2726 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 2739 -[11:20:26] 📋 Lógica parseada: {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gPID_WaterTemp_Enabled', 'negated': False}, {'type': 'CONTACT', 'name': 'gPID_WaterTemp_EnInt', 'negated': True}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 2749: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2750: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2751: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2752: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2753: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2754: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2755: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 2755 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 2756 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 38: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 38 agregada. Total redes: 38 -[11:20:26] Con lógica: AND - Sin nombre -[11:20:26] Target: 'gHold_int_PID_TempWater' -[11:20:26] Procesando red 39... -[11:20:26] Comenzando en línea 2762: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 2763: '' -[11:20:26] Línea 2764: '_COMMENT' -[11:20:26] Línea 2765: '' -[11:20:26] Línea 2766: '_END_COMMENT' -[11:20:26] Línea 2767: '_LD_ASSIGN' -[11:20:26] Línea 2768: '_LD_OR' -[11:20:26] Línea 2769: '_LD_OPERATOR : 2' -[11:20:26] Línea 2770: '_LD_CONTACT' -[11:20:26] Línea 2771: 'gPID_WaterTemp_Enabled' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 2768 -[11:20:26] 📋 Lógica parseada: {'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gPID_WaterTemp_Enabled', 'negated': False}, {'type': 'CONTACT', 'name': 'gI_ITL_PID_TempWater', 'negated': False}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 2778: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2779: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2780: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2781: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2782: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2783: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2784: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 2784 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 2785 -[11:20:26] 🔎 Línea 2785: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 2785 -[11:20:26] ✅ Llamada parseada: FUNCTION_BLOCK - gH_ProdTempValve_Man_SP_ON -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 2914 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 39: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 2922 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gI_ITL_PID_TempWater', 'negated': False} -[11:20:26] 🔎 Buscando ENABLELIST en línea 2926: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2927: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2928: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2929: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2930: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 2930 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 2931 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 39: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 39 agregada. Total redes: 39 -[11:20:26] Con lógica: CONTACT - gI_ITL_PID_TempWater -[11:20:26] Target: 'gI_ITL_PID_TempWater' -[11:20:26] Procesando red 40... -[11:20:26] Comenzando en línea 2937: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 2938: '' -[11:20:26] Línea 2939: '_COMMENT' -[11:20:26] Línea 2940: '' -[11:20:26] Línea 2941: '_END_COMMENT' -[11:20:26] Línea 2942: '_LD_ASSIGN' -[11:20:26] Línea 2943: '_EMPTY' -[11:20:26] Línea 2944: '_EXPRESSION' -[11:20:26] Línea 2945: '_POSITIV' -[11:20:26] Línea 2946: '' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 2943 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 2943 -[11:20:26] Entrando a _parse_empty_network desde línea 2944 -[11:20:26] Línea 2944: '_EXPRESSION' -[11:20:26] Línea 2945: '_POSITIV' -[11:20:26] Línea 2946: '' -[11:20:26] Línea 2947: '' -[11:20:26] Línea 2948: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 2949: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 2949 -[11:20:26] Entrando a _parse_assign_section desde línea 2950 -[11:20:26] Línea 2950: '_OPERATOR' -[11:20:26] Línea 2951: '_BOX_EXPR : 3' -[11:20:26] Línea 2952: '_ENABLED' -[11:20:26] Línea 2953: '_OPERAND' -[11:20:26] Línea 2954: '_EXPRESSION' -[11:20:26] Línea 2955: '_POSITIV' -[11:20:26] Línea 2956: 'gPID_WaterTemp_Enabled' -[11:20:26] Línea 2957: '_OPERATOR' -[11:20:26] Línea 2958: '_BOX_EXPR : 3' -[11:20:26] Línea 2959: '_OPERATOR' -[11:20:26] Línea 2960: '_BOX_EXPR : 3' -[11:20:26] Línea 2961: '_OPERAND' -[11:20:26] Línea 2962: '_EXPRESSION' -[11:20:26] Línea 2963: '_POSITIV' -[11:20:26] Línea 2964: 'gGencoldChillerEn' -[11:20:26] _parse_assign_section terminó sin encontrar función -[11:20:26] Línea 2965: '_OPERATOR' -[11:20:26] Línea 2966: '_BOX_EXPR : 2' -[11:20:26] Línea 2967: '_OPERAND' -[11:20:26] Línea 2968: '_EXPRESSION' -[11:20:26] Línea 2969: '_POSITIV' -[11:20:26] Línea 2970: 'gBlenderCIPMode' -[11:20:26] Línea 2971: '_OPERAND' -[11:20:26] Línea 2972: '_EXPRESSION' -[11:20:26] Línea 2973: '_POSITIV' -[11:20:26] Línea 2974: 'gH_WarmRinseRun' -[11:20:26] Línea 2975: '_EXPRESSION' -[11:20:26] Línea 2976: '_POSITIV' -[11:20:26] Línea 2977: 'OR' -[11:20:26] Línea 2978: '_OPERAND' -[11:20:26] _parse_empty_network terminó sin encontrar función -[11:20:26] 📋 Lógica parseada: None -[11:20:26] 🔎 Buscando ENABLELIST en línea 2979: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2980: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2981: 'gCoolerEnabled' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2982: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2983: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2984: 'AND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2985: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2986: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2987: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2988: '0.0' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2989: '_FUNCTION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2990: '_BOX_EXPR : 2' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2991: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2992: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2993: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2994: 'gDeairWaterTemp' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2995: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2996: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2997: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2998: 'gTempWater_PV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 2999: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3000: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3001: 'CIP_CVQ' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3002: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3003: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3004: 'SEL' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3005: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3006: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3007: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3008: 'gR_Out_TempWater_PID' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3009: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3010: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3011: 'SEL' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3012: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3013: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3014: '_OUTPUTS : 2' -[11:20:26] 📤 Sección de outputs encontrada en línea 3014 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 3031 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 3035: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3036: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3037: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3038: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3039: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 3039 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 3040 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 40: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 40 agregada. Total redes: 40 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mI_Sel_ProdTemp' -[11:20:26] Procesando red 41... -[11:20:26] Comenzando en línea 3046: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 3047: '' -[11:20:26] Línea 3048: '_COMMENT' -[11:20:26] Línea 3049: '' -[11:20:26] Línea 3050: '_END_COMMENT' -[11:20:26] Línea 3051: '_LD_ASSIGN' -[11:20:26] Línea 3052: '_LD_CONTACT' -[11:20:26] Línea 3053: 'gAlwaysOff' -[11:20:26] Línea 3054: '_EXPRESSION' -[11:20:26] Línea 3055: '_NEGATIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 3052 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 3056: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3057: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3058: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3059: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3060: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 3060 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 3061 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 41: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 41 agregada. Total redes: 41 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mP_Sel_ProdTemp' -[11:20:26] Procesando red 42... -[11:20:26] Comenzando en línea 3067: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 3068: '' -[11:20:26] Línea 3069: '_COMMENT' -[11:20:26] Línea 3070: '' -[11:20:26] Línea 3071: '_END_COMMENT' -[11:20:26] Línea 3072: '_LD_ASSIGN' -[11:20:26] Línea 3073: '_LD_CONTACT' -[11:20:26] Línea 3074: 'gAlwaysOff' -[11:20:26] Línea 3075: '_EXPRESSION' -[11:20:26] Línea 3076: '_NEGATIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 3073 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 3077: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3078: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3079: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3080: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3081: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 3081 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 3082 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 42: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 42 agregada. Total redes: 42 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mD_Sel_ProdTemp' -[11:20:26] Procesando red 43... -[11:20:26] Comenzando en línea 3088: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 3089: '' -[11:20:26] Línea 3090: '_COMMENT' -[11:20:26] Línea 3091: '' -[11:20:26] Línea 3092: '_END_COMMENT' -[11:20:26] Línea 3093: '_LD_ASSIGN' -[11:20:26] Línea 3094: '_EMPTY' -[11:20:26] Línea 3095: '_EXPRESSION' -[11:20:26] Línea 3096: '_POSITIV' -[11:20:26] Línea 3097: '' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 3094 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 3094 -[11:20:26] Entrando a _parse_empty_network desde línea 3095 -[11:20:26] Línea 3095: '_EXPRESSION' -[11:20:26] Línea 3096: '_POSITIV' -[11:20:26] Línea 3097: '' -[11:20:26] Línea 3098: '' -[11:20:26] Línea 3099: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 3100: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 3100 -[11:20:26] Entrando a _parse_assign_section desde línea 3101 -[11:20:26] Línea 3101: '_OPERATOR' -[11:20:26] Línea 3102: '_BOX_EXPR : 2' -[11:20:26] Línea 3103: '_ENABLED' -[11:20:26] Línea 3104: '_OPERATOR' -[11:20:26] Línea 3105: '_BOX_EXPR : 4' -[11:20:26] Línea 3106: '_OPERAND' -[11:20:26] Línea 3107: '_EXPRESSION' -[11:20:26] Línea 3108: '_NEGATIV' -[11:20:26] Línea 3109: 'gBlenderCIPMode' -[11:20:26] Línea 3110: '_OPERATOR' -[11:20:26] Línea 3111: '_BOX_EXPR : 2' -[11:20:26] Línea 3112: '_OPERATOR' -[11:20:26] Línea 3113: '_BOX_EXPR : 3' -[11:20:26] Línea 3114: '_OPERAND' -[11:20:26] Línea 3115: '_EXPRESSION' -[11:20:26] _parse_assign_section terminó sin encontrar función -[11:20:26] Línea 3116: '_POSITIV' -[11:20:26] Línea 3117: 'gBlenderProdMode' -[11:20:26] Línea 3118: '_OPERATOR' -[11:20:26] Línea 3119: '_BOX_EXPR : 4' -[11:20:26] Línea 3120: '_OPERAND' -[11:20:26] Línea 3121: '_EXPRESSION' -[11:20:26] Línea 3122: '_POSITIV' -[11:20:26] Línea 3123: 'gBlenderRun_Running' -[11:20:26] Línea 3124: '_OPERATOR' -[11:20:26] Línea 3125: '_BOX_EXPR : 2' -[11:20:26] Línea 3126: '_OPERAND' -[11:20:26] Línea 3127: '_EXPRESSION' -[11:20:26] Línea 3128: '_POSITIV' -[11:20:26] Línea 3129: 'gBlenderRun_Latch' -[11:20:26] _parse_empty_network terminó sin encontrar función -[11:20:26] 📋 Lógica parseada: None -[11:20:26] 🔎 Buscando ENABLELIST en línea 3130: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3131: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3132: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3133: 'gEnableRecircPHE' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3134: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3135: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3136: 'AND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3137: '_OPERATOR' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3138: '_BOX_EXPR : 2' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3139: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3140: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3141: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3142: 'gH_ColdRinseRun' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3143: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3144: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3145: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3146: 'gBlenderRinse_Running' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3147: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3148: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3149: 'AND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3150: '_OPERATOR' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3151: '_BOX_EXPR : 2' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3152: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3153: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3154: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3155: 'gCarboWaterLine_Running' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3156: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3157: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3158: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3159: 'gProductDoubleStadiumChillerEn' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3160: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3161: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3162: 'AND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3163: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3164: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3165: 'OR' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3166: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3167: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3168: '_NEGATIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3169: 'gH_WarmRinseRun' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3170: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3171: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3172: 'AND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3173: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3174: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3175: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3176: 'gManual_PID_TempProd' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3177: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3178: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3179: 'OR' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3180: '_OPERATOR' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3181: '_BOX_EXPR : 2' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3182: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3183: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3184: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3185: 'gProductChillerEn' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3186: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3187: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3188: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3189: 'gProductDoubleStadiumChillerEn' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3190: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3191: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3192: 'OR' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3193: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3194: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3195: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3196: 'gCoolerEnabled' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3197: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3198: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3199: 'AND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3200: '_OPERATOR' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3201: '_BOX_EXPR : 2' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3202: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3203: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3204: '_NEGATIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3205: 'gBlenderRun_Latch' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3206: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3207: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3208: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3209: 'gH_CMD_BlenderMaintenance' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3210: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3211: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3212: 'AND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3213: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3214: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3215: 'OR' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3216: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3217: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3218: '_OUTPUTS : 1' -[11:20:26] 📤 Sección de outputs encontrada en línea 3218 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 3231 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 3231 -[11:20:26] Entrando a _parse_empty_network desde línea 3232 -[11:20:26] Línea 3232: '_EXPRESSION' -[11:20:26] Línea 3233: '_POSITIV' -[11:20:26] Línea 3234: '' -[11:20:26] Línea 3235: '' -[11:20:26] Línea 3236: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 3237: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 3237 -[11:20:26] Entrando a _parse_assign_section desde línea 3238 -[11:20:26] Línea 3238: '_OPERATOR' -[11:20:26] Línea 3239: '_BOX_EXPR : 3' -[11:20:26] Línea 3240: '_ENABLED' -[11:20:26] Línea 3241: '_OPERATOR' -[11:20:26] Línea 3242: '_BOX_EXPR : 2' -[11:20:26] Línea 3243: '_OPERATOR' -[11:20:26] Línea 3244: '_BOX_EXPR : 4' -[11:20:26] Línea 3245: '_OPERAND' -[11:20:26] Línea 3246: '_EXPRESSION' -[11:20:26] Línea 3247: '_POSITIV' -[11:20:26] Línea 3248: 'gPID_ProdTemp_Enabled' -[11:20:26] Línea 3249: '_OPERAND' -[11:20:26] Línea 3250: '_EXPRESSION' -[11:20:26] Línea 3251: '_NEGATIV' -[11:20:26] Línea 3252: 'gBlenderEnToRamp' -[11:20:26] _parse_assign_section terminó sin encontrar función -[11:20:26] Línea 3253: '_OPERAND' -[11:20:26] Línea 3254: '_EXPRESSION' -[11:20:26] Línea 3255: '_NEGATIV' -[11:20:26] Línea 3256: 'gCarboWaterLine_Running' -[11:20:26] Línea 3257: '_OPERAND' -[11:20:26] Línea 3258: '_EXPRESSION' -[11:20:26] Línea 3259: '_NEGATIV' -[11:20:26] Línea 3260: 'gBlenderRinse_Running' -[11:20:26] Línea 3261: '_EXPRESSION' -[11:20:26] Línea 3262: '_POSITIV' -[11:20:26] Línea 3263: 'AND' -[11:20:26] Línea 3264: '_OPERATOR' -[11:20:26] Línea 3265: '_BOX_EXPR : 2' -[11:20:26] Línea 3266: '_OPERAND' -[11:20:26] _parse_empty_network terminó sin encontrar función -[11:20:26] 📋 Lógica parseada: None -[11:20:26] 🔎 Buscando ENABLELIST en línea 3267: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3268: '_NEGATIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3269: 'gBlenderRun_Latch' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3270: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3271: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3272: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3273: 'gH_CMD_BlenderMaintenance' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3274: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3275: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3276: 'AND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3277: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3278: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3279: 'OR' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3280: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3281: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3282: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3283: 'gH_A_Recipe_SP_ProdTemp' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3284: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3285: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3286: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3287: 'gR_TempProd_SP' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3288: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3289: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3290: 'SEL' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3291: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3292: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3293: '_OUTPUTS : 1' -[11:20:26] 📤 Sección de outputs encontrada en línea 3293 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 3306 -[11:20:26] 📋 Lógica parseada: {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gPID_ProdTemp_Enabled', 'negated': False}, {'type': 'CONTACT', 'name': 'gPID_ProdTemp_EnInt', 'negated': True}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 3316: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3317: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3318: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3319: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3320: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3321: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3322: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 3322 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 3323 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 43: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 43 agregada. Total redes: 43 -[11:20:26] Con lógica: AND - Sin nombre -[11:20:26] Target: 'gHold_int_PID_TempProd' -[11:20:26] Procesando red 44... -[11:20:26] Comenzando en línea 3329: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 3330: '' -[11:20:26] Línea 3331: '_COMMENT' -[11:20:26] Línea 3332: '' -[11:20:26] Línea 3333: '_END_COMMENT' -[11:20:26] Línea 3334: '_LD_ASSIGN' -[11:20:26] Línea 3335: '_LD_OR' -[11:20:26] Línea 3336: '_LD_OPERATOR : 2' -[11:20:26] Línea 3337: '_LD_CONTACT' -[11:20:26] Línea 3338: 'gPID_ProdTemp_Enabled' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 3335 -[11:20:26] 📋 Lógica parseada: {'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gPID_ProdTemp_Enabled', 'negated': False}, {'type': 'CONTACT', 'name': 'gI_ITL_PID_TempProd', 'negated': False}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 3345: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3346: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3347: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3348: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3349: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3350: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3351: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 3351 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 3352 -[11:20:26] 🔎 Línea 3352: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 3352 -[11:20:26] ✅ Llamada parseada: FUNCTION_BLOCK - gH_ProdTempValve_Man_SP_ON -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 3481 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 44: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 3489 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gI_ITL_PID_TempProd', 'negated': False} -[11:20:26] 🔎 Buscando ENABLELIST en línea 3493: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3494: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3495: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3496: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3497: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 3497 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 3498 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 44: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 44 agregada. Total redes: 44 -[11:20:26] Con lógica: CONTACT - gI_ITL_PID_TempProd -[11:20:26] Target: 'gI_ITL_PID_TempProd' -[11:20:26] Procesando red 45... -[11:20:26] Comenzando en línea 3504: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 3505: '' -[11:20:26] Línea 3506: '_COMMENT' -[11:20:26] Línea 3507: '' -[11:20:26] Línea 3508: '_END_COMMENT' -[11:20:26] Línea 3509: '_LD_ASSIGN' -[11:20:26] Línea 3510: '_EMPTY' -[11:20:26] Línea 3511: '_EXPRESSION' -[11:20:26] Línea 3512: '_POSITIV' -[11:20:26] Línea 3513: '' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 3510 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 3510 -[11:20:26] Entrando a _parse_empty_network desde línea 3511 -[11:20:26] Línea 3511: '_EXPRESSION' -[11:20:26] Línea 3512: '_POSITIV' -[11:20:26] Línea 3513: '' -[11:20:26] Línea 3514: '' -[11:20:26] Línea 3515: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 3516: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 3516 -[11:20:26] Entrando a _parse_assign_section desde línea 3517 -[11:20:26] Línea 3517: '_OPERATOR' -[11:20:26] Línea 3518: '_BOX_EXPR : 3' -[11:20:26] Línea 3519: '_ENABLED' -[11:20:26] Línea 3520: '_OPERAND' -[11:20:26] Línea 3521: '_EXPRESSION' -[11:20:26] Línea 3522: '_POSITIV' -[11:20:26] Línea 3523: 'gPID_ProdTemp_Enabled' -[11:20:26] Línea 3524: '_OPERATOR' -[11:20:26] Línea 3525: '_BOX_EXPR : 3' -[11:20:26] Línea 3526: '_OPERATOR' -[11:20:26] Línea 3527: '_BOX_EXPR : 3' -[11:20:26] Línea 3528: '_OPERAND' -[11:20:26] Línea 3529: '_EXPRESSION' -[11:20:26] Línea 3530: '_POSITIV' -[11:20:26] Línea 3531: 'gGencoldChillerEn' -[11:20:26] _parse_assign_section terminó sin encontrar función -[11:20:26] Línea 3532: '_OPERATOR' -[11:20:26] Línea 3533: '_BOX_EXPR : 2' -[11:20:26] Línea 3534: '_OPERAND' -[11:20:26] Línea 3535: '_EXPRESSION' -[11:20:26] Línea 3536: '_POSITIV' -[11:20:26] Línea 3537: 'gBlenderCIPMode' -[11:20:26] Línea 3538: '_OPERAND' -[11:20:26] Línea 3539: '_EXPRESSION' -[11:20:26] Línea 3540: '_POSITIV' -[11:20:26] Línea 3541: 'gH_WarmRinseRun' -[11:20:26] Línea 3542: '_EXPRESSION' -[11:20:26] Línea 3543: '_POSITIV' -[11:20:26] Línea 3544: 'OR' -[11:20:26] Línea 3545: '_OPERAND' -[11:20:26] _parse_empty_network terminó sin encontrar función -[11:20:26] 📋 Lógica parseada: None -[11:20:26] 🔎 Buscando ENABLELIST en línea 3546: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3547: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3548: 'gCoolerEnabled' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3549: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3550: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3551: 'AND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3552: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3553: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3554: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3555: '0.0' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3556: '_FUNCTION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3557: '_BOX_EXPR : 2' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3558: '_OPERATOR' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3559: '_BOX_EXPR : 3' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3560: '_OPERATOR' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3561: '_BOX_EXPR : 2' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3562: '_OPERATOR' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3563: '_BOX_EXPR : 2' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3564: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3565: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3566: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3567: 'gH_Blender_OPT_CoolerControl' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3568: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3569: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3570: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3571: '3' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3572: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3573: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3574: 'EQ' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3575: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3576: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3577: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3578: 'gGencoldChillerEn' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3579: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3580: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3581: 'AND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3582: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3583: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3584: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3585: 'gDeairWaterTemp' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3586: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3587: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3588: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3589: 'gTempWater_PV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3590: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3591: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3592: 'SEL' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3593: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3594: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3595: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3596: 'gTempProd_PV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3597: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3598: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3599: 'CIP_CVQ' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3600: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3601: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3602: 'SEL' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3603: '_OPERAND' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3604: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3605: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3606: 'gR_Out_TempProd_PID' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3607: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3608: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3609: 'SEL' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3610: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3611: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3612: '_OUTPUTS : 2' -[11:20:26] 📤 Sección de outputs encontrada en línea 3612 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 3629 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 3633: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3634: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3635: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3636: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3637: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 3637 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 3638 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 45: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 45 agregada. Total redes: 45 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mI_Sel_CIPTemp' -[11:20:26] Procesando red 46... -[11:20:26] Comenzando en línea 3644: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 3645: '' -[11:20:26] Línea 3646: '_COMMENT' -[11:20:26] Línea 3647: '' -[11:20:26] Línea 3648: '_END_COMMENT' -[11:20:26] Línea 3649: '_LD_ASSIGN' -[11:20:26] Línea 3650: '_LD_CONTACT' -[11:20:26] Línea 3651: 'gAlwaysOff' -[11:20:26] Línea 3652: '_EXPRESSION' -[11:20:26] Línea 3653: '_NEGATIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 3650 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 3654: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3655: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3656: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3657: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3658: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 3658 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 3659 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 46: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 46 agregada. Total redes: 46 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mP_Sel_CIPTemp' -[11:20:26] Procesando red 47... -[11:20:26] Comenzando en línea 3665: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 3666: '' -[11:20:26] Línea 3667: '_COMMENT' -[11:20:26] Línea 3668: '' -[11:20:26] Línea 3669: '_END_COMMENT' -[11:20:26] Línea 3670: '_LD_ASSIGN' -[11:20:26] Línea 3671: '_LD_CONTACT' -[11:20:26] Línea 3672: 'gAlwaysOff' -[11:20:26] Línea 3673: '_EXPRESSION' -[11:20:26] Línea 3674: '_NEGATIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 3671 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gAlwaysOff', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 3675: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3676: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3677: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3678: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3679: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 3679 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 3680 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 47: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 47 agregada. Total redes: 47 -[11:20:26] Con lógica: CONTACT - gAlwaysOff -[11:20:26] Target: 'mD_Sel_CIPTemp' -[11:20:26] Procesando red 48... -[11:20:26] Comenzando en línea 3686: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 3687: '' -[11:20:26] Línea 3688: '_COMMENT' -[11:20:26] Línea 3689: '' -[11:20:26] Línea 3690: '_END_COMMENT' -[11:20:26] Línea 3691: '_LD_ASSIGN' -[11:20:26] Línea 3692: '_LD_OR' -[11:20:26] Línea 3693: '_LD_OPERATOR : 2' -[11:20:26] Línea 3694: '_LD_AND' -[11:20:26] Línea 3695: '_LD_OPERATOR : 5' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 3692 -[11:20:26] 📋 Lógica parseada: {'type': 'OR', 'operands': [{'type': 'AND', 'operands': [{'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gP_CIP_Temp_En', 'negated': False}, {'type': 'CONTACT', 'name': 'gManual_PID_CIPTemp', 'negated': False}]}, {'type': 'CONTACT', 'name': 'gBlenderCIPMode', 'negated': False}, {'type': 'CONTACT', 'name': 'gH_EV36_Status', 'negated': False}, {'type': 'CONTACT', 'name': 'gIn_FlowSwitch', 'negated': False}, {'type': 'CONTACT', 'name': 'gCIP_Run_Latch', 'negated': False}]}, {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gBlenderRun_Latch', 'negated': True}, {'type': 'CONTACT', 'name': 'gH_CMD_BlenderMaintenance', 'negated': False}]}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 3736: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3737: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3738: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3739: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3740: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3741: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3742: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3743: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3744: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 3744 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 3745 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 48: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 48 agregada. Total redes: 48 -[11:20:26] Con lógica: OR - Sin nombre -[11:20:26] Target: 'gPID_CIPTemp_Enabled' -[11:20:26] Procesando red 49... -[11:20:26] Comenzando en línea 3751: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 3752: '' -[11:20:26] Línea 3753: '_COMMENT' -[11:20:26] Línea 3754: '' -[11:20:26] Línea 3755: '_END_COMMENT' -[11:20:26] Línea 3756: '_LD_ASSIGN' -[11:20:26] Línea 3757: '_EMPTY' -[11:20:26] Línea 3758: '_EXPRESSION' -[11:20:26] Línea 3759: '_POSITIV' -[11:20:26] Línea 3760: '' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 3757 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 3757 -[11:20:26] Entrando a _parse_empty_network desde línea 3758 -[11:20:26] Línea 3758: '_EXPRESSION' -[11:20:26] Línea 3759: '_POSITIV' -[11:20:26] Línea 3760: '' -[11:20:26] Línea 3761: '' -[11:20:26] Línea 3762: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 3763: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 3763 -[11:20:26] Entrando a _parse_assign_section desde línea 3764 -[11:20:26] Línea 3764: '_OPERATOR' -[11:20:26] Línea 3765: '_BOX_EXPR : 3' -[11:20:26] Línea 3766: '_ENABLED' -[11:20:26] Línea 3767: '_OPERATOR' -[11:20:26] Línea 3768: '_BOX_EXPR : 2' -[11:20:26] Línea 3769: '_OPERAND' -[11:20:26] Línea 3770: '_EXPRESSION' -[11:20:26] Línea 3771: '_NEGATIV' -[11:20:26] Línea 3772: 'gBlenderRun_Latch' -[11:20:26] Línea 3773: '_OPERAND' -[11:20:26] Línea 3774: '_EXPRESSION' -[11:20:26] Línea 3775: '_POSITIV' -[11:20:26] Línea 3776: 'gH_CMD_BlenderMaintenance' -[11:20:26] Línea 3777: '_EXPRESSION' -[11:20:26] Línea 3778: '_POSITIV' -[11:20:26] _parse_assign_section terminó sin encontrar función -[11:20:26] Línea 3779: 'AND' -[11:20:26] Línea 3780: '_OPERAND' -[11:20:26] Línea 3781: '_EXPRESSION' -[11:20:26] Línea 3782: '_POSITIV' -[11:20:26] Línea 3783: 'gR_CIPTemp_SP' -[11:20:26] Línea 3784: '_OPERAND' -[11:20:26] Línea 3785: '_EXPRESSION' -[11:20:26] Línea 3786: '_POSITIV' -[11:20:26] Línea 3787: 'gCIPTemp_PV' -[11:20:26] Línea 3788: '_EXPRESSION' -[11:20:26] Línea 3789: '_POSITIV' -[11:20:26] Línea 3790: 'SEL' -[11:20:26] Línea 3791: '_EXPRESSION' -[11:20:26] Línea 3792: '_POSITIV' -[11:20:26] _parse_empty_network terminó sin encontrar función -[11:20:26] 📋 Lógica parseada: None -[11:20:26] 🔎 Buscando ENABLELIST en línea 3793: '_OUTPUTS : 1' -[11:20:26] 📤 Sección de outputs encontrada en línea 3793 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 3806 -[11:20:26] 📋 Lógica parseada: {'type': 'OR', 'operands': [{'type': 'CONTACT', 'name': 'gPID_CIPTemp_Enabled', 'negated': False}, {'type': 'CONTACT', 'name': 'gI_ITL_PID_CIPTemp', 'negated': False}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 3816: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3817: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3818: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3819: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3820: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3821: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3822: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 3822 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 3823 -[11:20:26] 🔎 Línea 3823: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 3823 -[11:20:26] ✅ Llamada parseada: FUNCTION_BLOCK - gH_CIPTempValve_Man_SP_ON -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 3952 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 49: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 3960 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gI_ITL_PID_CIPTemp', 'negated': False} -[11:20:26] 🔎 Buscando ENABLELIST en línea 3964: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3965: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3966: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3967: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 3968: 'ENABLELIST : 0' -[11:20:26] ✅ Encontrado ENABLELIST en línea 3968 -[11:20:26] 📋 Procesando ENABLELIST con 0 llamadas -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 3969 -[11:20:26] 📊 Total de llamadas parseadas: 0 -[11:20:26] ✅ Red 49: Encontradas 0 llamadas en ENABLELIST -[11:20:26] Red 49 agregada. Total redes: 49 -[11:20:26] Con lógica: CONTACT - gI_ITL_PID_CIPTemp -[11:20:26] Target: 'gI_ITL_PID_CIPTemp' -[11:20:26] Procesando red 50... -[11:20:26] Comenzando en línea 3975: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 3976: '' -[11:20:26] Línea 3977: '_COMMENT' -[11:20:26] Línea 3978: '' -[11:20:26] Línea 3979: '_END_COMMENT' -[11:20:26] Línea 3980: '_LD_ASSIGN' -[11:20:26] Línea 3981: '_EMPTY' -[11:20:26] Línea 3982: '_EXPRESSION' -[11:20:26] Línea 3983: '_POSITIV' -[11:20:26] Línea 3984: '' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 3981 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 3981 -[11:20:26] Entrando a _parse_empty_network desde línea 3982 -[11:20:26] Línea 3982: '_EXPRESSION' -[11:20:26] Línea 3983: '_POSITIV' -[11:20:26] Línea 3984: '' -[11:20:26] Línea 3985: '' -[11:20:26] Línea 3986: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 3987: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 3987 -[11:20:26] Entrando a _parse_assign_section desde línea 3988 -[11:20:26] Línea 3988: '_OPERATOR' -[11:20:26] Línea 3989: '_BOX_EXPR : 3' -[11:20:26] Línea 3990: '_ENABLED' -[11:20:26] Línea 3991: '_OPERAND' -[11:20:26] Línea 3992: '_EXPRESSION' -[11:20:26] Línea 3993: '_POSITIV' -[11:20:26] Línea 3994: 'gPID_CIPTemp_Enabled' -[11:20:26] Línea 3995: '_OPERAND' -[11:20:26] Línea 3996: '_EXPRESSION' -[11:20:26] Línea 3997: '_POSITIV' -[11:20:26] Línea 3998: '0.0' -[11:20:26] Línea 3999: '_OPERAND' -[11:20:26] Línea 4000: '_EXPRESSION' -[11:20:26] Línea 4001: '_POSITIV' -[11:20:26] Línea 4002: 'gR_Out_CIPTemp_PID' -[11:20:26] _parse_assign_section terminó sin encontrar función -[11:20:26] Línea 4003: '_EXPRESSION' -[11:20:26] Línea 4004: '_POSITIV' -[11:20:26] Línea 4005: 'SEL' -[11:20:26] Línea 4006: '_EXPRESSION' -[11:20:26] Línea 4007: '_POSITIV' -[11:20:26] _parse_empty_network terminó sin encontrar función -[11:20:26] 📋 Lógica parseada: None -[11:20:26] 🔎 Buscando ENABLELIST en línea 4008: '_OUTPUTS : 2' -[11:20:26] 📤 Sección de outputs encontrada en línea 4008 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 4025 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 4025 -[11:20:26] Entrando a _parse_empty_network desde línea 4026 -[11:20:26] Línea 4026: '_EXPRESSION' -[11:20:26] Línea 4027: '_POSITIV' -[11:20:26] Línea 4028: '' -[11:20:26] Línea 4029: '' -[11:20:26] Línea 4030: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 4031: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 4031 -[11:20:26] Entrando a _parse_assign_section desde línea 4032 -[11:20:26] Línea 4032: '_FUNCTIONBLOCK' -[11:20:26] ENCONTRADO _FUNCTIONBLOCK en _ASSIGN: línea 4032 -[11:20:26] Detectado patrón ??? en línea 4033 - Buscando ACTION call... -[11:20:26] Buscando ACTION name desde línea 4034... -[11:20:26] Línea 4034: '_BOX_EXPR : 0' -[11:20:26] Línea 4035: '_ENABLED' -[11:20:26] Línea 4036: '_EXPRESSION' -[11:20:26] Línea 4037: '_POSITIV' -[11:20:26] Línea 4038: '_Filling_Head_PID_Ctrl' -[11:20:26] Línea 4039: '_OUTPUTS : 0' -[11:20:26] Línea 4040: '_EXPRESSION' -[11:20:26] Línea 4041: '_POSITIV' -[11:20:26] Línea 4042: '_OUTPUTS : 1' -[11:20:26] Línea 4043: '_OUTPUT' -[11:20:26] Línea 4044: '_POSITIV' -[11:20:26] Línea 4045: '_NO_SET' -[11:20:26] Línea 4046: 'mDummy' -[11:20:26] Línea 4047: 'ENABLELIST_END' -[11:20:26] Línea 4048: '_OUTPUTS : 0' -[11:20:26] ⚠ No se encontró ACTION name en 15 líneas -[11:20:26] ⚠ Patrón ??? pero no se encontró nombre de ACTION -[11:20:26] Función encontrada pero sin target específico -[11:20:26] Usando target por defecto: mDummy -[11:20:26] Red de función 51 creada para FUNCTION_BLOCK: ??? -[11:20:26] Target: 'mDummy' -[11:20:26] 📋 Lógica parseada: {'type': 'FUNCTION_BLOCK', 'name': '???', 'instance_name': '???', 'inputs': [], 'outputs': []} -[11:20:26] 🔎 Buscando ENABLELIST en línea 4039: '_OUTPUTS : 0' -[11:20:26] 📤 Sección de outputs encontrada en línea 4039 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 4055 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 4055 -[11:20:26] Entrando a _parse_empty_network desde línea 4056 -[11:20:26] Línea 4056: '_EXPRESSION' -[11:20:26] Línea 4057: '_POSITIV' -[11:20:26] Línea 4058: '' -[11:20:26] Línea 4059: '' -[11:20:26] Línea 4060: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 4061: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 4061 -[11:20:26] Entrando a _parse_assign_section desde línea 4062 -[11:20:26] Línea 4062: '_FUNCTIONBLOCK' -[11:20:26] ENCONTRADO _FUNCTIONBLOCK en _ASSIGN: línea 4062 -[11:20:26] Detectado Function Block directo: _FBD_PROGRAM -[11:20:26] ADVERTENCIA: Bucle infinito evitado en function block en línea 4062 -[11:20:26] Línea 4068: 'Blender_PID_Ctrl_Loop.Write_AnalogOut' -[11:20:26] Función encontrada pero sin target específico -[11:20:26] Usando target por defecto: mDummy -[11:20:26] Red de función 52 creada para FUNCTION_BLOCK: _FBD_PROGRAM -[11:20:26] Target: 'mDummy' -[11:20:26] 📋 Lógica parseada: {'type': 'FUNCTION_BLOCK', 'name': '_FBD_PROGRAM', 'instance_name': '_FBD_PROGRAM', 'inputs': [], 'outputs': []} -[11:20:26] 🔎 Buscando ENABLELIST en línea 4069: '_OUTPUTS : 0' -[11:20:26] 📤 Sección de outputs encontrada en línea 4069 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 4085 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 4085 -[11:20:26] Entrando a _parse_empty_network desde línea 4086 -[11:20:26] Línea 4086: '_EXPRESSION' -[11:20:26] Línea 4087: '_POSITIV' -[11:20:26] Línea 4088: '' -[11:20:26] Línea 4089: '' -[11:20:26] Línea 4090: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 4091: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 4091 -[11:20:26] Entrando a _parse_assign_section desde línea 4092 -[11:20:26] Línea 4092: '_FUNCTIONBLOCK' -[11:20:26] ENCONTRADO _FUNCTIONBLOCK en _ASSIGN: línea 4092 -[11:20:26] Detectado patrón ??? en línea 4093 - Buscando ACTION call... -[11:20:26] Buscando ACTION name desde línea 4094... -[11:20:26] Línea 4094: '_BOX_EXPR : 0' -[11:20:26] Línea 4095: '_ENABLED' -[11:20:26] Línea 4096: '_EXPRESSION' -[11:20:26] Línea 4097: '_POSITIV' -[11:20:26] Línea 4098: 'Blender_PID_Ctrl_Loop.SaveValveOut' -[11:20:26] ✓ ACTION name encontrado: Blender_PID_Ctrl_Loop.SaveValveOut -[11:20:26] ✓ ACTION call encontrada: Blender_PID_Ctrl_Loop.SaveValveOut -[11:20:26] Línea 4094: '_BOX_EXPR : 0' -[11:20:26] Línea 4095: '_ENABLED' -[11:20:26] Línea 4096: '_EXPRESSION' -[11:20:26] Línea 4097: '_POSITIV' -[11:20:26] Línea 4098: 'Blender_PID_Ctrl_Loop.SaveValveOut' -[11:20:26] Función encontrada pero sin target específico -[11:20:26] Usando target por defecto: mDummy -[11:20:26] Red de función 53 creada para ACTION_CALL: Blender_PID_Ctrl_Loop.SaveValveOut -[11:20:26] Target: 'mDummy' -[11:20:26] 📋 Lógica parseada: {'type': 'ACTION_CALL', 'name': 'Blender_PID_Ctrl_Loop.SaveValveOut', 'inputs': []} -[11:20:26] 🔎 Buscando ENABLELIST en línea 4099: '_OUTPUTS : 0' -[11:20:26] 📤 Sección de outputs encontrada en línea 4099 -[11:20:26] Red 50 agregada. Total redes: 53 -[11:20:26] Con lógica: ACTION_CALL - Blender_PID_Ctrl_Loop.SaveValveOut -[11:20:26] Target: 'mDummy' -[11:20:26] ADVERTENCIA: Se esperaban 50 redes pero solo se parsearon 53 -[11:20:26] Esto puede indicar redes con _EMPTY o estructuras no reconocidas -[11:20:26] DEBUG: Buscando todas las instancias de _NETWORK... -[11:20:26] Línea 2: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 32: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 81: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 138: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 159: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 180: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 201: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 266: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 309: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 450: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 471: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 504: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 539: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 583: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 604: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 625: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 646: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 719: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 762: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 903: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 924: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 957: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 992: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1036: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1057: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1078: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1099: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1184: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1239: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1380: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1401: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1434: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1469: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1513: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1543: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1573: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1594: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1615: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1636: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1668: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1705: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1868: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1889: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1933: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1963: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 1984: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 2005: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 2026: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 2155: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 2230: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 2371: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 2392: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 2441: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 2507: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 2528: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 2549: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 2570: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 2658: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 2733: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 2762: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 2916: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 2937: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 3025: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 3046: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 3067: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 3088: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 3225: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 3300: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 3329: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 3483: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 3504: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 3623: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 3644: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 3665: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 3686: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 3751: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 3800: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 3954: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 3975: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 4019: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 4049: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 4079: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] ACTION LAD encontrada: PIDMonitor (3856 caracteres) -[11:20:26] Se esperan 9 redes según el archivo -[11:20:26] Procesando red 1... -[11:20:26] Comenzando en línea 2: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 3: '' -[11:20:26] Línea 4: '_COMMENT' -[11:20:26] Línea 5: '' -[11:20:26] Línea 6: '_END_COMMENT' -[11:20:26] Línea 7: '_LD_ASSIGN' -[11:20:26] Línea 8: '_EMPTY' -[11:20:26] Línea 9: '_EXPRESSION' -[11:20:26] Línea 10: '_POSITIV' -[11:20:26] Línea 11: '' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 8 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 8 -[11:20:26] Entrando a _parse_empty_network desde línea 9 -[11:20:26] Línea 9: '_EXPRESSION' -[11:20:26] Línea 10: '_POSITIV' -[11:20:26] Línea 11: '' -[11:20:26] Línea 12: '' -[11:20:26] Línea 13: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 14: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 14 -[11:20:26] Entrando a _parse_assign_section desde línea 15 -[11:20:26] Línea 15: '_FUNCTIONBLOCK' -[11:20:26] ENCONTRADO _FUNCTIONBLOCK en _ASSIGN: línea 15 -[11:20:26] Detectado Function Block directo: mWaterStat -[11:20:26] ADVERTENCIA: Bucle infinito evitado en function block en línea 15 -[11:20:26] Línea 22: 'gR_Out_H2O_PID' -[11:20:26] Línea 23: '_OPERAND' -[11:20:26] Línea 24: '_EXPRESSION' -[11:20:26] Línea 25: '_POSITIV' -[11:20:26] Línea 26: '14' -[11:20:26] Línea 27: '_OPERAND' -[11:20:26] Línea 28: '_EXPRESSION' -[11:20:26] Línea 29: '_POSITIV' -[11:20:26] Línea 30: '1' -[11:20:26] Línea 31: '_EXPRESSION' -[11:20:26] Línea 32: '_POSITIV' -[11:20:26] Línea 33: 'StatisticalAnalisys' -[11:20:26] Función encontrada pero sin target específico -[11:20:26] Usando target por defecto: mDummy -[11:20:26] Red de función 2 creada para FUNCTION_BLOCK: mWaterStat -[11:20:26] Target: 'mDummy' -[11:20:26] 📋 Lógica parseada: {'type': 'FUNCTION_BLOCK', 'name': 'mWaterStat', 'instance_name': 'mWaterStat', 'inputs': ['_POSITIV'], 'outputs': []} -[11:20:26] 🔎 Buscando ENABLELIST en línea 34: '_OUTPUTS : 2' -[11:20:26] 📤 Sección de outputs encontrada en línea 34 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 58 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gWaterPIDCtrlOk', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 62: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 63: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 64: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 65: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 66: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 66 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 67 -[11:20:26] 🔎 Línea 67: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 67 -[11:20:26] ✅ Llamada parseada: OPERATOR - LT -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 89 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 97 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gWaterPIDCtrlOk', 'negated': False} -[11:20:26] 🔎 Buscando ENABLELIST en línea 101: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 102: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 103: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 104: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 105: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 105 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 106 -[11:20:26] 🔎 Línea 106: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 106 -[11:20:26] ✅ Llamada parseada: OPERATOR - GT -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 128 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 136 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 136 -[11:20:26] Entrando a _parse_empty_network desde línea 137 -[11:20:26] Línea 137: '_EXPRESSION' -[11:20:26] Línea 138: '_POSITIV' -[11:20:26] Línea 139: '' -[11:20:26] Línea 140: '' -[11:20:26] Línea 141: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 142: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 142 -[11:20:26] Entrando a _parse_assign_section desde línea 143 -[11:20:26] Línea 143: '_FUNCTIONBLOCK' -[11:20:26] ENCONTRADO _FUNCTIONBLOCK en _ASSIGN: línea 143 -[11:20:26] Detectado Function Block directo: mSyrupStat -[11:20:26] ADVERTENCIA: Bucle infinito evitado en function block en línea 143 -[11:20:26] Línea 150: 'gR_Out_SYR_PID' -[11:20:26] Línea 151: '_OPERAND' -[11:20:26] Línea 152: '_EXPRESSION' -[11:20:26] Línea 153: '_POSITIV' -[11:20:26] Línea 154: '14' -[11:20:26] Línea 155: '_OPERAND' -[11:20:26] Línea 156: '_EXPRESSION' -[11:20:26] Línea 157: '_POSITIV' -[11:20:26] Línea 158: '1' -[11:20:26] Línea 159: '_EXPRESSION' -[11:20:26] Línea 160: '_POSITIV' -[11:20:26] Línea 161: 'StatisticalAnalisys' -[11:20:26] Función encontrada pero sin target específico -[11:20:26] Usando target por defecto: mDummy -[11:20:26] Red de función 3 creada para FUNCTION_BLOCK: mSyrupStat -[11:20:26] Target: 'mDummy' -[11:20:26] 📋 Lógica parseada: {'type': 'FUNCTION_BLOCK', 'name': 'mSyrupStat', 'instance_name': 'mSyrupStat', 'inputs': ['_POSITIV'], 'outputs': []} -[11:20:26] 🔎 Buscando ENABLELIST en línea 162: '_OUTPUTS : 2' -[11:20:26] 📤 Sección de outputs encontrada en línea 162 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 186 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gSyrupPIDCtrlOk', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 190: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 191: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 192: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 193: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 194: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 194 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 195 -[11:20:26] 🔎 Línea 195: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 195 -[11:20:26] ✅ Llamada parseada: OPERATOR - LT -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 217 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 225 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gSyrupPIDCtrlOk', 'negated': False} -[11:20:26] 🔎 Buscando ENABLELIST en línea 229: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 230: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 231: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 232: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 233: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 233 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 234 -[11:20:26] 🔎 Línea 234: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 234 -[11:20:26] ✅ Llamada parseada: OPERATOR - GT -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 256 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 264 -[11:20:26] Encontrada _EMPTY dentro de _LD_ASSIGN en línea 264 -[11:20:26] Entrando a _parse_empty_network desde línea 265 -[11:20:26] Línea 265: '_EXPRESSION' -[11:20:26] Línea 266: '_POSITIV' -[11:20:26] Línea 267: '' -[11:20:26] Línea 268: '' -[11:20:26] Línea 269: 'ENABLELIST : 1' -[11:20:26] Encontrado ENABLELIST, continuando búsqueda... -[11:20:26] Línea 270: '_ASSIGN' -[11:20:26] ENCONTRADO _ASSIGN en línea 270 -[11:20:26] Entrando a _parse_assign_section desde línea 271 -[11:20:26] Línea 271: '_FUNCTIONBLOCK' -[11:20:26] ENCONTRADO _FUNCTIONBLOCK en _ASSIGN: línea 271 -[11:20:26] Detectado Function Block directo: mCarboCO2Stat -[11:20:26] ADVERTENCIA: Bucle infinito evitado en function block en línea 271 -[11:20:26] Línea 278: 'gR_Out_CO2_PID' -[11:20:26] Línea 279: '_OPERAND' -[11:20:26] Línea 280: '_EXPRESSION' -[11:20:26] Línea 281: '_POSITIV' -[11:20:26] Línea 282: '12' -[11:20:26] Línea 283: '_OPERAND' -[11:20:26] Línea 284: '_EXPRESSION' -[11:20:26] Línea 285: '_POSITIV' -[11:20:26] Línea 286: '1' -[11:20:26] Línea 287: '_EXPRESSION' -[11:20:26] Línea 288: '_POSITIV' -[11:20:26] Línea 289: 'StatisticalAnalisys' -[11:20:26] Función encontrada pero sin target específico -[11:20:26] Usando target por defecto: mDummy -[11:20:26] Red de función 4 creada para FUNCTION_BLOCK: mCarboCO2Stat -[11:20:26] Target: 'mDummy' -[11:20:26] 📋 Lógica parseada: {'type': 'FUNCTION_BLOCK', 'name': 'mCarboCO2Stat', 'instance_name': 'mCarboCO2Stat', 'inputs': ['_POSITIV'], 'outputs': []} -[11:20:26] 🔎 Buscando ENABLELIST en línea 290: '_OUTPUTS : 2' -[11:20:26] 📤 Sección de outputs encontrada en línea 290 -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 314 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gCarboCO2PIDCtrlOk', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 318: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 319: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 320: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 321: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 322: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 322 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 323 -[11:20:26] 🔎 Línea 323: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 323 -[11:20:26] ✅ Llamada parseada: OPERATOR - LT -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 345 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 353 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gCarboCO2PIDCtrlOk', 'negated': False} -[11:20:26] 🔎 Buscando ENABLELIST en línea 357: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 358: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 359: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 360: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 361: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 361 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 362 -[11:20:26] 🔎 Línea 362: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 362 -[11:20:26] ✅ Llamada parseada: OPERATOR - GT -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 384 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] Red 1 agregada. Total redes: 4 -[11:20:26] Con lógica: CONTACT - gCarboCO2PIDCtrlOk -[11:20:26] Con 1 llamadas de ejecución. -[11:20:26] 📋 Llamada: OPERATOR - GT -[11:20:26] Target: 'gCarboCO2Stat_MeanValue' -[11:20:26] ADVERTENCIA: Se esperaban 9 redes pero solo se parsearon 4 -[11:20:26] Esto puede indicar redes con _EMPTY o estructuras no reconocidas -[11:20:26] DEBUG: Buscando todas las instancias de _NETWORK... -[11:20:26] Línea 2: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 52: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 91: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 130: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 180: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 219: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 258: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 308: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 347: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] ACTION ST encontrada: PressureRelease (536 caracteres) -[11:20:26] ACTION LAD encontrada: Read_AnalogInput (4192 caracteres) -[11:20:26] Se esperan 5 redes según el archivo -[11:20:26] Procesando red 1... -[11:20:26] Comenzando en línea 2: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 3: '' -[11:20:26] Línea 4: '_COMMENT' -[11:20:26] Línea 5: '' -[11:20:26] Línea 6: '_END_COMMENT' -[11:20:26] Línea 7: '_LD_ASSIGN' -[11:20:26] Línea 8: '_LD_CONTACT' -[11:20:26] Línea 9: 'gH_Blender_OPT_Simulation' -[11:20:26] Línea 10: '_EXPRESSION' -[11:20:26] Línea 11: '_NEGATIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 8 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gH_Blender_OPT_Simulation', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 12: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 13: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 14: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 15: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 16: 'ENABLELIST : 2' -[11:20:26] ✅ Encontrado ENABLELIST en línea 16 -[11:20:26] 📋 Procesando ENABLELIST con 2 llamadas -[11:20:26] 🔍 Buscando llamada 1/2 en línea 17 -[11:20:26] 🔎 Línea 17: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 17 -[11:20:26] 🔚 Encontrado siguiente _ASSIGN en línea 51, terminando parsing de llamada actual -[11:20:26] ✅ Llamada parseada: FUNCTION - ReadPeripherial -[11:20:26] 🔍 Buscando llamada 2/2 en línea 51 -[11:20:26] 🔎 Línea 51: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 51 -[11:20:26] ✅ Llamada parseada: FUNCTION_BLOCK - LowPassFilter -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 79 -[11:20:26] 📊 Total de llamadas parseadas: 2 -[11:20:26] ✅ Red 1: Encontradas 2 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 87 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gH_Blender_OPT_Simulation', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 91: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 92: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 93: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 94: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 95: 'ENABLELIST : 2' -[11:20:26] ✅ Encontrado ENABLELIST en línea 95 -[11:20:26] 📋 Procesando ENABLELIST con 2 llamadas -[11:20:26] 🔍 Buscando llamada 1/2 en línea 96 -[11:20:26] 🔎 Línea 96: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 96 -[11:20:26] 🔚 Encontrado siguiente _ASSIGN en línea 130, terminando parsing de llamada actual -[11:20:26] ✅ Llamada parseada: FUNCTION - ReadPeripherial -[11:20:26] 🔍 Buscando llamada 2/2 en línea 130 -[11:20:26] 🔎 Línea 130: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 130 -[11:20:26] ✅ Llamada parseada: FUNCTION_BLOCK - LowPassFilter -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 158 -[11:20:26] 📊 Total de llamadas parseadas: 2 -[11:20:26] ✅ Red 1: Encontradas 2 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 166 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gH_Blender_OPT_Simulation', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 170: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 171: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 172: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 173: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 174: 'ENABLELIST : 2' -[11:20:26] ✅ Encontrado ENABLELIST en línea 174 -[11:20:26] 📋 Procesando ENABLELIST con 2 llamadas -[11:20:26] 🔍 Buscando llamada 1/2 en línea 175 -[11:20:26] 🔎 Línea 175: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 175 -[11:20:26] 🔚 Encontrado siguiente _ASSIGN en línea 209, terminando parsing de llamada actual -[11:20:26] ✅ Llamada parseada: FUNCTION - ReadPeripherial -[11:20:26] 🔍 Buscando llamada 2/2 en línea 209 -[11:20:26] 🔎 Línea 209: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 209 -[11:20:26] ✅ Llamada parseada: FUNCTION_BLOCK - LowPassFilter -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 237 -[11:20:26] 📊 Total de llamadas parseadas: 2 -[11:20:26] ✅ Red 1: Encontradas 2 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 245 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gH_Blender_OPT_Simulation', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 249: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 250: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 251: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 252: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 253: 'ENABLELIST : 2' -[11:20:26] ✅ Encontrado ENABLELIST en línea 253 -[11:20:26] 📋 Procesando ENABLELIST con 2 llamadas -[11:20:26] 🔍 Buscando llamada 1/2 en línea 254 -[11:20:26] 🔎 Línea 254: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 254 -[11:20:26] 🔚 Encontrado siguiente _ASSIGN en línea 288, terminando parsing de llamada actual -[11:20:26] ✅ Llamada parseada: FUNCTION - ReadPeripherial -[11:20:26] 🔍 Buscando llamada 2/2 en línea 288 -[11:20:26] 🔎 Línea 288: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 288 -[11:20:26] ✅ Llamada parseada: FUNCTION_BLOCK - LowPassFilter -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 316 -[11:20:26] 📊 Total de llamadas parseadas: 2 -[11:20:26] ✅ Red 1: Encontradas 2 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 324 -[11:20:26] 📋 Lógica parseada: {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gH_Blender_OPT_Conductimeter_Profibus', 'negated': True}, {'type': 'CONTACT', 'name': 'gH_Blender_OPT_LocalCIP', 'negated': False}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 334: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 335: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 336: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 337: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 338: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 339: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 340: 'ENABLELIST : 2' -[11:20:26] ✅ Encontrado ENABLELIST en línea 340 -[11:20:26] 📋 Procesando ENABLELIST con 2 llamadas -[11:20:26] 🔍 Buscando llamada 1/2 en línea 341 -[11:20:26] 🔎 Línea 341: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 341 -[11:20:26] 🔚 Encontrado siguiente _ASSIGN en línea 375, terminando parsing de llamada actual -[11:20:26] ✅ Llamada parseada: FUNCTION - ReadPeripherial -[11:20:26] 🔍 Buscando llamada 2/2 en línea 375 -[11:20:26] 🔎 Línea 375: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 375 -[11:20:26] ✅ Llamada parseada: FUNCTION_BLOCK - LowPassFilter -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 403 -[11:20:26] 📊 Total de llamadas parseadas: 2 -[11:20:26] ✅ Red 1: Encontradas 2 llamadas en ENABLELIST -[11:20:26] Red 1 agregada. Total redes: 1 -[11:20:26] Con lógica: AND - Sin nombre -[11:20:26] Con 2 llamadas de ejecución. -[11:20:26] 📋 Llamada: FUNCTION - ReadPeripherial -[11:20:26] 📋 Llamada: FUNCTION_BLOCK - LowPassFilter -[11:20:26] Target: '' -[11:20:26] ADVERTENCIA: Se esperaban 5 redes pero solo se parsearon 1 -[11:20:26] Esto puede indicar redes con _EMPTY o estructuras no reconocidas -[11:20:26] DEBUG: Buscando todas las instancias de _NETWORK... -[11:20:26] Línea 2: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 81: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 160: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 239: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 318: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] ACTION ST encontrada: SaveIntegral (2301 caracteres) -[11:20:26] ACTION ST encontrada: SaveValveOut (353 caracteres) -[11:20:26] ACTION LAD encontrada: Write_AnalogOut (7698 caracteres) -[11:20:26] Se esperan 13 redes según el archivo -[11:20:26] Procesando red 1... -[11:20:26] Comenzando en línea 2: '_NETWORK' -[11:20:26] Próximas líneas después de _NETWORK: -[11:20:26] Línea 3: '' -[11:20:26] Línea 4: '_COMMENT' -[11:20:26] Línea 5: '' -[11:20:26] Línea 6: '_END_COMMENT' -[11:20:26] Línea 7: '_LD_ASSIGN' -[11:20:26] Línea 8: '_LD_CONTACT' -[11:20:26] Línea 9: 'gH_Blender_OPT_Simulation' -[11:20:26] Línea 10: '_EXPRESSION' -[11:20:26] Línea 11: '_NEGATIV' -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 8 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gH_Blender_OPT_Simulation', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 12: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 13: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 14: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 15: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 16: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 16 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 17 -[11:20:26] 🔎 Línea 17: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 17 -[11:20:26] ✅ Llamada parseada: FUNCTION - WritePeripherial -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 51 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 59 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gH_Blender_OPT_Simulation', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 63: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 64: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 65: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 66: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 67: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 67 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 68 -[11:20:26] 🔎 Línea 68: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 68 -[11:20:26] ✅ Llamada parseada: FUNCTION - WritePeripherial -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 102 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 110 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gH_Blender_OPT_Simulation', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 114: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 115: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 116: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 117: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 118: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 118 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 119 -[11:20:26] 🔎 Línea 119: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 119 -[11:20:26] ✅ Llamada parseada: FUNCTION - WritePeripherial -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 153 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 161 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gH_Blender_OPT_Simulation', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 165: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 166: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 167: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 168: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 169: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 169 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 170 -[11:20:26] 🔎 Línea 170: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 170 -[11:20:26] ✅ Llamada parseada: FUNCTION - WritePeripherial -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 204 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 212 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gH_Blender_OPT_Simulation', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 216: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 217: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 218: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 219: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 220: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 220 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 221 -[11:20:26] 🔎 Línea 221: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 221 -[11:20:26] ✅ Llamada parseada: FUNCTION - WritePeripherial -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 255 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 263 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gH_Blender_OPT_Simulation', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 267: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 268: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 269: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 270: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 271: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 271 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 272 -[11:20:26] 🔎 Línea 272: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 272 -[11:20:26] ✅ Llamada parseada: FUNCTION - WritePeripherial -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 306 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 314 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gH_Blender_OPT_Simulation', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 318: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 319: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 320: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 321: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 322: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 322 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 323 -[11:20:26] 🔎 Línea 323: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 323 -[11:20:26] ✅ Llamada parseada: FUNCTION - WritePeripherial -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 357 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 365 -[11:20:26] 📋 Lógica parseada: {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gH_Blender_OPT_Simulation', 'negated': True}, {'type': 'CONTACT', 'name': 'gH_Blender_OPT_Flowtronic', 'negated': True}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 375: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 376: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 377: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 378: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 379: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 380: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 381: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 381 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 382 -[11:20:26] 🔎 Línea 382: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 382 -[11:20:26] ✅ Llamada parseada: FUNCTION - WritePeripherial -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 416 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 424 -[11:20:26] 📋 Lógica parseada: {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gH_Blender_OPT_Simulation', 'negated': True}, {'type': 'CONTACT', 'name': 'gH_Blender_OPT_Flowtronic', 'negated': False}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 434: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 435: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 436: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 437: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 438: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 439: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 440: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 440 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 441 -[11:20:26] 🔎 Línea 441: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 441 -[11:20:26] ✅ Llamada parseada: FUNCTION - gH_VEP_DeaireationValve_Auto -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 501 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 509 -[11:20:26] 📋 Lógica parseada: {'type': 'CONTACT', 'name': 'gH_Blender_OPT_Simulation', 'negated': True} -[11:20:26] 🔎 Buscando ENABLELIST en línea 513: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 514: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 515: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 516: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 517: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 517 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 518 -[11:20:26] 🔎 Línea 518: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 518 -[11:20:26] ✅ Llamada parseada: FUNCTION - WritePeripherial -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 552 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 560 -[11:20:26] 📋 Lógica parseada: {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gH_Blender_OPT_Simulation', 'negated': True}, {'type': 'CONTACT', 'name': 'gH_Blender_OPT_LocalCIP', 'negated': False}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 570: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 571: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 572: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 573: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 574: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 575: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 576: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 576 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 577 -[11:20:26] 🔎 Línea 577: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 577 -[11:20:26] ✅ Llamada parseada: FUNCTION - WritePeripherial -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 611 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 619 -[11:20:26] 📋 Lógica parseada: {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gH_Blender_OPT_Simulation', 'negated': True}, {'type': 'CONTACT', 'name': 'gH_Blender_OPT_LocalCIP', 'negated': False}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 629: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 630: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 631: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 632: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 633: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 634: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 635: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 635 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 636 -[11:20:26] 🔎 Línea 636: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 636 -[11:20:26] ✅ Llamada parseada: FUNCTION - WritePeripherial -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 670 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] 🔍 Procesando _LD_ASSIGN en línea 678 -[11:20:26] 📋 Lógica parseada: {'type': 'AND', 'operands': [{'type': 'CONTACT', 'name': 'gH_Blender_OPT_Simulation', 'negated': True}, {'type': 'CONTACT', 'name': 'gH_Blender_OPT_LocalCIP', 'negated': False}]} -[11:20:26] 🔎 Buscando ENABLELIST en línea 688: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 689: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 690: '_EXPRESSION' -[11:20:26] 🔎 Buscando ENABLELIST en línea 691: '_POSITIV' -[11:20:26] 🔎 Buscando ENABLELIST en línea 692: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 693: '' -[11:20:26] 🔎 Buscando ENABLELIST en línea 694: 'ENABLELIST : 1' -[11:20:26] ✅ Encontrado ENABLELIST en línea 694 -[11:20:26] 📋 Procesando ENABLELIST con 1 llamadas -[11:20:26] 🔍 Buscando llamada 1/1 en línea 695 -[11:20:26] 🔎 Línea 695: '_ASSIGN' -[11:20:26] ✅ Encontrado _ASSIGN en línea 695 -[11:20:26] ✅ Llamada parseada: FUNCTION - WritePeripherial -[11:20:26] 🔚 Encontrado ENABLELIST_END en línea 729 -[11:20:26] 📊 Total de llamadas parseadas: 1 -[11:20:26] ✅ Red 1: Encontradas 1 llamadas en ENABLELIST -[11:20:26] Red 1 agregada. Total redes: 1 -[11:20:26] Con lógica: AND - Sin nombre -[11:20:26] Con 1 llamadas de ejecución. -[11:20:26] 📋 Llamada: FUNCTION - WritePeripherial -[11:20:26] Target: '' -[11:20:26] ADVERTENCIA: Se esperaban 13 redes pero solo se parsearon 1 -[11:20:26] Esto puede indicar redes con _EMPTY o estructuras no reconocidas -[11:20:26] DEBUG: Buscando todas las instancias de _NETWORK... -[11:20:26] Línea 2: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 53: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 104: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 155: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 206: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 257: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 308: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 359: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 418: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 503: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 554: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 613: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Línea 672: _NETWORK -[11:20:26] Siguiente línea: '' -[11:20:26] Línea +2: '_COMMENT' -[11:20:26] Total ACTIONs: 6 -[11:20:26] ✓ Redes encontradas: 53 -[11:20:26] ✓ Secciones de variables: ['VAR_OUTPUT', 'VAR'] -[11:20:26] ✓ ACTIONs encontradas: ['PIDMonitor', 'PressureRelease', 'Read_AnalogInput', 'SaveIntegral', 'SaveValveOut', 'Write_AnalogOut'] -[11:20:26] === DEBUG INFO - 53 networks encontrados === -[11:20:26] Red 2: -[11:20:26] Comentario: Llamada a función: _FBD_PROGRAM -[11:20:26] Target: mDummy -[11:20:26] Lógica: FUNCTION_BLOCK: _FBD_PROGRAM inputs: [] -[11:20:26] Condición: _FBD_PROGRAM() -[11:20:26] ✅ Llamadas: 1 -[11:20:26] 1. FUNCTION_BLOCK: _FBD_PROGRAM -[11:20:26] Red 1: -[11:20:26] Target: gBlendErrorEn -[11:20:26] Lógica: AND: -[11:20:26] OR: -[11:20:26] CONTACT: gBlenderBlending -[11:20:26] CONTACT: gBlendErrorEn -[11:20:26] CONTACT: gManual_PID_H2O (NEGADO) -[11:20:26] CONTACT: gManual_PID_SYR (NEGADO) -[11:20:26] CONTACT: gWaterRecipe (NEGADO) -[11:20:26] CONTACT: gStopBlendCarboError (NEGADO) -[11:20:26] Condición: ((gBlenderBlending OR gBlendErrorEn) AND NOT gManual_PID_H2O AND NOT gManual_PID_SYR AND NOT gWaterRecipe AND NOT gStopBlendCarboError) -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 3: -[11:20:26] Target: gCarboCO2ErrorEn -[11:20:26] Lógica: AND: -[11:20:26] OR: -[11:20:26] CONTACT: gBlenderBlending -[11:20:26] CONTACT: gCarboCO2ErrorEn -[11:20:26] CONTACT: gManual_PID_CO2 (NEGADO) -[11:20:26] OR: -[11:20:26] CONTACT: gCarboStillProduct -[11:20:26] CONTACT: gH_Blender_OPT_DoubleDeair -[11:20:26] CONTACT: gStopBlendCarboError (NEGADO) -[11:20:26] CONTACT: gWorkshopTest (NEGADO) -[11:20:26] Condición: ((gBlenderBlending OR gCarboCO2ErrorEn) AND NOT gManual_PID_CO2 AND (gCarboStillProduct OR gH_Blender_OPT_DoubleDeair) AND NOT gStopBlendCarboError AND NOT gWorkshopTest) -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 4: -[11:20:26] Target: mI_Sel_H2O -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 5: -[11:20:26] Target: mP_Sel_H2O -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 6: -[11:20:26] Target: mD_Sel_H2O -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 7: -[11:20:26] Target: gPID_H2O_Enabled -[11:20:26] Lógica: OR: -[11:20:26] CONTACT: gBlenderBlending -[11:20:26] CONTACT: gBlenderCIPMode -[11:20:26] AND: -[11:20:26] CONTACT: gRinseCloseVM1 (NEGADO) -[11:20:26] OR: -[11:20:26] CONTACT: gBlenderRinse_Running -[11:20:26] CONTACT: gProdTankRunOut_Running -[11:20:26] CONTACT: gProdPipeRunOut_Running -[11:20:26] AND: -[11:20:26] CONTACT: gBlenderRun_Latch (NEGADO) -[11:20:26] CONTACT: gH_CMD_BlenderMaintenance -[11:20:26] Condición: (gBlenderBlending OR gBlenderCIPMode OR (NOT gRinseCloseVM1 AND (gBlenderRinse_Running OR gProdTankRunOut_Running OR gProdPipeRunOut_Running)) OR (NOT gBlenderRun_Latch AND gH_CMD_BlenderMaintenance)) -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 8: -[11:20:26] Target: gI_ITL_PID_H2O -[11:20:26] Lógica: CONTACT: gI_ITL_PID_H2O -[11:20:26] Condición: gI_ITL_PID_H2O -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 9: -[11:20:26] Target: mH2OONS -[11:20:26] Lógica: AND: -[11:20:26] CONTACT: gPID_H2O_Enabled -[11:20:26] FUNCTION_BLOCK: mH2OPIDEn inputs: [] -[11:20:26] Condición: (gPID_H2O_Enabled AND mH2OPIDEn()) -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 10: -[11:20:26] Target: mI_Sel_SYR -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 11: -[11:20:26] Target: mP_Sel_SYR -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 12: -[11:20:26] Target: mD_Sel_SYR -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 13: -[11:20:26] Target: gPID_SYR_Enabled -[11:20:26] Lógica: OR: -[11:20:26] AND: -[11:20:26] CONTACT: gBlenderBlending -[11:20:26] CONTACT: gWaterRecipe (NEGADO) -[11:20:26] CONTACT: gBlenderCIPMode -[11:20:26] AND: -[11:20:26] CONTACT: gRinseCloseVM2 (NEGADO) -[11:20:26] OR: -[11:20:26] CONTACT: gBlenderRinse_Running -[11:20:26] CONTACT: gProdTankRunOut_Running -[11:20:26] CONTACT: gProdPipeRunOut_Running -[11:20:26] AND: -[11:20:26] CONTACT: gBlenderRun_Latch (NEGADO) -[11:20:26] CONTACT: gH_CMD_BlenderMaintenance -[11:20:26] Condición: ((gBlenderBlending AND NOT gWaterRecipe) OR gBlenderCIPMode OR (NOT gRinseCloseVM2 AND (gBlenderRinse_Running OR gProdTankRunOut_Running OR gProdPipeRunOut_Running)) OR (NOT gBlenderRun_Latch AND gH_CMD_BlenderMaintenance)) -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 14: -[11:20:26] Target: gI_ITL_PID_SYR -[11:20:26] Lógica: CONTACT: gI_ITL_PID_SYR -[11:20:26] Condición: gI_ITL_PID_SYR -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 15: -[11:20:26] Target: mSyrONS -[11:20:26] Lógica: AND: -[11:20:26] CONTACT: gPID_SYR_Enabled -[11:20:26] FUNCTION_BLOCK: mSyrPIDEn inputs: [] -[11:20:26] Condición: (gPID_SYR_Enabled AND mSyrPIDEn()) -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 16: -[11:20:26] Target: mI_Sel_CO2 -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 17: -[11:20:26] Target: mP_Sel_CO2 -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 18: -[11:20:26] Target: mD_Sel_CO2 -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 19: -[11:20:26] Target: gPID_CarboCO2_Enabled -[11:20:26] Lógica: OR: -[11:20:26] AND: -[11:20:26] OR: -[11:20:26] AND: -[11:20:26] CONTACT: gBlenderBlending -[11:20:26] OR: -[11:20:26] CONTACT: gCarboStillProduct -[11:20:26] CONTACT: gH_Blender_OPT_DoubleDeair -[11:20:26] CONTACT: gH_Blender_OPT_RemoteInjection (NEGADO) -[11:20:26] CONTACT: gP_CarboPipe_En -[11:20:26] AND: -[11:20:26] CONTACT: gP_CIP_CO2_Inj -[11:20:26] CONTACT: gBlenderCIPMode -[11:20:26] CONTACT: gWorkshopTest (NEGADO) -[11:20:26] AND: -[11:20:26] CONTACT: gBlenderRun_Latch (NEGADO) -[11:20:26] CONTACT: gH_CMD_BlenderMaintenance -[11:20:26] Condición: ((((gBlenderBlending AND (gCarboStillProduct OR gH_Blender_OPT_DoubleDeair) AND NOT gH_Blender_OPT_RemoteInjection) OR gP_CarboPipe_En OR (gP_CIP_CO2_Inj AND gBlenderCIPMode)) AND NOT gWorkshopTest) OR (NOT gBlenderRun_Latch AND gH_CMD_BlenderMaintenance)) -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 20: -[11:20:26] Target: gI_ITL_PID_CO2 -[11:20:26] Lógica: CONTACT: gI_ITL_PID_CO2 -[11:20:26] Condición: gI_ITL_PID_CO2 -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 21: -[11:20:26] Target: mCO2ONS -[11:20:26] Lógica: AND: -[11:20:26] CONTACT: gPID_CarboCO2_Enabled -[11:20:26] FUNCTION_BLOCK: mCO2PIDEn inputs: [] -[11:20:26] Condición: (gPID_CarboCO2_Enabled AND mCO2PIDEn()) -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 23: -[11:20:26] Comentario: Llamada a función: _FBD_PROGRAM -[11:20:26] Target: mDummy -[11:20:26] Lógica: FUNCTION_BLOCK: _FBD_PROGRAM inputs: [] -[11:20:26] Condición: _FBD_PROGRAM() -[11:20:26] ✅ Llamadas: 1 -[11:20:26] 1. FUNCTION_BLOCK: _FBD_PROGRAM -[11:20:26] Red 24: -[11:20:26] Comentario: Llamada a función: _FBD_PROGRAM -[11:20:26] Target: mDummy -[11:20:26] Lógica: FUNCTION_BLOCK: _FBD_PROGRAM inputs: [] -[11:20:26] Condición: _FBD_PROGRAM() -[11:20:26] ✅ Llamadas: 1 -[11:20:26] 1. FUNCTION_BLOCK: _FBD_PROGRAM -[11:20:26] Red 22: -[11:20:26] Target: mI_Sel_PressCO2 -[11:20:26] Lógica: CONTACT: gAlwaysOff -[11:20:26] Condición: gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 25: -[11:20:26] Target: mP_Sel_PressCO2 -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 26: -[11:20:26] Target: mD_Sel_PressCO2 -[11:20:26] Lógica: CONTACT: gAlwaysOff -[11:20:26] Condición: gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 27: -[11:20:26] Target: gPID_PressCO2_Enabled -[11:20:26] Lógica: OR: -[11:20:26] CONTACT: gProdTankPress_Running -[11:20:26] AND: -[11:20:26] CONTACT: gManual_PID_PressCO2 -[11:20:26] CONTACT: gBlenderCIPMode (NEGADO) -[11:20:26] Condición: (gProdTankPress_Running OR (gManual_PID_PressCO2 AND NOT gBlenderCIPMode)) -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 28: -[11:20:26] Target: gI_ITL_PID_PressCO2 -[11:20:26] Lógica: CONTACT: gI_ITL_PID_PressCO2 -[11:20:26] Condición: gI_ITL_PID_PressCO2 -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 30: -[11:20:26] Comentario: Llamada a función: _FBD_PROGRAM -[11:20:26] Target: mDummy -[11:20:26] Lógica: FUNCTION_BLOCK: _FBD_PROGRAM inputs: [] -[11:20:26] Condición: _FBD_PROGRAM() -[11:20:26] ✅ Llamadas: 1 -[11:20:26] 1. FUNCTION_BLOCK: _FBD_PROGRAM -[11:20:26] Red 29: -[11:20:26] Target: mI_Sel_SYRLevel -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 31: -[11:20:26] Target: mP_Sel_SYRLevel -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 32: -[11:20:26] Target: mD_Sel_SYRLevel -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 33: -[11:20:26] Target: gPID_SYRLevel_Enabled -[11:20:26] Lógica: OR: -[11:20:26] AND: -[11:20:26] OR: -[11:20:26] CONTACT: gBlenderCIPMode -[11:20:26] CONTACT: gBlenderRinseMode -[11:20:26] CONTACT: gCIPSyrupStopLevel (NEGADO) -[11:20:26] AND: -[11:20:26] OR: -[11:20:26] AND: -[11:20:26] OR: -[11:20:26] CONTACT: gSyrRunOut_Latch -[11:20:26] AND: -[11:20:26] CONTACT: gFirstProd_Latch -[11:20:26] CONTACT: gSyrLineMFMPrep_Done -[11:20:26] CONTACT: gFastChangeOverActivated (NEGADO) -[11:20:26] CONTACT: gBlenderRun_Latch -[11:20:26] AND: -[11:20:26] OR: -[11:20:26] CONTACT: gSyrLineMFMPrep_Running -[11:20:26] CONTACT: gSyrMFMStartUp_Running -[11:20:26] CONTACT: gInSyrRoomOk -[11:20:26] CONTACT: gSyrupTankLoading -[11:20:26] CONTACT: gProdPipeRunOut_Running -[11:20:26] CONTACT: gWaterRecipe (NEGADO) -[11:20:26] CONTACT: gBlenderProdMode -[11:20:26] CONTACT: gBlenderRinseMode (NEGADO) -[11:20:26] CONTACT: gP_EV03 -[11:20:26] CONTACT: gManual_PID_SYR_Level -[11:20:26] Condición: (((gBlenderCIPMode OR gBlenderRinseMode) AND NOT gCIPSyrupStopLevel) OR ((((gSyrRunOut_Latch OR (gFirstProd_Latch AND gSyrLineMFMPrep_Done) OR NOT gFastChangeOverActivated) AND gBlenderRun_Latch) OR ((gSyrLineMFMPrep_Running OR gSyrMFMStartUp_Running) AND gInSyrRoomOk) OR gSyrupTankLoading OR gProdPipeRunOut_Running) AND NOT gWaterRecipe AND gBlenderProdMode AND NOT gBlenderRinseMode) OR gP_EV03 OR gManual_PID_SYR_Level) -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 34: -[11:20:26] Target: gI_ITL_PID_SYR_Level -[11:20:26] Lógica: CONTACT: gI_ITL_PID_SYR_Level -[11:20:26] Condición: gI_ITL_PID_SYR_Level -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 35: -[11:20:26] Target: mI_Sel_WaterTemp -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 36: -[11:20:26] Target: mP_Sel_WaterTemp -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 37: -[11:20:26] Target: mD_Sel_waterTemp -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 38: -[11:20:26] Target: gHold_int_PID_TempWater -[11:20:26] Lógica: AND: -[11:20:26] CONTACT: gPID_WaterTemp_Enabled -[11:20:26] CONTACT: gPID_WaterTemp_EnInt (NEGADO) -[11:20:26] Condición: (gPID_WaterTemp_Enabled AND NOT gPID_WaterTemp_EnInt) -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 39: -[11:20:26] Target: gI_ITL_PID_TempWater -[11:20:26] Lógica: CONTACT: gI_ITL_PID_TempWater -[11:20:26] Condición: gI_ITL_PID_TempWater -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 40: -[11:20:26] Target: mI_Sel_ProdTemp -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 41: -[11:20:26] Target: mP_Sel_ProdTemp -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 42: -[11:20:26] Target: mD_Sel_ProdTemp -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 43: -[11:20:26] Target: gHold_int_PID_TempProd -[11:20:26] Lógica: AND: -[11:20:26] CONTACT: gPID_ProdTemp_Enabled -[11:20:26] CONTACT: gPID_ProdTemp_EnInt (NEGADO) -[11:20:26] Condición: (gPID_ProdTemp_Enabled AND NOT gPID_ProdTemp_EnInt) -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 44: -[11:20:26] Target: gI_ITL_PID_TempProd -[11:20:26] Lógica: CONTACT: gI_ITL_PID_TempProd -[11:20:26] Condición: gI_ITL_PID_TempProd -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 45: -[11:20:26] Target: mI_Sel_CIPTemp -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 46: -[11:20:26] Target: mP_Sel_CIPTemp -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 47: -[11:20:26] Target: mD_Sel_CIPTemp -[11:20:26] Lógica: CONTACT: gAlwaysOff (NEGADO) -[11:20:26] Condición: NOT gAlwaysOff -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 48: -[11:20:26] Target: gPID_CIPTemp_Enabled -[11:20:26] Lógica: OR: -[11:20:26] AND: -[11:20:26] OR: -[11:20:26] CONTACT: gP_CIP_Temp_En -[11:20:26] CONTACT: gManual_PID_CIPTemp -[11:20:26] CONTACT: gBlenderCIPMode -[11:20:26] CONTACT: gH_EV36_Status -[11:20:26] CONTACT: gIn_FlowSwitch -[11:20:26] CONTACT: gCIP_Run_Latch -[11:20:26] AND: -[11:20:26] CONTACT: gBlenderRun_Latch (NEGADO) -[11:20:26] CONTACT: gH_CMD_BlenderMaintenance -[11:20:26] Condición: (((gP_CIP_Temp_En OR gManual_PID_CIPTemp) AND gBlenderCIPMode AND gH_EV36_Status AND gIn_FlowSwitch AND gCIP_Run_Latch) OR (NOT gBlenderRun_Latch AND gH_CMD_BlenderMaintenance)) -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 49: -[11:20:26] Target: gI_ITL_PID_CIPTemp -[11:20:26] Lógica: CONTACT: gI_ITL_PID_CIPTemp -[11:20:26] Condición: gI_ITL_PID_CIPTemp -[11:20:26] ❌ Sin llamadas -[11:20:26] Red 51: -[11:20:26] Comentario: Llamada a función: ??? -[11:20:26] Target: mDummy -[11:20:26] Lógica: FUNCTION_BLOCK: ??? inputs: [] -[11:20:26] Condición: ???() -[11:20:26] ✅ Llamadas: 1 -[11:20:26] 1. FUNCTION_BLOCK: ??? -[11:20:26] Red 52: -[11:20:26] Comentario: Llamada a función: _FBD_PROGRAM -[11:20:26] Target: mDummy -[11:20:26] Lógica: FUNCTION_BLOCK: _FBD_PROGRAM inputs: [] -[11:20:26] Condición: _FBD_PROGRAM() -[11:20:26] ✅ Llamadas: 1 -[11:20:26] 1. FUNCTION_BLOCK: _FBD_PROGRAM -[11:20:26] Red 53: -[11:20:26] Comentario: Llamada a función: Blender_PID_Ctrl_Loop.SaveValveOut -[11:20:26] Target: mDummy -[11:20:26] Lógica: ACTION_CALL: Blender_PID_Ctrl_Loop.SaveValveOut -[11:20:26] Condición: Blender_PID_Ctrl_Loop.SaveValveOut -[11:20:26] ✅ Llamadas: 1 -[11:20:26] 1. ACTION_CALL: Blender_PID_Ctrl_Loop.SaveValveOut -[11:20:26] Red 50: -[11:20:26] Target: mDummy -[11:20:26] Lógica: ACTION_CALL: Blender_PID_Ctrl_Loop.SaveValveOut -[11:20:26] Condición: Blender_PID_Ctrl_Loop.SaveValveOut -[11:20:26] ❌ Sin llamadas -[11:20:26] === Optimizando expresiones con SymPy (forzando DNF para LAD) === -[11:20:26] Optimizando Red 2: -[11:20:26] Expresión original: _FBD_PROGRAM__ -[11:20:26] Simplificada: _FBD_PROGRAM__ -[11:20:26] DNF (forma LAD preferida): _FBD_PROGRAM__ -[11:20:26] Optimizando Red 1: -[11:20:26] Expresión original: ~gManual_PID_H2O & ~gManual_PID_SYR & ~gStopBlendCarboError & ~gWaterRecipe & (gBlendErrorEn | gBlenderBlending) -[11:20:26] Simplificada: ~gManual_PID_H2O & ~gManual_PID_SYR & ~gStopBlendCarboError & ~gWaterRecipe & (gBlendErrorEn | gBlenderBlending) -[11:20:26] DNF (forma LAD preferida): (gBlendErrorEn & ~gManual_PID_H2O & ~gManual_PID_SYR & ~gStopBlendCarboError & ~gWaterRecipe) | (gBlenderBlending & ~gManual_PID_H2O & ~gManual_PID_SYR & ~gStopBlendCarboError & ~gWaterRecipe) -[11:20:26] Post-procesada: ~gManual_PID_H2O & ~gManual_PID_SYR & ~gStopBlendCarboError & ~gWaterRecipe & (gBlendErrorEn | gBlenderBlending) -[11:20:26] Optimizando Red 3: -[11:20:26] Expresión original: ~gManual_PID_CO2 & ~gStopBlendCarboError & ~gWorkshopTest & (gBlenderBlending | gCarboCO2ErrorEn) & (gCarboStillProduct | gH_Blender_OPT_DoubleDeair) -[11:20:26] Simplificada: ~gManual_PID_CO2 & ~gStopBlendCarboError & ~gWorkshopTest & (gBlenderBlending | gCarboCO2ErrorEn) & (gCarboStillProduct | gH_Blender_OPT_DoubleDeair) -[11:20:26] DNF (forma LAD preferida): (gBlenderBlending & gCarboStillProduct & ~gManual_PID_CO2 & ~gStopBlendCarboError & ~gWorkshopTest) | (gBlenderBlending & gH_Blender_OPT_DoubleDeair & ~gManual_PID_CO2 & ~gStopBlendCarboError & ~gWorkshopTest) | (gCarboCO2ErrorEn & gCarboStillProduct & ~gManual_PID_CO2 & ~gStopBlendCarboError & ~gWorkshopTest) | (gCarboCO2ErrorEn & gH_Blender_OPT_DoubleDeair & ~gManual_PID_CO2 & ~gStopBlendCarboError & ~gWorkshopTest) -[11:20:26] Post-procesada: ~gManual_PID_CO2 & ~gStopBlendCarboError & ~gWorkshopTest & (gBlenderBlending | gCarboCO2ErrorEn) & (gCarboStillProduct | gH_Blender_OPT_DoubleDeair) -[11:20:26] Optimizando Red 4: -[11:20:26] Expresión original: ~gAlwaysOff -[11:20:26] Simplificada: ~gAlwaysOff -[11:20:26] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:26] Optimizando Red 5: -[11:20:26] Expresión original: ~gAlwaysOff -[11:20:26] Simplificada: ~gAlwaysOff -[11:20:26] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:26] Optimizando Red 6: -[11:20:26] Expresión original: ~gAlwaysOff -[11:20:26] Simplificada: ~gAlwaysOff -[11:20:26] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:26] Optimizando Red 7: -[11:20:26] Expresión original: gBlenderBlending | gBlenderCIPMode | (gH_CMD_BlenderMaintenance & ~gBlenderRun_Latch) | (~gRinseCloseVM1 & (gBlenderRinse_Running | gProdPipeRunOut_Running | gProdTankRunOut_Running)) -[11:20:27] Simplificada: gBlenderBlending | gBlenderCIPMode | (gBlenderRinse_Running & ~gRinseCloseVM1) | (gH_CMD_BlenderMaintenance & ~gBlenderRun_Latch) | (gProdPipeRunOut_Running & ~gRinseCloseVM1) | (gProdTankRunOut_Running & ~gRinseCloseVM1) -[11:20:27] DNF (forma LAD preferida): gBlenderBlending | gBlenderCIPMode | (gBlenderRinse_Running & ~gRinseCloseVM1) | (gH_CMD_BlenderMaintenance & ~gBlenderRun_Latch) | (gProdPipeRunOut_Running & ~gRinseCloseVM1) | (gProdTankRunOut_Running & ~gRinseCloseVM1) -[11:20:27] Optimizando Red 8: -[11:20:27] Expresión original: gI_ITL_PID_H2O -[11:20:27] Simplificada: gI_ITL_PID_H2O -[11:20:27] DNF (forma LAD preferida): gI_ITL_PID_H2O -[11:20:27] Optimizando Red 9: -[11:20:27] Expresión original: gPID_H2O_Enabled & mH2OPIDEn__ -[11:20:27] Simplificada: gPID_H2O_Enabled & mH2OPIDEn__ -[11:20:27] DNF (forma LAD preferida): gPID_H2O_Enabled & mH2OPIDEn__ -[11:20:27] Optimizando Red 10: -[11:20:27] Expresión original: ~gAlwaysOff -[11:20:27] Simplificada: ~gAlwaysOff -[11:20:27] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:27] Optimizando Red 11: -[11:20:27] Expresión original: ~gAlwaysOff -[11:20:27] Simplificada: ~gAlwaysOff -[11:20:27] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:27] Optimizando Red 12: -[11:20:27] Expresión original: ~gAlwaysOff -[11:20:27] Simplificada: ~gAlwaysOff -[11:20:27] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:27] Optimizando Red 13: -[11:20:27] Expresión original: gBlenderCIPMode | (gBlenderBlending & ~gWaterRecipe) | (gH_CMD_BlenderMaintenance & ~gBlenderRun_Latch) | (~gRinseCloseVM2 & (gBlenderRinse_Running | gProdPipeRunOut_Running | gProdTankRunOut_Running)) -[11:20:27] Simplificada: gBlenderCIPMode | (gBlenderBlending & ~gWaterRecipe) | (gH_CMD_BlenderMaintenance & ~gBlenderRun_Latch) | (~gRinseCloseVM2 & (gBlenderRinse_Running | gProdPipeRunOut_Running | gProdTankRunOut_Running)) -[11:20:27] DNF (forma LAD preferida): gBlenderCIPMode | (gBlenderBlending & ~gWaterRecipe) | (gBlenderRinse_Running & ~gRinseCloseVM2) | (gH_CMD_BlenderMaintenance & ~gBlenderRun_Latch) | (gProdPipeRunOut_Running & ~gRinseCloseVM2) | (gProdTankRunOut_Running & ~gRinseCloseVM2) -[11:20:27] Optimizando Red 14: -[11:20:27] Expresión original: gI_ITL_PID_SYR -[11:20:27] Simplificada: gI_ITL_PID_SYR -[11:20:27] DNF (forma LAD preferida): gI_ITL_PID_SYR -[11:20:27] Optimizando Red 15: -[11:20:27] Expresión original: gPID_SYR_Enabled & mSyrPIDEn__ -[11:20:27] Simplificada: gPID_SYR_Enabled & mSyrPIDEn__ -[11:20:27] DNF (forma LAD preferida): gPID_SYR_Enabled & mSyrPIDEn__ -[11:20:27] Optimizando Red 16: -[11:20:27] Expresión original: ~gAlwaysOff -[11:20:27] Simplificada: ~gAlwaysOff -[11:20:27] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:27] Optimizando Red 17: -[11:20:27] Expresión original: ~gAlwaysOff -[11:20:27] Simplificada: ~gAlwaysOff -[11:20:27] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:27] Optimizando Red 18: -[11:20:27] Expresión original: ~gAlwaysOff -[11:20:27] Simplificada: ~gAlwaysOff -[11:20:27] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:27] Optimizando Red 19: -[11:20:27] Expresión original: (gH_CMD_BlenderMaintenance & ~gBlenderRun_Latch) | (~gWorkshopTest & (gP_CarboPipe_En | (gBlenderCIPMode & gP_CIP_CO2_Inj) | (gBlenderBlending & ~gH_Blender_OPT_RemoteInjection & (gCarboStillProduct | gH_Blender_OPT_DoubleDeair)))) -[11:20:27] Simplificada: (gH_CMD_BlenderMaintenance & ~gBlenderRun_Latch) | (~gWorkshopTest & (gBlenderBlending | gBlenderCIPMode | gP_CarboPipe_En) & (gBlenderBlending | gP_CIP_CO2_Inj | gP_CarboPipe_En) & (gBlenderCIPMode | gP_CarboPipe_En | ~gH_Blender_OPT_RemoteInjection) & (gP_CIP_CO2_Inj | gP_CarboPipe_En | ~gH_Blender_OPT_RemoteInjection) & (gBlenderCIPMode | gCarboStillProduct | gH_Blender_OPT_DoubleDeair | gP_CarboPipe_En) & (gCarboStillProduct | gH_Blender_OPT_DoubleDeair | gP_CIP_CO2_Inj | gP_CarboPipe_En)) -[11:20:27] DNF (forma LAD preferida): (gH_CMD_BlenderMaintenance & ~gBlenderRun_Latch) | (gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderBlending & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderCIPMode & gP_CIP_CO2_Inj & ~gWorkshopTest) | (gBlenderCIPMode & gP_CarboPipe_En & ~gWorkshopTest) | (gCarboStillProduct & gP_CarboPipe_En & ~gWorkshopTest) | (gH_Blender_OPT_DoubleDeair & gP_CarboPipe_En & ~gWorkshopTest) | (gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gWorkshopTest) | (gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gP_CIP_CO2_Inj & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderBlending & gCarboStillProduct & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderBlending & gH_Blender_OPT_DoubleDeair & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderBlending & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderCIPMode & gCarboStillProduct & gP_CIP_CO2_Inj & ~gWorkshopTest) | (gBlenderCIPMode & gCarboStillProduct & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderCIPMode & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & ~gWorkshopTest) | (gBlenderCIPMode & gH_Blender_OPT_DoubleDeair & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderCIPMode & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gWorkshopTest) | (gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CarboPipe_En & ~gWorkshopTest) | (gCarboStillProduct & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gWorkshopTest) | (gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderBlending & gCarboStillProduct & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gH_Blender_OPT_DoubleDeair & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderCIPMode & gP_CIP_CO2_Inj & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderCIPMode & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gCarboStillProduct & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gH_Blender_OPT_DoubleDeair & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gCarboStillProduct & gP_CIP_CO2_Inj & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gCarboStillProduct & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gH_Blender_OPT_DoubleDeair & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderBlending & gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderBlending & gCarboStillProduct & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderBlending & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderCIPMode & gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & ~gWorkshopTest) | (gBlenderCIPMode & gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderCIPMode & gCarboStillProduct & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderCIPMode & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gWorkshopTest) | (gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gCarboStillProduct & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gH_Blender_OPT_DoubleDeair & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gP_CIP_CO2_Inj & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gCarboStillProduct & gH_Blender_OPT_DoubleDeair & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gCarboStillProduct & gP_CIP_CO2_Inj & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gCarboStillProduct & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gH_Blender_OPT_DoubleDeair & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderCIPMode & gCarboStillProduct & gP_CIP_CO2_Inj & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderCIPMode & gCarboStillProduct & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderCIPMode & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderCIPMode & gH_Blender_OPT_DoubleDeair & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderCIPMode & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gCarboStillProduct & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gCarboStillProduct & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderBlending & gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderCIPMode & gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gCarboStillProduct & gH_Blender_OPT_DoubleDeair & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gCarboStillProduct & gP_CIP_CO2_Inj & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gCarboStillProduct & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gH_Blender_OPT_DoubleDeair & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gCarboStillProduct & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderCIPMode & gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderCIPMode & gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderCIPMode & gCarboStillProduct & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderCIPMode & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gCarboStillProduct & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gBlenderCIPMode & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderBlending & gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) | (gBlenderCIPMode & gCarboStillProduct & gH_Blender_OPT_DoubleDeair & gP_CIP_CO2_Inj & gP_CarboPipe_En & ~gH_Blender_OPT_RemoteInjection & ~gWorkshopTest) -[11:20:28] Optimizando Red 20: -[11:20:28] Expresión original: gI_ITL_PID_CO2 -[11:20:28] Simplificada: gI_ITL_PID_CO2 -[11:20:28] DNF (forma LAD preferida): gI_ITL_PID_CO2 -[11:20:28] Optimizando Red 21: -[11:20:28] Expresión original: gPID_CarboCO2_Enabled & mCO2PIDEn__ -[11:20:28] Simplificada: gPID_CarboCO2_Enabled & mCO2PIDEn__ -[11:20:28] DNF (forma LAD preferida): gPID_CarboCO2_Enabled & mCO2PIDEn__ -[11:20:28] Optimizando Red 23: -[11:20:28] Expresión original: _FBD_PROGRAM__ -[11:20:28] Simplificada: _FBD_PROGRAM__ -[11:20:28] DNF (forma LAD preferida): _FBD_PROGRAM__ -[11:20:28] Optimizando Red 24: -[11:20:28] Expresión original: _FBD_PROGRAM__ -[11:20:28] Simplificada: _FBD_PROGRAM__ -[11:20:28] DNF (forma LAD preferida): _FBD_PROGRAM__ -[11:20:28] Optimizando Red 22: -[11:20:28] Expresión original: gAlwaysOff -[11:20:28] Simplificada: gAlwaysOff -[11:20:28] DNF (forma LAD preferida): gAlwaysOff -[11:20:28] Optimizando Red 25: -[11:20:28] Expresión original: ~gAlwaysOff -[11:20:28] Simplificada: ~gAlwaysOff -[11:20:28] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:28] Optimizando Red 26: -[11:20:28] Expresión original: gAlwaysOff -[11:20:28] Simplificada: gAlwaysOff -[11:20:28] DNF (forma LAD preferida): gAlwaysOff -[11:20:28] Optimizando Red 27: -[11:20:28] Expresión original: gProdTankPress_Running | (gManual_PID_PressCO2 & ~gBlenderCIPMode) -[11:20:28] Simplificada: gProdTankPress_Running | (gManual_PID_PressCO2 & ~gBlenderCIPMode) -[11:20:28] DNF (forma LAD preferida): gProdTankPress_Running | (gManual_PID_PressCO2 & ~gBlenderCIPMode) -[11:20:28] Optimizando Red 28: -[11:20:28] Expresión original: gI_ITL_PID_PressCO2 -[11:20:28] Simplificada: gI_ITL_PID_PressCO2 -[11:20:28] DNF (forma LAD preferida): gI_ITL_PID_PressCO2 -[11:20:28] Optimizando Red 30: -[11:20:28] Expresión original: _FBD_PROGRAM__ -[11:20:28] Simplificada: _FBD_PROGRAM__ -[11:20:28] DNF (forma LAD preferida): _FBD_PROGRAM__ -[11:20:28] Optimizando Red 29: -[11:20:28] Expresión original: ~gAlwaysOff -[11:20:28] Simplificada: ~gAlwaysOff -[11:20:28] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:28] Optimizando Red 31: -[11:20:28] Expresión original: ~gAlwaysOff -[11:20:28] Simplificada: ~gAlwaysOff -[11:20:28] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:28] Optimizando Red 32: -[11:20:28] Expresión original: ~gAlwaysOff -[11:20:28] Simplificada: ~gAlwaysOff -[11:20:28] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:28] Optimizando Red 33: -[11:20:28] Expresión original: gManual_PID_SYR_Level | gP_EV03 | (~gCIPSyrupStopLevel & (gBlenderCIPMode | gBlenderRinseMode)) | (gBlenderProdMode & ~gBlenderRinseMode & ~gWaterRecipe & (gProdPipeRunOut_Running | gSyrupTankLoading | (gInSyrRoomOk & (gSyrLineMFMPrep_Running | gSyrMFMStartUp_Running)) | (gBlenderRun_Latch & (gSyrRunOut_Latch | ~gFastChangeOverActivated | (gFirstProd_Latch & gSyrLineMFMPrep_Done))))) -[11:20:28] Simplificada: gManual_PID_SYR_Level | gP_EV03 | (~gCIPSyrupStopLevel & (gBlenderCIPMode | gBlenderRinseMode)) | (gBlenderProdMode & ~gBlenderRinseMode & ~gWaterRecipe & (gProdPipeRunOut_Running | gSyrupTankLoading | (gInSyrRoomOk & (gSyrLineMFMPrep_Running | gSyrMFMStartUp_Running)) | (gBlenderRun_Latch & (gFirstProd_Latch | gSyrRunOut_Latch | ~gFastChangeOverActivated) & (gSyrLineMFMPrep_Done | gSyrRunOut_Latch | ~gFastChangeOverActivated)))) -[11:20:28] ADVERTENCIA: Expresión muy compleja (17 símbolos, complejidad 376) -[11:20:28] Saltando conversión DNF por rendimiento - usando simplificación básica -[11:20:28] Optimizando Red 34: -[11:20:28] Expresión original: gI_ITL_PID_SYR_Level -[11:20:28] Simplificada: gI_ITL_PID_SYR_Level -[11:20:28] DNF (forma LAD preferida): gI_ITL_PID_SYR_Level -[11:20:28] Optimizando Red 35: -[11:20:28] Expresión original: ~gAlwaysOff -[11:20:28] Simplificada: ~gAlwaysOff -[11:20:28] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:28] Optimizando Red 36: -[11:20:28] Expresión original: ~gAlwaysOff -[11:20:28] Simplificada: ~gAlwaysOff -[11:20:28] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:28] Optimizando Red 37: -[11:20:28] Expresión original: ~gAlwaysOff -[11:20:28] Simplificada: ~gAlwaysOff -[11:20:28] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:28] Optimizando Red 38: -[11:20:28] Expresión original: gPID_WaterTemp_Enabled & ~gPID_WaterTemp_EnInt -[11:20:28] Simplificada: gPID_WaterTemp_Enabled & ~gPID_WaterTemp_EnInt -[11:20:28] DNF (forma LAD preferida): gPID_WaterTemp_Enabled & ~gPID_WaterTemp_EnInt -[11:20:28] Optimizando Red 39: -[11:20:28] Expresión original: gI_ITL_PID_TempWater -[11:20:28] Simplificada: gI_ITL_PID_TempWater -[11:20:28] DNF (forma LAD preferida): gI_ITL_PID_TempWater -[11:20:28] Optimizando Red 40: -[11:20:28] Expresión original: ~gAlwaysOff -[11:20:28] Simplificada: ~gAlwaysOff -[11:20:28] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:28] Optimizando Red 41: -[11:20:28] Expresión original: ~gAlwaysOff -[11:20:28] Simplificada: ~gAlwaysOff -[11:20:28] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:28] Optimizando Red 42: -[11:20:28] Expresión original: ~gAlwaysOff -[11:20:28] Simplificada: ~gAlwaysOff -[11:20:28] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:28] Optimizando Red 43: -[11:20:28] Expresión original: gPID_ProdTemp_Enabled & ~gPID_ProdTemp_EnInt -[11:20:28] Simplificada: gPID_ProdTemp_Enabled & ~gPID_ProdTemp_EnInt -[11:20:28] DNF (forma LAD preferida): gPID_ProdTemp_Enabled & ~gPID_ProdTemp_EnInt -[11:20:28] Optimizando Red 44: -[11:20:28] Expresión original: gI_ITL_PID_TempProd -[11:20:28] Simplificada: gI_ITL_PID_TempProd -[11:20:28] DNF (forma LAD preferida): gI_ITL_PID_TempProd -[11:20:28] Optimizando Red 45: -[11:20:28] Expresión original: ~gAlwaysOff -[11:20:28] Simplificada: ~gAlwaysOff -[11:20:28] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:28] Optimizando Red 46: -[11:20:28] Expresión original: ~gAlwaysOff -[11:20:28] Simplificada: ~gAlwaysOff -[11:20:28] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:28] Optimizando Red 47: -[11:20:28] Expresión original: ~gAlwaysOff -[11:20:28] Simplificada: ~gAlwaysOff -[11:20:28] DNF (forma LAD preferida): ~gAlwaysOff -[11:20:28] Optimizando Red 48: -[11:20:28] Expresión original: (gH_CMD_BlenderMaintenance & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_EV36_Status & gIn_FlowSwitch & (gManual_PID_CIPTemp | gP_CIP_Temp_En)) -[11:20:28] Simplificada: (gBlenderCIPMode | gH_CMD_BlenderMaintenance) & (gCIP_Run_Latch | gH_CMD_BlenderMaintenance) & (gH_CMD_BlenderMaintenance | gH_EV36_Status) & (gH_CMD_BlenderMaintenance | gIn_FlowSwitch) & (gBlenderCIPMode | ~gBlenderRun_Latch) & (gCIP_Run_Latch | ~gBlenderRun_Latch) & (gH_EV36_Status | ~gBlenderRun_Latch) & (gIn_FlowSwitch | ~gBlenderRun_Latch) & (gH_CMD_BlenderMaintenance | gManual_PID_CIPTemp | gP_CIP_Temp_En) & (gManual_PID_CIPTemp | gP_CIP_Temp_En | ~gBlenderRun_Latch) -[11:20:29] DNF (forma LAD preferida): (gH_CMD_BlenderMaintenance & ~gBlenderRun_Latch) | (gBlenderCIPMode & gH_CMD_BlenderMaintenance & ~gBlenderRun_Latch) | (gCIP_Run_Latch & gH_CMD_BlenderMaintenance & ~gBlenderRun_Latch) | (gH_CMD_BlenderMaintenance & gH_EV36_Status & ~gBlenderRun_Latch) | (gH_CMD_BlenderMaintenance & gIn_FlowSwitch & ~gBlenderRun_Latch) | (gH_CMD_BlenderMaintenance & gManual_PID_CIPTemp & ~gBlenderRun_Latch) | (gH_CMD_BlenderMaintenance & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & ~gBlenderRun_Latch) | (gBlenderCIPMode & gH_CMD_BlenderMaintenance & gH_EV36_Status & ~gBlenderRun_Latch) | (gBlenderCIPMode & gH_CMD_BlenderMaintenance & gIn_FlowSwitch & ~gBlenderRun_Latch) | (gBlenderCIPMode & gH_CMD_BlenderMaintenance & gManual_PID_CIPTemp & ~gBlenderRun_Latch) | (gBlenderCIPMode & gH_CMD_BlenderMaintenance & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & ~gBlenderRun_Latch) | (gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gIn_FlowSwitch & ~gBlenderRun_Latch) | (gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gManual_PID_CIPTemp & ~gBlenderRun_Latch) | (gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & ~gBlenderRun_Latch) | (gH_CMD_BlenderMaintenance & gH_EV36_Status & gManual_PID_CIPTemp & ~gBlenderRun_Latch) | (gH_CMD_BlenderMaintenance & gH_EV36_Status & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gH_CMD_BlenderMaintenance & gIn_FlowSwitch & gManual_PID_CIPTemp & ~gBlenderRun_Latch) | (gH_CMD_BlenderMaintenance & gIn_FlowSwitch & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gH_CMD_BlenderMaintenance & gManual_PID_CIPTemp & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_EV36_Status & gIn_FlowSwitch & gManual_PID_CIPTemp) | (gBlenderCIPMode & gCIP_Run_Latch & gH_EV36_Status & gIn_FlowSwitch & gP_CIP_Temp_En) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gIn_FlowSwitch & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gManual_PID_CIPTemp & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gBlenderCIPMode & gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & ~gBlenderRun_Latch) | (gBlenderCIPMode & gH_CMD_BlenderMaintenance & gH_EV36_Status & gManual_PID_CIPTemp & ~gBlenderRun_Latch) | (gBlenderCIPMode & gH_CMD_BlenderMaintenance & gH_EV36_Status & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gBlenderCIPMode & gH_CMD_BlenderMaintenance & gIn_FlowSwitch & gManual_PID_CIPTemp & ~gBlenderRun_Latch) | (gBlenderCIPMode & gH_CMD_BlenderMaintenance & gIn_FlowSwitch & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gBlenderCIPMode & gH_CMD_BlenderMaintenance & gManual_PID_CIPTemp & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & ~gBlenderRun_Latch) | (gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & gManual_PID_CIPTemp & ~gBlenderRun_Latch) | (gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gIn_FlowSwitch & gManual_PID_CIPTemp & ~gBlenderRun_Latch) | (gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gIn_FlowSwitch & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gManual_PID_CIPTemp & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & gManual_PID_CIPTemp & ~gBlenderRun_Latch) | (gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gH_CMD_BlenderMaintenance & gH_EV36_Status & gManual_PID_CIPTemp & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gH_CMD_BlenderMaintenance & gIn_FlowSwitch & gManual_PID_CIPTemp & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & gManual_PID_CIPTemp) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & gP_CIP_Temp_En) | (gBlenderCIPMode & gCIP_Run_Latch & gH_EV36_Status & gIn_FlowSwitch & gManual_PID_CIPTemp & gP_CIP_Temp_En) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & gManual_PID_CIPTemp & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gIn_FlowSwitch & gManual_PID_CIPTemp & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gIn_FlowSwitch & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gManual_PID_CIPTemp & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_EV36_Status & gIn_FlowSwitch & gManual_PID_CIPTemp & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_EV36_Status & gIn_FlowSwitch & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gBlenderCIPMode & gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & gManual_PID_CIPTemp & ~gBlenderRun_Latch) | (gBlenderCIPMode & gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gBlenderCIPMode & gH_CMD_BlenderMaintenance & gH_EV36_Status & gManual_PID_CIPTemp & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gBlenderCIPMode & gH_CMD_BlenderMaintenance & gIn_FlowSwitch & gManual_PID_CIPTemp & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & gManual_PID_CIPTemp & ~gBlenderRun_Latch) | (gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & gManual_PID_CIPTemp & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gIn_FlowSwitch & gManual_PID_CIPTemp & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & gManual_PID_CIPTemp & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & gManual_PID_CIPTemp & gP_CIP_Temp_En) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & gManual_PID_CIPTemp & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & gManual_PID_CIPTemp & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gIn_FlowSwitch & gManual_PID_CIPTemp & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_EV36_Status & gIn_FlowSwitch & gManual_PID_CIPTemp & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gBlenderCIPMode & gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & gManual_PID_CIPTemp & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & gManual_PID_CIPTemp & gP_CIP_Temp_En & ~gBlenderRun_Latch) | (gBlenderCIPMode & gCIP_Run_Latch & gH_CMD_BlenderMaintenance & gH_EV36_Status & gIn_FlowSwitch & gManual_PID_CIPTemp & gP_CIP_Temp_En & ~gBlenderRun_Latch) -[11:20:30] Post-procesada: (gBlenderCIPMode | gH_CMD_BlenderMaintenance) & (gCIP_Run_Latch | gH_CMD_BlenderMaintenance) & (gH_CMD_BlenderMaintenance | gH_EV36_Status) & (gH_CMD_BlenderMaintenance | gIn_FlowSwitch) & (gBlenderCIPMode | ~gBlenderRun_Latch) & (gCIP_Run_Latch | ~gBlenderRun_Latch) & (gH_EV36_Status | ~gBlenderRun_Latch) & (gIn_FlowSwitch | ~gBlenderRun_Latch) & (gH_CMD_BlenderMaintenance | gManual_PID_CIPTemp | gP_CIP_Temp_En) & (gManual_PID_CIPTemp | gP_CIP_Temp_En | ~gBlenderRun_Latch) -[11:20:30] Optimizando Red 49: -[11:20:30] Expresión original: gI_ITL_PID_CIPTemp -[11:20:30] Simplificada: gI_ITL_PID_CIPTemp -[11:20:30] DNF (forma LAD preferida): gI_ITL_PID_CIPTemp -[11:20:30] Optimizando Red 51: -[11:20:30] Expresión original: _____ -[11:20:30] Simplificada: _____ -[11:20:30] DNF (forma LAD preferida): _____ -[11:20:30] Optimizando Red 52: -[11:20:30] Expresión original: _FBD_PROGRAM__ -[11:20:30] Simplificada: _FBD_PROGRAM__ -[11:20:30] DNF (forma LAD preferida): _FBD_PROGRAM__ -[11:20:30] Optimizando Red 53: -[11:20:30] Expresión original: CALL_Blender_PID_Ctrl_Loop_SaveValveOut -[11:20:30] Simplificada: CALL_Blender_PID_Ctrl_Loop_SaveValveOut -[11:20:30] DNF (forma LAD preferida): CALL_Blender_PID_Ctrl_Loop_SaveValveOut -[11:20:30] Optimizando Red 50: -[11:20:30] Expresión original: CALL_Blender_PID_Ctrl_Loop_SaveValveOut -[11:20:30] Simplificada: CALL_Blender_PID_Ctrl_Loop_SaveValveOut -[11:20:30] DNF (forma LAD preferida): CALL_Blender_PID_Ctrl_Loop_SaveValveOut -[11:20:30] === Analizando agrupación de condiciones === -[11:20:30] Analizando 53 networks para agrupación: -[11:20:33] Red 1 y Red 3 comparten: 2 símbolos comunes -[11:20:33] Red 1 y Red 13 comparten: 2 símbolos comunes -[11:20:36] Red 3 y Red 19 comparten: 4 símbolos comunes -[11:20:41] Red 4 y Red 22 son complementarias -[11:20:41] Red 4 y Red 26 son complementarias -[11:20:43] Red 5 y Red 22 son complementarias -[11:20:43] Red 5 y Red 26 son complementarias -[11:20:45] Red 6 y Red 22 son complementarias -[11:20:45] Red 6 y Red 26 son complementarias -[11:20:47] Red 7 y Red 13 comparten: 7 símbolos comunes -[11:20:49] Red 7 y Red 19 comparten: 4 símbolos comunes -[11:20:54] Red 7 y Red 33 comparten: 3 símbolos comunes -[11:21:00] Red 7 y Red 48 comparten: 3 símbolos comunes -[11:21:05] Red 10 y Red 22 son complementarias -[11:21:05] Red 10 y Red 26 son complementarias -[11:21:07] Red 11 y Red 22 son complementarias -[11:21:07] Red 11 y Red 26 son complementarias -[11:21:08] Red 12 y Red 22 son complementarias -[11:21:08] Red 12 y Red 26 son complementarias -[11:21:08] Red 13 y Red 19 comparten: 4 símbolos comunes -[11:21:09] Red 13 y Red 33 comparten: 4 símbolos comunes -[11:21:09] Red 13 y Red 48 comparten: 3 símbolos comunes -[11:21:13] Red 16 y Red 22 son complementarias -[11:21:13] Red 16 y Red 26 son complementarias -[11:21:14] Red 17 y Red 22 son complementarias -[11:21:14] Red 17 y Red 26 son complementarias -[11:21:15] Red 18 y Red 22 son complementarias -[11:21:15] Red 18 y Red 26 son complementarias -[11:21:26] Red 19 y Red 33 comparten: 2 símbolos comunes -[11:21:38] Red 19 y Red 48 comparten: 3 símbolos comunes -[11:21:45] Red 22 y Red 25 son complementarias -[11:21:45] Red 22 y Red 29 son complementarias -[11:21:45] Red 22 y Red 31 son complementarias -[11:21:45] Red 22 y Red 32 son complementarias -[11:21:45] Red 22 y Red 35 son complementarias -[11:21:45] Red 22 y Red 36 son complementarias -[11:21:45] Red 22 y Red 37 son complementarias -[11:21:45] Red 22 y Red 40 son complementarias -[11:21:45] Red 22 y Red 41 son complementarias -[11:21:45] Red 22 y Red 42 son complementarias -[11:21:45] Red 22 y Red 45 son complementarias -[11:21:45] Red 22 y Red 46 son complementarias -[11:21:45] Red 22 y Red 47 son complementarias -[11:21:46] Red 25 y Red 26 son complementarias -[11:21:46] Red 26 y Red 29 son complementarias -[11:21:46] Red 26 y Red 31 son complementarias -[11:21:46] Red 26 y Red 32 son complementarias -[11:21:46] Red 26 y Red 35 son complementarias -[11:21:46] Red 26 y Red 36 son complementarias -[11:21:46] Red 26 y Red 37 son complementarias -[11:21:46] Red 26 y Red 40 son complementarias -[11:21:46] Red 26 y Red 41 son complementarias -[11:21:46] Red 26 y Red 42 son complementarias -[11:21:46] Red 26 y Red 45 son complementarias -[11:21:46] Red 26 y Red 46 son complementarias -[11:21:46] Red 26 y Red 47 son complementarias -[11:21:49] Red 33 y Red 48 comparten: 2 símbolos comunes -[11:21:55] Generando código SCL... -[11:21:55] 🔧 GENERANDO CÓDIGO - Red 2 tiene 1 llamadas -[11:21:55] 🔧 Generando 1 llamadas para Red 2 -[11:21:55] 🔧 Procesando: FUNCTION_BLOCK - _FBD_PROGRAM -[11:21:55] 🔧 Código generado: _FBD_PROGRAM(); // Sin info de interfaz -[11:21:55] 🔧 GENERANDO CÓDIGO - Red 23 tiene 1 llamadas -[11:21:55] 🔧 Generando 1 llamadas para Red 23 -[11:21:55] 🔧 Procesando: FUNCTION_BLOCK - _FBD_PROGRAM -[11:21:55] 🔧 Código generado: _FBD_PROGRAM(); // Sin info de interfaz -[11:21:55] 🔧 GENERANDO CÓDIGO - Red 24 tiene 1 llamadas -[11:21:55] 🔧 Generando 1 llamadas para Red 24 -[11:21:55] 🔧 Procesando: FUNCTION_BLOCK - _FBD_PROGRAM -[11:21:55] 🔧 Código generado: _FBD_PROGRAM(); // Sin info de interfaz -[11:21:55] 🔧 GENERANDO CÓDIGO - Red 30 tiene 1 llamadas -[11:21:55] 🔧 Generando 1 llamadas para Red 30 -[11:21:55] 🔧 Procesando: FUNCTION_BLOCK - _FBD_PROGRAM -[11:21:55] 🔧 Código generado: _FBD_PROGRAM(); // Sin info de interfaz -[11:21:55] 🔧 GENERANDO CÓDIGO - Red 51 tiene 1 llamadas -[11:21:55] 🔧 Generando 1 llamadas para Red 51 -[11:21:55] 🔧 Procesando: FUNCTION_BLOCK - ??? -[11:21:55] 🔧 Código generado: ???(); // Sin info de interfaz -[11:21:55] 🔧 GENERANDO CÓDIGO - Red 52 tiene 1 llamadas -[11:21:55] 🔧 Generando 1 llamadas para Red 52 -[11:21:55] 🔧 Procesando: FUNCTION_BLOCK - _FBD_PROGRAM -[11:21:55] 🔧 Código generado: _FBD_PROGRAM(); // Sin info de interfaz -[11:21:55] 🔧 GENERANDO CÓDIGO - Red 53 tiene 1 llamadas -[11:21:55] 🔧 Generando 1 llamadas para Red 53 -[11:21:55] 🔧 Procesando: ACTION_CALL - Blender_PID_Ctrl_Loop.SaveValveOut -[11:21:55] 🔧 Código generado: (* Llamada no reconocida: ACTION_CALL - Blender_PID_Ctrl_Loop.SaveValveOut *) -[11:21:55] 🎯 Generando llamada a función con interfaz conocida: ReadPeripherial -[11:21:55] Parámetros: i_Periferial := AI_CIPHeaterTemperature, i_MaxAnalog := 100.0, i_MinAnalog := 0.0, i_PerMin := 0, i_PerMax := gAnalogMaxValue -[11:21:55] Salida: mRealTemp -[11:21:55] 🎯 Generando llamada a función con interfaz conocida: WritePeripherial -[11:21:55] Parámetros: i_Analog := gIn_C1_Conductivity_Caustic, i_MaxAnalog := 200.0, i_MinAnalog := 0.0, i_PerMin := 0, i_PerMax := gAnalogMaxValue -[11:21:55] Salida: AO_CIPCausticCond -[11:21:55] ✓ Guardado en: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\Analisis\TwinCat/scl\BLENDER_PID_CTRL_LOOP.scl -[11:21:55] ============================================================ -[11:21:55] SALTANDO: BLENDER_PROCEDURECALL.EXP - Ya existe BLENDER_PROCEDURECALL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: BLENDER_RUNCONTROL.EXP - Ya existe BLENDER_RUNCONTROL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: BLENDER_VARIABLES.EXP - Ya existe BLENDER_VARIABLES.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: BLENDFILLRECSTRUCT.EXP - Ya existe BLENDFILLRECSTRUCT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: BLENDFILLSENDSTRUCT.EXP - Ya existe BLENDFILLSENDSTRUCT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: BLENDFILLSYSTEM_STARTUP.EXP - Ya existe BLENDFILLSYSTEM_STARTUP.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: BRIXTRACKING.EXP - Ya existe BRIXTRACKING.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: BYTES_TO_DWORD.EXP - Ya existe BYTES_TO_DWORD.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: BYTES_TO_WORD.EXP - Ya existe BYTES_TO_WORD.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CALC_INJPRESS.EXP - Ya existe CALC_INJPRESS.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CARBOWATERLINE.EXP - Ya existe CARBOWATERLINE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CENTRALCIP_CTRL.EXP - Ya existe CENTRALCIP_CTRL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CETRIFUGAL_HEAD.EXP - Ya existe CETRIFUGAL_HEAD.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CIPRECEIVESTRUCT.EXP - Ya existe CIPRECEIVESTRUCT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CIPSENDSTRUCT.EXP - Ya existe CIPSENDSTRUCT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CIP_CVQ.EXP - Ya existe CIP_CVQ.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CIP_LINK_TYPE.EXP - Ya existe CIP_LINK_TYPE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CIP_LIST_ELEMENT.EXP - Ya existe CIP_LIST_ELEMENT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CIP_MAIN.EXP - Ya existe CIP_MAIN.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CIP_PROGRAM_VARIABLES.EXP - Ya existe CIP_PROGRAM_VARIABLES.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CIP_SIMPLE_TYPE.EXP - Ya existe CIP_SIMPLE_TYPE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CIP_STEP_TYPE.EXP - Ya existe CIP_STEP_TYPE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CIP_WAITEVENT_TYPE.EXP - Ya existe CIP_WAITEVENT_TYPE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CLEANBOOLARRAY.EXP - Ya existe CLEANBOOLARRAY.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CLOCK_SIGNAL.EXP - Ya existe CLOCK_SIGNAL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CLOCK_VARIABLES.EXP - Ya existe CLOCK_VARIABLES.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CO2EQPRESS.EXP - Ya existe CO2EQPRESS.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CO2INJPRESSURE.EXP - Ya existe CO2INJPRESSURE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CO2_SOLUBILITY.EXP - Ya existe CO2_SOLUBILITY.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CONVERTREAL.EXP - Ya existe CONVERTREAL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CVQ_0_6_PERC.EXP - Ya existe CVQ_0_6_PERC.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: CVQ_1P7_8_PERC.EXP - Ya existe CVQ_1P7_8_PERC.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: DATA_FROM_CIP.EXP - Ya existe DATA_FROM_CIP.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: DATA_TO_CIP.EXP - Ya existe DATA_TO_CIP.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: DEAIRCO2TEMPCOMP.EXP - Ya existe DEAIRCO2TEMPCOMP.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: DEAIREATIONVALVE.EXP - Ya existe DEAIREATIONVALVE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: DEAIREATOR_STARTUP.EXP - Ya existe DEAIREATOR_STARTUP.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: DELAY.EXP - Ya existe DELAY.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: DELTAP.EXP - Ya existe DELTAP.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: DENSIMETER_CALIBRATION.EXP - Ya existe DENSIMETER_CALIBRATION.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: DERIVE.EXP - Ya existe DERIVE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: DEVICENET_VARIABLES.EXP - Ya existe DEVICENET_VARIABLES.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: DWORD_TO_BYTES.EXP - Ya existe DWORD_TO_BYTES.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: EXEC_SIMPLE_CIP.EXP - Ya existe EXEC_SIMPLE_CIP.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: FASTRINSE.EXP - Ya existe FASTRINSE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: FB41_PIDCONTROLLER.EXP - Ya existe FB41_PIDCONTROLLER.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: FC_CONTROL_WORD.EXP - Ya existe FC_CONTROL_WORD.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: FC_STATUS_WORD.EXP - Ya existe FC_STATUS_WORD.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: FEEDFORWARD.EXP - Ya existe FEEDFORWARD.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: FILLERHEAD.EXP - Ya existe FILLERHEAD.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: FILLERRECEIVESTRUCT.EXP - Ya existe FILLERRECEIVESTRUCT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: FILLERRINSE.EXP - Ya existe FILLERRINSE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: FILLERRINSETANK_CTRL.EXP - Ya existe FILLERRINSETANK_CTRL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: FILLERSENDSTRUCT.EXP - Ya existe FILLERSENDSTRUCT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: FILLER_CONTROL.EXP - Ya existe FILLER_CONTROL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: FILLINGTIME.EXP - Ya existe FILLINGTIME.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: FIRSTPRODUCTION.EXP - Ya existe FIRSTPRODUCTION.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: FLOW_TO_PRESS_LOSS.EXP - Ya existe FLOW_TO_PRESS_LOSS.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: FREQ_TO_MMH2O.EXP - Ya existe FREQ_TO_MMH2O.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: FRICTIONLOSS.EXP - Ya existe FRICTIONLOSS.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: GETPRODBRIXCO2_FROMANALOGINPUT.EXP - Ya existe GETPRODBRIXCO2_FROMANALOGINPUT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: GETPRODO2_FROMANALOGINPUT.EXP - Ya existe GETPRODO2_FROMANALOGINPUT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: GLOBAL_ALARMS.EXP - Ya existe GLOBAL_ALARMS.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: GLOBAL_VARIABLES_IN_OUT.EXP - Ya existe GLOBAL_VARIABLES_IN_OUT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: HMI_ALARMS.EXP - Ya existe HMI_ALARMS.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: HMI_BLENDER_PARAMETERS.EXP - Ya existe HMI_BLENDER_PARAMETERS.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: HMI_IO_SHOWING.EXP - Ya existe HMI_IO_SHOWING.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: HMI_LOCAL_CIP_VARIABLES.EXP - Ya existe HMI_LOCAL_CIP_VARIABLES.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: HMI_SERVICE.EXP - Ya existe HMI_SERVICE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: HMI_VARIABLES_CMD.EXP - Ya existe HMI_VARIABLES_CMD.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: HMI_VARIABLES_STATUS.EXP - Ya existe HMI_VARIABLES_STATUS.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: INPUT.EXP - Ya existe INPUT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: INPUT_CIP_SIGNALS.EXP - Ya existe INPUT_CIP_SIGNALS.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: INPUT_SIGNAL.EXP - Ya existe INPUT_SIGNAL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: INTEGRAL.EXP - Ya existe INTEGRAL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: LOCALCIP_CTRL.EXP - Ya existe LOCALCIP_CTRL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: LOWPASSFILTER.EXP - Ya existe LOWPASSFILTER.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: LOWPASSFILTEROPT.EXP - Ya existe LOWPASSFILTEROPT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MASELLI.EXP - Ya existe MASELLI.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MASELLIOPTO_TYPE.EXP - Ya existe MASELLIOPTO_TYPE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MASELLIUC05_TYPE.EXP - Ya existe MASELLIUC05_TYPE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MASELLIUR22_TYPE.EXP - Ya existe MASELLIUR22_TYPE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MASELLI_CONTROL.EXP - Ya existe MASELLI_CONTROL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MAXCARBOCO2_VOL.EXP - Ya existe MAXCARBOCO2_VOL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MESSAGESCROLL.EXP - Ya existe MESSAGESCROLL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MESSAGE_SCROLL.EXP - Ya existe MESSAGE_SCROLL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MFMANALOG_VALUES.EXP - Ya existe MFMANALOG_VALUES.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MFM_REAL_STRUCT.EXP - Ya existe MFM_REAL_STRUCT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MMH2O_TO_FREQ.EXP - Ya existe MMH2O_TO_FREQ.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MODVALVEFAULT.EXP - Ya existe MODVALVEFAULT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MOVEARRAY.EXP - Ya existe MOVEARRAY.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MPDS1000.EXP - Ya existe MPDS1000.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MPDS1000_CONTROL.EXP - Ya existe MPDS1000_CONTROL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MPDS1000_TYPE.EXP - Ya existe MPDS1000_TYPE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MPDS2000.EXP - Ya existe MPDS2000.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MPDS2000_CONTROL.EXP - Ya existe MPDS2000_CONTROL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MPDS2000_TYPE.EXP - Ya existe MPDS2000_TYPE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MPDS_PA_CONTROL.EXP - Ya existe MPDS_PA_CONTROL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MSE_SLOPE.EXP - Ya existe MSE_SLOPE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: MYVAR.EXP - Ya existe MYVAR.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: OR_ARRAYBOOL.EXP - Ya existe OR_ARRAYBOOL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: OUTPUT.EXP - Ya existe OUTPUT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PARAMETERNAMETYPE.EXP - Ya existe PARAMETERNAMETYPE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PA_MPDS.EXP - Ya existe PA_MPDS.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PERIPHERIAL.EXP - Ya existe PERIPHERIAL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PID_VARIABLES.EXP - Ya existe PID_VARIABLES.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PLC CONFIGURATION.EXP - Ya existe PLC CONFIGURATION.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PNEUMATIC_VALVE_CTRL.EXP - Ya existe PNEUMATIC_VALVE_CTRL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PPM_O2.EXP - Ya existe PPM_O2.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PRODBRIXRECOVERY.EXP - Ya existe PRODBRIXRECOVERY.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PRODTANK_DRAIN.EXP - Ya existe PRODTANK_DRAIN.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PRODTANK_RUNOUT.EXP - Ya existe PRODTANK_RUNOUT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PRODUCTAVAILABLE.EXP - Ya existe PRODUCTAVAILABLE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PRODUCTION_VARIABLES.EXP - Ya existe PRODUCTION_VARIABLES.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PRODUCTLITERINTANK.EXP - Ya existe PRODUCTLITERINTANK.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PRODUCTPIPEDRAIN.EXP - Ya existe PRODUCTPIPEDRAIN.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PRODUCTPIPERUNOUT.EXP - Ya existe PRODUCTPIPERUNOUT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PRODUCTQUALITY.EXP - Ya existe PRODUCTQUALITY.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PRODUCTTANKBRIX.EXP - Ya existe PRODUCTTANKBRIX.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PRODUCTTANK_PRESSCTRL.EXP - Ya existe PRODUCTTANK_PRESSCTRL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PROFIBUS_DATA.EXP - Ya existe PROFIBUS_DATA.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PROFIBUS_NETWORK.EXP - Ya existe PROFIBUS_NETWORK.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PROFIBUS_VARIABLES.EXP - Ya existe PROFIBUS_VARIABLES.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PULSEPRESSURE.EXP - Ya existe PULSEPRESSURE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: PUMPSCONTROL.EXP - Ya existe PUMPSCONTROL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: READANALOGIN.EXP - Ya existe READANALOGIN.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: READPERIPHERIAL.EXP - Ya existe READPERIPHERIAL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SAFETIES.EXP - Ya existe SAFETIES.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SELCHECKBRIXSOURCE.EXP - Ya existe SELCHECKBRIXSOURCE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SIGNALS_INTEFACE.EXP - Ya existe SIGNALS_INTEFACE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SIGNAL_GEN.EXP - Ya existe SIGNAL_GEN.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SINUSOIDAL_SIGNAL.EXP - Ya existe SINUSOIDAL_SIGNAL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SLEWLIMIT.EXP - Ya existe SLEWLIMIT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SLIM_BLOCK.EXP - Ya existe SLIM_BLOCK.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SLIM_VARIABLES.EXP - Ya existe SLIM_VARIABLES.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SOFTNET_VARIABLES.EXP - Ya existe SOFTNET_VARIABLES.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SPEEDADJUST.EXP - Ya existe SPEEDADJUST.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SP_AND_P_VARIABLES.EXP - Ya existe SP_AND_P_VARIABLES.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: STANDARD.LIB_5.6.98 09_39_02.EXP - Ya existe STANDARD.LIB_5.6.98 09_39_02.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: STATISTICALANALISYS.EXP - Ya existe STATISTICALANALISYS.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SYRBRIX_AUTOCORRECTION.EXP - Ya existe SYRBRIX_AUTOCORRECTION.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SYRUPDENSITY.EXP - Ya existe SYRUPDENSITY.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SYRUPROOMCTRL.EXP - Ya existe SYRUPROOMCTRL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SYRUP_LINE_MFM_PREP.EXP - Ya existe SYRUP_LINE_MFM_PREP.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SYRUP_MFM_STARTUP.EXP - Ya existe SYRUP_MFM_STARTUP.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SYRUP_RUNOUT.EXP - Ya existe SYRUP_RUNOUT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SYSTEMRUNOUT_VARIABLES.EXP - Ya existe SYSTEMRUNOUT_VARIABLES.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SYSTEM_DATAS.EXP - Ya existe SYSTEM_DATAS.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: SYSTEM_RUN_OUT.EXP - Ya existe SYSTEM_RUN_OUT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: TANKLEVEL.EXP - Ya existe TANKLEVEL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: TANKLEVELTOHEIGHT.EXP - Ya existe TANKLEVELTOHEIGHT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: TASK CONFIGURATION.EXP - Ya existe TASK CONFIGURATION.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: TCPLCUTILITIES.LIB_11.12.01 09_39_02.EXP - Ya existe TCPLCUTILITIES.LIB_11.12.01 09_39_02.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: TCSYSTEM.LIB_16.9.02 09_39_02.EXP - Ya existe TCSYSTEM.LIB_16.9.02 09_39_02.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: TESTFLOWMETERS.EXP - Ya existe TESTFLOWMETERS.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: UDP_STRUCT.EXP - Ya existe UDP_STRUCT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: UV_LAMP.EXP - Ya existe UV_LAMP.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: VACUUMCTRL.EXP - Ya existe VACUUMCTRL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: VALVEFAULT.EXP - Ya existe VALVEFAULT.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: VALVEFLOW.EXP - Ya existe VALVEFLOW.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: VARIABLE_CONFIGURATION.EXP - Ya existe VARIABLE_CONFIGURATION.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: VOID.EXP - Ya existe VOID.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: WATERDENSITY.EXP - Ya existe WATERDENSITY.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: WORD_TO_BYTES.EXP - Ya existe WORD_TO_BYTES.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: WRITEPERIPHERIAL.EXP - Ya existe WRITEPERIPHERIAL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: _BLENDER_CTRL_MAIN.EXP - Ya existe _BLENDER_CTRL_MAIN.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: _BLENDER_PID_MAIN.EXP - Ya existe _BLENDER_PID_MAIN.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: _BOOLARRAY_TO_DWORD.EXP - Ya existe _BOOLARRAY_TO_DWORD.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: _BOOLARRAY_TO_WORD.EXP - Ya existe _BOOLARRAY_TO_WORD.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: _DWORD_SWAP_BYTEARRAY.EXP - Ya existe _DWORD_SWAP_BYTEARRAY.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: _DWORD_TO_BOOLARRAY.EXP - Ya existe _DWORD_TO_BOOLARRAY.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: _FILLING_HEAD_PID_CTRL.EXP - Ya existe _FILLING_HEAD_PID_CTRL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: _PUMPCONTROL.EXP - Ya existe _PUMPCONTROL.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: _STEPMOVE.EXP - Ya existe _STEPMOVE.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] SALTANDO: _WORD_TO_BOOLARRAY.EXP - Ya existe _WORD_TO_BOOLARRAY.scl -[11:21:55] (usa force_regenerate: true en configuración para forzar regeneración) -[11:21:55] ============================================================ -[11:21:55] RESUMEN DE CONVERSIÓN: -[11:21:55] 📋 Funciones registradas: 42 -[11:21:55] 📋 Function Blocks registrados: 0 -[11:21:55] ✓ Exitosas: 183 -[11:21:55] ✗ Fallidas: 0 -[11:21:55] 📁 Directorio salida: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\Analisis\TwinCat/scl -[11:21:55] ✓ Conversión masiva completada! -[11:21:55] Ejecución de x1_lad_converter.py finalizada (success). Duración: 0:01:29.405107. -[11:21:55] Log completo guardado en: D:\Proyectos\Scripts\ParamManagerScripts\backend\script_groups\TwinCat\log_x1_lad_converter.txt +[12:16:08] Iniciando ejecución de x1.5_full_io_documentation.py en C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\Analisis... +[12:16:09] 🚀 Iniciando documentación completa de IOs de TwinCAT +[12:16:09] ================================================================================ +[12:16:09] 📁 Directorio de trabajo: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\Analisis +[12:16:09] 📁 Directorio de resultados: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\Analisis\TwinCat +[12:16:09] 🔍 Escaneando definiciones TwinCAT activas en: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\Analisis\TwinCat/scl +[12:16:09] ✅ Encontradas 141 definiciones de IO activas. +[12:16:09] 🔍 Buscando usos de variables definidas en: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\Analisis\TwinCat/scl +[12:16:09] 📄 Analizando uso en: ADSVARREAD.scl +[12:16:09] 📄 Analizando uso en: ADSVARTRANSLATE.scl +[12:16:09] 📄 Analizando uso en: ADSVARWRITE.scl +[12:16:09] 📄 Analizando uso en: AMMONIACTRL.scl +[12:16:09] 📄 Analizando uso en: ARRAYTOREAL.scl +[12:16:09] 📄 Analizando uso en: BLENDERPROCEDURE_VARIABLES.scl +[12:16:09] 📄 Analizando uso en: BLENDERRINSE.scl +[12:16:09] 📄 Analizando uso en: BLENDER_PID_CTRL_LOOP.scl +[12:16:10] 📄 Analizando uso en: BLENDER_PROCEDURECALL.scl +[12:16:10] 📄 Analizando uso en: BLENDER_RUNCONTROL.scl +[12:16:10] 📄 Analizando uso en: BLENDER_VARIABLES.scl +[12:16:10] 📄 Analizando uso en: BLENDFILLRECSTRUCT.scl +[12:16:10] 📄 Analizando uso en: BLENDFILLSENDSTRUCT.scl +[12:16:10] 📄 Analizando uso en: BLENDFILLSYSTEM_STARTUP.scl +[12:16:10] 📄 Analizando uso en: BRIXTRACKING.scl +[12:16:10] 📄 Analizando uso en: BYTES_TO_DWORD.scl +[12:16:10] 📄 Analizando uso en: BYTES_TO_WORD.scl +[12:16:10] 📄 Analizando uso en: CALC_INJPRESS.scl +[12:16:10] 📄 Analizando uso en: CARBOWATERLINE.scl +[12:16:10] 📄 Analizando uso en: CENTRALCIP_CTRL.scl +[12:16:10] 📄 Analizando uso en: CETRIFUGAL_HEAD.scl +[12:16:10] 📄 Analizando uso en: CIPRECEIVESTRUCT.scl +[12:16:10] 📄 Analizando uso en: CIPSENDSTRUCT.scl +[12:16:10] 📄 Analizando uso en: CIP_CVQ.scl +[12:16:10] 📄 Analizando uso en: CIP_LINK_TYPE.scl +[12:16:10] 📄 Analizando uso en: CIP_LIST_ELEMENT.scl +[12:16:10] 📄 Analizando uso en: CIP_MAIN.scl +[12:16:10] 📄 Analizando uso en: CIP_PROGRAM_VARIABLES.scl +[12:16:10] 📄 Analizando uso en: CIP_SIMPLE_TYPE.scl +[12:16:10] 📄 Analizando uso en: CIP_STEP_TYPE.scl +[12:16:10] 📄 Analizando uso en: CIP_WAITEVENT_TYPE.scl +[12:16:10] 📄 Analizando uso en: CLEANBOOLARRAY.scl +[12:16:10] 📄 Analizando uso en: CLOCK_SIGNAL.scl +[12:16:10] 📄 Analizando uso en: CLOCK_VARIABLES.scl +[12:16:10] 📄 Analizando uso en: CO2EQPRESS.scl +[12:16:10] 📄 Analizando uso en: CO2INJPRESSURE.scl +[12:16:10] 📄 Analizando uso en: CO2_SOLUBILITY.scl +[12:16:10] 📄 Analizando uso en: CONVERTREAL.scl +[12:16:10] 📄 Analizando uso en: CVQ_0_6_PERC.scl +[12:16:11] 📄 Analizando uso en: CVQ_1P7_8_PERC.scl +[12:16:11] 📄 Analizando uso en: DATA_FROM_CIP.scl +[12:16:11] 📄 Analizando uso en: DATA_TO_CIP.scl +[12:16:11] 📄 Analizando uso en: DEAIRCO2TEMPCOMP.scl +[12:16:11] 📄 Analizando uso en: DEAIREATIONVALVE.scl +[12:16:11] 📄 Analizando uso en: DEAIREATOR_STARTUP.scl +[12:16:11] 📄 Analizando uso en: DELAY.scl +[12:16:11] 📄 Analizando uso en: DELTAP.scl +[12:16:11] 📄 Analizando uso en: DENSIMETER_CALIBRATION.scl +[12:16:11] 📄 Analizando uso en: DERIVE.scl +[12:16:11] 📄 Analizando uso en: DEVICENET_VARIABLES.scl +[12:16:11] 📄 Analizando uso en: DWORD_TO_BYTES.scl +[12:16:11] 📄 Analizando uso en: EXEC_SIMPLE_CIP.scl +[12:16:11] 📄 Analizando uso en: FASTRINSE.scl +[12:16:11] 📄 Analizando uso en: FB41_PIDCONTROLLER.scl +[12:16:11] 📄 Analizando uso en: FC_CONTROL_WORD.scl +[12:16:11] 📄 Analizando uso en: FC_STATUS_WORD.scl +[12:16:11] 📄 Analizando uso en: FEEDFORWARD.scl +[12:16:11] 📄 Analizando uso en: FILLERHEAD.scl +[12:16:11] 📄 Analizando uso en: FILLERRECEIVESTRUCT.scl +[12:16:11] 📄 Analizando uso en: FILLERRINSE.scl +[12:16:11] 📄 Analizando uso en: FILLERRINSETANK_CTRL.scl +[12:16:11] 📄 Analizando uso en: FILLERSENDSTRUCT.scl +[12:16:11] 📄 Analizando uso en: FILLER_CONTROL.scl +[12:16:11] 📄 Analizando uso en: FILLINGTIME.scl +[12:16:11] 📄 Analizando uso en: FIRSTPRODUCTION.scl +[12:16:11] 📄 Analizando uso en: FLOW_TO_PRESS_LOSS.scl +[12:16:11] 📄 Analizando uso en: FREQ_TO_MMH2O.scl +[12:16:11] 📄 Analizando uso en: FRICTIONLOSS.scl +[12:16:11] 📄 Analizando uso en: GETPRODBRIXCO2_FROMANALOGINPUT.scl +[12:16:11] 📄 Analizando uso en: GETPRODO2_FROMANALOGINPUT.scl +[12:16:12] 📄 Analizando uso en: GLOBAL_ALARMS.scl +[12:16:12] 📄 Analizando uso en: GLOBAL_VARIABLES_IN_OUT.scl +[12:16:12] 📄 Analizando uso en: HMI_ALARMS.scl +[12:16:12] 📄 Analizando uso en: HMI_BLENDER_PARAMETERS.scl +[12:16:12] 📄 Analizando uso en: HMI_IO_SHOWING.scl +[12:16:12] 📄 Analizando uso en: HMI_LOCAL_CIP_VARIABLES.scl +[12:16:12] 📄 Analizando uso en: HMI_SERVICE.scl +[12:16:12] 📄 Analizando uso en: HMI_VARIABLES_CMD.scl +[12:16:12] 📄 Analizando uso en: HMI_VARIABLES_STATUS.scl +[12:16:12] 📄 Analizando uso en: INPUT.scl +[12:16:12] 📄 Analizando uso en: INPUT_CIP_SIGNALS.scl +[12:16:12] 📄 Analizando uso en: INPUT_SIGNAL.scl +[12:16:12] 📄 Analizando uso en: INTEGRAL.scl +[12:16:12] 📄 Analizando uso en: LOCALCIP_CTRL.scl +[12:16:12] 📄 Analizando uso en: LOWPASSFILTER.scl +[12:16:12] 📄 Analizando uso en: LOWPASSFILTEROPT.scl +[12:16:12] 📄 Analizando uso en: MASELLI.scl +[12:16:12] 📄 Analizando uso en: MASELLIOPTO_TYPE.scl +[12:16:12] 📄 Analizando uso en: MASELLIUC05_TYPE.scl +[12:16:12] 📄 Analizando uso en: MASELLIUR22_TYPE.scl +[12:16:12] 📄 Analizando uso en: MASELLI_CONTROL.scl +[12:16:12] 📄 Analizando uso en: MAXCARBOCO2_VOL.scl +[12:16:13] 📄 Analizando uso en: MESSAGESCROLL.scl +[12:16:13] 📄 Analizando uso en: MESSAGE_SCROLL.scl +[12:16:13] 📄 Analizando uso en: MFMANALOG_VALUES.scl +[12:16:13] 📄 Analizando uso en: MFM_REAL_STRUCT.scl +[12:16:13] 📄 Analizando uso en: MMH2O_TO_FREQ.scl +[12:16:13] 📄 Analizando uso en: MODVALVEFAULT.scl +[12:16:13] 📄 Analizando uso en: MOVEARRAY.scl +[12:16:13] 📄 Analizando uso en: MPDS1000.scl +[12:16:13] 📄 Analizando uso en: MPDS1000_CONTROL.scl +[12:16:13] 📄 Analizando uso en: MPDS1000_TYPE.scl +[12:16:13] 📄 Analizando uso en: MPDS2000.scl +[12:16:13] 📄 Analizando uso en: MPDS2000_CONTROL.scl +[12:16:13] 📄 Analizando uso en: MPDS2000_TYPE.scl +[12:16:13] 📄 Analizando uso en: MPDS_PA_CONTROL.scl +[12:16:13] 📄 Analizando uso en: MSE_SLOPE.scl +[12:16:13] 📄 Analizando uso en: MYVAR.scl +[12:16:13] 📄 Analizando uso en: OR_ARRAYBOOL.scl +[12:16:13] 📄 Analizando uso en: OUTPUT.scl +[12:16:13] 📄 Analizando uso en: PARAMETERNAMETYPE.scl +[12:16:13] 📄 Analizando uso en: PA_MPDS.scl +[12:16:13] 📄 Analizando uso en: PERIPHERIAL.scl +[12:16:13] 📄 Analizando uso en: PID_VARIABLES.scl +[12:16:13] 📄 Analizando uso en: PLC CONFIGURATION.scl +[12:16:13] 📄 Analizando uso en: PNEUMATIC_VALVE_CTRL.scl +[12:16:13] 📄 Analizando uso en: PPM_O2.scl +[12:16:13] 📄 Analizando uso en: PRODBRIXRECOVERY.scl +[12:16:13] 📄 Analizando uso en: PRODTANK_DRAIN.scl +[12:16:14] 📄 Analizando uso en: PRODTANK_RUNOUT.scl +[12:16:14] 📄 Analizando uso en: PRODUCTAVAILABLE.scl +[12:16:14] 📄 Analizando uso en: PRODUCTION_VARIABLES.scl +[12:16:14] 📄 Analizando uso en: PRODUCTLITERINTANK.scl +[12:16:14] 📄 Analizando uso en: PRODUCTPIPEDRAIN.scl +[12:16:14] 📄 Analizando uso en: PRODUCTPIPERUNOUT.scl +[12:16:14] 📄 Analizando uso en: PRODUCTQUALITY.scl +[12:16:14] 📄 Analizando uso en: PRODUCTTANKBRIX.scl +[12:16:14] 📄 Analizando uso en: PRODUCTTANK_PRESSCTRL.scl +[12:16:14] 📄 Analizando uso en: PROFIBUS_DATA.scl +[12:16:14] 📄 Analizando uso en: PROFIBUS_NETWORK.scl +[12:16:14] 📄 Analizando uso en: PROFIBUS_VARIABLES.scl +[12:16:14] 📄 Analizando uso en: PULSEPRESSURE.scl +[12:16:14] 📄 Analizando uso en: PUMPSCONTROL.scl +[12:16:14] 📄 Analizando uso en: READANALOGIN.scl +[12:16:14] 📄 Analizando uso en: READPERIPHERIAL.scl +[12:16:14] 📄 Analizando uso en: SAFETIES.scl +[12:16:14] 📄 Analizando uso en: SELCHECKBRIXSOURCE.scl +[12:16:14] 📄 Analizando uso en: SIGNALS_INTEFACE.scl +[12:16:14] 📄 Analizando uso en: SIGNAL_GEN.scl +[12:16:14] 📄 Analizando uso en: SINUSOIDAL_SIGNAL.scl +[12:16:14] 📄 Analizando uso en: SLEWLIMIT.scl +[12:16:14] 📄 Analizando uso en: SLIM_BLOCK.scl +[12:16:14] 📄 Analizando uso en: SLIM_VARIABLES.scl +[12:16:14] 📄 Analizando uso en: SOFTNET_VARIABLES.scl +[12:16:14] 📄 Analizando uso en: SPEEDADJUST.scl +[12:16:14] 📄 Analizando uso en: SP_AND_P_VARIABLES.scl +[12:16:15] 📄 Analizando uso en: STANDARD.LIB_5.6.98 09_39_02.scl +[12:16:15] 📄 Analizando uso en: STATISTICALANALISYS.scl +[12:16:15] 📄 Analizando uso en: SYRBRIX_AUTOCORRECTION.scl +[12:16:15] 📄 Analizando uso en: SYRUPDENSITY.scl +[12:16:15] 📄 Analizando uso en: SYRUPROOMCTRL.scl +[12:16:15] 📄 Analizando uso en: SYRUP_LINE_MFM_PREP.scl +[12:16:15] 📄 Analizando uso en: SYRUP_MFM_STARTUP.scl +[12:16:15] 📄 Analizando uso en: SYRUP_RUNOUT.scl +[12:16:15] 📄 Analizando uso en: SYSTEMRUNOUT_VARIABLES.scl +[12:16:15] 📄 Analizando uso en: SYSTEM_DATAS.scl +[12:16:15] 📄 Analizando uso en: SYSTEM_RUN_OUT.scl +[12:16:15] 📄 Analizando uso en: TANKLEVEL.scl +[12:16:15] 📄 Analizando uso en: TANKLEVELTOHEIGHT.scl +[12:16:15] 📄 Analizando uso en: TASK CONFIGURATION.scl +[12:16:15] 📄 Analizando uso en: TCPLCUTILITIES.LIB_11.12.01 09_39_02.scl +[12:16:15] 📄 Analizando uso en: TCSYSTEM.LIB_16.9.02 09_39_02.scl +[12:16:15] 📄 Analizando uso en: TESTFLOWMETERS.scl +[12:16:15] 📄 Analizando uso en: UDP_STRUCT.scl +[12:16:15] 📄 Analizando uso en: UV_LAMP.scl +[12:16:15] 📄 Analizando uso en: VACUUMCTRL.scl +[12:16:15] 📄 Analizando uso en: VALVEFAULT.scl +[12:16:15] 📄 Analizando uso en: VALVEFLOW.scl +[12:16:15] 📄 Analizando uso en: VARIABLE_CONFIGURATION.scl +[12:16:15] 📄 Analizando uso en: VOID.scl +[12:16:15] 📄 Analizando uso en: WATERDENSITY.scl +[12:16:15] 📄 Analizando uso en: WORD_TO_BYTES.scl +[12:16:15] 📄 Analizando uso en: WRITEPERIPHERIAL.scl +[12:16:15] 📄 Analizando uso en: _BLENDER_CTRL_MAIN.scl +[12:16:16] 📄 Analizando uso en: _BLENDER_PID_MAIN.scl +[12:16:16] 📄 Analizando uso en: _BOOLARRAY_TO_DWORD.scl +[12:16:16] 📄 Analizando uso en: _BOOLARRAY_TO_WORD.scl +[12:16:16] 📄 Analizando uso en: _DWORD_SWAP_BYTEARRAY.scl +[12:16:16] 📄 Analizando uso en: _DWORD_TO_BOOLARRAY.scl +[12:16:16] 📄 Analizando uso en: _FILLING_HEAD_PID_CTRL.scl +[12:16:16] 📄 Analizando uso en: _PUMPCONTROL.scl +[12:16:16] 📄 Analizando uso en: _STEPMOVE.scl +[12:16:16] 📄 Analizando uso en: _WORD_TO_BOOLARRAY.scl +[12:16:16] ✅ Encontrados 224 usos para 83 variables distintas. +[12:16:16] 📄 Generando tabla resumen: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\Analisis\TwinCat\TwinCAT_Full_IO_List.md +[12:16:16] ✅ Tabla resumen generada exitosamente. +[12:16:16] 📄 Generando reporte de snippets: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\Analisis\TwinCat\TwinCAT_IO_Usage_Snippets.md +[12:16:16] Generando snippets para 83 variables con uso... +[12:16:16] 📝 Procesando 1/83: AI_ProductTankLevel (1 usos) +[12:16:16] 📝 Procesando 2/83: AI_ProductTankPressure (1 usos) +[12:16:16] 📝 Procesando 3/83: AI_DeaireationValve_VEP4 (2 usos) +[12:16:16] 📝 Procesando 4/83: AI_ProdTankPressureValve_VEP1 (1 usos) +[12:16:16] 📝 Procesando 5/83: AI_ProductTemperature (1 usos) +[12:16:16] 📝 Procesando 6/83: AI_SyrupTankLevel (1 usos) +[12:16:16] 📝 Procesando 7/83: AI_DeairWaterTemperature (1 usos) +[12:16:16] 📝 Procesando 8/83: AI_InjectionPressure (2 usos) +[12:16:16] 📝 Procesando 9/83: gProduct_VFC_MainActualValue (1 usos) +[12:16:16] 📝 Procesando 10/83: DI_AuxVoltage_On (1 usos) +[12:16:16] 📝 Procesando 11/83: DI_Reset_Horn_Btn (2 usos) +[12:16:16] 📝 Procesando 12/83: DI_Reset_Btn (79 usos) +[12:16:16] 📝 Procesando 13/83: DI_Blender_Stop_Btn (3 usos) +[12:16:16] 📝 Procesando 14/83: DI_Blender_Start_Btn (1 usos) +[12:16:16] 📝 Procesando 15/83: DI_PowerSuppliesOk (3 usos) +[12:16:16] 📝 Procesando 16/83: DI_Min_Deair_Level (1 usos) +[12:16:16] 📝 Procesando 17/83: DI_ProdTankEmpty (1 usos) +[12:16:16] 📝 Procesando 18/83: DI_BatteryNotReady (1 usos) +[12:16:16] 📝 Procesando 19/83: DI_VM1_Water_Valve_Closed (1 usos) +[12:16:16] 📝 Procesando 20/83: DI_VM2_Syrup_Valve_Closed (1 usos) +[12:16:16] 📝 Procesando 21/83: DI_VM3_CO2_Valve_Closed (1 usos) +[12:16:16] 📝 Procesando 22/83: DI_Water_Pump_Contactor (1 usos) +[12:16:16] 📝 Procesando 23/83: DI_Syrup_Pump_Ovrld (1 usos) +[12:16:16] 📝 Procesando 24/83: DI_Syrup_Pump_Contactor (1 usos) +[12:16:16] 📝 Procesando 25/83: DI_Product_Pump_Contactor (1 usos) +[12:16:16] 📝 Procesando 26/83: DI_SyrRoom_Pump_Ready (1 usos) +[12:16:16] 📝 Procesando 27/83: DI_CIP_CIPMode (1 usos) +[12:16:16] 📝 Procesando 28/83: DI_CIP_RinseMode (1 usos) +[12:16:16] 📝 Procesando 29/83: DI_CIP_DrainRequest (1 usos) +[12:16:16] 📝 Procesando 30/83: DI_CIP_CIPCompleted (1 usos) +[12:16:16] 📝 Procesando 31/83: DI_Air_InletPress_OK (1 usos) +[12:16:16] 📝 Procesando 32/83: DI_Syrup_Line_Drain_Sensor (1 usos) +[12:16:16] 📝 Procesando 33/83: gWaterTotCtrl_Node20 (3 usos) +[12:16:16] 📝 Procesando 34/83: gSyrControl_Node21 (7 usos) +[12:16:16] 📝 Procesando 35/83: gCO2Control_Node22 (7 usos) +[12:16:16] 📝 Procesando 36/83: gProductTotCtrl_Node17 (3 usos) +[12:16:16] 📝 Procesando 37/83: AO_WaterCtrlValve_VM1 (1 usos) +[12:16:16] 📝 Procesando 38/83: AO_SyrupCtrlValve_VM2 (1 usos) +[12:16:16] 📝 Procesando 39/83: AO_CarboCO2CtrlValve_VM3 (1 usos) +[12:16:16] 📝 Procesando 40/83: AO_ProdTankPressureValve_VEP1 (1 usos) +[12:16:16] 📝 Procesando 41/83: AO_DeaireationValve_VEP4 (2 usos) +[12:16:16] 📝 Procesando 42/83: AO_ProdTempCtrlValve (1 usos) +[12:16:16] 📝 Procesando 43/83: AO_SyrupInletValve_VEP3 (1 usos) +[12:16:16] 📝 Procesando 44/83: AO_InjectionPressure (1 usos) +[12:16:16] 📝 Procesando 45/83: gProduct_VFC_MainRefValue (1 usos) +[12:16:16] 📝 Procesando 46/83: DO_SyrupInletValve_Enable (1 usos) +[12:16:16] 📝 Procesando 47/83: DO_HoldBrixMeter (2 usos) +[12:16:16] 📝 Procesando 48/83: DO_SyrupRoomPump_Run (2 usos) +[12:16:16] 📝 Procesando 49/83: DO_SyrupRoomWaterReq (2 usos) +[12:16:16] 📝 Procesando 50/83: DO_CIP_CIPRequest (2 usos) +[12:16:16] 📝 Procesando 51/83: DO_CIP_DrainCompleted (2 usos) +[12:16:16] 📝 Procesando 52/83: DO_Horn (2 usos) +[12:16:16] 📝 Procesando 53/83: DO_Blender_Run_Lamp (2 usos) +[12:16:16] 📝 Procesando 54/83: DO_Alarm_Lamp (2 usos) +[12:16:16] 📝 Procesando 55/83: DO_RotorAlarm_Lamp (2 usos) +[12:16:16] 📝 Procesando 56/83: DO_Water_Pump_Run (2 usos) +[12:16:16] 📝 Procesando 57/83: DO_Syrup_Pump_Run (2 usos) +[12:16:16] 📝 Procesando 58/83: DO_Product_Pump_Run (3 usos) +[12:16:16] 📝 Procesando 59/83: DO_EV11_BlowOff_Valve (2 usos) +[12:16:16] 📝 Procesando 60/83: DO_EV13_Prod_Recirc_Valve (2 usos) +[12:16:16] 📝 Procesando 61/83: DO_EV14_DeairDrain_Valve (2 usos) +[12:16:16] 📝 Procesando 62/83: DO_EV15_ProductTank_Drain_Valve (2 usos) +[12:16:16] 📝 Procesando 63/83: DO_EV16_SyrupTank_Drain_Valve (2 usos) +[12:16:16] 📝 Procesando 64/83: DO_EV17_BufferTankSprayBall_Valve (2 usos) +[12:16:16] 📝 Procesando 65/83: DO_EV18_DeairOverfill_Valve (2 usos) +[12:16:16] 📝 Procesando 66/83: DO_EV21_ProdTankOverfill_Valve (2 usos) +[12:16:16] 📝 Procesando 67/83: DO_EV22_WaterPumpPrime_Valve (2 usos) +[12:16:16] 📝 Procesando 68/83: DO_EV23_SerpentineDrain_valve (2 usos) +[12:16:16] 📝 Procesando 69/83: DO_EV24_SyrupRecirc_Valve (2 usos) +[12:16:16] 📝 Procesando 70/83: DO_EV26_CO2InjShutOff_Valve (2 usos) +[12:16:16] 📝 Procesando 71/83: DO_EV27_DeairSprayBall_Valve (2 usos) +[12:16:16] 📝 Procesando 72/83: DO_EV28_DeairStartCO2Inj_Valve (2 usos) +[12:16:16] 📝 Procesando 73/83: DO_EV44_SyrupLineDrain (2 usos) +[12:16:16] 📝 Procesando 74/83: DO_EV45_ProductChillerDrain (2 usos) +[12:16:16] 📝 Procesando 75/83: DO_EV61_SyrupTankSprayBall (2 usos) +[12:16:16] 📝 Procesando 76/83: DO_EV62_ProductOutlet (3 usos) +[12:16:16] 📝 Procesando 77/83: DO_EV69_Blender_ProductPipeDrain (2 usos) +[12:16:16] 📝 Procesando 78/83: DO_EV81_Prod_Recirc_Chiller_Valve (2 usos) +[12:16:16] 📝 Procesando 79/83: DO_EV01_Deair_Lvl_Ctrl_Valve (2 usos) +[12:16:16] 📝 Procesando 80/83: DO_EV02_Deair_FillUp_Valve (2 usos) +[12:16:16] 📝 Procesando 81/83: gPAmPDSFreeze (2 usos) +[12:16:16] 📝 Procesando 82/83: gPAmPDSCarboStop (2 usos) +[12:16:16] 📝 Procesando 83/83: gPAmPDSInlinePumpStop (2 usos) +[12:16:16] Generando tabla para 58 variables no usadas... +[12:16:16] ✅ Reporte de snippets generado exitosamente. +[12:16:16] 🎉 Análisis completado exitosamente! +[12:16:16] 📁 Archivos generados en: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\Analisis\TwinCat +[12:16:16] 📄 TwinCAT_Full_IO_List.md +[12:16:16] 📄 TwinCAT_IO_Usage_Snippets.md +[12:16:16] Ejecución de x1.5_full_io_documentation.py finalizada (success). Duración: 0:00:08.050593. +[12:16:16] Log completo guardado en: D:\Proyectos\Scripts\ParamManagerScripts\backend\script_groups\TwinCat\log_x1.5_full_io_documentation.txt