基于传递时差的数控系统现场总线时间同步方法及装置转让专利

申请号 : CN200910012594.7

文献号 : CN101958785A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 尹震宇杨东升于东刘明烈刘荫忠胡毅聂林

申请人 : 中国科学院沈阳计算技术研究所有限公司沈阳高精数控技术有限公司

摘要 :

本发明涉及一种基于传递时差的数控系统现场总线时间同步方法及装置,方法包括:分别在拓扑结构的主站或从站中设置计数器,以计算主站与各从站间的通信延时;各从站按主站与该从站之间的通信延时,通过计数器计数实现各从站的执行时间同步;装置由启停信号多路选择及分配控制器、通信延时计算模块组成,启停信号多路选择及分配控制器接收主站或者从站通信端口输出的发送启动、接收启动信号以及总线拓扑指示信号;启停信号多路选择及分配控制器与通信延时计算模块通过接收启动、发送启动指示信号与该启停信号多路选择及分配控制器连接。本发明实现简单,占用资源少,不需额外信号线路,也不需要部署独立的执行时间同步启动信号线路。

权利要求 :

1.一种基于传递时差的数控系统现场总线时间同步方法,用于线形拓扑结构或者环形拓扑结构的基于全双工异步串行通信的数控系统现场总线系统中,其特征在于包括以下步骤:分别在拓扑结构的主站或从站中设置计数器,以计算主站与各从站间的通信延时;

各从站按主站与该从站之间的通信延时,通过计数器计数实现各从站的执行时间同步。

2.按权利要求1所述的基于传递时差的数控系统现场总线时间同步方法,其特征在于:所述计算主站与各从站间的通信延时通过以下步骤得到:当拓扑结构为单线形时,主站发送数据帧沿总线经各从站传递至总线末端从站,再由末端从站返回数据帧延总线经各从站反向传递至主站,主站记录上述过程中由发送数据帧至接收数据帧的主站发收时间差tMCLOCK,各从站记录接收主站发出的数据帧的时间与发送给主站数据帧的从站收发时间差ΔtDYk;

主站将主站发收时间差tMCLOCK发送至各从站,各从站利用主站发收时间差tMCLOCK和本从站收发时间差ΔtDYk,计算从主站发出数据帧到本从站接收该数据帧的通信延时Δtk:Δtk=(tMCLOCK-ΔtDYk)÷2。

3.按权利要求1所述的基于传递时差的数控系统现场总线时间同步方法,其特征在于:

当拓扑结构为双线形时,主站第一端口发送数据帧沿总线经各从站传递至总线末端从站,再由末端从站返回数据帧延总线经各从站反向传递至主站第一端口,同时主站第二端口发送数据帧沿总线经各从站传递至总线末端从站,再由末端从站返回数据帧延总线经各从站反向传递至主站第二端口;主站同时记录上述过程中两个端口的由发送数据帧至接收数据帧的主站发收时间差tMCLOCKA、tMCLOCKB,各从站记录接收主站发出的数据帧的时间与发送给主站数据帧的从站收发时间差ΔtDYk;

主站将主站发收时间差tMCLOCKA、tMCLOCKB发送至各自端口连接的从站,各从站利用主站发收时间差tMCLOCKA或tMCLOCKB及本从站收发时间差ΔtDYk,分别通过以下公式计算从主站第一端口或第二端口发出数据帧到本从站接收该数据帧的通信延时Δtk:Δtk=(tMCLOCKA-ΔtDYk)÷2;

Δtk=(tMCLOCKB-ΔtDYk)÷2。

4.按权利要求1所述的基于传递时差的数控系统现场总线时间同步方法,其特征在于:所述计算主站与各从站间的通信延时通过以下步骤得到:当拓扑结构为环形时,主站由第一端口发送数据帧沿总线经各从站传递至主站的第二端口,再由第二端口返回该数据帧延总线经各从站反向传递至主站第一端口,主站记录上述过程中第一端口由发送数据帧至接收数据帧的主站发收时间差tMCLOCKA,各从站记录接收主站第一端口发出的数据帧的时间与发送给主站第一端口数据帧的从站收发时间差ΔtADYk;

主站将主站发收时间差tMCLOCKA发送至各从站,各从站利用主站发收时间差tMCLOCKA和本从站收发时间差ΔtADYk,计算从主站第一端口发出数据帧到本从站接收该数据帧的通信延时ΔtAk:ΔtAk=(tMCLOCKA-ΔtADYk)÷2。

5.按权利要求4所述的基于传递时差的数控系统现场总线时间同步方法,其特征在于:

当拓扑结构为环形并采用冗余通信方式时,计算主站与各从站间的通信延时还包括以下步骤:

主站由第二端口发送数据帧沿总线经各从站传递至主站的第一端口,再由第一端口返回该数据帧延总线经各从站反向传递至主站第二端口,主站记录上述过程中第二端口由发送数据帧至接收数据帧的主站发收时间差tMCLOCKB,各从站记录接收主站第二端口发出的数据帧的时间与发送给主站第二端口数据帧的从站收发时间差ΔtBDYk;

主站将主站发收时间差tMCLOCKB发送至各从站,各从站利用主站发收时间差tMCLOCKB和本从站收发时间差ΔtBDYk,计算从主站第二端口发出数据帧到本从站接收该数据帧的通信延时ΔtBk:ΔtBk=(tMCLOCKB-ΔtBDYk)÷2。

6.按权利要求1所述的基于传递时差的数控系统现场总线时间同步方法,其特征在于:所述计数器计数实现各从站的执行时间同步为:对于每个从站,当收到主站发出的需要同步执行的数据帧时,根据该从站通信延时Δtk和主站发出的同步命令执行延时,通过该从站计数器计数实现延时后,执行同步命令。

7.一种实现基于传递时差的数控系统现场总线时间同步方法的装置,其特征在于:由启停信号多路选择及分配控制器、通信延时计算模块组成,其中启停信号多路选择及分配控制器接收主站或者从站通信端口输出的发送启动、接收启动信号以及总线拓扑指示信号;启停信号多路选择及分配控制器与通信延时计算模块通过接收启动、发送启动指示信号与该启停信号多路选择及分配控制器连接。

8.按权利要求7所述的实现基于传递时差的数控系统现场总线时间同步方法的装置,其特征在于:所述通信延时计算模块包括启停控制器、通信延时计数器、减法运算器、收发时间差计数器以及归零比较器,其中:启停控制器,通过接收启动、发送启动指示信号与启停信号多路选择及分配控制器相连,并接收通信延时计算模块外部输入的总线拓扑指示信号;通过启/停信号和清零控制信号与收发时间差计数器相连;通过运算控制信号与减法运算器相连,同时接收减法运算器输出的运算状态指示信号;通过启/停信号和锁存控制信号与通信延时计数器连接;

收发时间差计数器,输出数据至减法运算器;

减法运算器,输入端与收发时间差计数器相连,同时接有由通信延时计算模块外部输入的发收时间差数据,运算结果数据经通信延时计数器输出至归零比较器;

归零比较器,输出同步指示信号,同时反馈回启停控制器。

9.按权利要求7所述的实现基于传递时差的数控系统现场总线时间同步方法的装置,其特征在于:所述启停信号多路选择及分配控制器由多路选择器构成,在总线拓扑指示信号的控制下,将输入的A、B端口接收启动指示信号、发送启动指示信号,组合出通信延时计算模块可以使用的接收启动、发送启动指示信号,输出至通信延时计算模块。

10.按权利要求7所述的实现基于传递时差的数控系统现场总线时间同步方法的装置,其特征在于:所述启停控制器采用可编程逻辑器件或微处理器实现,根据接收启动、发送启动指示信号以及归零比较器输出的归零状态指示信号,对收发时间差计数器实现启/停、清零控制\减法运算器的运算控制以及通信延时计数器的启/停、锁存控制。

说明书 :

基于传递时差的数控系统现场总线时间同步方法及装置

技术领域

[0001] 本发明涉及现场总线技术领域,具体的说是一种基于传递时差的数控系统现场总线时间同步方法及装置。

背景技术

