用于工业通信协议中的数据聚合的方法和系统的制作方法

文档序号:10660547阅读:312来源:国知局
用于工业通信协议中的数据聚合的方法和系统的制作方法
【专利摘要】本发明涉及用于工业通信协议中的数据聚合的方法和系统。公开了用于与通过连接至工业网络的模块传送的数据帧进行交互的方法和系统。每个模块包括位于物理层上方的网络接口上的聚合单元。为了传输数据,聚合单元从动态数据包中读取报头,以确定该模块是否为用于该包的参与者模块。如果是,则聚合单元将来自该模块的数据插入该数据包中,并且将包传输至另一模块。为了接收数据,聚合单元从数据包读取报头,以确定该数据包是否包括用于该模块的数据。如果该数据包包括用于该模块的数据,则聚合单元读取该数据,被将该数据包传送至另一模块。如果聚合单元确定该数据包不用于该模块,则在不进行进一步交互的情况下将该数据包传送至另一模块。
【专利说明】
用于工业通信协议中的数据聚合的方法和系统[0001]相关申请的交叉引用[0002]本申请要求于2015年3月30日提交的题为“Method and System for Data Aggregat1n in an Industrial Communicat1n Protocol” 的美国临时专利申请序列 N0.62/140,149的优先权,并且其公开内容被并入本文中。
技术领域
[0003]本发明涉及一种对经由工业协议传输的数据进行聚合的方法。更具体地,公开了一种方法,用于生成通过多个附加模块从第一模块传输至接收模块的动态数据帧,并且该方法用于当动态数据帧通过附加模块时将数据添加至动态数据帧。【背景技术】
[0004]工业的控制器是用于控制工厂自动化等的专用计算机。工业控制器通常执行被高度定制到特定控制应用的控制程序。特定的控制语言(例如“继电器梯形逻辑”)通常被用于利于对装置进行编程。在所存储的程序的引导下,工业控制器的处理器定期检查输入装置的状态,并且更新输出装置的状态。为了保证对机器或处理的可预测的控制,控制程序必须是高度可靠的,并且在明确限定的时间段执行。
[0005]随着工业处理的复杂性增加,越来越多的装置被连接至工业控制器。装置通常分布在机器周围或沿生产线分布。工业网络通常用于连接分布式装置,并且使得数据能够在装置之间传输。然而,越来越多的装置需要增加在这些装置之间的通信量。然而,控制程序仍然需要在明确限定的时间段中执行通信。因此,要么分配给通信的时间量必须增加,要么必须提高传输速率。因为工业控制器通常具有固定时间间隔(其中要执行程序的每个周期),所以更理想的是提高传输速率。
[0006]如本领域技术人员已知的那样,用于提高传输速率的最近的技术包括:在没有完全处理帧的情况下,将数据插入以太网帧,或者从以太网帧中提取数据。主装置生成数据帧,并且使数据帧以环型拓扑的方式流通通过一系列从装置。数据帧包括具有为每个从装置保留的部分的数据块。由于在每个从装置处接收帧,所以该装置可能在没有处理整个帧的情况下将数据插入在为该装置保留的数据块中的点中,或者从为该装置保留的数据块中的点中提取数据。在访问数据块的一部分之后,从装置将数据帧重新传输至下一个从装置。 最后的从装置将帧返回至主装置,以完成对帧的处理。
[0007]然而,在不招致各种缺点的情况下,这样的系统并没有被完全满足。主装置是能够生成数据帧的唯一装置。然后,数据帧以环形拓扑的方式流通至若干连接至主装置的从装置。因此,希望与来自第一装置上游的另一从装置进行通信的一个从装置首先必须将数据插入一个数据帧中,并且随后主装置必须包括到下一数据帧中的数据,上游的从装置可以在随后的通信周期中从该下一数据帧中提取数据。
[0008]因此,理想的是提供一种用于提高工业网络上的传输速率的改进的系统,该系统使得能够在装置之间进行双向通信。
[0009]现有系统的另一个缺点是:只有一个主装置可以与连接至该主装置的从装置中的任何从装置进行交流。虽然具有可以相互通信的多个远程的主装置是很常见的,但是如果远程主装置需要来自连接至第二主装置的从装置的数据,或者需要将数据供应给连接至第二主装置的从装置,则远程主装置无法与该从装置进行直接通信。
[0010]因此,理想的是提供一种用于提高工业网络上的传输速率的改进的系统,该系统提供用于远程装置之间的改进的通信。
【发明内容】

[0011]本文中公开的主题描述了一种用于提高工业网络上的传输速率的改进的系统,该系统使得在装置之间能够进行双向通信;以及一种用于提高工业网络上的传输速率的改进的系统,该系统提供用于远程装置之间的改进的通信。第一模块被配置成生成动态数据包, 该动态数据包将提供多个模块与接收模块之间的数据传输。动态数据包可实时配置,以对要参与到该动态数据包中的模块的不同组进行标识,并且动态数据包包括报头,其对参与到该动态数据包中的模块进行标识。每个模块包括聚合单元,并且动态数据包在第一模块与接收模块之间通过每个模块的聚合单元来顺序地传递。聚合单元首先检查报头,以确定该聚合单元所在的模块是否要参与到动态数据包中。如果该模块未参与到动态数据包中, 则聚合单元将该动态数据包传送至第一模块与接收模块之间的链中的下一模块。如果该模块参与到动态数据包中,则该模块将其参与者数据插入动态数据包中,确定用于该数据包的新的校验和,并且将现有校验和替换为新的校验和。在将来自相应模块的参与者数据插入动态数据包之后,聚合单元将该动态数据包传送至第一模块与接收模块之间的链中的下一模块。因此,接收模块接收包含来自参与模块中的每个的数据的单个数据包而不是多个数据包,其中从每个模块发送单独的包。
[0012]接收模块反过来可以发送具有每个参与模块的数据的单个包。接收模块生成数据包并且插入标识符以及该数据包意图传输数据至的每个模块的数据。该数据包从接收模块传输回第一模块。聚合单元在连接在接收模块与第一模块之间的每个模块处检查包,以确定在该包内是否识别到用于该聚合单元的相应的模块。如果该模块没有从该数据包接收到数据,则聚合单元将该数据包传送至接收模块与第一模块之间的链中的下一模块。如果该模块从该数据包接收到数据,则该模块从该包读取针对该模块的数据,然后将该数据包传送至接收模块与第一模块之间的链中的下一模块。因此,单个返回数据包可以将数据传输至多个模块,而不是接收模块生成至每个参与模块的单独的返回包。可以构想的是,动态数据包和返回数据包可以在工业网络内的任何两个装置之间传输,其中,第一模块限定目的地和位于第一模块与接收模块之间的任何参与模块。
[0013]根据本发明的一个实施例,公开了一种用于从多个发送模块向单个接收模块传输数据的方法。该方法包括:在第一发送模块中生成包括专用报头的动态数据帧;以及在各发送模块中的每个发送模块中的聚合单元处从多个发送模块中的另一发送模块接收动态数据帧。每个发送模块根据专用报头确定该发送模块是否为动态数据帧中的参与者。当发送模块确定其是动态数据帧中的参与者时,聚合单元将参与者数据添加至该动态数据帧,并且将添加有参与者数据的动态数据帧传输至接收模块或另一发送模块。
[0014]根据本发明的另一实施例,公开了一种用于在工业网络上传送动态数据帧的模块。该模块包括第一端口、第二端口和聚合单元。第一端口可操作地从工业网络接收动态数据帧,其中,该动态数据帧包括专用报头。第二端口可操作地在工业网络上传输动态数据帧,并且聚合单元与第一端口和第二端口进行通信。聚合单元可操作地用于:从第一端口接收动态数据帧,根据专用报头确定该模块是否为用于动态数据帧的参与者模块,当该模块是参与者模块时,将参与者数据添加至动态数据帧,以及经由第二端口来传输添加有参与者数据的动态数据帧。
[0015]根据本发明的又一实施例,公开了一种用于减少工业网络上的网络流量的系统。 该系统包括多个发送模块和接收模块。每个发送模块包括第一端口、第二端口和聚合单元。 第一端口可操作地从工业网络接收动态数据帧,其中,动态数据帧包括专用报头。第二端口可操作地在工业网络上传输动态数据帧,并且聚合单元与第一端口和第二端口进行通信。 聚合单元可操作地用于:从第一端口接收动态数据帧;根据专用报头确定该模块是否为用于动态数据帧的参与者模块,当该模块是参与者模块时,将参与者数据添加至动态数据帧; 以及经由第二端口来传输添加有参与者数据的动态数据帧。接收模块包括通信端口和处理器。该端口与工业网络进行通信以从多个发送模块中的一个发送模块接收动态数据帧,并且处理器可操作地从动态数据帧中提取用于多个发送模块中的每个发送模块的参与者数据。
[0016]对于本领域技术人员来说,本发明的这些和其它优点及特征将从详细描述和附图中变得明显。然而,应当理解,指出本发明的优选实施例的详细描述和附图是通过说明而非限制的方式给出。在不脱离本发明的精神的情况下,可以在本发明的范围内进行许多变化和修改,并且本发明包括所有这样的修改。【附图说明】
[0017]在附图中示出了本文中所公开的主题的各种示例性实施例,贯穿全文,附图中相同附图标记表示相同的部件,并且在附图中:
[0018]图1是根据本发明的一个实施例经由工业网络连接的多个模块的框图表示;
[0019]图2是结合本发明的一个实施例的示例性环境的框图表示;
[0020]图3是示出图2的环境内的模块之间的通信路径的框图表示;[〇〇21]图4是图3的模块的框图表示;
[0022]图5是根据本发明一个实施例的远程模块之间的若干连接的框图表示;
[0023]图6是根据本发明的一个实施例将参与者数据添加到动态数据帧的多个模块的框图表示;[〇〇24]图7是图6的参与者数据的框图表示;以及
[0025]图8是结合本发明的一个实施例以环型拓扑的方式布置的一组示例性模块。
[0026]在对附图中所示的本发明的各种实施例的描述中,为了清楚起见,将采取特定的术语。然而,特定的术语不意在将本发明限制于所选择的特定术语,并且要理解的是,每个特定术语包括以类似的方式进行操作以实现类似的目的的所有技术等同物。例如,通常使用词语“连接”、“附接”或与其类似的术语。这些术语不限于直接连接,但包括通过其它元件的连接,其中,这样的连接被本领域技术人员识别为等同物。【具体实施方式】
[0027]参照在下文描述中详细描述的非限制性实施例来对本文中所公开的主题的各种特征和有利细节进行更充分地说明。[〇〇28]首先转至图1,结合本发明的一个实施例的三个模块20经由网络介质36进行连接。 网络介质36可以是任何合适的介质,其包括但不限于网络电缆、背板或无线连接点。每个模块20包括网络接口 30,网络接口 30进而包括被配置成连接至网络介质36的端口 34。每个网络接口 30还可以包括被配置成与模块20中的处理器44进行通信的端口 34。每个网络接口 30 具有与端口34进行通信的一个或更多个缓冲器56(也参见图4),以用于暂时地存储在端口 34处接收或者要从端口 34传输的数据。还构想到的是,在不偏离本发明的范围的情况下,每个模块20可以具有许多其它硬件配置。例如,处理器44和/或存储器装置48可以与单个现场可编程门阵列(FPGA)或专用集成电路(ASIC)上的网络接口 30集成在一起。
[0029]接着参照图2,结合本发明的示例性环境包括远程输入/输出(I/O)机架13和一对工业控制器机架11。虽然在本文中被称为控制器机架和远程I/O机架,但是构想到的是,也可以使用在控制箱内以彼此相邻的方式安装的单独的模块。例如,单独的模块可以被配置成安装至模块的一个或更多个库中的DIN导轨。工业控制器机架11中的每个包括电源模块 10、处理器模块12、输入模块14和输出模块16。远程I /0机架13包括管理工业控制器机架11 之间的通信的接口模块15以及被包含在远程I /0机架13内的输入模块14和输出模块16。通信电缆18将处理器模块12彼此连接并且连接至接口模块15。通信电缆18可以是被配置成使用如本领域中已知的任何合适的通信协议的电缆。要理解的是,工业控制器机架11和远程 I/O机架13可以包括模块的许多配置,或者可选择地被集成到具有固定配置的控制器中。
[0030]接着参照图3,示出了被配置成在图2的环境中进行操作的示例性网络21。处理器模块12、输入模块14和输出模块16中的每个模块可以被简单地称为模块20。机架中或沿模块20的库的每个模块20经由背板或另一连接器与相邻模块20进行通信。在机架配置中,每个模块20可以包括在后面的电连接器,以用于插入机架内的背板中。当被安装至DIN导轨时,模块20的每个侧面上的电连接器(未示出)可以与相邻的模块20上的对应连接器直接进行连接,或者适合的电缆可以被插入在连接器之间。此外,模块20的一部分可以经由网络介质36连接至其它模块。图3中示出了模块20之间的双向通信的示例,其中,通过多个模块对在两个模块20之间的第一方向26或第二方向28上的传输进行发送。沿通信路径的模块20中的任何模块可以访问在第一方向26或第二方向28上通过模块20进行发送的数据帧,以向模块20中的另一模块提供数据或者接收来自模块20中的另一模块的数据。如将在下面更详细地讨论的,每个模块20可以被配置成启动到任何其它模块20的数据帧,以实现与位于源模块20与目标模块20之间的各种其它模块20的聚合通信。[〇〇31]接着转至图4,出了示例性模块20。模块20包括连接至位于网络接口 30上的网络介质36的多个端口34。端口 34进而连接至其它电子装置或电路,其它电子装置或电路构成将被本领域技术人员理解的网络的物理层50。聚合单元52被插入在每个模块20的物理层50与链路层54之间。聚合单元52可以由分立的电子元件、FPGA或ASIC的一部分或其组合来实现。 如将在下面详细地讨论的,聚合单元52被配置成对在物理层50和链路层54之间传输的数据包进行询问。聚合单元52与一个或更多个缓冲器56进行通信,聚合单元52可以将数据从一个或更多个缓冲器56插入数据包中,或者聚合单元52可以将从数据包接收的数据写入一个或更多个缓冲器56。链路层54与端口 34进行通信,以将数据包传输至处理器44,或可选择地传输至其它专用的通信处理电路。
[0032]在操作中,本文所公开的数据聚合方法通过允许多个发送模块与单个消息中的单个接收模块进行通信来减少网络流量,以用于改进数据的传输。此外,该聚合方法通过使单个接收模块生成可以与多个发送模块进行通信的单个消息来支持双向通信。每个发送模块的聚合单元52可以与数据消息进行交互,以将数据插入消息或从消息中提取数据,并且然后将该消息传送至下一发送模块。
[0033]接着参照图6,首先将讨论从发送模块到接收模块的通信。出于说明的目的,模块 20的库被示出为其中模块中的五个模块被指定为发送模块70和一个模块被指定为接收模块75。此外,最右侧的模块将被指定为播种模块71,这意味着播种模块71将生成数据消息并且启动发送消息至接收模块75。要理解的是,可以包括各种其它数量的模块,并且模块20中的每个模块可以是针对不同的数据消息的播种模块71。此外,每个模块20可以是关于不同的数据消息的接收模块75。虽然在单个库中示出了模块20中的所有模块,但进一步构想到的是,播种模块71和接收模块75可以位于通过适当的网络介质连接的不同的库中。
[0034]播种模块71将通过在播种单元53中生成空的、动态数据帧A来启动数据通信。构想到的是,播种单元53可以被包括在播种模块71的网络接口 30上或播种模块71的处理器44 内。如图6所示,空数据帧A包括两个报头分段和校验和106。第一报头是针对工业控制系统的专用报头102。专用报头102可以包括信息,例如针对数据帧的源地址和目标地址。专用报头102还可以包括与通信协议的版本和所生成的帧的类型有关的信息。在专用报头102中还可以包括连接标识符。每个模块20被配置成读取专用报头102,并且基于协议的版本和数据帧的类型来确定如何进一步处理数据帧。例如,第一类型的数据帧被限定成用于从发送模块70被发送至接收模块75的消息,而第二类型的数据帧被限定成用于从接收模块75被发送至发送模块70的消息。此外,通过包括创建数据帧的协议的版本记录,随后执行不同版本的协议的模块可以根据生成该数据帧的协议的版本来处理数据帧。
[0035]空白数据帧A中的第二报头为聚合报头104。聚合报头104可以包括特定于聚合处理的信息如对发起数据帧和聚合消息标识符的播种模块71的识别。可选地,专用报头102中的连接标识符可以充当聚合消息标识符。根据本发明的一个实施例,聚合消息标识符在控制系统的设计或调试期间生成。参与特定数据帧的每个模块20可以被分配有在聚合消息内的聚合位置。再次参照图6,参与所示通信的每个发送模块70进一步被识别为参与模块73。 虽然所示数据帧通过五个发送模块70传送,但是发送模块70中仅三个发送模块70向数据帧添加数据并且因此被视为参与模块73。每个参与模块73的聚合消息标识符和对应的聚合位置可以存储于针对每个聚合消息的对应参与模块的存储器48中。可选地,聚合消息的完整表可以被限定并且可以进一步将模块标识符如每个参与模块73的插槽地址与特定消息内的聚合位置和聚合消息标识符相关联,并且完整表可以存储于每个模块20的存储器中。根据本发明的另一实施例,聚合报头104可以包括模块标识符如参与模块73的插槽地址以及与每个参与模块73的模块标识符相对应的数据帧内的聚合位置。根据又一实施例,可以将专用报头102和聚合报头104组合到单个报头中。根据又一实施例,每个报头中的片段 (segment)可以包括在其他报头中。
[0036]空白数据帧A还包括校验和106。虽然示出为循环冗余校验(CRC),但是构想的是可以使用其他类型的校验和。初始地,仅基于第一报头102和第二报头104中的信息来确定校验和106。可选地,校验和106可以省略或者在空白数据帧A中留下空白,并且可以在空白数据帧传送至播种模块71的聚合单元52时被添加。
[0037]在生成空白动态数据帧A之后,播种模块71中的播种单元53将空白动态数据帧A传送至聚合单元52,聚合单元52在本文中又称为聚合器。聚合单元52读取空白数据帧A并且根据包含在专用报头102、聚合报头104或其组合中的数据来确定消息要成为经由多个发送模块70传输至单个接收模块75的动态数据帧。聚合单元52还确定每个发送模块70是否为针对特定数据帧100的参与模块73。聚合单元52从动态数据帧100读取针对聚合消息的标识符如专用报头102中的连接标识符或者聚合报头104中的聚合消息标识符,以确定其接收到哪些聚合消息。聚合单元52将标识符与消息表进行比较以确定其是否为消息中的参与者。可选地,如果参与者标识符包括在聚合报头104中,则聚合单元52读取针对参与者的标识符并且确定对应模块是否为参与者模块73。根据又一实施例,如果数据帧100为空白数据帧A,则聚合单元52认识到同一模块中的播种单元53生成数据帧并且该模块为参与模块73。
[0038]在确定模块关于在聚合单元52处接收的数据帧为参与模块73之后,聚合单元52将针对模块的参与者数据插入到数据帧100中。聚合单元52读取其要将数据插入到动态数据帧100中的聚合位置。聚合位置识别动态数据帧100的有效载荷内的参与者数据要被插入的位置。根据图6所示的实施例,每个连续的参与者模块73具有递增地大于在前的参与者模块 73的聚合位置。即,第一或最右边的参与者模块73具有等于1的聚合位置。其将其参与者数据108插入针对动态数据帧100的有效载荷的第一位置。作为结果的数据帧通过参考字母 “B”进行识别。从右起位于第二的下一参与者模块73具有等于2的聚合位置。其将其参与者数据110插在动态数据帧100的第二位置。可以构想的是:如果参与者模块73例如具有聚合位置2并且具有聚合位置1的参与者模块73没有供插入的数据或者还没有接收到数据帧,则聚合单元52可以在插入针对第二参与者模块73的参与者数据110之前将空白片段插入有效载荷中。可替代地,每个参与者模块73的聚合单元52可以将它的在下一可得到的片段处的相应参与者数据插入针对动态数据帧的有效载荷中,而不需要考虑模块的聚合位置或者考虑有效载荷内的现有参与者数据。[〇〇39]还参照图7,每个参与者数据108、110、112可以包括模块报头120和模块数据122片段二者。模块报头120包括关于插入了模块数据122的特定模块20的识别信息。作为结果,如果参与者模块73在动态数据帧100被接收时没有要插入的数据并且在未插入数据的情况下传送数据帧100,则接收模块115可以读取模块报头120并且确定什么类型的数据存在于相应的模块数据122中以及数据从哪一模块20被接收。
[0040]转回图6,发送模块70中的三个为动态数据帧100中的参与者模块73。最右边的模块为播种模块71并且在其播种单元53中生成空白数据帧A。播种模块71将空白数据帧A传送至播种模块71中的聚合单元52。聚合单元52确定播种模块71还为参与者模块73并且将第一参与者数据108插入动态数据帧100中。聚合单元还基于报头102、104以及包括第一参与者数据108的新的有效载荷来确定针对动态数据帧的新的校验和106。聚合单元52用新的校验和替换现有校验和106,从而生成新的动态数据帧B。新动态数据帧B被传送至在播种模块71 的左边的下一模块。[0〇41]还参照图4,聚合单元52从模块20的物理层50接收动态数据帧B。聚合单元识别动态数据帧B,并且确定其将是动态数据帧B中的参与者。聚合单元52向动态数据帧B附加第二参与者数据110,并且基于报头102、104以及动态数据帧的有效载荷中的参与者数据108、 110二者来再次重新计算校验和106。聚合单元52用新的校验和替换现有校验和106,从而生成另一新的动态数据帧C。然后,聚合单元52在不将数据帧100进一步传送至网络堆栈的情况下将新的动态数据帧C传送至下一发送模块70。[〇〇42]第三发送模块70的聚合单元52从右边接收新的动态数据帧C。然而,第三发送模块 70确定其不是参与者模块。因此,聚合单元52将新的动态数据帧C直接传送至下一相邻发送模块70,而不进行进一步处理。前述处理针对随后的发送模块70中的每一个被重复,以确定其是否为关于动态数据帧的参与者模块73。第四发送模块70为第三参与者模块73以及将第三参与者数据112插入动态数据帧中并且计算新的校验和106,以生成又一新的动态数据帧 D。第五发送模块70确定其不是参与者模块并且将动态数据帧D传送至接收模块75。[〇〇43]根据本发明的另一方面,聚合单元52可以在动态数据帧通过每个模块70时检测动态数据帧中的错误。每个聚合单元52可以被配置成在新的动态数据帧100被接收时读取校验和106,并且基于数据帧100被接收时数据帧100的内容来验证校验和106是正确的。如果校验和106不对应于数据帧100的内容,则聚合单元52可以将数据帧100识别为包含错误。模块70可以被配置成以不同方式来处理损坏的数据帧。例如,聚合单元52可以在数据帧100内设置指示检测到错误的标记。聚合单元52可以使数据帧被传送通过随后的模块70至接收模块75。每个随后的聚合单元52还可以被配置成监视错误状态标记,使得其在帧中检测到错误之后不插入任何另外的参与者数据。在数据帧100到达接收模块75时,接收模块75然后可以通过丢弃帧或者请求发送新的帧来处理损坏的数据帧100。可选地,每个聚合单元52可以被配置成丢弃损坏的数据帧而不(通过聚合单元52)采取进一步的动作。如果存在导致数据帧100继续损坏的问题,则接收单元75可以通过在预期的数据帧100在预期的间隔内未被接收到时的超时机制来检测问题。[〇〇44]接收模块75从专用报头102读取目的地址并且确定其为动态数据帧D的预期接收者。针对接收模块75的聚合单元52将动态数据帧100向上传送至针对接收模块75的网络堆栈以用于进一步处理。接收模块可以例如提取参与者数据108、110或112以供使用,或者可选地可以将参与者数据或整个数据帧100封装在另一数据包如用于传输至工业控制系统中的另一装置的以太网包中。
[0045]接着转向图5,可以构想的是多个动态数据帧100可以被配置成用于在工业控制系统内进行传输。图5示出在系统内的不同装置之间建立的多个连接60,其中动态数据帧可以沿连接中的任意连接进行传输。根据所示的实施例,两个独立的工业控制器库(bank)与远程I/O库进行通信。每个工业控制器库包括供电模块l〇a、10b、处理器模块12a、12b、输入模块14a、14b以及桥接模块17a、17b。可以进一步构想的是,其它附加的模块可以延伸超过每个桥接模块17a、17b。每个桥接模块17a、17b与远程I/O库上的适配模块15进行通信。远程1/ 〇库包括多个模块19,其可以是根据系统要求的输入模块14或输出模块16的任意组合。第一连接60a在第一处理器模块12a与远程I/O库上的最后的模块19之间建立,而第二连接60b在第一处理器模块12a与远程I/O库上的第五模块19(从左侧计数)之间建立。第三连接60b在第二处理器模块12b与远程I /0库上的最后的模块19之间建立。远程I /0库中的模块19中的每一个可以被视为关于连接60a、60b、60c中的每一个的发送模块70。从模块19的每一个中的连接60指向外或指向模块19的每一个中的连接60的短箭头将模块识别为参与到连接中。 第一、第三、第四和第八模块19为关于第一连接60a的参与模块73。第二、第三、第四和第五模块19为关于第二连接60b的参与模块73。远程I/O库中的第三、第七和第八模块19以及第二工业控制器库上的输入模块14b为关于第三连接的参与模块73。最后的模块为针对第一连接60a和第三连接60c的播种模块71,而第五模块为针对第二连接60b的播种模块71。要注意的是,不是在每个处理器模块12a、12b与和其通信的模块19中的一个模块之间开启九个单独的连接,而是建立三个连接60,从而降低连接的数目以及在工业网络上传输的消息的数目。[〇〇46]可以进一步构想的是,被选为参与模块73的模块19可以被选择以在处理器模块 12a、12b中提供更高效的处理。例如,在第一处理器模块12a与远程I/O库之间建立两个单独的连接60a、60b。虽然可以在处理器模块12a之间建立单个连接并且可以将所有模块限定为参与模块,但是可以构想的是:按照对于在处理器模块12a上的使用而言期望的方式使在每个连接60上传递的I/O相联系。例如,I/O可以具有类似的优先等级、I/O类型(例如,模拟、数字)、输入对输出或者可以用于控制程序的同一模块中。此外,其他的数据的编组 (grouping)可以包括但不限于特定事件的发生、工业网络的拓扑、数据大小或者发生的时间或频率。因此,I/O数据可以按照更高效的方式例如仅以由控制程序要求的间隔或者在特定事件发生时被报告至工业控制器。通过对动态数据帧内的数据进行合适地编组,可以降低网络流量并且还可以使得控制器的处理更高效。
[0047]为了将数据插入动态数据帧中,每个参与者模块在接收数据帧之前准备要被插入的数据。再次参考图4,每个模块20包括一个或更多个缓冲器56。根据所图示的实施例,缓冲器56位于网络接口 30上。可选地,可以将缓冲器56分配至存储装置48的专用部分。在任一实施例中,处理器44和聚合单元52均与缓冲器56进行通信。[〇〇48]处理器44被配置成在为插入动态数据帧做准备中将参与者数据写入缓冲器56。如果例如模块20是输入模块,则处理器44从由工业控制系统正控制的机器或处理上的装置接收每个输入信号。处理器44在其每个输入的当前状态的存储器48内维持输入表。模块20的参与者数据可以包括输入表,使得输入模块将输入的状态传输回执行控制程序的处理器模块12。处理器44可以被配置成例如在周期性间隔处或者当输入中之一的状态变化时将输入表的当前状态写入缓冲器56。处理器44将数据写入缓冲器56,并且设置表示数据已准备好插入数据帧的状态标志。
[0049]当缓冲器56中存在数据时,聚合单元52等待参与者将数据插入其中的下一个动态数据帧。如上面讨论的,当聚合单元52接收动态数据帧时,它首先确定模块20是否为那个数据帧中的参与者。如果不是,则聚合单元将数据帧重传至下一个模块20。如果模块20是参与者,则聚合单元52检查状态标志以确定缓冲器56是否具有已准备好插入动态数据帧的数据。如果在缓冲器56中数据已准备好,则聚合单元从缓冲器56读取该数据,并且重置状态标志以表示缓冲器56中的数据被读取而且将被插入数据帧中。然后,聚合单元52将数据作为参与者数据插入动态数据帧中。再次参考图7,缓冲器56中的数据可以被写成模块数据122, 并且聚合单元52还插入表示例如数据的类型(例如,输入数据、模拟形式、数字形式等等)和数据的来源的模块报头120,使得接收参与者数据的控制程序知道如何处理模块数据122。
[0050]然而,如果还未设置状态标志,则这表示处理器44还未将数据写入缓冲器56。可能存在处理器44没有设置状态标志的任意数目的原因。例如,如果处理器44被配置成在周期性间隔处将数据写入缓冲器,则该间隔可以有时大于动态数据帧的间隔。在书写期间可能发生错误,并且处理器44没有完成书写数据的第二次尝试。可替选地,模块20上的中断可能要求处理器44致力于另外的任务并且跳过一个或更多个数据书写。处理器44还可能被配置成仅当数据的状态已变化时将数据写入缓冲器。某个数据如温度信息可以缓慢地变化,并且因此需要不频繁的更新。因此,可以在使数据的状态改变与随后使处理器将数据写入缓冲器56之间接收多个动态数据帧。当缓冲器56中不存在用于插入动态数据帧的数据时,聚合单元52将数据帧重传至下一个模块20,而不插入其参与者数据。
[0051]因为聚合单元52检查到每个参与者模块在将参与者数据插入动态数据帧之前具有存在于缓冲器56中的数据,所以当所得到的动态数据帧到达接收模块时,它可以具有可变长度。因此,接收模块提取每个参与者数据段的模块报头120以识别哪个模块插入对应的模块数据122以及如何处理动态数据帧中存在的模块数据122。[〇〇52]根据本发明的另外的方面,动态数据帧可以具有根据来自网络或模块的限制的最大有效载荷长度。因为当参与者数据可用或在可变间隔处时该参与者数据可以被插入,所以动态数据帧可以被配置成包括更多参与者模块73,并且随后接收与其可以在单个数据帧中接受的参数者数据相比更多的参与者数据。可以预期由于数据插入的可变本质,数据帧 100中的许多数据帧将能够容纳已准备好插入每个帧内的所有参与者数据。然而,如果具有已准备好插入进数据帧100的数据的模块70的数目足够多以至于参与者数据的数量超过数据帧的最大有效载荷,则模块70可以变成新的播种器模块71,并且生成第二、完全相同的动态数据帧100。聚合器单元52接收新的、空白数据帧,并且将新的播种器模块的参与者数据插入新的数据帧。然后,聚合器单元52可以在完整的数据帧之前将新的动态数据帧传送至下一个模块。以这种方式,后续的数据帧首先接收具有用于另外的参与者数据的空间的数据帧,并且每个后续数据帧73将其参与者数据插入新的数据帧中。接下来接收到完整的动态数据帧,然而,因为参与者模块刚将其数据插入第二动态数据帧中,所以其缓冲器56没有准备好的新数据,并且在没有生成新数据帧的情况下在每个后续的参与者模块73处将第二动态数据帧传送下去。可选地,新的播种器模块71可以在完整的动态数据帧的报头中之一中设置状态标志,所述状态标志向后续的聚合单元52发出信号以将完整的动态数据帧传送下去并且等待第二动态数据帧。[〇〇53]还可以预期,模块20可以是多个动态数据帧中的参与者。多个缓冲器56可以被利用,其中,单独的缓冲器56分配给其中模块20作为参与者的每个动态数据帧。处理器44针对每个动态数据帧准备并且插入适当的数据,并且针对每个缓冲器56设置相应的状态标志。 聚合单元52知道将哪个缓冲器56分配给每个动态数据帧。当动态数据帧中之一到达模块20 处时,聚合单元52识别哪个数据帧已达到,并且检查对应的缓冲器56的状态标志以核实用于那个数据帧的数据是否准备好。如果用于对应的数据帧的数据存在于其相应的缓冲器56 中,则聚合单元52将数据插入动态数据帧并且将新数据帧重传至下一个模块20。如果对应的数据帧的数据在其相应的缓冲器56中不存在,则聚合单元52不加修改地将动态数据帧传送至下一个模块20。
[0054]本文公开的数据聚合方法可以用于在工业网络故障的情况下维持装置之间的通信。现在参考图8,模块200的示例性集合以环形拓扑设置。第一模块200a可以被配置成与外部网络201以及与模块200的环网通信。根据所图示的实施例,环形拓扑被用于在通信路径中之一故障的情况下提供冗余通信路径,而不是提供朝装置之间的任一方向的持续连接。 因此,环网中的初始间断或停止205被限定成防止消息在模块200a与模块200h之间传送。数据可以在外部网络201与第一模块200a之间传送,并且然后200a至200h中的每个模块以菊花链格式(daisy chain format)互相通信。[〇〇55]第一数据连接202可以建立在链的最后的模块200h与第一模块200a之间。最后的模块200h被限定为播种器模块并且生成动态数据帧。动态数据帧通过每个模块被顺序地传送至被限定为接收模块的第一模块200a。尽管模块的任意组合可以是参与者模块,但是出于说明的目的,模块200b至模块200h中的每一个将是动态数据帧中的参与者。因此,随着动态数据帧在每个模块之间传送,模块以上面描述的形式将其相应的参与者数据插入动态数据帧。
[0056]在环形拓扑故障的情况下,环形网络可以被配置成检测供替选的通信路径。在所图示的实施例中,故障207发生在模块200g与模块200f之间的网络介质。环形网络检测200a 与200h之间的另外的网络连接,并且允许在这两个装置之间开始发生通信以补偿故障207。 因此,尽管经由两条不同的路径,但是模块200a可以再次与其他模块中的每一个进行通信。
[0057]在网络故障的情况下,聚合方法还可以检测网络的故障并且重新配置模块,使得通信继续。每个模块可以接收环形拓扑中的故障207的通知。如果动态数据帧最初被配置成穿过故障207进行传输,则限定新的播种器模块。位于故障207的任一侧上的模块200g和 200f中的每一个被指派为先前由模块200h发送的动态数据帧的播种器模块。因此,模块 200g是第一、新播种器模块,并且200f是第二、新播种器模块。另外,模块200h停止生成动态数据帧。新的播种器模块200g和200f中的每一个建立至第一模块200a的新连接204和206, 并且开始传输与先前从模块200h传输动态数据帧相同的动态数据帧。由模块200g中的播种器单元生成的动态数据帧将通过模块200g和模块200h的聚合器传送,而由模块200f中的播种器单元生成的动态数据帧将通过模块20(^、2006、200(1、200(3和20013的聚合器传送。如上面讨论的,如果模块不存在或者数据没有准备好,则将动态数据帧传送至下一个模块,而不插入参与者数据。因此,每个数据帧将好像模块的一部分不存在或者没有数据一样出现至接收器200a。然而,接收器200a将能够从每个动态数据帧读取参与者数据以接收数据的完整集合。通过重新配置模块以使网络故障207的每一侧上的播种器单元生成先前穿过故障点207传送的动态数据帧,该工业控制系统的环网中的通信可以好像不存在故障207而继续运行。[〇〇58]如图5所图示,每个连接60允许双向通信。上面的公开内容讨论了通过多个其他发送模块从远端发送模块传输并在接收模块处接收的动态数据帧。经常期望接收模块能够发送返回消息以及/或者沿着每个连接60开始与发送模块的通信。因为接收模块将数据传输至多个接收器,所以每个接收器的数据必须包括在原始数据帧中。接收模块可以包括识别其接收的每个动态数据帧的在其存储器中的表以及沿着动态数据帧存在的参与者模块。当接收模块发送返回消息或者开始通信时,它可以读出每个参与者模块的标识符,并且确定其是否具有发送至参与者模块的信息。
[0059]根据本发明的一个实施例,接收模块可以生成沿着每个连接60返回消息的固定长度数据帧。固定长度数据帧可以包括沿着连接的每个参与者模块的段。接收模块包括专用报头或聚合报头中的标识符以将该消息识别为从接收模块至参与者模块的消息。如果数据帧是固定长度,则接收模块可以以固定顺序仅插入每个参与者模块的数据。然后每个参与者模块可以读取目的在于来自已知位置的模块的数据。可选地,接收模块可以包括模块报头和模块数据两者。然后,参与者模块可以定位识别自身的模块报头,并且读取由接收模块插入的任何相关联的模块数据。
[0060]根据本发明的另外的实施例,接收模块可以生成沿着每个连接60的返回消息的可变长度数据帧。如果数据帧具有可变长度,则接收模块包括模块报头和模块数据两者,使得每个参与者模块然后可以定位识别自身的模块报头并且读取通过接收模块插入的相关联的模块数据。在可变长度返回消息的情况下,接收模块仅插入需要通过其发送数据的这些模块的数据,并且当与固定长度返回数据帧进行比较时,可以降低朝沿着每个连接60的相反方向发送的数据消息的网络利用率。
[0061]应当理解,本发明不限于本文所阐述的部件的结构和布置的细节中的应用。本发明能够具有其他实施例并且能够以各种方式来实践或执行。前述的变型和修改在本发明的范围内。还要理解,本文所公开和限定的发明延伸至文本和/或附图所提及的或从文本和/ 或附图明显看出的各特征中的两个或更多个特征的所有替选组合。这些不同组合中的所有组合构成本发明的各种替选方面。本文所描述的实施例说明了用于实践本发明的已知最好模式,并且使本领域技术人员能够利用本发明。
【主权项】
1.一种用于从多个发送模块向单个接收模块传输数据的方法,所述方法包括下述步 骤:在第一发送模块中生成包括专用报头的动态数据帧;在所述多个发送模块中的每个发送模块中的聚合单元处从所述多个发送模块中的另 一发送模块接收所述动态数据帧;根据所述专用报头确定所述多个发送模块中的每个发送模块是否为所述动态数据帧 中的参与者;当所述发送模块确定所述发送模块是所述动态数据帧中的参与者时,将参与者数据经 由所述聚合单元添加至所述动态数据帧;以及将添加有所述参与者数据的动态数据帧从所述聚合单元传输至所述多个发送模块中 的另一发送模块和所述接收模块中的一个。2.根据权利要求1所述的方法,其中,所述参与者数据包括模块报头和模块数据。3.根据权利要求1所述的方法,还包括下述步骤:当所述发送模块确定所述发送模块不 是所述动态数据帧中的参与者时,通过所述多个发送模块中的每个发送模块来传送所述动 态数据帧而不改变所述动态数据帧。4.根据权利要求1所述的方法,其中,在根据所述专用报头确定所述多个发送模块中的 每个发送模块是否为所述动态数据帧中的参与者的步骤之后,所述方法还包括下述步骤:确定所述发送模块的缓冲器中是否存在所述参与者数据;以及确定所述发送模块是否已准备好将所述参与者数据添加至所述动态数据帧,其中当所述缓冲器中存在所述参与者数据并且所述发送模块已准备好添加所述参与者数 据时,所述发送模块将所述参与者数据经由所述聚合单元添加至所述动态数据帧,以及当所述缓冲器中不存在所述参与者数据或者所述发送模块未准备时好添加所述参与 者数据时,所述发送模块在不改变所述动态数据帧的情况下通过所述发送模块传送所述动 态数据帧。5.根据权利要求1所述的方法,其中,在所述第一发送模块与所述接收模块之间存在 第一传输路径和第二传输路径,所述方法还包括下述步骤:检测沿所述第一传输路径的故障;分配选自所述多个发送模块中的两个新发送模块以开始生成所述动态数据帧;将所述动态数据帧从第一新发送模块沿位于所述故障与所述接收模块之间的所述第 一传输路径的一部分传输至所述接收模块,其中,所述第一新发送模块位于靠近所述接收 模块的故障的第一侧上;以及将所述动态数据帧从第二新发送模块沿位于所述故障与所述第一发送模块之间的所 述第一传输路径的一部分然后沿所述第二传输路径传输至所述接收模块,其中,所述第二 新发送模块位于远离所述接收模块的故障的第二侧上。6.根据权利要求1所述的方法,其中,所述聚合单元被布置在每个发送模块的物理层与 网络链路层之间。7.根据权利要求1所述的方法,其中:所述动态数据帧初始为包括所述专有报头和校验和的空数据帧,以及当每个发送模块将参与者数据添加至所述动态数据帧时,所述动态数据帧的长度增加。8.根据权利要求7所述的方法,还包括下述步骤:在添加所述参与者数据之后确定用于每个聚合单元中的动态数据帧的新的校验和; 将所述动态数据帧的校验和替换为所述新的校验和。9.一种用于在工业网络上传送动态数据帧的模块,所述模块包括:第一端口,所述第一端口能够操作地从所述工业网络接收所述动态数据帧,其中,所述 动态数据帧包括专用报头;第二端口,所述第二端口能够操作地在所述工业网络上传输所述动态数据帧;以及 聚合单元,所述聚合单元与所述第一端口和所述第二端口进行通信,其中,所述聚合单 元能够操作地用于:从所述第一端口接收所述动态数据帧,根据所述专用报头确定所述模块是否为用于所述动态数据帧的参与者模块,当所述模块是参与者模块时,将参与者数据添加至所述动态数据帧,以及 经由所述第二端口来传输添加有所述参与者数据的动态数据帧。10.根据权利要求9所述的模块,还包括播种单元,所述播种单元与所述聚合单元进行 通信,其中,所述播种单元生成所述动态数据帧。11.根据权利要求9所述的模块,其中:所述第一端口和所述第二端口中的每个端口至少部分地限定所述模块的物理层, 所述模块还包括网络链路层,以及所述聚合单元被串联连接在所述物理层与所述网络链路层之间。12.根据权利要求9所述的模块,还包括:缓冲器,所述缓冲器在所述参与者数据插入所述动态数据帧中之前能够操作地存储所 述参与者数据;以及处理器,所述处理器能够操作地将所述参与者数据加载到所述缓冲器中,并且向所述 聚合单元提供下述信号:在所述缓冲器中能够得到所述参与者数据。13.根据权利要求12所述的模块,其中,所述聚合单元还能够操作地用于:读出与所述缓冲器中能够得到的参与者数据对应的信号;当所述模块是参与者模块并且当在所述缓冲器中能够得到所述参与者数据时,将所述 参与者数据添加至所述动态数据帧;以及当所述模块是参与者模块并且当在所述缓冲器中不能得到所述参与者数据时,经由所 述第二端口来传输未经修改的动态数据帧。14.根据权利要求9所述的模块,其中:所述动态数据帧初始为包括所述专有报头和校验和的空数据帧,以及 所述聚合单元还能够操作地通过将所述参与者数据插入到所述动态数据帧来增加所 述动态数据帧的长度。15.根据权利要求14所述的模块,其中,所述聚合单元还能够操作地用于:在添加所述参与者数据之后确定用于所述动态数据帧的新的校验和;将所述动态数据帧的校验和替换为所述新的校验和。16.—种用于减少工业网络上的网络流量的系统,所述系统包括:多个发送模块,每个发送模块包括:第一端口,所述第一端口能够操作地从所述工业网络接收动态数据帧,其中,所述动态 数据帧包括专用报头;第二端口,所述第二端口能够操作地在所述工业网络上传输所述动态数据帧;以及 聚合单元,所述聚合单元与所述第一端口和所述第二端口进行通信,其中,所述聚合单 元能够操作地用于:从所述第一端口接收所述动态数据帧,根据所述专用报头确定所述模块是否为用于所述动态数据帧的参与者模块,当所述模块是参与者模块时,将参与者数据添加至所述动态数据帧,以及 经由所述第二端口来传输添加有所述参与者数据的动态数据帧;以及 接收模块,包括:端口,所述端口与所述工业网络进行通信以从所述多个发送模块中的一个发送模块接 收所述动态数据帧;以及处理器,所述处理器能够操作地从所述动态数据帧中提取用于所述多个发送模块中的 每个发送模块的参与者数据。17.根据权利要求16所述的系统,其中:所述参与者数据包括模块报头和模块数据,所述模块报头对添加所述模块数据的发送模块进行标识,以及 所述接收模块读取每个模块报头以识别添加有所述模块数据的发送模块。18.根据权利要求16所述的系统,其中,所述发送模块中的每个发送模块还包括与所述 聚合单元进行通信的播种单元,其中,第一发送模块中的播种单元生成空动态数据帧,并且 将所述空动态数据帧发送至用于所述第一发送模块的聚合单元。19.根据权利要求18所述的系统,其中:在所述第一发送模块与所述接收模块之间存在第一传输路径和第二传输路径,每个发送模块还包括处理器,至少一个发送模块中的处理器和聚合单元中的至少之一能够操作地检测沿所述第一 传输路径的故障,第一新发送模块中的位于靠近所述接收模块的故障的第一侧上的播种单元生成所述 动态数据帧,所述动态数据帧沿所述故障与所述接收模块之间的第一传送路径的一部分被 传输至所述接收模块,以及第二新发送模块中的位于远离所述接收模块的故障的第二侧上的播种单元生成所述 动态数据帧,所述动态数据帧用于沿所述故障与所述第一发送模块之间的第一传送路径的 一部分然后沿所述第二传输路径传输至所述接收模块。20.根据权利要求19所述的系统,其中,所述接收模块能够操作地从由所述第一新发送 模块和所述第二新发送模块二者生成的动态数据帧中提取所述参与者数据。
【文档编号】H04L1/00GK106027198SQ201610193095
【公开日】2016年10月12日
【申请日】2016年3月30日
【发明人】西瓦拉姆·巴拉苏布拉马尼安, 乔纳森·D·布拉德福德, 安东尼·G·吉巴尔蒂, 肯伍德·H·霍尔, 肯德尔·R·哈里斯, 雷蒙德·R·赫斯特德, 爱德华·C·科尔斯贝格, 格雷戈里·A·迈赫尔, 斯克特·A·皮尔斯, 格雷格·M·西奇纳, 帕特里克·D·特尔约翰, 罗伯特·J·克雷奇曼
【申请人】洛克威尔自动控制技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1