CN110649984B - 一种时钟同步的方法、装置、计算机存储介质及电子设备 - Google Patents
一种时钟同步的方法、装置、计算机存储介质及电子设备 Download PDFInfo
- Publication number
- CN110649984B CN110649984B CN201910918227.7A CN201910918227A CN110649984B CN 110649984 B CN110649984 B CN 110649984B CN 201910918227 A CN201910918227 A CN 201910918227A CN 110649984 B CN110649984 B CN 110649984B
- Authority
- CN
- China
- Prior art keywords
- time
- message
- delay
- network
- network delay
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000012937 correction Methods 0.000 claims abstract description 81
- 230000006854 communication Effects 0.000 claims description 34
- 238000004891 communication Methods 0.000 claims description 33
- 230000005540 biological transmission Effects 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 17
- 241001001443 Didea Species 0.000 claims description 10
- 239000000126 substance Substances 0.000 claims description 8
- 230000001360 synchronised effect Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000001934 delay Effects 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 239000013078 crystal Substances 0.000 description 3
- 238000009795 derivation Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- 230000003203 everyday effect Effects 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 238000012935 Averaging Methods 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
- H04J3/0667—Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0682—Clock or time synchronisation in a network by delay compensation, e.g. by compensation of propagation delay or variations thereof, by ranging
Abstract
一种时钟同步的方法、装置、计算机存储介质及电子设备,包括:通过收发常规报文的时间戳实现了时间偏差的确定,通过网络延迟判断是否根据时间偏差进行时间同步的执行。进一步的,通过网络延迟判断出过大的延迟抖动,避免了过大的延迟抖动对授时端进行的时间修正的造成影响。
Description
技术领域
本文涉及但不限于自动化技术,尤指一种时钟同步的方法、装置、计算机存储介质及电子设备。
背景技术
在需要精确时间同步的场合,如综合监控、电力通信、工厂(集散控制系统)DCS等,仅靠计算机本身提供的时钟信号很难达到时间同步的精度要求。据统计,计算机时间与国际标准时间偏差在1分钟以上的占到90%以上,这是因为计算机的时钟信号来源于其自带的简单晶体振荡器,而晶体振荡器守时性很差,在进行时间修正后,一般每天都会产生几秒钟的时间漂移。工业自动化系统中的日志、报警、时间顺序记录(SOE)等都以时间作为第一排序要素,特别是在故障分析过程中,错误的时间可能会导致SOE的时序混乱,还可能导致关键数据文件在创建之前就已过期,为故障分析提供错误的指导,导致无法真实定位故障原因或得到错误的结论,错误的时间。可靠和准确的计算机时间为互联的设备提供统一参照,显然,时钟同步的精确程度,决定了日志、报警、SOE等信息按时间进行排序时的精确度。
基于网络时间协议(NTP,Network Time Protocol)进行时钟同步是提升工业自动化系统时间同步的一个有效解决方案。NTP假设网络是对称的,即假设两个方向的传输延迟相同,图1为相关技术基于网络时间协议进行客户端时间修正的示意图,如图1所示,通过记录客户端(被校端)向服务器端(授时端)发送同步数据包时的时间戳T1、服务器端接收到同步数据包时的时间戳T2、服务器向客户端回应同步数据包,发送同步响应数据包时的时间戳T3及客户端接收到服务器回应同步响应数据包时的时间戳T4来计算客户端时间和服务器端时间的偏差(Offset),客户端根据计算获得的Offset执行本地时间的修正;其中,Offset=((T2-T1)+(T3-T4))/2。
虽然基于NTP可以实现客户端本地时间的修正,但在实际工业自动化生产中,存在以下问题:1、很多网络设备、采用串口的通信介质并不支持NTP;2、传统的工业自动化通信协议基本都不使用NTP;例如:101、103协议仅按理论串口传输时间(报文长度除以传输速度)对传输延迟做出简单修正;104协议则不对客户端的本地时间进行修正;而Modbus(是为使用可编程逻辑控制器(PLC)通信而发表的一种串行通信协议,是工业电子设备之间常用的连接方式)、现场总线(Profibus)等协议本身没有约束具体校时格式,主要由各个应用厂商自主制定校时报文格式和规范,一般由从站根据接收到的来自主站的时间信息对客户端的本地时间进行修正。3、NTP假设网络的两个方向的传输延迟相同,但在实际环境中双向的延迟很难严格一致,当长期通信过程中出现较大延迟误差时,会导致被校时的客户端设备发生时钟抖动。
综上,如何实现客户端本地时间的修正,仍是工业自动化系统中待解决的一个问题。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例提供一种时钟同步的方法、装置、计算机存储介质及电子设备,能够实现工业自动化系统中授时端的时间修正。
本发明实施例提供了一种时钟同步的方法,包括:
获取用于时间修正的修正相关信息;
根据获取的修正相关信息,确定系统的时间偏差Offset和网络延迟Delay;
向校时端发送包含时间偏移和网络延迟的报文;
基于确定的网络延迟,判断是否根据确定的时间偏差对校时端执行时间同步;其中,所述修正相关信息包括:校时端和授时端收发预设报文的时间戳信息;所述收发预设报文的时间戳信息包括:所述校时端接收所述授时端发送预设的第一报文中携带的:所述授时端发送所述第一报文的第一时间戳T1;所述校时端在对所述第一报文进行响应的第二报文中携带的:接收所述第一报文的第二时间戳T2和发送所述第二报文的第三时间戳T3;所述授时端接收所述第二报文的第四时间戳T4;所述校时端包括:Modbus从站,所述授时端包括:Modbus主站;所述第一报文和第二报文包括:同步sync报文。
在一种示例性实施例中,所述第一报文、所述第二报文、所述包含时间偏移和网络延迟的报文的功能码包括:Modbus协议中用户自定义功能码User Defined Functioncodes。
在一种示例性实施例中,所述时间偏差和网络延迟通过以下公式计算获得:
时间偏差=((T2-T1)+(T3-T4))/2;
网络延迟=((T4-T1)-(T3-T2))/2。
在一种示例性实施例中,所述判断是否根据确定的时间偏差对校时端执行时间同步,包括:
所述网络延迟小于预设的延迟抖动阈值Dtv时,根据确定的所述时间偏差对所述校时端执行时间同步;
所述网络延迟大于或等于所述延迟抖动阈值时,取消根据确定的所述时间偏差对所述校时端执行时间同步。
在一种示例性实施例中,所述判断是否根据确定的时间偏差对校时端执行时间同步之前,所述方法还包括:
根据收发所述预设报文的链路传输时长,设置所述延迟抖动阈值。
在一种示例性实施例中:
在局域网通信网络中,设置所述延迟抖动阈值为小于或等于20毫秒的数值;
在9600波特率的串口通信网络中,设置所述延迟抖动阈值为小于或等于46毫秒的数值;
其中,在所述9600波特率的串口通信网络中,报文的长度为20字节,包含1位起始位、8位数据位、1位校验位、1位停止位时,网络延迟的理论值Didea通过以下公式计算:(20*(1+8+1+1)*1000/9600,所述延迟抖动阈值等于2·Didea=46毫秒;在所述局域网通信网络中,所述Didea取值为10毫秒,所述延迟抖动阈值等于2·Didea=20毫秒。
另一方面,本发明实施例还提供一种时钟同步的装置,包括:获取单元、确定单元、发送单元和处理单元;其中,
获取单元用于:获取用于时间修正的修正相关信息;
确定单元用于:根据获取的修正相关信息,确定系统的时间偏差Offset和网络延迟Delay;
发送单元用于:向校时端发送包含时间偏移和网络延迟的报文;
处理单元用于:基于确定的网络延迟,判断是否根据确定的时间偏差对校时端执行时间同步;
其中,所述修正相关信息包括:校时端和授时端收发预设报文的时间戳信息;所述校时端包括:Modbus从站,所述授时端包括:Modbus主站;所述收发预设报文的时间戳信息包括:所述校时端接收所述授时端发送预设的第一报文中携带的:所述授时端发送所述第一报文的第一时间戳T1;所述校时端在对所述第一报文进行响应的第二报文中携带的:接收所述第一报文的第二时间戳T2和发送所述第二报文的第三时间戳T3;所述授时端接收所述第二报文的第四时间戳T4;所述第一报文和第二报文包括:同步sync报文。
在一种示例性实施例中,所述处理单元具体用于:
所述网络延迟小于预设的延迟抖动阈值时,根据确定的所述时间偏差对所述校时端执行时间同步;
所述网络延迟大于或等于所述延迟抖动阈值时,取消根据确定的所述时间偏差对所述校时端执行时间同步。
再一方面,本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行上述时钟同步的方法。
还一方面,本发明实施例还提供一种电子设备,包括:存储器和处理器;
其中,
处理器被配置为执行存储器中的程序指令;
程序指令在处理器读取执行上述时钟同步的方法。
与相关技术相比,本申请技术方案包括:获取用于时间修正的修正相关信息;根据获取的修正相关信息,确定系统的时间偏差(Offset)和网络延迟(Delay);基于确定的网络延迟,判断是否根据确定的时间偏差对校时端执行时间同步;其中,所述修正相关信息包括:校时端和授时端收发预设报文的时间戳信息。本发明实施例通过收发常规报文的时间戳实现了时间偏差的确定,通过网络延迟确定是否根据时间偏差进行时间同步的执行;进一步的,通过网络延迟判断出过大的延迟抖动,避免了过大的延迟抖动对授时端进行的时间修正的造成影响。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为相关技术基于网络时间协议进行客户端时间修正的示意图;
图2为本发明实施例时钟同步的方法的流程图;
图3为本发明实施例时钟同步的装置的结构框图;
图4为本发明应用示例校时处理时报文的交互示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图2为本发明实施例时钟同步的方法的流程图,如图2所示,包括:
步骤201、获取用于时间修正的修正相关信息;
其中,所述修正相关信息包括:校时端和授时端收发预设报文的时间戳信息。
在一种示例性实施例中,所述收发预设报文的时间戳信息包括:
所述校时端接收所述授时端发送预设的第一报文中携带的:所述授时端发送所述第一报文的第一时间戳T1;
所述校时端在对所述第一报文进行响应的第二报文中携带的:接收所述第一报文的第二时间戳T2和发送所述第二报文的第三时间戳T3;
所述授时端接收所述第二报文的第四时间戳T4;
其中,所述第一报文和第二报文包括:同步sync报文。
步骤202、根据获取的修正相关信息,确定系统的时间偏差Offset和网络延迟Delay;
在一种示例性实施例中,时间偏差和网络延迟通过以下公式计算获得:
时间偏差=((T2-T1)+(T3-T4))/2 (1)
网络延迟=((T4-T1)-(T3-T2))/2 (2)
步骤203、基于确定的网络延迟,判断是否根据确定的时间偏差对校时端执行时间同步;
需要说明的是,本发明实施例上述方法可以通过独立装置与校时端或授时端通信,实现校时端的时间同步;也可以将上述方法加载在校时端或授时端中,实现时间同步的判断处理。
在一种示例性实施例中,所述判断是否根据确定的时间偏差对校时端执行时间同步,包括:
将确定的网络延迟与预设的延迟抖动阈值进行比较;
根据网络延迟与延迟抖动阈值的比较结果,判断是否根据确定的时间偏差对校时端执行时间同步。在一种示例性实施例中,所述判断是否根据确定的时间偏差对校时端执行时间同步,包括:
所述网络延迟小于预设的延迟抖动阈值Dtv时,根据确定的所述时间偏差对所述校时端执行时间同步;
所述网络延迟大于或等于所述延迟抖动阈值时,取消根据确定的所述时间偏差对所述校时端执行时间同步。
在一种示例性实施例中,所述判断是否根据确定的时间偏差对校时端执行时间同步之前,本发明实施例方法还包括:
根据收发所述预设报文的链路传输时长,设置所述延迟抖动阈值。
本发明实施例在局域网通信网络中,设置所述延迟抖动阈值为小于或等于20毫秒的数值;在9600波特率的串口通信网络中,设置所述延迟抖动阈值为小于或等于46毫秒的数值。
在一种示例性实施例中,延迟抖动阈值可以设置为链路传输时长的两倍。
本发明实施例上述方法可以适用于包括串口、以太网等在内的工业自动化通信网络。
与相关技术相比,本申请技术方案包括:获取用于时间修正的修正相关信息;根据获取的修正相关信息,确定系统的时间偏差(Offset)和网络延迟(Delay);基于确定的网络延迟,判断是否根据确定的时间偏差对校时端执行时间同步;其中,所述修正相关信息包括:校时端和授时端收发预设报文的时间戳信息。本发明实施例通过收发常规报文的时间戳实现了时间偏差的确定,通过网络延迟确定是否根据时间偏差进行时间同步的执行;进一步的,每次校时会话过程计算出的网络延时,一般分布于半开半闭区间(0,Dtv],此时,根据确定的所述时间偏差对所述校时端执行时间同步;当授时端和校时端之间的局域网/串口或者通信节点本身出现偶然扰动时,有可能导致当时计算所得网络延迟大于Dtv;由于网络延时为Delay1和Delay2的均值,可以确定Delay1和Delay2中至少有一个出现了过大值,导致对称网络的假设(Delay1=Delay2)出现失真,进而造成计算出的Offset也失真,本发明实施例取消此次的时间同步处理。综上,本发明实施例通过过滤过大的延迟抖动,避免把过大的延迟抖动传导给校时端,确保了校时的可靠。
图3为本发明实施例时钟同步的装置的结构框图,如图3所示,包括:获取单元、确定单元及处理单元;其中,
获取单元用于:获取用于时间修正的修正相关信息;
其中,所述修正相关信息包括:校时端和授时端收发预设报文的时间戳信息。
在一种示例性实施例中,所述收发预设报文的时间戳信息包括:
所述校时端接收所述授时端发送预设的第一报文中携带的:所述授时端发送所述第一报文的第一时间戳T1;
所述校时端在对所述第一报文进行响应的第二报文中携带的:接收所述第一报文的第二时间戳T2和发送所述第二报文的第三时间戳T3;
所述授时端接收所述第二报文的第四时间戳T4;
其中,所述第一报文和第二报文包括:同步sync报文。
确定单元用于:根据获取的修正相关信息,确定系统的时间偏差Offset和网络延迟Delay;
在一种示例性实施例中,所述确定单元具体用于:通过以下公式计算获得所述时间偏差和所述网络延迟:
时间偏差=((T2-T1)+(T3-T4))/2;
网络延迟=((T4-T1)-(T3-T2))/2。
处理单元用于:基于确定的网络延迟,判断是否根据确定的时间偏差对校时端执行时间同步;
在一种示例性实施例中,所述处理单元具体用于:
所述网络延迟小于预设的延迟抖动阈值时,根据确定的所述时间偏差对所述校时端执行时间同步;
所述网络延迟大于或等于所述延迟抖动阈值时,取消根据确定的所述时间偏差对所述校时端执行时间同步。
需要说明的是,本发明实施例装置可以是独立的与校时端或授时端通信的装置;也可以嵌入在校时端或授时端中的装置。
在一种示例性实施例中,所述装置还包括配置单元,用于:
根据收发所述预设报文的链路传输时长,设置所述延迟抖动阈值。
在一种示例性实施例中,延迟抖动阈值可以设置为链路传输时长的两倍。
与相关技术相比,本申请技术方案包括:获取用于时间修正的修正相关信息;根据获取的修正相关信息,确定系统的时间偏差(Offset)和网络延迟(Delay);基于确定的网络延迟,判断是否根据确定的时间偏差对校时端执行时间同步;其中,所述修正相关信息包括:校时端和授时端收发预设报文的时间戳信息。本发明实施例通过收发常规报文的时间戳实现了时间偏差的确定,通过网络延迟确定是否根据时间偏差进行时间同步的执行;进一步的,通过网络延迟判断出过大的延迟抖动,避免了过大的延迟抖动对授时端进行的时间修正的造成影响。
本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行上述时钟同步的方法。
本发明实施例还提供一种电子设备,包括:存储器和处理器;其中,
处理器被配置为执行存储器中的程序指令;
程序指令在处理器读取执行上述时钟同步的方法。
以下通过应用示例对本发明实施例方法进行示例说明,应用示例仅用于陈述本发明,并不用于限定本发明的保护范围。
应用示例
本应用示例通过在预设的工业自动化通信系统的常规报文中嵌入用于校时处理的时间戳信息,无需额外设置通信协议,也不需要增加硬件和软件成本,实现了适用于工业自动化系统的校时方案设计,提升了工业自动化系统的校时精度;基于网络延迟判断是否根据确定的时间偏差对校时端执行时间同步,避免了由延迟抖动对时间修正造成的影响。
图4为本发明应用示例校时处理时报文的交互示意图,如图4所示,本应用示例借鉴传输控制协议(TCP)三路握手原理,只需三次会话即完成可以获得用于时间修正的时间戳信息,具体可以包括:
步骤401、授时端向校时端发送第一sync报文,第一sync报文中记录了发送当前报文时的第一时间戳T1;
步骤402、校时端记录接收到第一sync报文时的第二时间戳T2;
步骤403、校时端向授时端发送响应第一sync报文的第二sync报文;第二sync报文中包含:第二时间戳T2和发送第二sync报文时校时端本地的第三时间戳T3;
步骤404、授时端接收所述第二sync报文,并记录接收第二sync报文时的第四时间戳T4;
通过上述交互,本发明实施例获得了与NTP相同的四个时间参数T1、T2、T3、T4;根据T1、T2、T3、T4可以计算授时端和校时端之间的时间偏差Offset以及授时端和校时端之间的网络延迟,本应用示例网络延迟可以通过以下步骤确定:首先,确定授时端向校时端发送第一sync报文的第一网络延迟,本应用示例设定为Delay1,授时端接收校时端发送第二sync报文的第二网络延迟,本应用示例设定为Delay2;将第一网络延迟和第二网络延迟相加后求平均后,获得本应用示例的网络延迟。
本应用示例可以由授时端或独立的时钟同步的装置计算获得时间偏差和网络延迟后,发送到校时端;也可以将修正相关信息发送到校时端后,由校时端计算时间偏差和网络延迟;
本应用示例以授时端计算获得时间偏差和网络延迟后,执行步骤404;
步骤405、授时端发送包含时间偏差和网络延迟的报文到校时端。例如、授时端通过第三sync报文将时间偏差和网络延迟发送到校时端;校时端直接使用第三sync报文中的Offset执行校时,本发明实施例第三sync报文在收发过程中的网络延迟和时间偏差将不做考虑;发送和接收均无实时性要求,即本发明实施例将忽略第三sync报文的发送延迟N1和接收延迟N2;此外,本发明实施例校时端从接收第三sync报文到执行校时的延迟时间N3也将被忽略。上述处理主要参考以下原理:本领域技术人员公知,校时端本身的晶体振荡器如果没有外部校时,一般每天(86400秒)都会产生几秒钟的时间漂移,假设时间漂移为10秒,则即校时端每秒对应的时钟漂移为0.1毫秒(10/86400),在授时端在计算出Offset后,从授时端发送第三sync报文到校时端执行校时这段时间间隔N=N1+N2+N3,即便N总计耗费长达10秒,校时端的时钟漂移也不会超过1毫秒(通常N实际是在1秒内,由延迟所引起的漂移误差在0.1毫秒内),由于时钟漂移很小,因此可以忽略上述时钟漂移。
本应用示例,校时端获得时间偏差和网络延迟后,将网络延迟与预设的延迟抖动阈值(Dtv)进行比较,判断是否根据确定的时间偏差对校时端执行时间同步;在一种示例性实施例中,判断是否根据确定的时间偏差对校时端执行时间同步包括:网络延迟小于预设的延迟抖动阈值时,根据确定的时间偏差对校时端执行时间同步;网络延迟大于或等于预设的延迟抖动阈值时,取消根据确定的时间偏差对校时端执行时间同步。
以下,本应用示例就确定时间偏差和网络延迟部分进行简要说明:
本应用示例网络延迟等于第一网络延迟和第二网络延迟之和的平均;其中,第一网络延迟为授时端向校时端发送第一sync报文的网络延迟,第二网络延迟为授时端接收校时端发送第二sync报文的网络延迟;本应用示例以D表示网络延迟,则D=(Delay1+Delay2)/2;
参照图4的报文交互,本应用示例可以确定:
T1+Offset+Delay1=T2 (3)
T3+Delay2=T4+Offset (4)
根据公式(3)和公式(4)可以整理可得:
Offset=((T2-T1)+(T3-T4))/2+(Delay2-Delay1)/2 (5)
Delay1+Delay2=(T4-T1)-(T3-T2) (6)
D=((T4-T1)-(T3-T2))/2 (7)
需要说明的是,公式(7)在对称网络、非对称网络以及串口模式下均成立。
假如接受NTP的假设,认为网络是对称的,及发送及接收报文的传输延迟的相同的,则上述推导过程中Delay1=Delay2,则公式(5)可以简化为:
Offset=((T2-T1)+(T3-T4))/2;
通过上述推导可以确定,如果本应用示例的假设与和NTP相同,则本应用示例的校时精度与NTP相同。
本应用示例针对非对称网络(Delay1≠Delay2)进行校时分析,记|(Delay2-Delay1)/2|为延迟误差(Derr)。通常Derr会在一个很窄的区间内震荡(对称网络时Derr=0),当Derr超出合理震荡区间时,本应用示例认为网络发生偶发性抖动。
本应用示例只需要设置一个延迟抖动阈值Dtv,当Derr<Dtv时,认定网络的延迟抖动正常,反之,当Derr≥Dtv,则认定网络的延迟抖动出现偶发性异常,取消根据确定的时间偏差对校时端执行时间同步。
以下,通过推导分析获得本应用示例延迟抖动阈值Dtv的取值:
记对称网络下的Offset为Offset0,则:
Offset0=((T2-T1)+(T3-T4))/2 (8)
记对称网络下的网络延迟为Delay0,前文已述:
Delay0=((T4-T1)-(T3-T2))/2 (9)
将公式(9)代入公式(5)可得:
Offset-Offset0=(Delay2-Delay1)/2; (10)
将公式(10)两边取绝对值可得:
|Offset-Offset0|=|(Delay2-Delay1)/2| (11)
将Derr定义|(Delay2-Delay1)/2|代入公式(8),可得:
Derr=|Offset-Offset0|; (12)
因为Delay1和Delay2均大于0,所以:
|(Delay2-Delay1)/2|<|(Delay2+Delay1)/2 (13)
将公式(6)代入不等式(13),可得:
|Delay2-Delay1|<(T4-T1)-(T3-T2); (14)
根据公式(11)和(14),可得:
|Offset-Offset0|<((T4-T1)-(T3-T2))/2 (15)
不等式(15)代入公式(9)可得:
|Offset-Offset0|<Delay0 (16)
由公式(7)、(9)可知,D=Delay0,从而将公式(16)表示为:
|Offset-Offset0|<D (17)
公式(17)表明,任意网络环境(对称或者非对称)下的Offset与对称网络下的理想值Offset0的误差一定小于D。由公式(12)和(13)可知,Derr<D,为了把Derr控制在合理范围内,只需要限制D的最大值为Dtv(D≤Dtv),则任意网络环境(对称或者非对称)下的Offset与对称网络下的理想值Offset0的误差完全可控在Dtv内。
而每次进行校时处理时的D值可由公式(7)计算得到,Dtv可预先设定;本应用示例网络延迟小于预设的延迟抖动阈值时,根据确定的时间偏差对校时端执行时间同步;网络延迟大于或等于预设的延迟抖动阈值时,取消根据确定的时间偏差对校时端执行时间同步。
大量的工业自动化协议使用串口通信,如101、103、Modbus远程终端单元(RTU)、Profibus-分布式外围设备(DP)、Profibus-现场总线报文规范(FMS)等。串口通信物理链路布局简单,是无需路由的通信,是比网络更严谨的对称通信,其理论链路传输时间可以通过以下公式计算:
理论链路传输时间=报文长度*每个字节实际传输位数/波特率
假设报文长度为10个字节,波特率为9600,每个字节实际传输位数分别为:1位起始位、8位数据位、1位校验位及1位停止位,其理论链路传输时间为:10*(1+8+1+1)/9600秒=11.46毫秒。因此,当用于时钟同步的每条报文长度一样时,在串口通信的发送和接收的网络延迟相同。虽然,短报文的字节数差异对网络延迟的影响很小,但考虑在串口环境下,网络延迟和报文长度成正比,因此,本应用示例设定用于时钟同步的每条报文长度相同。综上,窗口通信网络可以认定为对称网络。
为了提高校时精度,本应用示例预设报文可以采用中断接收方式进行接收,中断接收在应用端的最短延迟可达微秒级,可以最大程度确保对称网络下发送和接收的延迟一致。
通过上述分析可知,在网络和串口通信情况下,一方面,因为绝大部分通信均呈现良好的网络对称性,因此,本应用示例确定时间偏差后,通过确定的网络延迟分析是否出现偶发的非对称延迟,通过丢弃过大的偶发性延迟抖动,实现了时钟同步时延迟抖动的可控。
以下以Modbus协议为例进行示例说明:
本应用示例首先评估报文长度,本应用示例修正相关信息中涉及的预设报文,在串口网络中可以是Modbus的RTU报文,RTU报文可以为20字节(1字节设备地址、1字节功能码、16字节数据部分和2字节校验和),在以太网网络中可以是Modbus的TCP报文,TCP报文长度为24字节。本应用示例功能码选用标准Modbus协议中用户自定义功能码(User DefinedFunction codes,如65~72),设定授时端发送请求报文时选用的功能码为65,设定授时端发送用于应答响应报文时选用的功能码为66;
基于上述设定,在串口通信网络中:
第一Sync报文可以包括表1所示的内容:
描述 | 长度(字节) | 定义 |
单元标识 | 1 | 1~247,根据实际单元标识(校时端的地址)确定 |
功能码 | 1 | 65 |
数据段1 | 8 | T1,大端编码 |
数据段2 | 8 | 0 |
CRC校验和 | 2 | CRC校验和,低字节在前 |
表1用于响应第一Sync报文的第二Sync报文可以包括表2所示的内容:
描述 | 长度(字节) | 定义 |
单元标识 | 1 | 1~247,根据实际单元标识(校时端的地址)确定 |
功能码 | 1 | 65 |
数据段1 | 8 | T2,大端编码 |
数据段2 | 8 | T3,大端编码 |
CRC校验和 | 2 | CRC校验和,低字节在前 |
表2
授时端向校时端发送包含时间偏移和网络延迟的报文,可以包括表3所示的内容:
描述 | 长度(字节) | 定义 |
单元标识 | 1 | 1~247,根据实际单元标识(校时端的地址)确定 |
功能码 | 1 | 66 |
数据段1 | 8 | Offset,大端编码 |
数据段2 | 8 | D,大端编码 |
CRC校验和 | 2 | CRC校验和,低字节在前 |
表3
校时端在授时端发送包含时间偏移和网络延迟的报文后,根据是否根据时间偏移执行校时处理后,对授时端的应答;其中,
执行校时处理,应答报文可以为对授时端发送的包含时间偏移和网络延迟的报文的复制,表示校时端认可本次校时,可以包括表4所示的内容:
746 | 长度(字节) | 定义 |
单元标识 | 1 | 1~247,根据实际单元标识(校时端的地址)确定 |
功能码 | 1 | 66 |
数据段1 | 8 | Offset,大端编码 |
数据段2 | 8 | D,大端编码 |
CRC校验和 | 2 | CRC校验和,低字节在前 |
表4
不执行校时处理时,本应用示例设定否定应答为异常码为03的标准Modbus异常应答,表示校时端否认本次校时,可以包括表5所示的内容:
描述 | 长度(字节) | 定义 |
单元标识 | 1 | 1~247,根据实际单元标识(校时端的地址)确定 |
功能码 | 1 | 194(128+66) |
异常码 | 1 | 3,表示从站否认本次校时 |
CRC校验和 | 2 | CRC校验和,低字节在前 |
表5
基于上述设定,在以太网网络中:
第一Sync报文可以包括表6所示的内容:
表6
用于响应第一Sync报文的第二Sync报文可以包括表7所示的内容:
描述 | 长度(字节) | 定义 |
事务标识 | 2 | 顺序号,复制自请求值 |
协议标识 | 2 | 0 |
长度 | 2 | 18 |
单元标识 | 1 | 255(Modbus TCP默认值)或1~247 |
功能码 | 1 | 65 |
数据段1 | 8 | T2,大端编码 |
数据段2 | 8 | T3,大端编码 |
表7
授时端向校时端发送包含时间偏移和网络延迟的报文,可以包括表8所示的内容:
表8
校时端在授时端发送包含时间偏移和网络延迟的报文后,根据是否根据时间偏移执行校时处理后,对授时端的应答;其中,
执行校时处理,应答报文可以为对授时端发送的包含时间偏移和网络延迟的报文的复制,表示校时端认可本次校时,可以包括表9所示的内容:
描述 | 长度(字节) | 定义 |
事务标识 | 2 | 顺序号,0~65535 |
协议标识 | 2 | 0 |
长度 | 2 | 18 |
单元标识 | 1 | 255(Modbus TCP默认值)或1~247 |
功能码 | 1 | 66 |
数据段1 | 8 | Offset,大端编码 |
数据段2 | 8 | D,大端编码 |
表9
不执行校时处理时,本应用示例设定否定应答为异常码为03的标准Modbus异常应答,表示校时端否认本次校时,可以包括表10所示的内容:
表10
本应用示例就Dtv的取值进行简要说明,在9600波特率的串口通信,如在ModbusRTU中,预设报文的长度为20字节,在9600波特率、1位起始位、8位数据位、1位校验位、1位停止位时,串口的理论链路传输时间为23毫秒,由此可知D的理论值(记为Didea)为23毫秒(20*(1+8+1+1)*1000/9600≈23毫秒,其中1+8+1+1表示每个字节在实际需要传输的比特位个数,分别对应1位起始位、8位数据位、1位校验位、1位停止位)。本应用示例可以设置Dtv=2·Didea,即Dtv=46毫秒,通过上述设置,既包容了充分的延迟抖动(振幅为2倍理论值),同时最大延迟抖动46毫秒也涵盖在NTP精度范围内(1~50毫秒)。在Modbus TCP中,低数字字节长度时,理论的链路传输时间Didea不再对传输长度相关,在局域网通信下,Didea取值范围一般为1~10毫秒,本应用示例仍然可以设置阈值Dtv=2·Didea,即Dtv=20毫秒,通过上述设置,既包容了充分的延迟抖动(振幅为2倍理论值),同时最大延迟抖动20毫秒也涵盖在NTP精度范围内(1~50毫秒)。
对于其他通信协议的工业自动化系统,如101、103及104等协议与Modbus协议原理类似,在此不再赘述。
“本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。”
Claims (10)
1.一种时钟同步的方法,包括:
获取用于时间修正的修正相关信息;
根据获取的修正相关信息,确定系统的时间偏差Offset 和网络延迟Delay;
向校时端发送包含时间偏移和网络延迟的报文;
基于确定的网络延迟,判断是否根据确定的时间偏差对校时端执行时间同步;其中,所述修正相关信息包括:校时端和授时端收发预设报文的时间戳信息;所述收发预设报文的时间戳信息包括:所述校时端接收所述授时端发送预设的第一报文中携带的:所述授时端发送所述第一报文的第一时间戳T1;所述校时端在对所述第一报文进行响应的第二报文中携带的:接收所述第一报文的第二时间戳T2和发送所述第二报文的第三时间戳T3;所述授时端接收所述第二报文的第四时间戳T4;所述校时端包括:Modbus从站,所述授时端包括:Modbus主站;所述第一报文和第二报文包括:同步sync报文。
2.根据权利要求1所述的方法,其特征在于,所述第一报文、所述第二报文、所述包含时间偏移和网络延迟的报文的功能码包括:Modbus协议中用户自定义功能码User DefinedFunction codes。
3.根据权利要求1所述的方法,其特征在于,所述时间偏差和网络延迟通过以下公式计算获得:
时间偏差=((T2-T1)+(T3-T4))/2;
网络延迟 =((T4-T1)-(T3-T2))/2。
4.根据权利要求1~3任一项所述的方法,其特征在于,所述判断是否根据确定的时间偏差对校时端执行时间同步,包括:
所述网络延迟小于预设的延迟抖动阈值Dtv时,根据确定的所述时间偏差对所述校时端执行时间同步;
所述网络延迟大于或等于所述延迟抖动阈值时,取消根据确定的所述时间偏差对所述校时端执行时间同步。
5.根据权利要求4所述的方法,其特征在于,所述判断是否根据确定的时间偏差对校时端执行时间同步之前,所述方法还包括:
根据收发所述预设报文的链路传输时长,设置所述延迟抖动阈值。
6.根据权利要求5所述的方法,其特征在于,
在局域网通信网络中,设置所述延迟抖动阈值为小于或等于20毫秒的数值;
在9600波特率的串口通信网络中,设置所述延迟抖动阈值为小于或等于46毫秒的数值;
其中,在所述9600波特率的串口通信网络中,报文的长度为20字节,包含1位起始位、8位数据位、1位校验位、1位停止位时,网络延迟的理论值Didea通过以下公式计算:(20*(1+8+1+1)*1000/9600 ,所述延迟抖动阈值等于2·Didea=46毫秒;在所述局域网通信网络中,所述Didea取值为10毫秒,所述延迟抖动阈值等于2·Didea=20毫秒。
7.一种时钟同步的装置,包括:获取单元、确定单元、处理单元和发送单元;其中,
获取单元用于:获取用于时间修正的修正相关信息;
确定单元用于:根据获取的修正相关信息,确定系统的时间偏差Offset 和网络延迟Delay;
发送单元用于:向校时端发送包含时间偏移和网络延迟的报文;
处理单元用于:基于确定的网络延迟,判断是否根据确定的时间偏差对校时端执行时间同步;其中,修正相关信息包括:校时端和授时端收发预设报文的时间戳信息;所述校时端包括:Modbus从站,所述授时端包括:Modbus主站;所述收发预设报文的时间戳信息包括:所述校时端接收所述授时端发送预设的第一报文中携带的:所述授时端发送所述第一报文的第一时间戳T1;所述校时端在对所述第一报文进行响应的第二报文中携带的:接收所述第一报文的第二时间戳T2和发送所述第二报文的第三时间戳T3;所述授时端接收所述第二报文的第四时间戳T4;所述第一报文和第二报文包括:同步sync报文。
8.根据权利要求7所述的装置,其特征在于,所述处理单元具体用于:
所述网络延迟小于预设的延迟抖动阈值时,根据确定的所述时间偏差对所述校时端执行时间同步;
所述网络延迟大于或等于所述延迟抖动阈值时,取消根据确定的所述时间偏差对所述校时端执行时间同步。
9.一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1~6中任一项所述的时钟同步的方法。
10.一种电子设备,包括:存储器和处理器;其中,
处理器被配置为执行存储器中的程序指令;
程序指令在处理器读取时执行权利要求1~6中任一项所述的时钟同步的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910918227.7A CN110649984B (zh) | 2019-09-26 | 2019-09-26 | 一种时钟同步的方法、装置、计算机存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910918227.7A CN110649984B (zh) | 2019-09-26 | 2019-09-26 | 一种时钟同步的方法、装置、计算机存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110649984A CN110649984A (zh) | 2020-01-03 |
CN110649984B true CN110649984B (zh) | 2021-01-22 |
Family
ID=68992926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910918227.7A Active CN110649984B (zh) | 2019-09-26 | 2019-09-26 | 一种时钟同步的方法、装置、计算机存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110649984B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111726190B (zh) * | 2020-06-18 | 2022-10-04 | 四川艾贝斯科技发展有限公司 | 用于路灯控制系统的系统时间校准方法 |
CN112019291B (zh) * | 2020-08-31 | 2022-12-27 | 合肥中科君达视界技术股份有限公司 | 一种网络设备校时方法 |
CN114390492A (zh) * | 2020-10-20 | 2022-04-22 | Oppo广东移动通信有限公司 | 校时方法、装置、设备及存储介质 |
CN113014351B (zh) * | 2021-03-15 | 2022-07-22 | 四川英得赛克科技有限公司 | 一种无侵入式对时方法、系统及存储介质 |
CN113312370B (zh) * | 2021-07-30 | 2021-10-29 | 北京金山云网络技术有限公司 | 信息获取方法、装置、电子设备及存储介质 |
CN113676280B (zh) * | 2021-08-29 | 2023-02-03 | 上海橘盒数字科技有限公司 | 一种基于Modbus协议的多设备时钟同步方法 |
CN115767607A (zh) * | 2021-09-02 | 2023-03-07 | 华为技术有限公司 | 一种时间同步的监控方法 |
CN113965991A (zh) * | 2021-10-28 | 2022-01-21 | 杭州字节信息技术有限公司 | 一种基于LoRaWan的节点定位实现方法 |
CN114793143B (zh) * | 2022-06-27 | 2022-08-30 | 北京智芯微电子科技有限公司 | 网络校时方法、装置、电子设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105680975A (zh) * | 2016-03-07 | 2016-06-15 | 浙江大学 | 一种主从结构多节点网络的时间同步方法 |
CN109150357A (zh) * | 2018-08-15 | 2019-01-04 | 中国商用飞机有限责任公司 | 基于rs485和以太网的混合总线的时间同步方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7843897B2 (en) * | 2006-10-30 | 2010-11-30 | Schweitzer Engineering Laboratories, Inc. | System, apparatus and method for mixed mode communication on a single network |
CN104080115B (zh) * | 2013-03-28 | 2018-02-23 | 中国移动通信集团公司 | 一种时间同步性能监测方法、装置及系统 |
CN103546269B (zh) * | 2013-10-16 | 2016-12-07 | 瑞斯康达科技发展股份有限公司 | 一种同步时间报文的筛选方法及装置 |
CN104090514B (zh) * | 2014-07-17 | 2017-02-15 | 南京铁道职业技术学院 | 一种基于单片机的主从式变频控制系统及其控制方法 |
CN104184534B (zh) * | 2014-09-09 | 2017-02-15 | 桂林电子科技大学 | 精确ieee1588协议的透明时钟路径延迟的方法 |
CN106209337B (zh) * | 2015-04-29 | 2019-10-15 | 中国移动通信集团公司 | 一种时间同步报文发送频率自适应方法、装置及设备 |
CN105429958A (zh) * | 2015-10-30 | 2016-03-23 | 武汉华茂工业自动化有限公司 | 一种基于Android开发的企业应用平台系统 |
CN105680969A (zh) * | 2015-12-31 | 2016-06-15 | 浙江中控技术股份有限公司 | 一种时钟同步方法及装置 |
-
2019
- 2019-09-26 CN CN201910918227.7A patent/CN110649984B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105680975A (zh) * | 2016-03-07 | 2016-06-15 | 浙江大学 | 一种主从结构多节点网络的时间同步方法 |
CN109150357A (zh) * | 2018-08-15 | 2019-01-04 | 中国商用飞机有限责任公司 | 基于rs485和以太网的混合总线的时间同步方法 |
Non-Patent Citations (1)
Title |
---|
Modbus 协议的RS485 总线通讯机的设计及应用;王书根等;《自动化与仪表》;20150531(第5期);25-28 * |
Also Published As
Publication number | Publication date |
---|---|
CN110649984A (zh) | 2020-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110649984B (zh) | 一种时钟同步的方法、装置、计算机存储介质及电子设备 | |
EP2057765B1 (en) | Coordinated timing network configuration parameter update procedure | |
US11316605B2 (en) | Method, device, and computer program for improving synchronization of clocks in devices linked according to a daisy-chain topology | |
US11251891B2 (en) | Method for identifying an incorrect time stamp of an ethernet message and control unit for a motor vehicle | |
CN110311847B (zh) | 一种批量数据传输方法和装置 | |
KR20130060297A (ko) | 통신 장치 및 지연 검출 방법 | |
JP2012039446A (ja) | 通信システム及び通信装置 | |
CN112214441B (zh) | 基于串行总线轮询协议的通信切换方法、设备和系统 | |
KR20150019499A (ko) | 게이트웨이의 메시지 처리 방법 | |
CN110266422B (zh) | 中间时钟设备报文驻留时间处理方法、装置、设备及介质 | |
CN113037418B (zh) | 一种网络授时的误差校正方法及相关装置 | |
TWI735401B (zh) | 通信裝置、通信系統、通信方法及程式 | |
KR101498561B1 (ko) | 글로벌 동기화를 위한 tdma 기반의 can 통신시스템 및 방법 | |
CN112636861A (zh) | 一种时钟同步方法、装置、设备及存储介质 | |
EP3223567B1 (en) | Time synchronization method and apparatus | |
CN111083016B (zh) | 一种轮询表处理方法及装置、存储介质和设备 | |
CN215121214U (zh) | 一种无线自组网的实时时间同步的装置 | |
JPH05161181A (ja) | 時刻同期方式 | |
CN218217375U (zh) | 一种针对大批量被控接收器的精确同步调度装置 | |
EP4075690A1 (en) | Determining a residence time in a portion of a network | |
US11381376B2 (en) | Method for synchronizing networks | |
CN113132041B (zh) | 一种数据传输延时的计算方法和装置 | |
EP3955484A1 (en) | Fec mode synchronization method and system, and primary node and slave node | |
JP2023179651A (ja) | 通信制御方法 | |
CN114006673A (zh) | 一种授时服务器、授时方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211118 Address after: 100176 room 3412, floor 4, building 3, yard 2, Desheng Middle Road, Beijing Economic and Technological Development Zone, Daxing District, Beijing Patentee after: Beijing Helishi system integration Co.,Ltd. Address before: 100176 No.2, Disheng Middle Road, Yizhuang Economic and Technological Development Zone, Daxing District, Beijing Patentee before: BEIJING HOLLYSYS Co.,Ltd. |
|
TR01 | Transfer of patent right |