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

news2025/9/18 18:56:32

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)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何评估员工在新版FMEA培训后应用知识的效果?

随着制造业的快速发展&#xff0c;新版FMEA已成为企业提升产品质量、减少故障风险的关键一环。然而&#xff0c;培训只是第一步&#xff0c;如何有效评估员工在新版FMEA培训后应用知识的效果&#xff0c;才是确保培训成果转化的关键所在。 评估员工知识应用效果的首要步骤是制定…

[深度学习]基于C++和onnxruntime部署yolov10的onnx模型

基于C和ONNX Runtime部署YOLOv10的ONNX模型&#xff0c;可以遵循以下步骤&#xff1a; 准备环境&#xff1a;首先&#xff0c;确保已经下载后指定版本opencv和onnruntime的C库。 模型转换&#xff1a;按照官方源码&#xff1a;https://github.com/THU-MIG/yolov10 安装好yolov…

揭秘裂变客户背后的心理学:如何触动用户分享欲望?

在当今的社交媒体时代&#xff0c;裂变客户——即用户主动分享并推广某一产品或服务&#xff0c;已成为企业营销的重要策略。那么&#xff0c;如何触动用户的分享欲望呢&#xff1f;这背后其实隐藏着深刻的心理学原理。本文将以looka这个知名的国外设计工具为例&#xff0c;为s…

最新下载:EasyRecovery易恢复软件安装视频教程

EasyRecovery电脑数据丢失如何恢复?有时候我们在清理电脑的时候会不小心把一些文件夹的数据误删了&#xff0c;在数据恢复时大家会寻找一些数据恢复软件&#xff0c;比如Easyrecover数据恢复软件&#xff0c;但是许多小伙伴还不知道要怎么操作&#xff0c;文件恢复的操作和原理…

有什么好用的ai智能写作手机版?6个软件帮助你快速进行智能写作

有什么好用的ai智能写作手机版&#xff1f;6个软件帮助你快速进行智能写作 AI智能写作在现代社会中扮演着越来越重要的角色&#xff0c;许多人依赖这些工具来提高写作效率和质量。以下是六款不同类型的AI智能写作手机应用&#xff0c;它们可以帮助你快速进行智能写作&#xff…

3X+3问题,角谷猜想的姐妹问题

3X3问题是角谷猜想&#xff08;3X1&#xff09;的延伸&#xff0c;可以说是孪生问题。 对于任何奇数x&#xff0c;乘以3再加3&#xff0c;再析出偶数&#xff0c;即&#xff0c;除以&#xff08;m1&#xff0c;2&#xff0c;3&#xff0c;...。&#xff09;&#xff0c;&#x…

借助ollama实现AI绘画提示词自由,操作简单只需一个节点!

只需要将ollama部署到本地&#xff0c;借助comfyui ollama节点即可给你的Ai绘画提示词插上想象的翅膀。具体看详细步骤&#xff01; 第一步打开ollama官网&#xff1a;https://ollama.com/&#xff0c;并选择models显存太小选择的是llama3\8b参数的instruct-q6_k的这个模型。 运…

Ubuntu18.04 安装 colmap

安装依赖 sudo apt-get install \git \cmake \ninja-build \build-essential \libboost-program-options-dev \libboost-filesystem-dev \libboost-graph-dev \libboost-system-dev \libeigen3-dev \libflann-dev \libfreeimage-dev \libmetis-dev \libgoogle-glog-dev \libgt…

GenICam标准(一)

系列文章目录 GenICam标准&#xff08;一&#xff09; GenICam标准&#xff08;二&#xff09; 文章目录 系列文章目录1、概述GenApiGenTLSFNC&#xff08;标准特征命名约定&#xff09;CLProtocolGenCP 参考 emva 1、概述 如今的数码摄相机包含了很多的功能&#xff0c;而不仅…

为什么Mamba模型被拒?

Mamba模型问世 最近&#xff0c;国际学习表征会议&#xff08;ICLR&#xff09;公布了2024年会议的最终决定&#xff0c;其中引起广泛关注的是一个名为Mamba的模型。这个模型最初被认为是对抗著名的Transformer架构进行语言建模任务的主要竞争者&#xff0c;但最终被拒绝&…

