Acceso a M241 mediante OPC UA

De ISAwiki
(Diferencia entre revisiones)
(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 ==
  
import opcua                                              - importa la librería
+
from opcua import Client
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
+
client = Client("opc.tcp://10.0.0.52:4840")              # construye un objeto cliente OPC UA para un servidor
root = client.get_root_node()                            - navegación a través del árbol de objetos  
+
try:
objects = root.get_child(['0:Objects'])
+
print("Conectando")
m241=objects.get_child(['2:M241-M251 data'])
+
client.connect()                                        # conecta el objeto cliente
sens1=m241.get_child(['2:Programa.Sensor1 (%IX0.0)'])
+
root = client.get_root_node()                            # navegación a través del árbol de objetos  
sens1.get_value()                                        - lectura de variable del autómata
+
objects = root.get_child(['0:Objects'])
bombilla=m241.get_child(['2:Programa.Bombilla (%QX0.0)'])
+
m241=objects.get_child(['2:M241-M251 data'])
bombilla.set_value(True)                                  - escritura en variable del autómata
+
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 09: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()

Enlaces a material adicional

Herramientas personales
Espacios de nombres

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