PLC-Recorder对于数据采集时间戳偏差的修正功能

news2024/11/13 8:18:56

目录

一、修正原理

二、使用步骤

1、初始状态,计算修正系数

2、启动和使用

3、修正系数的手动修改

三、修正前后的效果对比

1、修正前的时间偏差曲线

2、修正后的效果曲线

四、注意事项

1、控制器可能的时钟波动

2、平移参数评估

3、参数保存

五、关于时间处理的小结


 

PLC-Recorder在收听模式的高速采集时,支持PLC发送的时间戳,具体可以参考S7-1500的高速采集案例,来克服计算机(Windows系统)的时钟不稳定性,大大提高了采集数据的时刻稳定性。但是,被采集控制器(以下简称控制器)和计算机是两个不同的设备,有着各自的时钟,两个时钟总是会存在快慢的差异,长期运行后,时间戳就会出现绝对时间的偏差。

对于单台控制器采集,这种时钟的差异只要不是很大,是可以忽略的。

对于多台控制器同步采集,且这些控制器需要进行动作时序比较时(比如,需要精确到ms级别)。如果他们同时开始动作,曲线上却显示出不同的时间偏差,到底是测量问题,还是设备同步问题?用户就会抓狂。在Ana的离线分析里有通道偏移设定,可以手动修正通道间的时间偏差,但是,用户需要找到修正依据,也不是件容易的事情。

为了尽可能解决时间不同步的问题,采集软件开发了时间戳较准的功能(V3.3.0开始支持),增加了修正系数。控制器和计算机的时间同步误差小了,控制器之间的时间错位也会自然变小。

一、修正原理

下图是计算机时钟与控制器时钟的特性曲线,如果他们完全一致,则曲线就是那条虚线,而实际上,是蓝色表示的样子。假设他们是线性关系,则可以通过y=kx+b来进行修正。其中k是修正系数,b是平移系数。

7e601c09243345c99ef1791fe62cbdf6.png

二、使用步骤

1、初始状态,计算修正系数

初始状态时,修正系数为1。开始采集后,软件不断计算时间戳与计算机的时间差异,经过一段时间探索后,就可以观察到趋势,软件进行曲线拟合,推测时间戳与计算机时间的线性关系,当线性关系稳定后,提示有新的修正系数。

点击“使用”按钮,该修正系数存入通道参数。在下次开始采集时,即可应用这个修正系数。

a3d19d78f11e42f8ad4fa875948d9f1e.png

2、启动和使用

在启动采集时,如果修正系数不为1,则进行应用。在进行时间戳同步后,即开始修正。并在初始阶段,进行平移参数的评估和应用。

3、修正系数的手动修改

修正系数的大小与计算机和被采集设备的时钟差异有关。如果I/O项目复制到其他计算机,则该系数不一定合适。这时有两种解决办法:

方法1:通过“复位”按钮,可以重新启动修正系数计算。

方法2:如果知道适合的修正系数,则可以在I/O里直接进行修正。

b9d9f68204004b299b69f39b9c23f5ba.png

三、修正前后的效果对比

1、修正前的时间偏差曲线

45f2e22b3f054a47925b9f1150ddc311.png14d297273f4b4012a77a3b949909f72a.png

2、修正后的效果曲线

bfc76af3756e4bb493b976979e84a581.png554f471227f241d8a28976c4ec84de19.png48a3fa69da7e44a8a2ce5b61b40fb7b0.png

四、注意事项

1、控制器可能的时钟波动

为了提高修正系数的精度,修正系数计算时间至少要1-2小时,如果在计算过程中出现了较大波动,则会自动重新计算。

已经发现很多PLC会定时或者不定时进行时钟的调整,这会导致修正后的时间戳出现相应的变化,以下是几个控制器的情况:

S7-1200会出现1小时1s的调整,修正后,会出现明显的偏差台阶。

S7-1500也有调整,但是,采用了多次,小幅的调整,所以,其修正后的效果还是不错的。

