控制网络系统及其节点装置的制作方法

文档序号:15576876发布日期:2018-09-29 05:41阅读:160来源:国知局

本发明涉及用于在星型拓扑的全双工网络中,实现整个网络的传输量的大容量化的网络传输方式。



背景技术:

在工厂控制用传输系统中,存在以下两种数据通信:构成系统的各设备定期地相互进行的保证了实时性的数据通信(数据交换);以及根据由搭载于各设备上的应用所产生的访问请求,以事件的形式进行单向访问的数据通信(消息通信)。

有时也会将通信周期分为进行保证了实时性的数据通信的时间段(公共存储器传输时间段;ts时间段)以及以事件的形式进行单向访问的数据通信的时间段(消息传输时间段:msg时间段),来实现上述2种数据通信。此外,“保证了实时性”意味着例如在定周期的各期间(ts时间段)内,完成数据交换所需要的所有设备间的数据交换。

关于,在用于实现上述数据交换的网络上的高效的广播通信(broadcastcommunications)的方法,已经提出了各种技术方案,存在举例有专利文献1、2的现有技术。

专利文献1中,通过合并使用基于各节点的内置计时器进行的时分复用访问方式以及基于来自主节点的同步帧进行的从节点的内置计时器校正,防止各节点的发送时刻重叠,并实现高效率的传输。

或者,例如专利文献2中也公开了与专利文献1相同种类的现有技术。

对于像消息通信那样的以事件的形式进行单向访问的数据通信来说,加入网络的站点的“每单位时间的消息发送请求数”会有“偏差”,“每单位时间的消息发送请求数”有可能超过“能够传输的消息发送数”。因此,需要对“每单位时间(每通信周期)能够发送的数量”设置上限,并在该上限以下进行消息通信。因此,通过管理某一单位时间内能够发送的站点数,并由被分配了发送权的站点进行数据通信,从而实现在“每单位时间能够发送的数量上限”内进行数据通信。

用于实现上述数据通信的消息通信方法已提出有各种技术方案,这里列举令牌(token)方式。令牌方式下,主站点接受来自各站点的消息发送请求,对于通知了发送请求的一部分站点,通过令牌来授予发送权。只有被授予了发送权的站点才能进行消息通信,被授予了发送权的站点将消息帧发送到网络线路上。通过在“每单位时间能够发送的数量上限”内授予发送权,能够实现以事件的形式进行单向访问的数据通信,而不会超过每单位时间能够发送的数量。现有技术文献

专利文献

专利文献1:日本专利特开2005-159754号公报

专利文献2:国际公开编号wo2013/121568号



技术实现要素:

发明所要解决的技术问题

在上述专利文献1、2等现有方法中,将物理层设为总线或串行电缆的级联,因此能通过广播一次向所有其他站点发送数据。广播发送的数据的接收时刻能假设为各节点同时或能几乎忽略的时间差。

此处,已知有由ieee802.3u(100base-tx)或ieee802.3ab(1000base-t)等构成的星型拓扑。

在将所述的令牌方式的消息通信方法适用于将以太网(ethernet)作为物理层的星型拓扑的全双工线路时,存在以下问题。

在将100base-tx或1000base-t等以太网作为传输路径的全双工线路的情况下,并且在采用星型拓扑的情况下,构成为在消息通信时,以利用交换式集线器等中继装置对某个站点发送的帧数据进行中继为前提来进行传输。一般在利用交换式集线器等中继装置进行中继的情况下,会发生一定的中继延迟,因此在将1个站点的帧数据向全部站点广播通信的情况下,最大需要与配置于最大中继路径的中继装置的台数相对应的传输延迟和传输时间。

在该前提下进行利用令牌方式的消息通信的情况下,由于存在用于通知发送权的令牌帧传输状态和为了对帧进行中继的中继等待状态,因此传输时间段的大部分成为未使用状态或消息通信以外的传输状态。因此,存在整个网络的传输效率降低而无法实现大容量化这样的问题。

本发明所要解决的技术问题是提供一种控制网络系统及其节点装置,能在星型拓扑的全双工线路的网络系统中,实现提高整个网络的消息传输效率,并且能提高整个网络的每单位时间的消息传输量。

解决技术问题的技术方案

本发明的控制网络系统是在每个具有第1时间段和接着该第1时间段之后的第2时间段的通信周期,由多个节点装置经由中继装置相互地进行数据交换的网络系统,并具有下述结构。

所述多个节点装置分别具有下述各单元。

数据交换控制单元,该数据交换控制单元在存在消息发送请求的情况下,在所述第1时间段中发送消息发送请求;

消息许可判定单元,该消息许可判定单元基于在所述第1时间段中获得的所述消息发送请求,判定本节点装置可否发送消息;以及

消息发送控制单元,该消息发送控制单元在判定为本节点装置可发送消息的情况下,在所述第2时间段内的规定时刻发送消息。

附图说明

图1(a)、图1(b)是本示例的控制网络系统的整体结构图。

图2(a)、图2(b)是示出节点的驱动器的处理的流程图。

图3是表示本示例的数据收发动作的一个示例的图。

图4是示出节点的处理部的处理的流程图。

图5是中继装置级数为1级的msg时间段中的消息收发动作示例(之一)。

图6是中继装置级数为1级的msg时间段中的消息收发动作示例(之二)。

图7是中继装置级数为2级时的网络结构例。

图8是中继装置级数为2级的msg时间段中的消息收发动作示例(之一)。

图9是中继装置级数为2级的msg时间段中的消息收发动作示例(之二)。

图10是中继装置级数为3级时的网络结构例。

图11是用于实际测量最长路径延迟时间的动作例。

图12是表示图10的网络结构例中的最长路径的图。

图13是用于对上限值的计算式进行说明的图。

图14是本示例的控制网络系统的整体结构图。

图15是示出求出上限值的处理方法的流程图。

图16是求出上限值的具体示例的处理流程图。

图17是表示星型拓扑中的通信动作的具体例的图。

图18是示出使用了现有方法时的各站点中的处理部的处理示例的流程图。

具体实施方式

下面,参照附图说明本发明的实施方式。

图1(a)、图1(b)是本示例的控制网络系统的整体结构图。

图1(a)中示出本示例的控制网络系统的简要结构。

本示例的控制网络系统是如下结构:经由1台以上的中继装置20,采用星型拓扑并且利用全双工通信线路连接多台节点10。而且,是在每个具有上述ts时间段和上述msg时间段的通信周期,在ts时间段中各节点10经由中继装置20相互进行数据交换的网络系统。

此外,虽未特别说明,但通过例如上述专利文献1、2等在先申请的同步方法,从而全部节点10的通信周期同步,并且msg时间段的开始时刻也相同为前提。此外,使通信周期同步的方法不限于在先申请的同步方法,可以通过某个现有方法来进行同步。

在上述的控制网络系统中,在本方法中,在ts时间段中各节点10相互进行上述数据交换时,存在消息发送请求的情况下,将表示该情况的信息(命令或请求数等)附加到该数据中。在完成ts时间段中的数据交换后,各节点10分别基于所有节点10的消息发送请求的有无和请求数,通过相同的算法判定许可站点和许可数量。由此,从msg时间段的开始时刻起(没有令牌的状态下),所有的许可站点均能开始发送消息。

由于不需要令牌的许可通知(授予发送权),因此能将msg时间段高效地仅用于消息传输,进而与以往相比能发送更多的消息。即,能实现提高(增大)整个网络的每单位时间的消息传输量。

此外,将规定的上限值用于上述许可站点、许可数量的判定。该上限值决定为在msg时间段内发送的全部消息在中继装置的可传输时间段的上限内(msg时间段内)进行传输。由此,在msg时间段内所有的消息能可靠地完成收发。

返回图1的结构例的说明。

如上所述,本示例的控制网络系统是星型拓扑的全双工线路的结构,在图示的示例中,构成系统的各设备(节点10)分别经由全双工线路(通信线1、2)连接至hub(交换式集线器)等中继装置20。此外,在图示的示例中,节点10中,存在图示的站点1、站点2、站点3、站点4这4个站点。

而且,各节点10经由中继装置20可与其他节点10进行通信。此处,通信线1设为用于从节点10到中继装置20的数据发送(上行线路),通信线路2设为用于从中继装置20到节点10的数据发送(下行线路)。

中继装置20可以是一般的现有的交换式集线器等,因而关于其结构、动作虽然未进行特别图示或说明,但当然具有对数据帧等进行中继的功能等。例如,其具备临时地存储所接收到的数据帧的ram等存储部22,且具备将该临时存储的数据帧传输到目的地节点的处理部23(cpu等)等。在处理部23的内置存储器预先存储有规定的程序,通过处理部23的cpu执行该程序,从而实现中继装置20的数据包中继功能。中继装置20的数据包中继功能是通常的功能,在此不详细地进行说明。

中继装置20具有连接有上述各通信线1、2的各端口(未图示),通过经由与该数据帧的目的地站点对应的端口发送经由任意的端口接收到的数据帧,从而进行中继、传输。