[0002] 数控系统现场总线(以下简称:数控总线)是用于实现数控装置(CNC)、主轴单元、伺服驱动单元、I/O等部件之间数据实时通信的串行、数字化、多点、双向通信网络(如图1所示),是实现全数字控制、简化设备连接、提高系统控制精度和可靠性的关键技术,具有高速、高实时性、高同步性、高可靠性等设计要求及运行特点。
[0003] 数控系统现场总线的时间同步(也称:执行时间同步)是指总线上所连接的各个从站在接收到主站的命令后在同一时刻点同时执行。
[0004] 数控系统现场总线系统中,主站与从站设备之间通过基于异步通信方式的串行总线,以线形拓扑结构(如图2、3、4所示)或者环形拓扑结构(如图5所示)互联在一起,组成通信网络。
[0005] 主站发出的数据帧按照总线拓扑结构,依次通过各个从站并实现主站与从站之间的数据及命令等信息传输。在上述传输过程中,数据帧在总线传输过程中以及在经过每个从站转发过程均需要消耗一定时间,因而导致各个从站接收主站同一时刻发出数据的时间各不相同。
[0006] 数控系统现场总线面向数控机床、大型复合加工中心等具有实时同步控制需求的应用环境,必须支持数控总线所连接各个部件的控制命令执行时间的精确同步,如机床各伺服轴、主轴等部件之间的精确同步动作,需提供精确的时钟同步机制。
[0007] 因而,各个从站在接收到主站所发出的诸如同步执行等命令时,需要利用总线提供的时间同步机制实现在同一时刻同步执行主站命令。数控系统现场总线的时间同步精度是决定机床加工精度的关键因素之一,是实现精确多轴联动的基础,也是当前国内外数控领域的热门研究课题之一。
[0008] 当前数控系统现场总线产品采取的时间同步技术,主要采用基于IEC61588标准的时钟同步方式。该同步方式主要应用于复杂拓扑结构的工业现场总线环境,其主要原理是在每个站点上均维持一个时钟,在总线通信过程中,不断维护这些时钟之间的同步计时精度,进而实现时间同步的技术。该方法适用范围广,但实现复杂,且占用网络资源较多,增加了短周期的周期性实时数据传输的实现难度。

发明内容

