# Servidor OPC UA

> El servidor OPC UA que la estación corre dentro de su proceso: su fila en la carpeta Servidores, cómo se enciende y se apaga, Reiniciar y Probar la conexión, la tarjeta Estado con el endpoint y seis medidores, las dos verificaciones por las que pasa una sesión, y lo que un navegador remoto no puede hacer.

La estación es un servidor OPC UA. Corre dentro del proceso de la aplicación y sirve los tags, las variables de Logic, las alarmas y los comandos de dispositivo de su tarjeta [Nodos servidos](connector-opcua-served-nodes) en `opc.tcp://<network name>:4840/UA/GanterLab` (con `localhost` como alternativa en la misma máquina), donde el nombre es el escrito en **Nombre de red** en [Configuración](connector-opcua-configuration), o el de la propia computadora mientras ese campo está vacío. Un cliente OPC UA de la red los lee allí y puede escribir en las filas marcadas como lectura y escritura; una escritura atraviesa el mismo embudo de escritura de Logic que cualquier otra, así que los bloqueos de origen y los rechazos del runtime se le aplican. El servidor publica lo que lee Connector y no lee nada por sí mismo: apagarlo, o un puerto que retiene otro programa cuando arranca, detiene solo el servidor, y Connector, Logic y las grabaciones siguen.

Su fila es la primera bajo la carpeta Servidores de Connector, y su panel dice lo que es bajo el título: "Sirve los tags, las variables de Logic, las alarmas y los comandos de dispositivo que usted lista a los clientes OPC UA que los leen y escriben: sistemas SCADA y MES, historiadores, otras estaciones. Recibe conexiones y nunca abre una." El panel lleva cuatro tarjetas, **Estado**, **Configuración**, **Acceso de clientes** y **Nodos servidos**; Ver Connector las lee y Configurar Connector las cambia. Mientras **Nodos servidos** no tenga filas, el servidor no sirve nada de la estación.

## Encendido o apagado {#on-or-off}

El servidor tiene un interruptor propio, y viene apagado en una estación nueva: el puerto 4840 sigue cerrado hasta que alguien enciende el servidor. Una vez encendido, arranca con la aplicación cada vez, y sigue sirviendo mientras la ventana está oculta en el área de notificación, hasta que alguien lo apaga. Una estación actualizada desde una versión sin el interruptor conserva lo que tenían sus clientes: un servidor que aceptaba sesiones sigue encendido, y uno cuya autenticación del cliente estaba en Desactivada, que rechazaba todas las sesiones, se apaga. Un agente acciona el mismo interruptor con `server_start` y `server_stop` (vea [Herramientas del agente](agent-tools)).

## La cabecera {#the-header}

La cabecera del panel lleva un punto y el estado del servidor, con las palabras que muestra su fila:

| Estado | Punto | Cuándo |
| --- | --- | --- |
| "Apagado" | Gris | El interruptor está apagado, pase lo que pase. |
| "Escuchando en el puerto 4840" | Verde | El servidor está encendido y su espacio de direcciones está vivo. La fila añade los clientes conectados: "Ningún cliente conectado", "1 cliente conectado", "3 clientes conectados". |
| "Arrancando…" | Ámbar | Entre un arranque y ese momento, y mientras el Connector que publica está arrancando. |
| "No se pudo iniciar" | Rojo | El servidor está encendido y su último arranque falló, típicamente porque otro programa retiene el puerto. La tarjeta Estado dice el motivo bajo el endpoint. |
| "Connector detenido" | Gris | El servidor está encendido, pero el runtime de Connector no está en marcha. |

