EtherCAT笔记(六)—— 分布时钟之一

news2024/11/15 14:05:33

目录

1. 分布时钟的功能

2. 分布时钟涉及到的概念

 2.1 系统时间

2.2 参考时钟 & 从时钟

2.3 主站时钟

2.4 本地时钟

2.4.1 本地时钟的初始偏移量

2.4.2 本地时钟的时钟漂移

2.5 本地系统时间

2.6 传输延时

人们理解知识的一个阻碍就是那些从没见过的概念和这些概念的随意使用。

分布时钟(Distributed Clock)绝对是EtherCAT的重头戏。从字面的概念来讲,分布时钟是可以分成两个部分来理解。一个是名词 “时钟”,时钟是一个计时或表示时间的概念。时钟(clock,timepiece)简称钟,所有计时装置都可以称为计时仪器icon-default.png?t=N7T8https://zh.wikipedia.org/zh-cn/%E6%99%82%E9%90%98#:~:text=%E6%97%B6%E9%92%9F%EF%BC%88clock%EF%BC%8Ctimepiece%EF%BC%89%E7%AE%80%E7%A7%B0,%E7%9A%84%E6%9C%89%E9%92%9F%E6%91%86%E7%9A%84%E9%92%9F%E3%80%82

另一个名词是 “分布”,分布就是散落在各个角落的一种描述(词穷了)。两个东西组合到一起:“分布时钟”,也就是散落在各个设备里面的计时装置。分布时钟有时也用 DC 来简称。

EtherCAT的分布时钟总是伴随着一些神秘色彩,由浅入深,勿忘初心。

1. 分布时钟的功能

分布时钟在EtherCAT中可以使所有的设备使用同一个系统时间,这些设备之间的系统时间相同的程度可以达到纳秒级。

系统时间,从2000年1月1日0点开始,使用64bits,精确的1ns,即每ns增加一个计数。最大可计 2^64-1ns 约584年,所以不要担心你的分布时钟计崩了。

 分布时钟有以下主要功能:

(1)实现从站之间的时钟同步:由于各个支持DC的设备计时的时钟源、漂移等一系列原因,可能使这些设备计时并不是完全相同,即使他们确实是对同一时刻开始的计时。因此支持分布时钟功能的从站就可以通过调整来使所有设备使用相同的时钟。

(2)实现主站与从站的时钟同步:主站的计时装置可以使用与从站相同的时间。

(3)为各个从站同时产生输出事件:当到达某个时间后,所有从站共同执行输出动作,从而使所有从站在同一时刻执行某些动作,如输出一个电流。

(4)为输入事件打精确的时间戳:为同时输入的数据标记相同的时间。例如我想测量一个从一个数字量输出命令的下发开始,到某个数字量输入接口获取到这个跳变开始的点的总延时。就可以通过这种时间戳的方式去计算。

(5)产生同步的中断:中断常被用来做紧急处理、同步处理等操作,而多个设备之间通过通信方式来达到纳秒级的同步中断几乎是不可能的。分布时钟可以完成这个任务。

2. 分布时钟涉及到的概念

 2.1 系统时间

定义:2000年1月1日0时0分0秒,使用一个64bit的数据来表示系统时间,单位为ns,即每过1ns,该值增加1.

2.2 参考时钟 & 从时钟

参考时钟定义:EtherCAT通常规定在整个EtherCAT链路中,第一个具有分布时钟功能的从站作为参考时钟。

从时钟定义:EtherCAT环路中除了参考时钟的分布时钟都是从时钟。

一个类比:4个人坐在一起喝下午茶,赵大戴了块儿童玩具表,钱二戴了块大米手环,张三戴了块劳力士,王五没有表。他们四个想要明天一起来上班,体现出他们已经是公司牢不可破的铁四角,并拜张三为大哥。于是他们约定明天早上8点52分19秒准时左脚迈进公司。为确保大家同时迈进公司,几个人就选大哥张三的劳力士作为最准的时间,都调到与张三相同的时间点,分秒不差。而王五没表,大家都说他差不多时间到就行。第二天上班,三个人同时迈进公司,王五迟到3秒迈进公司。

在这个故事中:

张三的劳力士就是参考时钟,因为他是大哥。

赵大和钱而的表就是从时钟,因为他们以大哥的时间为准和大哥对齐了时间。