汇川的中型PLC发现半小时内60s的快速修正。

PUM控制器的有自己的时间戳计算机制,脱离了时钟的干扰,时间戳非常稳定,修正效果也最好。

本软件的修正目标是将时钟偏差控制在30ms/12h以内,实际测试偏差都在10ms/12h以内(有台阶偏差的除外)。

2、平移参数评估

在开始采集时,系统稳定性欠佳,经过短暂的稳定期后,会对于平移系数b进行评估和应用,该过程仅持续几秒。

3、参数保存

已经应用的通道修正系数会存入数据文件、配置文件,在软件启动时,会自动加载和应用。也可以从数据文件导入。

五、关于时间处理的小结

为了提高高速采集时间的稳定性,软件采取了一系列的措施,可以选择使用,获取最佳效果:

1、采集阶段:电文/报文带有时间戳、时间戳修正

2、离线分析阶段:通道偏移。

 

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

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

相关文章

红酒与夜晚:享受静谧的品酒时光

当夜幕低垂,星光点点,世界仿佛进入了一个宁静而神秘的领域。在这样的夜晚,与一瓶定制红酒洒派红酒(Bold & Generous)相伴,便是一场令人陶醉的品酒之旅,让人在静谧中感受生活的美好。 一、夜…

【深度学习】【语音TTS】OpenVoice: Versatile Instant Voice Cloning,论文

https://github.com/myshell-ai/OpenVoice https://arxiv.org/abs/2312.01479 文章目录 摘要1 引言2 方法2.1 直观思路2.2 模型结构2.3 训练细节3 结果4 结论摘要 我们介绍了OpenVoice,一种多功能的即时语音克隆方法,只需参考说话者的短音频片段即可复制其声音,并生成多语…

数据结构(7):查找

1 查找的基本概念 概念 常见操作 评价指标 平均查找长度!!!! ✖前面表示长度 后边表示个数! 处于的是总共的紫色的个数 总结 2 顺序查找、折半查找、分块查找 2.1 顺序查找 适用于线性表! 正常代码 哨兵&#xff…

Java类和对象引入

目录 1.类与对象引入 2.类与对象关系示意图 3.类与对象的区别和联系 4.属性/成员变量 基本介绍 注意事项和细节说明 5.如何创建对象 先声明再创建 直接创建 6.如何访问属性 基本语法 7.类和对象的内存分配机制(重要) 案例演示&#xff…

string类的模拟实现(C++)

一、前言 想要模拟实现一个库中的类,那就要首先要熟悉如何使用这个类。建议通过下面博客,完成对Cstring类的学习。 C的string类-CSDN博客 二、模拟实现 我们将从string的成员函数即成员变量入手,模拟实现string类。 成员变量 string类的…

Spring Boot项目实现调用腾讯云进行人脸识别

​ 博客主页: 南来_北往 系列专栏:Spring Boot实战 背景 随着科技的不断发展,人脸识别技术已经成为了一种日益重要的身份验证和安全监控手段。腾讯云人脸识别功能便是其中之一,而Java语言又是现在最为常用且高效的编程语言之一。本篇论…

mongoDB 的安装和使用【docker compose,springboot】

一 介绍 NoSQL数据库 NoSQL:Not Only SQL ,本质也是一种数据库的技术,相对于传统数据库技术,它不会遵循一些约束,比如:sql标准、ACID属性,表结构等。 Nosql优点 l 满足对数据库的高并发读写 l 对海量数…

思维+dfs,CF 269C - Flawed Flow

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 269C - Flawed Flow 二、解题报告 1、思路分析 考虑源点相连的边的方向是确定的,因为流量是从源点往外流的 我们设cap[u] 为 和u相连边的容量和,显然入边容量要和出边容量相等&…

6.C基础_输入输出函数

putchar 功能:输出一个字符 函数声明: int putchar(int c);返回值:参数c的ASCLL码值 c:要输出的字符,可以为字符常量、字符变量或表达式 注意点:输出的结果不带\n getchar 功能:从键盘读…