[0009] 针对现有技术中存在的上述不足之处,本发明要解决的技术问题是提供一种实现方法简单的针对数控系统现场总线应用环境的基于传递时差计算的高精度执行时间同步方法及装置,以实现数控系统现场总线在通信过程中的高效执行时间同步。
[0010] 为解决上述技术问题,本发明采用的技术方案是:
[0011] 本发明一种基于传递时差的数控系统现场总线时间同步方法,用于线形拓扑结构或者环形拓扑结构的基于全双工异步串行通信的数控系统现场总线系统中,包括以下步骤:
[0012] 分别在拓扑结构的主站或从站中设置计数器,以计算主站与各从站间的通信延时;
[0013] 各从站按主站与该从站之间的通信延时,通过计数器计数实现各从站的执行时间同步。
[0014] 所述计算主站与各从站间的通信延时通过以下步骤得到:
[0015] 当拓扑结构为单线形时,主站发送数据帧沿总线经各从站传递至总线末端从站,再由末端从站返回数据帧延总线经各从站反向传递至主站,主站记录上述过程中由发送数据帧至接收数据帧的主站发收时间差tMCLOCK,各从站记录接收主站发出的数据帧的时间与发送给主站数据帧的从站收发时间差ΔtDYk;
[0016] 主站将主站发收时间差tMCLOCK发送至各从站,各从站利用主站发收时间差tMCLOCK和本从站收发时间差ΔtDYk,计算从主站发出数据帧到本从站接收该数据帧的通信延时Δtk:
[0017] Δtk=(tMCLOCK-ΔtDYk)÷2。
[0018] 当拓扑结构为双线形时,主站第一端口发送数据帧沿总线经各从站传递至总线末端从站,再由末端从站返回数据帧延总线经各从站反向传递至主站第一端口,同时主站第二端口发送数据帧沿总线经各从站传递至总线末端从站,再由末端从站返回数据帧延总线经各从站反向传递至主站第二端口;主站同时记录上述过程中两个端口的由发送数据帧至接收数据帧的主站发收时间差tMCLOCKA、tMCLOCKB,各从站记录接收主站发出的数据帧的时间与发送给主站数据帧的从站收发时间差ΔtDYk;
[0019] 主站将主站发收时间差tMCLOCKA、tMCLOCKB发送至各自端口连接的从站,各从站利用主站发收时间差tMCLOCKA或tMCLOCKB及本从站收发时间差ΔtDYk,分别通过以下公式计算从主站第一端口或第二端口发出数据帧到本从站接收该数据帧的通信延时Δtk:
[0020] Δtk=(tMCLOCKA-ΔtDYk)÷2;
[0021] Δtk=(tMCLOCKB-ΔtDYk)÷2。
[0022] 所述计算主站与各从站间的通信延时通过以下步骤得到:
[0023] 当拓扑结构为环形时,主站由第一端口发送数据帧沿总线经各从站传递至主站的第二端口,再由第二端口返回该数据帧延总线经各从站反向传递至主站第一端口,主站记录上述过程中第一端口由发送数据帧至接收数据帧的主站发收时间差tMCLOCKA,各从站记录接收主站第一端口发出的数据帧的时间与发送给主站第一端口数据帧的从站收发时间差ΔtADYk;
[0024] 主站将主站发收时间差tMCLOCKA发送至各从站,各从站利用主站发收时间差tMCLOCKA和本从站收发时间差ΔtADYk,计算从主站第一端口发出数据帧到本从站接收该数据帧的通信延时ΔtAk:
[0025] ΔtAk=(tMCLOCKA-ΔtADYk)÷2。
[0026] 当拓扑结构为环形并采用冗余通信方式时,计算主站与各从站间的通信延时还包括以下步骤:
[0027] 主站由第二端口发送数据帧沿总线经各从站传递至主站的第一端口,再由第一端口返回该数据帧延总线经各从站反向传递至主站第二端口,主站记录上述过程中第二端口由发送数据帧至接收数据帧的主站发收时间差tMCLOCKB,各从站记录接收主站第二端口发出的数据帧的时间与发送给主站第二端口数据帧的从站收发时间差ΔtBDYk;
[0028] 主站将主站发收时间差tMCLOCKB发送至各从站,各从站利用主站发收时间差tMCLOCKB和本从站收发时间差ΔtBDYk,计算从主站第二端口发出数据帧到本从站接收该数据帧的通信延时ΔtBk:
[0029] ΔtBk=(tMCLOCKB-ΔtBDYk)÷2。
[0030] 所述计数器计数实现各从站的执行时间同步为:
[0031] 对于每个从站,当收到主站发出的需要同步执行的数据帧时,根据该从站通信延时Δtk和主站发出的同步命令执行延时,通过该从站计数器计数实现延时后,执行同步命令。
[0032] 本发明一种实现基于传递时差的数控系统现场总线时间同步方法的装置,由启停信号多路选择及分配控制器、通信延时计算模块组成,其中启停信号多路选择及分配控制器接收主站或者从站通信端口输出的发送启动、接收启动信号以及总线拓扑指示信号;启停信号多路选择及分配控制器与通信延时计算模块通过接收启动、发送启动指示信号与该启停信号多路选择及分配控制器连接。
[0033] 所述通信延时计算模块包括启停控制器、通信延时计数器、减法运算器、收发时间差计数器以及归零比较器,其中:
[0034] 启停控制器,通过接收启动、发送启动指示信号与启停信号多路选择及分配控制器相连,并接收通信延时计算模块外部输入的总线拓扑指示信号;通过启/停信号和清零控制信号与收发时间差计数器相连;通过运算控制信号与减法运算器相连,同时接收减法运算器输出的运算状态指示信号;通过启/停信号和锁存控制信号与通信延时计数器连接;
[0035] 收发时间差计数器,输出数据至减法运算器;
[0036] 减法运算器,输入端与收发时间差计数器相连,同时接有由通信延时计算模块外部输入的发收时间差数据,运算结果数据经通信延时计数器输出至归零比较器;
[0037] 归零比较器,输出同步指示信号,同时反馈回启停控制器。
[0038] 所述启停信号多路选择及分配控制器由多路选择器构成,在总线拓扑指示信号的控制下,将输入的A、B端口接收启动指示信号、发送启动指示信号,组合出通信延时计算模块可以使用的接收启动、发送启动指示信号,输出至通信延时计算模块。
[0039] 所述启停控制器采用可编程逻辑器件或微处理器实现,根据接收启动、发送启动指示信号以及归零比较器输出的归零状态指示信号,对收发时间差计数器实现启/停、清零控制\减法运算器的运算控制以及通信延时计数器的启/停、锁存控制。
[0040] 本发明具有以下有益效果及优点:
[0041] 1.实现简单。本发明满足基于线形拓扑连接及环形拓扑连接方式的数控系统现场总线的精确同步通信要求,并且在上述两种拓扑结构条件下同步计算方法相同,同步处理机制设计实现简单,总线在进行同步通信过程中,从站仅仅需要计算、保存数据通信所消耗的时间,该时间延迟的计算可以通过高精度延时计数器计数实现,不需要维护全局时钟信息。
[0042] 2.占用资源少。传输延迟计算过程,可以通过定义的延迟计算通信帧完成,亦可以将延迟计算数据附带在主站与从站之间的同步或者异步通信数据帧实现。占用通信带宽小,每个从站进行延时计算过程,最少仅需要两次延时信息交换。
[0043] 3.现场布线简单。延时计算帧以及同步启动命令的传输与一般通信帧传输通路相同,不需要额外信号线路,也不需要部署独立的执行时间同步启动信号线路。

附图说明

