一种时间同步方法及系统
技术领域
本发明涉及时间同步技术,尤其涉及一种适用于PLC、数据采集器及后台服务器三者之间的时间同步方法及系统。
背景技术
技术词解释:
NTP服务器:Network Time Protocol(NTP),即网络时间服务器。
工业数据的实时采集已经成为工业信息化的基础支撑。其中,对于工业数据的真实性和实时性也有了更高的要求。针对工业数据的采集实时性和真实性问题,现有技术采用了不同的方案来解决,但均存有不少的缺陷,例如:1、采用在PLC使用前先进行时间同步,将PLC时间与标准时间进行同步这一方案,但是这一方案具有较大的局限性,而且对PLC的修改较大,操作灵活性和便利性差;2、采用直接从PLC读取数据这一方案,但是由于PLC内部时间不一定准确,从而给结果带来一定不可靠性;3、采用在PLC使用过程中直接用数据采集器采集到的时间戳作为PLC时间这一方案,但是这一方案的可靠性较低,因为数据采集器往往无法实现实时处理数据,数据在数据采集器中有堆积,会造成处理滞后,无法真正实现实时数据采集。
发明内容
为了解决上述技术问题,本发明的目的是提供一种PLC、数据采集器及后台服务器三者之间的时间同步方法,可实时真实地进行数据采集,而且无需大修改PLC,实时性、真实性和操作便利性高。
本发明的另一目的是提供一种PLC、数据采集器及后台服务器三者之间的时间同步系统,可实时真实地进行数据采集,而且无需大修改PLC,实时性、真实性和操作便利性高。
本发明所采用的技术方案是:一种时间同步方法,该方法包括的步骤有:
将数据采集器和后台服务器均与NTP服务器进行时间同步;
数据采集器计算从NTP服务器上同步得到的网络标准时间与由PLC上传的时间戳数据之间的时间差值;
数据采集器将由PLC上传的时间戳数据加上时间差值,得到标准化后的PLC时间戳数据;
数据采集器将标准化后的PLC时间戳数据传输至后台服务器。
进一步,所述数据采集器将标准化后的PLC时间戳数据传输至后台服务器这一步骤,其具体包括:
数据采集器将标准化后的PLC时间戳数据与当前的网络标准时间对比,从而对标准化后的PLC时间戳数据进行校验;当校验通过时,则将标准化后的PLC时间戳数据传输至后台服务器;当校验不通过时,则返回执行所述将数据采集器和后台服务器均与NTP服务器进行时间同步这一步骤。
进一步,所述数据采集器将标准化后的PLC时间戳数据传输至后台服务器这一步骤,其具体包括:
判断PLC是否执行过重启操作,或者上一次将数据采集器和后台服务器均与NTP服务器进行时间同步的历史运行时间是否超过设定时间值,若是,则返回执行所述将数据采集器和后台服务器均与NTP服务器进行时间同步这一步骤;反之,则将标准化后的PLC时间戳数据与当前的网络标准时间对比,从而对标准化后的PLC时间戳数据进行校验;当校验通过时,则将标准化后的PLC时间戳数据传输至后台服务器;当校验不通过时,则返回执行所述将数据采集器和后台服务器均与NTP服务器进行时间同步这一步骤。
进一步,所述数据采集器计算从NTP服务器上同步得到的网络标准时间与由PLC上传的时间戳数据之间的时间差值这一步骤,其具体包括:
数据采集器将从NTP服务器上同步得到的网络标准时间进行标准数据格式的数据格式转换;
PLC将自身的时间戳数据以标准数据格式的形式发送至数据采集器;
数据采集器计算数据格式转换后的网络标准时间与由PLC上传的时间戳数据之间的时间差值。
本发明所采用的另一技术方案是:一种时间同步系统,该系统包括:
时间同步单元,用于将数据采集器和后台服务器均与NTP服务器进行时间同步;
计算单元,用于令数据采集器计算从NTP服务器上同步得到的网络标准时间与由PLC上传的时间戳数据之间的时间差值;
数据处理单元,用于令数据采集器将由PLC上传的时间戳数据加上时间差值,得到标准化后的PLC时间戳数据;
数据传输单元,用于令数据采集器将标准化后的PLC时间戳数据传输至后台服务器。
进一步,所述数据传输单元具体用于令数据采集器将标准化后的PLC时间戳数据与当前的网络标准时间对比,从而对标准化后的PLC时间戳数据进行校验;当校验通过时,则将标准化后的PLC时间戳数据传输至后台服务器;当校验不通过时,则返回执行时间同步单元所对应的数据处理流程。
进一步,所述数据传输单元具体用于判断PLC是否执行过重启操作,或者上一次将数据采集器和后台服务器均与NTP服务器进行时间同步的历史运行时间是否超过设定时间值,若是,则返回执行时间同步单元所对应的数据处理流程;反之,则将标准化后的PLC时间戳数据与当前的网络标准时间对比,从而对标准化后的PLC时间戳数据进行校验;当校验通过时,则将标准化后的PLC时间戳数据传输至后台服务器;当校验不通过时,则返回执行时间同步单元所对应的数据处理流程。
进一步,所述计算单元包括:
数据格式转换模块,用于令数据采集器将从NTP服务器上同步得到的网络标准时间进行标准数据格式的数据格式转换;
数据采集模块,用于令PLC将自身的时间戳数据以标准数据格式的形式发送至数据采集器;
计算模块,用于令数据采集器计算数据格式转换后的网络标准时间与由PLC上传的时间戳数据之间的时间差值。
本发明的有益效果是:通过使用本发明的方法,能够快速简易地实现PLC、数据采集器及后台服务器这三者的时间同步,从而能提高工业数据采集的真实性和实时性,而且本发明的时间同步方法是通过利用时间差值对PLC的时间戳数据进行标准化来实现的,因此能大大提高采集到的数据的正确性。另外,在实现本发明的时间同步方法时,无需改变PLC内部计时器或软件程序,因此,具有易于实现、操作简便性高等优点。
本发明的另一有益效果是:通过使用本发明的系统,能够快速简易地实现PLC、数据采集器及后台服务器这三者的时间同步,从而能提高工业数据采集的真实性和实时性,而且本发明的时间同步系统是通过利用时间差值对PLC的时间戳数据进行标准化来实现的,因此能大大提高采集到的数据的正确性。另外,在实现本发明的时间同步方法时,无需改变PLC内部计时器或软件程序,因此,具有易于实现、操作简便性高等优点。
附图说明
图1是本发明一种时间同步系统的结构框图;
图2是本发明一种时间同步系统所适用的系统结构框图;
图3是本发明一种时间同步方法的步骤流程图。
具体实施方式
本发明的方案应用于工业现场在用的PLC实时数据采集过程中。为了解决传统工业数据采集的真实性、实时性和准确性问题,本发明提供了一种针对于PLC、数据采集器及后台服务器三者之间的时间同步方法。其中,所述的PLC实质指的是现场PLC设备。
实施例1、一种时间同步系统
如图1所示,一种时间同步系统,该系统包括:
时间同步单元,用于将数据采集器和后台服务器均与NTP服务器进行时间同步;
计算单元,用于令数据采集器计算从NTP服务器上同步得到的网络标准时间与由PLC上传的时间戳数据之间的时间差值;
数据处理单元,用于令数据采集器将由PLC上传的时间戳数据加上时间差值,得到标准化后的PLC时间戳数据;
数据传输单元,用于令数据采集器将标准化后的PLC时间戳数据传输至后台服务器。可见,本发明时间同步系统所应用的系统结构如图2所示。
作为本系统实施例的优选实施方式,所述数据传输单元具体用于令数据采集器将标准化后的PLC时间戳数据与当前的网络标准时间对比,从而对标准化后的PLC时间戳数据进行校验;当校验通过时,则将标准化后的PLC时间戳数据传输至后台服务器;当校验不通过时,则返回执行时间同步单元所对应的数据处理流程。
作为本系统实施例的优选实施方式,所述数据传输单元具体用于判断PLC是否执行过重启操作,或者上一次将数据采集器和后台服务器均与NTP服务器进行时间同步的历史运行时间是否超过设定时间值,若是,则返回执行时间同步单元所对应的数据处理流程;反之,则将标准化后的PLC时间戳数据与当前的网络标准时间对比,从而对标准化后的PLC时间戳数据进行校验;当校验通过时,则将标准化后的PLC时间戳数据传输至后台服务器;当校验不通过时,则返回执行时间同步单元所对应的数据处理流程。
作为本系统实施例的优选实施方式,所述计算单元包括:
数据格式转换模块,用于令数据采集器将从NTP服务器上同步得到的网络标准时间进行标准数据格式的数据格式转换;
数据采集模块,用于令PLC将自身的时间戳数据以标准数据格式的形式发送至数据采集器;
计算模块,用于令数据采集器计算数据格式转换后的网络标准时间与由PLC上传的时间戳数据之间的时间差值。
实施例2、一种时间同步方法
如图3所示,一种时间同步方法,该方法包括的步骤有:
将数据采集器和后台服务器均与NTP服务器进行时间同步;
数据采集器计算从NTP服务器上同步得到的网络标准时间tNTP与由PLC上传的时间戳数据tPLC之间的时间差值td,即td=tNTP-tPLC;
此后,PLC持续传输时间戳数据至数据采集器,所述数据采集器将由PLC上传的时间戳数据tPLC_n加上时间差值td,得到标准化后的PLC时间戳数据treal,即treal=tPLC_n+td;
数据采集器将标准化后的PLC时间戳数据传输至后台服务器进行进一步的数据处理。
作为本方法实施例的优选实施方式,所述数据采集器将标准化后的PLC时间戳数据传输至后台服务器这一步骤,其具体包括:
数据采集器将标准化后的PLC时间戳数据与当前的网络标准时间对比,从而对标准化后的PLC时间戳数据进行校验;当校验通过时,则将标准化后的PLC时间戳数据传输至后台服务器;当校验不通过时,则返回执行所述将数据采集器和后台服务器均与NTP服务器进行时间同步这一步骤。
作为本方法实施例的优选实施方式,所述数据采集器将标准化后的PLC时间戳数据传输至后台服务器这一步骤,其具体包括:
判断PLC是否执行过重启操作,或者上一次将数据采集器和后台服务器均与NTP服务器进行时间同步的历史运行时间是否超过设定时间值,若是,则返回执行所述将数据采集器和后台服务器均与NTP服务器进行时间同步这一步骤;反之,则将标准化后的PLC时间戳数据与当前的网络标准时间对比,从而对标准化后的PLC时间戳数据进行校验;当校验通过时,则将标准化后的PLC时间戳数据传输至后台服务器;当校验不通过时,则返回执行所述将数据采集器和后台服务器均与NTP服务器进行时间同步这一步骤。
作为本方法实施例的优选实施方式,所述将标准化后的PLC时间戳数据与当前的网络标准时间对比,从而对标准化后的PLC时间戳数据进行校验这一步骤,其具体为:
判断标准化后的PLC时间戳数据treal是否等于当前的网络标准时间t’NTP,即treal=t’NTP?,若是,则表示校验通过;反之,则表示校验不通过。
作为本方法实施例的优选实施方式,所述数据采集器计算从NTP服务器上同步得到的网络标准时间与由PLC上传的时间戳数据之间的时间差值这一步骤,其具体包括:
数据采集器将从NTP服务器上同步得到的网络标准时间进行标准数据格式的数据格式转换;
PLC将自身的时间戳数据以标准数据格式的形式发送至数据采集器;
数据采集器计算数据格式转换后的网络标准时间与由PLC上传的时间戳数据之间的时间差值。对于所述PLC将自身的时间戳数据以标准数据格式的形式发送至数据采集器这一步骤,其具体为:所述PLC通过使用提供的系统协议、网络适配器或现场总线的方式,将自身的时间戳数据以标准数据格式的形式发送至数据采集器;优选地,所述PLC通过现场总线的方式,将自身的时间戳数据以标准数据格式的形式发送至数据采集器,这样的延迟量可小到忽略,更能保证数据采集的实时性和真实性。
作为上述系统和方法实施例的优选实施方式,所述的标准数据格式为Unixtimestamp格式。
实施例3、一种时间同步方法的具体实施例
在本实施例中,设定PLC包括有PLC1、PLC2、PLC3,并且当前时间为2017年1月9日14:15:27,PLC1时间为2017年1月9日14:14:00,PLC2时间为2017年1月8日14:15:27,PLC3时间为1970年1月1日14:15:27。
一种时间同步方法,其具体步骤包括有:
S101、将数据采集器和后台服务器均与NTP服务器以以太网的方式进行时间同步,从而令数据采集器和后台服务器均从NTP服务器上同步得到网络标准时间,即此时,数据采集器、后台服务器与NTP服务器三者的时间同步,得到当前时间均为2017年1月9日14:15:27;
S102、数据采集器将从NTP服务器上同步得到的网络标准时间(2017年1月9日14:15:27)进行Unix timestamp的数据格式转换(格林威治时间1970年01月01日00时00分00秒起至现在的总秒数),从而得到数据格式转换后的网络标准时间为1483942527;
S103、现场PLC1、PLC2、PLC3分别将各自自身的时间戳数据传输至数据采集器并以Unix timestamp格式进行存储,其中,PLC1的时间戳数据为1483942440,PLC2的时间戳数据为1483856127,PLC3的时间戳数据为22527,并且此时,网络标准时间和PLC的时间戳数据的格式统一,方便计算;
S104、数据采集器计算数据格式转换后的网络标准时间1483942527分别与PLC1的时间戳数据1483942440、PLC2的时间戳数据1483856127及PLC3的时间戳数据22527之间的时间差值,并将时间差值存储;具体地,时间差值的计算如下所示:
tplc_1=1483942527-1483942440=87;
tplc_2=1483942527-1483856127=86400;
tplc_3=1483942527-22527=1483920000;
其中,tplc_1表示为网络标准时间与PLC1的时间戳数据之间的时间差值,tplc_2表示为网络标准时间与PLC2的时间戳数据之间的时间差值,tplc_3表示为网络标准时间与PLC3的时间戳数据之间的时间差值;
S105、后续进行数据采集传输时,PLC1、PLC2、PLC3按照扫描周期的频率持续传输时间戳数据至数据采集器后,数据采集器将由PLC1、PLC2、PLC3分别上传来的时间戳数据分别加上相对应的时间差值tplc_1、tplc_2、tplc_3,从而得到标准化后的PLC1时间戳数据、PLC2时间戳数据及PLC3时间戳数据;
S106、判断在上一次将数据采集器和后台服务器均与NTP服务器进行时间同步这一步骤之后,PLC是否执行过重启操作,或者上一次将数据采集器和后台服务器均与NTP服务器进行时间同步的历史运行时间是否超过设定时间值,例如历史运行时间离当前时间已超过一周或一个月,若是,则返回执行所述将数据采集器和后台服务器均与NTP服务器进行时间同步这一步骤,重新进行时间同步,保证数据的准确性;反之,则将标准化后的PLC1时间戳数据、PLC2时间戳数据及PLC3时间戳数据进行准确性校验,具体地,将PLC1时间戳数据、PLC2时间戳数据及PLC3时间戳数据分别与当前的网络标准时间进行对比,判断标准化后的时间戳数据是否等于当前的网络标准时间,若是,则表示校验通过,此时,则将标准化后的PLC时间戳数据传输至后台服务器进行进一步数据处理;反之,则表示校验不通过,此时,则返回执行所述将数据采集器和后台服务器均与NTP服务器进行时间同步这一步骤,重新进行时间同步,保证数据的准确性。
由上述可得,本发明的方法和系统所包括的优点有:
1、能够避免现场PLC之间时间不统一的情况发生,并且实现现场多个PLC、数据采集器和后台服务器的时间同步,可大大提高工业数据采集的实时性和真实性;
2.PLC重启后有初始化时间的可能性,利用时间差值的计算方法能够避免PLC初始化后时间改变的情况,从而保证采集数据的准确性;
3.能够在不改变PLC内部计时器或PLC程序的情况下进行PLC时间戳数据的标准化,从而实现数据同步和采集,具有易于实现、操作工作量低、成本低等优点;
4、能够准确获取各PLC的标准化时间信息,从而数据更具有实时性和真实性,不再因为PLC的时间差异而产生误差,从而使后台服务器能够在工业中准确显示某个工位动作的时刻,降低误差概率,更有利于数据的实时收集和处理。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。