Acceso a M241 mediante OPC UA

De ISAwiki
(Diferencia entre revisiones)
(Funciones de la librería opcua útiles para la práctica)
(Funciones de la librería opcua útiles para la práctica)
 
(No se muestran 2 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 Client
 
 
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")
+
cliente.connect()                                        # conecta el objeto cliente
        client.connect()                                        # conecta el objeto cliente
+
 
        root = client.get_root_node()                             # navegación a través del árbol de objetos  
+
root = cliente.get_root_node()                           # navegación a través del árbol de objetos  
        objects = root.get_child(['0:Objects'])
+
objects = root.get_child(['0:Objects'])
        m241=objects.get_child(['2:M241-M251 data'])
+
m241=objects.get_child(['2:M241-M251 data'])
        sens1=m241.get_child(['2:Programa.Sensor1 (%IX0.0)'])
+
sens1=m241.get_child(['2:Programa.Sensor1 (%IX0.0)'])
        bombilla=m241.get_child(['2:Programa.Bombilla (%QX0.0)'])
+
bombilla=m241.get_child(['2:Programa.Bombilla (%QX0.0)'])
print("Leyendo")
+
 
sens1.get_value()                                        # lectura de variable del autómata
+
sens1.get_value()                                        # lectura de variable del autómata
dv = ua.DataValue(ua.Variant(True,ua.VariantType.Boolean))
+
 
bombilla.set_value(dv)   
+
bombilla.set_value(ua.DataValue(ua.Variant(True,ua.VariantType.Boolean)))  #escritura de un valor "True" en una variable tipo "Boolean" del autómata
print("Escribiendo")
+
 
var.set_value(dv)                                 # escritura en variable del autómata
+
cliente.disconnect()                                       # desconecta el objeto cliente
  
finally:
+
</pre>
print("Desconectando")
+
client.disconnect()
+
  
 
== 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