Python-opcu啊编程(5)-数据变化通知(datachange_notification)

news2024/9/27 23:35:05

        在OPCUA服务器端,当数据或者变化时,要做一些处理。例如:在聚合服务器或者网关程序中,当客户端修改某一个变量时,需要将修改值传递给底层服务器或者现场总线设备(比如modbus设备。

      这是一种中继方式。SubHanlder 相当于AfterWriteCallback 程序。

演示代码

import sys
sys.path.insert(0, "..")
import time
from opcua import  Server
class SubHandler(object):
   def datachange_notification(self, node, val, data):
       print(node.get_browse_name().Name+" DataChanged")
       pass
if __name__ == "__main__":

    # setup our server
    server = Server()
    server.set_endpoint("opc.tcp://127.0.0.1:48400/freeopcua/server/")
    uri = "http://examples.freeopcua.github.io"
    idx = server.register_namespace(uri)

    # get Objects node, this is where we should put our nodes
    objects = server.get_objects_node()

    # populating our address space
    myobj = objects.add_object(idx, "MyObject")
    myvar = myobj.add_variable(idx, "MyVariable", 6.7)
    myvar.set_writable()    # Set MyVariable to be writable by clients
    
    # starting!
    server.start()
    handler = SubHandler()
    sub = server.create_subscription(100, handler)
    sub.subscribe_data_change(myvar)
    try:
        count = 0
        while True:
            time.sleep(1)
            count += 0.1
            myvar.set_value(count)
    finally:
        #close connection, remove subcsriptions, etc
        server.stop()

在上面的程序中,使用下列函数实现订阅

subscribe_data_change(nodesattr=<AttributeIds.Value: 13>queuesize=0)

nodes可以为一个node 也可以为以节点的数组,例如

sub.subscribe_data_change([myvar1,myvar2])

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

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

相关文章

CEC2015动态多目标优化算法:基于自适应启动策略的混合交叉动态约束多目标优化算法(MC-DCMOEA)求解CEC2015(提供MATLAB代码)

一、动态多目标优化问题 1.1问题定义 1.2 动态支配关系定义 二、 基于自适应启动策略的混合交叉动态多目标优化算法 基于自适应启动策略的混合交叉动态多目标优化算法&#xff08;Mixture Crossover Dynamic Constrained Multi-objective Evolutionary Algorithm Based on S…

TCP 协议(一)报文

TCP 提供面向连接的通信传输&#xff0c;面向连接是指在传送数据之前必须先建立连接&#xff0c;数据传送完成后要释放连接。无论哪一方向另一方发送数据之前&#xff0c;都必须先在双方之间建立一条连接。在TCP/IP协议中&#xff0c;TCP协议提供可靠的连接服务&#xff0c;连接…

如果你也好奇免费音频转换器哪个好用,就看看这篇吧

在繁忙的都市中&#xff0c;我有幸结识了一个名叫杰克的年轻音乐制作人。杰克是一位对音乐充满热情的创作者&#xff0c;他在这个喧嚣的城市里不断探索着音乐的可能性。然而&#xff0c;他面临着一个令人困扰的问题——他需要将一段重要的音频转换成不同的格式&#xff0c;以便…

有趣的命令——————用shell脚本实现乘法口诀表

vim test.sh 输入以下内容#!/bin/bashfor i in {1..9} dofor ((j1;j<$i;j))doecho -n "${j}x${i}$(($i*$j)) "doneecho done 以下是测试图&#xff1a;有需要的可以过来看看哟&#xff01;&#xff01;&#xff01;

Android Camera2-预览、拍照、录像流程

一、Camera2实现预览、拍照、录像三大基础功能的流程框架图 Camera2关键几个类&#xff1a; CameraManager 管理手机上的所有摄像头设备。管理手机上的所有摄像头设备&#xff0c;它的作用主要是获取摄像头列表和打开&#xff08;openCamera&#xff09;指定的摄像头。 它其…

3.3::ASP.NET Zero Power Tools VS扩展--Crack

ASP.NET Zero Power Tools是一个 Visual Studio 扩展&#xff0c;可以自动创建从数据库到用户界面的实体及其层。因此&#xff0c;您可以在几秒钟内创建一个完全工作、生产就绪的 CRUD 页面。 请注意&#xff0c;Power Tools 仅适用于ASP.NET Core模板&#xff0c;不适用于 AS…

托福口语考试的难度与要求分别是什么?

托福口语很多学生都觉得难度高&#xff0c;那么它的难度到底有哪些&#xff1f;会有哪些要求呢&#xff1f;就随来看看托福口语考试的难点&#xff0c;以及备考的事项。 一、托福口语难点 1、思考时间短&#xff0c;答题时间长 托福独立口语的思考时间仅有15秒&#xff0c;综…

PyAutoGUI实现对LoadRunner报告自动化截图

一、前言 对系统压测后&#xff0c;需要编写汇总报告。LoadRunner场景生成的Analysis报告&#xff0c;要截图保存部分图片。 每次几个功能&#xff0c;每个功能几个并发场景&#xff0c;每个场景有4张左右图片。太多重复性工作了&#xff0c;费时费力。 思考&#xff1a;怎么…

神码融信金融SBG交付二部VP李先林受邀为第十二届中国PMO大会演讲嘉宾

神码融信金融SBG交付二部VP李先林先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾&#xff0c;演讲议题&#xff1a;多项目管理的心得体会。大会将于8月12-13日在北京举办&#xff0c;敬请关注&#xff01; 议题简要&#xff1a; 在后疫情时代&#xff0c;金融科技…

pytorch里torch.gather()和torch.Tensor.scatter()解析

torch.Tensor.scatter() 类似 gather 的反向操作&#xff08;gather是读出数据&#xff0c;scatter是写入数据&#xff09;&#xff0c;所以这里只解析torch.gather()。 gather()这个操作在功能上较为反人类&#xff0c;即使某段时间理解透彻了&#xff0c;过了几个月不碰可能又…

【java】LocalDate获取前一天日期

//获取前一天日期//写法一LocalDate yesterday2 LocalDate.now().minusDays(1);System.out.println(yesterday2);//写法二LocalDate yes1 LocalDate.now().plusDays(-1);System.out.println(yes1);//输入当前日期的年 月 日System.out.println(LocalDate.now().getYear());…

基于AidLux的自动驾驶智能预警应用方案

1. 自动驾驶感知算法及AidLux相关方案介绍 1.1自动驾驶 自动驾驶汽车&#xff0c;又称无人驾驶车、电脑驾驶车、无人车、自驾车&#xff0c;是一种需要驾驶员辅助驾驶或者完全不需要操控的车辆。作为自动化载具&#xff0c;自动驾驶汽车可以不需要人类操作即能感知环境及导航…

dvwa靶场通关(九)

第九关&#xff1a;Weak Session IDs&#xff08;弱会话IDs&#xff09; 当用户登录后&#xff0c;在服务器就会创建一个会话(session)&#xff0c;叫做会话控制&#xff0c;接着访问页面的时候就不用登录&#xff0c;只需要携带 Sesion去访问。 sessionID作为特定用户访问站…

领导力指南:高效带领产品设计团队,成就卓越绩效!

产品设计团队负责创造功能性、用户友好性和视觉吸引力的产品。产品设计过程是产品设计师和他们的团队遵循的一系列阶段&#xff0c;以帮助履行他们的角色和责任。在本文中&#xff0c;我们将探讨产品设计团队应该做些什么。 1、定义产品的愿景 创造一个成功产品的第一步是定义产…

prometheus监控Nacos

Nacos监控 &#x1f4da;概述 Nacos 0.8.0版本完善了监控系统&#xff0c;支持通过暴露metrics数据接入第三方监控系统监控Nacos运行状态&#xff0c;目前支持prometheus、elastic search和influxdb&#xff0c;下面结合prometheus和grafana如何监控Nacos&#xff0c;官网gra…

Java设计模式之创建型-单例模式(UML类图+案例分析)

目录 一、基础概念 二、UML类图 三、角色分析 四、案例分析 1、饿汉模式 2、懒汉模式&#xff08;线程不安全&#xff09; 3、懒汉模式&#xff08;线程安全&#xff09; 4、双重检索模式 5、静态内部类 6、枚举 五、总结 一、基础概念 单例模式确保一个类只有一个…

工厂能源管控系统

随着现代工业的发展&#xff0c;工厂能源消耗不断增加&#xff0c;能源成本成为企业生产经营的重要组成部分。为了降低能源消耗、提高生产效率和降低成本&#xff0c;越来越多的企业开始采用工厂能源管控系统。本文将从多个方面介绍工厂能源管控系统的全面内容。 一、工厂能源管…

增值税高,怎么办?节省税款的小技巧必知!

增值税高&#xff0c;怎么办&#xff1f;节省税款的小技巧必知&#xff01; 《税筹顾问》专注于园区招商、企业税务筹划&#xff0c;合理合规助力企业节税&#xff01; 增值税是所有企业必须要去缴纳的一种税种&#xff0c;它对于企业来说十分熟悉。而企业增值税高的问题也不是…

两部搞定Pytorch 安装与配置(小白也能搞定!!!)

Pytorch 安装与配置 NVIDIA系统管理界面查看 nvidia-smi 进入NVIDIA系统管理界面 对应的详细解释看下图 参考博文 (53条消息) nvidia-smi命令详解和一些高阶技巧介绍_Chaos_Wang_的博客-CSDN博客 CUDA 查看 CUDA 有两类&#xff1a;其中一类是驱动API(Driver API)&#xff…

拥抱“Zero ETL”未来,亚马逊云科技助力乐城堡加速数据分析

获得全球三千五百多万用户的认可的移动游戏企业乐城堡希望通过数据分析为游戏业务提供更好的决策支撑。乐城堡在亚马逊云科技上利用Amazon Redshift等服务构建属于自己的云上游戏数据分析平台&#xff0c;实现复杂查询&#xff0c;保证游戏运营人员能快速、近实时地获取所需的数…