Integración · PLC

Conectar OPC UA a Siemens S7-1500

ProductoSiemens S7-1500
CategoríaPLC
Rol de OPC UAServidor

El S7-1500 lleva un servidor OPC UA integrado en el firmware de la CPU, que se activa en TIA Portal y es accesible en opc.tcp://<plc-ip>:4840. La pega es comercial más que técnica: normalmente se requiere una licencia u opción de runtime para el servidor, y tanto esta como el nivel mínimo de firmware deben confirmarse con Siemens.

Antes de empezar

  • Un nivel de firmware de CPU que incluya el servidor OPC UA, y la licencia u opción de runtime que lo activa. No es seguro dar ninguna de las dos por supuesta a partir de una hoja de datos leída una vez; ambas dependen del número de pedido exacto de la CPU.
  • TIA Portal en una versión que se corresponda con el firmware de la CPU. Un proyecto desarrollado en una versión más antigua de TIA puede no exponer los ajustes de servidor que busca.
  • La licencia presente en la CPU antes de que el servidor pueda servir. Trate la adquisición de la licencia como un plazo de entrega en el plan de proyecto, no como un paso de configuración que se hace el día de la puesta en marcha.
  • Una ruta de red hasta el TCP 4840 desde donde se ejecute el cliente, o un mecanismo de conexión inversa si la CPU está por debajo de un límite de capa Purdue que solo permite conexiones salientes.
  • Un reloj disciplinado. La CPU valida los periodos de validez de los certificados, así que un desfase de reloj entre PLC y cliente se presenta como un fallo de certificado y no como un problema de hora.

Cómo configurarlo

  1. Habilite el servidor en las propiedades de la CPUEn la configuración de dispositivos, abra las propiedades de la CPU y localice los ajustes del servidor OPC UA. Habilite el servidor y anote el endpoint que indica TIA, normalmente opc.tcp://<plc-ip>:4840. Fije el nombre de aplicación de forma deliberada: se propaga al ApplicationUri y al propio certificado de instancia de aplicación de la CPU, y cambiarlo más tarde invalida todas las relaciones de confianza que haya construido.
  2. Decida tag a tag qué se exponeLos tags del PLC y los miembros de bloques de datos llevan atributos de accesibilidad que controlan si son visibles para HMI y OPC UA y si pueden escribirse. Un tag con el atributo de visibilidad desactivado simplemente no aparece en el espacio de direcciones; un tag visible pero no escribible aparece y después rechaza la escritura. Fije estos atributos como una decisión deliberada de interfaz, no dejando los valores por defecto.
  3. Construya una interfaz de servidor en lugar de exponer todo el programaTIA permite definir una interfaz de servidor: un conjunto seleccionado de nodos con los nombres que usted elija, desacoplado de los nombres simbólicos internos. Hágalo. Le da un contrato estable, de modo que refactorizar el programa por dentro no rompe el cliente, y mantiene el espacio de direcciones lo bastante pequeño para que un servidor embebido lo explore con rapidez.
  4. Mapee una especificación complementaria sobre la interfaz si dispone de ellaImporte el fichero NodeSet2 de la especificación complementaria con SiOME, mapee los tags del PLC sobre las variables del modelo y exporte el resultado de vuelta al proyecto TIA como una interfaz de servidor. El cliente explora entonces MachineIdentificationType y una máquina de estados en lugar de un árbol de bloques de datos, y el mismo código de cliente funciona en la siguiente máquina.
  5. Configure la seguridad y los certificados antes que los datosElija las políticas de seguridad y los modos de seguridad de mensaje que ofrecerá la CPU, decida entre tokens de identidad anónimos y de usuario/contraseña, y genere el certificado de servidor de la CPU desde los ajustes globales de seguridad del proyecto. El certificado debe llevar en su Subject Alternative Name todos los nombres de host y direcciones IP que un cliente vaya a marcar realmente, más el ApplicationUri como entrada de tipo URI.
  6. Compile, cargue y después explore con un cliente independienteCargue la configuración hardware y conéctese después con UaExpert u opcua-commander, primero en un endpoint con seguridad None para demostrar la accesibilidad, y solo entonces en un endpoint firmado y cifrado. El primer intento seguro falla normalmente con BadCertificateUntrusted; mueva el certificado del cliente de la lista de rechazados de la CPU a su lista de confianza y confíe en el certificado de la CPU en el lado del cliente.
  7. Lea el NamespaceArray y resuelva los índices en tiempo de ejecuciónLea el NamespaceArray del servidor una vez por conexión, construya un mapa de URI de espacio de nombres a índice y guarde en su configuración el URI de espacio de nombres más el identificador. Nunca guarde el número ns= literal. Esto es lo que evita que la siguiente descarga de programa rompa su cliente.
  8. Consulte los límites de la propia CPU antes de dimensionar suscripcionesLos datos técnicos de la CPU indican el máximo de sesiones, suscripciones y monitored items y los intervalos mínimos de muestreo y de publicación admitidos. Dimensione el cliente a esas cifras y recuerde que el servidor comparte la CPU con el programa cíclico.

