使用asyncua模块如何在opcua框架的Server端添加方法及在Client端调用方法

1. 在opcua框架的Server端添加方法

参考文章:
freeopcua调用方法输入参数| Python解析数组到输入列表
为OPC UA python服务器/客户端添加安全性(异步)
OPCUA和asyncua — [3] 添加方法

OPC UA的Server端新增方法的关键代码如下:

from asyncua import Server, ua, uamethod

@uamethod
def func(parent):
	return
	
method = func
args = [2, "MyMethod", method, None, None]
await server.nodes.objects.add_method(args[0], args[1], args[2], args[3], args[4])

await server.nodes.objects.add_method方法新增方法需要的五个参数解释如下:

在这里插入图片描述

运行代码后可以在UaExpert工具看到Root根目录下面增加了MyMethod名称的方法:

在这里插入图片描述

需要了解的知识点:

Python的OPCUA库

opcua节点规则:
ns=<命名空间索引>;<标识符类型>=<标识符>
命名空间索引:
ns表示命名空间索引,一般为2
标识符类型枚举:
i-数值
s-字符串
g-全局唯一标识符 (GUID)
b-不透明值(ByteString 中的命名空间特定格式)

2. 在opcua框架的Client端调用方法

OPC UA客户端:调用方法

使用call_method()函数调用节点的方法input_Arg,input_Arg有两个输入参数,都是ua.VariantType.UInt32数据类型

from opcua import Client, ua

url = "opc.tcp://10.239.37.236:4840"
client = Client(url)
#client.set_user = "user"
#client.set_password = "pw"
client.connect()

print("client connected")

