Resolución de bloqueos de compilación de CFC y cómo evitar descargas completas debido a bloques de datos abiertos

Intentar compilar diagramas CFC mientras un bloque de datos (DB) está abierto en el editor de KOP/FUP/AWL bloquea el archivo de la base de datos, abortando la compilación e invalidando la marca de tiempo (timestamp) delta del compilador. Una vez que se rompe una marca de tiempo delta, el sistema deshabilita la opción "Solo cambios" y fuerza una compilación y descarga de "Programa completo". No existe ninguna modificación del registro de Windows compatible o segura para omitir esta verificación de integridad; forzar una descarga delta con marcas de tiempo no coincidentes hace que la CPU entre en modo STOP (OB121). El remedio de ingeniería correcto es cerrar todos los editores de bloques, ejecutar "Guardar como... con reorganización (lenta)" y compilar los diagramas limpiamente.

Índice de contenidos

Mecánica de las marcas de tiempo delta de CFC y bloqueos de archivos DB

En SIMATIC PCS 7, la programación con diagramas de funciones continuas (CFC) abstrae la asignación de memoria del PLC. Al compilar los diagramas CFC, el compilador genera automáticamente bloques de datos (DBs) de instancia para los bloques de función y asigna direcciones de memoria.

Para permitir descargas delta en línea sin detener el proceso industrial (Cargar -> Solo cambios), el compilador de CFC mantiene una estricta sincronización entre tres marcas de tiempo:
1. Hora del cambio de código: Registrada en la base de datos del diagrama.
2. Hora de compilación de la interfaz: Incrustada dentro de los bloques S7 compilados.
3. Hora de descarga: Almacenada en la memoria de trabajo activa de la CPU S7-400 / S7-410.

Si un ingeniero abre un bloque de datos generado (por ejemplo, DB 105) en el editor de bloques clásico de STEP 7 mientras inicia la compilación de CFC:
* El motor de base de datos de Step 7 aplica un bloqueo de archivo exclusivo en el DB abierto.
* El compilador de CFC intenta sobrescribir el archivo DB para reflejar las nuevas interconexiones del diagrama, falla debido a la denegación de acceso y muestra un diálogo de error.
* Debido a que la compilación se abortó a mitad del proceso, los registros de consistencia interna se desalinean. El compilador marca la base de datos como "Inconsistente", deshabilitando el botón de opción "Solo cambios" y permitiendo únicamente la compilación de Programa completo.

El mito de los hacks del registro y los riesgos de parada fatal de la CPU

Los ingenieros que se enfrentan a un aviso inesperado de "Descarga completa" en una planta de producción en funcionamiento a menudo buscan modificaciones indocumentadas en el Registro de Windows para reactivar artificialmente el botón de descarga delta.

La arquitectura del sistema Siemens prohíbe estrictamente este enfoque:
* La verificación de hardware de la CPU: Incluso si un script de terceros o un hack del registro manipulara la interfaz gráfica de ingeniería, el sistema operativo de la S7-400 realiza una verificación autónoma a nivel de firmware al recibir los bloques descargados.
* Fallo de discrepancia de interfaz (OB 121): Si un bloque descargado posee una marca de tiempo de interfaz o una estructura de memoria que no coincide con la disposición de memoria existente en la CPU, la CPU declara un error de software crítico.
* Bloqueo del controlador: A menos que los bloques de organización de manejo de fallos específicos (como OB 121 / OB 85) estén programados con un enmascaramiento complejo, una discrepancia de interfaz hace que la CPU entre inmediatamente en modo STOP, provocando una parada de planta total e no comandada.

Procedimiento estándar para eliminar bloqueos de archivos y reactivar las compilaciones delta

