CN113225151A - 一种基于can总线的时钟同步系统、方法和装置 - Google Patents
一种基于can总线的时钟同步系统、方法和装置 Download PDFInfo
- Publication number
- CN113225151A CN113225151A CN202110417534.4A CN202110417534A CN113225151A CN 113225151 A CN113225151 A CN 113225151A CN 202110417534 A CN202110417534 A CN 202110417534A CN 113225151 A CN113225151 A CN 113225151A
- Authority
- CN
- China
- Prior art keywords
- time
- bus
- clock synchronization
- module
- clock
- 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.)
- Granted
Links
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Abstract
本发明公开了一种基于CAN总线的时钟同步系统、方法和装置,包括控制器、IO通讯模块和多个SOE模块,其中IO通讯模块通过以太网与控制器连接,各SOE模块均通过多条CAN总线与IO通讯模块连接;IO通讯模块被配置为周期性查询各CAN总线是否存在空闲,若无空闲CAN总线则等待下一周期,否则根据当前IO通讯模块的绝对时间生成时钟同步数据帧,并向选定的空闲CAN总线发送所述时钟同步数据帧;SOE模块被配置为根据接收的时钟同步数据帧解析得到校准时间,对校准时间有效性进行判断并在校准时间被判断为有效时更新所述SOE模块的时钟。本发明通过相邻同步偏差的比对,滤除了非法的时钟同步信号,使得SOE模块总是同步正确的时钟。
Description
技术领域
本发明涉及工业自动化控制领域,尤其涉及一种基于CAN总线的时钟同步系统、方法和装置。
背景技术
在工业自动化领域,时钟同步是自动化控制系统中进行数据交换和任务调度的关键技术之一,时钟同步技术可以提供某一事件发生时间上的先后顺序,以保证控制节点在执行发送和接受消息、控制、事故记录等动作时的时间逻辑上的准确性。例如控制器中包含用于记录现场开关设备动作先后顺序的SOE模块,为了使控制器内各SOE模块记录的开关动作事件具有可比性,需要对控制器内的SOE模块实现毫秒级的时钟同步。
现有技术中典型的技术实现路径,首先利用统一的时钟源,内含NTP校时服务和秒脉冲同步信号,对DCS控制站中的控制器进行时钟同步,再由控制器通过专门的校时网络对各SOE模块进行精准时钟同步。专门的校时网络,如RS485网络由于仅供时钟同步使用,无其它通讯数据干扰,可实现毫秒级同步精度。然而,在DCS控制站常规的通讯总线之余,额外增加校时总线,无疑会增加工程施工、使用维护等方面的复杂性,同时也会增加故障点,降低系统的可靠性。显然,一旦专门的校时网络故障,整个系统的时钟同步将失效,SOE记录的开关动作将不具备可比性。
发明内容
本发明针对现有技术中的不足,提供了一种基于CAN总线的时钟同步系统,包括控制器、IO通讯模块和多个SOE模块,其中IO通讯模块通过以太网与控制器连接,各SOE模块均通过多条CAN总线与IO通讯模块连接;所述IO通讯模块被配置为周期性查询各CAN总线是否存在空闲,若无空闲CAN总线则等待下一周期,否则根据当前IO通讯模块的绝对时间生成时钟同步数据帧,并向选定的空闲CAN总线发送所述时钟同步数据帧;所述SOE模块被配置为根据接收的时钟同步数据帧解析得到校准时间,对校准时间有效性进行判断并在校准时间被判断为有效时更新所述SOE模块的时钟。
优选的,所述SOE模块具体被配置为根据接收的时钟同步数据帧解析得到校准时间tA,根据CAN总线的时钟周期对接收到的时钟同步数据帧进行校准并获得校准时间tB,并计算获取周期偏差ΔT,当本周期偏差ΔT小于第一阈值时,继续等待获取下一时钟同步数据帧的周期偏差,并在两周期偏差连续小于第一阈值后更新SOE模块的时钟;其中ΔT=Δt1-Δt0,Δt1为校准后绝对时间tB与SOE模块自身维护的绝对时间之间的偏差,Δt0为上一周期的校准后绝对时间与SOE模块自身维护的绝对时间之间的偏差,校准时间tB=tA+(M+P)*F,M为CAN总线时钟同步数据帧辅助信息位大小,P为CAN总线时钟同步数据帧数据位大小,F为数据传输时钟周期。
优选的,所述IO通讯模块被配置为周期性查询各CAN总线是否存在空闲,如果存在空闲CAN总线,则获取当前IO通讯模块的经控制器和秒脉冲校准后的0.1ms或更高分辨率的绝对时间,通过获取绝对时间生成时钟同步数据帧后发送至选定的空闲CAN总线,并清空时钟同步标志。
优选的,所述IO通讯模块被配置为根据接收到的秒脉冲信号对自身绝对时间进行校准,判断绝对时间中的秒以下值是否大于阈值,若不大于阈值则将秒以下的值清零,否则递增一秒后获得取整后的时间作为校准的绝对时间。
优选的,所述IO通讯模块被配置为将生成的时钟同步数据帧的地址位设置为最低。
优选的,时钟同步系统还包括授时服务器和时钟服务器,所述授时服务器包括主授时模块和秒脉冲模块,多个控制器通过以太网分别与主授时模块和时钟服务器连接并通过总线与秒脉冲模块连接,其中各控制器具有唯一的站号;所述控制器被配置为通过总线监听秒脉冲模块或其它控制器发送的秒脉冲信号并计算秒脉冲超时时间,当所述秒脉冲超时时间超过本控制器的最大超时时间Tmax时,向总线发出秒脉冲源启动信号并切换为第一工作状态;并在监听到其它控制器发送的秒脉冲源启动信号或秒脉冲模块发送的秒脉冲信号后,将第一工作状态切换至第二工作状态;其中最大超时时间Tmax=Tmin+S*N,Tmin为基础超时时间,S为预设的时间间隔,N为各控制器站号;所述第一工作状态为本控制器作为秒脉冲源和临时授时模块,向总线发送秒脉冲信号、和向以太网发送包含本控制器地址的广播时钟报文,并根据接收到的校准请求报文向处于第二工作状态的对应控制器发送包含时间的应答报文;所述第二工作状态为根据以太网上的广播时钟报文中的地址周期性向主授时模块或临时授时模块发送校准请求报文。
本发明还公开了一种基于CAN总线的时钟同步方法,可用于上述的时钟同步系统,具体包括如下步骤:
S1,IO通讯模块周期性查询各CAN总线是否存在空闲,若无空闲CAN总线则等待下一周期,否则根据当前IO通讯模块的绝对时间生成时钟同步数据帧,并向选定的空闲CAN总线发送所述时钟同步数据帧;
S2,SOE模块根据接收的时钟同步数据帧解析得到校准时间,对校准时间有效性进行判断并在校准时间被判断为有效时更新所述SOE模块的时钟。
优选的,所述步骤S2具体包括:
S21,SOE模块对收到的IO通讯模块发送的时钟同步数据帧进行解析,获得绝对时间tA,根据CAN总线时钟周期对接收到的时钟同步数据帧进行校准并获得校准时间tB,其中tB=tA+(M+P)*F,M为CAN总线时钟同步数据帧辅助信息位大小,P为CAN总线时钟同步数据帧数据位大小,F为数据传输时钟周期;
S22,SOE模块计算周期偏差ΔT,当本周期偏差ΔT小于第一阈值时,继续等待获取下一时钟同步数据帧的周期偏差,并在两周期偏差连续小于第一阈值后更新SOE模块的时钟,其中ΔT=Δt1-Δt0,Δt1为校准后绝对时间tB与SOE模块自身维护的绝对时间之间的偏差,Δt0为上一周期的校准后绝对时间与SOE模块自身维护的绝对时间之间的偏差;
S23,当本周期偏差ΔT不小于第一阈值时,则不更新SOE模块时钟。
优选的,所述步骤S22具体包括:
S221,计算校准后的绝对时间tB与SOE模块自身维护的绝对时间之间的偏差Δt1;
S222,计算本周期的时间偏差Δt1与上一周期时间偏差Δt0的同步偏差ΔT1,其中ΔT1=Δt1-Δt0;
S223,检查相邻时钟同步周期内的同步偏差ΔT1是否小于第一阈值,如小于则执行下一步骤,如果大于则重新执行进行步骤S21;
S224,SOE模块再次获取下一时钟同步数据帧,计算校准后的绝对时间与SOE模块自身维护的绝对时间之间的偏差Δt2,计算时间偏差Δt2与上一周期时间偏差Δt1的同步偏差ΔT2,其中ΔT2=Δt2-Δt1;
S225,检查相邻时钟同步周期内的同步偏差ΔT2是否小于第一阈值,如小于则更新SOE模块的时钟。
本发明还公开了一种时钟同步装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述基于CAN总线的时钟同步方法的步骤。
本发明公开的基于CAN总线的时钟同步系统、方法和装置,借助DCS的IO通讯总线实现控制器到SOE模块的毫秒级时钟同,通过相邻同步偏差的比对,滤除了非法的时钟同步信号,在接收时钟同步数据帧合法性判断上,可以通过更多次的同步偏差比对,在连续多次的相邻偏差满足时钟同步精度要求下才认为是合法时间,使得SOE模块总是同步正确的时钟。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明一实施例公开的基于CAN总线的时钟同步系统的结构示意图。
图2为本发明另一实施例公开的基于CAN总线的时钟同步系统的结构示意图。
图3为本发明一实施例公开的基于CAN总线的时钟同步方法的流程示意图。
图4为本发明另一实施例公开的步骤S2的具体流程示意图。
图5为本发明另一实施例公开的步骤S22的具体流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。
除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明专利申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。
附图1为本实施例公开的一种基于CAN总线的时钟同步系统,包括控制器3、IO通讯模块4和多个SOE模块5,其中IO通讯模块4通过以太网6与控制器3连接,各SOE模块5均通过多条CAN总线8与IO通讯模块4连接。其中IO通讯模块4被配置为周期性查询各CAN总线是否存在空闲,若无空闲CAN总线则等待下一周期,如果存在空闲的CAN总线则根据当前IO通讯模块的绝对时间生成时钟同步数据帧,并向选定的空闲CAN总线发送所述时钟同步数据帧。其中SOE模块5被配置为根据接收的时钟同步数据帧解析得到校准时间,对校准时间有效性进行判断,并在校准时间被判断为有效时更新所述SOE模块的时钟。
其中,SOE模块可具体被配置为根据接收的时钟同步数据帧解析得到校准时间tA,根据CAN总线的时钟周期对接收到的时钟同步数据帧进行校准并获得校准时间tB,并计算获取周期偏差ΔT,当本周期偏差ΔT小于第一阈值时,继续等待获取下一时钟同步数据帧的周期偏差,并在两周期偏差连续小于第一阈值后更新SOE模块的时钟。其中ΔT=Δt1-Δt0,Δt1为校准后绝对时间tB与SOE模块自身维护的绝对时间之间的偏差,Δt0为上一周期的校准后绝对时间与SOE模块自身维护的绝对时间之间的偏差,校准时间tB=tA+(M+P)*F,M为CAN总线时钟同步数据帧辅助信息位大小,P为CAN总线时钟同步数据帧数据位大小,F为数据传输时钟周期。
在本实施例中,每个IO通讯单元具备两个互为冗余的通讯接口,实施例中IO总线为CAN总线,IO通讯单元具备2个CAN通讯口,连接2个独立的CAN网络即第一CAN网络和第二CAN网络。
其中IO通讯单元被配置为通过CAN网络广播时钟同步数据帧。IO通讯单元每一秒中将向第一CAN总线或第二CAN总线广播时钟同步数据帧,该数据帧中包含了IO通讯单元的分辨率为0.1ms或更小分辨率的时钟信息。
具体的,IO通讯单元周期性检查当前时钟同步周期是否到;例如可设置IO通讯单元检查周期为50ms,时钟同步周期为1000ms,即相邻两次时间同步间隔≥1000ms;时钟同步周期到,则置请求时钟同步标志。
在本实施例中,IO通讯模块被配置为周期性查询各CAN总线是否存在空闲,如果存在空闲CAN总线,则获取当前IO通讯单元0.1ms或更高分辨率的绝对时间,该绝对时间通过控制器和秒脉冲校准,通过获取绝对时间生成时钟同步数据帧后发送至选定的所述空闲CAN总线,并清空时钟同步标志。具体的,如果时钟同步周期到,则进一步判断当前CAN总线是否空闲。本例中,CAN总线为冗余总线,查询空闲时,首先查询第一CAN总线是否空闲;如果第一CAN总线空闲则选用第一CAN总线;否则进一步查询第二CAN总线是否空闲,如空闲则选用第二CAN总线。如果其中一CAN总线空闲,则获取当前IO通讯单元0.1ms或更高分辨率的绝对时间;IO通讯单元的绝对时间是通过控制器及秒脉冲校准获得的,然后使用获得的绝对时间生成时钟同步数据帧,最后将时钟同步数据帧发送至选定的空闲总线,并清空时钟同步标志,表征本周期时钟同步完成。
其中,如果第一CAN总线和第二CAN总线均无空闲,则IO通讯单元结束本次同步过程。下一个查询周期到后,继续检查总线空闲状态,并在总线空闲时重新准备当前时刻的时钟同步数据帧,并广播至其中一个CAN总线。每个时钟同步周期内,包含多个查询周期,例如本实施例中具有20个。因此,即使某一次两条总线均无空闲,后续还有多次广播时钟同步数据帧机会。
其中IO通讯模块还被配置为根据接收到的秒脉冲信号对自身绝对时间进行校准,判断绝对时间中的秒以下值是否大于阈值,若不大于阈值则将秒以下的值清零,否则递增一秒后获得取整后的时间作为校准的绝对时间。具体的,为了消除时钟设备传输时间信号所造成的误差,IO通讯模块还与外部秒脉冲源连接,在接收到秒脉冲信号后,获取自身维护的绝对时间,判断绝对时间中的秒以下的值是否大于阈值,如果不大于阈值,则将秒以下的值清零。如果大于阈值,则将秒以上时间加1秒,同时将秒以下时间清零,从而使各个设备同步到相同时间。例如绝对时间是15时1分30秒400ms,阈值是500,则秒以下的毫秒值400就舍掉,将15时1分30秒作为校准后的绝对时间。如果原绝对时间是15时1分39秒560ms,那么毫秒值560大于阈值500,那么就在秒值上加上1s并删除原毫秒值,即将15时1分40秒作为校准后的绝对时间。
在本实施例中,IO通讯模块被配置为将生成的时钟同步数据帧的地址位设置为最低。通过优先级设计使得在总线检测环节检测空闲,解决多节点同时发送造成的时钟同步数据帧发送异常问题。对于IO通讯总线,除了时钟同步数据帧,总线上还存在着大量的DCS过程数据帧。本实施例利用CAN总线的总线仲裁机制,通过将时钟同步数据帧的地址位设置为最低,使其为优先级设置为最高优先级,这样,即使IO通讯总线过于拥堵,IO通讯单元也能优先获得IO总线使用权,并正确的发出时钟同步数据帧。总线上的其余通讯节点,即使同时发出DCS过程数据帧,也因优先级较低,将避让停止发送。
在本实施例中,各SOE模块被配置为接收并同步时钟,SOE模块在收到IO通讯单元发出的时钟信息后,将自身的时钟校准为接收时钟。
具体的,SOE模块中断接收到IO通讯单元发送的时钟同步数据帧。SOE模块接收到时钟同步数据帧后,解析得到绝对时间tA,根据CAN总线的时钟周期,再次对接收到的时钟同步数据帧进行校准,最终校准时间tB=tA+(M+P)*F,其中M为CAN总线时钟同步数据辅助信息位大小,P为CAN总线时钟同步数据帧数据位大小,F为数据传输时钟周期。计算校准后的绝对时间与SOE模块自身维护的绝对时间之间的偏差Δt1;然后计算时间偏差Δt1与上一周期时间偏差Δt0之偏差ΔT1;检查相邻时钟同步周期内的同步偏差ΔT1是否满足时钟同步精度要求,本例中设定精度要求为1ms,如果不满足,则等待SOE模块重新中断接收到IO通讯单元发送的时钟同步数据帧。如果满足则SOE模块再次中断接收到IO通讯单元发送的时钟同步数据帧,在接收到时钟同步数据帧后,解析得到绝对时间tA,根据CAN总线的时钟周期,再次对接收到的时钟同步数据帧进行校准,最终校准时间tB=tA+(M+P)*F,其中M为CAN总线时钟同步数据辅助信息位大小,P为CAN总线时钟同步数据帧数据位大小,F为数据传输时钟周期,计算校准后的绝对时间与SOE模块自身维护的绝对时间之间的偏差Δt2;计算时间偏差Δt2与上一周期时间偏差Δt1之偏差ΔT2;计算并获取时间偏差Δt2与上一周期时间偏差Δt1之偏差ΔT2,检查相邻时钟同步周期内的同步偏差ΔT2是否满足时钟同步精度要求;如果满足时钟同步精度要求,则以Δt0、Δt1、Δt2的平均值校准SOE模块的时钟。上述实施例通过相邻同步偏差的比对,滤除了非法的时钟同步信号,使得SOE模块总是同步正确的时钟。更进一步的,在接收时钟同步数据帧合法性判断上,可以通过更多次的同步偏差比对,在连续多次的相邻偏差满足时钟同步精度要求下才认为是合法时间。更进一步的,对于IO通讯总线上的时钟同步数据帧,还包含了通讯校验码,如CRC16校验码,只有通讯校验通过的数据,才会被SOE模块接收。本实施例公开的时钟同步系统可借助DCS的IO通讯总线实现控制器到SOE模块的毫秒级时钟同,通过相邻同步偏差的比对,滤除了非法的时钟同步信号,在接收时钟同步数据帧合法性判断上,可以通过更多次的同步偏差比对,在连续多次的相邻偏差满足时钟同步精度要求下才认为是合法时间,使得SOE模块总是同步正确的时钟。
附图2为另一具体实施例公开的一种基于CAN总线的时钟同步系统,包括授时服务器1、时钟服务器2和多个控制器3,所述授时服务器1包括主授时模块12和秒脉冲模块11,所述控制器3通过以太网6分别与主授时模块12和时钟服务器2连接、并通过总线7与秒脉冲模块11连接,IO通讯模块4通过总线7与授时服务器1的秒脉冲模块11连接。其中主授时模块12,被配置为根据接收到的校准请求报文通过以太网6向对应控制器发送包含时间的应答报文。秒脉冲模块11,被配置为通过总线7向各控制器3发送秒脉冲信号。时钟服务器2,通过以太网6向挂接在该网络上的控制器3发送包括授时服务器1地址的广播时钟报文,授时服务器的地址即授时模块地址。多个控制器3,各控制器具有唯一的站号,所述控制器3被配置为通过总线7监听秒脉冲模块或其它控制器发送的秒脉冲信号并计算秒脉冲超时时间,当所述秒脉冲超时时间超过本控制器的最大超时时间Tmax时,向总线发出秒脉冲源启动信号并切换为第一工作状态;并在监听到其它控制器发送的秒脉冲源启动信号或秒脉冲模块发送的秒脉冲信号后,将第一工作状态切换至第二工作状态。
其中最大超时时间Tmax=Tmin+S*N,Tmin为基础超时时间,S为预设的时间间隔,N为各控制器站号;所述第一工作状态为本控制器作为秒脉冲源和临时授时模块,向总线发送秒脉冲信号、和向以太网发送包含本控制器地址的广播时钟报文,并根据接收到的校准请求报文向处于第二工作状态的对应控制器发送包含时间的应答报文;所述第二工作状态为根据以太网上的广播时钟报文中的地址周期性向主授时模块或临时授时模块发送校准请求报文。
具体的,这些挂接在总线和以太网上的控制器具有将其自身作为秒脉冲信号源及授时模块的功能。在控制器所连接的外部主授时模块及外部秒脉冲模块工作正常时,控制器的收发器均为接收状态。控制器监视秒脉冲超时时间,控制器接收到外部秒脉冲信号后,秒脉冲超时时间立即清零。其中,秒脉冲超时时间通过计时器计时,控制器接收到秒脉冲信号后,秒脉冲超时时间的计数值立即清零,其中秒脉冲信号可以来自外部的秒脉冲模块,也可以是来自总线上的其他控制器的秒脉冲源。
当其中一个控制器收到的秒脉冲信号的秒脉冲超时时间超过了该控制器所设定的最大超时时间,则该控制器判断外部的秒脉冲模块或其他处于第一工作状态的控制器的秒脉冲源发生故障,则本控制器中的收发器切换至发送状态,发出秒脉冲源启动信号,用于通知系统中其他控制器已经存在一个控制器将启用秒脉冲源功能,其他控制器也就不会成为秒脉冲信号源。当该控制器脉冲发送完成后,立即切换为接收状态。本控制器也将由第二工作状态切换为第一工作状态,该第一工作状态为本控制器作为秒脉冲源和临时授时模块,向总线发送秒脉冲信号、和向以太网发送包含本控制器地址的广播时钟报文,并根据接收到的校准请求报文向处于第二工作状态的对应控制器发送包含时间的应答报文。第二工作状态为根据以太网上的广播时钟报文中的地址周期性向主授时模块或临时授时模块发送校准请求报文。
其中,秒脉冲源启动信号为非整秒发出的一个或多个连续脉冲。具体的,该脉冲源启动信号包括一个或一个以上的连续脉冲,为了避免其他控制器将脉冲源启动信号与秒脉冲信号混淆,脉冲源启动信号中的脉冲信号为非整秒发出,且两个脉冲之间的时间间隔较短。
在本实施例的时钟同步系统中,采用特定的备用秒脉冲源分配机制,即系统中设有一个或多个控制器,当存在多个控制器时,不同的控制器具有不同的最大超时时间Tmax,所述最大超时时间Tmax具体为:Tmax=基础超时时间+时间间隔*站号。在一些具体实施例中,控制器站号N为该控制器的IP地址的最低字节的一半,所述时间间隔S大于1秒。具体的,各控制器的站号可以设置为该控制器的IP地址的最低字节/2,而时间间隔应大于1秒,根据最大超时时间的计算方法,在各控制器与同一外部秒脉冲连接的情况下,若秒脉冲故障,则可知最后应为IP地址最低的控制器作为秒脉冲源。
在一控制器处于第一工作状态,向总线上其它控制器提供秒脉冲信号,如果以太网上的时钟信号仍继续来自外部主授时模块的情况下,则秒脉冲信号与时钟信号可能来自不同的时钟源,影响时间的校准精度,因此控制器在提供秒脉冲源的同时,向以太网上发送广播时钟报文,通知以太网上所连接的设备包括时钟服务器,该控制器将要作为秒脉冲源和临时授时模块。
具体的,根据备用秒脉冲源分配机制,在一控制器的秒脉冲超时时间超过本控制器的最大超时时间时,向总线发出秒脉冲源启动信号并切换为第一工作状态。然后周期性向以太网发送广播时钟报文,报文内容包括该控制器地址,通知以太网上的设备,本控制器升级作为临时授时模块。其他的具有秒脉冲源功能的控制器如果接收到秒脉冲源启动信号,则退出备用秒脉冲源分配机制。在一些具体实施例中,其中处于第二工作状态的控制器被配置为在监听到总线上由其它控制器发出的启动脉冲源信号后,将本控制器的秒脉冲超时时间清零,并向收到的广播时钟报文内临时授时模块地址周期性的发送校准请求报文。
其中,时钟服务器被配置为在监听到以太网上由一控制器发送的广播时钟报文后,停止向以太网上发送包含主授时模块地址的广播时钟报文。具体的,时钟服务器在监听到以太网上的广播时钟报文后,禁止向以太网上发送包含主授时模块地址的广播时钟报文,其他设备接收到该控制器所发送的广播时钟报文后,从报文中获取该控制器的地址,并周期性的向该控制器发送校准请求报文,则该控制器向控制器或网关发送包含时间的应答报文。
当各控制器的秒脉冲超时时间超出了基础超时时间,控制器则进入超时等待确认时钟源阶段,接收到的脉冲源启动信号不用于时钟校时,该脉冲源启动信号仅代表存在某一控制器将启用秒脉冲信号源功能,控制器在成为秒脉冲源的同时,也成为系统中的临时授时模块。
系统中某一控制器一旦确认为秒脉冲源后,只要该控制器正常工作,将持续作为秒脉冲源和临时授时模块。后加入的控制器,因为能够连续接收到控制器所发送的秒脉冲信号,因此即使该控制器站号更低,也不进行秒脉冲信号源和临时授时模块的切换。但是如果系统中存在秒脉冲模块并恢复正常工作,当作为秒脉冲源和临时授时模块的控制器接收到外部秒脉冲模块发送的秒脉冲信号后,该控制器将关闭秒脉冲源功能和临时授时模块功能,用于避免秒脉冲信号的叠加,由外部主授时模块作为时钟源来向各控制器提供时间。
在一控制器升为秒脉冲源和临时授时模块之后,同样具有最大超时时间Tmax和基础超时时间Tmin,作为秒脉冲源的控制器的秒脉冲超时时间在发出秒脉冲之后清零并重新开始计时,如果秒脉冲超时时间超过该控制器的最大超时时间Tmax,则认为该控制器秒脉冲源故障,停止秒脉冲源向外输出脉冲秒脉冲信号,关闭该控制器的秒脉冲源和临时授时模块功能,由其他秒脉冲源提供秒脉冲信号。
若系统中存在第二控制器,第二控制器的IP地址最低字节比作为秒脉冲源的第一控制器更低或者除了第一控制器,第二控制器的IP地址最低字节最低,则在第一控制器停止提供秒脉冲源之后,第二控制器判断其已经满足作为秒脉冲源的条件,向外输出秒脉冲信号,则第一控制器收到第二控制器发送的秒脉冲启动信号后,关闭第一控制器的秒脉冲源和临时授时模块功能,由第二控制器提供秒脉冲信号。在处于第一工作状态的控制器重启、冗余切换后,将重新按上述备用秒脉冲源分配机制来选择进入第一工作状态的控制器,即选择一控制器开启秒脉冲源和临时授时模块功能。
在具体实施例中,处于第一工作状态的控制器在一次或多次接收到总线上的秒脉冲模块发送的秒脉冲信号后,将本控制器的秒脉冲超时时间清零并关闭本控制器内部的秒脉冲源及临时授时模块,将第一工作状态切换至第二工作状态。具体的,外部的秒脉冲模块在恢复正常工作后,同样正常发出秒脉冲信号到总线,处于第一工作状态的控制器在连续多次接收到总线上的秒脉冲信号后,关闭自己内部的秒脉冲源及临时授时模块,由外部秒脉冲模块和主授时模块作为校准信号,同时秒脉冲超时时间接收到秒脉冲信号后也清零。具体的,控制器禁止自身的临时授时模块后,时钟服务器监听到目前以太网上没有广播时钟报文,则时钟服务器继续周期性向以太网发送包含有本主授时模块地址的广播时钟报文,以太网上的设备从报文中获取到主授时模块地址后,周期性向主授时模块发送校准请求报文。
在一具体实施例中,该用于工业自动化系统的时钟同步系统中,控制器A的IP地址最低,控制器B的IP地址最高,控制器A的IP地址低字节为100,控制器B的IP地址低字节为126,控制器站号为所述控制器的IP地址的最低字节/2。该实施例的秒脉冲源切换方法为:
授时服务器的秒脉冲模块和主授时模块正常工作,控制器A和B监视各自的秒脉冲超时时间,在控制器A和控制器B接收到秒脉冲后,各自的秒脉冲超时时间立即清零,时钟服务器向以太网发送含有主授时模块地址的广播时钟报文。
当控制器A的秒脉冲超时时间和控制器B的秒脉冲超时时间超过了基础超时时间,其中基础超时时间在本实施例中为2s,时间间隔为1.5s,则控制器A和控制器B在2s内没有接收到秒脉冲信号,进入超时等待状态。对于控制器A,最大超时时间TmaxA=2s+1.5*100/2=77s,对于控制器B,最大超时时间TmaxB=2s+1.5*126/2=96.5s,因此控制器A在77s内没有接收到秒脉冲信号,则收发器切换至发送状态,通过自身的时钟源发出脉冲源启动信号,所述的秒脉冲启动信号为3个连续的时间间隔为0.1s的脉冲信号,通知系统中其他设备控制器A将启用秒脉冲功能。每次发送脉冲信号后,收发器立即切换至接收状态;同时控制器A启动临时授时功能,并向以太网发送包含控制器A地址的广播时钟报文。
以太网上的控制器等设备接收到主授时模块或临时授时模块的时间信号后,首先对时钟信号有效性进行判断,计算一次或连续多次相邻校时时间偏差小于阈值判断为有效,并计算时间偏差的平均值作为校准的时间偏差。
具体的,以太网上的设备接收到绝对时间为T1,设备自身维护的绝对时间为ST1,则时间偏差为ΔT1=T1-ST1;以太网上的设备再次接收到绝对时间T2,设备自身维护的绝对时间为ST2,则时间偏差为ΔT2=T2-ST2;只有当ΔT1与ΔT2时间差小于阈值A时,认为ΔT1和ΔT2为有效的时间偏差,将其取平均作为校准时间偏差,若大于阈值A,则ΔT1和ΔT2均认为无效,结束本次处理。
为了消除时钟设备传输时间信号所造成的误差,总线上的设备接收到秒脉冲的时钟信号后,获取自身维护的绝对时间ST,判断绝对时间ST秒以下的值是否大于阈值B,若不大于阈值B,将秒以下的值清零;若大于阈值B,将秒以上时间加1秒,同时将秒以下时间清零,从而使各个设备同步到相同时间。例如绝对时间ST是15时1分30秒400ms,阈值是500,则秒以下的400就舍掉,如果是15时1分560ms,那么就加上1s。
本实施例公开的时钟同步系统为每个控制器设置唯一站号和秒脉冲最大超时时间,在外部时钟源故障的情况下,通过判断各控制器的秒脉冲超时时间是否超过其最大超时时间来及时选择其中的一控制器作为系统的临时的秒脉冲源和临时授时模块,使整个系统可以正常运行,同时秒脉冲源和授时模块采用同一时钟源,能够进一步提高时间的校准精度,为挂接在总线和以太网上的设备与绝对时钟对时。
附图3为实施例公开的一种基于CAN总线的时钟同步方法,该方法可用于上述各实施例所公开的时钟同步系统,该方法具体包括如下步骤:
步骤S1,IO通讯模块周期性查询各CAN总线是否存在空闲,若无空闲CAN总线则等待下一周期,否则根据当前IO通讯模块的绝对时间生成时钟同步数据帧,并向选定的空闲CAN总线发送所述时钟同步数据帧。
具体的,在本实施例中以每个SOE模块均通过两条CAN总线与IO通讯模块连接为例进行描述。IO通讯单元每秒向第一CAN网络或第二CAN网络广播时钟同步数据帧,该数据帧中包含了IO通讯单元的分辨率为0.1ms或更小分辨率的时钟信息,该步骤具体可包括如下步骤。
步骤S11,IO通讯单元周期性检查当前时钟同步周期是否到;例如可设置IO通讯单元检查周期为50ms,时钟同步周期为1000ms,即相邻两次时间同步间隔≥1000ms;时钟同步周期到,则置请求时钟同步标志。
步骤S12,如果时钟同步周期到,则进一步判断当前CAN总线是否空闲。本例中,CAN总线为冗余总线,查询空闲时,首先查询第一CAN总线是否空闲;如果第一CAN总线空闲则选用第一CAN总线;否则进一步查询第二CAN总线是否空闲,如空闲则选用第二CAN总线。
步骤S13,如果其中一CAN总线空闲,则获取当前IO通讯单元0.1ms或更高分辨率的绝对时间,IO通讯单元的绝对时间是通过控制器及秒脉冲校准获得的。
步骤S14,使用上一步骤获得的绝对时间生成时钟同步数据帧发送至选定的空闲CAN总线,并清空时钟同步标志。
其中,如果第一CAN总线和第二CAN总线均无空闲,则IO通讯单元结束本次同步过程。下一个查询周期到后,继续检查总线空闲状态,并在总线空闲时重新准备当前时刻的时钟同步数据帧,并广播至其中一个CAN总线。每个时钟同步周期内,包含多个查询周期,例如本实施例中具有20个。因此,即使某一次两条总线均无空闲,后续还有多次广播时钟同步数据帧机会。
本实施例通过优先级设计使得在总线检测环节检测空闲,解决多节点同时发送造成的时钟同步数据帧发送异常问题。对于IO通讯总线,除了时钟同步数据帧,总线上还存在着大量的DCS过程数据帧。本实施例利用CAN总线的总线仲裁机制,通过将时钟同步数据帧的地址位设置为最低,使其为优先级设置为最高优先级,这样,即使IO通讯总线过于拥堵,IO通讯单元也能优先获得IO总线使用权,并正确的发出时钟同步数据帧。总线上的其余通讯节点,即使同时发出DCS过程数据帧,也因优先级较低,将避让停止发送。
步骤S2,SOE模块根据接收的时钟同步数据帧解析得到校准时间,对校准时间有效性进行判断并在校准时间被判断为有效时更新所述SOE模块的时钟。
如附图4所示,所述步骤S2具体包括:
步骤S21,SOE模块对收到的IO通讯模块发送的时钟同步数据帧进行解析,获得绝对时间tA,根据CAN总线时钟周期对接收到的时钟同步数据帧进行校准并获得校准时间tB,其中tB=tA+(M+P)*F,M为CAN总线时钟同步数据帧辅助信息位大小,P为CAN总线时钟同步数据帧数据位大小,F为数据传输时钟周期。例如,CAN总线时钟同步数据帧辅助信息位为64位,CAN总线时钟同步数据帧数据位为64位,数据传输时钟周期F为1us,因此校准时间为128us。
各SOE模块接收并同步时钟,在收到IO通讯单元发出的时钟信息后,将自身的时钟校准为接收时钟。SOE模块中断接收到IO通讯单元发送的时钟同步数据帧。
步骤S22,SOE模块计算周期偏差ΔT,当本周期偏差ΔT小于第一阈值时,继续等待获取下一时钟同步数据帧的周期偏差,并在两周期偏差连续小于第一阈值后更新SOE模块的时钟,其中ΔT=Δt1-Δt0,Δt1为校准后绝对时间tB与SOE模块自身维护的绝对时间之间的偏差,Δt0为上一周期的校准后绝对时间与SOE模块自身维护的绝对时间之间的偏差。
如附图5所示,在一些具体实施例中,所述步骤S22具体包括:
S221,计算校准后的绝对时间tB与SOE模块自身维护的绝对时间之间的偏差Δt1;
S222,计算本周期的时间偏差Δt1与上一周期时间偏差Δt0的同步偏差ΔT1,其中ΔT1=Δt1-Δt0;
S223,检查相邻时钟同步周期内的同步偏差ΔT1是否小于第一阈值,如小于则执行下一步骤,如果大于则重新执行进行步骤S21;
S224,SOE模块再次获取下一时钟同步数据帧,计算校准后的绝对时间与SOE模块自身维护的绝对时间之间的偏差Δt2,计算时间偏差Δt2与上一周期时间偏差Δt1的同步偏差ΔT2,其中ΔT2=Δt2-Δt1;
S225,检查相邻时钟同步周期内的同步偏差ΔT2是否小于第一阈值,如小于则以时间偏差Δt0、Δt1、Δt2的平均值校准SOE模块的时钟。
上述实施例通过相邻同步偏差的比对,滤除了非法的时钟同步信号,使得SOE模块总是同步正确的时钟。更进一步的,在接收时钟同步数据帧合法性判断上,可以通过更多次的同步偏差比对,在连续多次的相邻偏差满足时钟同步精度要求下才认为是合法时间。更进一步的,对于IO通讯总线上的时钟同步数据帧,还包含了通讯校验码,如CRC16校验码,只有通讯校验通过的数据,才会被SOE模块接收。
在另一具体实施例公开的一种基于CAN总线的时钟同步方法中,该时钟同步方法可应用于前述实施例中公开的时钟同步系统,该方法具体包括如下步骤:
步骤S101,第一控制器的收发器通过总线监听秒脉冲模块或其它控制器发送的秒脉冲信号,获取秒脉冲超时时间。
具体的,为描述方便,将多个控制器命名为第一控制器、第二控制器等,其中各控制器都通过总线监听秒脉冲模块或其它控制器发送的秒脉冲信号并计算秒脉冲超时时间。这些挂接在总线上的控制器具有将其自身作为秒脉冲信号源及授时模块的功能。在控制器所连接的外部主授时模块及外部秒脉冲源工作正常时,控制器的收发器均为接收状态。控制器监视秒脉冲超时时间,控制器接收到外部秒脉冲信号后,秒脉冲超时时间立即清零。其中,秒脉冲超时时间通过计时器计时,控制器接收到秒脉冲信号后,秒脉冲超时时间的计数值立即清零,其中秒脉冲信号可以来自外部的秒脉冲模块,也可以是来自总线上的其他控制器的秒脉冲源。
步骤S102,当第一控制器的秒脉冲超时时间超过本控制器的最大超时时间Tmax时,第一控制器向总线发出秒脉冲源启动信号,所述秒脉冲源启动信号为非整秒发出的一个或多个连续脉冲,其中各控制器的最大超时时间Tmax=Tmin+S*N,Tmin为基础超时时间,S为预设的时间间隔,N为各控制器对应的唯一站号。
当第一控制器收到的秒脉冲信号的秒脉冲超时时间超过了该控制器所设定的最大超时时间,则该控制器判断外部的秒脉冲模块或其他处于第一工作状态的控制器的秒脉冲源发生故障,则本控制器中的收发器切换至发送状态,发出秒脉冲源启动信号,通知系统中其他控制器已经存在一个控制器将启用秒脉冲源功能,其他控制器也就不会成为秒脉冲信号源。当该控制器脉冲发送完成后,立即切换为接收状态。
其中,秒脉冲源启动信号为非整秒发出的一个或多个连续脉冲。具体的,该脉冲源启动信号包括一个或一个以上的连续脉冲,为了避免其他控制器将脉冲源启动信号与秒脉冲信号混淆,脉冲源启动信号中的脉冲信号为非整秒发出,且两个脉冲之间的时间间隔较短。
在本实施例的时钟同步系统中,采用特定的备用秒脉冲源分配机制,即系统中设有一个或多个控制器,当存在多个控制器时,不同的控制器具有不同的最大超时时间Tmax,所述最大超时时间Tmax具体为:Tmax=基础超时时间+时间间隔*站号。在一些具体实施例中,控制器站号N为该控制器的IP地址的最低字节的一半,所述时间间隔S大于1秒。具体的,各控制器的站号可以设置为该控制器的IP地址的最低字节/2,而时间间隔应大于1秒,根据最大超时时间的计算方法,在各控制器与同一外部秒脉冲连接的情况下,若秒脉冲故障,则可知最后应为IP地址最低的控制器作为秒脉冲源。
在一控制器处于第一工作状态,向总线上其它控制器提供秒脉冲信号,如果以太网上的授时服务仍继续采用外部主授时模块的情况下,则秒脉冲信号与时钟信号可能来自不同的时钟源,影响时间的校准精度,因此控制器在提供秒脉冲源的同时,向以太网上发送广播时钟报文,通知以太网上所连接的设备包括时钟服务器,该控制器将要作为临时授时模块。
步骤S103,第一控制器在发送秒脉冲源启动信号后切换为第一工作状态,向总线发送秒脉冲信号、和向以太网发送包含本控制器地址的广播时钟报文,并根据接收到的校准请求报文向处于第二工作状态的对应控制器发送包含时间的应答报文,所述第一工作状态为本控制器作为秒脉冲源和临时授时模块。广播时钟报文内容包括第一控制器地址,通知以太网上的设备,本控制器升级作为授时模块。其中各控制器可在第一工作状态和第二工作状态间切换,其中第一工作状态为本控制器作为秒脉冲源和临时授时模块,向总线发送秒脉冲信号且向以太网发送包含本控制器地址的广播时钟报文;所述第二工作状态为根据以太网上的报文地址周期性向主授时模块或临时授时模块发送校准请求报文。
步骤S104,第二控制器在收到启动脉冲源信号后,将本站的秒脉冲超时时间清零,并根据收到的广播时钟报文周期性向第一控制器发送校准请求报文。即其他的具有秒脉冲源功能的控制器在接收到第一控制器的启动脉冲源信号后,退出升源即备用秒脉冲源分配。
步骤S105,时钟服务器在监听到以太网上由第一控制器发送的广播时钟报文后,停止向以太网发送包含所述主授时模块地址的广播时钟报文。
时钟服务器监听到以太网上的广播时钟报文,则禁止向以太网上发送包含主授时模块地址的广播时钟报文,其他设备接收到控制器所发送的广播时钟报文后,从报文中获取控制器的地址,并周期性的向该控制器发送校准请求报文,则控制器上的临时授时模块向控制器发送应答报文。
当各控制器的秒脉冲超时时间超出了基础超时时间,控制器则进入超时等待确认时钟源阶段,接收到的脉冲源启动信号不用于时钟校时,该脉冲源启动信号仅代表存在某一控制器将启用秒脉冲信号源功能,控制器在成为秒脉冲源的同时,也成为系统中的临时授时模块。
系统中某一控制器一旦确认为秒脉冲源后,只要该控制器正常工作,将持续作为秒脉冲源和临时授时模块。后加入的控制器,因为能够连续接收到控制器所发送的秒脉冲信号,因此即使该控制器站号更低,也不进行秒脉冲信号源和临时授时模块的切换。但是如果系统中存在秒脉冲模块并恢复正常工作,当作为秒脉冲源和临时授时模块的控制器接收到外部秒脉冲模块发送的秒脉冲信号后,该控制器将关闭秒脉冲源功能和临时授时模块功能,用于避免秒脉冲信号的叠加,由外部主授时模块作为时钟源来向各控制器提供时间。
第一控制器的秒脉冲信号超时时间在发出秒脉冲之后清零并重新开始计时,如果超时时间超过该控制器的最大超时时间,则停止向外输出秒脉冲信号。具体的,第一控制器升为秒脉冲源和临时授时模块之后,同样具有最大超时时间Tmax和基础超时时间Tmin,作为秒脉冲源的控制器的秒脉冲超时时间在发出秒脉冲之后清零并重新开始计时,如果秒脉冲超时时间超过该控制器的最大超时时间Tmax,则认为该控制器秒脉冲源故障,停止秒脉冲源向外输出脉冲秒脉冲信号,关闭该控制器的秒脉冲源和临时授时模块功能,由其他秒脉冲源提供秒脉冲信号。
如果系统中的第二控制器的IP地址最低字节比作为秒脉冲源的第一控制器更低或者除了第一控制器,第二控制器的IP地址最低字节最低,则在第一控制器停止提供秒脉冲源之后,第二控制器判断其已经满足作为秒脉冲源的条件,向外输出秒脉冲信号。第一控制器收到第二控制器发送的秒脉冲启动信号后,关闭第一控制器的秒脉冲源和临时授时模块功能,由第二控制器提供秒脉冲信号。在处于第一工作状态的控制器重启、冗余切换后,将重新按上述备用秒脉冲源分配机制来选择进入第一工作状态的控制器,即选择一控制器开启秒脉冲源和临时授时模块功能。
步骤S106,第一控制器在监听到总线上其它控制器发送的秒脉冲源启动信号或秒脉冲模块重新发送的秒脉冲信号后,将第一工作状态切换至第二工作状态,所述第二工作状态为根据以太网上的报文地址周期性向主授时模块或临时授时模块发送校准请求报文。
第一控制器作为秒脉冲源和临时授时模块,正常发出秒脉冲信号至总线,发出广播时钟报文至以太网,第一控制器在发送完秒脉冲信号或广播时钟报文后,立即将收发器切换至接收状态。
秒脉冲模块恢复正常工作后,同样正常发出秒脉冲信号至总线。
第一控制器在连续多次接收到秒脉冲信号后,关闭自己内部的秒脉冲源和临时授时模块,由秒脉冲模块和主授时模块作为校准信号,同时秒脉冲超时时间清零。
具体的,第一控制器禁止自身的临时授时模块后,时钟服务器监听到目前以太网上没有广播时钟报文,则时钟服务器继续周期性向以太网发送包含有主授时模块地址的广播时钟报文,以太网上的设备从报文中获取到外部主授时模块地址后,周期性向主授时模块发送校准请求报文。
以太网上的控制器或其它设备接收到授时模块的时间信号后,首先对授时模块所发出的时钟信号有效性进行判断,计算一次或连续多次相邻校时时间偏差小于阈值判断为有效,并计算时间偏差的平均值作为校准的时间偏差。
本实施例公开的时钟同步方法为每个控制器设置唯一站号和秒脉冲最大超时时间,在外部时钟源故障的情况下,通过判断各控制器的秒脉冲超时时间是否超过其最大超时时间来及时选择其中的一控制器作为系统的临时的秒脉冲源和临时授时模块,使整个系统可以正常运行,同时秒脉冲源和授时模块采用同一时钟源,能够进一步提高时间的校准精度,为挂接在总线和以太网上的设备与绝对时钟对时。
IO通讯模块通过以太网向控制站发送校准请求报文,控制器将校准后的时间发送给该控制器所连接的IO通讯模块,且IO通讯模块通过总线接收秒脉冲源或者控制器的秒脉冲,IO通讯模块通过接收到的实时时间与秒脉冲信号,校准自身时间,具体校准方式与控制器校准方式相同。
步骤S107,IO通讯模块周期性查询各CAN总线是否存在空闲,若无空闲CAN总线则等待下一周期,否则根据当前IO通讯模块的绝对时间生成时钟同步数据帧,并向选定的空闲CAN总线发送所述时钟同步数据帧。
具体的,在本实施例中以每个SOE模块均通过两条CAN总线与IO通讯模块连接为例进行描述。IO通讯单元每秒向第一CAN网络或第二CAN网络广播时钟同步数据帧,该数据帧中包含了IO通讯单元的分辨率为0.1ms或更小分辨率的时钟信息,该步骤具体可包括如下步骤。
步骤S1071,IO通讯单元周期性检查当前时钟同步周期是否到;例如可设置IO通讯单元检查周期为50ms,时钟同步周期为1000ms,即相邻两次时间同步间隔≥1000ms;时钟同步周期到,则置请求时钟同步标志。
步骤S1072,如果时钟同步周期到,则进一步判断当前CAN总线是否空闲。本例中,CAN总线为冗余总线,查询空闲时,首先查询第一CAN总线是否空闲;如果第一CAN总线空闲则选用第一CAN总线;否则进一步查询第二CAN总线是否空闲,如空闲则选用第二CAN总线。
步骤S1073,如果其中一CAN总线空闲,则获取当前IO通讯单元0.1ms或更高分辨率的绝对时间,IO通讯单元的绝对时间是通过控制器及秒脉冲校准获得的。
步骤S1074,使用上一步骤获得的绝对时间生成时钟同步数据帧发送至选定的空闲CAN总线,并清空时钟同步标志。
其中,如果第一CAN总线和第二CAN总线均无空闲,则IO通讯单元结束本次同步过程。下一个查询周期到后,继续检查总线空闲状态,并在总线空闲时重新准备当前时刻的时钟同步数据帧,并广播至其中一个CAN总线。每个时钟同步周期内,包含多个查询周期,例如本实施例中具有20个。因此,即使某一次两条总线均无空闲,后续还有多次广播时钟同步数据帧机会。
步骤S108,SOE模块根据接收的时钟同步数据帧解析得到校准时间,对校准时间有效性进行判断并在校准时间被判断为有效时更新所述SOE模块的时钟。
具体的,所述步骤S108具体包括:
步骤S1081,SOE模块对收到的IO通讯模块发送的时钟同步数据帧进行解析,获得绝对时间tA,根据CAN总线时钟周期对接收到的时钟同步数据帧进行校准并获得校准时间tB,其中tB=tA+(M+P)*F,M为CAN总线时钟同步数据帧辅助信息位大小,P为CAN总线时钟同步数据帧数据位大小,F为数据传输时钟周期。例如,CAN总线时钟同步数据帧辅助信息位为64位,CAN总线时钟同步数据帧数据位为64位,数据传输时钟周期F为1us,因此校准时间为128us。
各SOE模块接收并同步时钟,在收到IO通讯单元发出的时钟信息后,将自身的时钟校准为接收时钟。SOE模块中断接收到IO通讯单元发送的时钟同步数据帧。
步骤S1082,SOE模块计算周期偏差ΔT,当本周期偏差ΔT小于第一阈值时,继续等待获取下一时钟同步数据帧的周期偏差,并在两周期偏差连续小于第一阈值后更新SOE模块的时钟,其中ΔT=Δt1-Δt0,Δt1为校准后绝对时间tB与SOE模块自身维护的绝对时间之间的偏差,Δt0为上一周期的校准后绝对时间与SOE模块自身维护的绝对时间之间的偏差。
在一些具体实施例中,所述步骤S1082具体包括:
计算校准后的绝对时间tB与SOE模块自身维护的绝对时间之间的偏差Δt1。
计算本周期的时间偏差Δt1与上一周期时间偏差Δt0的同步偏差ΔT1,其中ΔT1=Δt1-Δt0。
检查相邻时钟同步周期内的同步偏差ΔT1是否小于第一阈值,如小于则执行下一步骤,如果大于则重新执行进行步骤S1081。
SOE模块再次获取下一时钟同步数据帧,计算校准后的绝对时间与SOE模块自身维护的绝对时间之间的偏差Δt2,计算时间偏差Δt2与上一周期时间偏差Δt1的同步偏差ΔT2,其中ΔT2=Δt2-Δt1。
检查相邻时钟同步周期内的同步偏差ΔT2是否小于第一阈值,如小于则更新SOE模块的时钟。
上述实施例通过相邻同步偏差的比对,滤除了非法的时钟同步信号,使得SOE模块总是同步正确的时钟。更进一步的,在接收时钟同步数据帧合法性判断上,可以通过更多次的同步偏差比对,在连续多次的相邻偏差满足时钟同步精度要求下才认为是合法时间。更进一步的,对于IO通讯总线上的时钟同步数据帧,还包含了通讯校验码,如CRC16校验码,只有通讯校验通过的数据,才会被SOE模块接收。
在另一些实施例中,还公开了一种时钟同步装置,设置于控制器中,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述各实施例所述的用于工业自动化系统的时钟同步方法的步骤。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述服务器中的执行过程。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述服务器设备的控制中心,利用各种接口和线路连接整个服务器设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述服务器设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述用于工业自动化系统的时钟同步方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。
Claims (10)
1.一种基于CAN总线的时钟同步系统,其特征在于,包括控制器、IO通讯模块和多个SOE模块,其中IO通讯模块通过以太网与控制器连接,各SOE模块均通过多条CAN总线与IO通讯模块连接;
所述IO通讯模块被配置为周期性查询各CAN总线是否存在空闲,若无空闲CAN总线则等待下一周期,否则根据当前IO通讯模块的绝对时间生成时钟同步数据帧,并向选定的空闲CAN总线发送所述时钟同步数据帧;
所述SOE模块被配置为根据接收的时钟同步数据帧解析得到校准时间,对校准时间有效性进行判断并在校准时间被判断为有效时更新所述SOE模块的时钟。
2.根据权利要求1所述的基于CAN总线的时钟同步系统,其特征在于:
所述SOE模块具体被配置为根据接收的时钟同步数据帧解析得到校准时间tA,根据CAN总线的时钟周期对接收到的时钟同步数据帧进行校准并获得校准时间tB,并计算获取周期偏差ΔT,当本周期偏差ΔT小于第一阈值时,继续等待获取下一时钟同步数据帧的周期偏差,并在两周期偏差连续小于第一阈值后更新SOE模块的时钟;
其中ΔT=Δt1-Δt0,Δt1为校准后绝对时间tB与SOE模块自身维护的绝对时间之间的偏差,Δt0为上一周期的校准后绝对时间与SOE模块自身维护的绝对时间之间的偏差,校准时间tB=tA+(M+P)*F,M为CAN总线时钟同步数据帧辅助信息位大小,P为CAN总线时钟同步数据帧数据位大小,F为数据传输时钟周期。
3.根据权利要求2所述的基于CAN总线的时钟同步系统,其特征在于:
所述IO通讯模块被配置为周期性查询各CAN总线是否存在空闲,如果存在空闲CAN总线,则获取当前IO通讯模块的经控制器和秒脉冲校准后的0.1ms或更高分辨率的绝对时间,通过获取绝对时间生成时钟同步数据帧后发送至选定的空闲CAN总线,并清空时钟同步标志。
4.根据权利要求3所述的基于CAN总线的时钟同步系统,其特征在于:所述IO通讯模块被配置为根据接收到的秒脉冲信号对自身绝对时间进行校准,判断绝对时间中的秒以下值是否大于阈值,若不大于阈值则将秒以下的值清零,否则递增一秒后获得取整后的时间作为校准的绝对时间。
5.根据权利要求4所述的基于CAN总线的时钟同步系统,其特征在于:所述IO通讯模块被配置为将生成的时钟同步数据帧的地址位设置为最低。
6.根据权利要求5所述的基于CAN总线的时钟同步系统,其特征在于:还包括授时服务器和时钟服务器,所述授时服务器包括主授时模块和秒脉冲模块,多个控制器通过以太网分别与主授时模块和时钟服务器连接并通过总线与秒脉冲模块连接,其中各控制器具有唯一的站号;
所述控制器被配置为通过总线监听秒脉冲模块或其它控制器发送的秒脉冲信号并计算秒脉冲超时时间,当所述秒脉冲超时时间超过本控制器的最大超时时间Tmax时,向总线发出秒脉冲源启动信号并切换为第一工作状态;并在监听到其它控制器发送的秒脉冲源启动信号或秒脉冲模块发送的秒脉冲信号后,将第一工作状态切换至第二工作状态;其中最大超时时间Tmax=Tmin+S*N,Tmin为基础超时时间,S为预设的时间间隔,N为各控制器站号;所述第一工作状态为本控制器作为秒脉冲源和临时授时模块,向总线发送秒脉冲信号、和向以太网发送包含本控制器地址的广播时钟报文,并根据接收到的校准请求报文向处于第二工作状态的对应控制器发送包含时间的应答报文;所述第二工作状态为根据以太网上的广播时钟报文中的地址周期性向主授时模块或临时授时模块发送校准请求报文。
7.一种基于CAN总线的时钟同步方法,用于如权利要求1-6任一所述的时钟同步系统,其特征在于,包括如下步骤:
S1,IO通讯模块周期性查询各CAN总线是否存在空闲,若无空闲CAN总线则等待下一周期,否则根据当前IO通讯模块的绝对时间生成时钟同步数据帧,并向选定的空闲CAN总线发送所述时钟同步数据帧;
S2,SOE模块根据接收的时钟同步数据帧解析得到校准时间,对校准时间有效性进行判断并在校准时间被判断为有效时更新所述SOE模块的时钟。
8.根据权利要求7所述的基于CAN总线的时钟同步方法,其特征在于,所述步骤S2具体包括:
S21,SOE模块对收到的IO通讯模块发送的时钟同步数据帧进行解析,获得绝对时间tA,根据CAN总线时钟周期对接收到的时钟同步数据帧进行校准并获得校准时间tB,其中tB=tA+(M+P)*F,M为CAN总线时钟同步数据帧辅助信息位大小,P为CAN总线时钟同步数据帧数据位大小,F为数据传输时钟周期;
S22,SOE模块计算周期偏差ΔT,当本周期偏差ΔT小于第一阈值时,继续等待获取下一时钟同步数据帧的周期偏差,并在两周期偏差连续小于第一阈值后更新SOE模块的时钟,其中ΔT=Δt1-Δt0,Δt1为校准后绝对时间tB与SOE模块自身维护的绝对时间之间的偏差,Δt0为上一周期的校准后绝对时间与SOE模块自身维护的绝对时间之间的偏差;
S23,当本周期偏差ΔT不小于第一阈值时,则不更新SOE模块时钟。
9.根据权利要求8所述的基于CAN总线的时钟同步方法,其特征在于,所述步骤S22具体包括:
S221,计算校准后的绝对时间tB与SOE模块自身维护的绝对时间之间的偏差Δt1;
S222,计算本周期的时间偏差Δt1与上一周期时间偏差Δt0的同步偏差ΔT1,其中ΔT1=Δt1-Δt0;
S223,检查相邻时钟同步周期内的同步偏差ΔT1是否小于第一阈值,如小于则执行下一步骤,如果大于则重新执行进行步骤S21;
S224,SOE模块再次获取下一时钟同步数据帧,计算校准后的绝对时间与SOE模块自身维护的绝对时间之间的偏差Δt2,计算时间偏差Δt2与上一周期时间偏差Δt1的同步偏差ΔT2,其中ΔT2=Δt2-Δt1;
S225,检查相邻时钟同步周期内的同步偏差ΔT2是否小于第一阈值,如小于则更新SOE模块的时钟。
10.一种时钟同步装置,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现如权利要求7-9任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110417534.4A CN113225151B (zh) | 2021-04-19 | 2021-04-19 | 一种基于can总线的时钟同步系统、方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110417534.4A CN113225151B (zh) | 2021-04-19 | 2021-04-19 | 一种基于can总线的时钟同步系统、方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113225151A true CN113225151A (zh) | 2021-08-06 |
CN113225151B CN113225151B (zh) | 2023-08-25 |
Family
ID=77087868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110417534.4A Active CN113225151B (zh) | 2021-04-19 | 2021-04-19 | 一种基于can总线的时钟同步系统、方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113225151B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114120662A (zh) * | 2021-12-03 | 2022-03-01 | 江苏航天大为科技股份有限公司 | 一种基于串口总线的智能信号灯同步控制系统及方法 |
CN114422287A (zh) * | 2021-12-09 | 2022-04-29 | 福建星云电子股份有限公司 | 一种微秒级充放电同步控制方法及系统 |
CN114554515A (zh) * | 2022-04-21 | 2022-05-27 | 广州世炬网络科技有限公司 | 一种5g基站时间同步的判断方法及装置 |
CN117714228A (zh) * | 2024-02-06 | 2024-03-15 | 长春晟博光学技术开发有限公司 | 一种定日镜控制器基于Autbus通讯方式的控制方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008101394A1 (fr) * | 2007-02-13 | 2008-08-28 | Shan Dong University | Procédé synchrone en temps réel et réseau synchrone reposant sur le standard ethernet |
WO2010139504A1 (de) * | 2009-06-02 | 2010-12-09 | Robert Bosch Gmbh | Verfahren zum betreiben eines datenübertragungssystems, datenübertragungssystem und computerprogrammprodukt |
CN105049146A (zh) * | 2015-06-25 | 2015-11-11 | 南京南瑞集团公司 | 大型plc系统的精确时钟同步与对时方法 |
CN105450323A (zh) * | 2015-11-11 | 2016-03-30 | 杭州和利时自动化有限公司 | 一种soe时间同步控制方法及系统 |
CN109976216A (zh) * | 2019-03-29 | 2019-07-05 | 浙江理工大学 | 一种can总线控制器及控制方法 |
CN111030909A (zh) * | 2020-03-03 | 2020-04-17 | 南京科远智慧科技集团股份有限公司 | 一种应用于can总线多主设备通讯间时间同步的方法 |
CN111106987A (zh) * | 2019-11-27 | 2020-05-05 | 珠海广通汽车有限公司 | 一种can报文发送方法、装置、存储介质及电子设备 |
CN111708296A (zh) * | 2020-06-16 | 2020-09-25 | 山东省计算中心(国家超级计算济南中心) | 一种基于双通道安全plc的同步控制及数据表决方法 |
-
2021
- 2021-04-19 CN CN202110417534.4A patent/CN113225151B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008101394A1 (fr) * | 2007-02-13 | 2008-08-28 | Shan Dong University | Procédé synchrone en temps réel et réseau synchrone reposant sur le standard ethernet |
WO2010139504A1 (de) * | 2009-06-02 | 2010-12-09 | Robert Bosch Gmbh | Verfahren zum betreiben eines datenübertragungssystems, datenübertragungssystem und computerprogrammprodukt |
CN105049146A (zh) * | 2015-06-25 | 2015-11-11 | 南京南瑞集团公司 | 大型plc系统的精确时钟同步与对时方法 |
CN105450323A (zh) * | 2015-11-11 | 2016-03-30 | 杭州和利时自动化有限公司 | 一种soe时间同步控制方法及系统 |
CN109976216A (zh) * | 2019-03-29 | 2019-07-05 | 浙江理工大学 | 一种can总线控制器及控制方法 |
CN111106987A (zh) * | 2019-11-27 | 2020-05-05 | 珠海广通汽车有限公司 | 一种can报文发送方法、装置、存储介质及电子设备 |
CN111030909A (zh) * | 2020-03-03 | 2020-04-17 | 南京科远智慧科技集团股份有限公司 | 一种应用于can总线多主设备通讯间时间同步的方法 |
CN111708296A (zh) * | 2020-06-16 | 2020-09-25 | 山东省计算中心(国家超级计算济南中心) | 一种基于双通道安全plc的同步控制及数据表决方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114120662A (zh) * | 2021-12-03 | 2022-03-01 | 江苏航天大为科技股份有限公司 | 一种基于串口总线的智能信号灯同步控制系统及方法 |
CN114120662B (zh) * | 2021-12-03 | 2022-09-02 | 江苏航天大为科技股份有限公司 | 一种基于串口总线的智能信号灯同步控制系统及方法 |
CN114422287A (zh) * | 2021-12-09 | 2022-04-29 | 福建星云电子股份有限公司 | 一种微秒级充放电同步控制方法及系统 |
CN114554515A (zh) * | 2022-04-21 | 2022-05-27 | 广州世炬网络科技有限公司 | 一种5g基站时间同步的判断方法及装置 |
CN117714228A (zh) * | 2024-02-06 | 2024-03-15 | 长春晟博光学技术开发有限公司 | 一种定日镜控制器基于Autbus通讯方式的控制方法 |
CN117714228B (zh) * | 2024-02-06 | 2024-04-26 | 长春晟博光学技术开发有限公司 | 一种定日镜控制器基于Autbus通讯方式的控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113225151B (zh) | 2023-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113225151B (zh) | 一种基于can总线的时钟同步系统、方法和装置 | |
US7649912B2 (en) | Time synchronization, deterministic data delivery and redundancy for cascaded nodes on full duplex ethernet networks | |
CN111264039B (zh) | 用于识别以太网消息的有错误的时间戳的方法和用于机动车的控制单元 | |
JP6523497B1 (ja) | マスタ制御装置およびこれを用いた同期通信システム | |
US8295267B2 (en) | Clock synchronization system, method, and apparatus for communication | |
EP0722233A2 (en) | Timing in a data communications network | |
EP2222003B1 (en) | Field control system | |
EP3026515B1 (en) | Programmable controller system | |
JP2001251329A (ja) | データ交換方法及びその装置 | |
EP1573560A1 (en) | Schematizing of messages in distributed control and supervision system | |
JP2004536538A (ja) | 分散型システムのクロック同期 | |
KR101636496B1 (ko) | 신호 동기 시스템, 노드 동기 시스템, 신호 동기 방법, 및 노드 동기 방법 | |
CN112887133B (zh) | 一种用于工业网关的冗余切换方法、工业网关和存储介质 | |
CN112821980B (zh) | 一种用于工业自动化系统的时钟同步系统、方法和装置 | |
US7848361B2 (en) | Time-triggered communication system and method for the synchronization of a dual-channel network | |
JP4241343B2 (ja) | 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム | |
CN101394264A (zh) | 周期性报文传递的监控方法及装置 | |
JP2012178770A (ja) | 時刻同期システム | |
US20020095612A1 (en) | Method and system for synchronizing users of a communications link | |
JP4662842B2 (ja) | 時刻補正システム | |
CN111726190B (zh) | 用于路灯控制系统的系统时间校准方法 | |
JP4127591B2 (ja) | ループ型データ伝送システム | |
JPS6363238A (ja) | ネツトワ−クシステムの時刻合わせ装置 | |
JP2006329759A (ja) | 監視制御システム | |
US20240028067A1 (en) | Time synchronization between a master and a slave in a network |
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 |