CN112821980B - 一种用于工业自动化系统的时钟同步系统、方法和装置 - Google Patents

一种用于工业自动化系统的时钟同步系统、方法和装置 Download PDF

Info

Publication number
CN112821980B
CN112821980B CN202110417381.3A CN202110417381A CN112821980B CN 112821980 B CN112821980 B CN 112821980B CN 202110417381 A CN202110417381 A CN 202110417381A CN 112821980 B CN112821980 B CN 112821980B
Authority
CN
China
Prior art keywords
pulse
controller
per
time
module
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
Application number
CN202110417381.3A
Other languages
English (en)
Other versions
CN112821980A (zh
Inventor
李华军
陈树立
温宜明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Kangjisen Automation Technology Co ltd
Original Assignee
Hangzhou Kangjisen Automation Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Kangjisen Automation Technology Co ltd filed Critical Hangzhou Kangjisen Automation Technology Co ltd
Priority to CN202110417381.3A priority Critical patent/CN112821980B/zh
Publication of CN112821980A publication Critical patent/CN112821980A/zh
Application granted granted Critical
Publication of CN112821980B publication Critical patent/CN112821980B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0641Change of the master or reference, e.g. take-over or failure of the master
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0644External master-clock

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Electric Clocks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种用于工业自动化系统的时钟同步系统、方法和装置,包括主授时模块、秒脉冲模块和多个控制器,其中各控制器具有唯一站号并通过以太网与主授时模块连接,通过总线与秒脉冲模块连接;所述控制器被配置为通过总线监听秒脉冲模块或其它控制器发送的秒脉冲信号并计算秒脉冲超时时间,当所述秒脉冲超时时间超过本控制器的最大超时时间Tmax时,向总线发出秒脉冲源启动信号并切换为第一工作状态;并在监听到其它控制器发送的秒脉冲源启动信号或秒脉冲模块发送的秒脉冲信号后,将第一工作状态切换至第二工作状态。使得在秒脉冲模块故障的情况下,能选择其中的一控制器作为系统临时的秒脉冲源和临时授时模块,使整个系统仍可以正常运行。

Description

一种用于工业自动化系统的时钟同步系统、方法和装置
技术领域
本发明涉及工业自动化控制领域,尤其涉及一种用于工业自动化系统的时钟同步系统、方法和装置。
背景技术
在工业自动化领域,时钟同步是自动化控制系统中进行数据交换和任务调度的关键技术之一,时钟同步技术可以提供某一事件发生时间上的先后顺序,以保证控制节点在执行发送和接受消息、控制、事故记录等动作时的时间逻辑上的准确性。例如控制器中包含用于记录现场开关设备动作先后顺序的SOE模块,为了使控制器内各SOE模块记录的开关动作事件具有可比性,需要对控制器内的SOE模块实现毫秒级的时钟同步。
现有技术中多采用授时模块与秒脉冲结合的方式对控制系统中的多个设备如控制器、I/O通信单元、网关校准。由授时模块及秒脉冲模块构成同步系统,可以有效提高校准的精度,一般秒脉冲模块与授时模块采用同一时钟源,秒脉冲模块采用RS485总线向控制器发送秒脉冲信号,授时模块通过以太网与控制器和时钟服务器连接,系统初始时,时钟服务器内设有授时模块的地址,工作时授时模块通过以太网向挂接在该网络上的设备发送广播时钟报文,所述设备可以为控制器等,广播时钟报文包括当前工作的授时模块的地址,控制器或者网关等接收到授时模块地址后,周期性向授时模块发送校准请求报文,则授时模块向控制器或网关发送包含时间的应答报文。但如果同步系统的秒脉冲模块信号故障,仅使用授时模块校准,校准误差较大,不能满足工业控制系统时间精度需求,将导致控制器无法正常工作。
发明内容
本发明针对现有技术中的不足,提供了一种用于工业自动化系统的时钟同步系统,包括授时服务器、时钟服务器和多个控制器,所述授时服务器包括主授时模块和秒脉冲模块,所述控制器通过以太网分别与主授时模块和时钟服务器连接并通过总线与秒脉冲模块连接,其中:主授时模块,被配置为根据接收到的校准请求报文通过以太网向对应控制器发送包含时间的应答报文;秒脉冲模块,被配置为通过总线向各控制器发送秒脉冲信号;时钟服务器,通过以太网向挂接在该网络上的控制器发送包括授时服务器地址的广播时钟报文;多个控制器,各控制器具有唯一的站号,所述控制器被配置为通过总线监听秒脉冲模块或其它控制器发送的秒脉冲信号并计算秒脉冲超时时间,当所述秒脉冲超时时间超过本控制器的最大超时时间Tmax时,向总线发出秒脉冲源启动信号并切换为第一工作状态;并在监听到其它控制器发送的秒脉冲源启动信号或秒脉冲模块发送的秒脉冲信号后,将第一工作状态切换至第二工作状态;其中最大超时时间Tmax=Tmin+S*N,Tmin为基础超时时间,S为预设的时间间隔,N为各控制器站号;所述第一工作状态为本控制器作为秒脉冲源和临时授时模块,向总线发送秒脉冲信号、和向以太网发送包含本控制器地址的广播时钟报文,并根据接收到的校准请求报文向处于第二工作状态的对应控制器发送包含时间的应答报文;所述第二工作状态为根据以太网上的广播时钟报文中的地址周期性向主授时模块或临时授时模块发送校准请求报文。
优选的,所述控制器被配置为在监听到总线上由其它控制器发出的启动脉冲源信号后,将本站的秒脉冲超时时间清零,并向收到的广播时钟报文内的临时授时模块地址周期性的发送校准请求报文。
优选的,所述时钟服务器被配置为在监听到以太网上由处于第一工作状态的控制器发送的广播时钟报文后,停止向以太网上发送包含所述主授时模块地址的广播时钟报文。
优选的,处于第一工作状态的控制器在一次或多次接收到总线上的秒脉冲模块发送的秒脉冲信号后,将本控制器的秒脉冲超时时间清零并关闭本控制器内部的秒脉冲源及时钟服务器,将第一工作状态切换至第二工作状态。
优选的,所述控制器站号N为该控制器的IP地址的最低字节的一半,所述时间间隔S大于1秒。
优选的,所述秒脉冲源启动信号为非整秒发出的一个或多个连续脉冲。
优选的,用于工业自动化系统的时钟同步系统还包括IO通讯模块和多个SOE模块,其中IO通讯模块通过以太网与控制器连接并通过总线与秒脉冲模块连接,每个SOE模块均通过多条CAN总线与IO通讯模块连接;所述SOE模块被配置为在收到IO通讯模块发出的时钟同步数据帧后,解析得到绝对时间tA,根据CAN总线时钟周期对接收到的时钟同步数据帧进行校准获得校准时间tB,计算获取周期偏差ΔT,当本周期偏差ΔT小于第一阈值时,继续等待获取下一时钟同步数据帧的周期偏差,并在两周期偏差连续小于第一阈值后更新SOE模块的时钟;其中ΔT=Δt1-Δt0,Δt1为校准后绝对时间tB与SOE模块自身维护的绝对时间之间的偏差,Δt0为上一周期的校准后绝对时间与SOE模块自身维护的绝对时间之间的偏差,校准时间tB=tA+(M+P)*F,M为CAN总线时钟同步数据帧辅助信息位大小,P为CAN总线时钟同步数据帧数据位大小,F为数据传输时钟周期。
本发明还公开了一种用于工业自动化系统的时钟同步方法,所述工业自动化系统包括通过以太网分别与时钟服务器和授时服务器的主授时模块连接、并通过总线与授时服务器的秒脉冲模块连接的多个控制器,该方法包括如下步骤:
S1,第一控制器的收发器通过总线监听秒脉冲模块或其它控制器发送的秒脉冲信号,获取秒脉冲超时时间;
S2,当第一控制器的秒脉冲超时时间超过本控制器的最大超时时间Tmax时,第一控制器向总线发出秒脉冲源启动信号,所述秒脉冲源启动信号为非整秒发出的一个或多个连续脉冲,其中各控制器的最大超时时间Tmax=Tmin+S*N,Tmin为基础超时时间,S为预设的时间间隔,N为各控制器对应的唯一站号;
S3,第一控制器在发送秒脉冲源启动信号后切换为第一工作状态,向总线发送秒脉冲信号、和向以太网发送包含本控制器地址的广播时钟报文,并根据接收到的校准请求报文向处于第二工作状态的对应控制器发送包含时间的应答报文,所述第一工作状态为本控制器作为秒脉冲源和临时授时模块;
S4,第二控制器在收到启动脉冲源信号后,将本站的秒脉冲超时时间清零,并根据收到的广播时钟报文周期性向第一控制器发送校准请求报文。
优选的,该用于工业自动化系统的时钟同步方法还包括步骤:
S5,时钟服务器在监听到以太网上由第一控制器发送的广播时钟报文后,停止向以太网发送包含所述主授时模块地址的广播时钟报文;
S6,第一控制器在监听到总线上由其它控制器发送的秒脉冲源启动信号、或由秒脉冲模块重新发送的秒脉冲信号后,将第一工作状态切换至第二工作状态,所述第二工作状态为根据以太网上的广播时钟报文中地址周期性向主授时模块或临时授时模块发送校准请求报文。
本发明还公开了一种时钟同步装置,设置于控制器中,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述用于工业自动化系统的时钟同步方法的步骤。
本发明公开的用于工业自动化系统的时钟同步系统、方法和装置,为每个控制器设置唯一站号和秒脉冲最大超时时间,在外部时钟源故障的情况下,通过判断各控制器的秒脉冲超时时间是否超过其最大超时时间来及时选择其中的一控制器作为系统的临时的秒脉冲源和临时授时模块,使整个系统可以正常运行,同时秒脉冲源和授时模块采用同一时钟源,能够进一步提高时间的校准精度,为挂接在总线和以太网上的设备与绝对时钟对时。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明一实施例公开的用于工业自动化系统的时钟同步系统的结构示意图。
图2为本发明另一实施例公开的用于工业自动化系统的时钟同步系统的结构示意图。
图3为本发明一实施例公开的用于工业自动化系统的时钟同步方法的流程示意图。
图4为本发明另一实施例公开的用于工业自动化系统的时钟同步方法的部分流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征之“上”或之“下”可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征“之上”、“上方”和“上面”包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”包括第一特征在第二特征正下方和斜下方,或仅仅表示第一特征水平高度小于第二特征。
除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明专利申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。
附图1为本实施例公开了一种用于工业自动化系统的时钟同步系统,包括授时服务器1、时钟服务器2和多个控制器3,所述授时服务器1包括主授时模块12和秒脉冲模块11,所述控制器3通过以太网6分别与主授时模块12和时钟服务器2连接、并通过总线7与秒脉冲模块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。
本实施例公开的时钟同步系统为每个控制器设置唯一站号和秒脉冲最大超时时间,在外部时钟源故障的情况下,通过判断各控制器的秒脉冲超时时间是否超过其最大超时时间来及时选择其中的一控制器作为系统的临时的秒脉冲源和临时授时模块,使整个系统可以正常运行,同时秒脉冲源和授时模块采用同一时钟源,能够进一步提高时间的校准精度,为挂接在总线和以太网上的设备与绝对时钟对时。
附图2为实施例公开的另一种用于工业自动化系统的时钟同步系统,还包括IO通讯模块4和多个SOE模块5,其中IO通讯模块4通过以太网6与控制器3连接、并通过总线7与授时服务器1的秒脉冲模块11连接,其中总线可以选用RS485总线,通过总线用于传输秒脉冲信号,以太网用于传输包含有实时时间的应答报文和广播时钟报文,每个SOE模块均通过多条CAN总线8与IO通讯模块连接。IO通讯模块通过以太网向控制器发送校准请求报文,控制器将校准后的时间以应答报文形式发送给该控制器所连接的IO通讯模块,且IO通讯模块通过总线接收秒脉冲模块的秒脉冲,IO通讯模块通过接收到的实时时间与秒脉冲信号,校准自身时间,具体校准方式与控制器校准方式相同。
为了使各SOE模块记录的开关动作事件具有可比性,需要对SOE模块实现毫秒级的时钟同步。因此其中SOE模块被配置为在收到IO通讯模块发出的时钟同步数据帧后,解析得到绝对时间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;时钟同步周期到,则置请求时钟同步标志。
如果时钟同步周期到,则进一步判断当前CAN总线是否空闲。本例中,CAN总线为冗余总线,查询空闲时,首先查询第一CAN总线是否空闲;如果第一CAN总线空闲则选用第一CAN总线;否则进一步查询第二CAN总线是否空闲,如空闲则选用第二CAN总线。如果其中一CAN总线空闲,则获取当前IO通讯单元0.1ms或更高分辨率的绝对时间;IO通讯单元的绝对时间是通过控制器及秒脉冲校准获得的,然后使用获得的绝对时间生成时钟同步数据帧,最后将时钟同步数据帧发送至选定的空闲总线,并清空时钟同步标志,表征本周期时钟同步完成。
其中,如果第一CAN总线和第二CAN总线均无空闲,则IO通讯单元结束本次同步过程。下一个查询周期到后,继续检查总线空闲状态,并在总线空闲时重新准备当前时刻的时钟同步数据帧,并广播至其中一个CAN总线。每个时钟同步周期内,包含多个查询周期,例如本实施例中具有20个。因此,即使某一次两条总线均无空闲,后续还有多次广播时钟同步数据帧机会。
本实施例还通过优先级设计使得在总线检测环节检测空闲,解决多节点同时发送造成的时钟同步数据帧发送异常问题。对于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模块接收。本实施例通过相邻同步偏差的比对,滤除了非法的时钟同步信号,使得SOE模块总是同步正确的时钟。
附图3为另一实施例公开的一种用于工业自动化系统的时钟同步方法,其中工业自动化系统包括通过以太网分别与时钟服务器和授时服务器的主授时模块连接、并通过总线与授时服务器的秒脉冲模块连接的多个控制器,其中各控制器具有唯一的站号。该时钟同步方法包括如下步骤:
步骤S1,第一控制器的收发器通过总线监听秒脉冲模块或其它控制器发送的秒脉冲信号,获取秒脉冲超时时间。
具体的,为描述方便,将多个控制器命名为第一控制器、第二控制器等,其中各控制器都通过总线监听秒脉冲模块或其它控制器发送的秒脉冲信号并计算秒脉冲超时时间。这些挂接在总线上的控制器具有将其自身作为秒脉冲信号源及授时模块的功能。在控制器所连接的外部主授时模块及外部秒脉冲源工作正常时,控制器的收发器均为接收状态。控制器监视秒脉冲超时时间,控制器接收到外部秒脉冲信号后,秒脉冲超时时间立即清零。其中,秒脉冲超时时间通过计时器计时,控制器接收到秒脉冲信号后,秒脉冲超时时间的计数值立即清零,其中秒脉冲信号可以来自外部的秒脉冲模块,也可以是来自总线上的其他控制器的秒脉冲源。
步骤S2,当第一控制器的秒脉冲超时时间超过本控制器的最大超时时间Tmax时,第一控制器向总线发出秒脉冲源启动信号,所述秒脉冲源启动信号为非整秒发出的一个或多个连续脉冲,其中各控制器的最大超时时间Tmax=Tmin+S*N,Tmin为基础超时时间,S为预设的时间间隔,N为各控制器对应的唯一站号。
当第一控制器收到的秒脉冲信号的秒脉冲超时时间超过了该控制器所设定的最大超时时间,则该控制器判断外部的秒脉冲模块或其他处于第一工作状态的控制器的秒脉冲源发生故障,则本控制器中的收发器切换至发送状态,发出秒脉冲源启动信号,通知系统中其他控制器已经存在一个控制器将启用秒脉冲源功能,其他控制器也就不会成为秒脉冲信号源。当该控制器脉冲发送完成后,立即切换为接收状态。
其中,秒脉冲源启动信号为非整秒发出的一个或多个连续脉冲。具体的,该脉冲源启动信号包括一个或一个以上的连续脉冲,为了避免其他控制器将脉冲源启动信号与秒脉冲信号混淆,脉冲源启动信号中的脉冲信号为非整秒发出,且两个脉冲之间的时间间隔较短。
在本实施例的时钟同步系统中,采用特定的备用秒脉冲源分配机制,即系统中设有一个或多个控制器,当存在多个控制器时,不同的控制器具有不同的最大超时时间Tmax,所述最大超时时间Tmax具体为:Tmax=基础超时时间+时间间隔*站号。在一些具体实施例中,控制器站号N为该控制器的IP地址的最低字节的一半,所述时间间隔S大于1秒。具体的,各控制器的站号可以设置为该控制器的IP地址的最低字节/2,而时间间隔应大于1秒,根据最大超时时间的计算方法,在各控制器与同一外部秒脉冲连接的情况下,若秒脉冲故障,则可知最后应为IP地址最低的控制器作为秒脉冲源。
在一控制器处于第一工作状态,向总线上其它控制器提供秒脉冲信号,如果以太网上的授时服务仍继续采用外部主授时模块的情况下,则秒脉冲信号与时钟信号可能来自不同的时钟源,影响时间的校准精度,因此控制器在提供秒脉冲源的同时,向以太网上发送广播时钟报文,通知以太网上所连接的设备包括时钟服务器,该控制器将要作为临时授时模块。
步骤S3,第一控制器在发送秒脉冲源启动信号后切换为第一工作状态,向总线发送秒脉冲信号、和向以太网发送包含本控制器地址的广播时钟报文,并根据接收到的校准请求报文向处于第二工作状态的对应控制器发送包含时间的应答报文,所述第一工作状态为本控制器作为秒脉冲源和临时授时模块。广播时钟报文内容包括第一控制器地址,通知以太网上的设备,本控制器升级作为授时模块。其中各控制器可在第一工作状态和第二工作状态间切换,其中第一工作状态为本控制器作为秒脉冲源和临时授时模块,向总线发送秒脉冲信号且向以太网发送包含本控制器地址的广播时钟报文;所述第二工作状态为根据以太网上的报文地址周期性向主授时模块或临时授时模块发送校准请求报文。
步骤S4,第二控制器在收到启动脉冲源信号后,将本站的秒脉冲超时时间清零,并根据收到的广播时钟报文周期性向第一控制器发送校准请求报文。即其他的具有秒脉冲源功能的控制器在接收到第一控制器的启动脉冲源信号后,退出升源即备用秒脉冲源分配。
如附图4所示,在一些优选实施例中,该用于工业自动化系统的时钟同步方法还包括如下步骤。
步骤S5,时钟服务器在监听到以太网上由第一控制器发送的广播时钟报文后,停止向以太网发送包含所述主授时模块地址的广播时钟报文。
时钟服务器监听到以太网上的广播时钟报文,则禁止向以太网上发送包含主授时模块地址的广播时钟报文,其他设备接收到控制器所发送的广播时钟报文后,从报文中获取控制器的地址,并周期性的向该控制器发送校准请求报文,则控制器上的临时授时模块向控制器发送应答报文。
当各控制器的秒脉冲超时时间超出了基础超时时间,控制器则进入超时等待确认时钟源阶段,接收到的脉冲源启动信号不用于时钟校时,该脉冲源启动信号仅代表存在某一控制器将启用秒脉冲信号源功能,控制器在成为秒脉冲源的同时,也成为系统中的临时授时模块。
系统中某一控制器一旦确认为秒脉冲源后,只要该控制器正常工作,将持续作为秒脉冲源和临时授时模块。后加入的控制器,因为能够连续接收到控制器所发送的秒脉冲信号,因此即使该控制器站号更低,也不进行秒脉冲信号源和临时授时模块的切换。但是如果系统中存在秒脉冲模块并恢复正常工作,当作为秒脉冲源和临时授时模块的控制器接收到外部秒脉冲模块发送的秒脉冲信号后,该控制器将关闭秒脉冲源功能和临时授时模块功能,用于避免秒脉冲信号的叠加,由外部主授时模块作为时钟源来向各控制器提供时间。
第一控制器的秒脉冲信号超时时间在发出秒脉冲之后清零并重新开始计时,如果超时时间超过该控制器的最大超时时间,则停止向外输出秒脉冲信号。具体的,第一控制器升为秒脉冲源和临时授时模块之后,同样具有最大超时时间Tmax和基础超时时间Tmin,作为秒脉冲源的控制器的秒脉冲超时时间在发出秒脉冲之后清零并重新开始计时,如果秒脉冲超时时间超过该控制器的最大超时时间Tmax,则认为该控制器秒脉冲源故障,停止秒脉冲源向外输出脉冲秒脉冲信号,关闭该控制器的秒脉冲源和临时授时模块功能,由其他秒脉冲源提供秒脉冲信号。
如果系统中的第二控制器的IP地址最低字节比作为秒脉冲源的第一控制器更低或者除了第一控制器,第二控制器的IP地址最低字节最低,则在第一控制器停止提供秒脉冲源之后,第二控制器判断其已经满足作为秒脉冲源的条件,向外输出秒脉冲信号。第一控制器收到第二控制器发送的秒脉冲启动信号后,关闭第一控制器的秒脉冲源和临时授时模块功能,由第二控制器提供秒脉冲信号。在处于第一工作状态的控制器重启、冗余切换后,将重新按上述备用秒脉冲源分配机制来选择进入第一工作状态的控制器,即选择一控制器开启秒脉冲源和临时授时模块功能。
步骤S6,第一控制器在监听到总线上其它控制器发送的秒脉冲源启动信号或秒脉冲模块重新发送的秒脉冲信号后,将第一工作状态切换至第二工作状态,所述第二工作状态为根据以太网上的报文地址周期性向主授时模块或临时授时模块发送校准请求报文。
第一控制器作为秒脉冲源和临时授时模块,正常发出秒脉冲信号至总线,发出广播时钟报文至以太网,第一控制器在发送完秒脉冲信号或广播时钟报文后,立即将收发器切换至接收状态。
秒脉冲模块恢复正常工作后,同样正常发出秒脉冲信号至总线。
第一控制器在连续多次接收到秒脉冲信号后,关闭自己内部的秒脉冲源和临时授时模块,由秒脉冲模块和主授时模块作为校准信号,同时秒脉冲超时时间清零。
具体的,第一控制器禁止自身的临时授时模块后,时钟服务器监听到目前以太网上没有广播时钟报文,则时钟服务器继续周期性向以太网发送包含有主授时模块地址的广播时钟报文,以太网上的设备从报文中获取到外部主授时模块地址后,周期性向主授时模块发送校准请求报文。
以太网上的控制器或其它设备接收到授时模块的时间信号后,首先对授时模块所发出的时钟信号有效性进行判断,计算一次或连续多次相邻校时时间偏差小于阈值判断为有效,并计算时间偏差的平均值作为校准的时间偏差。
本实施例公开的时钟同步方法为每个控制器设置唯一站号和秒脉冲最大超时时间,在外部时钟源故障的情况下,通过判断各控制器的秒脉冲超时时间是否超过其最大超时时间来及时选择其中的一控制器作为系统的临时的秒脉冲源和临时授时模块,使整个系统可以正常运行,同时秒脉冲源和授时模块采用同一时钟源,能够进一步提高时间的校准精度,为挂接在总线和以太网上的设备与绝对时钟对时。
IO通讯模块通过以太网向控制站发送校准请求报文,控制器将校准后的时间发送给该控制器所连接的IO通讯模块,且IO通讯模块通过总线接收秒脉冲源或者控制器的秒脉冲,IO通讯模块通过接收到的实时时间与秒脉冲信号,校准自身时间,具体校准方式与控制器校准方式相同。
在另一具体实施例中,用于工业自动化系统的时钟同步方法中的工业自动化系统还包括IO通讯模块和多个SOE模块,其中IO通讯模块与控制器连接,每个SOE模块均通过多条CAN总线与IO通讯模块连接。该时钟同步方法还包括:
步骤S7,IO通讯单元周期性向多条CAN总线空闲状态进行查询并向其中一空闲总线发送广播时钟同步数据帧。具体的,在本实施例中以每个SOE模块均通过两条CAN总线与IO通讯模块连接为例进行描述。IO通讯单元每秒向第一CAN网络或第二CAN网络广播时钟同步数据帧,该数据帧中包含了IO通讯单元的分辨率为0.1ms或更小分辨率的时钟信息,该步骤具体可包括如下步骤。
步骤S71,IO通讯单元周期性检查当前时钟同步周期是否到;例如可设置IO通讯单元检查周期为50ms,时钟同步周期为1000ms,即相邻两次时间同步间隔≥1000ms;时钟同步周期到,则置请求时钟同步标志。
步骤S72,如果时钟同步周期到,则进一步判断当前CAN总线是否空闲。本例中,CAN总线为冗余总线,查询空闲时,首先查询第一CAN总线是否空闲;如果第一CAN总线空闲则选用第一CAN总线;否则进一步查询第二CAN总线是否空闲,如空闲则选用第二CAN总线。
步骤S73,如果其中一CAN总线空闲,则获取当前IO通讯单元0.1ms或更高分辨率的绝对时间,IO通讯单元的绝对时间是通过控制器及秒脉冲校准获得的。
步骤S74,使用上一步骤获得的绝对时间生成时钟同步数据帧。
步骤S75,使用获得的绝对时间生成时钟同步数据帧,将时钟同步数据帧发送至选定的空闲总线,并清空时钟同步标志,表征本周期时钟同步完成。
其中,如果第一CAN总线和第二CAN总线均无空闲,则IO通讯单元结束本次同步过程。下一个查询周期到后,继续检查总线空闲状态,并在总线空闲时重新准备当前时刻的时钟同步数据帧,并广播至其中一个CAN总线。每个时钟同步周期内,包含多个查询周期,例如本实施例中具有20个。因此,即使某一次两条总线均无空闲,后续还有多次广播时钟同步数据帧机会。
本实施例还通过优先级设计使得在总线检测环节检测空闲,解决多节点同时发送造成的时钟同步数据帧发送异常问题。对于IO通讯总线,除了时钟同步数据帧,总线上还存在着大量的DCS过程数据帧。本实施例利用CAN总线的总线仲裁机制,通过将时钟同步数据帧的地址位设置为最低,使其为优先级设置为最高优先级,这样,即使IO通讯总线过于拥堵,IO通讯单元也能优先获得IO总线使用权,并正确的发出时钟同步数据帧。总线上的其余通讯节点,即使同时发出DCS过程数据帧,也因优先级较低,将避让停止发送。
步骤S8,各SOE模块接收并同步时钟,在收到IO通讯单元发出的时钟信息后,将自身的时钟校准为接收时钟,该步骤具体可包括如下内容。
步骤S81,SOE模块中断接收到IO通讯单元发送的时钟同步数据帧。
步骤S82,SOE模块接收到时钟同步数据帧后,解析得到绝对时间tA,根据CAN总线的时钟周期,再次对接收到的时钟同步数据帧进行校准,最终校准时间tB=tA+(M+P)*F,其中M为CAN总线时钟同步数据辅助信息位大小,P为CAN总线时钟同步数据帧数据位大小,F为数据传输时钟周期。例如,CAN总线时钟同步数据帧辅助信息位为64位,CAN总线时钟同步数据帧数据位为64位,数据传输时钟周期F为1us,因此校准时间为128us。
步骤S83,计算校准后的绝对时间与SOE模块自身维护的绝对时间之间的偏差Δt1。
步骤S84,计算时间偏差Δt1与上一周期时间偏差Δt0的偏差ΔT1。
步骤S85,检查相邻时钟同步周期内的同步偏差ΔT1是否满足时钟同步精度要求,本例中设定精度要求为1ms,如果满足则进行步骤S86,如果不满足则重新执行进行步骤S81。
步骤S86,SOE模块再次中断接收到IO通讯单元发送的时钟同步数据帧。
步骤S87,SOE模块接收到时钟同步数据帧后,解析得到绝对时间tA,根据CAN总线的时钟周期,再次对接收到的时钟同步数据帧进行校准获得校准时间。
步骤S88,计算校准后的绝对时间与SOE模块自身维护的绝对时间之间的偏差Δt2,计算时间偏差Δt2与上一周期时间偏差Δt1之偏差ΔT2。
步骤S89,检查相邻时钟同步周期内的同步偏差ΔT2是否满足时钟同步精度要求,如果满足时钟同步精度要求则用Δt0、Δ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.一种用于工业自动化系统的时钟同步系统,其特征在于,包括授时服务器、时钟服务器和多个控制器,所述授时服务器包括主授时模块和秒脉冲模块,所述控制器通过以太网分别与主授时模块和时钟服务器连接并通过总线与秒脉冲模块连接,其中:
主授时模块,被配置为根据接收到的校准请求报文通过以太网向对应控制器发送包含时间的应答报文;
秒脉冲模块,被配置为通过总线向各控制器发送秒脉冲信号;
时钟服务器,通过以太网向挂接在该网络上的控制器发送包括授时服务器地址的广播时钟报文;
多个控制器,各控制器具有唯一的站号,所述控制器被配置为通过总线监听秒脉冲模块或其它控制器发送的秒脉冲信号并计算秒脉冲超时时间,当所述秒脉冲超时时间超过本控制器的最大超时时间Tmax时,向总线发出秒脉冲源启动信号并切换为第一工作状态,所述秒脉冲源启动信号为非整秒发出的一个或多个连续脉冲;并在监听到其它控制器发送的秒脉冲源启动信号或秒脉冲模块发送的秒脉冲信号后,将第一工作状态切换至第二工作状态;
其中最大超时时间Tmax=Tmin+S*N,Tmin为基础超时时间,S为预设的时间间隔,N为各控制器站号;所述第一工作状态为本控制器作为秒脉冲源和临时授时模块,向总线发送秒脉冲信号、和向以太网发送包含本控制器地址的广播时钟报文,并根据接收到的校准请求报文向处于第二工作状态的对应控制器发送包含时间的应答报文;所述第二工作状态为根据以太网上的广播时钟报文中的地址周期性向主授时模块或临时授时模块发送校准请求报文。
2.根据权利要求1所述的用于工业自动化系统的时钟同步的系统,其特征在于:所述控制器被配置为在监听到总线上由其它控制器发出的启动脉冲源信号后,将本站的秒脉冲超时时间清零,并向收到的广播时钟报文内的临时授时模块地址周期性的发送校准请求报文。
3.根据权利要求2所述的用于工业自动化系统的时钟同步的系统,其特征在于:所述时钟服务器被配置为在监听到以太网上由处于第一工作状态的控制器发送的广播时钟报文后,停止向以太网上发送包含所述主授时模块地址的广播时钟报文。
4.根据权利要求3所述的用于工业自动化系统的时钟同步的系统,其特征在于:处于第一工作状态的控制器在一次或多次接收到总线上的秒脉冲模块发送的秒脉冲信号后,将本控制器的秒脉冲超时时间清零并关闭本控制器内部的秒脉冲源及临时授时模块,将第一工作状态切换至第二工作状态。
5.根据权利要求4所述的用于工业自动化系统的时钟同步的系统,其特征在于:所述控制器站号N为该控制器的IP地址的最低字节的一半,所述时间间隔S大于1秒。
6.根据权利要求5所述的用于工业自动化系统的时钟同步的系统,其特征在于:所述秒脉冲源启动信号为非整秒发出的一个或多个连续脉冲。
7.根据权利要求6所述的用于工业自动化系统的时钟同步的系统,其特征在于:还包括IO通讯模块和多个SOE模块,其中IO通讯模块通过以太网与控制器连接并通过总线与秒脉冲模块连接,每个SOE模块均通过多条CAN总线与IO通讯模块连接;
所述SOE模块被配置为在收到IO通讯模块发出的时钟同步数据帧后,解析得到绝对时间tA,根据CAN总线时钟周期对接收到的时钟同步数据帧进行校准获得校准时间tB,计算获取周期偏差ΔT,当本周期偏差ΔT小于第一阈值时,继续等待获取下一时钟同步数据帧的周期偏差,并在两周期偏差连续小于第一阈值后更新SOE模块的时钟;
其中ΔT=Δt1-Δt0,Δt1为校准后绝对时间tB与SOE模块自身维护的绝对时间之间的偏差,Δt0为上一周期的校准后绝对时间与SOE模块自身维护的绝对时间之间的偏差,校准时间tB=tA+(M+P)*F,M为CAN总线时钟同步数据帧辅助信息位大小,P为CAN总线时钟同步数据帧数据位大小,F为数据传输时钟周期。
8.一种用于工业自动化系统的时钟同步方法,所述工业自动化系统包括通过以太网分别与时钟服务器和授时服务器的主授时模块连接、并通过总线与授时服务器的秒脉冲模块连接的多个控制器,其特征在于,包括如下步骤:
S1,第一控制器的收发器通过总线监听秒脉冲模块或其它控制器发送的秒脉冲信号,获取秒脉冲超时时间;
S2,当第一控制器的秒脉冲超时时间超过本控制器的最大超时时间Tmax时,第一控制器向总线发出秒脉冲源启动信号,所述秒脉冲源启动信号为非整秒发出的一个或多个连续脉冲,其中各控制器的最大超时时间Tmax=Tmin+S*N,Tmin为基础超时时间,S为预设的时间间隔,N为各控制器对应的唯一站号;
S3,第一控制器在发送秒脉冲源启动信号后切换为第一工作状态,向总线发送秒脉冲信号、和向以太网发送包含本控制器地址的广播时钟报文,并根据接收到的校准请求报文向处于第二工作状态的对应控制器发送包含时间的应答报文,所述第一工作状态为本控制器作为秒脉冲源和临时授时模块,所述第二工作状态为根据以太网上的广播时钟报文中的地址周期性向主授时模块或临时授时模块发送校准请求报文;
S4,第二控制器在收到启动脉冲源信号后,将本站的秒脉冲超时时间清零,并根据收到的广播时钟报文周期性向第一控制器发送校准请求报文。
9.根据权利要求8所述用于工业自动化系统的时钟同步方法,其特征在于,还包括步骤:
S5,时钟服务器在监听到以太网上由第一控制器发送的广播时钟报文后,停止向以太网发送包含所述主授时模块地址的广播时钟报文;
S6,第一控制器在监听到总线上由其它控制器发送的秒脉冲源启动信号、或由秒脉冲模块重新发送的秒脉冲信号后,将第一工作状态切换至第二工作状态,所述第二工作状态为根据以太网上的广播时钟报文中地址周期性向主授时模块或临时授时模块发送校准请求报文。
10.一种时钟同步装置,设置于控制器中,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现如权利要求8或9所述方法的步骤。
CN202110417381.3A 2021-04-19 2021-04-19 一种用于工业自动化系统的时钟同步系统、方法和装置 Active CN112821980B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110417381.3A CN112821980B (zh) 2021-04-19 2021-04-19 一种用于工业自动化系统的时钟同步系统、方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110417381.3A CN112821980B (zh) 2021-04-19 2021-04-19 一种用于工业自动化系统的时钟同步系统、方法和装置

Publications (2)

Publication Number Publication Date
CN112821980A CN112821980A (zh) 2021-05-18
CN112821980B true CN112821980B (zh) 2021-07-06

Family

ID=75863688

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110417381.3A Active CN112821980B (zh) 2021-04-19 2021-04-19 一种用于工业自动化系统的时钟同步系统、方法和装置

Country Status (1)

Country Link
CN (1) CN112821980B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114384793B (zh) * 2022-03-24 2022-06-07 成都万创科技股份有限公司 一种多智能设备的监控系统及其控制方法
CN116224755A (zh) * 2023-03-28 2023-06-06 深圳市锐明技术股份有限公司 一种时间校正方法、装置、设备及介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101895383B (zh) * 2010-07-07 2013-07-10 中国人民解放军国防科学技术大学 时钟外同步系统及其时钟同步方法
CN105068597B (zh) * 2015-07-23 2018-03-23 浙江中控技术股份有限公司 一种脉冲信号的冗余传输方法及系统
JP2019146014A (ja) * 2018-02-20 2019-08-29 日本電信電話株式会社 時刻同期システム及び時刻同期方法
CN110928176B (zh) * 2019-11-21 2021-11-30 北京计算机技术及应用研究所 一种支持多种授时技术的多功能授时设备
CN112383675B (zh) * 2020-11-16 2023-04-28 广东电网有限责任公司肇庆供电局 一种时间同步方法、装置及终端设备

Also Published As

Publication number Publication date
CN112821980A (zh) 2021-05-18

Similar Documents

Publication Publication Date Title
CN113225151B (zh) 一种基于can总线的时钟同步系统、方法和装置
CN112821980B (zh) 一种用于工业自动化系统的时钟同步系统、方法和装置
US7649912B2 (en) Time synchronization, deterministic data delivery and redundancy for cascaded nodes on full duplex ethernet networks
JP4284686B2 (ja) 時間トリガーおよびイベント・トリガー・イーサーネット・メッセージの伝送のための通信方法およびシステム
US7920587B2 (en) Method for establishing a global time base in a time-controlled communications system and communications system
CN112887133B (zh) 一种用于工业网关的冗余切换方法、工业网关和存储介质
JP6523497B1 (ja) マスタ制御装置およびこれを用いた同期通信システム
EP2222003B1 (en) Field control system
JP2017034671A (ja) データ伝送のタイムスタンプの妥当性を確認するための方法及び装置
CN111030909B (zh) 一种应用于can总线多主设备通讯间时间同步的方法
JPH05307424A (ja) 計算機網でのクロックタイム制御方法
CN101511042B (zh) 一种同步数据的方法及其装置
KR101894607B1 (ko) 이벤트 제어식 버스 통신에서 전역 시간 정보를 제공하기 위한 장치 및 방법
CN112650048B (zh) 一种工业网关冗余系统和控制方法
CN110519374B (zh) ZigBee网络化工业控制系统的边缘计算方法及其边缘节点
US20140050099A1 (en) Network Device and Method for Loop Detection
JP4241343B2 (ja) 送信タイミング決定方法、バス使用権の調停方法、ネットワークシステム、プログラム
CN110601945A (zh) 一种双冗余can总线通信系统和通信方法
US7848361B2 (en) Time-triggered communication system and method for the synchronization of a dual-channel network
JP2010004321A (ja) 時間同期システムおよび時間同期装置
CN105045224B (zh) 数据传输的方法和装置
CN115987999A (zh) 多机系统的主从竞争方法、装置、arm及存储介质
JP4247791B2 (ja) 複雑なまたは分散式の安全および/または非安全システムの最大反応時間の保証
JP4662842B2 (ja) 時刻補正システム
CN110380934B (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