首页> 中国专利> 基于以太网的发送数据的方法、以太网节点及控制系统

基于以太网的发送数据的方法、以太网节点及控制系统

摘要

本发明提供一种基于以太网的发送数据的方法,应用于包括多个节点的控制系统中,所述发送数据的方法包括:第一节点缓存需要发送的数据;如果当前通信宏周期包括用于第一节点发送数据的时间段,则第一节点在当前通信宏周期内的用于第一节点发送数据的时间段,发送缓存的数据,如果当前通信宏周期不包括用于第一节点发送数据的时间段,则第一节点不在当前通信宏周期内发送缓存的数据,其中,其他节点不在当前通信宏周期内的用于第一节点发送数据的时间段发送数据,每个通信宏周期的时长都相同,每个通信宏周期由多个长度固定的时间段组成。本发明还提供一种以太网节点及一种控制系统。

著录项

  • 公开/公告号CN101534230A

    专利类型发明专利

  • 公开/公告日2009-09-16

    原文格式PDF

  • 申请/专利权人 中控科技集团有限公司;浙江大学;

    申请/专利号CN200910130848.5

  • 发明设计人 冯冬芹;王强;褚健;金建祥;

    申请日2009-04-15

  • 分类号H04L12/28;H04L12/40;

  • 代理机构北京集佳知识产权代理有限公司;

  • 代理人逯长明

  • 地址 310053 浙江省杭州市滨江区六和路309号中控科技园(高新区)

  • 入库时间 2023-12-17 22:40:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-05

    未缴年费专利权终止 IPC(主分类):H04L12/28 授权公告日:20120201 终止日期:20180415 申请日:20090415

    专利权的终止

  • 2012-02-01

    授权

    授权

  • 2009-11-11

    实质审查的生效

    实质审查的生效

  • 2009-09-16

    公开

    公开

说明书

技术领域

本发明涉及数控技术,尤其涉及基于以太网的发送数据的技术。

背景技术

随着以太网技术的飞速发展,越来越多的通信系统都采用以太网这种通信方式。以太网安装量大,技术成熟,价格低廉,通信速度较其它的传统的串行通信方式具有较大的优势。

目前,有些控制系统内部也采用以太网这种通信方式,例如,有些数控系统内部就采用以太网这种通信方式。控制系统包括至少一个控制设备和至少一个测量执行设备,一个控制设备控制至少一个测量执行设备。

以太网在应用中多采用载波监听多路访问(CSMA/CD)机制进行数据发送。在实际应用中,控制系统内部的各个节点(包括控制设备和测量执行设备)监听信道,当信道空闲时,需要发送数据的节点可以发送数据。

但是,如果多个节点同时发送数据,那么就有可能会发生发送数据冲突(Collision)的现象,进而导致某些节点或所有的需要发送数据的节点发送数据失败。

对于上述因冲突而产生的问题,现有的一种解决方法是,需要发送数据的节点一旦发生数据发送冲突的现象,就采用退避方法,即,延迟一段时间后再尝试发送数据。

然而,发明人在仔细研究上述的解决方法后发现,当需要发送数据的节点在延迟一段时间后再次尝试发送数据时,可能还会发生发送数据冲突的现象,这样,需要发送数据的节点还需要再次延迟一段时间后,才能再次尝试发送数据。如果这种现象一直持续下去的话,那么需要发送数据的节点就会在相当长的时间内无法发送数据,甚至可能不能确定会在什么时间才能发送数据。所以,现有的退避方法不能从根本上解决发送数据冲突的问题。

发明内容

本发明提供基于以太网的发送数据的方法、以太网节点及控制系统,用以从根本上解决发送数据冲突的问题。

一种基于以太网的发送数据的方法,应用于包括多个节点的控制系统中,所述发送数据的方法包括:第一节点缓存需要发送的数据;如果当前通信宏周期包括用于第一节点发送数据的时间段,则第一节点在当前通信宏周期内的用于第一节点发送数据的时间段,发送缓存的数据,如果当前通信宏周期不包括用于第一节点发送数据的时间段,则第一节点不在当前通信宏周期内发送缓存的数据,其中,其他节点不在当前通信宏周期内的用于第一节点发送数据的时间段发送数据,每个通信宏周期的时长都相同,每个通信宏周期由多个长度固定的时间段组成。

一种以太网节点,应用于包括多个以太网节点的控制系统中,所述以太网节点包括:缓存单元,缓存需要发送的数据;第一判断单元,在缓存单元缓存需要发送的数据后,判断当前通信宏周期是否包括用于所述以太网节点发送数据的时间段;数据处理单元,如果第一判断单元判断出当前通信宏周期包括用于所述以太网节点发送数据的时间段,则数据处理单元在当前通信宏周期内的用于所述以太网节点发送数据的时间段,发送缓存单元缓存的数据,如果第一判断单元判断出当前通信宏周期不包括用于以太网节点发送数据的时间段,则数据处理单元不在当前通信宏周期内发送缓存单元缓存的数据,其中,其他节点不在当前通信宏周期内的用于所述以太网节点发送数据的时间段发送数据;其中,每个通信宏周期的时长都相同,每个通信宏周期由多个长度固定的时间段组成。

