一种伺服驱动器内部进行精确时间同步的方法与流程

文档序号:11263471阅读:883来源:国知局

本发明涉及一种伺服驱动器内部进行精确时间同步的方法。



背景技术:

随着工业自动化生产线规模越来越大,涉及到的控制执行设备节点越来越多,对各个设备节点之间的动作配合误差要求越来越小,由此对各设备节点之间的时间同步提出了很高的要求,比如某些应用下需要准确记录外部io事件输入的时间,精度需要做到us级甚至ns级。

基于以太网协议互联的plc和伺服驱动器、io设备等,采用ieee1588v2协议在以太网基础上实现了各设备之间的时间同步精度到ns级。plc作为ptpmaster设备,伺服驱动器和io设备作为ptpslave从plc处获取精确时间。但伺服驱动设备内部各个模块之间,比如cpu、dsp和fpga之间也需要做到时间同步,一般有两种方式:

cpu通过以太网口获取到时间戳之后,通过同异步串口以私有协议方式周期性地将精确时间信息发给dsp和fpga,此种方式占用硬件资源较少,但需要cpu、dsp和fpga进行周期性的编解码工作,会在一定程度上增加计算资源的占用;

cpu通过以太网口获取到时间戳之后,只在下一秒到来时刻向dsp和fpga发送1pps秒脉冲,dsp和fpga利用本地时钟进行秒内计数,在1pps时刻对计数清零重新计数。此方式只能实现秒内的时钟同步,秒外的时钟同步必须通过cpu来实现。而且由于dsp和fpga本地时钟晶振的精度不能保证,会引入一定的偏差。

申请公布号为cn105024777a,申请公布日为2015年11月04日的中国发明专利申请中,公开了一种基于ethercat实时以太网的伺服驱动器同步方法,包括:从站链路层控制模块在分布时钟触发时,向应用层控制模块请求同步中断;应用层控制模块每次进入同步中断时计算中断响应延时δt1;第一次进入同步中断时,计算tset=toffset+(tc-δt1),tset为应用层控制模块第一次接收到同步中断请求后的下一次伺服中断发起时刻,toffset为应用层控制模块接收到同步中断请求后的下一次伺服中断发起时刻与接收到该同步中断请求的时刻之间的时间偏差值。应用层控制模块根据tset调整第一次进入同步中断时的那一伺服程序定时周期,并将第一个通信周期内的其余伺服程序定时周期恢复正常。本发明申请避免了数据更新与伺服应用程序之间的冲突,实现伺服控制数据同步更新和执行。这种基于ethercat实时以太网的伺服驱动器同步方法,其同步的时间精度并不高,没有实现伺服驱动器中的cpu、dsp和fpga之间的时间同步。



技术实现要素:

本发明的目的在于克服现有技术中存在的上述不足,而提供一种伺服驱动器内部进行精确时间同步的方法。

本发明解决上述问题所采用的技术方案是:该伺服驱动器内部进行精确时间同步的方法,所述伺服驱动器包括第一处理器和第二处理器,第一处理器和第二处理器连接,第一处理器与伺服驱动器外部的控制器连接;

该方法的特征在于,包括以下步骤:

a、第一处理器与控制器交互并从控制器获取精确时间;

b、第一处理器从控制器获取精确时间后,在下一秒到来时刻向第二处理器发送1pps秒脉冲进行同步;

c、第二处理器内部以本地时钟进行秒内计数,并得出1秒时间内本地时钟实际计数值f,对相对于上个秒脉冲偏移st时刻的外部io输入事件,其实际时间戳为其中t为秒脉冲内计数;

d、计算标称时钟1秒时间内的理论计数值f0,对相对于上个秒脉冲偏移st时刻的外部io输入事件,其标称时间戳为st=(int)tf0;

e、计算外部io输入时间戳的补偿量

上式中△f=f0-f为上一秒内本地时钟实际计数值与标称计数值之间的偏差;