例如,在图1的结构中,从站点1向站点4进行数据发送的情况下,从站点1经由通信线1向中继装置20传输数据帧,利用中继装置20临时存储该数据帧后,从中继装置20经由通信线路2向站点4进行传输。

此外,在本说明中,中继装置20例如假设为非阻塞式的交换式集线器,当然并不限于该示例。若发送数的总和在各端口的发送性能上限(例如1g(千兆)bit/sec)内,则中继装置20的传输控制部21能进行发送。因此,优选为例如通过后述的计算式(1)来决定上限值,但并不限于该示例。关于通过计算式(1)计算上限值,在后进行详细说明。

现有技术中,如上所述,在用于利用令牌提供发送权的通信中,消耗消息时间段,实质上未进行消息传输的状态并不少。因此,整体上消息传输效率较差。

对此,在本方法中,关于消息传输,取消主/从,并且主站点并不通过令牌提供许可,从而能实现高效的消息传输。此外,如上所述,取消主/从与消息传输相关,意味着不是特定的站点(主站点)进行与消息传输相关的令牌管理。因而,关于与消息传输相关以外的情况,也可以采用主/从的方式。

本示例的控制网络系统例如是将100base-tx或1000base-t等以太网作为传输路径的全双工线路,并且采用了星型拓扑(例如lan等)。因而,虽然是具有1个以上中继装置20的结构,图中,为了简单起见仅示出1个中继装置20,但并不限于该示例。

此外,本示例的控制网络系统与现有技术相同,构成系统的各设备(节点10;站点)通过本站点所具备的计时器,生成数据交换周期(通信周期),并且在通信周期内生成tc时间段或用于数据交换的ts时间段,而且还生成以事件的形式进行单向访问的数据通信(消息通信等)的时间段(消息时间段:msg时间段)。此外,关于tc时间段或ts时间段,这里不特别说明。

关于以事件的形式进行单向访问的通信(消息通信等),加入网络的站点的每单位时间的消息发送请求数会有“偏差”,请求数的每相同单位时间的合计有时会超过“能够传输的消息发送数”。因此,需要对“每单位时间的整体的消息发送数量”设置上限值,并在该上限值以内进行通信。因此,通过管理某一单位时间内能够发送的站点数,并且仅由得到许可的站点进行消息通信,从而“每单位时间的整体的消息发送数量”在上限值以内。

本示例的控制网络系统作为一个示例,需要构成系统的各设备(节点10)在上述ts时间段中相互进行数据交换。作为一个示例,例如需要在上述通信周期内的ts时间段内完成全部节点10间的数据交换。即,作为一个示例,按照各通信周期的每一个,在其ts时间段内,全部节点10需要分别将本站点的任意数据传输到其他的全部节点10。进行交换的数据例如是与本站点的控制对象设备相关的某个数据(传感器测定值等),但并不限于该示例。此外,各节点10例如是对某个控制对象设备(未图示)进行控制的控制器等,但并不限于该示例。

另一方面,上述消息传输时间段(msg时间段)中的消息收发并非必须在1次通信周期内的msg时间段内,收发在该时刻产生的全部消息。然而,优选为,通过提高传输效率,在1次通信周期中能收发尽可能多的消息。另一方面,如上所述,预先决定msg时间段的长度,因此必须避免在完成消息收发处理前,发生msg时间段结束这样的情况。

本方法提高上述消息传输时间段(msg时间段)中的消息收发的传输效率。

因此,首先利用上述ts时间段中的数据交换。即,存在消息发送请求的节点10将消息发送请求(请求数等)附加到ts时间段的发送数据(称为公共存储器帧)。如上所述,在ts时间段内,全部节点10分别将本站点的数据传输到其他全部节点10,因此其他全部站点对消息发送请求进行接收。

由此,各节点10分别通过相同的算法决定消息发送权的分配,从而能在全部节点10获得相同的发送权分配结果。而且,各节点10能分别根据由本站点决定的发送权分配结果,识别本站点可否发送消息或许可数量等。

如上所述,在本方法中,各节点10能分别单独地基于来自其他站点的消息发送请求(请求数等),判断本站点可否发送消息或许可数量等。由此,在消息传输时间段中,不需要收发令牌,识别到本站点是许可站点的节点10均能立即进行消息发送。例如,构成为全部的消息发送许可站点在变为msg时间段后立即同时对中继装置20进行消息发送。由此,能提高msg时间段中的整个网络的消息传输效率,并且能提高整个网络的每单位时间的消息传输量(吞吐量)。

此外,关于通过上述相同的算法决定消息发送权的分配的处理,许可总数设为不超过规定的上限值,从而能实现在msg时间段内完成全部消息的收发。关于这点,根据本方法,能计算适当的值作为上述上限值。这是使用例如后述的计算式(1)等算出的,详细情况在后阐述。此外,通过将上限值的计算功能搭载于任意的1台以上的节点10,从而即使在运用中网络结构发生变化的情况下,也能计算与新的结构相对应的适当的上限值。

图1(b)中示出图1(a)的控制网络系统的详细结构例。

在图示的示例中,各节点10包括驱动器11、处理部12、周期计时器13、发送计时器14、消息用发送计时器15等。这里省略周期计时器13的详细说明,但周期计时器13是用于生成上述通信周期的计时器,并且在全部节点10被同步。这里也省略发送计时器14的详细说明,但发送计时器14是决定ts时间段中的本站点的数据发送时刻的计时器。

在各节点10中,消息用发送计时器15决定msg时间段中的本站点的数据发送时刻。此外,仅主站点具备现有的未图示的消息用发送计时器即可,在其超时时,从主站点发送令牌。

消息用发送计时器15在本示例中,设定为所有节点10在相同时刻超时。即,在所有节点10,将其消息用发送计时器15的超时设定为msg时间段的开始时刻。例如,对所有节点10的消息用发送计时器15设定相同的设定值,并且使其在周期计时器13超时之际启动。

此外,没必要必须设置消息用发送计时器15,也可以使发送计时器14以在msg时间段的开始时刻超时的方式重新启动。

处理部12执行节点10的主要处理,例如对未图示的控制对象设备进行控制、收集表示该控制对象设备的状态的测量数据等、对周期计时器13、发送计时器14、消息用发送计时器15等的设定和启动进行管理、生成发送数据帧(数据包)等各种处理。生成的数据包传输到驱动器11。

驱动器11例如是经由通信线路1、2进行通信处理的处理部(通信专用处理器等),其根据来自上述处理部12的请求,将上述发送数据帧发送至其它节点,或者在接收到来自其它节点的发送数据帧时,将其传输到处理部12等。

上述通信线1、2连接至驱动器11。此外,如上所述,通信线路1、2连接至中继装置20。在驱动器11将上述发送数据帧向其他节点发送的情况下,其经由通信线路1将该传输给其他节点的数据包传输至中继装置20。此外,若中继装置20经由通信线路传输来自其他节点的发送数据包,则将该数据包传输至处理部12。

中继装置20具有图示的传输控制部21,传输控制部21执行上述数据包的中继、传输。

图2(a)、图2(b)是示出节点10的驱动器11的处理的流程图。此外,驱动器11内置的未图示的运算处理器通过执行预先存储在内置的未图示的存储器中的应用程序,来实现图2(a)、图2(b)的处理。

图2(a)示出本站点数据发送时的驱动器11的处理。

节点10所具有的上述处理部12(cpu/mpu等)通过执行规定的软件(程序)等,来执行规定的控制处理等。然后,在作为该处理之一发生了发送本站点的数据这一事件的情况下(作为一示例,发送计时器14超时),将该数据和发送请求传输至驱动器11。

驱动器11接收到上述数据和发送请求时(步骤s11),对该数据帧进行发送(步骤s12)。如上所述,这是经由通信线路1发送至中继装置20使其进行中继。

此外,也存在接收其他站点的发送数据(数据包)的情况。如上所述,该情况下,由中继装置20经由通信线路2传输过来。

图2(b)示出数据接收时的驱动器11的处理。

驱动器11经由上述通信线路2接收到任意数据包时,执行图2(b)的处理。首先,对接收数据包的发送方进行确认,在发送方是本站点的情况下(步骤s21:否),丢弃该数据包(步骤s23)。或者,在接收相同的数据包已接收完成的情况下(步骤s24,是),也丢弃该数据包(步骤s26)。这些均是在正常状态下不可能发生的情况,视作为存在异常,因此丢弃接收数据包。

在步骤s24为否的情况下、即在视作没有异常的正常接收的情况下,将接收数据包的数据传输至处理部12(步骤s25)。处理部12使用该数据进行某种处理。

此外,上述图2(a)、图2(b)的处理中的数据包可以是上述ts时间段中收发的数据包(公共存储器帧),也可以是上述msg时间段中收发的消息的数据包。

另外,当然地,各数据包(数据帧)附带有发送方节点或目的地节点的识别编号(站点id等)。

图3是表示本示例的数据收发动作中的一个示例的图。

在本示例中,与现有技术相同,通过周期计时器13生成图3所示的通信周期。周期计时器13重复执行启动->超时->启动->超时->启动···,生成固定周期的图示的通信周期。