Para eliminar los bloqueos residuales de la base de datos y recuperar la capacidad de compilación delta de forma segura sin forzar una parada completa de la planta:

  1. Cerrar todos los editores externos:
    * Cierre el editor de bloques KOP/FUP/AWL, el Editor de Símbolos, las Tablas de Variables (VAT) y HW Config.
    * Asegúrese de que ninguna otra estación de ingeniería tenga el multiproyecto extraído (checked out) en modo multiusuario.
  2. Reconstruir la base de datos de Step 7 (Reorganización):
    * En SIMATIC Manager, cierre todos los diagramas CFC abiertos.
    * Seleccione Archivo -> Guardar como....
    * Marque el botón de opción Con reorganización (lenta).
    * Guarde el proyecto en una nueva ruta local. Esto elimina los bloqueos de archivos huérfanos, desfragmenta la base de datos y recalcula los punteros de referencias cruzadas.
  3. Ejecutar una compilación limpia de diagramas:
    * Abra CFC. Seleccione PLC -> Compilar -> Diagramas como programa.
    * Compruebe si la opción Solo cambios se ha vuelto a habilitar.
    * Si "Solo cambios" está disponible, compile los cambios limpiamente.
    * Si el compilador sigue exigiendo una compilación completa, compile el programa completo en el proyecto sin conexión, pero no lo descargue. Compare las marcas de tiempo de los bloques con la CPU en línea usando PLC -> Comparar bloques para identificar qué DB específico fue alterado.

Verificación

  • En CFC, abra el diálogo de compilación. Confirme que Solo cambios se ejecuta al 100% sin errores.
  • En SIMATIC Manager, inicie PLC -> Cargar -> Solo cambios. Confirme que el diálogo de descarga confirma la descarga en modo de cambio sin solicitar el STOP de la CPU.
  • Verifique el búfer de diagnóstico de la CPU (PLC -> Información del módulo). Confirme que no se registren advertencias de discrepancia de marcas de tiempo o conflicto de interfaces.

Limitaciones y precauciones operativas

  • Nunca abra bloques de datos de instancia generados automáticamente (bloques creados por CFC) en el editor de bloques clásico de Step 7. Los DBs de instancia deben visualizarse exclusivamente a través del modo de prueba dinámico del diagrama CFC.
  • Si se realizó genuinamente un cambio estructural en la interfaz de un bloque personalizado (por ejemplo, agregar un pin de entrada a un FB de usuario), una descarga delta es matemáticamente imposible sin la actualización de tipos en RUN (TCiR) en un controlador S7-410.
  • Mantenga siempre un archivo de proyecto actualizado antes de realizar cualquier reorganización de la base de datos.

Preguntas frecuentes del ingeniero

  • ¿Por qué CFC genera DBs de instancia que se pueden abrir en Step 7?
    CFC está construido sobre el motor de ingeniería clásico de Step 7. Los DBs generados existen en la carpeta de bloques fuera de línea para que los asistentes de compilación del compilador y de la OS puedan acceder a ellos, pero son administrados dinámicamente por CFC.
  • ¿Qué debo hacer si un DB se bloquea permanentemente después de un fallo de la PC?
    Si un fallo de la computadora deja un archivo de base de database bloqueado, reinicie la estación de trabajo de ingeniería para liberar los controladores (handles) de Windows huérfanos, o use el flujo de trabajo "Guardar como... con reorganización (lenta)".
  • ¿Puede la actualización de tipos en RUN (TCiR) resolver este problema?
    Sí. Si se utiliza una CPU 410-5H con TCiR, incluso si las interfaces de los bloques cambian y exigen una compilación completa, el programa aún se puede descargar en RUN sin detener el controlador.

Referencias técnicas

  • Manual de SIMATIC PCS 7 CFC para S7 / M7 (A5E41356247-AA).
  • Entrada de Siemens Industry Online Support ID 109801081: Evitar descargas completas de programas en SIMATIC PCS 7.
  • Manual del búfer de diagnóstico y sistema de manejo de fallos S7-400 / CPU 410.

Artículos relacionados

Etiquetas relacionadas

PCS 7, CFC, Bloques de datos, Errores de compilación, Descarga delta, S7-400, Reorganización, Solución de problemas

20 respuestas