Está en la página 1de 18

1

2
3
4
Python.industria(4.0)
5
6
7 PY013
8 Protocolo OPC UA
9
10
11
12
13
14

Ln 2 Python en Industria 4.0 / PY013 - Protocolo OPC UA.py


X
Indice

1 Indice:
2
3 01 Introducción
4 • Introducción al protocolo OPC UA
5 • Características
• Cliente y servidor
6 • Estructuras y nodos
7 • Autenticación
8
9 02 Servidor OPC UA
10
11
12 03 Cliente OPC UA
13
14

Ln 3 Python en Industria 4.0 / PY013 - Protocolo OPC UA.py


X
com_intro

01(
1
2
3
4
5
6 Introducción
7
8 • Introducción al protocolo OPC UA
• Características
9 • Cliente y servidor
10 • Estructuras y nodos
11 • Autenticación

)
12
13
14

Ln 4 Python en Industria 4.0 / PY013 - Protocolo OPC UA.py


X
com_intro

1
2
import OPC UA
3 A medida que la automatización industrial y los sistemas interconectados
continúan evolucionando, el protocolo OPC UA ha emergido como una
4 herramienta fundamental debido a su robustez y flexibilidad. ¡Y es Open
5 Source!
6
Entonces, ¿Qué es OPC UA?
7
8 OPC UA (Open Platform Communications Unified Architecture) es un
protocolo de comunicación máquina a máquina (M2M) especialmente diseñado
9 para que equipos en fábricas y sistemas se entiendan de manera segura.
10
A diferencia otros protocolos que hemos visto, OPC UA ofrece una manera
11
moderna y muy segura de que dispositivos y sistemas compartan
12 información. Aunque OPC UA es relativamente nuevo (se introdujo por
13 primera vez en torno al 2008) ha ganado importancia en la industria
gracias a sus características especiales y su capacidad para resolver
14 desafíos en la comunicación industrial.

Ln 5 Python en Industria 4.0 / PY013 - Protocolo OPC UA.py


X
com_intro

1
2
import OPC UA
3 OPC UA fue diseñado para conectar dispositivos y sistemas de forma
segura y eficiente en diversas industrias. Ha ganado protagonismo
4 debido a la creciente necesidad de que todo funcione conjuntamente y
5 de manera segura.
6
Al principio, se usó en sistemas SCADA para monitorear y controlar
7 procesos industriales, demostrando su habilidad para hacer que los
8 dispositivos se comuniquen eficazmente en entornos complejos.

9 Por lo general, se basa en tecnología similar a la que se utiliza para


10 Internet (TCP/IP). Esto asegura conexiones fuertes y bidireccionales
entre dispositivos.
11
12 Además, una característica destacada de OPC UA es su enfoque en
13 mantener la información segura. Ofrece formas de garantizar que los
datos sean accesibles solo para los equipos adecuados y de que no sean
14 alterados mientras se transmiten de un lugar a otro.

Ln 6 Python en Industria 4.0 / PY013 - Protocolo OPC UA.py


X
com_intro

1
2
import OPC UA
3 Veamos una comparativa de sus ventajas y desventajas

4
5 Interoperabilidad
6
7 Seguridad
8
Información escalable
9
10 Disponibilidad
11
12 Flexibilidad
13
14

Ln 7 Python en Industria 4.0 / PY013 - Protocolo OPC UA.py


X
com_intro

1
2
import OPC UA
3 Veamos una comparativa de sus ventajas y desventajas

4
5 Interoperabilidad Complejidad
6
7 Seguridad Consumo de recursos
8
Información escalable Costo
9
10 Disponibilidad Compatibilidad retroactiva
11
12 Flexibilidad Aprendizaje requerido
13
14

Ln 8 Python en Industria 4.0 / PY013 - Protocolo OPC UA.py


X
com_intro

1
2
import OPC UA
3 Para implementar éste protocolo, existen dos elementos clave:

4
Servidor:
5 Un servidor OPC UA es
6 un sistema que almacena
y ofrece datos e
7 información a través de
8 una red.

9
10 Cliente:
11 un cliente OPC UA es una
entidad que solicita y
12 utiliza esos datos para
13 el monitoreo y control
de dispositivos y
14 procesos

Ln 9 Python en Industria 4.0 / PY013 - Protocolo OPC UA.py


X
com_intro

1
2
import OPC UA
3 Para implementar éste protocolo, existen dos elementos clave:

4
Tareas del Servidor:
5
6 • Administrar y ofrecer datos y
funcionalidades a los clientes.
7
• Almacenar información y variables
8 relevantes del sistema.

9 • Proporcionar interfaces para acceder a los


10 datos y controlar los dispositivos.

11 • Aplicar medidas de seguridad y


autenticación para proteger el acceso a la
12 información.
13
• Gestionar la comunicación con los clientes,
14 respondiendo a solicitudes y actualizando
datos en tiempo real.

Ln 10 Python en Industria 4.0 / PY013 - Protocolo OPC UA.py


X
com_intro

1
2
import OPC UA
3 Para implementar éste protocolo, existen dos elementos clave:

4
Tareas del Cliente:
5
6 • Solicitar y recuperar datos y
funcionalidades del servidor.
7
• Visualizar y presentar los datos en
8 interfaces de usuario.