1个通信周期分割成图示的tc时间段、ts时间段和msg时间段。

关于tc时间段、ts时间段虽未特别详细地说明,但ts时间段是用于各节点10相互进行数据交换的时间段。这里的“相互进行数据交换”意味着所有节点10将本站点的数据传输至其他所有节点10。在ts时间段中,各节点10发送本站点的数据的时刻由该节点10的发送计时器14决定。所有发送计时器14在周期计时器13的超时时被启动。

利用公共存储器传输时间段(ts时间段)实施需要保证实时性的公共存储器传输。以事件的形式进行单向访问的消息传输另外设置消息时间段(msg时间段)来实施。

省略ts时间段中的各站点的数据发送动作的详细说明,但进行简单说明。首先,各节点10的发送计时器14中,预先设定互不相同的值,并且在互不相同的时刻发生超时。各节点10根据本站点的发送计时器14的超时来发送本站点的数据。该数据的目的地是其他所有节点10(广播),若传输到中继装置20,则中继装置20将该数据传输至其他所有节点10。

另外,这里,图3中的中继装置20的“接收”“发送”动作中的“发送”动作意味着发送到该数据包的所有目的地(如上所述本示例中为除发送方以外的所有节点10)。例如关于ts时间段,在图上以“站点2”表示的矩形意味着来自站点2的发送数据包(记为“站点2数据包”等)。如图所示,中继装置20若完成接收该“站点2数据包”则立即开始发送(传输),发送对象是除发送方(站点2)以外的所有站点。由此,如图所示,该“站点2数据包”由站点1、站点3、站点4“接收”,但站点2不接收。

上述动作更详细而言,中继装置20若经由与站点2对应的端口开始接收上述“站点2数据包”,则将其存储于内置存储器(ram等)。而且,若完成将“站点2数据包”的所有数据存储于内置存储器(完成接收),则将该“站点2数据包”一并发送至与站点1对应的端口、与站点3对应的端口以及与站点4对应的端口。

预先决定ts时间段中的各节点10的发送数据包数量,例如图示的示例中,站点1是始终仅为1个数据包,但站点2是始终发送3个数据包。与上述各节点10的发送数据包数量相对应地预先决定各节点10的发送计时器14的设定值。

以上是与在先申请的ts时间段相关的动作,但本方法中,与ts时间段相关的动作还进行下述的动作。

即,本方法中,各节点10需要发送消息的情况下,通过在上述ts时间段中将表示消息发送请求的信息(本示例中为请求数等)附加到进行发送的公共存储器帧的一部分上,从而将存在消息发送请求这一情况和请求数通知给其他所有节点10。

在各节点10接收到附加有上述发送请求数的公共存储器帧的情况下,将发送方的节点10的识别信息和消息发送请求数一同进行临时存储。而且,各节点10之后分别基于上述临时存储的数据,决定消息的发送许可站点和许可数量。通过所有节点10使用相同的算法作为该决定处理,从而在正常情况下对于所有节点10应获得相同的决定结果。

例如,各节点10分别进行轮询等相同的优先位次判定,判断发送权分配站点。此时,若所有公共存储器帧能正确地传输至所有节点10,则通过在所有节点10中适用如上所述相同的判断算法(称为发送权分配站点的判断算法),从而在所有节点10中获得相同的发送权分配结果(许可站点和许可数量)。

各节点10基于上述发送权分配站点的判断结果,对于本站点可否发送消息进行判断(在可发送的情况下进一步识别发送许可数量),在可发送的情况下,从msg时间段的开始时刻起开始发送消息帧。这是,在本示例中,被许可发送消息的所有节点10与msg时间段开始同时地开始发送消息,但并不限于该示例。

消息发送数的总和只要在中继装置20的各端口的发送性能上限内,则能进行发送。因此,优选为例如通过后述的计算式(1)来决定上限值,但并不限于该示例。关于通过计算式(1)计算上限值,在后面进行详细说明。

如上所述,在本方法中,通过利用ts时间段中的数据交换,存在消息发送请求的节点10将消息发送请求(请求数等)附加到本站点所发送的数据帧,从而能将发送请求的有无或请求数等通知给其他所有节点10。

然后,在ts时间段的最后,所有节点10能分别知晓包含本站点的所有站点的消息发送请求的有无、请求数,因此各节点10分别执行对上述发送权分配站点进行判断的处理(后述的步骤s44等),如上所述可获得相同的判断结果。这是,例如,基于上述所有站点的有没有消息发送请求或请求数、预先决定的上限值以及当前各站点的优先顺序等,决定消息发送的许可站点或许可数量。

在图3所示的示例的情况下,在站点1、站点2以及站点3存在消息发送请求,在站点4没有消息发送请求。此外,站点1的请求数为“3”,站点2的请求数为“1”,站点3的请求数为“4”。

此外,这里假设系统整体在msg时间段中能传输3条消息帧(设为上限值=3;此外上限值的计算方法在后阐述),并且优先顺序是假设以站点2、站点3、站点4、站点1的顺序来进行优先顺序设定。在该情况下,以站点2->站点3->站点4->站点1的顺序分配许可。首先,相对于在msg时间段内可发送的3条消息帧,站点2的消息发送请求为1,因此能发送所有消息帧,许可数量=“1”。接着,相对于在msg时间段内可发送的剩余的2条消息帧,站点3的消息发送请求为4,因此许可数量为“2”。至此,许可数量的合计达到上限值,因此站点1未被许可(站点4未发出请求)。

然后,各节点10通过利用上述判断处理(步骤s44等)获取各请求节点的许可/不许可和许可数量,从而对本站点的许可/不许可和许可数量进行识别(后述的步骤s45)。

在上述一个示例中,上述判断处理的结果是所有节点10分别判断为“许可站点是站点2和站点3,站点2的许可数量为‘1’,站点3的许可数量为‘2’”。由此,站点2识别为本站点的消息发送被许可,并且许可数为‘1’,站点3识别为本站点的消息发送被许可,并且许可数为‘2’。另一方面,站点1识别为本次本站点的消息发送未被许可。

由此,如图所示,变为msg时间段后,站点2和站点3分别无需接收令牌,立即开始本站点的消息发送。如上所述,站点2发送1条消息,站点3发送2条消息。

由此,可知无需与令牌相关的通信动作,因此从msg时间段开始时刻起,所有许可站点能开始发送消息,因此与现有技术相比,能提高消息传输效率,能进行更多的消息传输。

此外,关于图3的msg时间段的动作,例如图示的“站点3-1msg”的矩形意味着来自站点3的发送消息。此外,在图示的中继装置20的“接收”动作中,在相同时刻“站点3-1msg”与“站点2msg”重叠意味着同时并行地进行该2个消息的接收处理。而且,之后,接收来自站点3的第2条消息即“站点3-2msg”。

而且,在本示例中,假设上述3个消息的发送目的地均是所有站点,由此成为图示的中继动作。即,中继装置20首先将上述“站点2msg”传输至发送方(站点2)以外的所有节点10,由此如图所示站点1、站点3、站点4接收“站点2msg”。这对于“站点3-1msg”等其它消息也为相同的动作,省略对其说明。

另外,上述优先顺序例如基于规定的计数器(未图示)的当前计数值来决定。该计数器虽未图示,但每当步骤s34为是时,进行向上计数(+1递增)。此外,该计数器在本示例中,以1->2->3->4->1->2->3->4->1···这样的方式,在1~4之间循环地计数。然后,其站点编号与计数值相同的节点10设为优先顺序最高。例如在计数器的计数值为‘3’时,站点3的优先顺序变为最高,在该示例中根据优先顺序由高到低排列的结果是站点3→站点4→站点1→站点2。

后述的步骤s44的处理例如可以说是如下处理:在上述那样的一个示例的情况下,基于规定的算法(后述的计算式(1))、通过数据交换获得的各节点10的消息发送请求的有无和请求数、上限值以及当前的优先顺序,决定各站点可否发送消息和许可数。

图4是示出节点10的处理部12的处理的流程图。

另外,处理部12具有未图示的cpu/mpu等运算处理器、未图示的存储器等存储部,在存储部预先存储有规定的应用程序。通过由运算处理器执行该应用程序,来执行例如图4或图15所示的处理,实现图14所示的各种处理功能。

关于消息发送,现有技术中是由主站点分配发送权并进行站点判定,而在本实施例中,是在所有节点10分别进行图4的处理从而各自进行发送权(发送许可数)分配判定。伴随着该判定,判定本站点可否发送消息及分配数。

由此,本实施例中,无需基于令牌帧授予发送权,各站点能主动地判断可否发送消息、分配数等。而且,在本站点能够发送消息的情况下,进入消息传输时间段之后就能发送本站点的消息而无需等待令牌。由此,在本示例中,无需区别主站点、从站点。

图4的处理随时都能执行,基本上是处于在等待某一事件的等待状态(步骤s31),每当发生某一事件时(步骤s32:是),判定所发生的事件的内容(步骤s33)并执行与之相应的处理。