Day28 | 56. 合并区间 738.单调递增的数字 968.监控二叉树

语言 Java 56. 合并区间 合并区间 题目 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 思路 创建…

基于单片机的ELF可执行文件加载以及Bootloader程序实现程序切换

目录 1.ELF可执行文件加载 1.1 ELF文件分类 1.2 ELF文件格式 1.3链接地址 ​编辑 2.Bootloader程序切换 2.1 Bootloader介绍 2.2 代码实现 1.ELF可执行文件加载 ELF(Executable and Linkable Format)文件是一种标准的文件格式,用于可…

秒懂Linux之编写小程序——进度条

目录 一.前文摘要 二.进度条编写 三全部代码(非Linux环境下测试) 一.前文摘要 在开始编写之前我们先来学习一些后面会用到的知识点~ 测试结果发现,Sleep无作用,编译完会立刻打印~ 再来看另一个测试~我们同样没有换行&#xff0c…

前后端中的日期格式转换问题

从前端接收到的日期转为想要的格式 JSON日期的反序列化为java对象时 JsonFormat(timezone “GMT8”, pattern “yyyy-MM-dd HH:mm:ss”) 从后端发送的日期转为想要的格式给前端 Java对象中的日期的序列化为JSON时会用到 Date数据序列化为JSON发往前端时,按以下格…

【机器学习西瓜书学习笔记——支持向量机】

机器学习西瓜书学习笔记【第六章】 第六章 支持向量机6.1 间隔与支持向量硬间隔最大化 6.2 对偶问题6.3核函数定义构建核函数应用优劣优势劣势 6.4 软间隔与正则化软间隔正则化 6.5支持向量回归(SVR)函数间隔和几何间隔SVR的原理SVR数学模型线性硬间隔SV…

The dependencies of some of the beans in the application context form a cycle

你们好,我是金金金。 场景 启动服务时,报错:应用程序上下文中的某些bean的依赖关系形成了一个循环 循环依赖 依赖循环指的是两个或多个类之间相互依赖的情况,即类A依赖类B,同时类B也依赖类A。 这种情况会导致编译器无…

java接口只能定义抽象方法吗?

写在前面 在Java中接口时作为规范来存在的&#xff0c;那么除了抽象方法&#xff0c;接口中还能定义其他方法吗?比如静态方法&#xff1f;本文一起来看下。 1&#xff1a;正文 这并不是一个绝对的是和否的问题&#xff0c;不同的jdk版本表现不同&#xff0c;在<1.7的版本…

用例管理框架

用例管理框架之pytest单元测试框架&#xff08;上&#xff09; 一、pytest用例管理框架&#xff08;单元测试框架&#xff09; 1.分类&#xff1a; python&#xff1a;unittest&#xff0c;pytest 必须非常熟练 2.主要作用&#xff1a; 发现测试用例&#xff1a;从多个py文…

深入理解 C 语言中的联合体

目录 引言 一、 联合体的定义与基本用法 1.联合体的定义 2.基本用法 二、 联合体与结构体的区别 1.结构体 2.联合体 3.对比 ​编辑三、联合体的优势 1. 节省内存 2. 提高效率 3. 代码简洁性 四、联合体的存储细节 1.内存对齐 2.大小计算 五、联合体的高级用法…

Windows内核态开发笔记

文章目录 r3/r0通信x64 HOOK回调监控进程强杀minifilterObRegisterCallbacksWFP后记 r3/r0通信 用户态 #include <Windows.h> #include <stdio.h>#define SENDSTR CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, METHOD_BUFFERED, FILE_ANY_ACCESS) void main() {HANDLE …

Reader

FileInputStream和FileOutputStream其实还叫字节输入流和字节输出流。关于输入和输出这2个总是有点模糊。 以内存为基准&#xff0c;InputStream是文件流向内存&#xff0c;就是从文件中读取数据&#xff0c;又称为输入流。 OutputStream是从内存中流向文件&#xff0c;就是向…