一种控制系统,包括,控制设备及多个测量执行设备;所述控制设备,控制至少一个测量执行设备,并且在用于所述控制设备发送数据的通信宏周期内的时间段发送数据;所述多个测量执行设备,受所述控制设备控制,并且每个测量执行设备都在用于其发送数据的通信宏周期内的时间段发送数据;其中,任意一个通信宏周期内的任意一个时间段只能被所述控制设备和所述多个测量执行设备中的一个设备占用,并且,每个通信宏周期的时长都相同,每个通信宏周期由多个长度固定的时间段组成。

在本发明中,控制系统中的每个节点都在用于其发送数据的时间段发送数据,这样就避免了因多个节点在同一时间发送数据而引发的发送数据的冲突,并且,还能保证每个节点都能在确定的时间将数据发送出去,避免了需要发送数据的节点在相当长的时间内无法发送数据。

附图说明

图1为本发明的一种基于以太网的发送数据的方法的流程图;

图2为本发明的一种以太网节点的逻辑结构示意图;

图3为本发明的以太网采用的几种拓扑结构的示意图;

图4为本发明的基于IEEE1588精确时钟协议的时钟同步过程示意图;

图5为本发明的通信宏周期的一种设置方式示意图;

图6为本发明的基于图5所示的通信宏周期的数据发送方式示意图;

图7为本发明的周期数据的一种结构示意图;

图8为本发明的一种申请、授权过程示意图;

图9为本发明的一个设备进行通信调度管理的流程图;

图10为本发明的一个设备处理数据的流程图;

图11为本发明的以太网采用的菊花链结构的示意图;

图12为本发明的一种时钟同步过程示意图;

图13为本发明的通信宏周期的另一种设置方式示意图;

图14为本发明的基于图13所示的通信宏周期的数据发送方式示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

首先需要说明的是,本发明的所有实施例都可以应用在基于以太网的控制系统中。

控制系统可以包括多个节点,其中,至少有一个节点是具有控制其他节点工作的控制设备,至少有一个节点是受控制设备控制的测量执行设备,测量执行设备的主要功能是测量和执行。例如,控制系统可以是数控系统,数控系统包括至少一个数控设备和至少一个受数控设备控制的伺服驱动器。

以太网可以是由控制系统中的各个节点、网桥和交换机等设备组成的局域网。以太网可以采用星形、菊花链形、环形等拓扑结构,当然,也可以采用这些拓扑结构混合后的结构。

下面所有的实施例中提到的通信宏周期是指,由多个长度固定的时间段组成的周期,每个通信宏周期的时长都相同。一个通信宏周期内的各个时间段的长度可以根据时间段对应的节点的性能来设置,这种情况下,一个通信宏周期内的所有时间段的长度有可能相同,也可能只有一部分时间段的长度相同,还可能是所有时间段的长度完全不相同。一般来说,任意一个时间段只允许一个节点占用,以用来发送数据。

在本发明中,每个通信宏周期的设置方式至少有两种。

其中的一种方式为,每个通信宏周期内的每个时间段都预先指定给一个节点,即,每个时间段都预先对应一个节点,这样,对于每个时间段,都会有一个预先指定的节点来占用,以用于节点发送数据。在具体实现时,每个通信宏周期内的相同时间段可以指定给同一个节点,这样,这个节点就在每个通信宏周期内的这个相同时间段发送数据。例如,将每个通信宏周期内的第一个时间段指定给具有控制其他节点工作的控制设备,这样,控制设备就在每个通信宏周期内的第一个时间段发送数据。另外,不同通信宏周期内的相同时间段可以指定给不同的节点,也就是说,几个节点复用同一个时间段。例如,将第n(n是正整数)个通信宏周期的第一个时间段指定给控制设备,将第n+1个通信宏周期的第一个时间段指定给控制系统中的测量执行设备1,这样,控制设备和测量执行设备1交替占用第一个时间段。

通信宏周期的第二种设置方式为,每个通信宏周期内除包括至少一个预先指定给节点的时间段外,还包括一个随机时间段,这个随机时间段并不预先指定给某个节点占用,而是在各个节点依据各自的时间段发送数据的过程中,通过一定的策略来指定由哪个节点占用。例如,假设通信宏周期除包括预先指定给节点的第一个时间段、第二个时间段和第三个时间段外,还包括一个随机时间段,第一个时间段、第二个时间段和第三个时间段分别可以由预先指定的节点占用,而随机时间段只能由获得授权占用随机时间段的节点来占用。在实际应用中,一个节点可能会连续多次获得授权占用不同的通信宏周期内的随机时间段。当然,不同的通信宏周期内的随机时间段也可能由不同的节点获得授权后占用。另外,一般来说,不同的通信宏周期内的随机时间段的长度都是相同的。

当然,通信宏周期的设置方式还可能是其他方式,在具体实现时,可以由本领域技术人员根据实际需要而灵活设置。由于下面的所有实施例中的通信宏周期主要使用了上述两种设置方式,所以这里不再对通信宏周期的设置方式一一举例说明。

下面对本发明的一种基于以太网的发送数据的方法进行说明。如图1所示,包括:

S101:第一节点缓存需要发送的数据;

S102:如果当前通信宏周期包括用于第一节点发送数据的时间段,则第一节点在当前通信宏周期内的用于第一节点发送数据的时间段,发送缓存的数据,如果当前通信宏周期不包括用于第一节点发送数据的时间段,则第一节点不在当前通信宏周期内发送缓存的数据,其中,其他节点不在当前通信宏周期内的用于第一节点发送数据的时间段发送数据,每个通信宏周期的时长都相同,每个通信宏周期由多个长度固定的时间段组成。

具体的,需要发送的数据可以是指第一节点需要转发的数据,也可以是指第一节点自己产生的需要发送出去的数据。

第一节点缓存需要发送的数据后,可以判断当前通信宏周期是否包括用于第一节点发送数据的时间段。

如果发现当前通信宏周期包括用于第一节点发送数据的时间段,那么第一节点就可以在当前通信宏周期内的用于第一节点发送数据的时间段,发送缓存的数据。在实际应用中,缓存的数据量有时会比较大,这种情况下,第一节点在当前通信宏周期内的用于其发送数据的时间段,可以只发送缓存中的一部分数据,剩余的数据可以在后续的一个或多个用于第一节点发送数据的时间段发送。

如果当前通信宏周期不包括用于第一节点发送数据的时间段,那么第一节点就不在当前通信宏周期内发送缓存的数据。

前面提到过,任意一个时间段可以只由预先指定的一个节点占用。也就是说,一个时间段只能由一个节点唯一占用,并且每个时间段都可以预先指定给一个节点。这样,当控制系统上电开始运行后,每个节点都在预先指定给自己的时间段发送数据。

前面也提到过,每个通信宏周期都可以包括一个随机时间段,所述随机时间段由成功申请到占用所述随机时间段的一个节点占用,除所述随机时间段外,每个通信宏周期内的其他任意一个时间段只能由预先指定的一个节点占用。也就是说,一个时间段只能由一个节点唯一占用,除随机时间段之外的每个时间段都可以预先指定给一个节点。不但如此,随机时间段并不预先指定给某个节点占用,而是由成功申请到占用随机时间段的一个节点占用。这样,当控制系统上电开始运行后,每个节点都在预先指定给自己的除随机时间段之外的时间段发送数据,此外,每个节点还可以申请占用随机时间段,如果某个节点成功申请到占用某个随机时间段,那么这个节点就在这个随机时间段发送数据。

需要说明的是,节点在预先指定的用于其发送数据的时间段发送的数据可以是需要周期性发送且对实时性要求较高的数据,例如与测量、控制密切相关的数据,包括控制字、状态字、位置、速度、扭矩等。节点在随机时间段发送的数据可以是在特定条件下产生的、对实时性要求不高的数据,例如,用于设备管理和参数配置的设置,具体的,例如IEEE1588同步报文、应用层服务报文和其他基于TCP/IP的IT领域通用报文等。

还需要说明的是,如果当前通信宏周期内包括随机时间段,并且第一节点不能占用当前通信宏周期内的随机时间段发送数据,那么这种情况也算是S102中提到的当前通信宏周期不包括用于第一节点发送数据的时间段。

请再参见S101和S102,如果第一节点需要向第二节点请求申请占用随机时间段,那么第一节点在当前通信宏周期内的用于其发送数据的时间段、发送数据的同时或之后,可以向第二节点请求占用后一个通信宏周期内的随机时间段。如果在后一个通信宏周期内获得第二节点允许占用后一个通信宏周期内的随机时间段的响应,那么第一节点就可以在后一个通信宏周期内的随机时间段发送数据。当然,如果后一个通信宏周期包括用于第一节点发送数据的时间段,那么第一节点还可以在后一个通信宏周期内的用于其发送数据的时间段发送数据。优选的,第一节点可以将用于请求的字段设置在发送给第二节点的数据中,请求的字段的内容例如是第一节点发送数据的优先级,第二节点可以将授权的字段设置在发送(也可以是广播)给第一节点的数据中,授权的字段的内容例如是第一节点的标识,这样,第一节点和第二节点不但将需要发送的数据发送出去了,还完成了申请、授权的工作,不但节省了时间,还节省了消息资源。

如果第一节点是授权其他节点占用随机时间段的节点,那么第一节点缓存需要发送的数据之前,还可以在前一个通信宏周期内,获得第三节点发送的占用当前通信宏周期内的随机时间段的请求。如果第一节点允许第三节点占用当前通信宏周期内的随机时间段,那么第一节点可以在当前通信宏周期内的用于其发送数据的时间段,向第三节点发送允许占用当前通信宏周期内的随机时间段的响应。这样,第三节点就可以在当前通信宏周期内的随机时间段发送数据。

在本发明中,每个节点都要在预先指定给自己的时间段或通过申请获得授权占用的随机时间段发送数据,为保证每个节点都能准时的在用于自己发送数据的时间段发送数据,控制系统中的各个节点最好都能经常性的调整本地时钟,即经常性的进行网络时钟的同步。

时钟同步的一种方式为,采用简单网络时间协议(SNTP,Simple NetworkTime Protocol)或IEEE1588协议。此外,本发明还提供了另外一种时钟同步方式。

请再参见S101和S102。如果第一节点不是时钟源,那么在S102之前,如果第一节点收到时钟源在一个用于时钟源发送数据的时间段发送的第一数据后,那么第一节点记录第一数据到达本地的时刻。之后,第一节点会收到时钟源在另一个用于时钟源发送数据的时间段发送的第二数据,第二数据中包括时钟源发送第一数据的时刻。这样,第一节点就可以根据第一数据到达本地的时刻、时钟源发送第一数据的时刻及第一节点与时钟源之间的线路延时,校正本地时钟。

如果第一节点是时钟源,那么在S102的同时或之后,第一节点记录在当前通信宏周期内的用于其发送数据的时间段发送数据的时刻,收到第一节点发送的上述数据的节点可以记录收到上述数据的时刻,第一节点在后一个用于其发送数据的时间段发送的数据中可以包括第一节点记录的上述时刻。这样,前后两次收到第一节点发送的数据的节点就可以根据上述第一节点记录的时刻、上述收到第一节点发送的数据时记录的时刻和与第一节点之间的线路延时,校正本地时钟。

在具体实现时,一般将控制设备作为时钟源,当然,也可以将其他节点作为时钟源。本发明对此不作限定,只要能够保证各个节点之间保持时钟同步即可。

需要说明是,S101和S102中的第一节点可以是控制系统中的控制设备,也可以是控制系统中的测量执行设备。例如,第一节点可以是数控系统中的数控设备,也可以是数控系统中的伺服驱动器。

对应于上述的基于以太网的发送数据的方法,本发明还提供一种以太网节点,如图2所示,包括:缓存单元201,缓存需要发送的数据;第一判断单元202,在缓存单元201缓存需要发送的数据后,判断当前通信宏周期是否包括用于所述以太网节点发送数据的时间段;数据处理单元203,如果第一判断单元202判断出当前通信宏周期包括用于所述以太网节点发送数据的时间段,则数据处理单元203在当前通信宏周期内的用于所述以太网节点发送数据的时间段,发送缓存单元201缓存的数据,如果第一判断单元202判断出当前通信宏周期不包括用于以太网节点发送数据的时间段,则数据处理单元203不在当前通信宏周期内发送缓存单元201缓存的数据,其中,其他节点不在当前通信宏周期内的用于所述以太网节点发送数据的时间段发送数据;其中,每个通信宏周期的时长都相同,每个通信宏周期由多个长度固定的时间段组成。

具体的,需要发送的数据可以是指图2所示的以太网节点需要转发的数据,也可以是指图2所示的以太网节点自己产生的需要发送出去的数据。

缓存单元201缓存需要发送的数据后,第一判断单元202可以判断当前通信宏周期是否包括用于图2所示的以太网节点(具体是指数据处理单元203)发送数据的时间段。

如果发现当前通信宏周期包括用于图2所示的以太网节点发送数据的时间段,那么数据处理单元203就可以在当前通信宏周期内的用于图2所示的以太网节点发送数据的时间段,发送缓存的数据。在实际应用中,缓存单元201缓存的数据量有时会比较大,这种情况下,数据处理单元203在当前通信宏周期内的用于其发送数据的时间段,可以只发送缓存中的一部分数据,剩余的数据可以在后续的一个或多个用于图2所示的以太网节点发送数据的时间段发送。

如果第一判断单元202判断出当前通信宏周期不包括用于图2所示的以太网节点发送数据的时间段,那么数据处理单元203就不在当前通信宏周期内发送缓存的数据。

前面提到过,任意一个时间段可以只由预先指定的一个节点占用。也就是说,一个时间段只能由一个节点唯一占用,并且每个时间段都可以预先指定给一个节点。这样,当控制系统上电开始运行后,每个节点都在预先指定给自己的时间段发送数据。

前面也提到过,每个通信宏周期都可以包括一个随机时间段,所述随机时间段由成功申请到占用所述随机时间段的一个节点占用,除所述随机时间段外,每个通信宏周期内的其他任意一个时间段只能由预先指定的一个节点占用。也就是说,一个时间段只能由一个节点唯一占用,除随机时间段之外的每个时间段都可以预先指定给一个节点。不但如此,随机时间段并不预先指定给某个节点占用,而是由成功申请到占用随机时间段的一个节点占用。这样,当控制系统上电开始运行后,每个节点都在预先指定给自己的除随机时间段之外的时间段发送数据,此外,每个节点还可以申请占用随机时间段,如果某个节点成功申请到占用某个随机时间段,那么这个节点就在这个随机时间段发送数据。

需要说明的是,节点在预先指定的用于其发送数据的时间段发送的数据可以是需要周期性发送且对实时性要求较高的数据,例如与测量、控制密切相关的数据,包括控制字、状态字、位置、速度、扭矩等。节点在随机时间段发送的数据可以是在特定条件下产生的、对实时性要求不高的数据,例如,用于设备管理和参数配置的设置,具体的,例如IEEE1588同步报文、应用层服务报文和其他基于TCP/IP的IT领域通用报文等。

还需要说明的是,如果当前通信宏周期内包括随机时间段,并且数据处理单元203不能占用当前通信宏周期内的随机时间段发送数据,那么这种情况也算是第一判断单元202判断出当前通信宏周期不包括用于以太网节点发送数据的时间段中的一种情况。

图2所示的以太网节点还可以包括请求单元204,用于在数据处理单元203在当前通信宏周期内的用于图2所示的以太网节点发送数据的时间段、发送数据的同时或之后,向第二以太网节点请求占用后一个通信宏周期内的随机时间段;第一获得单元205,用于在请求单元204向第二以太网节点请求占用后一个通信宏周期内的随机时间段之后,在所述后一个通信宏周期内获得第二以太网节点允许占用所述后一个通信宏周期内的随机时间段的响应;数据处理单元203在后一个通信宏周期内获得第二以太网节点允许占用后一个通信宏周期内的随机时间段的响应,那么数据处理单元203就可以在后一个通信宏周期内的随机时间段发送数据。当然,如果后一个通信宏周期包括用于图2所示的以太网节点发送数据的时间段,那么数据处理单元203还可以在后一个通信宏周期内的用于其发送数据的时间段发送数据。优选的,数据处理单元203可以将用于请求的字段设置在发送给第二以太网节点的数据中,请求的字段的内容例如是图2所示的以太网节点发送数据的优先级,第二以太网节点可以将授权的字段设置在发送(也可以是广播)给图2所示的以太网节点的数据中,授权的字段的内容例如是图2所示的以太网节点的标识,这样,图2所示的以太网节点和第二以太网节点不但将需要发送的数据发送出去了,还完成了申请、授权的工作,不但节省了时间,还节省了消息资源。

如果图2所示的以太网节点是授权其他节点占用随机时间段的节点,那么图2所示的以太网节点还可以包括:第二获得单元206,用于在缓存单元201缓存需要发送的数据之前,在前一个通信宏周期内,获得第三以太网节点发送的占用当前通信宏周期内的随机时间段的请求;第二判断单元207,用于在第二获得单元206获得第三以太网节点发送的占用当前通信宏周期内的随机时间段的请求后,判断是否允许第三以太网节点占用当前通信宏周期内的随机时间段。如果第二判断单元207判断出允许第三以太网节点占用当前通信宏周期内的随机时间段,那么数据处理单元203可以在当前通信宏周期内的用于其发送数据的时间段,向第三以太网节点发送允许占用当前通信宏周期内的随机时间段的响应。这样,第三以太网节点就可以在当前通信宏周期内的随机时间段发送数据。

在本发明中,每个以太网节点都要在预先指定给自己的时间段或通过申请获得授权占用的随机时间段发送数据,为保证每个以太网节点都能准时的在用于自己发送数据的时间段发送数据,控制系统中的各个以太网节点最好都能经常性的调整本地时钟,即经常性的进行网络时钟的同步。

时钟同步的一种方式为,采用简单网络时间协议(SNTP,Simple NetworkTime Protocol)或IEEE1588协议。此外,本发明还提供了另外一种时钟同步方式。

请继续参见图2。如果图2所示的以太网节点不是时钟源,那么图2所示的以太网节点还可以包括:第三获得单元208,用于在数据处理单元203发送缓存单元201缓存的数据之前,收到时钟源在一个用于时钟源发送数据的时间段发送的第一数据;第一记录单元209,用于在第三获得单元208收到时钟源发送的第一数据后,记录第一数据到达本地的时刻。第三获得单元208收到第一数据后,还可以收到时钟源在另一个用于时钟源发送数据的时间段发送的第二数据,第二数据中包括时钟源发送第一数据的时刻。图2所示的以太网节点还可以包括时钟校正单元210,用于根据第一数据到达本地的时刻、时钟源发送第一数据的时刻及第一节点与时钟源之间的线路延时,校正图2所示的以太网节点的时钟。

如果图2所示的以太网节点是时钟源,那么图2所示的以太网节点还可以包括:第二记录单元211,用于在数据处理单元203发送缓存单元201缓存的数据的同时或之后,记录在当前通信宏周期内的用于图2所示的以太网节点发送数据的时间段发送数据的时刻,收到图2所示的以太网节点发送的上述数据的节点可以记录收到上述数据的时刻,数据处理单元203在后一个用于图2所示的以太网节点发送数据的时间段发送的数据中可以包括第二记录单元211记录的上述时刻。这样,前后两次收到图2所示的以太网节点发送的数据的节点就可以根据第二记录单元211记录的时刻、上述收到图2所示的以太网节点发送的数据时记录的时刻和与第一节点之间的线路延时,校正本地时钟。

需要说明是,图2所示的以太网节点可以是控制系统中的控制设备,也可以是控制系统中的测量执行设备。例如,图2所示的以太网节点可以是数控系统中的控制设备,也可以是控制系统中的测量执行设备。

除上述的基于以太网的发送数据的方法及以太网节点外,本发明还提供一种控制系统,包括,控制设备及多个测量执行设备;所述控制设备,控制至少一个测量执行设备,并且在用于所述控制设备发送数据的通信宏周期内的时间段发送数据;所述多个测量执行设备,受所述控制设备控制,并且每个测量执行设备都在用于其发送数据的通信宏周期内的时间段发送数据;其中,任意一个通信宏周期内的任意一个时间段只能被所述控制设备和所述多个测量执行设备中的一个设备占用,以用于所述一个设备发送数据,并且,每个通信宏周期的时长都相同,每个通信宏周期由多个长度固定的时间段组成。

前面提到过,任意一个时间段可以只由预先指定的一个设备占用。也就是说,一个时间段只能由一个设备唯一占用,并且每个时间段都可以预先指定给一个设备。这样,当控制系统上电开始运行后,每个设备都在预先指定给自己的时间段发送数据。

前面也提到过,每个通信宏周期都可以包括一个随机时间段,所述随机时间段由成功申请到占用所述随机时间段的一个设备占用,除所述随机时间段外,每个通信宏周期内的其他任意一个时间段只能由预先指定的一个设备占用。也就是说,一个时间段只能由一个设备唯一占用,除随机时间段之外的每个时间段都可以预先指定给一个设备。不但如此,随机时间段并不预先指定给某个设备占用,而是由成功申请到占用随机时间段的一个设备占用。这样,当控制系统上电开始运行后,每个设备都在预先指定给自己的除随机时间段之外的时间段发送数据,此外,每个设备还可以申请占用随机时间段,如果某个节点成功申请到占用某个随机时间段,那么这个设备就在这个随机时间段发送数据。

需要说明的是,设备在预先指定的用于其发送数据的时间段发送的数据可以是需要周期性发送且对实时性要求较高的数据,例如与测量、控制密切相关的数据,包括控制字、状态字、位置、速度、扭矩等。节点在随机时间段发送的数据可以是在特定条件下产生的、对实时性要求不高的数据,例如,用于设备管理和参数配置的设置,具体的,例如IEEE1588同步报文、应用层服务报文和其他基于TCP/IP的IT领域通用报文等。

每个测量执行设备都可以在用于其发送数据的时间段向所述控制设备请求占用后一个通信宏周期内的随机时间段;所述控制设备可以在后一个通信宏周期内的用于其发送数据的时间段,向所有发出所述请求的测量执行设备中的一个测量执行设备,发送允许占用后一个通信宏周期内的随机时间段的响应。优选的,测量执行设备可以将用于请求的字段设置在发送给控制设备的数据中,请求的字段的内容例如是测量执行设备发送数据的优先级,控制设备可以将授权的字段设置在发送(也可以是广播)给测量执行设备的数据中,授权的字段的内容例如是测量执行设备的标识,这样,控制设备和测量执行设备不但将需要发送的数据发送出去了,还完成了申请、授权的工作,不但节省了时间,还节省了消息资源。

受所述控制设备直接控制的测量执行设备可以称为第一级测量执行设备,每个第一级测量执行设备直接控制至少一个第二级测量执行设备;每个第二级测量执行设备都可以在用于其发送数据的时间段向直接控制自身的第一级测量执行设备请求占用后一个通信宏周期内的随机时间段;每个第一级测量执行设备都可以从其直接控制的第二级测量执行设备中选择出允许占用后一个通信宏周期内的随机时间段的第二级测量执行设备,并可以在用于其发送数据的时间段向所述控制设备请求占用后一个通信宏周期内的随机时间段,所述请求中包括用于标识选择出的第二级测量执行设备的信息;所述控制设备可以在后一个通信宏周期内的用于其发送数据的时间段,向所有发出所述请求的第一级测量执行设备中的一个第一级测量执行设备,发送允许占用后一个通信宏周期内的随机时间段的响应;所述一个第一级测量执行设备向其选择出的第二级测量执行设备,发送允许占用后一个通信宏周期内的随机时间段的响应。当然,申请、授权也可以有第三级测量执行设备或更多级测量执行设备参与。也就是说,申请、授权可以多级进行。

在本发明中,每个设备都要在预先指定给自己的时间段或通过申请获得授权占用的随机时间段发送数据,为保证每个设备都能准时的在用于自己发送数据的时间段发送数据,控制系统中的各个设备最好都能经常性的调整本地时钟,即经常性的进行网络时钟的同步。

时钟同步的一种方式为,采用简单网络时间协议(SNTP,Simple NetworkTime Protocol)或IEEE1588协议。此外,本发明还提供了另外一种时钟同步方式。

如果控制设备是时钟源,那么控制设备可以在发送第一数据的同时或之后,记录发送第一数据的时刻;接收第一数据的测量执行设备可以记录第一数据到达本地的时刻;控制设备在后一个用于其发送数据的时间段发送的第二数据可以包括发送第一数据的时刻;接收第一数据的测量执行设备收到第二数据后,可以根据所述控制设备发送第一数据的时刻、第一数据到达本地的时刻及本地与所述控制设备之间的线路延时,校正本地时钟。

在具体实现时,一般将控制设备作为时钟源,当然,也可以将某个测量执行设备作为时钟源。本发明对此不作限定,只要能够保证各个设备之间保持时钟同步即可。

需要说明的是,上述的控制系统例如是数控系统,控制设备例如是数控系统中的数控设备,测量执行设备例如是数控系统中的伺服驱动器。

为使本领域技术人员更加清楚的理解本发明,下面再以数控系统为例,介绍本发明的几个优选实施例。

第一个优选实施例

图3所示的是本发明的以太网采用的星形、菊花链、环形等拓扑结构。第一个优选实施例采用星形结构,如图3所示,局域网由1个数控设备、3个伺服驱动器及1个工业交换机构成。

如图4所示,时钟同步采用IEEE1588精确时钟协议,设定数控设备为主时钟(即时钟源),伺服驱动器为从时钟,主时钟与从时钟进行同步。在数控系统上电后,各伺服驱动器测量自身与数控设备之间的线路延时,并保存此线路延时。线路延时测量方法如下:

数控设备发送同步(SYNC)报文,记录SYNC报文发送时刻Tsn=1000000ns,并将此时间戳(即发送时刻Tsn)携带在Follow_Up报文中;

伺服驱动器接收SYNC报文,记录SYNC报文到达时刻Tdn=1300500ns;

伺服驱动器发送Delay_Req报文,记录Delay_Req报文发送时刻Tsn+1=1360000ns;

数控设备接收到Delay_Req报文,记录Delay_Req报文到达时刻Tdn+1=1060500ns,并将此时间戳(到达时刻Tdn+1)携带在Delay_Rsp报文中;

伺服驱动器接收到Delay_Rsp报文后,采用下列公式计算线路延时:

Delayn=(Tdn+1-Tsn+1)+(Tdn-Tsn)2

=(1060500-1360000)+(1300500-1000000)2

=500ns

随后,数控设备周期性发送SYNC报文,接收到此SYNC报文的伺服驱动器与发送该SYNC报文的数控设备进行同步。数控设备和各个伺服驱动器均维护一个相对时钟,且各个伺服驱动器周期性的与数控设备对时,并校正本地时钟。

同步偏差计算方法如下:

数控设备发送SYNC报文,记录SYNC报文发送时刻Tsn+2=2000000ns,并将此时间戳(即发送时刻Tsn+2)在Follow_Up报文中发送;

伺服驱动器接收SYNC报文,记录SYNC报文到达时时刻

Tdn+2=2300500ns,采用下列公式计算同步偏差:

Offsetn=Tdn+2-Tsn+2-Delayn

=2300500-2000000-500

=300000ns

伺服驱动器将本地时钟减去Offsetn即完成本次同步。待时钟同步完成后,通信调度开启,数控设备和各个伺服驱动器按照通信调度策略发送数据,即,开始进行发送数据的过程。

如图5所示,在第一个优选实施例中,通信宏周期包括随机时间段。图5所示的周期时间是指预先指定给设备的时间,周期时间包括多个时间槽(即时间段),每个时间段都预先指定给一个设备。图5所示的非周期时间就是上述的随机时间段。

如图6所示,数控设备、伺服驱动器1在每个通信宏周期内的各自时间槽内发送数据(例如是需要周期性发送的数据,简称为周期数据),伺服驱动器2和伺服驱动器3复用在同一个时间槽,交替发送数据(例如是需要周期性发送的数据,简称为周期数据)。伺服驱动器1通过通信宏周期a通过周期数据中的申请字段,申请发送可以非周期发送的数据(简称为非周期数据)。数控设备在通信宏周期b通过周期数据中的授权字段,指示伺服驱动器1在通信宏周期b的非周期时间发送非周期数据。伺服驱动器1获得授权后,在通信宏周期b的非周期时间发送非周期数据。

如图7所示,周期数据的结构中嵌入了申请、授权字段,这两个字段可以由位于数据链路层的通信调度管理子层来维护。在第一个优选实施例中,申请字段由各个伺服驱动器自行维护,伺服驱动器中的通信调度管理子层将本地设备的非周期数据队列中最高的优先级写入到申请字段。授权字段由数控设备维护,即,只有数控设备发送的周期数据中的授权字段是有意义的。数控设备中的通信调度管理子层处理各个伺服驱动器发送的申请字段,并通过指定伺服驱动器位号的方式,授权其中一个伺服驱动器发送非周期数据。

如图8所示,在第一个优选实施例中,采用优先级调度策略,即,数控设备根据各个伺服驱动器需要发送的非周期数据的优先级,来决定由哪个伺服驱动器占用非周期时间。假设在某个通信宏周期内,伺服驱动器1申请发送优先级为0x1的非周期数据,伺服驱动器2申请发送优先级为0x2的非周期报文,伺服驱动器3没有非周期数据要发送,所以将申请字段置为保留值0xff。在下一个通信宏周期,数控设备通过指定位号16的方式,指示伺服驱动器1在下一个通信宏周期内的非周期数据发送非周期数据。

如图9所示,通信调度管理可以通过事件触发的形式来实现,通信调度管理是针对一个设备而言的。具体流程如下:

S901:通信调度开启;

S902:通信调度管理子层将周期时间开始事件作为第一个事件插入到定时事件列表中,并等待;

S903:当周期时间开始时,响应周期时间开始事件,将周期数据发送事件插入到定时事件列表,组织周期数据,将需要发送的周期数据写入到网卡存储区中,并等待;

S904:当周期数据发送的时间到达时,响应周期数据发送事件,发送网卡存储区中的数据,将非周期时间开始事件插入到定时事件列表中,并等待;

S905:当非周期时间开始时,响应非周期时间开始事件;

S906:查询本设备是否被授权发送非周期数据。如果被授权,则转S907,如果未被授权,则转S902;

S907:查询非周期数据队列是否为空,如果不是,则转S908,否则,转S902;

S908:根据非周期数据队列中最高优先级的数据的长度判断非周期时间是否充足。如果非周期时间足以发送非周期数据,则转S909;如果非周期时间不足以发送非周期数据,则转S902;

S909:发送非周期数据,转S902。

如图10所示,数控设备和各个伺服驱动器在处于等待状态时,可以处理接收到的数据。接收数据可以采用中断或查询方式。在第一个优选实施例中,采用中断方式。

S1001:网卡产生中断,进入网卡中断处理程序;

S1002:检查网卡存储区是否有数据,如果有,则转S1003,否则,转S1010;

S1003:将数据取到内存中,判断数据类型。如果是周期数据,则转S1004,如果是非周期数据,则转S1006;

S1004:对于伺服驱动器,转S1005;对于数控设备,取出申请字段中的内容,进行周期调度管理,转S1005。具体的,如果当前记录的优先级为0xff,并且申请字段中的优先级不为0xff,则记录申请字段中的优先级,并记录伺服驱动器的位号;如果当前记录的优先级不为0xff,则比较申请地段中的优先级与当前记录的优先级,如果申请字段中的优先级较高,则记录申请字段中的优先级,并记录伺服驱动器的位号;

S1005:将周期数据交付功能块处理。

S1006:判断携带数据的报文的类别。如果是应用层定义的非周期服务报文,则转S1007。如果是IEEE1588同步报文,则转S1008;如果是其他协议定义的报文,例如TCP/IP或其他实时以太网技术定义的报文,则转S1009。

S1007:将报文交付应用层协议的功能块处理,转S1010;

S1008:将报文交付IEEE1588协议的功能块处理,转S1010;

S1009:将报文交付相关协议栈处理,转S1010;

S1010:退出中断处理程序。

第二个优选实施例

与第一个实施例的不同之处在于,第二个优选实施例中的以太网采用的拓扑结构是菊花链结构,时钟同步采用时间戳携带于发送的数据中的方式,通信宏周期不包括随机时间段。

如图11所示,数控系统包括1个数控设备和4个伺服驱动器。信号在双绞线上的传输延时为5.5ns/m,每个设备产生的延时为300ns。各个伺服驱动器与数控设备之间的线路延时为线上传输延时与设备延时之和。例如,伺服驱动器4与数控设备之间的线路延时Delayn为10872ns。

如图12所示,时钟同步采用时间戳携带于发送的数据中的方式。数控设备发送的周期数据中包括记录的上一次发送周期数据的时刻。例如,数控设备在通信宏周期a发送周期数据,并记录发送数据的时刻Tsn,在通信宏周期b,将发送数据的时刻Tsn携带于发送的数据中。伺服驱动器4在通信宏周期a接收到数控设备发送的周期数据,并记录数据的到达时刻Tdn。伺服驱动器4接收到携带发送数据的时刻Tsn的数据后,采用下列公式计算时钟同步偏差:

Offsetn=Tdn-Tsn-Delayn

=1000000-1000000-1087

=-1087ns

如图13所示,通信宏周期只包括周期时间,不包括非周期时间。

如图14所示,各个设备在指定的时间槽周期性的发送数据。发送的数据中可以同步数据、实时数据和非实时数据。

由于通信宏周期不包括非周期时间,所以在周期数据发送事件触发后,将周期时间开始事件插入到定时事件列表中。

各个设备在收到周期报文后,从周期报文中提取数据,根据数据类别选择相应的处理方式。其中,同步数据是用于时钟同步的信息,实时数据通常是指与控制相关的对实时性要求较高的数据,这部分数据交给相应的功能块处理。非实时数据包括对实时性要求不高的应用层服务的数据、TCP/IP协议以及其他协议数据,如果周期数据中的非实时数据区的长度小于要传输的数据长度,则可以采用多次传输的方式,例如,将非实时数据区中的数据分割发送,接收方可以将先后收到的非实时数据重新组合后交付相关协议处理。

综上所述,在本发明中,控制系统中的每个节点都在用于其发送数据的时间段发送数据,这样就避免了因多个节点在同一时间发送数据而引发的发送数据的冲突,并且,还能保证每个节点都能在确定的时间将数据发送出去,避免了需要发送数据的节点在相当长的时间内无法发送数据。

另外,在本发明中,如果申请占用随机时间段和授权占用随机时间段的过程可以通过节点发送数据的方式完成,那么不但可以节省申请、授权所占用的时间,还可以节省消息资源。

需要说明的是,对于本发明提供的以太网节点来说,其中包括的很多单元都是虚拟单元,即,由计算机语言的语句或语句组合实现。在实际应用中,不同语句的组合实现的功能可以有所不同,这种情况下,对虚拟单元的划分也可能有所不同。也就是说,本发明只是给出了一种虚拟单元的划分方式,在实际应用中,本领域技术人员可以根据实际需要而采用不同的虚拟单元的划分方式,只要保证能够实现本发明提到的以太网节点所具有的功能即可。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号