即,在所发生的事件是周期计时器13超时(循环t.o.)的情况下(步骤s34:是),执行步骤s35~s38的处理。

即,基本上是在发送计时器14中置位规定的设定值(步骤s35)并启动发送计时器14(步骤s38),但在该启动之前,确认本站点有没有消息发送请求,在有的情况下(步骤s36:是),对消息发送请求数(有时也简单记为请求数)进行置位和登记(步骤s37)。然后,启动发送计时器(步骤s38)。另外,置位是指保存在公共存储器帧中,登记是指存储到未图示的“用于管理发送权的登记表”(以下记为登记表)。

由此,在通过后述的步骤s40的处理发送附加了上述请求数的公共存储器帧时,经过上述中继装置20的中继处理,公共存储器帧被传输至所有其他节点10,从而消息发送请求数被传输至所有其他节点10。传输来的消息发送请求数被存储在各节点10的上述“登记表”中。然后,各节点10分别基于存储在本站点的上述“登记表”中的各站点的消息发送请求数等,执行后述的步骤s44的处理。

这里,根据上述情况,在本实施例中,上述步骤s35中对发送计时器14进行置位的设定值与在先申请相同,在所有节点10都是互不相同的设定值,并且由所有节点10在互不相同的时刻发送公共存储器帧,但不限于该示例。本方法与消息发送相关,公共存储器帧的发送方法可以是任意的。

在所发生的事件是发送计时器14超时(发送t.o.)的情况下(步骤s39:是),发送本站点的数据(公共存储器帧)(步骤s40)。这是将上述本站点的数据(根据不同的情况附加有消息发送请求)传输至驱动器11。由此,如上所述,驱动器11接收到上述步骤s11的数据和发送请求,并通过上述步骤s12发送该数据。发送目的地是所有站点(广播),通过发送至本站点所连接的中继装置20,并由中继装置20进行中继、传输。

然后,在消息用发送计时器15中对规定的设定值进行置位(步骤s41)并起动(步骤s42)。这也可以在上述步骤s35、s38的处理时,一齐进行步骤s41、s42的处理。只要构成为在所有节点10消息用发送计时器15同时超时即可,该实现方法可以是任意的。尤其是,通过上述在先申请的同步方法,由于所有节点10的周期计时器同步,因此,以此为基准能容易地实现使所有节点10的msg时间段开始时刻相同。

另外,在上述的起动之后,消息用发送计时器15发生了超时的事件时,后述的步骤s43中判定为是。如上所述,所有节点10在同一时刻进入msg时间段,被允许发送的节点10立即发送第1条消息。当然,多个被允许发送的节点接着还进行第2条之后的消息发送。

另外,在上述步骤s38中起动的发送计时器14发生了超时事件时,上述步骤s39变为是。

此外,在所发生的事件是消息用发送计时器15超时(发送t.o.)的情况下(步骤s43:是),执行步骤s44~s47的处理。

即,首先进行消息发送许可站点判定(步骤s44)。该处理也是用于决定各节点10的消息发送许可数的处理,从而决定本站点可否发送消息及消息发送许可数(步骤s45)。

然后,基于上述步骤s45的决定,在本站点有消息发送请求且被允许发送的情况下(步骤s46:是),发送与本站点的消息发送许可数相应的数量的消息帧(步骤s47)。

另一方面,当本站点原本就没有消息发送请求的情况、或者不被允许发送消息等情况下(步骤s46:否),不进行消息发送。

另外,在所发生的事件是接收公共存储器帧的情况下(步骤s48:是),将该公共存储器帧的数据存储到未图示的公共存储器的相应区域(步骤s49)。这里,将上述步骤s40的处理中发送的帧称为公共存储器帧。通过上述图2(b)等的处理,驱动器11接收到任意其它站点通过上述步骤s40的处理而发送的公共存储器帧,且驱动器11通过上述步骤s25将该公共存储器帧传输至处理部12时,上述步骤s48的判定为是。

另外,在接收到的公共存储器帧中包含有其发送方节点10通过上述步骤s37所保存的消息发送请求数的情况下,视作为有消息发送请求,并将该请求数与发送方节点10的id等一起预先追加存储到“上述登记表”(步骤s50)。该“登记表”之后将在上述步骤s44的处理中被参照。另外,各帧中当然还包含有发送方节点的id(识别信息)等。

另外,虽然未特别图示,但也可以在接收到消息帧的情况下,驱动器11将接收到的消息传输至处理部12,处理部12在该消息帧的发送目的地是本站点的情况下,获取该消息帧,在发送目的地不是本站点的情况下,丢弃该消息帧。

在上述的本实施例中,接收到公共存储器帧的各节点10(各站点)分别接受发送方站点的消息发送请求。即,加入网络的各站点(节点10)分别接受来自各站点的消息发送请求(请求数),各站点分别单独地判定消息的发送许可站点和分配数(发送许可数)(步骤s44)。即使各站点分别单独地判定,由于判定算法是相同的,因此只要提供的是同一数据,也会得到相同的判定结果。即,只要来自各站点的所有公共存储器帧全都能正确地传输,则所有站点都会得到相同的分配结果(判定结果)。各站点基于本站点的消息发送权分配判定结果,来判定本站点可否发送消息和分配数。在能够发送消息的情况下,基于所有站点均同步的消息用发送计时器15,同时进行消息帧的发送。

步骤s44的消息的发送许可站点和分配数(发送许可数)的判定方法可以是现有的任意方法,例如可以是均等分配,或者是“加权轮询”等优先顺序设定分配,或者是它们的组合,也可以使用其它任意的现有方法。无论是哪一种方法,其判定方法本身没有特别限制,可以使用现有的任何方法,也可以使用该现有方法的组合等。

步骤s44的消息的发送许可站点和分配数(发送许可数)的判定处理可以视作将以往仅主站点进行的处理由所有节点10分别执行,从而以上虽未详细地说明,但分配数(发送许可数)的合计值需要不超过规定的上限值。

此处,如上所述,在msg时间段中的整个系统的消息发送数存在上限。在发送超过该上限值的数量的信息的情况下,在msg时间段内不会完成所有消息的收发。该上限值并不固定地决定,而是与系统的结构、性能等相对应。

以下对于这样的上限值的计算方法进行说明。

在本示例中,通过例如下记的计算式(1)来计算上限值(每单位时间能发送消息的数量)。

上限值={单位时间-(中继装置级数×中继装置延迟)-((中继装置级数+1)×帧传输延迟)}÷{(1帧大小/传输性能)+α}···式(1)。

上限值是将由上述计算式(1)获得的值舍去小数点以下来得到。

由此求得的上限值可以说是在从单位时间(mgs时间段的长度)减去经由中继装置20时的传输延迟时间或与传输相关的延迟时间等得到的时间内,能完成消息送达的最大消息数(在整个系统中能发送的消息数)。认为仅1个站点发送了上限值消息数的消息的情况是“到完成消息送达为止所消耗的时间”为最多(但是中继装置20为1级的情况是例外)。

此外,若增加中继装置级数,则中继装置延迟和帧传输延迟会增加,因此可传输的帧数减小。根据上述计算式(1),越是增加中继装置级数,则上限值越会减小。

以下参照图5所示的一个示例,说明上述计算式(1)中的各项目。图5是中继装置级数为1级时(图1的情况等)的msg时间段中的消息收发动作示例。

·单位时间;msg传输时间段的长度

·中继装置级数;中继装置20的个数

·中继装置延迟;中继装置20中的中继处理所花费的时间。此处,作为一个示例,与中继装置20为存储和转发方式的情况相对应地设为中继装置20完成接收1帧所消耗的时间(图5),但并不限于该示例。例如,在中继装置20为直通转发(cutthrough)方式的情况下,即使没有完成接收1帧也能在中途开始传输,因此设定与其相对应的中继装置延迟的值(比图5的示例要短)即可。无论哪种情况下,开发者等适当判断并设定即可,但优选为与最差的情况相对应地(与延迟时间最长的中继装置20相匹配地)考虑设定值。

·帧传输延迟;节点10-中继装置20间的数据传输所消耗的时间:如图5所示,例如从站点1的帧发送开始时刻起到中继装置20的帧接收开始时刻为止产生一定的延迟。另外,在由于各节点10-中继装置20间的传输路径的长度存在偏差等导致实际的帧传输延迟存在偏差的情况下,开发者等预先将最差值(最长的传输延迟)设定作为固定值。

·传输性能;节点10-中继装置20间的传输路径上的传输性能:本示例中例如设为1gbit/sec等,但并不限于该示例。

·α;帧间间隙。例如如图5所示的从1个消息帧发送完成时刻起到能开始发送下一个消息帧为止所消耗的时间。

在上述计算式(1)中,如图5所示,上述(1帧大小/传输性能)意味着1帧的传输时间。此外,如图5所示,上述α是从1帧发送完成起到能开始发送下一帧为止所消耗的时间。即,实质上,发送1帧所消耗的时间β视作为“(1帧大小/传输性能)+α”。