王五没有表,因此他晚到了3秒,但不影响他上班。

公司的时钟也已经被张三调成和劳力士一样的了。公司的时间就是主站时间。

从上面的例子也可以看出,在分布时钟里,并不在乎谁的时钟是准确的、一定表示了从2000年第一个纳秒开始的,而是谁在第一个从站,就以谁的为准。这个第一个从站也就是参考时钟。

2.3 主站时钟

主站时钟是具备计时功能的主站的时钟。主站时钟本质上是从时钟。

2.4 本地时钟

本地时钟是相对于设备自身的,每个支持DC的从站从自身的角度触发来看自己在计时的时钟就是本地时钟。而这个本地时钟相对于参考时钟的角度就是从时钟。本地时钟是独立运行的。

2.4.1 本地时钟的初始偏移量

系统上电时,独立运行的本地时钟本身就可能与参考时钟之间存在一定的差异,这个差异就是初始偏移量。

2.4.2 本地时钟的时钟漂移

时钟初始偏移量对于上电那一刻是一个状态量,也就是说这个偏移量是固定的差值。而在持续运行过程中,由于时钟源等原因,可能导致计时周期的差异逐渐累积,从而产生漂移。

2.5 本地系统时间

本地系统时间定义:每个DC从站的本地时钟经过补偿和同步之后产生本地系统时间。

2.6 传输延时

数据帧在从站之间传输会产生延迟,这个延迟可能包括物理传输上的延时,设备内部本身的延迟。

系统初始化阶段,为使各个具备分布时钟功能的从站使用相同的时钟,需要对上述中的传输延时和时钟偏移量进行测量和补偿。

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

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

相关文章

Apache Doris:下一代实时数据仓库

Apache Doris:下一代实时数据仓库 概念架构设计快速的原因——其性能的架构设计、特性和机制基于成本的优化器面向列的数据库的快速点查询数据摄取数据更新服务可用性和数据可靠性跨集群复制多租户管理便于使用半结构化数据分析据仓一体分层存储 词条诞生 概念 Apa…

在攻防演练中遇到的一个“有马蜂的蜜罐”

在攻防演练中遇到的一个“有马蜂的蜜罐” 有趣的结论,请一路看到文章结尾 在前几天的攻防演练中,我跟队友的气氛氛围都很好,有说有笑,恐怕也是全场话最多、笑最多的队伍了。 也是因为我们遇到了许多相当有趣的事情,其…

usbserver工程师手记(二)设置定时任务

概述 部分银行ukey 长时间不使用后会导致休眠,出现虽然有连接,但是读不到证书,可以用定时重置端口的办法,调用接口 http://ip/usb_server/reset_port,参数为 {"port":"B5-1-2","vid_pid":"09…

2023年高教杯数学建模2023B题解析(仅从代码角度出发)

前言 最近博主正在和队友准备九月的数学建模,在做往年的题目,博主主要是负责数据处理,运算以及可视化,这里分享一下自己部分的工作,相关题目以及下面所涉及的代码后续我会作为资源上传 问题求解 第一题 第一题的思路主要如下:…

【雷达原理】数字波束形成(DBF)

目录 一、数字波束形成1.1 DBF原理1.2 工程应用实现方式1.2.1 预先存储权矢量1.2.2 利用DFT/FFT实现DBF 二、DBF应用2.1 通道间相干积累2.2 测量目标角度 三、MATLAB代码 一、数字波束形成 数字波束形成(Digital Beam Forming,DBF) 技术,是针…

大数据Spark--核心编程

文章目录 IDEA 配置Spark环境增加scala插件创建Maven项目,配置pom.xml配置log4j.properties Spark 三大数据结构RDDRDD概念核心属性执行原理基础编程RDD创建RDD 并行度与分区RDD转换算子Value类型双Value类型Key - Value类型reduceByKey和groupByKey的区别&#xff…

为什么说java只要还是泛型擦除,就不要吹自己高性能?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「java的资料从专业入门到高级教程」, 点个关注在评论区回复“666”之后私信回复“666”,全部无偿共享给大家!!!关于“Java只要还是泛型擦除…

内存迎来革命性升级,只装一条就能组成双通道

相信用过台式机的同学或多或少都遇到过一个情况,那就是按下开机键后,除了显示器不亮,哪儿都亮。 拿着自己的故障满世界发帖求助,得到最多的回答就是,断电拔下内存用橡皮擦擦擦金手指再装回。而这样的操作确实能解决大部…

