执行opcua的Client端调用Server端的方法时报错:asyncua.ua.uaerrors._auto.BadNoMatch: The requested operation has no match to return.(BadNoMatch)
报错原因:(1)Client端调用方法格式错误,调用节点不存在该方法;
(2)opcua的Client端调用Server端方法的格式不正确;
Client端的call_method方法的输入参数methodid有三种样式:ua.NodeId(‘func_name’, 2)或者’2:func_name’表示节点、ua.QualifiedName(‘func_name’, 2)、str(‘func_name’)
以下是Client端的call_method方法的使用例子:
第一种样式:
func_exe_state = json.loads(await func_define_node.call_method(ua.NodeId('func_name', 2)))
print("func_exe_state is:", func_exe_state )
func_exe_state = json.loads(await func_define_node.call_method('2:func_name'))
print("func_exe_state is:", func_exe_state )
第二种样式:
func_exe_state = json.loads(await func_define_node.call_method(ua.QualifiedName('func_name', 2)))
print("func_exe_state is:", func_ex