IOT系统上位机从OPC 服务器采集,时间戳的问题哪些现象?

news/2024/5/2 22:05:11

上位机从OPC服务器采集数据时,时间戳问题可能出现以下现象:

1. 时间偏差:

   - 时区不一致:OPC服务器可能使用UTC(协调世界时)作为基准,而上位机可能使用本地时区。如果不进行适当转换,会导致时间显示与实际不符。

   - 硬件时钟漂移:OPC服务器或上位机的硬件时钟可能存在精度问题,导致时间逐渐偏离真实时间。

2. 时间跳跃:

   - 系统重启或时钟校正:设备重启或自动/手动校正时钟时,时间戳可能突然跳变。

   - 网络中断恢复:网络连接断开再恢复时,设备可能重新同步时间,导致时间戳出现跳跃。

3. 时间戳不匹配:

   - 数据分批到达:由于网络延迟或数据打包传输,不同数据点的时间戳可能不完全同步,导致在上位机上看到的时间序列不连续。

   - 数据更新频率不同:不同传感器或设备可能以不同的速率更新数据,导致时间戳错位。

4. 时间戳缺失或无效:

   - 设备故障或通信问题:设备故障、通信中断可能导致某些数据点缺少有效时间戳。

   - 协议或软件缺陷:OPC服务器或上位机软件可能存在bug,导致时间戳未能正确传输或解析。

5. 时间戳精度问题:

   - 低精度时钟:部分低成本设备可能使用精度较低的时钟源,导致时间戳精度不足,影响基于时间的精细分析。

   - 采样周期与时间戳分辨率不匹配:如果设备采样周期与时间戳分辨率不一致,可能会导致时间戳值重复或跳过某些实际采样点。

6. 时间同步问题:

   - 多源时间同步困难:在涉及多个OPC服务器或设备的时间同步场景中,确保所有设备时间一致可能较为复杂,特别是跨地域、跨网络环境的部署。

为解决上述时间戳问题,上位机在采集数据时应采取以下措施:

- 时区转换:确保将OPC服务器的UTC时间正确转换至上位机本地时区。

- 时间戳校验与修正:对采集到的时间戳进行合理性检查,必要时进行补偿或修正。

- 数据排序与填补:根据时间戳对数据进行排序,并对缺失的时间戳进行插值或使用最近有效值填补。

- 定期时钟同步:网络时间协议(NTP)/精准时间协议(PTP)等协议定期同步上位机与OPC服务器的时钟,减少时间偏差。

- 软件抽象层处理:在应用层或中间件中引入时间戳管理和同步逻辑,对不同来源的时间戳进行统一处理和调整。

通过这些措施,上位机可以从OPC服务器有效、准确地采集并处理带有时间戳的数据,减少因时间戳问题导致的分析误差和决策失误。


http://www.mrgr.cn/p/12864655

相关文章

nginx安装在linux上

nginx主要用于反向代理和负载均衡,现在简单的说说如何在linux操作系统上安装nginx 第一步:安装依赖 yum install -y gcc-c pcre pcre-devel zlib zlib-devel openssl openssl-devel 第二步: 下载nginx,访问官网,ngin…

CentOS 7安装Zookeeper

说明:本文介绍如何在CentOS 7操作系统下使用Zookeeper 下载安装 首先,去官网下载所需要安装的版本,我这里下载3.4.9版本; 上传到云服务器上,解压 tar -xvf zookeeper-3.4.9.tar.gz修改配置 进入Zookeeper目录下的co…

jenkins 启动linux节点时 控制台中文显示问号乱码

新增一个jenkins节点时,遇到了控制台中文输出问号的问题。 网上各种配置jenkins的全局变量,都不行。 最终是 节点列表 ->对应节点 -> 启动方式 -> 高级 添加JVM选项 -Dfile.encodingUTF-8

C语言 递归

递归指的是在函数的定义中使用函数自身的方法。 举个例子: 从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?“从前有座山,山里有座庙,庙里有个老和尚&…

用python实现四则运算的生成与判定

小组成员:2252316,2252326点击查看代码 import randomdef generate_question():operators= [+, -, *, /]while 1:operator1 = random.choice(operators)operator2 = random.choice(operators)num1 = random.randint(1, 100)num2 = random.randint(1, 100)num3 = random.randi…

自己的事情自己做:使用 Python Turtle 绘制 Python Logo

以下代码中,将向你展示一个有趣的程序,如何使用 Python Turtle 中绘制 Python Logo。Python 翻译成汉语是蟒蛇的意思,Python 的 Logo 也是两条缠绕在一起的蟒蛇。 import turtlepen turtle.Turtle() turtle.bgcolor("black") pe…

2024年五一杯数学建模B题思路分析

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间:2024…

Ubuntu22.04 + ROS2 Humble的环境配置

