from opcua import ua, Client class Py2opcua: """ 将三元检测补偿值写入opcua服务器 """ def __init__(self, url='opc.tcp://192.168.2.99:4840'): self.client = Client(url) # 连接客户端 # def connect(self): # try: # self.client.connect() # print("opcua服务器连接成功,可以写入") # return self.client # except Exception as e: # print("opcua服务器连接失败,请检查" + str(e)) def write(self, temp_dict): """ 补偿值写入方法,参数是一个字典,键是节点名,值是补偿值 :param temp_dict: :return: """ # try: self.client.connect() # print("opcua服务器连接成功,可以写入") # return self.client # except Exception as e: # print("opcua服务器连接失败,请检查" + str(e)) # temp_dict = temp_dict temp_list = list(temp_dict.items()) for i in range(len(temp_list)): # 寻找节点上的变量 var = self.client.get_node(temp_list[i][0]) # var.set_value(ua.Variant(1.234, ua.VariantType.Float)) # 通过set_value写值 var.set_value(ua.Variant(temp_list[i][1], ua.VariantType.Double)) # print("%s 已写入" % var.get_value()) self.client.disconnect() # 断开连接 # def disconnect(self): # self.client.disconnect()