Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

基于SNTP的时钟同步控制方法、装置及系统 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:浙江中控技术股份有限公司

摘要:本发明公开了一种基于SNTP的时钟同步控制方法、装置及系统,其中方法包括:时钟同步客户端获取至少一个时钟同步服务器的IP地址,并将IP地址保存在地址池中;然后按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址;再按照所选择的IP地址向目标服务器发送SNTP单播请求报文,接收所述目标服务器发送的SNTP响应报文;最后,计算所述时钟同步客户端与所述目标服务器之间的时间偏差,并根据所述时间偏差实现时钟同步处理。通过上述方法可以通过动态发现时钟同步服务器的IP地址的方式,既能够保证时钟同步的可靠性,又能够减小时钟同步控制系统的复杂度和后期维护的工作量。

主权项:一种基于SNTP的时钟同步控制方法,其特征在于,包括:时钟同步客户端获取至少一个时钟同步服务器的IP地址,并将IP地址保存在地址池中;所述时钟同步客户端按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址;所述时钟同步客户端按照所选择的IP地址向目标服务器发送SNTP单播请求报文,接收所述目标服务器发送的SNTP响应报文;所述时钟同步客户端根据所述SNTP单播请求报文中的时间戳、SNTP响应报文的时间戳、SNTP单播请求报文的发送时间和SNTP响应报文时间的接收时间,计算所述时钟同步客户端与所述目标服务器之间的时间偏差;所述时钟同步客户端监控在预设时间内是否接收到所述目标服务器发送的SNTP响应报文;如果是,所述时钟同步客户端根据所述时间偏差实现时钟同步处理;否则,所述时钟同步客户端先从所述地址池中删除所选择的IP地址并更新地址池,再次执行按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址的操作。