9 • Enviar comandos y órdenes al servidor para


10 controlar dispositivos y sistemas.

11 • Interpretar y analizar los datos recibidos


para tomar decisiones informadas.
12
13 • Establecer y gestionar conexiones seguras
con el servidor, incluyendo la
14 autenticación.

Ln 11 Python en Industria 4.0 / PY013 - Protocolo OPC UA.py


X
com_intro

1
2
import OPC UA
3 El protocolo OPC UA tiene un modelo de información integrado. Se compone de una
estructura estandarizada, compuesta por nodos. Cada dato que se envía tiene un
4 nodo asociado, el cual tiene un ID y un Nombre
5
6 Velocidad
Los nodos pueden ser variables, objetos,
7 métodos, eventos y más.
8 Carpeta
Arranque Los nodos representan entidades en el
Actuadores
9 mundo real, como dispositivos y
componentes del sistema.
10 Servidor
Presion
Contienen información que puede ser
11 Carpeta
accedida y manipulada a través de la
Sensores
12 comunicación OPC UA, y puede tener
Temperatura propiedades, atributos y relaciones con
13 otros nodos.
Subtópico
14

Ln 12 Python en Industria 4.0 / PY013 - Protocolo OPC UA.py


X
com_intro

1
2
import OPC UA
3 Las variables son componentes clave en OPC UA y representan datos que pueden ser
leídos o escritos. Pueden ser valores medidos, estados, configuraciones o
4 cualquier tipo de información relevante que el dispositivo o sistema industrial
5 maneja
6 Velocidad

7
8 Carpeta
Arranque
Actuadores
9
10 Servidor
Presion
11 Carpeta
Sensores
12
Temperatura
13
Subtópico
14

Ln 13 Python en Industria 4.0 / PY013 - Protocolo OPC UA.py


X
com_intro

1
2
import AUTH
3 La autenticación en OPC UA es un componente esencial de su sistema de seguridad
que asegura que los usuarios y dispositivos que intentan acceder a un sistema
4 sean quienes dicen ser.
5
Para ello, se utilizan distintas técnicas o métodos como nombre de usuario y
6
contraseña o certificados digitales para confirmar quiénes son.
7
8
9 0. Sin Auth
10 1. Credenciales
11 2. Certificados
12
13
Sin autenticación, los datos estarán totalmente encriptados e ilegibles por
14
cualquier agente externo

Ln 14 Python en Industria 4.0 / PY013 - Protocolo OPC UA.py


X
com_tools

02(
1
2
3
4
5
6
7
8
Servidor OPC UA
9
10
11

)
12
13
14

Ln 15 Python en Industria 4.0 / PY013 - Protocolo OPC UA.py


X
com_intro

1
2
import OPC UA
3 Al ser un protocolo Open Source, actualmente tenemos muchísimas opciones para
generar servidores OPC UA y dejarlos corriendo en algún dispositivo.
4
5 Por lo general, también muchos equipos poseen la capacidad de funcionar como
servidores OPC UA, lo cual simplifica muchísimo la arquitectura.
6
7 Para hacer las pruebas el día de hoy, utilizaremos un servidor Open Source e
8 inyectaremos señales al sistema.
9 Prosys OPC UA Simulation Server
10 https://www.prosysopc.com/products/opc-ua-
simulation-server/
11 Server de prueba gratuito
12 requiere descarga e instalación

13
14

Ln 16 Python en Industria 4.0 / PY013 - Protocolo OPC UA.py


X
com_lib

03(
1
2
3
4
5
6
7
8 Cliente OPC UA
9
10
11

)
12
13
14

Ln 17 Python en Industria 4.0 / PY013 - Protocolo OPC UA.py


X
com_intro

1
2
import asyncua
Armar un cliente OPC UA es relativamente simple
3
4 Para ello, debemos importar las bibliotecas “asyncio” y “asyncua”. Recordar que como son
bibliotecas externas, deben instalarse previamente con pip install
5
6 La sintaxis para generar un cliente y leer valores de un nodo es la siguiente:

7
import asyncio
8 from asyncua import Client
9
async def main():
10 async with Client(url='opc.tcp://localhost:53530/OPCUA/SimulationServer') as client:
while True:
11 nodo = client.get_node('ns=3;i=1002')
value = await nodo.read_value()
12 print("Valor:", value)
13
if __name__ == "__main__":
14 asyncio.run(main())

Ln 18 Python en Industria 4.0 / PY013 - Protocolo OPC UA.py


X
com_intro

1
2
import asyncua
Probemos ahora escribir valores cada 200 milisegundos!
3
import asyncio
4 from asyncua import Client
import time
5
6 async def main():
async with Client(url='opc.tcp://localhost:53530/OPCUA/SimulationServer') as client:
7 nuevo_valor = 0
while True:
8 nodo = client.get_node('ns=3;i=1009')
value = await nodo.read_value()
9 print("Valor:", value)
10
nuevo_valor = nuevo_valor +1
11 # Escribimos un valor nuevo
await nodo.write_value(nuevo_valor)
12 time.sleep(0.200)
13
if __name__ == "__main__":
14 asyncio.run(main())

Ln 19 Python en Industria 4.0 / PY013 - Protocolo OPC UA.py

También podría gustarte