上述计算式(1)意味着单位时间减去“到中继装置20开始传输最先的消息帧为止所消耗的时间(中继装置级数为1级的情况下,图5中的‘站点1-1msg’所涉及的‘帧传输延迟+中继装置延迟’)以及中继装置20传输的‘站点1-1msg’所涉及的帧传输延迟”后得到的时间除以上述时间β。

例如,开发者等可以预先使用上述计算式(1)来计算上限值,并将该上限值设定、存储于所有节点10。此外,之后运用过程中中继装置20的数量可能发生变化(中继装置级数发生变化;较多的情况是增加设置)。由此,预先将上述计算式(1)和上述各项目的值(用户预先任意决定并设定)存储于任意的1个以上的节点10。而且,关于上述各项目中“中继装置级数”,在运用过程中中继装置20的数量发生变化时,用户等将新的中继装置级数设定于所有节点10。由此,上述任意节点10使用“中继装置级数”以外的上述各项目的值、新的“中继装置级数”以及计算式(1),计算并存储新的上限值。此外,将该新的上限值通知并存储到其他节点10。

之后,各节点10使用上述新的上限值,进行决定消息发送许可站点和许可数的处理。

由此,也可以是如下方式:各节点10分别具有能在运用过程中的任意时刻计算上限值的上限值计算功能。

图5所示的示例中,上限值设为“4”。

这里,图5、图6表示例如图1所示的中继为1级(中继装置20为1个)的网络结构时的消息收发动作。此外,在该示例中,示出所有消息将发送目的地设为其他所有节点10的情况。另外,图5、图6仅示出msg时间段的动作,省略ts时间段等其他时间段。这对于后述的图8、图9也相同。

然后,在图5中,示出1个节点10以所有其他节点10作为发送目的地(通过广播的方式)发送达到上限值的消息(即,4条消息)时的动作,如图所示,在msg时间段内完成收发所有4条消息。

图6中,在与图5相同的网络结构中,示出所有4个节点分别各发送1条消息,并且以所有其他节点10作为发送目的地(通过广播的方式)进行发送时的动作。

如图所示,在该情况下,也在msg时间段内完成收发所有4条消息。

在中继装置级数为1级的情况下,4个节点10发送所有4条消息的情况与4个节点10分别各发送1条消息的情况整体上消耗的时间相同。

另一方面,中继装置级数为2级的情况下,两者整体上消耗的时间不同。对此,以下参照图7、图8、图9来进行说明。

首先,在图7中示出中继装置级数为2级时的网络结构例。

在该示例中,存在相互连接的2个中继装置20(hub-a、hub-b),hub-a上连接有站点1、站点2、站点3这3个节点10,hub-b上仅连接有站点4。

图8、图9示出上述图7的2级的网络结构中的消息收发动作例

2级的情况也与上述1级的情况相同,示出上述上限值为“4”并且所有消息设为以其他所有节点作为发送目的地,1个站点(这里为站点1)发送4条消息的情况(图8)和各站点各发送1条合计4条消息的情况(图9)。将图8和图9进行比较可知,在1个站点发送所有4条消息的情况下,到完成收发所有消息为止所消耗的时间较长。

如图8所示,站点1依次发送4条消息,hub-a接收该4条消息,并从完成接收的消息起开始依次传输。消息发送目的地是发送方以外的所有节点(站点2、站点3、站点4),因此传输目的地是站点2、站点3以及站点4所涉及的中继装置即hub-b,如图所示首先将最先的消息“站点1-1msg”传输至站点2、站点3以及hub-b。该最先的消息“站点1-1msg”在hub-b中被传输至站点4。

因此,如图所示,关于站点2、站点3,从msg时间段开始到开始接收最先的消息“站点1-1msg”为止所消耗的时间为“中继装置延迟+从站点1到uhb-a为止的帧传输延迟+从hub-a到站点2、站点3为止的帧传输延迟”=“中继装置延迟+(2×帧传输延迟)”。

另一方面,关于站点4,从msg时间段开始到站点4开始接收最先的消息“站点1-1msg”为止所消耗的时间为“中继装置延迟+从站点1到uhb-a为止的帧传输延迟+从hub-a到hub-b为止的帧传输延迟+从hub-b到站点4为止的帧传输延迟=“中继装置延迟+(3×帧传输延迟)”。

与此相对,中继装置级数为2级时的上述计算式(1)中的“从开始接收到完成接收为止所消耗的时间以外的时间”为“中继装置延迟+(3×帧传输延迟)”。因而,在本示例中,最消耗时间的站点4也能在msg时间段内完成接收所有消息。

另一方面,图9所示的示例的情况下,所有站点(站点1、站点2、站点3、站点4)与msg时间段开始同时地发送消息。由此,hub-a接收来自站点1、站点2、站点3的消息(合计3条),hub-b接收来自站点4的消息。

若完成接收上述消息,则hub-a对3条消息中例如来自站点1的消息“站点1msg”进行传输。发送目的地为发送方站点以外的所有站点,因此如图所示,传输至站点2、站点3以及hub-b。在相同的时刻,hub-b将来自站点4的消息传输至hub-a。

由此,若hub-a完成传输上述“站点1msg”,则接着依次传输来自上述完成接收的站点2、站点3、站点4的消息。这是将来自站点2、站点3的消息(为了传输至站点4)传输至hub-b,但来自站点4的消息不传输至发送方,因此不传输至hub-b。

在图9的示例中,站点4从msg时间段开始时刻起到开始接收最先的消息为止所消耗的时间与图8相同,但完成接收3条消息即可(不需要接收本站点的发送消息“站点4msg”),因此与图8相比,快了1条消息的时间来完成收发消息。

此处,使用了上述的计算式(1)的上限值(每单位时间的可发送消息数)的计算方法示出了1个示例,但不限于该示例。以下,关于计算方法的其他示例进行说明。另外,这里将使用了计算式(1)的上限值的计算方法称为“上限值计算方法(之一)”,将使用以下所说明的后述的计算式(2)的上限值计算方法称为“上限值计算方法(之二)”。此外,在以下的说明中,构成系统的多个节点10中,将预先任意决定的1个节点10称为主站点,除此以外的节点10全部称为从站点。然而,该主站点与例如进行消息发送权的管理等的主站点是不同的。如上所述,本方法中,不需要进行消息发送权的管理等的主站点。本说明中的主站点能简单地视作为主导进行实际测量后述的各节点10间的通信时间(延迟时间)的处理的站点。

在“上限值计算方法(之一)”中,如上述计算式(1)所说明的那样,需要使用预先设定的“中继装置级数”等。此外,需要将使用了“中继装置级数”等计算得到的上述“每单位时间可发送消息数”等参数设定到加入网络的所有站点。

上述“中继装置级数”根据系统结构而不同,伴随着工厂设备的增加或减少而级数发生变化。因此,在系统结构发生变化的情况下,毋庸置疑地需要重新设定新的“中继装置级数”等,以上述计算式(1)再次求出“每单位时间的可发送消息数”等参数,将该参数再次设定到加入网络的所有站点。此时,可能会发生用于设定的工程费用、发生由于设定错误导致的系统的异常停止等、工厂运营成本增加。

与此相对,“上限值计算方法(之二)”中,自动地实际测量各节点10间的通信时间(延迟时间),基于该实际测量值计算上述“上限值”,因此不会产生设定成本或设定错误。并且,能防止工厂运营成本增加。

“上限值计算方法(之二)”中,首先,主站点分别实际测量本站点与所有从站点之间的通信时间(延迟时间),根据该实际测量结果确定从主站点起始的路径(延迟时间)最长的从站点。

接着,主站点将委托测定与其他站点间的延迟时间的请求(最长延迟时间测定请求)通知给上述确定的从站点(从本站点起始的路径最长的站点)。

接收到该最长延迟时间测定请求的上述确定的从站点分别实际测量本站点与所有其他从站点之间的通信时间(延迟时间),将在所有的延迟时间实际测量值中最长的延迟时间作为整个系统的“最长路径延迟时间的实际测量值”通知给主站点。另外,在所有的延迟时间实际测量值中还包含有主站点与上述确定的从站点之间的延迟时间。

这里,上述主站点、上述“确定的从站点”对于本站点与其他站点的延迟时间的实际测量均可以通过现有的任意方法来实现,例如作为一个示例使用记载于wo2013/121568中的方法,但并不限于该例。记载于wo2013/121568中的延迟时间实际测量方法中,若将主站点的实际测量作为示例,则从站点将延迟时间实际测量用的特定的数据包发送给任意的从站点,在任意的从站点所接收到的数据包为上述特定的数据包的情况下,任意的从站点立即以回复用数据包进行回复。

通过主站点接收该回复用数据包,从而主站点能对从上述特定的数据包的发送时刻起到回复用数据包的接收时刻为止的经过时间进行测量。该测量时间是测量主站点与任意从站点之间的数据包的往返所消耗的时间,即该2个站点间的往返的通信时间的实际测量值。由此,通过将该测量值除以2(该测量值的一半的时间),得到主站点与任意从站点之间的通信时间(延迟时间)。