while True:
    lsd = client.get_node("ns=4; i=6013")
    LastScanData = lsd.get_value()
    print(LastScanData)

    start = client.get_node("ns=3; i=7009")
    input_Arg = client.get_node("ns=3, i=6051")

    res = start.call_method(input_Arg,  ua.Variant(5, ua.VariantType.UInt32), ua.Variant(99, ua.VariantType.UInt32))
    time.sleep(1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/708486.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

英语学习笔记35——Our village

Our village 我们的村庄 词汇 Vocabulary photograph n. 照片 通常说&#xff1a;photo 复数&#xff1a;photos     picture 复数&#xff1a;pictures 搭配&#xff1a;take a photo 照相 以o结尾的单词复数es的&#xff1a; potato —— potatoes tomato —— tomatoe…

Cancer Cell | 樊嘉院士/张力烨团队解析转移性肝细胞癌的时空演变

肝细胞癌&#xff08;Hepatocellular Carcinoma&#xff0c;HCC&#xff09;作为全球癌症死亡率的第三大原因&#xff0c;对人类健康构成了严重威胁&#xff0c;尤其是HCC发展到转移阶段&#xff0c;治疗选择变得有限&#xff0c;患者预后通常较差。尽管近年来在HCC的研究取得了…

电脑屏幕监控软件有哪些?2025年监控软件排行榜

电脑屏幕监控软件有哪些&#xff1f;2025年监控软件排行榜 虽然现在还是2024年&#xff0c;但是有一些被广泛讨论和推荐的电脑屏幕监控软件&#xff0c;它们将在2025年异军突起&#xff0c;成为行业的引领者。 1.安企神软件&#xff1a; 功能全面的电脑屏幕监控软件&#xf…

有监督学习——梯度下降

1. 梯度下降 梯度下降&#xff08;Gradient Descent&#xff09;是计算机计算能力有限的条件下启用的逐步逼近、迭代求解方法&#xff0c;在理论上不保证下降求得最优解。 e.g. 假设有三维曲面表达函数空间&#xff0c;长(x)、宽(y)轴为子变量&#xff0c;高(z)是因变量&…

机器学习笔记 - LoRA:大型语言模型的低秩适应

一、简述 1、模型微调 随着大型语言模型 (LLM) 的规模增加到数千亿,对这些模型进行微调成为一项挑战。传统上,要微调模型,我们需要更新所有模型参数。这也称为完全微调 (FFT) 。下图详细概述了此方法的工作原理。 完全微调FFT 的计算成本和资源需求很大,因为更新每…

基于软件在环的飞控机建模仿真

安全关键系统&#xff08;Safety-Critical System&#xff0c;SCS&#xff09;是指由于某些行为或组合行为能够引发整体系统失效&#xff0c;继而导致财物损失、人员受伤等严重影响的系统&#xff0c;诸多安全关键领域如航空航天、核电系统、医疗设备、交通运输等领域的系统都属…

ansible安装wordpress

1.回顾 yum安装wordpress 查看别名 [rootlocalhost ~]# type ll ll 是 ls -l --colorauto 的别名设置别名 aliasyum install -y alias ymyum install -y# 使用别名 ym nginx# 取消别名 unalias ym# 基于LNMP做一个wordpressnginx mysql 5.7 PHP 7.4#1、初始化过程 修改主机名…

mathematical-expression-cpp | C++ 数学表达式解析库

数学表达式-cpp Switch to English Document 介绍 本框架是一种针对数学公式解析的有效工具&#xff0c;能够通过C的API解析包含嵌套函数&#xff0c;包含函数&#xff0c;数列步长累加等数学公式&#xff0c;返回值是一个数值的结果对象&#xff0c;同时也可以进行比较运算…

Python学习从0开始——Kaggle深度学习002

Python学习从0开始——Kaggle深度学习002 一、单个神经元1.深度学习2.线性单元示例 - 线性单元作为模型多个输入 3.Keras中的线性单元 二、深度神经网络1.层多种类型的层 2.激活函数3.堆叠密集层4.构建Sequential模型 三、随机梯度下降1.介绍2.损失函数3.梯度下降法1.梯度下降法…

只登录不发微博ip地址会变吗?探索其中的奥秘

在数字化时代&#xff0c;网络IP地址如同我们的数字身份证&#xff0c;记录着我们在网络世界中的每一次活动。对于微博这一社交平台的用户而言&#xff0c;IP地址的变动或许是他们未曾注意过的细节。那么&#xff0c;当用户仅登录微博而不发微博时&#xff0c;其IP地址是否会发…

仰望U8三大黑科技,重新定义智能汽车

文 | 智能相对论 作者 | 雷歌 是时候重新定义中国的“智能汽车”了。 在仰望U8出来以前&#xff0c;普通人对知道的智能汽车的配置认识&#xff0c;智能汽车是智能驾驶智能座舱&#xff0c;硬件上大概是这几样&#xff1a;毫米波雷达激光雷达智驾芯片。 仰望U8出来以后&…

Spring Boot集成 Spring Retry 实现容错重试机制并附源码

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

LDO重要参数 – 芯片热阻

原文出自微信公众号【小小的电子之路】 最近画了一块电路板&#xff0c;板子上的芯片采用LDO供电&#xff0c;测试过程中发现LDO发热极其严重&#xff0c;最终不得不重新画板&#xff0c;加入散热设计。提到芯片发热&#xff0c;不得不说的一个参数就是芯片热阻&#xff0c;LDO…

PyTorch -- Visdom 快速实践

安装&#xff1a;pip install visdom 注&#xff1a;如果安装后启动报错可能是 visdom 版本选择问题 启动&#xff1a;python -m visdom.server 之后打开出现的链接 http://localhost:8097Checking for scripts. Its Alive! INFO:root:Application Started INFO:root:Working…

安装前端依赖node-sass报错

文章目录 问题1&#xff1a;node-sass报错问题2&#xff1a;node-gyp报错问题3&#xff1a;node-sass再次报错问题4&#xff1a;node-sass三次报错 问题1&#xff1a;node-sass报错 问题描述&#xff1a;经常会碰到一个新的项目安装依赖时&#xff0c;会报node-sass版本的问题…

寄件管理系统操作教程

步入信息化时代&#xff0c;企业之间的经济活动开始向线上转移&#xff0c;对公邮寄的管理问题&#xff0c;也开始进入管理者的视线内。为什么这么说呢&#xff1f; 很简单&#xff0c;早前想要谈妥一单生意&#xff0c;需要会面拜访等等线下活动&#xff0c;随着互联网的发展&…

你好,Jetpack Compose

文章目录 为什么选 Jetpack Compose先决条件新建项目新建虚拟设备运行项目 为什么选 Jetpack Compose Jetpack Compose 是 Android 开发最新的、现代化的 UI 框架开发者几乎只需要使用 Kotlin 一门语言即可完成 App 开发&#xff08;Java 是基础&#xff0c;有些源码是 Java 写…

无线MODBUS通讯模块在供水系统中的应用

一、项目背景 我国是人口大国、农业大国&#xff0c;同时也是贫水大国。由于大量工业废水污染了部分河流、地表的浅层水资源&#xff0c;并且有逐年加重的趋势&#xff0c;再加上农业、绿化等灌溉对水资源的大量消耗&#xff0c;这些因素综合作用进一步加剧了我国水资源紧缺的…

Seate分布式锁

XA模式 在第一阶段资源协调者&#xff08;TC&#xff09;会向资源管理者&#xff08;RM&#xff09;发出一个准备的请求&#xff0c;RM开始处理自身的业务&#xff0c;处理完成后不提交事务&#xff0c;而是向TC响应一个执行结果&#xff0c;表明自己成功还是失败&#xff0c;如…

解析Facebook对当代文化传播的影响力

Facebook作为全球最大的社交媒体平台之一&#xff0c;承载着巨大的文化传播功能&#xff0c;对当代文化产生了深远的影响。从社会交流、价值观念到艺术创作和政治动态&#xff0c;Facebook已经成为了人们获取信息、表达观点和交流想法的重要平台。本文将深入解析Facebook对当代…