Web系统与自控系统数据通讯架构 之 OPC DA DataChangeEventHandler 非热点数据更新策略 ,
在使用OPC 采集 工控数据时,在DA模式下。采集数据通常用到 DataChangeEventHandler这个事件。但有时会遇到一些问题,就是当数据不变化时时不会触发 DataChange 这个事件的。
比如像自控系统中的一些开关量,控制模式等变量,变化不会很频繁。
例如 现地/远程 监控点,当前为远程状态,但我上层应用系统刷新页面或者退出登陆后,就丢失了这个状态信号。这里的处理方法也很简单,因为大家都知道,opc是有 Read方法的,调用读取方法就可以了。
我这里提供一个 web 应用系统与 自控系统数据通信策略。 先上个简图:
1.实线为数据采集上报流程,对于正常触发 datachange 事件的热点数据,OPC Client接收到数据之后发送至 Rabbit 的指定交换机里,Web平台从交换机获取实时数据展示。
为什么web平台获取数据要从交换机取数据而不是队列,这里是因为 web展示需要用到交换机分发的模式,试想一下,当多个人打开 Web系统如果用队列 Queue的话,每个人都无法获取到相同的消息,甚至有的人拿不到消息,因为被消费完了。(队列消费一条少一条)
数据上报流程这样就能满足了,大部分Iot 项目主要是数据采集展示,展示实时数据的时候需要用到webSocket 接入实时数据,而不是定时刷新。
2.第二条虚线就是本文讨论的第二点,非热点数据的读取上传。
对于变化频率不高的数字量,在OPCClient很容易读取到 使用AsyncRead() 就可以。这里提供的策略是,使用rabbit的Queue接收消息,前台返回需要读取的监测点号,发送到指定队列,opc client获取到点号值 发送至opcserver请求,
请求完成后将数值返回到 平台监听 的 交换机给前端展示。

Web系统与自控系统数据通讯架构 之 OPC DA DataChangeEventHandler 非热点数据更新策略 ,的更多相关文章
- ASP.NET Web API路由系统:路由系统的几个核心类型
		虽然ASP.NET Web API框架采用与ASP.NET MVC框架类似的管道式设计,但是ASP.NET Web API管道的核心部分(定义在程序集System.Web.Http.dll中)已经移除 ... 
- Android系统简介(中):系统架构
		Android的系统架构栈分为4层,从上往下分别是Applications.Application framework.Libraries & Android Runtime.Linux ... 
- 基于 HTML5 WebGL 的污水处理厂泵站自控系统
		前言 一道残阳铺水中,半江瑟瑟半江红.随着城市建设的迅速发展,每年都有大量新建管网水管通水运行.城市中有大量的排水设备,形成相应的城市排水系统,排水系统由检查井.排水泵站.污水处理厂.雨水口.排放口等 ... 
- 用SignalR 2.0开发客服系统[系列3:实现点对点通讯]
		前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室] 真的很感谢大家的支持,今天发表系列3 ... 
- ASP.NET MVC , ASP.NET Web API 的路由系统与 ASP.NET 的路由系统是怎么衔接的?
		ASP.NET MVC 的路由实际上是建立在 ASP.NET 的路由系统之上的. MVC 路由注册通常是这样的: RouteTable 是一个全局路由表, 它的 Routes 静态属性是一个 Ro ... 
- WEB项目日志分析系统思考
		一.为什么需要日志分析系统 对ETL系统中数据转换和存储操作的相关日志进行记录以及实时分析有助于我们更好的观察和监控ETL系统的相关指标(如单位时间某些操作的处理时间),发现系统中出现的缺陷和性能瓶颈 ... 
- Atitit.vod 视频播放系统 影吧系统的架构图 架构体系 解决方案
		Atitit.vod 视频播放系统 影吧系统的架构图 架构体系 解决方案 1. 运行平台:跨平台 android ios pc mobile 1.1. -------------前端 界面------ ... 
- Hadoop Web项目--Friend Find系统
		项目使用软件:Myeclipse10.0,JDK1.7,Hadoop2.6,MySQL5.6.EasyUI1.3.6.jQuery2.0,Spring4.1.3. Hibernate4.3.1,str ... 
- 客户端技术的一点思考(数据存储用SQLite, XMPP通讯用Gloox, Web交互用LibCurl, 数据打包用Protocol Buffer, socket通讯用boost asio)
		今天看到CSDN上这么一篇< 彻底放弃没落的MFC,对新人的忠告!>, 作为一个一直在Windows上搞客户端开发的C++程序员,几年前也有过类似的隐忧(参见 落伍的感觉), 现在却有一些 ... 
随机推荐
- Mac 下安装 MySQL 步骤
			安装 MySQL Mac 下安装MySQL推荐去官网下载dmg 版本的,我使用的版本是5.7.30. 如上图所示. 之后就是傻瓜式一键狂点不过需要注意的是,不要关闭下图所示的框框!不要关闭下图所示的框 ... 
- Django笔记&教程 5-1 基础增删查改
			Django 自学笔记兼学习教程第5章第1节--基础增删查改 点击查看教程总目录 第四章介绍了模型类models.Model和创建模型,相当于介绍了数据库表和如何创建数据库表. 这一章将介绍如何使用模 ... 
- Django笔记&教程 5-3 综合使用示例
			Django 自学笔记兼学习教程第5章第3节--综合使用示例 点击查看教程总目录 1 - 生成学号场景 场景描述: 教务管理系统中,学生注册账号,学生选择年级后,生成唯一学号. 细节分析: 学生学号由 ... 
- win10的pycharm中安装ansible模块过程
			前面的安装报错信息 ansible模块安装报错:Could not install packages due to an OSError: [Errno 2] No such file or dire ... 
- MySQl安装图形界面
			对于mysql的图形界面有很多个:1.MySQL GUI Tools MySQL GUI Tools是一个可视化界面的MySQL数据库管理控制台,提供了四个非常好用的图形化应用程序,方便数据库管理和数 ... 
- Atcoder Grand Contest 002 F - Leftmost Ball(dp)
			Atcoder 题面传送门 & 洛谷题面传送门 这道 Cu 的 AGC F 竟然被我自己想出来了!!!((( 首先考虑什么样的序列会被统计入答案.稍微手玩几组数据即可发现,一个颜色序列 \(c ... 
- iTOL进化树调图细节记录
			目录 1. 注册 2. 去枝长 3. 加图例 4. 无根树颜色 5. 导出图片 iTOL基本用法已经会了,之前记录过一点:系统发育(进化)树绘制小结.最近重用,调图时又发现了些细节,记录下备忘. 1. ... 
- R包MetaboAnalystR安装指南(Linux环境非root)
			前言 这是代谢组学数据分析的一个R包,包括用于代谢组学数据分析.可视化和功能注释等众多功能.最近有同事在集群中搭建蛋白和代谢流程,安装这个包出现了问题,于是我折腾了一上午. 这个包的介绍在:https ... 
- Pysam 处理bam文件
			Pysam可用来处理bam文件 安装: 用 pip 或者 conda即可 使用: Pysam的函数有很多,主要的读取函数有: AlignmentFile:读取BAM/CRAM/SAM文件 Varian ... 
- Yii2 源码分析  入口文件执行流程
			Yii2 源码分析 入口文件执行流程 1. 入口文件:web/index.php,第12行.(new yii\web\Application($config)->run()) 入口文件主要做4 ... 
