Acceso a M241 mediante OPC UA
De ISAwiki
(Diferencia entre revisiones)
(Página creada con «== Localización == Aula Schneider (laboratorio 4.B.12), situado en la planta baja del bloque 4 de los edificios departamentales de la zona oeste. == Objetivos de la práct...») |
(→Funciones de la librería opcua útiles para la práctica) |
||
(No se muestran 9 ediciones intermedias realizadas por 2 usuarios) | |||
Línea 9: | Línea 9: | ||
== Funciones de la librería opcua útiles para la práctica == | == Funciones de la librería opcua útiles para la práctica == | ||
+ | <pre> | ||
− | + | from opcua import Client | |
− | + | from opcua import ua | |
− | + | ||
− | + | cliente = Client("opc.tcp://10.0.0.52:4840") # construye un objeto cliente OPC UA para un servidor | |
− | + | ||
− | + | cliente.connect() # conecta el objeto cliente | |
− | + | ||
− | + | root = cliente.get_root_node() # navegación a través del árbol de objetos | |
+ | objects = root.get_child(['0:Objects']) | ||
+ | m241=objects.get_child(['2:M241-M251 data']) | ||
+ | sens1=m241.get_child(['2:Programa.Sensor1 (%IX0.0)']) | ||
+ | bombilla=m241.get_child(['2:Programa.Bombilla (%QX0.0)']) | ||
+ | |||
+ | sens1.get_value() # lectura de variable del autómata | ||
+ | |||
+ | bombilla.set_value(ua.DataValue(ua.Variant(True,ua.VariantType.Boolean))) #escritura de un valor "True" en una variable tipo "Boolean" del autómata | ||
+ | |||
+ | cliente.disconnect() # desconecta el objeto cliente | ||
+ | |||
+ | </pre> | ||
== Enlaces a material adicional == | == Enlaces a material adicional == | ||
− | *[ | + | *[http://freeopcua.github.io/ FreeOpcUa: Open Source C++ and Python OPC-UA Server and Client Libraries and Tools] |
− | *[https:// | + | *[https://www.unified-automation.com/downloads/opc-ua-clients.html UA Expert] Cliente OPC UA para pruebas. |
− | *[https:// | + | *[https://media.readthedocs.org/pdf/python-opcua/latest/python-opcua.pdf Python OPC-UA Documentation] |
− | *[ | + | *[https://www.youtube.com/watch?time_continue=96&v=-tDGzwsBokY What is OPC? UA in a Minute] |
+ | *[https://opcfoundation.org/ OPC Foundation] | ||
[[Category:Prácticas]] | [[Category:Prácticas]] |
Última revisión de 13:28 15 ene 2021
Tabla de contenidos |
[editar] Localización
Aula Schneider (laboratorio 4.B.12), situado en la planta baja del bloque 4 de los edificios departamentales de la zona oeste.
[editar] Objetivos de la práctica
Al término de esta práctica el alumno deberá ser capaz de:
- Configurar el servidor OPC UA del M241 para servir las variables deseadas.
- Configurar en Python una conexión como cliente al servidor OPC UA.
- Navegar a través del árbol de objetos del servidor y leer y acceder a las variables configuradas del autómata.
- Controlar el Lexium desde Python través de OPC UA y CANopen.
[editar] Funciones de la librería opcua útiles para la práctica
from opcua import Client from opcua import ua cliente = Client("opc.tcp://10.0.0.52:4840") # construye un objeto cliente OPC UA para un servidor cliente.connect() # conecta el objeto cliente root = cliente.get_root_node() # navegación a través del árbol de objetos objects = root.get_child(['0:Objects']) m241=objects.get_child(['2:M241-M251 data']) sens1=m241.get_child(['2:Programa.Sensor1 (%IX0.0)']) bombilla=m241.get_child(['2:Programa.Bombilla (%QX0.0)']) sens1.get_value() # lectura de variable del autómata bombilla.set_value(ua.DataValue(ua.Variant(True,ua.VariantType.Boolean))) #escritura de un valor "True" en una variable tipo "Boolean" del autómata cliente.disconnect() # desconecta el objeto cliente