主站点若接收到上述通知的“最长路径延迟时间的实际测量值”,则使用以下的计算式(2),计算上述上限值(每单位时间的可发送消息数)。

上限值={(单位时间-(最长路径延迟时间实际测量值-(1帧大小/传输性能)))}/(1帧大小/传输性能)···式(2)。

主站点将通过上述计算式(2)算出的上限值通知到所有从站点。

各从站点对被通知的上限值进行保存。而且,之后,使用该上限值,进行上述的运用(消息许可站点或许可数的判定)。这对于主站点当然也同样。

每当任意站点发生掉线或修复时,利用上述的一个示例的步骤计算新的上限值(每单位时间可发送消息数),使用该新的上限值进行消息帧的收发。

如上所述,根据“上限值计算方法(之二)”,针对系统结构的变化,能自动地、动态地重新计算上限值(每单位时间的可发送消息数)而无需变更设定。并且,能以与新的系统结构相对应的适当的可发送消息上限数,进行消息通信。

以下,使用具体示例,对上述“上限值计算方法(之二)”,进行更详细的说明。

这里,以网络结构由图1(a)或图7所示的中继装置级数为1级或2级的结构变更为图10所示的中继装置级数为3级的结构的情况为例进行说明。

在图10所示的结构中,具有站点1、站点2、站点3、站点4这4个节点10,其中站点3为主站点,除此以外为从站点。另外,如上所述,本示例中的主站点是主导与“上限值计算方法(之二)”相关的处理的站点,与管理消息发送权的主站点不同。

此外,具有3个中继装置20(hub-a、hub-b、hub-c)。hub-b与hub-a、hub-c以及站点3进行连接。hub-a与站点1和站点2进行连接。hub-c与站点4进行连接。

另外,节点10本身的结构和功能、中继装置20本身的结构和功能可以基本上与上述的图1(a)图1(b)或图7所示的结构和功能相同,因此标注相同标号。其中,这里的各节点10进行用于实现利用“上限值计算方法(之二)”进行的上限值计算的处理。

在图10所示的结构中,对于站点1-站点4间的通信需要通过所有3个中继装置20(hub-a、hub-b、hub-c)进行中继,因此站点1-站点4间为最长路径。

在图10所示的结构中,执行上述的“上限值计算方法(之二)”的处理的情况下,首先,主站点即站点3如上所述实际测量本站点与其他所有从站点间的通信时间(延迟时间),确定距离主站点最远(延迟时间为最长)的从站点。这里,假设到站点1的延迟时间为最长(利用图示的虚线箭头所示的路径设为最长)。即,站点1为上述特定站点。由此,站点3将上述最长延迟时间测定请求通知给站点1。

接收到该通知的站点1执行分别实际测量上述的本站点与所有其他从站点之间的通信时间(延迟时间)的处理。

图11示出这样的具体例的站点1、站点3的动作例。

图11中示出站点3(主站点)将上述特定站点设为站点1后的动作例。

如图11所示,在上述具体例的情况下,首先站点3(主站点)在公共存储器传输时间段中,将表示上述最长延迟时间测量请求的代码和站点1的站点编号附加到包含本站点的数据的公共存储器帧41,并利用广播进行发送。

该公共存储器帧41利用各中继装置20进行中继,并传输至各从站点1、2、4。另外,这是进行2级中继(例如针对站点4进行hub-b、hub-c的2级中继),但在图11中省略,以1级的方式进行表示。因此,在图11中,中继装置20的中继延迟时间与实际不同(实际上花费与2级中继相对应的中继延迟时间)。

各从站点1、2、4参照附加于接收到的公共存储器帧41的站点编号和表示最长延迟时间测定请求的代码,判定这是否是要发送给本站点的最长延迟时间测定请求。

仅判定为是要发送给本站点的最长延迟时间测定请求的从站点(这里为站点1)对本站点与所有其他从站点之间的通信时间(延迟时间)进行测量。该实际测量处理在消息传输时间段中进行执行。

另一方面,在接收到的公共存储器帧41上附加有表示最长延迟时间测定请求的代码,并且站点编号≠本站点编号的情况下,从站点判定为存在发送给其他站点的测定请求。然后,在该情况下,临时停止消息传输,变为与延迟时间测定对应的模式。在该模式中,在消息传输时间段中,若接收到发送给本站点的数据包,则立即进行回复处理。此外,在该模式中,如上所述,不进行通常的消息传输处理。

另外,也可以设为若主站点发送上述公共存储器帧41(包含最长延迟时间测定请求),则临时停止消息传输。通过这样,防止由于延迟时间测定和消息传输发生冲突所导致的测定误差。

另外,在图11中,仅示出用于该实际测量的动作的一部分。即,在图11中仅示出站点1-站点2之间的延迟时间的实际测量动作,而关于站点1-站点4之间,在之后的通信周期的消息时间段中,通过同样的动作实际测量延迟时间。

图11的示例中,站点1在消息时间段中,对附加有站点2的站点编号的延迟时间测定用数据包44进行广播发送。该数据包44经中继装置20进行中继,并由所有节点10接收,若仅站点2接收该数据包44,则立即以回复用数据包46进行回复。

该回复用数据包46在各中继装置20进行中继,传输到各站点1、3、4,除站点1以外丢弃接收数据包。站点1测量从上述延迟时间测定用数据包44的发送时刻起到回复用数据包46的接收时刻为止的经过时间。该测量时间的一半的时间为站点1-站点2之间的延迟时间的实际测量值。

而且,虽然未在图11中示出,之后在下一个通信周期中的消息传输时间段,站点1在本次中对附加有站点4的站点编号的延迟时间测定用数据包44进行广播发送。站点4若接收到该数据包44,则立即以回复用数据包46进行回复。由此,站点1对站点1-站点4之间的延迟时间进行实际测量。然后,在该示例中,在该时刻,站点1判定为完成了与所有其他从站点的延迟时间的实际测量处理,从获取到的各延迟时间中,提取出最大延迟时间。

这里作为一个示例,在上述“获取到的各延迟时间”中,还包含有主站点-站点1之间的延迟时间。因此,当然需要在来自主站点的上述公共存储器帧41中也包含有主站点-站点1之间的延迟时间。在该示例的情况下,上述提取出的“最大延迟时间”为最长路径延迟时间实际测量值。

然而,并不限于该示例,例如在上述“获取到的各延迟时间”中不包含主站点-站点1之间的延迟时间的情况下,将上述提取到的“最大延迟时间”通知给主站点,在主站点中将“最大延迟时间”和主站点-站点1之间的延迟时间中较大的一个延迟时间作为最长路径延迟时间实际测量值。

然而,在本说明中,使用“最大延迟时间”为最长路径延迟时间实际测量值的示例进行说明。因而,在站点1中获得最长路径延迟时间实际测量值,之后站点1将获得的最长路径延迟时间实际测量值以例如后述的方式通知给主站点。

然而,上述延迟时间的实际测量处理中,在各通信周期中,所有站点也进行公共存储器传输时间段中的公共存储器传输帧的收发(中断的是通常的消息收发处理)。

通过上述的处理,能对整个系统结构中通信最花费时间的路径进行确定,能得到该延迟时间(最长路径延迟时间实际测量值)。

在上述图10的系统结构例的情况下,上述“整个系统结构中通信最花费时间的路径(最长路径)”为图12中以虚线箭头表示的站点1-站点4之间的路径,站点1-站点4之间的延迟时间的实际测量值在所有延迟时间实际测量值中为最大。

之后,在下一个通信周期的公共存储器传输时间段中,站点1通过在本站点的公共存储器传输帧中包含上述最长路径延迟时间实际测量值和“表示完成测定的代码”并进行发送,从而将其通知给主站点(站点3)。

主站点(站点3)对利用公共存储器传输时间段接收的各公共存储器传输帧进行检查,对来自特定站点(站点1)的公共存储器传输帧上有无“表示完成测定的代码”进行检查,在存在表示完成测定的代码的情况下,获取包含于该传输帧的上述最长路径延迟时间实际测量值。

然后,使用获取到的最长路径延迟时间实际测量值,通过上述计算式(2)求出上述上限值(单位时间的可发送消息数上限),并通知给所有站点。例如通过在公共存储器传输时间段中,在本站点的公共存储器传输帧上包含上限值并发送,来实现该通知,但并不限于该示例。各站点根据上述被通知的上限值对本站点所保存的上限值进行更新。

主站点(站点3)如上述那样在进行了上限值的计算和对各站点的通知之后,删除本站点的公共存储器传输帧上的“表示最长延迟时间测定要求的代码”。

由此,若各从站点判断为在来自主站点的公共存储器传输帧上没有“表示最长延迟时间测定要求的代码”,则解除中止发送消息,返回至可发送消息的状态。当然,之后使用上述被通知的上限值,进行消息通信。

此外,在上述的一个示例中,主站点进行统一管理计算出上限值并通知给各站点,但并不限于该示例。例如,也可以构成为:特定站点(站点1)将最长路径延迟时间实际测量值通知给所有的站点,所有站点分别使用最长路径延迟时间实际测量值和计算式(2)来计算上限值。