[0044] 图1为数控系统中主-从站通信示意图;
[0045] 图2为数控系统现场总线线形拓扑结构图(单线形连接,主站第一端口即端口A连接);
[0046] 图3为数控系统现场总线线形拓扑结构图(单线形连接,主站第二端口即端口B连接);
[0047] 图4为数控系统现场总线线形拓扑结构图(双线形连接,主站第一、二端口即端口A、B连接);
[0048] 图5为数控系统现场总线环形拓扑结构图(环形拓扑结构或采用冗余通信方式的环形拓扑结构);
[0049] 图6为本发明方法流程图(从站部分);
[0050] 图7为本发明方法流程图(主站部分);
[0051] 图8为本发明方法中线形拓扑结构延时计算示意图(适用于单线形、双线形拓扑结构连接);
[0052] 图9为本发明方法中环形拓扑结构延时计算示意图(适用于环形拓扑结构及采用冗余通信方式的环形拓扑结构);
[0053] 图10为本发明装置结构框图;
[0054] 图11为本发明装置中启停信号多路选择及分配控制器结构框图;
[0055] 图12为本发明方法中同步性能测试数据示波器屏幕截图(该示波器屏幕截图仅截取了触发时刻“T0”之后的400nS时间段,数字通道标号0-9为截屏后添加)。

具体实施方式