Qué aspecto tiene el espacio de direcciones

Salvo que construya una interfaz de servidor, el espacio de direcciones es un árbol con forma Siemens y no un modelo de especificación complementaria: un nodo con el nombre del PLC y, por debajo, carpetas para bloques de datos globales y de instancia, entradas, salidas, marcas, contadores y temporizadores. Los identificadores son cadenas que reflejan los nombres simbólicos de TIA, de modo que un miembro de un bloque de datos llega como algo parecido a ns=3;s="MyDB"."Speed", con los elementos de array indexados en el identificador. Las estructuras declaradas en el programa aparecen como valores estructurados, que su cliente solo podrá decodificar si admite el mecanismo de descripción de tipos elegido por el servidor. Una interfaz de servidor sustituye todo esto por los nombres y la jerarquía que usted haya definido, y un modelo complementario mapeado con SiOME lo sustituye por tipos estándar bajo los URI de espacio de nombres estándar.

Las trampas

  • La licencia es el riesgo de planificación más habitual de toda la integración. Un servidor que no arranca porque nunca se pidió una opción tiene exactamente el mismo aspecto que un problema de cortafuegos durante la primera tarde. Confirme con Siemens los requisitos actuales de licencia y firmware antes de que nadie reserve tiempo de puesta en marcha.
  • Los índices de espacio de nombres se asignan al arrancar el servidor y pueden desplazarse tras una carga de programa o un cambio de firmware. Un cliente con un número ns= fijado de forma rígida falla entonces con BadNodeIdUnknown en nodos que siguen estando perfectamente presentes. Resuelva los índices desde el NamespaceArray en el momento de conectar.
  • Conseguir que la CPU acepte el certificado del cliente es en la práctica el mayor obstáculo de despliegue, y es una operación de dos lados: el cliente debe confiar en la CPU y la CPU debe confiar en el cliente. Planifique un procedimiento de lista de confianza, o una PKI, antes de la primera máquina y no después de la décima.
  • Un tag visible pero no marcado como escribible aceptará la petición de escritura y devolverá un estado Bad. Lea siempre de vuelta después de escribir durante la puesta en marcha, y compruebe el StatusCode devuelto en lugar de confiar en que no se haya lanzado ninguna excepción.
  • Los servidores embebidos tienen límites de sesiones, suscripciones y monitored items muy inferiores a los de un servidor sobre PC. Tres clientes que abran cada uno su propia sesión con su propio intervalo de publicación pueden agotar una CPU que un único cliente bien diseñado ni notaría.
  • El comportamiento de las marcas de tiempo en servidores embebidos en PLC suele ser pobre: SourceTimestamp puede no aportar más que ServerTimestamp, y el reloj de la CPU puede estar en hora local sin desfase. Decida qué marca de tiempo almacena, verifique qué rellena realmente la CPU y mantenga NTP en todo.
  • Los periodos de validez de los certificados se comprueban contra el reloj de la CPU. Una CPU que ha perdido su reloj durante un apagado prolongado rechaza certificados válidos con un error de tiempo hasta que se corrige el reloj.

Cómo sacarle datos de OEE

De un S7-1500 se pueden obtener disponibilidad, recuentos y motivos, pero solo lo que calcule el programa. Por defecto no hay nada normalizado: el estado sale del booleano o del entero que haya usado el programador, los recuentos del contador que exista y los motivos de las palabras de fallo. Pida un modelo de estados y un contador en el PLC en lugar de detectar flancos de un bit de marcha en su cliente, porque el cliente solo ve valores muestreados y pasará por alto las paradas cortas entre muestras. Si se consigue convencer al fabricante de la máquina de que publique una interfaz de servidor mapeada a los tipos de Machinery o MachineTool, la disponibilidad y los recuentos pasan a ser portables entre fabricantes y el mapeo deja de ser un trabajo específico de cada máquina. El tiempo de producción planificado, los calendarios de turnos, los tiempos de ciclo estándar y el contexto de orden de fabricación no están en la CPU y deben venir del MES o del ERP.

Verifique esto antes de confiar en ello:Si su CPU requiere una licencia u opción de servidor OPC UA, cómo se llama y cómo se dimensiona, el nivel mínimo de firmware para las funciones de servidor, cliente y PubSub, y los límites por CPU de sesiones, suscripciones, monitored items e intervalo de muestreo mínimo son cuestiones controladas por el fabricante y han cambiado entre generaciones de firmware. Confirme cada una de ellas con Siemens contra su número de referencia de CPU y firmware exactos antes de comprometer una planificación, y no tome una cifra de un post de foro ni de esta página como dato de compra.

Última verificación el 7 de septiembre de 2026 frente a OPC UA 1.05.07. OPC UA Connect es un recurso educativo y no está afiliado a la OPC Foundation.

Descarga gratuita
OPC UA Machine Data → OEE Mapping Kit
A qué nodos suscribirse, cómo se convierten en Disponibilidad, Rendimiento y Calidad, y qué especificación complementaria ya le da la respuesta, para que deje de inventar tags.
Consiga el kit de mapeo gratis →
Gratis, sin curso, sin registro