这里,以下对上述计算式(1)(2)进一步进行说明。

如上所述,计算式(1)是下记内容。

上限值={单位时间-(中继装置级数×中继装置延迟)-((中继装置级数+1)×帧传输延迟)}÷{(1帧大小/传输性能)+α}···式(1)。

如上所述,计算式(2)是下记内容。

上限值={(单位时间-(最长路径延迟时间实际测量值-(1帧大小/传输性能)))}/(1帧大小/传输性能)···式(2)。

在这些计算式(1)(2)中共同的思想能用下记的计算式(3)表示。

上限值=((单位时间-(最长路径延迟时间))/(1帧大小/传输性能)···式(3)。

上述计算式(1)中的“(中继装置级数×中继装置延迟)+((中继装置级数+1)×帧传输延迟)”相当于上述计算式(3)中的“最长路径延迟时间”。

上述计算式(2)中的“(最长路径延迟时间实际测量值-(1帧大小/传输性能)”相当于上述计算式(3)中的“最长路径延迟时间”。

图13是用于对上述计算式(尤其是计算式(2))进行说明的图。

在图13中示出,在上述图10的系统结构中,在任意的通信周期的消息传输时间段中,仅站点1发送消息,并且发送了4条消息时的消息收发的情况。另外,消息传输时间段的长度为单位时间。

在图中,用矩形表示消息,为了区别4条消息,分别在矩形内标记“站点1-1msg”、“站点1-2msg”、“站点1-3msg”、“站点1-4msg”。如图所示,站点1首先最先发送消息“站点1-1msg”,接着按照“站点1-2msg”、“站点1-3msg”、“站点1-4msg”的顺序进行发送。

此外,如上所述,在图10的系统结构例中,站点1-站点4之间为最长路径。

上述计算式(3)中的“最长路径延迟时间”相当于在作为最长路径的站点之间从发送侧站点开始发送消息到接收侧站点开始接收消息为止所花费的时间。

“最长路径延迟时间”在图13的示例的情况下,是从用图示的粗虚线表示的时间、即站点1中的消息“站点1-1msg”开始发送时刻起到站点4开始接收该消息“站点1-1msg”的时刻为止的时间。

在图13所示的示例中,如图示那样,单位时间与“最长路径延迟时间”相减得到的剩余时间是站点4开始接收上述全部4条消息起到完成接收所需要的时间、即“(1帧大小/传输性能)×4”。即,在该示例中,上述计算式(3)的上限值为“4”。

另一方面,在图13的示例中,上述计算式(2)中的“最长路径延迟时间实际测量值”是用图示的单点划线表示的时间。即,从站点1的开始发送消息“站点1-1msg”时刻起到站点4的完成接收消息“站点1-1msg”时刻为止的时间。这是因为在延迟时间的实际测量中,接收侧站点要在完成接收数据包后进行回复。即,上述计算式(2)中的“最长路径延迟时间实际测量值”比上述计算式(3)中的“最长路径延迟时间”要长接收侧站点从开始接收1个消息到完成接收所花费的时间(图上用双点划线表示)。因此,通过在计算式(2)中减去该时间、即通过“(最长路径延迟时间实际测量值-(1帧大小/传输性能)”,从而求得相当于上述计算式(3)中的“最长路径延迟时间”的时间。

每当主站点检测到系统结构发生了变化(例如每当任意的站点发生掉线或修复),主站点开始执行上述的新上限值的决定/设定处理。例如将主站点在一定期间内无法接收帧的站点判断为掉线时、或接收到来自之前不存在的站点编号的帧而判断为新加入或修复时,主站点开始上述的新上限值的决定/设定处理。

根据上述的“上限值计算方法(之二)”,针对系统结构的变化,用户能自动地决定/设定与新系统结构相对应的最佳的上限值(单位时间的可发送消息数上限)而不会进行设定变更。能以与新的系统结构相对应的最佳的可发送消息数上限,进行消息通信。

图14是本示例的控制网络系统的功能结构图。

本示例的控制网络系统是在每个具有第1时间段和第2时间段的通信周期的第1时间段中由多个节点10经由1个以上中继装置20相互进行数据交换的网络系统。上述第1时间段的一个示例是上述ts时间段,上述第2时间段的一个示例是上述msg时间段。

另外,处理部12具有未图示的cpu/mpu等运算处理器、未图示的存储器等存储部,在存储部预先存储有规定的应用程序。通过运算处理器执行该应用程序,从而能实现例如图14所示的节点10的各种处理功能。

图示的示例中,节点10具有数据交换控制部31、消息许可判定部32、消息发送控制部33、上限值计算部34。

为了在上述第1时间段中进行上述相互的数据交换而发送任意的数据时,在有消息发送请求的情况下,数据交换控制部31将消息发送请求附加到该发送数据。

消息许可判定部32基于在上述第1时间段中通过上述相互的数据交换获得的上述消息发送请求,判定本装置可否发送消息。

在判定为本装置可发送消息的情况下,消息发送控制部33以上述第2时间段内的规定时刻发送消息。

上述规定时刻是例如上述第2时间段的开始时刻。

上述消息许可判定部32例如通过判定各节点10可否发送消息,从而判定上述本装置可否发送消息。

例如,由于上述各节点10的各消息许可判定部32使用相同的算法,上述各节点10可否发送消息的判定结果相同。由此,即使各节点10分别独立地各自进行判定并根据本站点的判定结果发送消息,作为整个系统也不会对消息收发动作产生任何问题。

此外,例如,上述数据交换控制部11将本装置的消息发送请求数附加到用于上述相互交换的上述发送数据。

在该情况下,例如,上述消息许可判定部32基于通过上述相互的数据交换获得的上述消息发送请求数以及在上述第2时间段内利用整个系统能发送的最大消息数即上限值,决定上述各节点10的消息发送许可数,从而决定本装置的消息发送许可数。

此外,例如,上述消息许可判定部32决定各节点10的消息发送许可数使得所有的消息发送许可数的合计值在上述上限值以下。

此外,例如上述消息许可判定部32基于上述消息发送请求数、上述上限值以及当前各节点装置的优先顺序,决定各节点10的消息发送许可数。

此外,上述上限值计算部34计算上述上限值。这是例如用上述计算式(1)来计算上限值。或者,通过“上限值计算方法(之二)”来计算上限值

在通过“上限值计算方法(之二)”来计算上限值的方法的情况下,例如如图15所示那样,首先实际测量各节点10之间的延迟时间从而求出最长延迟时间即最长路径延迟时间实际测量值(步骤s61)。然而,通过使用该最长路径延迟时间实际测量值的规定的计算式来计算上限值(步骤s62)。规定的计算式的一个示例例如是上述计算式(2),但并不限于该示例。

上述最长路径延迟时间的实际测量方法的一个示例例如是图16所示的方法,但并不限于该示例。

在图16所示的处理例中,首先,主站点的上限值计算部34实际测量本站点和各从站点的通信时间(延迟时间)(步骤s71),确定延迟时间(换言之,从主站点起始的路径)为最大的从站点(步骤s72),对该确定了的站点(特定站点)委托延迟时间测量(步骤s73)。

上述特定站点的上限值计算部34通过实际测量本站点和各从站点的延迟时间(步骤s81),将实际测量到的各延迟时间中最大的延迟时间作为上述最长路径延迟时间的实际测量值(步骤s82)。另外,作为一个示例例如在上述“实际测量到的各延迟时间”中,还包含有主站点-特定站点之间的延迟时间。在该示例的情况下,在进行步骤s73的委托时,主站点将主站点-特定站点之间的延迟时间通知给特定站点。

特定站点例如将上述最长路径延迟时间实际测量值通知给主站点(步骤s83)。接收到该通知的主站点使用被通知的最长路径延迟时间实际测量值并通过规定的计算式来计算上述上限值(步骤s74)。规定的计算式的一个示例例如是上述计算式(2),但并不限于该示例。

然后,将计算出的上限值通知给各从站点(步骤s75)。

此后,主站点、各从站点使用计算出的新上限值进行上述的消息发送管理。

另外,可以如上述那样,由主站点的上限值计算部34进行由使用了上述最长路径延迟时间实际测量值的计算式(2)得到的上限值的计算处理,但并不限于该示例,也可以由任意的从站点的上限值计算部34进行。无论哪种情况,都将计算出的上限值通知给所有其他站点。或者,上限值的计算处理也可以由各站点的上限值计算部34分别进行,在该情况下不需要将上限值通知给其他站点,但特定站点需要将最长路径延迟时间实际测量值通知给所有其他站点。无论哪种情况下,需要将上述最长路径延迟时间实际测量值传输给进行上限值的计算处理的站点。

或者,上述最长路径延迟时间的实际测量值的求取方法不限于上述的示例,例如可以是所有的节点10分别实际测量本站点和所有的多个站点的延迟时间,将所有的节点10的所有延迟时间实际测量值集中到任意的节点10,利用任意的节点10求取上述最长路径延迟时间的实际测量值。这样,上述最长路径延迟时间实际测量值的求取方法可以是各种方法,总之,只要“通过实际测量各节点10间的通信所花费的时间即延迟时间来求取最长延迟时间即最长路径延迟时间实际测量值”即可,可以是任意的方法。

另外,上述主站点并不意味消息发送权管理所涉及的主装置。在本方法中,并不需要消息发送权管理所涉及的主装置。上述主站点可以看作为只是开始用于计算新上限值的处理的站点。

例如每当检测到任意站点的掉线或加入、修复时,执行由上述上限值计算部34进行的使用了上述计算式(2)的上限值的计算处理。由此,即使发生系统结构的变化(站点的掉线/加入或修复等),也能自动地调节为与变换后的系统结构相对应的适当的可发送消息帧数上限,并且进行消息帧的传输。

另外,上述数据交换控制部31、消息许可判定部32、消息发送控制部33以及上限值计算部34的各处理功能例如通过处理部12来执行,或者通过处理部12和驱动器11来执行。处理部12、驱动器11通过内置的未图示的cpu/mpu等执行预先存储于内置的未图示的存储器的程序,从而实现上述数据交换控制部31、消息许可判定部32、消息发送控制部33以及上限值计算部34的各处理功能。

根据本发明,能在星型拓扑的全双工网络中,实现提高整个网络的消息传输效率,并且能提高整个网络的每单位时间的消息传输量,能在每单位时间发送比以往更多的消息。

最后,为了与上述本发明进行比较,在图17、图18中示出将以往方法适用于星型拓扑网络的情况,以下进行说明。

图17是表示上述星型拓扑的网络系统中的通信动作的具体例。

另外,这里并不特别表示上述星型拓扑的网络系统的结构,如图17所示那样,设为以下结构:具有4个节点100(站点1、站点2、站点3、站点4)和1个中继装置(hub)110。虽然未图示,各节点100分别通过通信线与中继装置110连接,经由中继装置110与其他节点100进行数据收发。中继装置110若收到从任意中继装置110发送来的任意数据帧,则将其临时存储于内置存储器之后,向目的地节点100中继/传输。

中继装置110具有与上述各通信线连接的各端口,通过识别出哪个节点100的通信线连接到哪个端口,并从与目的地节点100相对应的端口发送上述临时存储的数据帧,从而进行上述中继/传输。

在图17所示的示例中,将通信周期时分成多个时间段,这里是分成图示的公共存储器传输时间段(ts时间段)、消息传输时间段(msg时间段)等。

ts时间段是进行保证上述实时性的数据通信(数据交换)的时间段,所有的各节点100需要分别将本装置的数据传输至其他所有的节点100。

ts时间段中的数据收发动作在图示的示例中与上述在先申请(专利文献1、2)等相同,这里不特别详细地进行说明,所有节点100在彼此不同的时刻发送本装置的数据。该数据的传输目的地是所有广播(本站点以外的所有站点),发送目的地是中继装置110。由此,中继装置110将接收到的数据传输到该发送方以外的所有站点。这样,所有各站点能将本节点的数据传输至所有其他站点。

这里,在图示的示例中,站点3为主站点,除此以外的站点全都是从站点。而且,有消息发送请求的站点在上述ts时间段中发送本站点的数据时,将消息发送请求附加到该发送数据。如上所述,该发送数据被传输到所有站点,因此也传输到作为主站点的站点3,进而将上述消息发送请求传输给站点3。

在图示的示例中,站点1、站点2、站点3(即除站点4以外)附加上述消息发送请求并进行发送。此外,发送多个数据帧的站点例如将消息发送请求仅附加到最初的数据帧并进行发送。

然后,作为主站点的站点3基于这些消息发送请求,使用某现有的许可站点判定方法(例如通过轮询等优先顺序设定进行判定),并决定许可站点。然后,利用令牌帧将发送权分配站点信息(分配站点的站点编号等)通知给各站点。在图示的示例中,将站点2设为消息发送许可站点。由此,在成为msg时间段时,站点3发送许可站点2的令牌101。这在图示的示例中,是对所有站点(广播)发送令牌,由此中继装置110将该令牌101传输到除发送方以外的所有站点(站点1、站点2、站点4)。

然后,上述各站点根据接收到的令牌101判断本站点可否发送消息,在可以发送的情况下,进行消息的发送。这里,如上所述,将发送权分配给站点2,因此接收到上述令牌101时,发送本站点的消息帧102(图示的“站点2msg”)。

此外,在图示的示例中,该消息102是要发送给所有站点的(广播),由此中继装置110将该消息102传输到除发送方以外的所有站点(站点1、站点3、站点4)。

另外,虽然未在图中示出,但在主站点(站点3)对多个站点提供许可的情况下,接着还发送许可其他站点的令牌,与上述相同,被许可的站点接收到该令牌时开始发送本站点的数据。

图18中示出使用了现有方法时的各站点中的处理部的处理示例的流程图。

处理部使用通过专利文献2等现有的站点同步方法来与主站点的计时器同步的周期计时器、公共存储器和用于进行消息的传输的发送计时器,分别针对各个计时器的计时器超时事件、各种帧的接收事件进行特定的处理。

图18的处理随时都能执行,基本上是处于在等待某一事件的等待状态下(步骤s101),每当发生某一事件时(步骤s102:是),判定所发生的事件的内容(步骤s103)并执行与之相应的处理。

即,在所发生的事件是周期计时器超时(周期t.o.)的情况下(步骤s104:是),执行步骤s105~s110的处理。

即,基本上在公共存储器用发送计时器上置位规定的设定值(步骤s105),并启动该公共存储器用发送计时器(步骤s110),在该启动前执行步骤s106~s109的处理。

即,首先,对有无本站点的消息发送请求进行确认,在有消息发送请求的情况下(步骤s106:是),对消息发送请求进行置位(步骤s107)。另外,进行置位是指存储于公共存储器帧中。由此,若通过后述的步骤s112的处理发送公共存储器帧,则通过由hub等中继装置进行的中继处理,在所有站点接收该公共存储器帧。由此,当然,主站点也会接收公共存储器帧,并且识别消息发送请求。

而且,在本站点是主站点的情况下(步骤s108:yes),对上述本站点的消息发送请求进行登记(步骤s109)。另外,进行登记是指例如未图示的“存储于‘用于进行发送权管理的登记表’”。另外,如后述的步骤s122那样,对其他站点的消息发送请求也进行登记。而且,在后述的步骤s117中,基于被登记的消息发送请求,进行许可站点判定。

此外,在已发生的事件是公共存储器用发送计时器发生计时器超时(公共存储器用发送t.o.)的情况下(步骤s111:是),即在成为ts时间段中的本站点的数据发送时刻的情况下,发送本站点的数据(公共存储器帧)(步骤s112)。这是根据情况对本站点的数据(公共存储器帧)附加消息发送请求,并经由未图示的驱动器进行发送。

接着上述步骤s112,进而对消息用发送计时器进行置位(步骤s113),启动该消息用发送计时器(步骤s114)。另外,在该起动之后,消息用发送计时器发生了计时器超时时,后述的步骤s115的判定成为是。另外,步骤s113、s114的处理也可以仅由主站点进行。

此外,在已发生的事件是消息用发送计时器发生计时器超时(消息用发送t.o)的情况下(步骤s115:是),本站点为主站点时(步骤s116:是),基于上述“用于进行发送权管理的登记表”的存储内容,进行消息发送许可站点判定,生成与判定结果相对应的令牌帧(步骤s117),并发送该令牌帧(步骤s118)。

另外,步骤s117的消息发送许可站点判定处理可以使用现有的任意方法,虽未特别说明,但作为一个示例例如可以是均等分配,或者可以是“加权轮询”等进行优先顺序设定分配,或者是它们的组合,也可以使用其它任意的现有方法。无论是哪一种方法,其判定方法本身没有特别限制,可以是现有的任何方法,也可以是该现有方法的组合等。

另外,在所发生的事件是接收公共存储器帧的情况下(步骤s119:是),进行该公共存储器帧的接收处理(例如存储到未图示的公共存储器的相应区域)(步骤s120)。

而且,在本站点是主站点的情况下(步骤s121:yes),在接收到的公共存储器帧附加有消息发送请求时,对该其他站点的消息发送请求进行登记(步骤s122)。

然后,在已发生的事件是在上述步骤s118中接收从主站点发送来的令牌帧的情况下(步骤s123:是),在该令牌帧中包含有许可站点的站点编号等,因此通过参照该站点编号,判定本站点是否是许可站点(步骤s124),在本站点为许可站点时(将发送权提供给本站点的情况下)(步骤s125:是),发送本站点的消息帧(步骤s126)。

如上所述,在将现有方法应用于星型拓扑的网络系统的情况下,主要是相应令牌帧的收发所花费的时间而效率变差,在msg时间段内能收发的消息数变少。

对此,根据上述的本方法,如上述那样能解决这种问题。

根据本发明的控制网络系统及其节点装置等,能在星型拓扑的全双工线路的网络系统中,实现提高整个网络的消息传输效率,并且能提高整个网络的每单位时间的消息传输量。

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