Ubuntu22.04 ROS2 Humble的环境配置 文章目录 Ubuntu22.04 ROS2 Humble的环境配置(1) Set locale(2) Setup Sources(3)安装ROS2(4)检查是否成功安装 参考官方网站ROS2-Installation ROS2的各种版本及维护计划,可以参考ROS2-List of Distributions (1) Set locale…

Flattened Butterfly 扁平蝶形拓扑

Flattened Butterfly 扁平蝶形拓扑 1. 传统蝶形网络 Butterfly Topology2. 扁平蝶形拓扑 Flattened Butterfly3.On-Chip Flattened Butterfly 扁平蝶形拓扑应用于片上网络 Flattened Butterfly 扁平蝶形拓扑 扁平蝶形拓扑是一种经济高效的拓扑,适用于高基数路由器…

音乐盒组件Aplayer+Metingjs

Aplayer🍭 Wow, such a beautiful HTML5 music player(哇,好漂亮的HTML5音乐播放器) Aplayer是一个功能强大的HTML5音乐播放器 Aplayer官网文档:https://aplayer.js.org/#/MetingjsMetingjs基于Aplayer插件封装好的插件,开箱即用 Metingjs官网文档:https://github.com/me…

FebHost:谁可以注册.CA加拿大域名?

在加拿大,互联网域名的注册管理遵循一套独特的规则。特别是对于代表加拿大身份的顶级域名“.ca”,其申请和注册过程涉及一些严格的条件。这些条件确保了只有符合特定标准的个人或实体才能获得这一具有国家象征意义的网络地址。 首先,想要注册…

【算法练习】29:插入排序学习笔记

一、插入排序的算法思想 原理:将一个无序的数据序列逐步转化为有序序列。算法将待排序的数组分为两个部分已排序部分和未排序部分。 时间复杂度:插入排序的时间复杂度在最坏、平均和最好情况下的表现相同,均为 ,其中 n 是待排序数…

flutter+Springboot的结合

我们团队的开发 前端采用flutter 后端采用spring boot 首先 完成了app的图标名字的修改 在app/src/main/res/mipmap 目录中 存放app图标 图片 在AndroidManifest.xml 文件中 修改对应的 名字 和图标 打开后是 我们的主页面 首先进来的是 主页面 但是各种功能无法使用 必须登录后…

在Windows安装R语言

直接安装R语言软件 下载网址:R: The R Project for Statistical Computing 下载点击install R for the first time 通过Anaconda下载RStudio 提前下载好Anaconda 点击Anaconda Navigate 点击RStudio的Install下载就好了

第二部分 Python提高—GUI图形用户界面编程(三)

简单组件学习 Radiobutton 单选按钮、Checkbutton 复选按钮和canvas 画布 文章目录 Radiobutton 单选按钮Checkbutton 复选按钮canvas 画布 Radiobutton 单选按钮 Radiobutton 控件用于选择同一组单选按钮中的一个。Radiobutton 可以显示文本,也可以显示图像。 f…

如何在忘记密码情况下更改Windows 10用户的密码?这里有详细步骤

如果你想更改登录用户的Windows 10密码,当你不知道当前或旧用户密码时,这篇文章已经准备好让你学习如何操作了。 使用默认管理员更改Windows 10用户密码 如果我们启用了默认管理员,那么即使我们忘记了Windows 10用户密码,我们也可以使用内置管理员访问计算机,并在没有任…

Python分析之3 种空间插值方法

插值是一个非常常见的数学概念,不仅数据科学家使用它,而且各个领域的人们也使用它。然而,在处理地理空间数据时,插值变得更加复杂,因为您需要基于几个通常稀疏的观测值创建代表性网格。 在深入研究地理空间部分之前,让我们简要回顾一下线性插值。 为了演示的目的,我将使…

快速学习nginx反向代理

反向代理 nginx方向代理配置nginx反向代理nginx负载均衡配置 nginx方向代理 将前端发送的动态请求由nginx转发到后端服务器 nginx反向代理的好处: 提高访问速度 nginx中提供缓存机制,有一些数据在进行访问的时候无需访问后端服务器之间由nginx返回数据 …

使用JSZip实现在浏览器中操作文件与文件夹

使用JSZip来实现在浏览器中创建文件与文件夹1. 引言 浏览器中如何创建文件夹、写入文件呢? 答曰:可以借助JSZip这个库来实现在浏览器内存中创建文件与文件夹,最后只需下载这个.zip文件,就是最终得结果 类似的使用场景如下:在线下载很多图片,希望这些图片能分类保存到各个…

基于XML配置bean(二)

文章目录 1.工厂中获取bean1.静态工厂1.MyStaticFactory.java2.beans.xml3.测试 2.实例工厂1.MyInstanceFactory.java2.beans.xml3.测试 3.FactoryBean(重点)1.MyFactoryBean.java2.beans.xml3.测试 2.bean配置信息重用继承抽象bean1.beans.xml2.测试 3.…