全文数据:基于SNTP的时钟同步控制方法、装置及系统技术领域[0001]本发明涉及工业自动化控制领域,特别涉及一种基于SNTP的时钟同步控制方法、装置及系统。背景技术[0002]在工业自动化控制领域中,控制系统一般包括操作站、控制站、采集设备等。其中,操作站是用于与用户进行信息交换的设备,在整个生产过程起到集中操作和监视的作用。控制站是对生产过程进行连续控制、批量控制和顺序控制的,且能够独立运行的设备。在该控制系统中,操作站和控制站需要严格的时钟同步才能够保证整个系统的正常运行,因此常常将操作站和控制站统一称为时钟同步客户端,而将用于提供时钟源的设备称之为时钟同步服务器。[0003]在现有技术中,控制系统通常是基于简单网络时间协议(SimpleNetworkTimeProt〇C〇l,SNTP中的单播模式,在所有的时钟同步客户端需要通过组态下载或者组态发布的方式,预先配置时钟同步服务器的IP地址,然后时钟同步客户端运行组态通过单播模式与时间同步服务器进行对时,就可以实现整个系统的时钟同步。但这种方式常会存在以下问题:[0004]第一,当时钟同步服务器的IP地址发生变化时,或者当时钟同步服务器无法正常工作时,就会导致整个系统无法实现时钟同步。[0005]第二,由于时钟同步客户端是通过静态配置时钟同步服务器的IP地址,这种静态配置方式无法实现时钟同步服务器的冗余选择,从而导致系统的可靠性不高。发明内容[0006]有鉴于此,本发明的目的在于提供基于SNTP的时钟同步控制方法、装置及系统,以实现控制系统中客户端时钟同步的可靠性和精准性的目的。[0007]为实现上述目的,本发明提供如下技术方案:[0008]第一方面,本发明提供了一种基于SNTP的时钟同步控制方法,包括:[0009]时钟同步客户端获取至少一个时钟同步服务器的IP地址,并将IP地址保存在地址池中;[0010]所述时钟同步客户端按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址;[0011]所述时钟同步客户端按照所选择的IP地址向目标服务器发送SNTP单播请求报文,接收所述目标服务器发送的SNTP响应报文;[0012]所述时钟同步客户端根据所述SNTP单播请求报文中的时间戳、SNTP响应报文的时间戳、SNTP单播请求报文的发送时间和SNTP响应报文时间的接收时间,计算所述时钟同步客户端与所述目标服务器之间的时间偏差;[0013]所述时钟同步客户端根据所述时间偏差实现时钟同步处理。[0014]优选的,所述时钟同步客户端获取至少一个时钟同步服务器的IP地址的过程包括:[0015]所述时钟同步客户端侦听时钟同步服务器发送的SNTP广播同步报文,从该报文中获取时钟同步服务器的IP地址;和或者[0016]所述时钟同步客户端发送SNTP广播查询报文,接收时钟同步服务器发送的响应报文,从所述响应报文中获取时钟同步服务器的IP地址。[0017]优选的,所述时钟同步客户端按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址的过程包括:[0018]所述时钟同步客户端按照域地址最小的原则,从地址池中选择域地址最小的IP地址作为目标服务器的IP地址;或者,[0019]所述时钟同步客户端按照域地址最大的原则,从地址池中选择域地址最大的IP地址作为目标服务器的IP地址;或者,[0020]所述时钟同步客户端按照设备地址最小的原则,从地址池中选择设备地址最小的IP地址作为目标服务器的IP地址;或者,[0021]所述时钟同步客户端按照设备地址最大的原则,从地址池中选择设备地址最大的IP地址作为目标服务器的IP地址。[0022]优选的,所述时钟同步客户端根据所述时间偏差实现时钟同步处理的步骤包括:[0023]当所述时钟同步客户端判断所述时间偏差大于阈值时,或者所述时钟同步客户端的时间小于目标服务器的时间时,所述时钟同步客户端基于所述时间偏差调整自身时钟;[0024]当所述时钟同步客户端的时间大于目标服务器的时间时,所述时钟同步客户端暂停运行时钟直到同步至目标服务器的时间。[0025]优选的,在所述时钟同步客户端按照所选择的IP地址向目标服务器发送SNTP单播请求报文之后,所述方法还包括:[0026]所述时钟同步客户端监控在预设时间内是否接收到所述目标服务器发送的SNTP响应报文;如果是,执行所述计算所述时钟同步客户端与所述目标服务器之间的时间偏差的操作;[0027]否则,所述时钟同步客户端先从所述地址池中删除所选择的IP地址并更新地址池,再次执行按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址的操作。[0028]优选的,当所述时钟同步客户端在预设时间内没有接收到所述目标服务器发送的SNTP响应报文时,所述方法包括:[0029]所述时钟同步客户端发送告警信息,所述告警信息用于通知操作人员所述目标服务器出现故障。[0030]优选的,所述时钟同步客户端按照所选择的IP地址向目标服务器发送SNTP单播请求报文,接收所述目标服务器发送的SNTP响应报文的步骤包括:[0031]所述时钟同步客户端按照预设周期向所述目标服务器发送SNTP单播请求报文,且每次发送预设数目的SNTP单播请求报文,接收所述目标服务器发送的SNTP响应报文;[0032]则所述时钟同步客户端根据所述时间偏差实现时钟同步处理具体包括:[0033]所述时钟同步客户端从多个时间偏差中去除最大值和最小值,求取剩余的时间偏差的算术平均值,利用该算术平均值同步时钟。[0034]优选的,当多个时钟同步客户端需要时钟同步时,则每个时钟同步客户端错开时间发送SNTP单播请求报文。[0035]第二方面,本发明还提供一种基于SNTP的时钟同步控制装置,包括:[0036]地址获取单元,用于控制时钟同步客户端获取至少一个时钟同步服务器的IP地址,并将IP地址保存在地址池中;[0037]目标服务器选择单元,用于控制所述时钟同步客户端按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址;[0038]同步请求单元,用于控制所述时钟同步客户端按照所选择的IP地址向目标服务器发送SNTP单播请求报文,接收所述目标服务器发送的SNTP响应报文;[0039]时间偏差计算单元,用于控制所述时钟同步客户端根据所述SNTP单播请求报文中的时间戳、SNTP响应报文的时间戳、SNTP单播请求报文的发送时间和SNTP响应报文时间的接收时间,计算所述时钟同步客户端与所述目标服务器之间的时间偏差;[0040]时钟同步单元,用于控制所述时钟同步客户端根据所述时间偏差实现时钟同步处理。[0041]优选的,所述地址获取单元包括:[0042]第一地址获取子单元,用于控制所述时钟同步客户端侦听时钟同步服务器发送的SNTP广播同步报文,从该报文中获取时钟同步服务器的IP地址;和或者[0043]第二地址获取子单元,用于控制所述时钟同步客户端发送SNTp广播查询报文,接收时钟同步服务器发送的响应报文,从所述响应报文中获取时钟同步服务器的IP地址。[0044]优选的,所述目标服务器选择单元具体用于控制所述时钟同步客户端按照域地址最小的原则,从地址池中选择域地址最小的IP地址作为目标服务器的IP地址;或者,[0045]所述目标服务器选择单元具体用于控制所述时钟同步客户端按照域地址最大的原则,从地址池中选择域地址最大的IP地址作为目标服务器的IP地址;或者,[0046]所述目标服务器选择单元具体用于控制所述时钟同步客户端按照设备地址最小的原则,从地址池中选择设备地址最小的IP地址作为目标服务器的IP地址;或者,[0047]所述目标服务器选择单元具体用于控制所述时钟同步客户端按照设备地址最大的原则,从地址池中选择设备地址最大的IP地址作为目标服务器的IP地址。[0048]优选的,所述时钟同步单元包括:[0049]调整时钟子单元,用于当所述时钟同步客户端判断所述时间偏差大于阈值时,或者所述时钟同步客户端的时间小于目标服务器的时间时,控制所述时钟同步客户端基于所述时间偏差调整自身时钟;[0050]暂停时钟子单元,用于当所述时钟同步客户端的时间大于目标服务器的时间时,控制所述时钟同步客户端暂停运行时钟直到同步至目标服务器的时间。[0051]优选的,所述装置还包括:[0052]监控单元,用于控制所述时钟同步客户端监控在预设时间内是否接收到所述目标服务器发送的SNTP响应报文;如果是,触发时间偏差计算单元执行对应的操作;否则,触发地址池管理单元;[0053]所述地址池管理单元,用于控制所述时钟同步客户端先从所述地址池中删除所选择的IP地址,再次执行按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址的操作。[0054]优选的,所述装置还包括:[0055]告警单元,用于当所述时钟同步客户端在预设时间内没有接收到所述目标服务器发送的SNTP响应报文时,控制所述时钟同步客户端发送告警信息,所述告警信息用于通知操作人员所述目标服务器出现故障。[0056]优选的,所述同步请求单元具体用于控制所述时钟同步客户端按照预设周期向所述目标服务器发送SNTP单播请求报文,且每次发送预设数目的SNTP单播请求报文,接收所述目标服务器发送的SNTP响应报文;[0057]则所述时钟同步单元具体用于控制所述时钟同步客户端从多个时间偏差中去除最大值和最小值,求取剩余的时间偏差的算术平均值,利用该算术平均值同步时钟。[0058]第三方面,本发明还提供了一种基于SNTP的时钟同步控制系统,包括:时钟同步客户端,以及接收所述时钟同步客户端发送的SNTP单播请求报文,并发送SNTP响应报文的时钟同步服务器;其中所述时钟同步客户端内设置有基于SNTP的时钟同步控制装置。[0059]由上述的技术方案可以看出,在本发明实施例中,首先时钟同步客户端获取至少一个时钟同步服务器的IP地址,并将IP地址保存在地址池中;可以实现自动发现时钟同步服务器地址,无需静态组网配置,从而减小组网的复杂度和后期维护的工作量。然后,时钟同步服务器按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址,可以从当前网络中选择能够提供时钟同步服务的时钟同步服务器;再然后,时钟同步服务器向所选择的目标服务器发送SNTP单播请求报文,接收该目标服务器发送的SNTP响应报文,时钟同步服务器就可以根据报文中的时间戳、发送报文的时间和接收报文的时间,计算时间偏差,最后,时钟同步客户端利用该时间偏差就能够实现时钟同步;综上所述可知:本发明技术方案无需静态配置IP地址,通过动态发现时钟同步服务器的IP地址的方式,既能够保证时钟同步的可靠性,又能够减小时钟同步控制系统的复杂度和后期维护的工作量。附图说明[0060]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0061]图1是本发明实施例基于SNTP的时钟同步控制方法的实施例1的流程图;[0062]图2是本发明实施例基于SNTP的时钟同步控制方法的实施例2的流程图;[0063]图3是本发明实施例基于SNTP的时钟同步控制装置的实施例1的流程图;[0064]图4是本发明实施例基于SNTP的时钟同步控制系统的实施例1的示意图。具体实施方式[0065]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0066]参阅图1,图1是本发明实施例基于SNTP的时钟同步控制方法的实施例1的流程图;如图1所示,该方法包括以下步骤:[0067]S101,时钟同步客户端获取至少一个时钟同步服务器的IP地址,并将IP地址保存在地址池中;[0068]在具体实现时,为了使所有的时钟同步客户端获取到时钟同步服务器的1?地址,控制系统中的时钟同步服务器可以以广播的方式向所有时钟同步客户端发送SNTP广播同步报文。则时钟同步客户端可以侦听时钟同步服务器发送的SNTP广播同步报文,从该报文中获取对应的时钟同步服务器的IP地址。在SNTP广播同步报文中至少包含时钟同步服务器的IP地址,发送SNTP广播同步报文的时间戳等信息。[0069]在具体实现时,为了使得时钟同步客户端在上电启动后或者在任何需要时,能够随时启动同步过程,时钟同步客户端也可以主动发送SNTP广播查询报文,接收时钟同步服务器发送的SNTP响应报文,从所述SNTP响应报文中获取时钟同步服务器的IP地址。所述SNTP响应报文中至少包含时钟同步服务器的IP地址、发送SNTP响应报文的时间戳、接收SNTP广播查询报文的时间戳等信息。[0070]在具体实现时,为了提高时钟同步客户端获取时钟同步服务器IP地址的可靠性,还可以同时采用上述两种方式。[0071]其中时间戳可以是包含秒以上、秒和秒以下时间的总和时间,例如,时钟同步客户端发送SNTP广播同步报文中包含的时间戳为I2•38•2〇•25。其中,按照小数点进行划分,20为秒的位置,即秒的时间,12•38代表12时38分,为秒以上的时间;25代表25毫秒,为秒以下的时间。秒以上、秒和秒以下时间的总和构成12时38分20秒25毫秒,即为时钟同步客户端发送SNTP广播同步报文的时间。[0072]S102,所述时钟同步客户端按照预设的时钟同步服务器Ip地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址;[0073]在具体实现时,由于在工业自动化控制领域中,不同的控制系统其所采用的时钟同步服务器IP地址分配原则可能不同,因此在具体实现时要基于实际的时钟同步服务器IP地址分配原则,选择出目标服务器,g卩,可以提供时钟同步服务的服务器;考虑到为了满足控制系统中时钟同步客户端时钟同步的可靠性,一般情况下,可以预先建立多个时钟同步服务器以满足冗余需求。这样,经过S101之后,时钟同步客户端可能获取到至少一个IP地址,为了便于后续时钟同步操作,时钟同步客户端需要建立一个地址池一个数据库用于保存地址),将获取到的所有的IP地址均保存在这个地址池中。[0074]在具体实现时,本实施例还提供了以下几种简单易行的时钟同步服务器IP地址分配原则,以及针对这些分配原则S102的具体执行过程。[0075]第一种分配原则是,在整个控制系统中基于域地址最小的分配原则为系统内的每个时钟同步服务器分配IP地址,这样分配之后,每个时钟同步服务器相比于系统内其他设备而言,其IP地址的域地址总是小于其他设备IP地址的域地址,因此,所述时钟同步客户端按照域地址最小的原则,从地址池中选择域地址最小的IP地址作为目标服务器的IP地址。[0076]第二种分配原则是,在整个控制系统中基于域地址最大的分配原则为系统内的每个时钟同步服务器分配IP地址,这样分配之后,每个时钟同步服务器相比于系统内其他设备而言,其IP地址的域地址总是大于其他设备IP地址的域地址,因此,所述时钟同步客户端按照域地址最大的原则,从地址池中选择域地址最大的IP地址作为目标服务器的IP地址。[0077]第三种分配原则是,在整个控制系统中基于设备地址最小的分配原则为系统内的每个时钟同步服务器分配IP地址,这样分配之后,每个时钟同步服务器相比于系统内其他设备而言,其IP地址中的设备地址总是小于其他设备IP地址中的设备地址,因此,所述时钟同步客户端按照设备地址最小的原则,从地址池中选择设备地址最小的IP地址作为目标服务器的IP地址。[0078]第四种分配原则是,在整个控制系统中基于按照设备地址最大的分配为系统内的每个时钟同步服务器分配IP地址,这样分配之后,每个时钟同步服务器相比于系统内其他设备而言,其IP地址的域地址总是大于其他设备IP地址的设备地址,因此,所述时钟同步客户端按照设备地址最大的原则,从地址池中选择设备地址最大的IP地址作为目标服务器的IP地址。[0079]当然,在具体实现时,控制系统若采用其他的IP地址分配原则,则S102就对应着按照该分配原则执行操作。[0080]S103,所述时钟同步客户端按照所选择的IP地址向目标服务器发送SNTP单播请求报文,接收所述目标服务器发送的SNTP响应报文;[0081]在具体实现时,所述时钟同步客户端采用点对点通信方式,向目标服务器发送SNTP单播请求报文,该目标服务器接收到SNTP单播请求报文之后,向所述时钟同步客户端发送SNTP响应报文,该SNTP响应报文中至少包含时钟同步服务器接收到SNTP单播请求报文的时间戳、发送SNTP响应报文的时间戳等信息。[0082]在具体实现时,若所述时钟同步客户端与时钟同步服务器点对点通信异常时,所述时钟同步客户端采用广播方式发送SNTP请求报文,所述时钟同步服务器对应的采用广播方式发送SNTP响应报文。[0083]在具体实现时,所述时钟同步客户端可以按照预设周期发送SNTP单播请求报文,且每次发送预设数目SNTP单播请求报文,接收所述目标服务器发送的SNTP响应报文。对于所述目标服务器而言,每接收到一个SNTP请求报文时,就向时钟同步客户端发送一个SNTP响应报文。因此,时钟同步客户端会接收到预设数目的SNTP响应报文。[0084]S104,所述时钟同步客户端根据所述SNTP单播请求报文中的时间戳、SNTP响应报文的时间戳、SNTP单播请求报文的发送时间和SNTP响应报文时间的接收时间,计算所述时钟同步客户端与所述目标服务器之间的时间偏差;[0085]在具体实现时,若时钟同步客户端仅发送一次SNTP请求报文,则所述时钟同步客户端仅接收到一个时钟同步服务器发送的SNTP响应报文,则按照S104计算与该时钟同步服务器之间的时间偏差,从而计算得到一个时间偏差;[0086]在具体实现时,若时钟同步客户端周期性的发送SNTP单播请求报文,且每次发送预设数目的SNTP单播请求报文,则时钟同步客户端可能会接收到时钟同步服务器发送的两个或者两个以上SNTP响应报文,此时,时钟同步客户端则按照S104计算与时钟同步服务器之间的时间偏差,从而计算得到两个或者两个以上时间偏差。[0087]S105,所述时钟同步客户端根据所述时间偏差实现时钟同步处理。[0088]在具体实现时,当时钟同步客户端计算得到一个时钟偏差时,则直接利用该时间偏差实现时钟同步;若计算得到两个时钟偏差时,则可以求取一个平均值,再利用该平均值实现时钟同步;若计算得到两个以上时钟偏差时,则可以去掉最大值和最小值,求取剩余时钟偏差的算术平均值,再利用该算术平均值实现时钟同步。[0089]在具体实现时,控制系统对时钟同步客户端的时钟精准度有一定的要求,因此在实际同步过程中需要针对性的执行同步操作,另外,有时候时钟同步客户端的时钟走的快,可能快于时钟同步服务器;有时候时钟同步客户端的时钟走的慢,可能慢与时钟同步服务器;针对不同的时钟不同步情况,需要采用不同的时钟同步方式。具体的,所述步骤S105的执行过程至少包括以下步骤:[0090]当所述时钟同步客户端判断所述时间偏差大于阈值时,或者所述时钟同步客户端的时间小于目标服务器的时间时,所述时钟同步客户端基于所述时间偏差调整自身时钟;[0091]当所述时钟同步客户端的时间大于目标服务器的时间时,所述时钟同步客户端暂停运行时钟直到同步至目标服务器的时间。[0092]由上可见,本发明实施例中,时钟同步客户端首先获取至少一个时钟同步服务器的IP地址,并将IP地址保存在地址池中;可以实现自动发现时钟同步服务器地址,无需静态组网配置,从而减小组网的复杂度和后期维护的工作量。然后,时钟同步服务器按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址,可以从当前网络中选择能够提供时钟同步服务的时钟同步服务器;再然后,时钟同步服务器向所选择的目标服务器发送SNTP单播请求报文,接收该目标服务器发送的SNTP响应报文,时钟同步服务器就可以根据报文中的时间戳、发送报文的时间和接收报文的时间,计算时间偏差,最后,时钟同步客户端利用该时间偏差就能够实现时钟同步;综上所述可知:本发明技术方案无需静态配置IP地址,通过动态发现时钟同步服务器的IP地址的方式,既能够保证时钟同步的可靠性,又能够减小时钟同步控制系统的复杂度和后期维护的工作量。[0093]考虑到在具体实现时时钟同步服务器可能由于突发的硬件或者软件故障导致其无法提供时钟同步服务,例如时钟同步客户端向所选择的目标服务器发送SNTP请求报文,但在预设时间内没有接收到所述目标服务器发送的SNTP响应报文,则表明该目标服务器也能由于自身原因或者由于网络原因导致其此时无法提供时钟同步服务,在这种场景下,时钟同步客户端就无法利用该目标服务器实现时钟同步;为了保证时钟同步客户端执行时钟同步的可靠性,本发明实施例又提供了一种基于SNTP的时钟同步控制方法,具体参与图2,图2是本发明实施例基于SNTP的时钟同步控制方法的实施例2的流程图;从图2可以看出,该方法至少包括以下步骤:[0094]S201,时钟同步客户端获取至少一个时钟同步服务器的IP地址,并将IP地址保存在地址池中;[0095]S202,所述时钟同步客户端按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址;[0096]S2〇3,所述时钟同步客户端按照所选择的IP地址向目标服务器发送SNTP单播请求报文;[0097]S201〜S203与S101〜S103相同,在此不再赘述。[0098]S204,所述时钟同步客户端监控在预设时间内是否接收到所述目标服务器发送的SNTP响应报文;如果否,执行S205,如果是,执行S206;[0099]S205,所述时钟同步客户端先从所述地址池中删除所选择的IP地址并更新地址池,再转入S202,再次执行按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址的操作。如果执行到S204仍旧没有接收到时,则再执行S2〇5,如此循环执行直到接收到一个目标服务器发送的SNTP响应报文为止。[0100]在具体实现时,时钟同步客户端可以周期性获取至少一个时钟同步服务器的IP地址,也可以监控地址池,当监控地址池中的IP地址少于预设数目时,时钟同步客户端立刻启动获取时钟同步服务器的IP地址的操作,进而更新地址池,以保证地址池中存在一定数目的IP地址,保证整个同步过程的正常执行。[0101]更进一步地,如果在预设时间内没有接收到目标服务器发送的SNTP响应报文,则表明此时该目标服务器出现故障,有可能是硬件、软件或者网络故障,此时需要维修人员及时检修,才能够保证整个系统的正常运行,基于此,当所述时钟同步客户端在预设时间内没有接收到所述目标服务器发送的SNTP响应报文时,所述方法包括:[0102]所述时钟同步客户端发送告警信息,所述告警信息用于通知操作人员所述目标服务器出现故障。[0103]S206,所述时钟同步客户端根据所述SNTP单播请求报文中的时间戳、SNTP响应报文的时间戳、SNTP单播请求报文的发送时间和SNTP响应报文时间的接收时间,计算所述时钟同步客户端与所述目标服务器之间的时间偏差;[0104]S207,所述时钟同步客户端根据所述时间偏差实现时钟同步处理。[0105]在具体实现时,为了提高利用时钟偏差同步时钟的可靠性,所述时钟同步客户端可以按照预设周期向所述目标服务器发送SNTP单播请求报文,且每次发送预设数目的SNTP单播请求报文,接收所述目标服务器发送的SNTP响应报文;g卩,所述时钟同步客户端周期性发起同步请求,每个周期发送NGESNTP单播请求报文,每个SNTP单播请求报文间隔一段时间。比如:所述时钟同步客户端每间隔5分钟发起一次SNTP单播请求报文,每次发送5个SNTP单播请求报文包,每包间隔5秒。这样处理之后,时钟同步客户端会计算得到多个时钟偏差,为了提高同步可靠性。[0106]在具体实现时,当系统中有多个时钟同步客户端都需要进行时钟同步时,则可以设置每个时钟同步客户端错开时间发送SNTP单播请求报文,即每个时钟同步客户端发起时钟同步的时间是错开的,这样能够降低网络突发流量,降低网络拥塞的可能性。[0107]则S207具体为所述时钟同步客户端从多个时间偏差中去除最大值和最小值,求取剩余的时间偏差的算术平均值,利用该算术平均值同步时钟。[0108]如果只计算得到三个时间偏差,则直接计算其平均值,利用该平均值同步时钟即可。[0109]由上可见,本发明实施例中,时钟同步客户端首先获取至少一个时钟同步服务器的IP地址,并将IP地址保存在地址池中;可以实现自动发现时钟同步服务器地址,无需静态组网配置,从而减小组网的复杂度和后期维护的工作量。然后,时钟同步服务器按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的〗?地址,可以从当前网络中选择能够提供时钟同步服务的时钟同步服务器;再然后,时钟同步服务器向所选择的目标服务器发送SNTP单播请求报文,接收该目标服务器发送的SNTP响应报文,时钟同步服务器就可以根据报文中的时间戳、发送报文的时间和接收报文的时间,计算时间偏差,最后,时钟同步客户端利用该时间偏差就能够实现时钟同步;综上所述可知:本发明技术方案无需静态配置IP地址,通过动态发现时钟同步服务器的IP地址的方式,既能够保证时钟同步的可靠性,又能够减小时钟同步控制系统的复杂度和后期维护的工作量。[0110]进一步地,本发明实施例通过监控预设时间内是否接收到目标服务器发送的SNTP响应报文,以判断目标服务器是否能够正常工作,如果不能够则从新选择一个时钟同步服务器作为目标服务器,利用该监控机制和重选机制进一步保证同步操作的可靠性。[0111]与上述方法相对应的,本发明还公开了一种基于SNTP的时钟同步控制装置,参见图3,图3是本发明实施例基于SNTP的时钟同步控制装置的实施例丨的流程图,如图3所示,该装置可包括地址获取单元3〇1、目标服务器选择单元302、同步请求单元303、时间偏差计算单元304和时钟同步单元;[0112]其中地址获取单元301,用于控制时钟同步客户端获取至少一个时钟同步服务器的IP地址,并将IP地址保存在地址池中;[0113]目标服务器选择单元302,用于控制所述时钟同步客户端按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址;[0114]同步请求单元3〇3,用于控制所述时钟同步客户端按照所选择的IP地址向目标服务器发送SNTP单播请求报文,接收所述目标服务器发送的SNTP响应报文;[0115]时间偏差计算单元304,用于控制所述时钟同步客户端根据所述SNTP单播请求报文中的时间戳、SNTP响应报文的时间歡、SNTP单播请求报文的发送时间和SNTP响应报文时间的接收时间,计算所述时钟同步客户端与所述目标服务器之间的时间偏差;[0116]时钟同步单元305,用于控制所述时钟同步客户端根据所述时间偏差实现时钟同步处理。[0117]具体的,所述地址获取单元包括:[0118]第一地址获取子单元,用于控制所述时钟同步客户端侦听时钟同步服务器发送的SNTP广播同步报文,从该报文中获取时钟同步服务器的IP地址;和或者[0119]第二地址获取子单元,用于控制所述时钟同步客户端发送SNTP广播查询报文,接收时钟同步服务器发送的响应报文,从所述响应报文中获取时钟同步服务器的IP地址。[0120]具体的,所述目标服务器选择单元具体用于控制所述时钟同步客户端按照域地址最小的原则,从地址池中选择域地址最小的IP地址作为目标服务器的IP地址;或者,[0121]所述目标服务器选择单元具体用于控制所述时钟同步客户端按照域地址最大的原则,从地址池中选择域地址最大的IP地址作为目标服务器的IP地址;或者,[0122]所述目标服务器选择单元具体用于控制所述时钟同步客户端按照设备地址最小的原则,从地址池中选择设备地址最小的IP地址作为目标服务器的IP地址;或者,[0123]所述目标服务器选择单元具体用于控制所述时钟同步客户端按照设备地址最大的原则,从地址池中选择设备地址最大的IP地址作为目标服务器的IP地址。[0124]具体的,所述时钟同步单元305包括:调整时钟子单元和暂停时钟子单元,[0125]其中调整时钟子单元,用于当所述时钟同步客户端判断所述时间偏差大于阈值时,或者所述时钟同步客户端的时间小于目标服务器的时间时,控制所述时钟同步客户端基于所述时间偏差调整自身时钟;[0126]暂停时钟子单元,用于当所述时钟同步客户端的时间大于目标服务器的时间时,控制所述时钟同步客户端暂停运行时钟直到同步至目标服务器的时间。[0127]具体的,所述装置还可以包括:[0128]监控单元,用于控制所述时钟同步客户端监控在预设时间内是否接收到所述目标服务器发送的SNTP响应报文;如果是,触发时间偏差计算单元执行对应的操作;否则,触发地址池管理单元;[0129]所述地址池管理单元,用于控制所述时钟同步客户端先从所述地址池中删除所选择的IP地址,再次执行按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址的操作。[0130]具体的,所述装置还可以包括:告警单元,用于当所述时钟同步客户端在预设时间内没有接收到所述目标服务器发送的SNTP响应报文时,控制所述时钟同步客户端发送告警信息,所述告警信息用于通知操作人员所述目标服务器出现故障。[0131]具体的,所述同步请求单元具体用于控制所述时钟同步客户端按照预设周期向所述目标服务器发送SNTP单播请求报文,且每次发送预设数目的SNTP单播请求报文,接收所述目标服务器发送的SNTP响应报文;[0132]则所述时钟同步单元具体用于控制所述时钟同步客户端从多个时间偏差中去除最大值和最小值,求取剩余的时间偏差的算术平均值,利用该算术平均值同步时钟。[0133]上述各个单元或者模块的各细化功能可参见上述方法的相关记载,在此不作赘述。[0134]需要说明的是,可由多个单独的或单片机分别实现上述各单元、模块的功能,也可只由一个CPU或单片机实现各单元、模块的功能。[0135]由上可见,在本发明实施例中,利用地址获取单元、目标服务器选择单元、同步请求单元、时间偏差计算单元和时钟同步单元共同作用,以实现无需静态配置1?地址,通过动态发现时钟同步服务器的IP地址的方式,既能够保证时钟同步的可靠性,又能够减小时钟同步控制系统的复杂度和后期维护的工作量。[0136]与上述控制方法和控制装置相对应的,本发明实施例还公开了一种基于SNTP时钟同步控制系统,包括时钟同步客户端,以及接收所述时钟同步客户端发送的SNTP单播请求报文,并发送SNTP响应报文的时钟同步服务器;其中所述时钟同步客户端内设置有基于SNTP的时钟同步控制装置。[0137]具体的,时钟同步客户端的数目可为1个或者多个,时钟同步服务器的数目可个或者多个。在此实施例中,如图4所不,图4是本发明实施例基于SNTP的时钟同步控制系统的实施例1的示意图,如图4所示,该系统中时钟同步客户端的数目为4个,时钟同步服务器的数目为3个,其基于SNTP的时钟同步控制装置置于时钟同步客户端内,其中,时钟同步客户端可通过高速总线与时钟同步服务器进行通信。[0138]在工业控制领域的具体实现时,时钟同步服务器可以是GPS设备,也可以是将工业系统中的操作站内运行软件时钟同步服务器,即,将操作站作为时钟同步服务器。时钟同步客户端可以是工业控制系统中的操作站、控制站等需要同步时钟的设备。夕[0139]其中基于SNTP的时钟同步控制装置、时钟同步客户端、时钟同步服务器的各细化功能可参见上述方法的相关记载,在此不作赘述。[0140]需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的阶段、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种阶段、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的阶段、方法、物品或者设备中还存在另外的相同要素。[0141]本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:R0MRAM、磁碟、光盘等。[0142]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

