如何使用 asyncua (python) 检查服务器上是否已存在具有特定名称的节点?
如果存在,则应使用它;如果不存在,则应创建该节点。
用例: opcua-client 必须在 opcua-server 上写入数据。客户端还为数据创建对象和节点。 如果客户端离线,服务器将保留节点和对象。 当客户端重新上线时,它必须检查服务器是否有对象或已重置。
您可以尝试从中读取任何属性:
async def check_if_node_exists(client, node_id):
node = client.get_node(node_id)
try:
_ = await node.read_browse_name()
return True
except BadNodeIdUnknown as e:
return False
node_id = "ns=4;s=ABC"
if(check_if_node_exists(client, node_id)):
print('found')
else:
print('not found')