f、利用当前时刻的本地时钟计数值代替标称值,代入步骤e的公式中,得出

补偿后的时间戳为

本发明在步骤f中,考虑到整数计算的截尾效应,将上式调整为

本发明步骤c中,在下一个秒脉冲到来时刻将秒脉冲计数清零并重新计数。

本发明所述第一步处理器通过以太网口与控制器之间进行ptp协议交互。

本发明所述控制器为可编程逻辑控制器。

本发明所述第二处理器为dsp或fpga。

本发明与现有技术相比,具有以下优点和效果:

1、占用硬件资源少,只需要一根1pps信号就可以完成秒外时钟同步;

2、采用本地时钟计数完成秒内时钟同步,省去绝对时间传输协议编解码的工作;

3、秒内时钟同步的精度通过对上一秒内标称计数值与实际计数值的差进行补偿,提高外部输入事件时间戳的精度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是实施例1中的伺服驱动器的结构示意图。

具体实施方式

下面结合附图并通过实施例对本发明作进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。

实施例1

参见图1,本实施例中的伺服驱动器包括第一处理器11和第二处理器12,第一处理器11和第二处理器12连接,第一处理器11与伺服驱动器外部的控制器2连接。

本实施例的伺服驱动器内部进行精确时间同步的方法,

该方法包括以下步骤:

a、第一处理器11与控制器2交互并从控制器2获取精确时间;

b、第一处理器11从控制器2获取精确时间后,在下一秒到来时刻向第二处理器12发送1pps秒脉冲进行同步,以此可实现秒外时钟同步,该秒外时钟同步,占用硬件资源少,仅需一根1pps信号就可以完成秒外时钟同步;

c、第二处理器12内部以本地时钟进行秒内计数,并得出1秒时间内本地时钟实际计数值f,对相对于上个秒脉冲偏移st时刻的外部io输入事件,其实际时间戳为其中t为秒脉冲内计数,此处的本地时钟指的是第二处理器12进行秒内计数的时钟;

d、假设标称时钟频率为f0hz,本地时钟实际频率为fhz,计算标称时钟1秒时间内的理论计数值f0,对相对于上个秒脉冲偏移st时刻的外部io输入事件,其标称时间戳为st=(int)tf0;

e、由此可计算外部io输入时间戳的补偿量应该为

上式中△f=f0-f为上一秒内本地时钟实际计数值与标称计数值之间的偏差,可在每个计数周期获得;

f、利用当前时刻的本地时钟计数值代替标称值,代入步骤e的公式中,得出

由于f0与f偏差较小,因此上述近似补偿误差不大。

补偿后的时间戳为

本发明在步骤f中,考虑到整数计算的截尾效应,将上式调整为

作为最终实现形式。

本实施例的步骤c中,在下一个秒脉冲到来时刻将秒脉冲计数清零并重新计数。

本实施例的第一步处理器通过以太网口与控制器2之间进行ptp协议交互。

本实施例的控制器2为可编程逻辑控制器2,即plc。

本实施例中的第二处理器12为dsp或fpga。其中dsp为数字信号处理器,fpga为现场可编程门阵列,两者本身均为现有技术,此处不再赘述。

本实施例中的伺服驱动器同时设置dsp和fpga。

本实施例中的第一处理器11为伺服驱动器的cpu,此为现有技术,此处不再赘述。

相对传统的伺服设备内部时钟同步方案,本发明具有以下优点:

1、占用硬件资源少,只需要一根1pps信号就可以完成秒外时钟同步;

2、采用本地时钟计数完成秒内时钟同步,省去绝对时间传输协议编解码的工作;

3、秒内时钟同步的精度通过对上一秒内标称计数值与实际计数值的差进行补偿,提高外部输入事件时间戳的精度。

本说明书中所描述的以上内容仅仅是对本发明所作的举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离本发明说明书的内容或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1