Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Información jurídica
Uso de ejemplos de aplicación
Los ejemplos de aplicación ilustran la solución de tareas de automatización mediante la interacción de varios
componentes en forma de texto, gráficos y/o módulos de software. Los ejemplos de aplicación son un servicio
gratuito de Siemens AG y/o de una filial de Siemens AG ("Siemens"). No son vinculantes y no pretenden ser
completos ni funcionales en cuanto a configuración y equipamiento. Los ejemplos de aplicación sólo ofrecen
ayuda para tareas típicas; no constituyen soluciones específicas para el cliente. Usted mismo es responsable
del funcionamiento correcto y seguro de los productos de acuerdo con la normativa vigente y debe comprobar
también el funcionamiento del ejemplo de aplicación correspondiente y adaptarlo a su sistema.
Siemens le concede el derecho no exclusivo, no sublicenciable e intransferible a que los ejemplos de aplicación
sean utilizados por personal técnicamente capacitado. Cualquier modificación de los ejemplos de aplicación es
responsabilidad suya. Sólo se permite compartir los ejemplos de aplicación con terceros o copiar los ejemplos
de aplicación o extractos de los mismos en combinación con sus propios productos. Los ejemplos de aplicación
no deben someterse a las pruebas e inspecciones de calidad habituales de un producto facturable; pueden
presentar defectos funcionales y de rendimiento, así como errores. Es responsabilidad del usuario utilizarlos de
forma que los fallos de funcionamiento que puedan producirse no ocasionen daños materiales o personales.
Exención de responsabilidad
Siemens no asumirá ninguna responsabilidad, por ningún motivo legal, incluyendo, sin limitación, la
responsabilidad por la usabilidad, disponibilidad, integridad y ausencia de defectos de los ejemplos de
aplicación, así como por la información relacionada, la configuración y los datos de rendimiento y cualquier
daño causado por ello. Esto no se aplicará en los casos de responsabilidad obligatoria, por ejemplo, en virtud
de la Ley alemana de responsabilidad por productos defectuosos, o en los casos de dolo, negligencia grave o
pérdida culpable de la vida, lesiones corporales o daños a la salud, incumplimiento de una garantía, no
revelación fraudulenta de un defecto o incumplimiento culpable de obligaciones contractuales materiales. No
obstante, las reclamaciones por daños y perjuicios derivadas del incumplimiento de obligaciones contractuales
materiales se limitarán a los daños previsibles típicos del tipo de acuerdo, a menos que la responsabilidad se
derive de dolo o negligencia grave o se base en la pérdida de vidas, lesiones corporales o daños para la salud.
Siemens AG 2022 Todos los derechos
Las disposiciones anteriores no implican ninguna modificación de la carga de la prueba en su perjuicio. Usted
eximirá a Siemens de las reclamaciones existentes o futuras de terceros en este sentido, salvo en los casos en
que Siemens sea obligatoriamente responsable.
Al utilizar los ejemplos de aplicación, usted reconoce que Siemens no se hace responsable de ningún daño que
vaya más allá de las disposiciones de responsabilidad descritas.
Información adicional
reservados
Siemens se reserva el derecho a realizar modificaciones en los ejemplos de aplicación en cualquier momento y sin
previo aviso. En caso de discrepancias entre las sugerencias de los ejemplos de aplicación y otras publicaciones de
Siemens, como los catálogos, tendrá preferencia el contenido de la otra documentación.
También se aplicarán las condiciones de uso de Siemens (https://support.industry.siemens.com).
Para proteger las plantas, los sistemas, las máquinas y las redes contra las ciberamenazas, es necesario
implantar -y mantener continuamente- un concepto de seguridad industrial holístico y de vanguardia. Los
productos y soluciones de Siemens constituyen un elemento de dicho concepto.
Los clientes son responsables de impedir el acceso no autorizado a sus instalaciones, sistemas, máquinas y
redes. Dichos sistemas, máquinas y componentes sólo deben conectarse a una red de empresa o a Internet si
tal conexión es necesaria y en la medida en que lo sea, y sólo cuando existan medidas de seguridad adecuadas
(por ejemplo, cortafuegos y/o segmentación de la red).
Para más información sobre las medidas de seguridad industrial que pueden aplicarse, visite
https://www.siemens.com/industrialsecurity.
Los productos y soluciones de Siemens están sometidos a un desarrollo continuo para hacerlos más seguros.
Siemens recomienda encarecidamente que las actualizaciones de los productos se apliquen en cuanto estén
disponibles y que se utilicen las últimas versiones de los productos. El uso de versiones de productos que ya no
son compatibles y la no aplicación de las últimas actualizaciones pueden aumentar la exposición del cliente a
las ciberamenazas.
Para mantenerse informado sobre las actualizaciones de productos, suscríbase al canal RSS de Siemens Industrial
Security en: https://www.siemens.com/industrialsecurity.
Índice
Información jurídica ..........................................................................................................................2
1 Introducción ............................................................................................................................4
1.1 Visión general ............................................................................................................4
1.2 Modo de funcionamiento ...........................................................................................5
1.3 Componentes utilizados .............................................................................................7
2 Ingeniería .................................................................................................................................8
2.1 Configuración del servidor OPC UA del S7-1500......................................................8
2.1.1 Habilitación del servidor OPC UA..............................................................................8
2.1.2 Activación de la configuración de seguridad global .................................................10
2.1.3 Configuración de políticas de seguridad OPC UA (puntos finales del servidor)......11
2.1.4 Seguridad mediante gestión de certificados (opcional)...........................................12
2.1.5 Creación de usuario para el servidor OPC UA........................................................14
2.1.6 Habilitación de etiquetas para la comunicación OPC UA........................................15
2.2 Programación del ejemplo de cliente OPC UA........................................................16
2.2.1 Cliente OPC UA S7-1500 ........................................................................................16
2.2.2 UAClientHelperAPI ..................................................................................................19
2.2.3 Diagrama de secuencia para el ejemplo del cliente ................................................21
2.3 Operación ................................................................................................................27
2.3.1 Descripción de la interfaz de usuario.......................................................................27
Siemens AG 2022 Todos los derechos
1 Introducción
UA UA
reservados
OPC UA
Conocimientos asumidos
El usuario debe tener los siguientes conocimientos básicos:
• Fundamentos de programación en C#/.NET
• Conceptos básicos de configuración en el Portal TIA
• Conceptos básicos de OPC
• Conceptos básicos de seguridad de software y gestión de certificados
Ethernet industrial
OPC UA
reservados
UAClientHelperAPI
Un sencillo cliente OPC UA .NET para PCs/PGs Windows se comunica con el servidor OPC
UA de un SIMATIC S7-1500.
El cliente admite los siguientes conjuntos de servicios OPC UA:
• Búsqueda y localización de servidores: Conjunto de servicios de descubrimiento (FindServers,
GetEndpoints)
• Creación y finalización de sesiones: Conjunto de servicios de sesiones (CreateSession,
CloseSession)
• Navegar en el espacio de direcciones: Ver conjunto de servicios (Navegar,
RegistrarNodos, DesregistrarNodos)
• Lectura y escritura de etiquetas y atributos: Conjunto de servicios de atributos (lectura,
escritura)
• Suscripción a etiquetas: Subscription Service Set (CreateSubscription,
DeleteSubscription); MonitoredItem Service Set (CreateMonitoredItem,
DeleteMonitoredItem)
• Llamada a métodos: Conjunto de servicios de métodos (GetMethodArguments, CallMethod)
El servidor OPC UA de SIMATIC S7-1500 se planifica y configura a través del TIA Portal. El
cliente OPC UA se crea en C#/.NET y utiliza internamente la pila OPC UA .NET de libre acceso
de la OPC Foundation. Para facilitar las implementaciones individuales de un cliente .NET, se
incluye la clase C# "UAClientHelperAPI". Esta clase resume las funciones básicas del
.NET de la OPC Foundation y le facilita considerablemente el uso de las funciones básicas. El
cliente y el servidor se conectan a través de Ethernet y se comunican mediante OPC UA a
través de TCP/IP.
Secuencia funcional
Una vez que el servidor OPC UA ha sido planificado, configurado (con certificado de cliente) y
cargado en la CPU, la siguiente secuencia funcional es el resultado para el cliente de este
ejemplo:
Figura 1-3
Iniciar cliente
Solicitar puntos
finales del
servidor a través
de LDS
Siemens AG 2022 Todos los derechos
Conectarse al
punto final del
servidor
reservados
Navegar por
los nodos
del
servidor
Iniciar
Leer o Registrar Solicitar
suscripción a
escribir nodos de argumentos de
nodos de
nodos de etiquetas entrada y salida
etiquetas
etiquetas
Detener la
Leer o
suscripción a Método de
escribir
nodos de llamada
nodos de
etiquetas
etiquetas
Para poder solicitar puntos finales del servidor a través de un LDS (Local Discovery Server)
NOTA o GDS (Global Discovery Server) es necesario tener instalado un LDS en el PC/PG o
disponer de un GDS en la red.
Cuadro 1-1
Componente Cant. Número de artículo Nota
S7-1500 1 6ES7 511-1UK01-0AB0 Cualquier S7-1500-CPU compatible,
CPU 1511TF-1 PN Firmware 2.9 o superior
STEP 7 Profesional 1 6ES7822-1..05-.. TIA Portal V15 o superior
Tabla 1-2
Componente Nombre del fichero Nota
Documentación 109737901_OPC_UA_Client_S7- Este documento.
1500_DOKU_V1_5_en.pdf
Ejemplo de proyecto 109737901_OPC_UA_Client_S7- El archivo ZIP contiene el
1500_CODE_V1_5.zip proyecto de Visual Studio y TIA
Portal.
El proyecto TIA Portal está protegido. Para iniciar sesión necesita las siguientes
2 Ingeniería
2.1 Configuración del servidor OPC UA del S7-1500
Las siguientes instrucciones paso a paso muestran cómo planificar y configurar el servidor OPC
UA de SIMATIC S7- 1500 a través del TIA Portal.
Requisitos previos
• Cree un nuevo proyecto TIA Portal (V15 o superior).
• Configure un SIMATIC S7-1500 con firmware 2.9 o superior.
El servidor OPC UA del S7-1500 está desactivado por defecto. Las instrucciones siguientes le
muestran cómo habilitar los pasos necesarios en el servidor:
1. Vaya a las "Propiedades" de la CPU S7-1500 configurada en el Portal TIA.
2. Vaya a "Licencias de tiempo de ejecución > OPC UA" en la ventana del inspector y
seleccione allí la licencia necesaria.
Siemens AG 2022 Todos los derechos
3. Vaya a "OPC UA > Servidor > General" en la ventana del inspector y active allí la casilla
reservados
Este valor determina a qué intervalos mínimos se permite al servidor OPC UA enviar datos a
un cliente a través de suscripciones OPC UA.
"Intervalo mínimo de muestreo":
NOTA Este valor determina en qué intervalos mínimos se permite al servidor OPC UA solicitar
cambios de datos de la gestión de datos de la CPU.
reservados
Estos valores influyen en la comunicación y en la carga de la CPU, por lo que deben tenerse
en cuenta. El valor mínimo depende del tipo de CPU.
Para gestionar los certificados de software del servidor OPC UA, es necesario habilitar la
configuración de seguridad global del proyecto TIA. Las instrucciones siguientes le muestran
los pasos necesarios:
1. Navegue hasta las "Propiedades" de la CPU S7-1500 configurada en el Portal TIA.
2. Vaya a "Protección y seguridad > Gestor de certificados" y active la casilla "Utilizar
la configuración de seguridad global para el gestor de certificados".
3. Vaya a "OPC UA > Servidor > Seguridad > Certificados" en la navegación del proyecto y
cree un nuevo certificado de servidor.
Siemens AG 2022 Todos los derechos
reservados
5. Vaya a "Ajustes de seguridad > Ajustes > Protección del proyecto" en la navegación del
proyecto y haga clic en el botón "Proteger este proyecto". Asigne un "Nombre de usuario"
y una "Contraseña", para poder realizar ajustes de seguridad en su proyecto.
Para que un cliente OPC UA pueda conectarse a los puntos finales del servidor OPC UA,
NOTA debe admitir las políticas seleccionadas.
La siguiente instrucción le muestra lo que debe configurar para permitir que sólo los clientes OPC
UA con certificados de software definidos se conecten al servidor OPC UA:
1. Vaya a "Propiedades" de la CPU S7-1500 configurada en el portal TIA. Vaya a la
ventana de inspección "OPC UA > Servidor > Seguridad > Certificados" y desactive la
casilla de verificación "Aceptar automáticamente todos los certificados de cliente durante
el tiempo de ejecución" en "Clientes de confianza".
Siemens AG 2022 Todos los derechos
Sin embargo, cuando se activa la política de seguridad "none", cualquier cliente puede
NOTA seguir conectándose a través del endpoint correspondiente incluso sin certificado aceptado.
3. Haga clic con el botón derecho del ratón en el área de trabajo y, a continuación, haga clic con
el botón izquierdo en "Importar".
5. Vaya a la ventana de inspección "OPC UA > Servidor > Seguridad > Certificados" y vaya al
área "Clientes de confianza". Haga doble clic en "<Añadir nuevo>" en la lista y, a
continuación, haga clic en el icono "...".
Si desea crear un usuario en el servidor para la autenticación, proceda del siguiente modo:
1. Navegue hasta las "Propiedades" de la CPU S7-1500 configurada en el Portal TIA.
2. Vaya a la ventana de inspección "OPC UA > Servidor > Seguridad > Autenticación de
usuario".
3. Active la casilla "Activar autenticación de nombre de usuario y contraseña".
Para cada tag (aparte de los temporales) en el programa de usuario S7 puede especificar
individualmente si deben ser habilitados para la comunicación OPC UA. La siguiente
instrucción le explica lo que tiene que hacer.
1. En su proyecto TIA navegue hasta las etiquetas que desea tener en un FB, DB o las etiquetas
del PLC.
2. Active la casilla "Accesible desde HMI/OPC UA" en las declaraciones de etiquetas.
4. Los tags modificados por usted son ahora escribibles o legibles a través de clientes OPC UA.
El programa de ejemplo de cliente OPC UA "OPC UA Client S7-1500" ha sido creado en .NET y
requiere .NET Framework 4.8.
Configuración estructural
La siguiente figura muestra la estructura del ejemplo de cliente OPC UA de este ejemplo de
aplicación:
Figura 2-1
Interfaz de usuario
UAClientForm
UAClientForm.cs
UAClientMatrixForm
Siemens AG 2022 Todos los derechos
UaClientCertForm
UAClientCertForm.cs
reservados
UAClientHelperAPI
UaClientHelperAPI.cs
La "pila OPC UA .NET" de la Fundación OPC incluye las clases/objetos reales que ejecutan y
gestionan la comunicación OPC UA. La pila consiste en una multitud de bibliotecas (DLLs).
Este ejemplo de aplicación sólo se realiza a través de los métodos y objetos de
Opc.Ua.Core.dll, Opc.Ua.Client.dll y Opc.Ua.Security.Certificates.dll. La descarga de la pila
.NET completa, así como su documentación, puede encontrarse en los enlaces y bibliografía
del punto
\2\.
GetNamespaceArray -
NavegarRaíz BrowsePage_Enter
NavegarNodo NodeTreeView_BeforeExpand
BrowseNodeByReferenceType -
Suscríbase a SubscribeButton_Click
reservados
AddMonitoredItem SubscribeButton_Click
AddEventMonitoredItem -
EliminarelementoSupervisado SubscribeButton_Click
EliminarSuscripción UnsubscribeButton_Click
LeerNodo NodeTreeView_BeforeSelect
ReadNodeAttributes StructReadButton_Click
EscribirValores WriteValButton_Click
RgWriteValButton_Click
LeerValores ReadValButton_Click
RgReadButton_Click
ReadStructUdt StructReadButton_Click
WriteStructUdt StructWriteButton_Click
RegisterNodeIds RegisterButton_Click
UnregisterNodeIds UnregisterButton_Click
GetMethodArguments MethodInfoButton_Click
Método de llamada CallButton_Click
En la siguiente tabla se enumeran los EventHandlers en los que deben procesarse los eventos
públicos de la UAClientHelperAPI:
Cuadro 2-2
UAClientHelperAPI Usado en UAClientForm.cs en el manejador
de eventos...
Notificación_CertificadoValidación Validator_CertificateValidation
Notification_MonitoredItem Notification_MonitoredItem
Notificación_KeepAlive Notificación_KeppAlive
Notification_MonitoredEventItem -
Server_ReconnectComplete -
Diagrama de clases
El siguiente diagrama de clases muestra las clases del ejemplo de cliente OPC UA. Las
funciones de la interfaz del programa son implementadas por las clases utilizadas.
Figura 2-2
UAClientForm
UAClientCertForm
+ConnectServerButton_Click()
+SubscribeButton_Click() +AcceptButton_Click()
+ReadValButton_Click()
+RejectButton_Click()
+RegisterButton_Click()
Siemens AG 2022 Todos los derechos
+ ...
-miSesión
-miSuscripción
reservados
-myMonitoredItem
UAClientHelperAPI
2.2.2 UAClientHelperAPI
Las siguientes explicaciones describen la clase reutilizable "UAClientHelperAPI" que ilustra las
principales funcionalidades del ejemplo de cliente OPC UA.
Diagrama de clases
La siguiente figura muestra el diagrama de clases para la clase "UAClientHelperAPI". Los
métodos de acceso más importantes a un servidor OPC UA están encapsulados y resumidos
en esta clase.
La UAClientHelperAPI accede a los ensamblados .NET Opc.UA.Client.dll, Opc.UA.Core.dll y
Opc.Ua.Security.Certificates.dll de la OPC Foundation.
Figura 2-3
UAClientHelperAPI
D
+BuscarServidores()
+GetEndpoints()
+Conectar()
+Desconexión()
+GetNamespaceUri()
+GetNamespaceIndex()
+GetNamespaceArray()
+BrowseRoot()
Siemens AG 2022 Todos los derechos
+BrowseNode()
+Suscribirse()
+EliminarSuscripción()
+AddMonitoredItem()
+AddEventMonitiredItem()
+RemoveMonitoredItem()
reservados
+ReadNode()
+ReadNodeAttributes()
+ReadValues()
+EscribirValores()
+ReadStructUdt()
+WriteStructUdt()
+RegisterNodeIds()
+UnregisterNodeIds()
+GetMethodArguments()
+CallMethod()
+Notificación_CertificateValidation()
+Notification_MonitoredItem()
+Notification_KeepAlive()
+Notification_MonitoredEventItem()
+Server_ReconnectComplete
Servidor OPC UA
Tabla 2-3
Método Explicación
BuscarServidores Busca servidores OPC UA en la red.
Requisitos: Debe estar disponible un LDS (Local Discovery Server) o
un GDS (Global Discovery Server).
GetEndpoints Determina los puntos finales disponibles en un servidor a través de
los cuales se puede establecer una conexión.
Conectar Establece una conexión con un servidor y crea un canal seguro y
una sesión con el servidor.
Disconnet Finaliza una sesión existente y desconecta la conexión con el
servidor.
NavegarRaíz Devuelve una colección de nodos que se pueden encontrar en el
directorio raíz del servidor.
NavegarNodo Devuelve una colección de nodos que se pueden encontrar
jerárquicamente en un nodo específico.
BuscarPorTipoDeReferencia Devuelve una colección de nodos que se pueden encontrar en un
nodo específico por un tipo de referencia específico.
GetNamespaceUri Devuelve el espacio de nombres Uri relacionado con un índice de
Siemens AG 2022 Todos los derechos
En este ejemplo, no se pueden convertir todos los tipos de datos PLC disponibles. Esta
restricción afecta a los métodos "ReadValues", "WriteValues", "ReadStructUdt",
NOTA
"WriteStructUdt" y Subscription.
Adapte el código fuente a sus necesidades.
Los siguientes diagramas de secuencia muestran las secuencias de programa del cliente de
ejemplo OPC UA para varias funciones del ejemplo.
DiscoveryClient.GetEndpoints()
Siemens AG 2022 Todos los derechos
GetEndpoints()
Validación de certificados()
Sesión.KeepAlive()
Cuadro 2-4
No. Descripción
1. A través del botón "Get Endpoints", se llama al método EndpointButton_Click() de la interfaz,
que a su vez llama a los métodos FindServers() y GetEndpoints() de la UAClientHelperAPI.
Como resultado, el usuario recibe todos los endpoints disponibles en la red (si se dispone de
un LDS o GDS) o de un servidor.
2. Una vez que el usuario ha seleccionado un endpoint de la lista y ha pulsado el botón
"Conectar al servidor", se llama al método UI EpConnectButton_Click(). Esto llama al método
Connect() de la UAClientHelperAPI. Se crea y rellena un objeto session y otro objeto para el
método Session.Create(). Una vez que se ejecuta el Session.Create(), se responde a un
evento CertificateValidation que llega a través del cual se puede validar el certificado del
servidor.
3. Cuando se vuelve a pulsar el botón se ejecuta de nuevo el método
EpConnectButton_Click(). Si ya existe una conexión, se ejecuta el método Disconnect() de
la UAClientHelperAPI. Esto finaliza la sesión existente a través del método Session.Close()
de la pila OPC UA.
2 NodeTreeView_
BeforeExpand() NavegarNodo( Sesión.Examinar(
) )
Tabla 2-5
No. Descripción
1. Tan pronto como el usuario en el ejemplo de cliente va a la pestaña "Browse Nodes", el
método BrowsePage_Enter() UI es llamado. Esto llama al método BrowseRoot() de la
UAClientHelperAPI. En este caso, se llama al método Session.Browse() de la pila OPC UA
con los parámetros de transferencia adecuados, para navegar por el nodo raíz del servidor.
2. Cuando se expande un nodo de la vista en árbol del espacio de direcciones, se llama al
método UI NodeTreeView_BeforeExpand(). Esto llama al método BrowseNode() de la
UAClientHelperAPI. En este caso, se llama al método Session.Browse() de la pila OPC UA
Siemens AG 2022 Todos los derechos
con los parámetros de transferencia adecuados, para examinar cualquier nodo del servidor.
Figura 2-6
2 WriteValButton_Click() EscribirValore 3
s() Session.ReadNode()
4 Session.Write()
Tabla 2-6
No. Descripción
1. Cuando se pulsa el botón "Leer", se llama al método UI ReadValButton_Click(). Transfiere
el método ReadValues() una lista de cadenas de ID de nodo a la UAClientHelperAPI. A
partir de la lista de cadenas transmitida, se crea una lista de ID de nodos y se transfiere al
método de pila OPC UA Session.ReadValues(). Este método lee todos los valores de los ID
de nodo de la lista y los devuelve.
2. Cuando se pulsa el botón "Write", se llama al método UI WriteValButton_Click(). Esto
transfiere un diccionario de pares de valores de ID de nodos y sus valores
relacionados como cadena al método WriteValues() de la UAClientHelperAPI.
No. Descripción
3. Los identificadores de nodo se crean a partir de las cadenas transmitidas. Estos se leen
mediante el método Session.ReadNode(), para determinar sus tipos de datos.
4. El método Session.Write() escribe los valores en el servidor a través de los tipos de datos e
identificadores de nodo determinados.
1
StructReadButton_Click() ReadStructUdt()
2
LeerAtributosDeNodo
()
3 LeerNodo()
4 GetTypeDictionary()
ParseDataToTags
Siemens AG 2022 Todos los derechos
5 FromDictionary()
6 7
StructWriteButton_Click() WriteStructUdt()
LeerAtributosDeNodo
reservados
()
8 LeerNodo()
GetTypeDictionary()
9
ParseDataTo
10 ByteArray()
Session.Write()
11
Tabla 2-7
No. Descripción
1. Cuando se pulsa el botón "Read Struct/UDT", se llama al método de la UI
StructReadButton_Click(). Esto transfiere una lista de cadenas de ID de nodo al método
ReadStructUdt() de la UAClientHelperAPI.
2. El método "ReadNodeAttributes" lee los atributos del ID de nodo basándose en el ID de
nodo transferido. De ellos, se utilizan los atributos "Value" y "DataType".
3. Basándose en el atributo determinado para el tipo de datos, el nodo de tipo de datos se lee
mediante el método "ReadNode". Recibirá un ID de nodo del tipo "DataTypeNode".
No. Descripción
4. Basándose en el tipo de datos Nodo el método GetTypeDictionary() lee el TypeDictionary
del servidor. El diccionario se crea de la siguiente manera:
1. Los datos leídos anteriormente Tipo Nodo contienen en su cuerpo la información
sobre la estructura con la clase "StructureDefinition".
2. Utilizando el objeto de la clase "StructureDefinition" se obtiene una
"StructureFieldCollection", que contiene toda la información sobre los campos de
la estructura
3. Comprobando el "NamespaceIndex" de los campos de estructura individuales en la
"StructureFieldCollection" se determina si otras estructuras/UDTs están contenidas
en la estructura/UDT padre. Si es así, se lee el ID de nodo del campo de estructura
correspondiente y se llama recursivamente a la función "GetTypeDictionary()".
4. Cada campo de estructura del tipo de datos base se añade a una lista de
matrices de cadenas con la información sobre el tipo de datos y las dimensiones
de la matriz.
El método devuelve una lista con todos los campos de la estructura, el "TypeDictionary", así
como sus tipos de datos y dimensiones del array.
5. Basándose en el "TypeDictionary" determinado y el atributo "Value", que se lee en una
estructura como matriz de bytes, el método "ParseDataToTagsFromDictionary" deserializa
la matriz de bytes según los campos individuales y su tipo de datos del "TypeDictionary". El
método devuelve una lista de matrices de cadenas, que contienen la información, el índice
de la matriz, el nombre de la etiqueta, el valor de la etiqueta y el tipo de datos de la
etiqueta.
6. Cuando se pulsa el botón "Write Struct/UDT", se llama al método UI
StructWriteButton_Click(). Transfiere los valores de proceso introducidos y un ID de nodo al
método WriteStructUdt() de la UAClientHelperAPI.
Siemens AG 2022 Todos los derechos
Registro de ID de nodos
El siguiente diagrama de secuencia muestra los procedimientos para registrar IDs de nodo en
el servidor OPC UA. Las operaciones de lectura y escritura optimizadas se pueden ejecutar a
través de estos ID registrados.
Figura 2-8
1
RegisterButton_Click() RegistrarNodos() Session.RegisterNodes()
2
DesregistrarBotón_Clic() DesregistrarNodos() Session.UnregisterNodes()
Tabla 2-8
No. Descripción
1. Al hacer clic en el botón "Registrar", se llama al método de interfaz de usuario
RegisterButton_Click(). Esto transfiere al método RegisterNodeIds() una lista de cadenas
de ID de nodo a la UAClientHelperAPI. A partir de la lista de cadenas transmitida, se crea
una lista de ID de nodos y se transfiere al método de pila OPC UA
Session.RegisterNodes(). Este método registra todos los ID de nodo de la lista.
2. Cuando se pulsa el botón "Unregister", se llama al método UI UnregisterButton_Click().
Siemens AG 2022 Todos los derechos
Suscripción/finalización de suscripciones
El siguiente diagrama de secuencia muestra los procedimientos para suscribirse o finalizar la
suscripción a determinadas etiquetas:
Figura 2-9
Suscripción.Crear()
3 AñadirelementoSup Subscription.AddItem()
ervisado()
Tabla 2-9
No. Descripción
1. Al hacer clic en el botón "Suscribir", se llama al método de interfaz de usuario
SubscribeButton_Click(). Esto llama al método Subscribe() de la UAClientHelperAPI.
2. Dentro del método Subscribe(), se crea una suscripción, se transfiere a la sesión
(Session.AddSubscription) y se habilita (Subscription.Create()).
3. Dentro del método de interfaz de usuario SubscribeButton_Click() se crea un elemento
supervisado una vez que se ha creado una suscripción y se ha transferido al método
AddMonitoredItem() de la UAClientHelperAPI. Esto agrega el elemento supervisado
transferido mediante el método Subscription.AddItem() a la suscripción.
4. Cuando se vuelve a hacer clic en el botón "Suscribir", se llama al método de interfaz de
usuario UnregisterButton_Click(). Esto llama al método RemoveSubscription() de la
UAClientHelperAPI. Dentro de este método, se llama al método de pila UA
Subscription.Delete() que finaliza la suscripción en el servidor.
Métodos de llamada
El siguiente diagrama de secuencia muestra los procedimientos para llamar a los métodos del
servidor.
Figura 2-10
MethodInfoButton_
1 GetMethodArguments() 2 Sesión.Examinar()
Click()
Session.ReadValues()
reservados
Tabla 2-10
No. Descripción
1. Cuando se pulsa el botón "Get Method Info", se llama al método UI
MethodInfoButton_Click(). Esto llama al método GetMethodArguments() de la
UAClientHelperAPI.
2. Dentro del método GetMethodArguments(), se utiliza Session.Browse() para navegar hasta
los nodos de los argumentos de entrada y salida. Posteriormente, los argumentos se leen
mediante Session.ReadValues(). Al hacerlo, se determinan los nombres y tipos de datos de
los argumentos.
3. Cuando se pulsa el botón "Call Method", se llama al método de interfaz de usuario
CallButton_Click(). Éste llama al método CallMethod() de la UAClientHelperAPI y transfiere
los argumentos de entrada previamente determinados, así como los valores que hayas
asignado para los argumentos en la interfaz de usuario. Tras la llamada, el resultado del
método se convierte de acuerdo con los argumentos de salida determinados y se devuelve.
2.3 Operación
Las siguientes instrucciones paso a paso le muestran cómo puede poner en marcha el ejemplo
de aplicación y cómo puede utilizarlo.
La interfaz de usuario del cliente de ejemplo "OPC UA Client S7-1500" se divide en cinco
pestañas:
• "Conectar"
• "Navegar por los nodos"
• "Lectura/Escritura"
• "Suscribirse"
• "Leer/Escribir Struct/UDT"
• "Llamada al método"
Las descripciones siguientes explican con más detalle cada una de las pestañas:
"Conectar
" La siguiente figura muestra la interfaz de la pestaña "Conectar":
Figura 2-11
Siemens AG 2022 Todos los derechos
1 2
reservados
No. Descripción
5. Botón para establecer una conexión con un punto final seleccionado de la lista (3).
2
Siemens AG 2022 Todos los derechos
1
reservados
"Lectura/Escritura"
La siguiente figura muestra la interfaz de la pestaña "Lectura/Escritura".
Figura 2-13
1 2 3
4 5
6
7
8 9 10 11
12 13
Siemens AG 2022 Todos los derechos
14 15
reservados
3
Siemens AG 2022 Todos los derechos
1
reservados
"Suscribirse"
La siguiente figura muestra la interfaz de la pestaña "Suscribirse".
Figura 2-16
2 3
4
Siemens AG 2022 Todos los derechos
reservados
"Leer/Escribir Struct/UDT"
La siguiente figura muestra la interfaz de la pestaña "Lectura/Escritura Struct/UDT".
Figura 2-17
3
Siemens AG 2022 Todos los derechos
4
reservados
"Llamada al método"
La siguiente figura muestra la interfaz de la pestaña "Llamada a métodos".
Figura 2-18
2
4
3
6
Siemens AG 2022 Todos los derechos
reservados
Realice los pasos de configuración del capítulo 2.1 "Configuración del servidor OPC UA del
S7- 1500" o descargue el proyecto TIA Portal ya preparado en su controlador. Proceda como
se indica a continuación:
1. Descargue el proyecto "109737901_OPC_UA_Client_S7-1500_CODE_V13.zip" en su
disco duro. La descarga se encuentra en la página HTML de esta entrada (\1\).
2. Descomprime el proyecto.
3. Navegue hasta "OPC_UA_Server_1500" en la carpeta descomprimida. El proyecto
TIA Portal se encuentra en esta carpeta.
4. Abra el proyecto haciendo doble clic en el archivo "UA Server 1500.ap17".
– Nombre de usuario: "Usuario"
– Contraseña: "Siemens.1"
5. Seleccione la CPU en el árbol de proyectos y cargue el proyecto en el controlador.
Siemens AG 2022 Todos los derechos
reservados
Certificados".
reservados
9. Haga clic con el botón derecho del ratón en el certificado "UA Client 1500" que ha creado
el cliente de ejemplo y vaya a "Todas las tareas" en el menú contextual. A continuación,
haga clic en "Exportar...".
10. En el cuadro de diálogo que aparece a continuación, haga clic en "Siguiente >".
11. Seleccione la casilla "No, no exportar clave privada" y haga clic en "Siguiente >".
12. Seleccione la casilla "X.509 binario codificado con DER (.CER)" y, a continuación, haga clic
en "Siguiente >".
Siemens AG 2022 Todos los derechos
reservados
Conéctese al cliente de ejemplo con un servidor OPC UA a través del navegador de endpoints.
Proceda como se indica a continuación:
1. Introduzca la URL de un servidor OPC UA, LDS o GDS en el campo de texto.
Haga clic en el botón "Obtener puntos finales".
Si no especifica ningún puerto, se utilizará el puerto por defecto "4840". Si utiliza otro
NOTA puerto, debe añadir ":" y el número de puerto.
2. Seleccione un punto final detectado con el que desee establecer una conexión.
NOTA Para volver a rechazar el certificado más adelante, deberá eliminarlo del almacén de
certificados de Windows.
Dentro del almacén hay un certificado aceptado permanentemente en "Raíz de la consola >
Certificados - Usuario actual > Autoridades de certificación raíz de confianza >
Certificados".
5. El texto del botón "Conectarse al servidor" cambia a "Desconectarse del servidor", una vez
que se ha conectado correctamente con un servidor.
6. Puede volver a desconectar la sesión y la conexión con el servidor OPC UA mediante
el botón "Desconectar del servidor".
Puede navegar a través de la pestaña "Examinar nodos" dentro del espacio de direcciones del
servidor OPC UA.
1. Conectar con un servidor OPC UA.
2. Vaya a la pestaña "Examinar nodos".
Siemens AG 2022 Todos los derechos
2. Haga clic en el botón "Leer". El valor leído aparece en el campo de texto "Valor leído:".
reservados
2. Pulse el botón "Leer". El valor leído se muestra en el campo de texto "Valor leído:". Si los
valores leídos son un array o una matriz, los valores individuales se separan mediante
punto y coma. Haga clic en el botón "..." para mostrar los valores en forma de tabla.
Siemens AG 2022 Todos los derechos
reservados
2. Introduzca los valores que desea escribir en los campos correspondientes y pulse el
botón "Editar valores" para cerrar el formulario.
Siemens AG 2022 Todos los derechos
reservados
2. Pulse el botón "Leer" para leer el ID del nodo registrado. El valor leído se muestra en el
campo "Valor leído:".
3. Introduzca un valor en el campo "Valores a escribir:". Pulse el botón "Escribir" para
escribir el valor introducido previamente en un nodo registrado.
2. Haga clic en el botón "Leer". El valor leído se muestra en el campo de texto "Valor leído:".
Si los valores leídos son un array o una matriz, los valores individuales se separan
Siemens AG 2022 Todos los derechos
mediante punto y coma. Haga clic en el botón "..." para mostrar los valores en forma de
tabla.
reservados
3. Haga clic en el botón "Editar valores" para abrir una ventana de introducción de valores
de matriz. Introduzca los valores a escribir en los campos correspondientes y confirme su
entrada haciendo clic en el botón "Editar valores".
Todos los campos se escriben siempre. Si un campo no contiene ninguna entrada, se escribe
NOTA con el valor por defecto (normalmente "0" o "null").
4. Haga clic en el botón "Escribir" para escribir los valores confirmados en el identificador de
nodo.
5. La operación de escritura se ha realizado correctamente cuando aparece un cuadro
de mensaje con el texto "Valores escritos correctamente".
6. Puedes volver a leer la etiqueta para comprobarlo.
7. Haga clic en el botón "Anular registro" para liberar un ID de nodo registrado.
2.3.8 Suscripciones
Obtiene los cambios de valor o las actualizaciones de las etiquetas a través de una suscripción,
sin ordenar una lectura cíclica.
1. Conectar con un servidor OPC UA.
2. Vaya a la pestaña "Examinar nodos" y navegue hasta un nodo de etiquetas al que desee
suscribirse.
3. Haga clic en el nodo de la etiqueta, haga clic en el botón "Copiar Id de nodo" para copiar el
valor del "Id de nodo" en el portapapeles o copie el valor del campo "Id de nodo" de la vista
de datos con el botón
Combinación de botones <CTRL+C>.
4. Vaya a la pestaña "Suscribirse".
5. Añada el ID de nodo copiado anteriormente con la combinación de teclas CTRL-V en el
campo "Id de nodo:". Pulse el botón "Suscribir".
Siemens AG 2022 Todos los derechos
El acceso a los datos de las etiquetas que consisten en una estructura o una UDT
se le mostrará en la pestaña "Leer/Escribir Struct/UDT".
1. Conectar con un servidor OPC UA.
2. Vaya a la pestaña "Examinar nodos" y navegue hasta un nodo de etiqueta que desee leer
o escribir (el nodo debe tener introducido un ID de nodo en "Definición del tipo". Esto
mostrará que el nodo consiste en un tipo definido por el usuario o una estructura/a UDT).
3. Haga clic en el nodo de la etiqueta, haga clic en el botón "Copiar Id de nodo" para copiar el
valor del "Id de nodo" en el portapapeles o copie el valor del campo "Id de nodo" de la vista
de datos con el botón
Combinación de botones <CTRL+C>.
4. Vaya a la pestaña "Leer/Escribir Struct/UDT".
5. Añada el ID de nodo copiado anteriormente con la combinación de teclas CTRL-V en el
campo "Id de nodo:". Haz clic en el botón "Leer Struct/UDT".
Siemens AG 2022 Todos los derechos
6. Los nombres de las etiquetas, los valores y los tipos de datos de la estructura/UDT leída
se mostrarán en la vista de datos:
reservados
NOTA Los campos de color gris oscuro marcan el inicio y el final de una estructura/udt en la
estructura/udt padre.
llamar. Haga clic en el nodo de la etiqueta, haga clic en el botón "Copiar Id de nodo" para
copiar el valor del "Id de nodo" en el portapapeles o copie el valor del campo "Id de nodo"
de la vista de datos con la combinación de teclas <CTRL+C>.
Para los números en coma flotante se utiliza la notación inglesa, por lo que al introducirlos
NOTA hay que utilizar ".".
6. Introduzca los valores que desea enviar al método en la columna "Valor" de la lista
"Argumentos de entrada".
7. Haga clic en el botón "Llamar método" para llamar al método. Los valores de los
argumentos de salida se muestran en la lista "Argumentos de salida" una vez que el
método se ha llamado correctamente.
Siemens AG 2022 Todos los derechos
reservados
3 Información valiosa
3.1 Conceptos básicos
3.1.1 Información general sobre OPC UA
Visión
general
En los últimos años, la Fundación OPC (un grupo de interés de conocidos fabricantes para la
definición de interfaces estándar) ha definido un gran número de interfaces de software para
estandarizar el flujo de información desde el nivel de proceso hasta el de gestión. En función de
los distintos requisitos de una aplicación industrial, en el pasado se han desarrollado diferentes
especificaciones OPC: Acceso a Datos (DA), Alarmas y Eventos (A&E), Acceso a Datos
Históricos (HDA) e Intercambio de Datos (DX). El acceso a los datos de proceso se describe en
la especificación DA, A&E describe una interfaz para información basada en eventos, incluido
el acuse de recibo, HDA describe funciones para datos archivados y DX define una
comunicación lateral de servidor a servidor.
Basándose en la experiencia con estas interfaces OPC clásicas, la Fundación OPC definió una
nueva plataforma, denominada Arquitectura Unificada OPC (UA). El objetivo de esta norma es
la descripción genérica y el acceso uniforme a toda la información que debe intercambiarse
entre sistemas o aplicaciones. Esto incluye la funcionalidad de todas las interfaces OPC
anteriores. Además, esto ha generado la opción de integrar de forma nativa la interfaz en el
sistema apropiado, independientemente del sistema operativo en el que se opere y del
lenguaje de programación en el que se haya creado el sistema.
Siemens AG 2022 Todos los derechos
¿Qué es el OPC?
En el pasado, OPC era una colección de interfaces de software para el intercambio de datos
entre aplicaciones de PC y dispositivos de proceso. Estas interfaces de software se han
definido según l a s reglas de Microsoft COM (Component Object Model) y, por tanto, pueden
reservados
información adicional sobre el nodo como propiedad. Las propiedades son un tipo especial de
etiqueta. Los nodos están interconectados con referencias. Las referencias están tipificadas.
Existen dos grupos principales: referencias jerárquicas, como, por ejemplo, HasComponent
para los componentes de un objeto o referencias no jerárquicas como, por ejemplo,
HasTypeDefinition para una conexión de una instancia de objeto a un tipo de objeto.
La siguiente figura muestra un ejemplo de nodos y las referencias de conexión:
reservados
Figura 3-1
Etiq
uet
Atributos
a
-Nombre
-Descripción
Objeto
Referencia
Atributos Etiq
-Nombre
uet
-Descripción Atributos
a
Referencia -Nombre
-HasComponent -Descripción
-HasComponent Referencia
-HasComponent
Tipo de
datos
Atributos
-Nombre
-Descripción
Referencia
Tabla 3-1
Tipo de nodo Descripción
Objeto Un objeto se utiliza como contenedor tipificado o carpeta para etiquetas, métodos y
eventos.
Etiqueta Las etiquetas representan los datos de los objetos o las propiedades de un nodo
como atributos.
Método Los métodos son componentes de los objetos y pueden tener una lista de
parámetros de entrada o de salida. Los parámetros se describen mediante atributos
definidos.
Ver Las vistas representan una parte del espacio de direcciones. El nodo se utiliza
como punto de acceso y como filtro al navegar.
Tipo de objeto Los tipos de objeto proporcionan información sobre la estructura o los componentes
de un objeto.
Tipo de etiqueta Los tipos de etiquetas suelen describir qué atributos o tipos de datos pueden
encontrarse en una instancia de una etiqueta.
Tipo de referencia Los tipos de referencia definen los posibles tipos de referencias entre nodos.
Tipo de datos Los tipos de datos describen el contenido del valor de una etiqueta.
espacio de nombres con un índice de espacio de nombres asociado para los nodos definidos
por la Fundación OPC. Los servidores OPC UA definen adicionalmente uno o varios espacios
de nombres con índice. Los espacios de nombres definidos por los servidores son variables y
pueden cambiar. Por ello, se recomienda solicitar el espacio de nombres actual para el cliente
al establecer la sesión.
La siguiente figura explica la estructura de un ID de nodo:
Figura 3-2
Tabla 3-2
No. Descripción
1. Índice del espacio de nombres
2. Tipo de ID de nodo (s=String; i=Numeric: g=GUID)
3. ID
Niveles de seguridad
La siguiente figura ofrece una visión general de las capas de seguridad de OPC UA:
Figura 3-3
Capa de
de socket Capa de
transporte transporte
La autenticación del usuario se realiza a través de la Sesión. Se realiza, por ejemplo, mediante un
nombre de usuario y una contraseña o mediante certificados.
A través de un Canal Seguro, las aplicaciones se autentican mutuamente y se realiza una
seguridad de la comunicación basada en mensajes. Cada mensaje se firma y encripta para
Cliente OPC 1500
Entrada-ID: 109737901, V1.5, 09/2022 60
3 Información valiosa
A nivel de socket, se puede utilizar una seguridad orientada a la conexión del socket a través
de Secure Socket Layer (SSL) o a través de Virtual Private Network (VPN), además o como
alternativa al canal seguro.
Tabla 3-4
Opción Descripción
Política de seguridad Ninguno - En el canal seguro no se utiliza ningún tipo de seguridad.
Basic128Rsa15 - Conjunto de algoritmos de cifrado.
Basic256 - Conjunto de algoritmos de cifrado ampliables.
Modo de seguridad de Ninguno - Los mensajes no están protegidos.
mensajes Firmar - Los mensajes están firmados.
Firmar&Encriptar - Los mensajes se firman y encriptan.
Autenticación de usuarios Anónimo - No es necesaria la autenticación del usuario.
Contraseña de usuario - La autenticación de usuario se realiza mediante
nombres de usuario y contraseña.
Certificado - La autenticación del usuario se realiza mediante un certificado.
Cuando todas las aplicaciones involucradas, implementan las directrices del OPC UA en
cuanto a la configuración de seguridad, sólo es necesario un paso manual (4) en el servidor
para el intercambio de certificados, ya que los certificados se intercambian automáticamente
entre las aplicaciones y los certificados sólo tienen que ser aceptados por un administrador.
La siguiente figura ilustra el intercambio de certificados entre el cliente y el servidor:
Figura 3-4
reservados
1
3
Tabla 3-5
No. Descripción
1. Al establecer una conexión con el servidor (Session.Create), el cliente recibe el certificado del
servidor a través del endpoint del servidor.
2. A continuación, el programa cliente puede decidir cómo trata el certificado: Rechazar o
aceptar.
3. En el mismo proceso, el cliente envía su certificado al servidor. El servidor rechaza el
certificado en un primer momento y luego lo almacena en una carpeta de rechazos.
4. Como resultado, el certificado del cliente tiene que ser aceptado manualmente por un
administrador en el servidor. En la mayoría de los casos, esto se hace copiando el
certificado de cliente de una carpeta de rechazo a una carpeta de confianza.
En este capítulo se ofrece una visión general de algunos datos clave del servidor OPC UA del S7-
1500. Además, también se dan notas y consejos en el manejo del servidor.
Concepto de licencia
Tabla 3-6
Tipo de CPU ET 200SP CPU 1515 / 1517 /
hasta S7-1513(F) 1516(F) 1518(F)
Licencia requerida Pequeño Medio Grande
Los siguientes pasos de configuración del capítulo 2.1 "Configuración de los servidores OPC UA
del S7- 1500" ya se han realizado para usted en el proyecto TIA Portal de esta entrada.
• El servidor OPC UA está activado.
• La configuración de seguridad global está activada (Usuario: Usuario / contraseña Siemens.1).
• Los extremos del servidor están configurados.
• Los tags para la comunicación OPC UA están habilitados.
• Se habilita un acceso anónimo.
Únicamente los ajustes del capítulo 2.1.4 "Seguridad mediante gestión de certificados" son
opcionales y pueden ser realizados por usted, con el fin de aumentar adicionalmente la
seguridad en el proyecto.
3.2.2 Programa S7
El programa S7 del proyecto TIA consta del OB1, un bloque de usuario y dos bloques de datos.
Siemens AG 2022 Todos los derechos
Jerarquía de llamadas
La siguiente figura muestra la jerarquía de llamadas del programa de usuario S7.
Figura 3-5
reservados
Datos -
Princ Simulació
Simulación
ipal n
UaMethod
Añadir Dato
s
estáti
Ciclo OB1 Bloques de Bloques
cos de
usuario datos
4 Anexo
4.1 Servicio y asistencia
Asistencia en línea del sector
¿Tiene alguna pregunta o necesita ayuda?
Siemens Industry Online Support ofrece acceso ininterrumpido a toda nuestra gama de
servicios y asistencia técnica.
La asistencia en línea de Industria es la dirección central para obtener información sobre
nuestros productos, soluciones y servicios.
Información sobre productos, manuales, descargas, preguntas frecuentes, ejemplos de
aplicaciones y vídeos: toda la información está accesible con unos pocos clics de ratón:
soporte.industria.siemens.com
Asistencia técnica
El servicio de asistencia técnica de Siemens Industry le ofrece una asistencia rápida y
competente en todas las cuestiones técnicas con numerosas ofertas a medida.
- que van desde la asistencia básica hasta los contratos de asistencia individuales. Envíe sus
consultas al servicio de asistencia técnica a través del formulario web:
siemens.com/SolicitudDeSoporte
Siemens AG 2022 Todos los derechos
Oferta de servicios
Nuestra gama de servicios incluye los siguientes:
• Servicios de datos de plantas
• Servicio de piezas de recambio
• Servicios de reparación
• Servicios in situ y de mantenimiento
• Servicios de retroadaptación y modernización
• Programas y contratos de servicios
Encontrará información detallada sobre nuestra gama de servicios en la página web del catálogo
de servicios: support.industry.siemens.com/cs/sc
•
• Ampliación de los tipos de datos descodificables (UDT/Struct)
• Solución de problemas
varios Actualización a OPC
UA 1.4
V1.5 09/2022 • Actualización a OPC UA Stack 1.04.369
• Adaptación de las dependencias
• Adaptación de la creación de certificados
• Nuevo desarrollo de métodos de lectura y escritura de estructuras/UDT
• Diversas reestructuraciones y simplificación de
métodos Diversas soluciones de problemas