[0056] 本发明基于传递时差的数控系统现场总线时间同步方法针对的数控系统现场总线为线形拓扑连接或者环形拓扑连接结构的异步串行通信总线。规定的总线中,主站、从站均有两个完整的通信接口:第一端口(端口A)及第二端口(端口B),总线连接拓扑包括线形拓扑和环形拓扑两种结构,其中线形拓扑结构如图2、3、4所示,图2为主站第一端口(端口A)连接的数控系统现场总线线形拓扑结构图(单线形连接拓扑结构);图3为主站第二端口(端口B)连接的数控系统现场总线线形拓扑结构图(单线形连接拓扑结构);图4为主站第一、二端口即端口(端口A、B)连接的数控系统现场总线线形拓扑结构图(双线形连接拓扑结构);环形拓扑结构如图5所示,其中图5所示的环形拓扑结构也用于采用冗余通信方式的环形拓扑结构总线连接。
[0057] 如图6、图7所示,本发明方法包括以下步骤:
[0058] 分别在拓扑结构的主站或从站中设置计数器,以计算主站与各从站间的通信延时;
[0059] 各从站按主站与该从站之间的通信延时,通过计数器计数实现各从站的执行时间同步。
[0060] 1.延时计算方法:
[0061] (1)采用单线形拓扑结构时(即总线拓扑连接结构如图2或图3所示),从站只计算到所连接的主站接口的通信延时,即从站第一端口与主站第一端口进行数据收发或从站的第二端口与主站的第二端口进行数据收发,以主站第一端口(端口A)所与连接的从站的延时计算为例(如图8所示),包括以下步骤:
[0062] 当拓扑结构为单线形时,主站发送数据帧沿总线经各从站传递至总线末端从站,再由末端从站返回数据帧延总线经各从站反向传递至主站,主站记录上述过程中由发送数据帧至接收数据帧的主站发收时间差tMCLOCK,各从站记录接收主站发出的数据帧的时间与发送给主站数据帧的从站收发时间差ΔtDYk;
[0063] 主站将主站发收时间差tMCLOCK发送至各从站,各从站利用主站发收时间差tMCLOCK和本从站收发时间差ΔtDYk,计算从主站发出数据帧到本从站接收该数据帧的通信延时Δtk:
[0064] Δtk=(tMCLOCK-ΔtDYk)÷2。
[0065] 下面以主站第一端口连接从站为例,给出延时计算方法。
[0066] 定义主站第一端口(端口A)发出数据帧的时刻为TAXM,主站第一端口(端口A)接收到经过各个从站转发返回至主站第一端口(端口A)数据帧的时刻为TARM。
[0067] 设第k号从站接收到主站第一端口(端口A)发出数据帧所需通信延时为Δtk,该数据帧由k号从站的第一端口(端口A)接收,接收时刻记为TARk,并由B号端口继续向下转发,向下继续转发的时刻记为TBXk;此后在该数据帧转发至最后一个从站节点后,将由最后一个从站节点向主站反向转发,设第k号从站第二端口(端口B)接收到所返回的数据帧时刻为TBRk,通过该从站第二端口(端口B)向主站方向继续转发的时刻记为TAXk,且记数据帧由k号从站第一端口(端口A)发送至主站第一端口(端口A)的通信延时记为Δt′k。
[0068] 此外,设TAXk-TARk=ΔtDYk;
[0069] 则有:(TARM-TAXM)=Δtk+ΔtDYk+Δt′k;
[0070] Δtk=TARk-TAXM;
[0071] Δt′k=TARM-TAXk;
[0072] ΔtDYk=TAXk-TARk;
[0073] Δtk与Δt′k分别为主站M将数据发送至从站k以及从站k将数据发送至主站M所消耗的时间,根据本延时计算方法约定条件,这两部分数据传输的路径相等,即主站第一端口(端口A)发送数据至从站k的第一端口(端口A)耗时与从站k的第一端口(端口A)发送数据至主站的第一端口(端口A)耗时近似相等,即存在:Δtk≈Δt′k。
[0074] 则可以计算出:TARM-TAXM=2×Δtk+ΔtDYk
[0075] 其中设tMCLOCK表示主站从发出数据帧至接收到该数据帧的总消耗时间,可以表示:tMCLOCK=TARM-TAXM。
[0076] 则可以计算出:tMCLOCK=2×Δtk+ΔtDYk;
[0077] 即:Δtk=(tMCLOCK-ΔtDYk)÷2;
[0078] 根据上述关系可以得出,通过计算主站第一端口(端口A)从发送至接收到数据帧的总耗时tMCLOCK,以及从站k的第一端口(端口A)接收到主站数据至第一端口(端口A)开始反向发送该数据时间差ΔtDYk=(TAXk-TARk)两部分既可以计算出从站k的延时时间Δtk。
[0079] 而tMCLOCK以及ΔtDYk的计算可以分别通过主站以及从站k上面设置的计数器进行延时计数。
[0080] 线形拓扑结构总线连接情况下,主站的第二端口(端口B)所连接从站延时时间与第一端口(端口A)的延时时间计算方法相同,不再重复描述。
[0081] (2)当拓扑结构为双线形时(总线拓扑连接结构如图4所示),该拓扑结构可以看作主站同时连接有两条单线形拓扑结构(图2、图3所示)的总线结构,主站第一端口发送数据帧沿总线经各从站传递至总线末端从站,再由末端从站返回数据帧延总线经各从站反向传递至主站第一端口,同时主站第二端口发送数据帧沿总线经各从站传递至总线末端从站,再由末端从站返回数据帧延总线经各从站反向传递至主站第二端口;该拓扑结构中主站每个端口与所连接的从站构成的延时时间计算方法与单线形拓扑结构相同,延时计算亦如图8所示;主站同时记录上述过程中两个端口的由发送数据帧至接收数据帧的主站发收时间差tMCLOCKA、tMCLOCKB,各从站记录接收主站发出的数据帧的时间与发送给主站数据帧的从站收发时间差ΔtDYk;
[0082] 主站将主站发收时间差tMCLOCKA、tMCLOCKB发送至各自端口连接的从站,各从站利用主站发收时间差tMCLOCKA或tMCLOCKB及本从站收发时间差ΔtDYk,分别通过以下公式计算从主站第一端口或第二端口发出数据帧到本从站接收该数据帧的通信延时Δtk:
[0083] Δtk=(tMCLOCKA-ΔtDYk)÷2;
[0084] Δtk=(tMCLOCKB-ΔtDYk)÷2。
[0085] (3)当拓扑结构为环形时,如图5所示,主站由第一端口发送数据帧沿总线经各从站传递至主站的第二端口,再由第二端口返回该数据帧延总线经各从站反向传递至主站第一端口,主站记录上述过程中第一端口由发送数据帧至接收数据帧的主站发收时间差tMCLOCKA,各从站记录接收主站第一端口发出的数据帧的时间与发送给主站第一端口数据帧的从站收发时间差ΔtADYk;
[0086] 主站将主站发收时间差tMCLOCKA发送至各从站,各从站利用主站发收时间差tMCLOCKA和本从站收发时间差ΔtADYk,计算从主站第一端口发出数据帧到本从站接收该数据帧的通信延时ΔtAk:
[0087] ΔtAk=(tMCLOCKA-ΔtADYk)÷2。
[0088] 此种情况下,延时计算分主站第一端口至第二端口通信延时计算以及主站第二端口至第一端口通信延时计算两部分,延时计算如图9所示。下述部分以主站第一端口发起延时计算过程为例,给出延时计算方法。
[0089] 根据图9所示,由主站的第一端口发起的延时计算过程包括:1)主站第一端口发送延时计算数据帧,通过从站顺序转发至主站第二端口;2)主站第二端口接收到该数据帧后再通过该第二端口反向发送数据帧,再次经过从站转发至主站第一端口,一次延时计算完成。
[0090] 设定主站第一端口发出数据帧的时刻为TAXM,主站第二端口接收到该帧数据的时间为TBRM,主站第二端口发出数据帧的时刻为TBXM,主站第一端口接收到该帧数据的时间为TARM。
[0091] 设第k号从站接收到主站第一端口发出数据帧的通信延时记为ΔtAk,该数据帧由k号从站第一端口接收,第二端口继续向下转发,从站k接收该数据帧的时刻记为TARk,向主站第二端口方向继续转发的时刻记为TBXk。
[0092] 此外,第k号从站第二端口接收到的由主站第二端口发起的延时计算数据帧的时刻为TBRk,通过该从站第一端口向主站第一端口方向继续转发的时刻记为TAXk。并且记由主站第二端口发起的延时计算数据帧,在从站k的第一端口转发至主站第一端口通信耗时记为Δt′Ak。
[0093] 根据本延时计算方法约定的条件,从站k的第一端口发送数据至主站的第一端口耗时与主站第一端口发送数据至从站k的第一端口耗时相等,即存在ΔtAk≈Δt′Ak。
[0094] 可以定义:tMCLOCKA=(TARM-TAXM)
[0095] 根据图9,可以得出:
[0096] (TARM-TAXM)=ΔtAk+Δt′Ak+(TAXk-TARk)
[0097] 通过计算可以得出:
[0098] tMCLOCK=2×ΔtAk+(TAXk-TARk)
[0099] 即:
[0100] ΔtAk=(tMCLOCKA-(TAXk-TARk))÷2
[0101] 同理可以得到由主站端口B发起的延时计算过程中,从站k的延时计算公式为:
[0102] ΔtBk=(tMCLOCKB-(TBXk-TBRk))÷2
[0103] 根据上述关系可以得出,通过计算耗时tMCLOCKA,tMCLOCKB,以及从站k的数据转发耗时(TAXk-TARk)及(TBXk-TBRk)既可以计算出延时时间ΔtkA以及ΔtkB。
[0104] tMCLOCKA,tMCLOCKB,(TAXk-TARk),(TBXk-TBRk)的计算可以分别通过主站以及从站k上面设置的计数器进行延时计数。
[0105] 各从站完成延时时间计算后,在接收到同步命令数据帧时,首先通过计数器延时计数的方式进行延时,然后执行同步命令,以实现各个从站在同一同步通信周期内的执行时间同步。
[0106] (4)当拓扑结构为环形并采用冗余通信方式时,总线拓扑连接结构与环形结构相同,如图5所示,计算主站与各从站间的通信延时计算按照环形拓扑结构条件下的延时计算方法处理,如图9所示,此后还包括以下步骤:
[0107] 主站由第二端口发送数据帧沿总线经各从站传递至主站的第一端口,再由第一端口返回该数据帧延总线经各从站反向传递至主站第二端口,主站记录上述过程中第二端口由发送数据帧至接收数据帧的主站发收时间差tMCLOCKB,各从站记录接收主站第二端口发出的数据帧的时间与发送给主站第二端口数据帧的从站收发时间差ΔtBDYk;
[0108] 主站将主站发收时间差tMCLOCKB发送至各从站,各从站利用主站发收时间差tMCLOCKB和本从站收发时间差ΔtBDYk,计算从主站第二端口发出数据帧到本从站接收该数据帧的通信延时ΔtBk:
[0109] ΔtBk=(tMCLOCKB-ΔtBDYk)÷2。
[0110] 针对线性、环形拓扑结构延时计算过程中,在线性拓扑条件下,连接在主站A端口或B端口所发起的通信延时计算,各自为独立的延时计算处理过程;在环形拓扑条件下,由主站A端口或B端口所发起的通信延时计算,各自为独立的延时计算处理过程。
[0111] 2.计数器计数实现各从站的执行时间同步为:
[0112] 对于每个从站,当收到主站发出的需要同步执行的数据帧时,根据该从站通信延时Δtk和主站发出的同步命令执行延时,通过该从站计数器计数实现延时后,执行同步命令。
[0113] 执行时间同步方法:
[0114] 时差延时计数处理后,tMCLOCK等计算结果可通过发送时间同步帧或附加在其它数据通信帧的方式传递给相应从站。
[0115] 各个从站在接收命令后,首先通过延时计数器延迟tMCLOCK时间,之后执行相应的命令,即可实现各个从站的命令执行时间同步。
[0116] 3.实现上述方法的装置包括以下部分:
[0117] 本发明装置结构框图如图10所示。
[0118] 本发明装置由启停信号多路选择及分配控制器、通信延时计算模块组成,其中启停信号多路选择及分配控制器接收主站或者从站通信端口输出的发送启动、接收启动信号以及主站或从站的总线拓扑指示信号;启停信号多路选择及分配控制器与通信延时计算模块通过接收启动、发送启动指示信号连接;所述通信延时计算模块包括启停控制器、通信延时计数器、减法运算器、收发时间差计数器以及归零比较器,其中:启停控制器,通过接收启动、发送启动指示信号与启停信号多路选择及分配控制器相连,并接收由模块外部输入的总线拓扑指示信号,此外,通过启/停信号和清零控制信号与收发时间差计数器相连,通过运算控制信号与减法运算器相连,同时接收减法运算器输出的运算状态指示信号,通过启/停信号和锁存控制信号与通信延时计数器连接;收发时间差计数器,输出数据至减法运算器;减法运算器,输入端与收发时间差计数器相连,同时接有发收时间差数据,运算结果数据经通信延时计数器输出至归零比较器;归零比较器,输出同步指示信号,同时反馈回启停控制器。
[0119] 通信延时计算模块内部的启停控制器,内部处理逻辑主要为:根据接收启动、发送启动信号控制收发时间差计数器的启/停、清零控制;控制减法运算器将收发时间差计数器计数值与发收时间差计数数值进行减法运算;控制通信延时计数器的启/停、锁存控制,实现延时计数;接收归零比较器输出的同步信号反馈以及减法运算器的运算状态指示信号,实现对通信延时计算过程中通信延时计算模块内部其它组件的操作控制;启停控制器可采用可编程逻辑器件(PAL、GAL、CPLD、FPGA)或微处理器等实现。
[0120] 所述启停信号多路选择及分配控制器如图11所示,由多路选择器构成,在总线拓扑指示信号的控制下,将输入的A、B端口接收启动指示信号、发送启动指示信号,组合出通信延时计算模块可以使用的接收启动、发送启动指示信号,输出至通信延时计算模块。
[0121] 所述启停控制器采用可编程逻辑器件(PAL、GAL、CPLD、FPGA)或微处理器实现,启停控制器内部处理逻辑主要为:根据接收启动、发送启动指示信号以及归零比较器输出的同步信号反馈,即归零状态指示信号,对收发时间差计数器实现启/停、清零控制,减法运算器的运算控制以及通信延时计数器的启/停、锁存控制。
[0122] 在不同总线拓扑结构条件下,使用本方法进行延时计算所需要的端口发送、接收启动信号不相同,启停信号多路选择及分配控制器完成A、B端口的发送、接收启动信号的组合,通过该启停信号多路选择及分配控制器,由A端口及B端口分别获取的数据帧发送、接收启动指示信号,被重新组合为有效的数据帧启停信号,提供给相应的通信延时计算模块。
[0123] 通信延时计算模块内部由收发时间差计数器、减法运算器、通信延时计数器、归零比较器以及启停控制逻辑等主要组成部分构成。
[0124] 从站在初始化及需要重新计算同步延时时刻,通过收发时间差计数器计数,计算收发时间差ΔtDYk,并与由主站获取的发收时间差tMCLOCK进行减法运算,计算出通信延时Δtk。此后,当需要进行同步的时候,通信延时计数器装入通信延时Δtk并进行递减运算计时,当计数归零时即为该站点同步执行时刻。
[0125] 4.性能测试:
[0126] 本发明方法在总线平台上进行测试。从站部分的传输延时计时以及执行启动之前的延时处理部分均采用VHDL语言描述设计实现,并最终下载到Xilinx Spartan3-500e FPGA芯片中进行实际测试。
[0127] 主站CNC工控机硬件平台配置为Intel Pentium 4双核3.00GHz CPU,512MB内存,操作系统为Linux Redhat9(内核2.4.20)。主站负责周期性发送同步数据帧及同步启动命令。
[0128] 时间同步测试工具为Tektronix MSO 4054示波器,该示波器包含4路模拟输入通道以及16路数字输入通道。
[0129] 从站执行时间的同步性测试方法时,每个从站由FPGA芯片引出执行启动信号测试引脚,该引脚在默认置为低电平,同步通信中,当从站同步执行计数器计数延时处理完成并到达同步执行时刻时,将该引脚设置为高电平。各从站的同步测试信号同时接入Tektronix MSO 4054示波器,通过示波器读出执行启动信号引脚电平的变化,可以测量出本数控系统现场总线执行时间同步方法的同步性能。
[0130] 图12列出一组同步性能测试数据,从站的执行启动信号测试引脚均分别连接在Tektronix MSO 4054示波器的数字通道的0至9号端口。
[0131] 通过反复测试,在连接16个从站点条件,总线上各个从站之间的执行时间同步的误差小于0.5uS。