Acceso a M241 mediante OPC UA

De ISAwiki
(Diferencia entre revisiones)
(Deshecha la revisión 4901 de Diegogarcia (disc.))
(Funciones de la librería opcua útiles para la práctica)
 
(No se muestra una edición intermedia realizada por un usuario)
Línea 14: Línea 14:
 
from opcua import ua
 
from opcua import ua
  
client = Client("opc.tcp://10.0.0.52:4840")              # construye un objeto cliente OPC UA para un servidor
+
cliente = 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:
+
cliente.connect()                                        # conecta el objeto cliente
print("Desconectando")
+
 
client.disconnect()
+
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>
 
</pre>
 +
 
== Enlaces a material adicional ==
 
== Enlaces a material adicional ==
  

Última revisión de 14: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

[editar] Enlaces a material adicional

Herramientas personales
Espacios de nombres

Variantes
Acciones
Navegación
Tipos de páginas
Bloques temáticos
Herramientas