![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OPC UA
文章平均质量分 68
Logintern09
now,爱看文献,努力学习,that is all.
展开
-
asyncua.client.ua_client.UaClient:opening connection OPCUA为什么Client端连接Server端报错超时
测试发现是由于Server端在执行创建节点任务,创建节点任务花费的时间比较长,此时Client端尝试连接Server,Server会不响应Client的连接通讯请求,在Server开始执行Read request操作时,Client端连接能执行成功。网络延迟是连接速度慢的一个常见原因。如果Client和Server之间的网络质量不佳,或者有较高的延迟,那么连接过程可能会受到影响。调整Client配置:根据网络环境和实际需求,调整asyncua Client的配置参数,如连接超时、重试策略等。原创 2024-06-21 16:30:05 · 311 阅读 · 0 评论 -
使用asyncua模块的subscribe_data_change监控opcua的Server节点数据变化
上述报错原因在于创建监控句柄SubscriptionHandler类时,节点数据变化的函数名称有问题,不是默认的datachange_notification,我写的是data_change_notification。原创 2024-06-21 12:43:48 · 302 阅读 · 0 评论 -
asyncua模块中OPC UA的ua.Variant如何表示字典?
然而,OPC UA 标准本身并不直接支持字典作为一种数据类型。但是,你可以通过将字典序列化为一个字符串(如 JSON 格式),然后使用 ua.Variant 来表示这个字符串,从而间接地在 OPC UA 中表示字典。这种方法允许你在 OPC UA 中存储和传输字典数据,但需要注意的是,这种方法依赖于 JSON 序列化和反序列化,因此可能不适合处理非常大的字典或需要高性能的场景。此外,这种方法还假设客户端和服务器都支持 JSON 格式的字符串,并且都使用了相同的编码和解码逻辑。原创 2024-06-19 21:13:13 · 232 阅读 · 0 评论 -
使用asyncua模块如何在opcua框架的Server端添加方法及在Client端调用方法
使用call_method()函数调用节点的方法input_Arg,input_Arg有两个输入参数,都是ua.VariantType.UInt32数据类型。原创 2024-06-14 17:00:04 · 326 阅读 · 0 评论 -
如何使用asyncua模块在opcua的Server端添加值为列表的变量?
同理,考虑将OPCUA不支持的数据类型转成支持的数据类型,Server添加方法,输入数据类型为列表时,可以使用ua.VariantType.Variant数据类型,在Client加载该方法时,使用ua.Variant([1, 2, 16, 19, 216])将列表转换成ua.VariantType.Variant数据类型,实测发现该种方式得到的输入参数数据类型为list,不影响方法的执行。在添加变量时,你提供的初始值(在本例中是空数组[])将作为变量的初始状态。你可以根据需要将其替换为实际的数组值。原创 2024-06-14 17:37:06 · 387 阅读 · 0 评论 -
使用asyncua模块的call_method方法调用OPC UA的Server端方法报错:asyncio.exceptions.TimeoutError
这篇文章中说明了报错:asyncio.exceptions.TimeoutError的原因,是由于call_method调用的方法执行时间太长了,但是Client端同步执行的检查服务是否处于在线状态的背景任务执行超时了,最终导致抛出报错:asyncio.exceptions.TimeoutError,拿不到Server执行调用方法后的结果。原创 2024-06-19 20:44:34 · 905 阅读 · 0 评论