权利要求:1.一种基于SNTP的时钟同步控制方法,其特征在于,包括:时钟同步客户端获取至少一个时钟同步服务器的IP地址,并将IP地址保存在地址池中;所述时钟同步客户端按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址;所述时钟同步客户端按照所选择的IP地址向目标服务器发送SNTP单播请求报文,接收所述目标服务器发送的SNTP响应报文;所述时钟同步客户端根据所述SNTP单播请求报文中的时间戳、SNTP响应报文的时间戳、SNTP单播请求报文的发送时间和SNTP响应报文时间的接收时间,计算所述时钟同步客户端与所述目标服务器之间的时间偏差;所述时钟同步客户端监控在预设时间内是否接收到所述目标服务器发送的SNTP响应报文;如果是,所述时钟同步客户端根据所述时间偏差实现时钟同步处理;否则,所述时钟同步客户端先从所述地址池中删除所选择的IP地址并更新地址池,再次执行按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址的操作。2.根据权利要求1所述的方法,其特征在于,所述时钟同步客户端获取至少一个时钟同步服务器的IP地址的过程包括:所述时钟同步客户端侦听时钟同步服务器发送的SNTP广播同步报文,从该报文中获取时钟同步服务器的IP地址;和或者所述时钟同步客户端发送SNTP广播查询报文,接收时钟同步服务器发送的响应报文,从所述响应报文中获取时钟同步服务器的IP地址。3.根据权利要求1所述的方法,其特征在于,所述时钟同步客户端按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址的过程包括:所述时钟同步客户端按照域地址最小的原则,从地址池中选择域地址最小的IP地址作为目标服务器的IP地址;或者,所述时钟同步客户端按照域地址最大的原则,从地址池中选择域地址最大的IP地址作为目标服务器的IP地址;或者,所述时钟同步客户端按照设备地址最小的原则,从地址池中选择设备地址最小的IP地址作为目标服务器的IP地址;或者,所述时钟同步客户端按照设备地址最大的原则,从地址池中选择设备地址最大的IP地址作为目标服务器的IP地址。4.根据权利要求1所述的方法,其特征在于,所述时钟同步客户端根据所述时间偏差实现时钟同步处理的步骤包括:当所述时钟同步客户端判断所述时间偏差大于阈值时,或者所述时钟同步客户端的时间小于目标服务器的时间时,所述时钟同步客户端基于所述时间偏差调整自身时钟;当所述时钟同步客户端的时间大于目标服务器的时间时,所述时钟同步客户端暂停运行时钟直到同步至目标服务器的时间。5.根据权利要求1所述的方法,其特征在于,当所述时钟同步客户端在预设时间内没有接收到所述目标服务器发送的SNTP响应报文时,所述方法包括:所述时钟同步客户端发送告警信息,所述告警信息用于通知操作人员所述目标服务器出现故障。6.根据权利要求1所述的方法,其特征在于,所述时钟同步客户端按照所选择的IP地址向目标服务器发送SNTP单播请求报文,接收所述目标服务器发送的SNTP响应报文的步骤包括:所述时钟同步客户端按照预设周期向所述目标服务器发送SNTP单播请求报文,且每次发送预设数目的SNTP单播请求报文,接收所述目标服务器发送的SNTP响应报文;则所述时钟同步客户端根据所述时间偏差实现时钟同步处理具体包括:所述时钟同步客户端从多个时间偏差中去除最大值和最小值,求取剩余的时间偏差的算术平均值,利用该算术平均值同步时钟。7.根据权利要求1所述的方法,其特征在于,当多个时钟同步客户端需要时钟同步时,则每个时钟同步客户端错开时间发送SNTP单播请求报文。8.—种基于SNTP的时钟同步控制装置,其特征在于,包括:地址获取单元,用于控制时钟同步客户端获取至少一个时钟同步服务器的IP地址,并将IP地址保存在地址池中;目标服务器选择单元,用于控制所述时钟同步客户端按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址;同步请求单元,用于控制所述时钟同步客户端按照所选择的1?地址向目标服务器发送SNTP单播请求报文,接收所述目标服务器发送的SNTP响应报文;时间偏差计算单元,用于控制所述时钟同步客户端根据所述SNTP单播请求报文中的时间戳、SNTP响应报文的时间戳、SNTP单播请求报文的发送时间和SNTP响应报文时间的接收时间,计算所述时钟同步客户端与所述目标服务器之间的时间偏差;时钟同步单元,用于控制所述时钟同步客户端根据所述时间偏差实现时钟同步处理;监控单元,用于控制所述时钟同步客户端监控在预设时间内是否接收到所述目标服务器发送的SNTP响应报文;如果是,触发时间偏差计算单元执行对应的操作;否则,触发地址池管理单元;所述地址池管理单元,用于控制所述时钟同步客户端先从所述地址池中删除所选择的IP地址,再次执行按照预设的时钟同步服务器IP地址分配原则,从地址池中选择一个IP地址作为目标服务器的IP地址的操作。9.根据权利要求8所述的装置,其特征在于,所述地址获取单元包括:第一地址获取子单元,用于控制所述时钟同步客户端侦听时钟同步服务器发送的SNTP广播同步报文,从该报文中获取时钟同步服务器的IP地址;和或者第二地址获取子单元,用于控制所述时钟同步客户端发送SNTP广播查询报文,接收时钟同步服务器发送的响应报文,从所述响应报文中获取时钟同步服务器的IP地址。10.根据权利要求8所述的装置,其特征在于,所述目标服务器选择单元具体用于控制所述时钟同步客户端按照域地址最小的原则,从地址池中选择域地址最小的IP地址作为目标服务器的IP地址;或者,所述目标服务器选择单元具体用于控制所述时钟同步客户端按照域地址最大的原则,从地址池中选择域地址最大的IP地址作为目标服务器的IP地址;或者,所述目标服务器选择单元具体用于控制所述时钟同步客户端按照设备地址最小的原贝1J,从地址池中选择设备地址最小的IP地址作为目标服务器的IP地址;或者,所述目标服务器选择单元具体用于控制所述时钟同步客户端按照设备地址最大的原贝!J,从地址池中选择设备地址最大的IP地址作为目标服务器的IP地址。11.根据权利要求8所述的装置,其特征在于,所述时钟同步单元包括:调整时钟子单元,用于当所述时钟同步客户端判断所述时间偏差大于阈值时,或者所述时钟同步客户端的时间小于目标服务器的时间时,控制所述时钟同步客户端基于所述时间偏差调整自身时钟;暂停时钟子单元,用于当所述时钟同步客户端的时间大于目标服务器的时间时,控制所述时钟同步客户端暂停运行时钟直到同步至目标服务器的时间。12.根据权利要求8所述的装置,其特征在于,所述装置还包括:告警单元,用于当所述时钟同步客户端在预设时间内没有接收到所述目标服务器发送的SNTP响应报文时,控制所述时钟同步客户端发送告警信息,所述告警信息用于通知操作人员所述目标服务器出现故障。13.根据权利要求8所述的装置,其特征在于,所述同步请求单元具体用于控制所述时钟同步客户端按照预设周期向所述目标服务器发送SNTP单播请求报文,且每次发送预设数目的SNTP单播请求报文,接收所述目标服务器发送的SNTP响应报文;则所述时钟同步单元具体用于控制所述时钟同步客户端从多个时间偏差中去除最大值和最小值,求取剩余的时间偏差的算术平均值,利用该算术平均值同步时钟。14.一种基于SNTP的时钟同步控制系统,其特征在于,包括时钟同步客户端,以及接收所述时钟同步客户端发送的SNTP单播请求报文,并发送SNTP响应报文的时钟同步服务器;其中所述时钟同步客户端内设置有如权利要求8〜13任一项所述的基于SNTP的时钟同步控制装置。

百度查询: 浙江中控技术股份有限公司 基于SNTP的时钟同步控制方法、装置及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。