Para solucionar el bloqueo de inicialización al 70% y el error «Unable to attach ProductData.mdf database» en WinCC 7.0, detenga el Runtime, abra SQL Server Management Studio (SSMS) bajo la instancia WINCC, y acople manualmente el archivo ProductData.mdf mediante la opción «Attach...» para resolver la falta de permisos del script VBS.
¿Cómo solucionar el fallo de acoplamiento de archivos MDF en el arranque de WinCC 7.0 mediante scripts VBS?
Category: SIMATIC WinCC / Database Connectivity | Technology: Siemens WinCC V7.0, SQL Server WINCC Instance, VBScript HMIRuntime, MDF/LDF Database Attach, CC_MS_Instance | Article Type: Troubleshooting Guide | Code: C163
Related topics: WinCC SQL Server Instance Connection | WinCC VBScript Database OLEDB | SQL Server Management Studio WinCC | HMI Runtime Startup Scripting
Context: Diagnóstico de fallos de conectividad en bases de datos de recetas o producción (.mdf) ejecutadas mediante funciones personalizadas de script VBScript durante la fase de inicialización del proyecto HMI en WinCC V7.0.
¿Cómo solucionar el fallo de acoplamiento de archivos MDF en el arranque de WinCC 7.0 mediante scripts VBS?
El error crítico «Unable to attach ProductData.mdf database!» que interrumpe la inicialización de WinCC V7.0 en un progreso del 70% ocurre porque la función personalizada de VBScript AttachWinCCDBToSQLServer carece de privilegios suficientes en el sistema operativo Windows para realizar la llamada síncrona de acoplamiento (Attach) del archivo de datos hacia la instancia de SQL Server, o bien porque un proceso residual mantiene bloqueados los archivos .mdf o .ldf en modo monousuario (SINGLE_USER). Para solucionarlo de forma inmediata en el piso de planta, abra SQL Server Management Studio (SSMS), conéctese a la instancia nativa de WinCC (habitualmente .\WINCC) y realice el acoplamiento manual del archivo ProductData.mdf ubicado en la subcarpeta del proyecto.
Table of Contents
- First Checks Before Modifying Database Scripts
- Technical Context and Problem Background
- Diagnostic Path for SQL Server Logs
- Configuration Procedure: Manual Database Attachment and Permissions
- Common WinCC Database Mistakes
- HMI Database Activation Verification Checklist
- FAQ
First Checks Before Modifying Database Scripts
Production note: La manipulación de las bases de datos del sistema o de producción de WinCC en caliente puede corromper las tablas de datos históricos, alarmas y recetas de la planta. Antes de acoplar o desacoplar cualquier archivo de base de datos en SQL Server, cierre por completo el WinCC Runtime, salga del Explorador de WinCC (WinCC Explorer) y realice una copia de seguridad física de toda la carpeta del proyecto HMI.
- Comprobar la ruta del archivo MDF: Verifique que el archivo
ProductData.mdfy su archivo de registro de transacciones asociado (ProductData_log.ldf) existan físicamente en la ruta del proyecto (por ejemplo,\Nombre_Proyecto\Product\). - Verificar el estado de la instancia de SQL Server: Abra el Administrador de configuración de SQL Server y confirme que el servicio de la instancia dedicada de WinCC (típicamente
SQL Server (WINCC)) esté en ejecución estable. - Revisar permisos de usuario de Windows: Asegúrese de que la cuenta de usuario de Windows activa que ejecuta el Runtime pertenezca al grupo local
SIMATIC HMIy posea derechos de lectura/escritura sobre el directorio del proyecto.
Technical Context and Problem Background
En las plataformas de supervisión basadas en Siemens SIMATIC WinCC V7.0, el núcleo del sistema operativo del HMI no utiliza archivos de texto planos ni bases de datos propietarias ligeras para gestionar el entorno. Toda la arquitectura de variables, el histórico de curvas (Tag Logging), el registro de mensajes (Alarm Logging) y los datos de producción se estructuran sobre una instancia nativa dedicada de Microsoft SQL Server instalada de forma mandatoria junto con la suite DCS/SCADA.
El error analizado ocurre en proyectos que integran módulos complementarios (add-in) personalizados por el fabricante de la máquina o integrador. Para almacenar información detallada de productos o lotes sin mezclar estos datos con las tablas nativas de WinCC, el desarrollador crea una base de datos secundaria independiente denominada ProductData.mdf. En lugar de dejar esta base de datos montada de forma permanente en el motor de SQL Server, se programa una rutina en VBScript (AttachWinCCDBToSQLServer) ejecutada de forma cíclica durante el script de arranque del cuadro inicial (Startup Script).
Cuando el progreso del Runtime alcanza el 70%, el script de inicialización del proyecto HMI intenta inyectar dinámicamente el archivo MDF local en el motor de SQL Server. Si el sistema operativo ha sufrido actualizaciones de directivas de seguridad, o si el servicio de SQL Server ha configurado las bases de datos de tendencias del WinCC en modo monousuario restringido (SINGLE_USER), la llamada síncrona de VBScript a través del componente OLEDB/ADO se interrumpe por falta de permisos de administración (privilegios sysadmin en el servidor de bases de datos). El objeto de automatización falla al resolver el puntero de conexión y dispara la caja de mensaje crítica de error, abortando la inicialización del sistema.
Diagnostic Path for SQL Server Logs
Cuando la barra de progreso de WinCC se congele en el script de inicio y arroje errores de conectividad con archivos de datos lúdicos, aplique la siguiente metodología de diagnóstico estructural:
- Analizar el archivo de registro de SQL Server: Abra los archivos de traza de errores (Error Logs) de SQL Server. Si localiza registros consecutivos que indican el inicio de la base de datos seguido inmediatamente por comandos tipo:
Plaintext
Setting database option SINGLE_USER to ON for database C1-HMI1-510625...
Esto confirma que el motor de SQL Server está procesando múltiples peticiones en paralelo de WinCC Runtime para bloquear las bases de datos de archivo en modo exclusivo, lo que colisiona con el intento del script VBS de acoplar el archivo ProductData.mdf de forma simultánea.
2. Rastrear el código en la consola de diagnóstico: Abra la utilidad WinCC APDiag (Application Diagnostics) o el visor de archivos log de scripts lúdicos (\SIEMENS\WinCC\Diagnostics\WinCC_Sys.log). Busque la descripción exacta del número de error de VBScript. Un código Err.Number diferente de 0 con descripción de "Acceso denegado" o "La base de datos ya existe" guiará la corrección.
3. Comprobar bloqueos del archivo en Windows: Verifique si el archivo ProductData.mdf está siendo retenido por un proceso en segundo plano (como el servicio de indexación de Windows o un antivirus de planta), impidiendo que SQL Server tome control exclusivo del archivo físico durante el arranque.
Configuration Procedure: Manual Database Attachment and Permissions
Para resolver el fallo de acoplamiento dinámico sin alterar las líneas de código de los scripts de VBScript protegidos de la máquina, implemente el siguiente procedimiento de acoplamiento manual y ajuste de privilegios:
Paso 1: Acoplar la base de datos de forma manual en SQL Server
- Cierre por completo el WinCC Runtime y asegúrese de que el proyecto esté cerrado en el WinCC Explorer.
- Abra la herramienta de administración SQL Server Management Studio (SSMS) en la estación de operación de Windows.
- En el cuadro de diálogo de conexión al servidor, introduzca el nombre de la instancia nativa dedicada de WinCC de la máquina de forma estricta:
.\WINCCoNombre_PC\WINCC - Seleccione autenticación integrada de Windows (Windows Authentication) y haga clic en Connect.
- En el árbol del explorador de objetos izquierdo, localice y expanda la carpeta principal denominada Databases.
- Haga clic derecho sobre la carpeta Databases y seleccione la opción del menú contextual: Attach... (Acoplar...).
- En la ventana emergente que se despliega, haga clic en el botón Add... (Agregar...) ubicado en la sección superior.
- Navegue a través del explorador de directorios hasta encontrar la ruta física exacta de su proyecto HMI de WinCC y acceda a la subcarpeta de producción del fabricante:
[Ruta_Proyecto_WinCC]\Product\ - Seleccione el archivo maestro de datos ProductData.mdf y haga clic en OK. El administrador web cargará automáticamente el archivo de datos y verificará la existencia del archivo de registro complementario
ProductData_log.ldf. - Haga clic en OK en la ventana principal de acoplamiento. La base de datos aparecerá montada de forma permanente y persistente dentro del motor de SQL Server de WinCC, mitigando la necesidad de que el script ejecute la llamada dinámica en cada ciclo de arranque.
[SSMS - Instancia .\WINCC] -> Click Derecho en Databases -> Attach...
|---> Seleccionar: [Ruta_Proyecto]\Product\ProductData.mdf
|---> Base de datos montada de forma fija en el motor SQL
Paso 2: Ajustar los permisos de Windows para el script de WinCC
Si desea mantener la flexibilidad de que el script VBS ejecute la desconexión y conexión automática de bases de datos para proyectos portables, corrija los privilegios del sistema operativo:
- Diríjase a la ruta de Windows del proyecto:
...\MiProyecto_WinCC\Product\. - Haga clic derecho sobre la carpeta
Producty seleccione Propiedades. - Seleccione la pestaña de seguridad avanzada: Security (Seguridad).
- Haga clic en el botón Edit (Editar) para modificar los permisos de los grupos de usuarios de control industriales.
- Seleccione el grupo de usuarios local denominado SIMATIC HMI y active explícitamente la casilla de verificación Full Control (Control Total) o Modificar.
- Realice la misma acción para el grupo de usuarios del sistema
CC_MS_Instance(cuenta interna utilizada por el motor lúdico de SQL Server de Siemens). - Haga clic en Apply y acepte el traspaso heredado de permisos para todos los archivos hijos dentro del directorio. Esto permitirá que la función de script de WinCC asuma el control de los archivos binarios lúdicos de datos, eliminando el fallo sintáctico al 70%.
- Inicie nuevamente el proyecto en WinCC Explorer y active el modo Runtime. El proceso completará la barra de progreso superando el 70% de inicialización sin disparar avisos de alerta.
Common WinCC Database Mistakes
- Intentar usar una instancia de SQL Server comercial estándar: Configurar la conexión de bases de datos externas apuntando a una instancia general de SQL Server de oficina en lugar de procesar los datos de forma exclusiva dentro del servicio del motor interno
.\WINCC. Esto provoca fallos estructurales de licencias y desconexiones crónicas de tags. - Separar bases de datos con el Runtime activo: Forzar el desacoplamiento (Detach) o la eliminación de archivos MDF/LDF mientras el proceso de adquisición de datos históricos de WinCC se encuentra en ejecución en la estación. Esto puede provocar la corrupción permanente de las tablas lógicas y la pérdida de las tendencias de variables de planta.
- Mapear fuentes de datos ODBC de 64 bits en aplicaciones de 32 bits: Configurar un origen de datos ODBC dentro del administrador de herramientas administrativo de Windows de 64 bits para una versión de WinCC heredada (como la V7.0) que ejecuta sus motores de VBScript internos en arquitectura estricta de 32 bits. Las llamadas de script reportarán que la fuente de datos no existe.
HMI Database Activation Verification Checklist
- ¿Se acopló de forma exitosa el archivo ProductData.mdf de forma fija en la instancia .\WINCC mediante SSMS?: Yes / No / Needs Review
- ¿El grupo local de usuarios de Windows "SIMATIC HMI" posee control total sobre los archivos de datos?: Yes / No / Needs Review
- ¿El proceso de arranque superó de forma estable el umbral del 70% de la barra de progreso de inicialización?: Yes / No / Needs Review
- ¿La pantalla inicial de WinCC se muestra en pantalla completa refrescando las variables lógicas de los tags?: Yes / No / Needs Review
FAQ
¿Por qué las bases de datos de tendencias de WinCC se registran en los logs de SQL Server con la opción SINGLE_USER activada durante el arranque? El núcleo de SIMATIC WinCC configura cíclicamente sus bases de datos de archivos históricos (Segmented Archives de Tag Logging y Alarm Logging) en modo monousuario (SINGLE_USER) de forma temporal durante las fases de mantenimiento, sincronización redundante o creación de nuevos segmentos de datos en el disco. Esto es un comportamiento normal e intrínseco del motor de Siemens diseñado para evitar que clientes de red externos alteren las tablas mientras el SCADA escribe los bloques. Sin embargo, si un script personalizado VBS de usuario intenta acoplar una base de datos propia de producción en el mismo milisegundo en que el motor de WinCC satura el hilo de ejecución de SQL Server con comandos de modo monousuario, la llamada ADO fallará por timeout, interrumpiendo el arranque del proyecto.
¿Es obligatorio configurar un origen de datos ODBC en Windows para conectar scripts VBS a bases de datos locales en WinCC V7.0? No necesariamente. Si bien muchas aplicaciones industriales clásicas utilizan puentes ODBC externos mapeados en el Administrador de fuentes de datos de Windows, las funciones avanzadas de VBScript ejecutadas dentro del entorno de HMIRuntime pueden interactuar de forma directa con los archivos MDF locales utilizando cadenas de conexión directas basadas en proveedores OLEDB nativos (como Provider=SQLOLEDB;Data Source=.\WINCC;Integrated Security=SSMS). Al realizar el acoplamiento manual del archivo MDF directamente en el motor de la instancia local de WinCC mediante SQL Server Management Studio, el script VBS puede abrir canales de datos lúdicos apuntando de forma directa al nombre lógico de la base de datos, omitiendo la necesidad de mantener y depurar conexiones de catálogos ODBC independientes en el panel de control del sistema operativo de la PC de control.
¿Qué precauciones de seguridad industrial se deben tomar antes de aplicar el parche de acoplamiento manual de bases de datos en un HMI de planta? El acoplamiento manual de archivos de bases de datos de producción es un procedimiento de mantenimiento seguro siempre que se garantice el aislamiento de los procesos. Bajo ninguna circunstancia intente montar, renombrar o mover archivos .mdf o .ldf mientras el Explorador de WinCC mantenga abierto el proyecto o el candado de Runtime esté activo en la barra de tareas. Detenga siempre los servicios mediante el comando de cierre del SCADA, verifique en el Administrador de tareas de Windows que procesos críticos de bases de datos de adquisición de Siemens (como CC_App.exe o ejecutables del tipo CCAlgMrt.exe) se hayan extinguido por completo, y ejecute una copia de seguridad integral en un disco duro externo antes de interactuar de forma online con el motor de Microsoft SQL Server de la máquina de producción.
Related Articles or Next Steps
- Configuring SQL Server OLEDB Connections in WinCC V7 — Criterios de diseño para la creación de cadenas de conexión estables y seguras en scripts HMI.
- Troubleshooting WinCC Runtime Startup Script Failures — Métodos de depuración mediante herramientas APDiag y análisis de trazas de errores de ejecución en hilos VBS/C.
Related Linked Tags
Contact / Support
¿Necesita asistencia técnica experta para la optimización de sus bases de datos SCADA, depuración de scripts de inicialización en WinCC V7 o resolución de fallos de conectividad SQL industriales?
Póngase en contacto con nuestro equipo de ingenieros certificados en sistemas de automatización, arquitecturas informáticas de planta e interfaces HMI de procesos.
Technical Classification
Category: SIMATIC WinCC / Database Connectivity
Technology: Siemens SIMATIC WinCC V7.0 SCADA, Microsoft SQL Server Instancias Industriales, VBScript Motores de Scripting
Object Type: MDF/LDF Database Files, OLEDB/ADO Connection Strings, Startup Sequence Diagnostics
Use Case: Desbloqueo de secuencias de inicio de sistemas SCADA mediante el acoplamiento manual y corrección de permisos de bases de datos de producción.
Article Type: Troubleshooting Guide
Applies To: WinCC V7.0, WinCC V7.2, Microsoft SQL Server 2005/2008 de la instancia de WinCC, Windows XP, Windows 7, VBScript Componentes
Primary Search Intent: WinCC 7.0 problema al conectar con la base de datos al 70% de progreso.
Related Search Phrases: