Configurar la conmutación manual de servidores WinCC OS redundantes mediante script en SIMATIC PCS 7

Para activar manualmente una conmutación de redundancia entre un par de servidores OS redundantes SIMATIC PCS 7 WinCC mediante un botón HMI, cambie la variable interna del sistema WinCC '@RM_MASTER' de 1 a 0 en el nodo del servidor activo mediante una acción C o VBScript. Cuando se restablece '@RM_MASTER', el componente WinCC Redundancy evalúa la disponibilidad del interlocutor, detecta que el maestro activo abandona el liderazgo y promueve el interlocutor en espera al modo maestro. Antes de ejecutar esta alternancia, los scripts deben verificar que el servidor asociado esté completamente operativo y sincronizado a través de '@RM_SERVER_STATE' y '@RM_FAULT_WAIT' para evitar conflictos de doble maestro o interrupciones en la comunicación.

Índice de contenidos

Resumen ejecutivo

En instalaciones de procesos críticos que ejecutan servidores redundantes con sistema operativo SIMATIC PCS 7, las operaciones de mantenimiento o ajustes de red a menudo requieren mover conexiones de clientes desde el servidor activo al socio en espera sin apagar la máquina del servidor físico. WinCC Redundancy gestiona el liderazgo del servidor a través de un conjunto específico de variables internas del sistema, principalmente '@RM_MASTER', '@RM_MASTER_WATCH_CYCLE' y '@RM_SERVER_STATE'. Si bien las conmutaciones de redundancia generalmente ocurren automáticamente después de fallas de conexión de red o hardware, los ingenieros pueden iniciar una conmutación manual controlada ejecutando un script HMI que restablece '@RM_MASTER'. Este artículo detalla la mecánica interna de Redundancy Manager, proporciona rutinas de C-script y VBScript de nivel de producción con enclavamiento de seguridad, describe los procedimientos de verificación y destaca las precauciones operativas.

Mecánica arquitectónica y del sistema

El paquete WinCC Redundancy coordina dos estaciones de servidor (maestra y standby) para ofrecer una visualización de la instalación y un archivo de datos ininterrumpidos.

Las etiquetas de redundancia interna clave que rigen el comportamiento de conmutación incluyen:
- @RM_MASTER: etiqueta binaria que indica si el servidor local está funcionando como maestro de redundancia activo (1 = Maestro, 0 = En espera).
- @RM_MASTER_WATCH_CYCLE: Etiqueta de contador actualizada cíclicamente por el administrador de redundancia a través de la conexión de redundancia (red Ethernet serial o dedicada).
- @RM_SERVER_STATE: una etiqueta de número entero que indica el estado de ejecución local (1 = Fallo/Desconocido, 2 = Maestro, 3 = En espera).
- @RM_FAULT_WAIT: Indica si hay pendiente algún fallo de redundancia o ciclo de sincronización.

Cuando @RM_MASTER se pone a 0 en el maestro activo, el servicio de redundancia local indica al servidor asociado a través del bus terminal y el enlace de redundancia que la maestría se entrega voluntariamente. El socio verifica sus propias conexiones del bus de proceso y pasa al estado 2 (maestro), lo que hace que los clientes WinCC OS conectados cambien sin problemas el contexto del proyecto.

Procedimiento de ingeniería e implementación paso a paso

Paso 1: Verificar las condiciones previas y el estado de la redundancia

Abra WinCC Explorer tanto en OS Server 1 como en OS Server 2. Compruebe en el editor de redundancia que la sincronización del proyecto esté completamente configurada y que el enlace de redundancia esté activo sin errores. Asegúrese de que ambos servidores se comuniquen a través del bus terminal y el bus de la planta.

Paso 2: Implementar el C-Script de conmutación manual segura

En Graphics Designer, abra la plantilla de mantenimiento o la pantalla de administración del sistema. Inserte un botón titulado 'Cambiar sistema operativo maestro'. Adjunte la siguiente acción C al evento de clic del mouse:

#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
    // Read redundancy status tags
    BOOL bIsMaster = GetTagBit("@RM_MASTER");
    long nFaultWait = GetTagBit("@RM_FAULT_WAIT");

    // Verify local station is currently master and no fault wait is active
    if (bIsMaster && !nFaultWait)
    {
        // Prompt operator confirmation or proceed with switchover
        SetTagBit("@RM_MASTER", 0);
    }
    else
    {
        // Station is already standby or synchronization is in progress
    }
}

Paso 3: Implementar la alternativa de VBScript con comentarios del operador

Para sistemas que utilizan acciones de VBScript, implemente la conmutación utilizando etiquetas HMIRuntime:

Sub OnClick(ByVal Item)
    Dim objMasterTag, objFaultWaitTag
    Set objMasterTag = HMIRuntime.Tags("@RM_MASTER")
    Set objFaultWaitTag = HMIRuntime.Tags("@RM_FAULT_WAIT")

    If objMasterTag.Read = 1 And objFaultWaitTag.Read = 0 Then
        objMasterTag.Write 0
    End If
End Sub

Paso 4: restringir el acceso mediante la autorización de inicio de sesión SIMATIC

Asigne un nivel de autorización (por ejemplo, Nivel 6 - Control superior de procesos o Nivel 1100 - Mantenimiento del sistema) al objeto de botón para evitar que operadores no autorizados inicien cambios de servidor.

Verificación

Para verificar la conmutación manual:
1. Observe @RM_MASTER y @RM_SERVER_STATE en el simulador de variables del WinCC Tag Management o en la visualización del estado del WinCC Runtime.
2. Haga clic en el botón de conmutación en el servidor activo. Confirme que @RM_MASTER cambie a 0 en la estación local.
3. Observe el servidor asociado: su etiqueta @RM_MASTER debe pasar a 1 y @RM_SERVER_STATE a 2.
4. Inspeccionar los clientes del sistema operativo conectados; Verifique que la comunicación del proceso del cliente cambie al nuevo maestro sin generar alarmas ni interrumpir el proceso.

Limitaciones y precauciones operativas

Precauciones y limitaciones operativas:
- Nunca alterne @RM_MASTER si el servidor asociado está fuera de línea, detenido o experimenta una desconexión de la red; Al hacerlo, ambos servidores quedarán en espera, desconectando todos los clientes del sistema operativo de los datos del proceso en vivo.
- La conmutación manual no omite la sincronización de archivos. Si la sincronización en línea está activa, la conmutación debe posponerse hasta que se complete la sincronización.
- La conmutación rápida y repetida de @RM_MASTER puede desencadenar condiciones de carrera de redundancia y apagones temporales de conexión del cliente.

Preguntas frecuentes del ingeniero

P: ¿Se puede alternar @RM_MASTER directamente desde un cliente OS?

R: No. La etiqueta @RM_MASTER es una etiqueta interna local evaluada en el servidor OS. Para activar la conmutación desde un cliente OS, el cliente debe escribir en una etiqueta de prefijo del servidor o activar un script del lado del servidor.

P: ¿Qué sucede si ambos servidores tienen @RM_MASTER configurado en 1 simultáneamente?

R: Esta condición indica una falla de cerebro dividido generalmente causada por una falla tanto del bus terminal como de la conexión de redundancia. Ambos servidores actúan como maestros independientes hasta que se restablezcan los enlaces de red.

P: ¿La conmutación manual provoca lagunas en los datos en los archivos de tendencias?

R: No. Cuando los servidores redundantes están en buen estado, los archivos de registro de etiquetas y registro de alarmas se sincronizan continuamente, lo que garantiza una continuidad perfecta en las pantallas de tendencias del cliente.

P: ¿Por qué @RM_MASTER volvió a 1 inmediatamente después de establecerse en 0?

R: Si el servidor asociado falla o no puede asumir el control, WinCC Redundancy restablece automáticamente el servidor local al estado maestro para mantener la operatividad del sistema.

P: ¿Se puede utilizar este método en WinCC Single Station Redundancy?

R: Sí. Para las configuraciones WinCC Single Station Redundancy se aplican los mismos mecanismos @RM_MASTER y @RM_SERVER_STATE.

Referencias técnicas

Artículos relacionados

Etiquetas relacionadas

WinCC Redundancy, PCS 7 OS Server, @RM_MASTER, Server Switchover, SIMATIC PCS 7

20 respuestas