El estado es solo del servidor. Connector lee los dispositivos tanto si el servidor está en marcha como si no, y la barra de estado y el área de notificación hablan por Connector; vea [El área de notificación y la barra de estado](#the-tray-and-the-status-bar).

## Los comandos {#the-commands}

La barra de comandos sobre el panel lleva los verbos del servidor, igual que lleva los del servidor Modbus.

| Comando | Qué hace | Atenuado cuando (situación) | No se dibuja cuando (rol) |
| --- | --- | --- | --- |
| Activar | Enciende el servidor y lo arranca, sirviendo su lista; Connector no se reinicia (cuando no está en marcha en absoluto, se arranca primero). La barra de estado dice "Iniciando el servidor OPC UA…" y después "Servidor OPC UA encendido. Escuchando en `<endpoint>`.". Un arranque que falla deja el servidor encendido y mostrando No se pudo iniciar, y el registro de acciones dice el motivo: "Error del servidor OPC UA: `<el motivo>`", o "El servidor OPC UA no pudo iniciarse. Puede que no consiga enlazar el puerto N. Revise el diario técnico." cuando el servidor solo lo anotó. | Mientras el servidor está encendido ("El servidor ya está encendido."), mientras se ejecuta otro comando del servidor ("Todavía se está ejecutando otro comando del servidor."), y mientras la estación rechaza la configuración. | Para un rol sin **Configurar Connector**. |
| Desactivar | Apaga el servidor y lo detiene con orden: todas las sesiones de cliente terminan y no se publica nada hasta Activar. Connector sigue leyendo los dispositivos, y Logic y las grabaciones siguen. "Deteniendo el servidor OPC UA…" y después "Servidor OPC UA apagado." | Mientras el servidor está apagado ("El servidor ya está apagado."), y en las mismas dos situaciones. | Lo mismo. |
| Reiniciar | Detiene el servidor y lo vuelve a arrancar con la configuración en vigor; Connector lee todo el tiempo. "Reiniciando el servidor OPC UA…" y después "Servidor OPC UA reiniciado.", o el texto de falla de arriba. | Mientras el servidor está apagado ("El servidor está apagado: Activar lo enciende."), y en las mismas dos situaciones. | Lo mismo. |
| Probar la conexión | Informa de lo que la estación sabe de su propio servidor, sin cambiar nada: "El servidor OPC UA no está escuchando, así que ningún cliente puede conectarse.", "El servidor OPC UA se está iniciando, todavía no está listo.", o "Servidor OPC UA accesible en `<endpoint>`, con N sesiones activas." Es una afirmación del proceso en marcha, no un sondeo por la red. | Nunca. | Nunca. |

La estación rechaza la configuración mientras una unidad está en marcha ("La configuración está bloqueada mientras una unidad está en marcha.") y mientras el runtime está detenido: detener el servidor de la planta es trabajo de configuración, no de operación. Un arranque que vuelve sin error se verifica igual, porque la pila OPC UA puede fallar al enlazar su puerto y solo anotarlo, así que el registro de acciones informa de la falla en lugar de un éxito.

## La tarjeta Estado {#the-status-card}

La tarjeta muestra el endpoint que marca un cliente de la red, `opc.tcp://<network name>:<port>/UA/GanterLab`, siempre un nombre estable y nunca `0.0.0.0` ni una dirección de DHCP; la alternativa en la misma máquina está en Direcciones de conexión, en [Acceso de clientes](connector-opcua-client-access). Mientras el servidor está encendido y no se pudo iniciar, el motivo aparece en una nota de precaución bajo el endpoint. Después, seis medidores, redibujados cada segundo:

| Medidor | Qué cuenta |
| --- | --- |
| Tiempo en marcha | El tiempo desde el último arranque del servidor, como `2h 14m 5s`, `14m 5s` o `5s`; una marca de hueco mientras está detenido. Ese mismo instante alimenta los puntos Server.StartTime y Server.Uptime del espacio de direcciones de Logic. |
| Sesiones | Las sesiones de cliente que el servidor tiene aceptadas en este momento, la misma lista que muestra Conectados ahora en [Acceso de clientes](connector-opcua-client-access). |
| Dispositivos | Los dispositivos configurados en [Connector](connector), de todos los drivers, activados o no. |
| Drivers | Cuántos drivers distintos usan esos dispositivos. |
| Errores | Las líneas de error del canal de diario del anfitrión de comunicación (servidor y drivers). El canal guarda las 500 líneas más recientes; el conteo se pone rojo cuando no es cero. |
| Advertencias | Las líneas de advertencia de ese mismo canal, en ámbar cuando no es cero. Para un rol que tiene **Ver los eventos** el número es un botón que abre la ventana desprendida de Eventos en el escritorio de la propia estación ("Abrir la ventana de Eventos"); en un navegador de otro dispositivo queda atenuado con "Solo disponible en el escritorio local de la estación.", y para un rol sin el permiso es un simple número. |

## Dos verificaciones, separadas {#two-checks-kept-apart}

Una sesión OPC UA pasa dos verificaciones que este panel configura por separado. La **confianza en el certificado**, en [Acceso de clientes](connector-opcua-client-access), decide si una aplicación puede siquiera llegar al servidor: un certificado desconocido se rechaza en su primer intento y se guarda para que usted lo revise, no se confía en nada automáticamente, y la huella digital, nunca el nombre que declara un certificado, es la identidad que hay que verificar. La **Autenticación del cliente**, en [Configuración](connector-opcua-configuration), decide después cómo inicia sesión una aplicación de confianza: de forma anónima, la opción de fábrica, o con el único nombre de usuario y contraseña configurados. La misma idea apunta en el otro sentido en la [página del driver OPC UA](driver-opc-ua#equipment-access): la estación no lee nada de un equipo OPC UA cuyo certificado usted no haya aprobado.

## El área de notificación y la barra de estado {#the-tray-and-the-status-bar}

El estado vivo del servidor se lee en su fila y en su panel. La línea de salud de la barra de estado, el ícono del área de notificación, su información emergente y la línea de su menú hablan en cambio por [Connector](connector-health), por los dispositivos que lee, porque un servidor apagado no cuesta ninguna lectura y no es lo que necesita saber un operador que vigila la estación. El indicador de marcha, la hora de arranque, el tiempo en marcha y el conteo de sesiones son también puntos del espacio de direcciones de [Logic](logic-from-other-pages), bajo su raíz Server (Running, StartTime, Uptime, SessionCount), así que un panel de control o una expresión pueden leerlos.

Cuando la estación arranca con el servidor encendido y el servidor no puede abrir su puerto, la ventana levanta la tarjeta "El servidor no pudo iniciarse", con **Usar el puerto 4841** y **Abrir Connector**; vea [Configuración](connector-opcua-configuration#when-the-server-cannot-open-its-port-at-start). Todos los desenlaces de un comando de aquí aterrizan en el registro de acciones de la barra de estado, y todos los rechazos y decisiones sobre un certificado se anotan en el diario: las líneas de diario del propio servidor están en la pestaña Consola de [Eventos](events-console), y sus conteos de errores y advertencias son los dos últimos medidores de la tarjeta Estado.

## Lo que un navegador remoto no puede hacer {#what-a-remote-browser-may-not-do}

Un navegador de otro dispositivo con un rol que tiene Configurar Connector ve este panel exactamente como la ventana de la estación, y puede encender y apagar el servidor, reiniciarlo y aplicar una configuración. Lo que no puede es decidir sobre certificados: Agregar cliente, Confiar, Bloquear, Revocar, Desbloquear, Descartar todo, Importar certificado y el botón del Firewall de Windows se rechazan allí con "El acceso de clientes solo se puede cambiar en la aplicación de escritorio de la estación.", y un aviso informativo de la tarjeta lo dice: "Abra la aplicación de escritorio para cambiar el acceso de clientes". El enlace del medidor Advertencias a la ventana de Eventos separada queda atenuado con "Solo disponible en el escritorio local de la estación.".

Dónde viven los certificados: el certificado de aplicación del propio servidor y los almacenes de certificados de cliente de confianza, pendientes y bloqueados están bajo `ua\pki` en la raíz de datos de la estación, y los almacenes de equipos bajo `ua\pki\southbound`. Sobreviven a los reinicios y no son parte de una [copia de seguridad](settings-backups) de la configuración.

## Lo que este panel no hace {#what-this-panel-does-not-do}

No desconecta una sesión (eso lo hace revocar un certificado en Acceso de clientes), no pone a cero los conteos del diario (el registro está limitado y avanza solo), no detiene la lectura de Connector y no reinicia la aplicación. Nunca vuelve a arrancar el servidor por su cuenta después de una falla: un arranque fallido se informa y espera a que usted presione Reiniciar, o al puerto que elija en la tarjeta. El endpoint se cambia en [Configuración](connector-opcua-configuration), y solo mientras el servidor no está escuchando.