植物大战僵尸杂交版 fatal error及问题解决闪退

echo off set KEY_NAMESoftware\PopCap\PlantsVsZombies set VALUE_NAMEScreenmode set DATA0 reg add HKCU%KEY_NAME% /v %VALUE_NAME% /t REG_DWORD /d %DATA% /f if %errorlevel% neq 0 ( echo 注册表数值数据修改失败 ) else ( echo 注册表数值数据已成功修改为0 ) 将上述…

什么是场外期权?场外期权有几种做法?

今天带你了解什么是场外期权&#xff1f;场外期权有几种做法&#xff1f;期权分为场内期权&#xff0c;场外期权。场内期权我们都知道&#xff0c;是在期货盘里购买的期权&#xff0c;但场外期权呢&#xff1f; 什么是场外期权&#xff1f; 场外期权是一种在交易所之外进行交易…

组件二次封装,通过属性事件透传,插槽使用,组件实例方法的绑定,深入理解 Vue.js 组件扩展与插槽

透传&#xff0c;插槽&#xff0c;组件实例方法的绑定&#xff0c;深入理解 Vue.js 组件扩展与插槽 前言 Vue.js 提供了强大的组件化系统&#xff0c;允许开发者构建可复用、可组合的UI组件。在实际项目中&#xff0c;直接使用第三方库提供的基础组件&#xff08;如Element UI…

DBA必备!如何使用DBdoctor进行索引推荐

近期&#xff0c;一些用户在安装DBdoctor并完成实例纳管后&#xff0c;常在DBdoctor概览页面或实例性能洞察页面看到索引推荐的相关信息&#xff0c;他们对这些信息的来源、索引推荐的触发场景以及实现流程等比较关注&#xff0c;也想了解是否存在其他能够触发索引推荐的场景。…

【Hive中篇: 一篇文章带你了解表的静态分区,动态分区! 分桶!Hive sql的内置函数!复杂数据类型!hive的简单查询语句!】

前言&#xff1a; &#x1f49e;&#x1f49e;大家好&#xff0c;我是书生♡&#xff0c;本篇文章主要分享的是大数据开发中hive的相关技术&#xff0c;表的静态分区&#xff0c;动态分区&#xff0c;分桶&#xff01;Hive sql的内置函数&#xff01;复杂数据类型&#xff01;以…

优雅谈大模型11:Mistral

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;则提…

android studio4.1后不能ButterKnife

麻蛋L最近发现 android studio不能使用ButterKnife啦&#xff01;ButterKnife Injections不维护&#xff0c;butterknife Zelezny也不维护&#xff01;&#xff01;&#xff01;日…难受&#xff0c;兄弟们换下一家&#xff1a;IDsCreate&#xff0c;一毛一样的好用&#xff01…

2024年计算机科学与电子信息工程国际会议(ICSEIE 2024)

2024 International Conference on Computer Science and Electronic Information Engineering 【1】大会信息 会议简称&#xff1a;ICSEIE 2024 大会时间&#xff1a;2024-07-19 大会地点&#xff1a;中国苏州 截稿时间&#xff1a;2024-07-05(以官网为准&#xff09; 审稿通…

git提交错了?别慌,直接删除提交记录

git revert 和git reset &#xff01;这两个命令都有撤销操作的功能&#xff01;哪一个可以删除提提交记录&#xff1f;&#xff1f;&#xff1f; 使用git revert撤销提交 revert的英文释义是回复、恢复&#xff08;到原来的状态&#xff09; 作用 git revert 是 Git 中用于撤…

IntelliJ IDEA 用maven创建web项目

前言 已经安装并配置好Tomcat。具体步骤&#xff1a;Tomcat安装及环境变量配置(一看就会)-CSDN博客​编辑https://blog.csdn.net/longyongyyds/article/details/135825647 具体步骤 1.新建一个maven项目 2&#xff0c;配置好tomcat服务器 3.运行测试一下 maven教程&#xf…