Acceso a M241 mediante OPC UA
(→Funciones de la librería opcua útiles para la práctica) |
|||
Línea 10: | Línea 10: | ||
== Funciones de la librería opcua útiles para la práctica == | == Funciones de la librería opcua útiles para la práctica == | ||
− | + | from opcua import Client | |
− | + | from opcua import ua | |
− | + | ||
− | + | client = Client("opc.tcp://10.0.0.52:4840") # construye un objeto cliente OPC UA para un servidor | |
− | + | try: | |
− | + | print("Conectando") | |
− | + | client.connect() # conecta el objeto cliente | |
− | + | root = client.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)']) | ||
+ | print("Leyendo") | ||
+ | sens1.get_value() # lectura de variable del autómata | ||
+ | dv = ua.DataValue(ua.Variant(True,ua.VariantType.Boolean)) | ||
+ | bombilla.set_value(dv) | ||
+ | print("Escribiendo") | ||
+ | var.set_value(dv) # escritura en variable del autómata | ||
+ | |||
+ | finally: | ||
+ | print("Desconectando") | ||
+ | client.disconnect() | ||
== Enlaces a material adicional == | == Enlaces a material adicional == |
Revisión de 08:56 16 oct 2018
Tabla de contenidos |
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á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.
Funciones de la librería opcua útiles para la práctica
from opcua import Client from opcua import ua
client = Client("opc.tcp://10.0.0.52:4840") # construye un objeto cliente OPC UA para un servidor try: print("Conectando") client.connect() # conecta el objeto cliente root = client.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)']) print("Leyendo") sens1.get_value() # lectura de variable del autómata dv = ua.DataValue(ua.Variant(True,ua.VariantType.Boolean)) bombilla.set_value(dv) print("Escribiendo") var.set_value(dv) # escritura en variable del autómata
finally: print("Desconectando") client.disconnect()