gpt4 book ai didi

python - 客户端服务器通信opc ua

转载 作者:太空宇宙 更新时间:2023-11-03 21:24:37 28 4
gpt4 key购买 nike

我是 opcua 的新手,我一直在尝试通过以下方式进行通信:

服务器导入xml --> 客户端读取一个值(使用get_node) --> 根据该值,客户端向服务器发送请求 --> 服务器响应请求 --> 客户端接收响应。

我已经完成了该部分,直到客户端读取该值。我现在正在尝试向服务器发送请求。但我不明白我该使用哪种方法?

我看过源代码,可以看到send_request()方法。但我不知道如何发送请求。

另外,一旦我发送请求,服务器将如何响应它?请指导我完成此操作或给我举一个例子。

我的客户端和服务器看起来像这样:

服务器.py

from opcua import Server
from opcua.ua.uatypes import NodeId, NumericNodeId
from opcua import ua

server = Server()
server.import_xml("Opc.Ua.Di.NodeSet2.xml");
server.import_xml("final.xml");
server.set_endpoint("opc.tcp://localhost:4840/MyServer");
server.set_server_name("MyServer");

MyServerNameSpace = server.get_namespace_index("urn:freeopcua:python:server");
server.start();

客户端.py

from opcua import Client
from opcua import ua
from opcua.ua import StringNodeId

client = Client("opc.tcp://localhost:4840");

client.connect_socket();
client.create_session();
client.activate_session(username=None, password=None, certificate=None);


objects = client.get_objects_node();
xx = client.get_node(StringNodeId("i40.io/PrmInst/Temp_1",3));
tempval = xx.get_value();

if tempval < 20 :
#here i want to write the request code

最佳答案

您能否更准确地描述请求代码。如果您正在寻找它的状态代码,那么使用

tempval = xx.get_data_value()
if tempval.Value.Value < 20:
status = tempval.StatusCode.name # eg: Good/Bad etc..
message= tempval.StatusCode.doc

尝试使用 get_data_value() ,它可以为您提供更多信息。从那里您可以提取您想要的详细信息。

关于python - 客户端服务器通信opc ua,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53938714/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com