漏洞挖掘 | 记某证书站任意账号接管漏洞

下文中所述漏洞已修复 在前段时间的漏洞挖掘中,上了某证书站,打点的一处逻辑漏洞 访问某一站点,发现了一处登录页 点击登录按钮之后,发现该站点大概率是自写站点,存在逻辑漏洞的可能性大大增大,利用前期信…

西门子S7-1500PLC与ABB变频器通讯及控制程序

文章目录 前言一、硬件组态二、编写通讯程序1.新建数据类型“ABB_UDT”2.新建DB块“变频DB”3.新建FC块“轴流风机” 二、编写模拟量转换程序1.编写速度设定程序2.编写速度反馈程序3.编写电流反馈程序4.编写力矩反馈程序 三、编写启/停控制程序总结 前言 本文基于某实际项目&a…

Linux和Windows配置公钥到服务器上【免密登录/传输文件】

文章目录 1.Windows配置公钥到服务器上1.1.生成SSH密钥对(如果尚未生成):1.2.复制公钥到远程服务器:1.3.手动复制公钥到远程服务器:1.4.测试SSH连接: 2.Linux配置公钥到服务器上2.1生成SSH密钥对&#xff0…

开发个人Go-ChatGPT--6 OpenUI

开发个人Go-ChatGPT–6 OpenUI Open-webui Open WebUI 是一种可扩展、功能丰富且用户友好的自托管 WebUI,旨在完全离线运行。它支持各种 LLM 运行器,包括 Ollama 和 OpenAI 兼容的 API。 功能 由于总所周知的原由,OpenAI 的接口需要密钥才…

手撸俄罗斯方块(五)——游戏主题

手撸俄罗斯方块(五)——游戏主题 当确定游戏载体(如控制台)后,界面将呈现出来。但是游戏的背景色、方块的颜色、方框颜色都应该支持扩展。 当前游戏也是如此,引入了 Theme 的概念,支持主题的扩…

iOS UITableView自带滑动手势和父视图添加滑动手势冲突响应机制探索

场景 我们有时候会遇到这样的一个交互场景:我们有一个UITableView 放在一个弹窗中,这个弹窗可以通过滑动进行展示和消失(跟手滑动的方式),然后这个UITableView放在弹窗中,并且可以滚动,展示一些…

成都晨持绪:抖音电商带货需要交钱吗

在抖音这个充满创意与可能的平台上,电商带货成为了一种新兴而又时尚的职业。然而,伴随着无数的点击与转发,有一个问题始终萦绕在人们心头——抖音电商带货需要交钱吗? 如画卷展开,抖音平台以其独特的算法和庞大的用户基础构建了一…

spark shuffle写操作——UnsafeShuffleWriter

PackedRecordPointer 使用long类型packedRecordPointer存储数据。 数据结构为:[24 bit partition number][13 bit memory page number][27 bit offset in page] LongArray LongArray不同于java中long数组。LongArray可以使用堆内内存也可以使用堆外内存。 Memor…

构建高精度室内定位导航系统,从3DGIS到AI路径规划的全面解析

室内定位导航系统是一种利用多种技术实现室内精准定位和导航的智能系统,即便没有卫星信号,也能实现精准导航。维小帮室内定位导航系统是基于自研的地图引擎与先进定位技术,结合智能路径规划算法,解决了人们在大型复杂室内场所最后…

python怎么判断字符串以什么结尾

在python编辑器中新建一个data.py。 写上自己的注释。 然后新建一个变量testname。 利用endswith来判断字符串是不是以“ar”结尾。 将结果打印出来。 选择“run”->“run”。 运行该程序,如果是,就会返回true。

深度探讨:无法恢复主文件表的挑战与解决方案

在数字时代,数据的安全与恢复成为了不容忽视的重要议题。其中,主文件表(Master File Table, MFT)作为文件系统的核心组件,一旦受损或无法恢复,将直接导致数据访问的障碍,给用户带来巨大困扰。本…

Vue在一个页面调用另一个同级页面的方法

1、建个中转站 2、然后在两个页面都引入它,注意引入路径。 import Utils from src/utils/way 3、调用方的写法 //eg :Utils.$emit(demo, msg) 4、被调用方的写法 //eg :Utils.$on(demo, val>{})