通信装置及延迟检测方法

文档序号:7552527阅读:425来源:国知局
专利名称:通信装置及延迟检测方法
技术领域
本发明涉及一种通信装置及延迟检测方法。
背景技术
在使用网络,特别是在FA (Factory Automation)系统中使用的要求实时性的网络进行通信时,希望通信延迟落在规定的时间之内,且没有信息缺损。通常,延迟测量有下述两种方法,即,在进行测量的2个节点之间测量往返的延迟时间的方法和测量单程的延迟时间的方法。在单程的延迟时间测量中,由于能够在接收侧接收到通信帧的时刻进行延迟判定,因此与测量往返延迟时间的方法相比,具有能够缩短延迟测量所花费的时间的优点。相反地,在进行单程的延迟时间测量时,需要使两个节点之间的时钟同步,或者计算出两个节点之间的时钟的偏差时间。单程的延迟时间的测量,在专利文献I中以下述方式进行。首先,计算时钟的偏差时间,然后,在发送侧的节点处,对要发送的包赋予发送时间的时间戳并发送。然后,在接收侧的节点处,记录包接收时刻的时间戳。并且,接收侧的节点使用两个节点之间的时钟的偏差时间、发送时刻的时间戳及接收时刻的时间戳,计算延迟。另外,时钟的偏差时间的计算以下述方式进行。在此,使各节点具有时间计算功能。首先,第I节点向第2节点发送偏差时间计算用的包,该偏差时间计算用的包被赋予了从第I节点的计时器获取的发送时刻的时间戳。然后,第2节点在接收到的包中追加来自第I节点的包接收时刻和将包向第I节点返回时的发送时刻,并将该包向第I节点返回。并且,第I节点记录所返回的包的接收时刻,基于4个时刻,计算出偏差时间。另一方面,2个节点之间的时钟同步,在专利文献2中以下述方式进行。首先,第I节点生成将发送时刻置于第I有效数据部(pay load)中的测量包,向第2节点发送。然后,第2节点如果从第I节点接收到测量包,则生成答复包并向第I节点发送,其中,在该答复包中,在第I有效数据部中写入有测量包的发送时刻,在第2有效数据部中写入有测量包的接收时刻,并且在第3有效数据部中写入有答复包的发送时刻。并且,接收到答复包的第I节点,记录答复包的答复包接收时刻,基于4个时刻进行时钟的校正。另外,针对信息(包)的缺损,例如在专利文献I中,在节点中设有丢包率计算功能,向发送包赋予顺序号,根据顺序号的欠缺,对包的丢失数量进行计数。专利文献1:日本特开2004 - 289748号公报专利文献2:日本特开2007 - 27985号公报

发明内容
然而,在专利文献I中记载的偏差时间的计算方法中,将偏差时间计算用的包与在通常的通信中所使用的包并行地进行接收/发送。在将上述方法应用在如内部系统那样的进行周期性动作的节点中的情况下,在通常的通信以外,需要不定期(以不同的周期)地进行偏差时间计算用的包的接收/发送处理,存在难以维持周期性动作的问题。
另外,在专利文献2记载的时钟同步方法中,由于需要向答复包的数据部中写入3个时刻信息,因此,时刻信息的数据大小变大。因此,在有效数据部大小有限的状况下,存在用于传输通常数据的区域受到损失的问题。并且,在检测延迟时,由于将用于延迟检测的时刻全部保存在包中,因此,还存在包中存储的时间信息变大的问题。另外,关于包的缺损,是通过顺序号的欠缺进行检测的,但在发送的包为I个的情况等中,还存在难以进行缺损的检测的问题。本发明就是鉴于上述情况而提出的,其目的在于得到一种通信装置及延迟检测方法,在将进行周期性动作的节点利用网络进行连接的通信系统中,能够维持周期性动作,且无需缩减用于存储通常数据的区域,即可发送用于计算各节点之间的时钟偏差的信息。为了实现上述目的,本发明所涉及的通信装置在与经由传送路径连接的其他通信装置之间进行周期通信,该通信装置的特征在于,具有:时钟,其对时间进行测定;通信单元,其对通信帧进行接收/发送;时间戳生成单元,其在通过本通信装置发送/接收的所述通信帧的发送时或接收时,使用所述时钟生成时间戳;发送数据存储单元,其对周期性发送的所述通信帧中所存储的周期发送数据进行存储;接收数据存储单元,其对周期性接收的所述通信帧中的周期发送数据进行存储;帧处理单元,其针对所述其他通信装置,生成包含数据更新指令、所述发送数据存储单元中的所述周期发送数据、以及从所述时间戳生成单元获取的发送定时的时间戳即帧发送时刻在内的更新指令帧,如果接收到来自所述其他通信装置的更新指令帧,则将该更新指令帧中包含的周期发送数据存储在所述接收数据存储单元中;以及单程延迟检测单元,其根据下述条件判定从所述其他通信装置发送的通信帧是否发生了延迟,即,如果接收到所述更新指令帧,则是否是在接收前一个所述更新指令帧后,在第I延迟容许时间内接收到下一个更新指令帧,另外,在所述第I延迟容许时间内接收到所述下一个更新指令帧的情况下,该更新指令帧的从所述其他通信装置至本通信装置的传输时间是否在第2延迟容许时间内。发明的效果根据本发明,在周期通信中,在2个节点之间交换的通信帧中,在要发送的数据的基础上,存储用于延迟检测的时间戳,根据存储在该进行周期通信的通信帧中的时间戳和通信帧的接收时刻,对网络内的通信帧的延迟进行检测。由此,无需为了检测延迟而在周期通信中交换的通信帧之外发送新的通信帧,且通信帧中包含的时刻信息仅是该通信帧的发送时刻即可,通信帧的大小也不改变,因此,如果应用于如进行定序控制的可编程控制器那样以规定的处理周期进行动作的装置中,则具有在不对定期数据处理产生影响的情况下,能够进行通信帧的延迟检测的效果。


图1是示意地表示使用本发明的实施方式I的通信系统而构成的网络的一个例子的图。图2是示意地表示rou的结构的一个例子的图。图3是示意地表示构成通信系统的通信节点的结构的图。图4是表示周期通信开始前的主站点和从属站点之间的时钟偏差计算处理中的PDU的交换动作的时序图。
图5是表示周期通信时的主站点和从属站点之间的时钟偏差计算处理中的rou的交换动作的时序图。图6是表示主站点的时钟偏差计算时的动作处理步骤的一个例子的流程图。图7是表示从属站点的时钟偏差计算时的动作处理步骤的一个例子的流程图。图8是表示实施方式I的单程延迟检测处理的步骤例的流程图。图9是表示实施方式I的主站点处的往返延迟检测处理的步骤例的流程图。图10是表不实施方式I的PDU丧失检测处理的步骤例的流程图。图11是表示实施方式2的从属站点的PDU发送时的校验码设定处理的步骤例的流程图。图12是表示实施方式2的单程延迟检测处理的步骤例的流程图。图13是表示由主站点进行的48位PDU发送时刻和48位PDU接收时刻的生成处理的步骤例的流程图。图14是表示由从属站点进行的48位PDU发送时刻和48位PDU接收时刻的生成处理的步骤例的流程图。图15是表示实施方式2的丧失检测处理的步骤例的流程图。图16是表示由主站点进行的48位PDU发送时刻和48位PDU接收时刻的生成处理的步骤例的流程图。图17是表示由从属站点进行的48位PDU发送时刻和48位PDU接收时刻的生成处理的步骤例的流程图。
具体实施例方式下面,参照附图,详细地说明本发明所涉及的通信装置及延迟检测方法的优选实施方式。此外,本发明并不限定于这些实施方式。实施方式I图1是示意地表示使用本发明的实施方式I的通信系统而构成的网络的一个例子的图。如该图所示,通信系统具有将2个节点1、2经由以太网(登记商标)等传送路径3连接的结构。节点I具有主延迟丧失检测单元14,该主延迟丧失检测单元14具有向节点2发出时钟偏差的计算指令等的功能,节点2具有从属延迟丧失检测单元24,该从属延迟丧失检测单元24按照来自节点I的主延迟丧失检测单元14的指令进行时钟偏差的计算处理
坐寸ο在本实施方式I中,通信是在预先确定的具有主延迟丧失检测单元14和从属延迟丧失检测单元的一对节点1、2之间进行的。S卩,节点1、2具有下述功能:节点I在进行周期性通信时,以规定的周期向所配对的对象即节点2指示进行时钟偏差的测量/计算,节点2在进行周期性通信时,按照来自所配对的对象即节点I的指令,进行用于计算时钟偏差的测量及时钟偏差的计算。另外,节点I的主延迟丧失检测单元14和节点2的从属延迟丧失检测单元24还具有下述功能,S卩,使用周期通信中所使用的通信帧,对周期通信中的通信帧的延迟或丧失进行检测。下面,将指示进行时钟偏差计算的节点I这一方设为主站点,将基于来自主站点I的指令而进行时钟偏差计算处理的节点2这一方设为从属站点。
此外,在图1的例子中,示出将2个节点1、2连接在网络中的情况,但也可以将大于或等于3个节点连接在网络中。另外,也可以是I个节点具有多个延迟丧失检测单元,与具有与各个延迟丧失检测单元成对的延迟丧失检测单元的多个节点进行通信。例如第I节点(主站点)I具有第I和第2主延迟丧失检测单元,第I主延迟丧失检测单元与第2节点(从属站点)2的从属延迟丧失检测单元组对,第2主延迟丧失检测单元与第3节点(从属站点)的从属延迟丧失检测单元组对,由此能够进行通信。
在此,对于在该通信系统中进行交换的通信帧的数据部中存储的协议-数据-单元(以下称作rou)的结构进行说明。图2是示意地表示PDU的结构的一个例子的图。PDU30包含:头部(Header) 31、数据部(Data) 32 及尾部(Trailer) 33。头部 31 具有 PDU30 的头部信息,包含:CTRL311、CID312、TS313 及 0BL314。CTRL311包含:表示Η)υ30的类别的类别信息、包含表示请求/响应的位(bit)的请求/响应信息、包含表示用于偏差计算的TOU30的关联关系的位的PDU关联信息。作为PDU30的类别,在实施方式I中使用下述4种:进行更新处理的准备完成和偏差测量的通知的RefreshReady、进行更新处理和偏差测量的通知的RefreshMO、进行更新处理和偏差生成的通知的RefreshGO、进行更新处理的通知的Refresh。请求/响应信息是用于表示由类别信息表示的PDU30是请求还是对请求的响应的位,请求和响应是以彼此成为使位反转的关系的方式预先确定的。对于PDU关联信息,从初始状态开始,每次进行偏差计算则进行反转,该PDU关联信息用于确定偏差计算所用的rou30的组。S卩,关于在 次偏差计算处理期间交换的RefreshMO或RefreshReady (测定指令)和RefreshGO (计算指令)的PDU30,PDU关联信息具有相同的位(值),在下一个偏差计算处理期间交换的RefreshMO和RefreshGO的TOU30中,将前一个PDU关联信息进行了反转。例如,关于从主站点I发出的RefreshReady请求、从从属站点2发出的RefreshReady响应、从主站点I发出的RefreshGO请求、从从属站点2发出的RefreshGO响应的一系列处理,PDU关联信息为相同的位(值),例如“O”。另外,关于接下来的从主站点I发出的RefreshMO请求、从从属站点2发出的RefreshMO响应、从主站点I发出的RefreshGO请求、从从属站点2发出的RefreshGO响应的一系列处理,PDU关联信息是相同的位,且是与前一个PDU关联信息不同的位,此处为“I”。并且,关于接下来的从主站点I发出的RefreshMO请求、从从属站点2发出的RefreshMO响应、从主站点I发出的RefreshGO请求、从从属站点2发出的RefreshGO响应的一系列处理,PDU关联信息是相同的位,且是与前一个PDU关联信息不同的位,此处为“O”。如上所述,对PDU关联信息进行设定。CID312是使TOU30与进行通信的设备对、即主站点I的主延迟丧失检测单元14和从属站点2的从属延迟丧失检测单元24相关联的识别信息。存储在CID312中的识别信息是以下述方式生成的,即,对应于进行通信的每一对主延迟丧失检测单元14及从属延迟丧失检测单元24,该识别信息彼此不同,在网络内是唯一的。作为存储在CID312中的识别信息的生成规则的一个例子,能够例示使主站点I的地址和从属站点2的地址连接的方法。但是,对于在主站点I设置第2主延迟丧失检测单元,在从属站点2设置第2从属延迟丧失检测单元,将第2主延迟丧失检测单元和第2从属延迟丧失检测单元设为第2设备对,在主站点I和从属站点2之间进行第2通信的情况,根据上述识别信息的生成规则,则会发生重复。因此,作为在第2设备对进行通信的情况下所使用的识别信息的生成规则,能够例示使上述识别信息生成规则中的连接顺序反转,而使从属站点2的地址和主站点I的地址连接的方法。TS313是存储与H)U30的发送定时(timing)相关的时间戳的区域。具体来说,存储的是在周期通信中,主延迟丧失检测单元14或从属延迟丧失检测单元24发送TOU30的定时的时间戳。另外,除了周期通信中以外,存储通过主延迟丧失检测单元14发送表示请求的PDU30的定时的时间戳,在通过从属延迟丧失检测单元24发送表示对来自主延迟丧失检测单元14的请求作出的响应的rou30时,对存储在表示与该响应相对应的请求的rou30的TS313中的值(即,表示与响应相对应的请求的发送定时的时间戳)进行存储。此外,在周期通信中发送的F*DU30的主要类别是RefreshMO、RefreshGO、Refresh。0BL314是对在计算时钟偏差时所使用的信息进行存储的区域。具体来说,在CTRL311的类别信息为RefreshGO,且请求/响应信息为请求的情况下,即,在TOU30为RefreshGO请求的情况下,存储如下时间戳的值,其中,该时间戳表示作为生成RefreshGO请求的基础的RefreshReady响应或RefreshMO响应的接收定时。数据部32是进行周期通信的数据等的数据存储区域。另外,尾部33是在检测PDU30的损坏时所使用的校验码的存储区域。作为校验码能够使用CRCXCyclic RedundancyCheck)循环冗余码等。如上所述,TS313存储在从主站点I向从属站点2或从从属站点2向主站点I发送的rou30的延迟/丧失检测中使用的该rou30的发送时刻。但是,在本实施方式I中,通过在该TS313的基础上设置0BL314,从而能够在从属站点2侧进行以主站点I为基准的时钟偏差的计算,其中,0BL314用于存储时钟偏差计算所需的主站点I处的TOU30的接收时亥IJ。此外,关于使用这些信息实现的延迟/丧失检测处理和时钟偏差计算处理,如后所述。图3是示意地表示构成通信系统的通信节点的结构的图,Ca)是示意地表示主站点的结构的框图,(b)是示意地表示从属站点的结构的框图。如图3(a)所示,主站点I具有:时钟11、发送数据存储部12、接收数据存储部13、主延迟丧失检测单元14、帧发送部15及帧接收部16。时钟11生成主站点I所使用的时刻信息。发送数据存储部12例如存储在周期通信中向其他节点发送的周期发送数据,接收数据存储部13例如存储在周期通信中接收到的rou的数据部中所存储的数据(周期接收数据)。存储在发送数据存储部12中的周期发送数据用于由与本装置连接的未图示的处理装置进行的运算,以得到向与其他节点(从属站点2)连接的未图示的输入输出设备等设定的值。另外,存储在接收数据存储部13中的周期接收数据是来自与其他节点连接的输入输出设备的输出值等,用于由处理装置进行的运算。主延迟丧失检测单元14具有如下功能,即,生成在与对象节点(从属站点2)之间进行交换的rou,并且,使用进行周期通信的PDU而对PDU的延迟或丧失进行检测。另外,具有将从属站点2的时钟偏差计算所需的信息存储在PDU中并进行发送,对从属站点2指示进行时钟偏差测量/计算的功能。帧发送部15将由主延迟丧失检测单元14生成的PDU存储在以太网(登记商标)帧等通信帧的数据部中并向网络发送。另外,帧接收部16参照在网络上传输的以太网(登记商标)帧等通信帧的头部而接收以本节点为目标的通信帧,提取存储在数据部中的rou。在此,对主延迟丧失检测单元14的详细结构进一步进行说明。主延迟丧失检测单元14具有:连接建立请求部141、时间戳生成部142、帧处理部143、时间戳存储部144、单程延迟检测部145、往返延迟检测部146及丧失检测部147。连接建立请求部141用于在与所配对的节点(从属站点2)之间进行连接建立处理。时间戳生成部142生成由帧处理部143发送(生成)的I3DU的以时钟11为基准的发送时的时刻即时间戳,并发送至帧处理部143。另外,在从其他节点接收到rou时也生成时间戳。帧处理部143具有对应于处理状况而生成向从属站点2发送的H)U的功能。例如在连接建立处理已完成的情况下,生成RefreshReady请求。另外,在接收RefreshReady响应或RefreshMO响应并在发送数据存储部12内存在周期发送数据的情况下,生成RefreshGO请求。并且,在接收RefreshGO响应并在发送数据存储部12内存在周期发送数据的情况下,生成RefreshMO请求。并且,在周期通信中的其他情况下,生成Refresh请求。在这些情况下,帧处理部143将存储在发送数据存储部12内的周期发送数据存储在数据部32中,或者将从时间戳生成部142发送来的时间戳存储在各PDU的TS中等,从而将规定的信息存储在各存储区域中。另外,在生成RefreshGO请求的情况下,针对作为生成RefreshGO请求的基础的RefreshReady响应或RefreshMO响应,将该RefreshReady响应或RefreshMO响应的接收时的时间戳存储在OBL中。并且,帧处理部143还具有下述功能,即,获取在接收到的rou的数据部中存储的数据,并存储在接收数据存储部13中,或者从TS读取时间戳,将其作为PDU发送时刻而保存在时间戳存储部144中,从而提取各处理部所需的信息。时间戳存储部144对存储在接收到的rou的TS中的值,和在接收到规定的rou时由时间戳生成部生成的时间戳进行存储。在此,为了进行延迟检测及时钟偏差计算,将接收到的Refresh请求、RefreshMO响应或RefreshGO响应的存储在TS中的值,存储作为PDU发送时刻T_snd,将接收Refresh请求、RefreshMO响应或RefreshGO响应时由时间戳生成部142生成的时间戳,存储作为PDU接收时刻T_rcv。另外,为了进行丧失检测,将RefreshReady响应、Refresh请求、RefreshMO响应或RefreshGO响应的存储在TS中的值,存储作为前次PDU发送时刻T_psnd,将紧接在上述PDU之后接收的Refresh请求、RefreshMO响应或RefreshGO响应的存储在TS中的值,作为本次PDU发送时刻T_nsnd进行存储。单程延迟检测部145使用从从属站点2接收的H)U,对是否发生TOU的延迟进行检测。在此,根据是否周期性地接收rou,和PDU从对方节点到达本节点所花费的时间,进行延迟判定。具体来说,在周期通信开始的同时或前一个rou的接收时启动定时器,在规定的时间(第I延迟容许时间r_interval)内没有接收到Refresh请求、RefreshMO响应或RefreshGO响应的情况下,判定为超过容许延迟。另外,即使在规定的时间内接收到Refresh请求、RefreshMO响应、RefreshGO响应的情况下,也使用时间戳存储部144中的PDU发送时刻T_snd和PDU接收时刻T_rcv,通过下式(I)对是否超过容许延迟进行判定。在此,将第2延迟容许时间设为cLallowed,在满足(I)式的情况下,判定为没有发生延迟,在没有满足(I)式的情况下,判定为发生了延迟。此外,第I延迟容许时间[interval和第2延迟容许时间cLallowed可以设定为相同的值,也可以设定为不同值。T_rcv — T_snd < d_allowed…(I)往返延迟检测部146按照与从属站点2之间的请求响应序列,对往返延迟是否在容许延迟内进行检测。具体来说,在发送出请求响应序列中的请求PDU后启动定时器,在规定时间(往返延迟许可时间rtt_alloWed)内没有接收到对于请求的响应H)U的情况下,判定为超过容许延迟。所谓请求响应序列,是指在将表示请求的rou向从属站点2发送后,从从属站点2返回表示其响应的PDU的处理,例如可例示偏差计算前的请求响应序列、偏差计算所使用的RefreshReady请求和响应、RefreshMO请求和响应、RefreshGO请求和响应、周期通信以外的通信中的请求响应序列。其中,在没有进行周期通信时,由往返延迟检测部146进行往返延迟检测处理。此外,往返延迟检测部146对接收到的响应I3DU是否是与发送的请求PDU相对应的响应PDU进行确认。具体来说,在本节点发送的请求PDU是在偏差计算前发送的请求rou、RefreshReady请求及周期通信以外的通信中的请求PDU的情况下,对发送的请求PDU的TS与接收到的响应rou的TS是否一致这一情况进行确认。另外,在本节点发送的请求rou是RefreshMO请求和RefreshGO请求的情况下,对发送的请求I3DU的CTRL中的PDU关联信息与从对方节点接收到的响应PDU的CTRL中的PDU关联信息是否一致进行比较。并且,在两者一致的情况下,确认为接收到的响应PDU是与发送的请求PDU相对应的响应rou。丧失检测部147对网络上的H)U的丧失进行检测。具体来说,使用时间戳存储部中的前次PDU发送时刻T_psnd和本次PDU发送时刻T_nsnd,通过下式(2)对PDU的丧失进行判定。在此,将表示容许接收间隔的丧失评价时间设为trnS_interval,在满足(2)式的情况下,判定为没有发生丧失,在没有满足(2)式的情况下,判定为发生了丧失。T_psnd — T_nsnd < trns_in`terval...(2)另外,丧失检测部147在通过(2)式的判定而判定为没有丧失的情况下进行下述处理,即,将时间戳存储部144中的本次PDU发送时刻的值T_nsnd设定为新的前次I3DU发送时刻T_psnd,并删除本次PDU发送时刻的值。由此,能够对于周期性接收的Refresh请求、RefreshMO响应或RefreshGO响应进行丧失检测处理。如图3 (b)所示,从属站点2具有:时钟21、发送数据存储部22、接收数据存储部
23、从属延迟丧失检测单元24、帧发送部25及帧接收部26。在此,由于时钟21、发送数据存储部22、接收数据存储部23、帧发送部25及帧接收部26具有与主站点I的对应单元相同的功能,因此,省略其说明。从属延迟丧失检测单元24具有如下功能,即,生成在与主站点I之间进行交换的PDU,并且,使用进行周期通信的PDU而对PDU的延迟或丧失进行检测。另外,还具有从对方节点的PDU获取时钟偏差计算所需的信息而计算时钟偏差的功能。具有上述功能的从属延迟丧失检测单元24具有:连接建立响应部241、时钟偏差存储部242、时间戳生成部243、帧处理部244、时间戳存储部245、时钟偏差计算部246、单程延迟检测部247及丧失检测部248。连接建立响应部241用于在与所配对的主站点I之间进行连接建立处理。时钟偏差存储部242对以主站点I的时钟11为基准的从属站点2的时钟21的偏差值即时钟偏差进行存储。时间戳生成部243关于由帧处理部244发送(生成)的TOU,生成以主站点I的时钟11为基准的发送时刻即时间戳,并发送至帧处理部244。另外,在从其他节点接收到rou的时刻也生成时间戳。时间戳生成部243基于从时钟21得到的时刻(值)与时钟偏差存储部242中的时钟偏差的和,生成时间戳。帧处理部244具有对应于处理状况而生成向所配对的主站点I发送的I3DU的功能。例如在接收到RefreshReady请求、RefreshMO请求及RefreshGO请求,发送数据存储部22中存储有周期发送数据的情况下,分别生成RefreshReady响应、RefreshMO响应及RefreshGO响应。另外,在周期通信中没有接收到上述H)U,而是在接收到前一个PDU后经过了规定时间的情况下,生成Refresh请求。在这些情况下,帧处理部244将存储在发送数据存储部22内的周期发送数据存储在rou的数据部中,或者将在周期通信中从时间戳生成部243发送的时间戳存储在TS中,或者将在周期通信以外的情况下接收到的PDU的TS中所存储的值,存储在对于接收PDU的响应rou的TS中等,从而将规定的信息存储在各存储区域中。另外,帧处理部244还具有下述功能,即,获取在接收到的rou的数据部中存储的数据,并将其存储在接收数据存储部23中,或者从TS读取时间戳,作为PDU发送时刻而存储在时间戳存储部245中,并从接收到的PDU提取各处理部所需的信息。时间戳存储部245对存储在接收到的I3DU的TS中的值,和在接收到规定种类的PDU时由时间戳生成部243生成的时间戳进行存储。在此,为了进行延迟检测,将接收到的Refresh请求、RefreshMO请求或RefreshGO请求的存储在TS中的值,存储作为PDU发送时刻T_snd,将Refresh请求、RefreshMO请求或RefreshGO请求的接收时的时间戳,存储作为PDU接收时刻T_rcv。另外,为了进行丧失检测,将RefreshReady请求、Refresh请求、RefreshMO请求或RefreshGO请求的存储在TS中的值,存储作为前次PDU发送时刻T_psnd,将紧接在上述PDU之后接收的Refresh请求、RefreshMO请求或RefreshGO请求的存储在TS中的值,存储作为本次PDU发送时刻T_nsnd。并且,为了进行时钟偏差计算,将从主站点I接收到的包含偏差测量指令的PDU中存储在TS中的值,存储作为测量用PDU主发送时刻Tm_snd,将在接收到包含偏差测量指令的PDU时从时间戳生成部243获取的时间戳,存储作为测量用PDU从属接收时刻Ts_rcv。另外,将在发送了与包含偏差测量指令的PDU相对应的响应PDU时从时间戳生成部243获取的时间戳,存储作为测量用PDU从属发送时刻Ts_snd。并且,将从主站点I接收到的包含偏差计算指令的I3DU的OBL内的值,存储作为测量用PDU主接收时刻Tm_rcv。此外,作为包含偏差测量指令的H)U,可例示RefreshReady请求或RefreshMO请求,作为与包含偏差测量指令的PDU相对应的响应rou,可例示RefreshReady响应或RefreshMO响应,作为包含偏差计算指令的F1DU,可例示RefreshGO请求。时钟偏差计算部246计算在使用时间戳进行单程延迟测量时所需的主站点I的时钟11与本节点的时钟21之间的偏差(时钟偏差)。具体来说,如果接收到包含偏差计算指令的H)U,则根据来自时间戳存储部245的测量用PDU主发送时刻Tm_snd、测量用PDU从属接收时刻Ts_rcv、测量用PDU从属发送时刻Ts_snd及测量用PDU主接收时刻Tm_rcv,使用下式(3),计算时钟偏差ts_offset。
ts_offset= [Tm_rcv+Tm_snd — (Ts_rcv+Ts_snd)]/2…(3)单程延迟检测部247使用从主站点I接收的H)U,检测是否发生了 PDU的延迟。具体来说,在周期通信开始的同时或接收到前一个rou时启动定时器,在规定时间(第 单程延迟容许值r_interval)内没有接收到Refresh请求、RefreshMO请求或RefreshGO请求的情况下,判定为超过容许延迟。另外,即使在规定时间内接收到Refresh请求、RefreshMO请求、RefreshGO请求的情况下,也根据时间戳存储部245中的PDU发送时刻T_snd和TOU接收时刻T_rcv,使用上述(I)式,对是否超过容许延迟进行判定。丧失检测部248对网络上的H)U的丧失进行检测。具体来说,使用时间戳存储部245中的前次PDU发送时刻T_psnd和本次PDU发送时刻T_nsnd,通过上述(2)式对PDU的丧失进行判定。下面,对上述结构的通信系统中的时钟偏差计算方法、单程延迟检测方法、往返延迟检测方法及丧失检测方法进行说明。首先,进行时钟偏差计算方法的说明。图4是表示周期通信开始前的主站点和从属站点之间的时钟偏差计算处理中的rou的交换动作的时序图,图5是表示周期通信时的主站点和从属站点之间的时钟偏差计算处理中的rou的交换动作的时序图。如图4所示,在周期通信开始前,从主站点I向从属站点2发出包含更新准备完成通知和偏差计测指令的RefreshReady请求(SQlI),从从属站点2发出对于该RefreshReady请求的响应即RefreshReady响应(SQ12)。在此,从主站点I发出RefreshReady请求时的时间戳Tm_snd、从属站点2接收到RefreshReady请求时的时间戳Ts_rcv、从属站点2发出RefreshReady响应时的时间戳 Ts_snd及主站点I接收到RefreshReady响应时的时间戳Tm_rcv,分别由各节点的时间戳生成部生成。然后,从主站点I发送用于指示进行时钟偏差计算的RefreshGO请求(SQ13)。从属站点2在接收到RefreshGO请求后,使用所获取的时间戳Tm_snd、Ts_rcv、Ts_snd及Tm_rev,开始时钟偏差计算处理。另外,以RefreshGO请求的接收为契机,在从属站点2开始周期通信。从属站点2发送针对RefreshGO请求的响应即RefreshGO响应(SQ14),在主站点I以RefreshGO响应的接收为契机,开始周期通信。然后,主站点I在经过了规定时间后,发送Refresh请求(SQ15),另外,从属站点2也在经过了规定时间后,发送Refresh请求(SQ16)。在主站点I处,从发送RefreshGO请求至发送接下来的Refresh请求为止的时间为周期Tl。另外,在从属站点2处,从发送RefreshGO响应至发送接下来的Refresh请求为止的时间为周期T2。另一方面,如图5所示,在周期通信中,周期性地从主站点I及从属站点2发出用于指示进行更新处理的请求/响应(SQ31至SQ39)。另外,在开始周期通信后,按照规定的时间间隔,主站点I发送用于指示进行时钟偏差测量和更新处理的RefreshMO请求(SQ32),从属站点2发送针对该RefreshMO请求的响应即RefreshMO响应(SQ37)。在此,从主站点I发出RefreshMO请求时的时间戳Tm_snd、从属站点2接收到RefreshMO请求时的时间戳Ts_rcv、从属站点2发出RefreshMO响应时的时间戳Ts_snd及主站点I接收到RefreshMO响应时的时间戳Tm_rcv,由各节点的时间戳生成部生成。然后,从主站点I发送用于指示进行时钟偏差计算和更新处理的RefreshGO请求(SQ34)。从属站点2在接收到RefreshGO请求后,使用所获取的时间戳Tm_snd、Ts_rcv、Ts_snd及Tm_rcv,进行时钟偏差的计算处理,将计算出的时钟偏差更新为新的时钟偏差。另夕卜,从属站点2发送针对RefreshGO请求的响应即RefreshGO响应(SQ39)。如上所述,在周期通信中,主站点I和从属站点2均周期性地发送Refresh请求,时钟偏差测量指令或计算指令及针对这些指令的响应并非在与Refresh请求不同的定时发送,而是包含在Refresh请求中发送。在主站点I处,从发送Refresh请求或RefreshGO请求、RefreshMO请求等包含更新处理指令的更新指令PDU至发送下一个更新指令PDU为止的时间为周期Tl。同样地,在从属站点2处,从发送更新指令F1DU (Refresh请求/RefreshGO响应/RefreshMO响应)至发送下一个更新指令PDU为止的时间为周期T2。图6是表示主站点的时钟偏差计算时的动作处理步骤的一个例子的流程图,图7是表示从属站点的时钟偏差计算时的动作处理步骤的一个例子的流程图。在这些流程图中,将主站点I和从属站点2的初始化处理和更新处理一并示出。在此,对应于处理流程,交替地引用图6和图7而对处理流程进行说明。首先,主站点I的连接建立请求部141和从属站点2的连接建立响应部241,进行主站点I和从属站点2之间的连接建立处理(图6的步骤S11、图7的步骤S51)。在连接建立处理中,主站点I的连接建立请求部141将连接建立请求向从属站点2的连接建立响应部241发送,并接收来自从属站点2的连接建立响应部241的响应,然后,进行主延迟丧失检测单元14和从属延迟丧失检测单元24所需的参数的设定或确认。如果连接建立处理完成,则如图6所示,主站点I的帧处理部143从时间戳生成部142接收发送定时的时间戳,针对从属站点2生成用于进行更新准备完成的通知,并指示进行时钟偏差测量的RefreshReady请求。此时,将接收到的时间戳存储在RefreshReady请求的TS中。并且,巾贞发送部15将所生成的RefreshReady请求向从属站点2发送(步骤S12)。上述步骤相当于图4的序列中的SQ11,为偏差计算的开始定时。然后,如图7所示,在巾贞接收部26接收到RefreshReady请求后,从属站点2的中贞处理部244从时间戳生成部243获取接收定时的时间戳,并将所获取的时间戳作为测量用PDU从属接收时刻Ts_rcv而存储在时间戳存储部245中。另外,将接收到的RefreshReady请求的TS内的值作为测量用PDU主发送时刻Tm_snd,而存储在时间戳存储部245中(步骤S52)。然后,作为针对接收到的RefreshReady请求的响应,从属站点2的巾贞处理部244生成将存储在RefreshReady请求的TS中的值存储至TS中的RefreshReady响应。并且,从中贞发送部25发送RefreshReady响应。此时,巾贞处理部244将RefreshReady响应发送时的从时间戳生成部243获取的时间戳,作为测量用PDU从属发送时刻Ts_snd而存储在时间戳存储部245中(步骤S53)。上述步骤相当于图4的序列中的SQ12。然后,如图6所示,主站点I的巾贞接收部16接收RefreshReady响应。巾贞处理部143从时间戳生成部142获取接收定时的时间戳并暂时存储(步骤S13),判定发送数据存储部12中是否新存在在周期通信中发送的数据(以下称为周期发送数据)(步骤S14)。在没有存储周期发送数据的情况(步骤S14中为“否”的情况)下成为等待状态,直至在发送数据存储部12中存储有周期发送数据为止。而且,如果存储有周期发送数据(步骤S14中为“是”的情况),则帧处理部143从时间戳生成部142获取发送定时的时间戳,并将所获取的时间戳存储在TS中,将周期发送数据存储在数据部中,将在步骤S13中暂时存储的RefreshReady响应的接收定时的时间戳存储在OBL中,从而生成RefreshGO请求。并且,将RefreshGO请求从巾贞发送部15向从属站点2发送(步骤S15)。上述步骤相当于图4的序列中的SQ13。然后,如图7所示,对于从属站点2,如果帧接收部26接收到RefreshGO请求,则帧处理部244将RefreshGO请求的OBL中存储的时间戳作为测量用PDU主接收时刻Tm_rcv而存储在时间戳存储部245中。然后,时钟偏差计算部246由于接收到RefreshGO请求,因此,根据存储在时间戳存储部245中的Tm_snd、Ts_rcv、Ts_snd、Tm_rcv,使用上述(3)式,计算从属站点2的时钟21相对于主站点I的时钟11的时钟偏差。时钟偏差计算部246将计算出的时钟偏差,与之前存储在时钟偏差存储部242中的时钟偏差的值相加,将相加得到的结果作为新的时钟偏差存储在时钟偏差存储部242中(步骤S54)。此外,假定通信开始前的时钟偏差为O。然后,从属站点2的帧处理部244判定是否在发送数据存储部22中新存储了周期发送数据(步骤S55)。在没有存储周期发送数据的情况(步骤S55中为“否”的情况)下成为等待状态,直至发送数据存储部22中存储有周期发送数据为止。而且,如果存储有周期发送数据(步骤S55中为“是”的情况),则帧处理部244从时间戳生成部243获取发送定时的时间戳,将所获取的时间戳存储在TS中,将周期发送数据存储在数据部中,从而生成RefreshGO响应。并且,将RefreshGO响应从帧发送部25向主站点I发送(步骤S56)。上述步骤相当于图4的序列中的SQ14。然后,如图6所示,对于主站点1,如果帧接收部16接收到RefreshGO响应(步骤S16),则帧处理部143判定是否在发送数据存储部12中新存储了周期发送数据(步骤S17)。在没有新存储周期发送数据的情况(步骤S17中为“否”的情况)下成为等待状态,直至发送数据存储部22中存储有发送数据为止。而且,如果新存储了周期发送数据(步骤S17中为“是”的情况),则帧处理部143判定是否是时钟偏差计算的定时(步骤S18)。时钟偏差计算由于是在步骤S12中开始最初的时钟偏差计算后,以规定的时间间隔实施,因此以如下方式进行判定,即,通过使用时钟11进行测量,判定从前一次的时钟偏差计算开始是否经过了规定时间。在不是时钟偏差计算的定时的情况(步骤S18中为“否”的情况)下,帧处理部143从时间戳生成部142获取发送定时的时间戳,将所获取的时间戳存储在TS中,将周期发送数据存储在数据部中,从而生成Refresh请求,并从帧发送部15向从属站点2发送(步骤S19)。上述步骤相当于图4的序列中的SQ15、图5的序列中的SQ31。并且,使处理返回步骤 S17。另一方面,在步骤S18中判定为是时钟偏差计算的定时的情况(步骤S18中为“是”的情况)下,帧处理部143从时间戳生成部142获取发送定时的时间戳,将所获取的时间戳存储在TS中,将发送数据存储部12中存储的周期发送数据存储在数据部中,从而生成RefreshMO请求,并从巾贞发送部15向从属站点2发送(步骤S20)。上述步骤相当于图5的序列中的SQ32。然后,如图7所示,从属站点2判定巾贞接收部26是否接收到了 RefreshMO请求(步骤S57)。在没有接收到RefreshMO请求的情况(步骤S57中为“否”的情况)下,帧处理部244进一步判定发送数据存储部22中是否存储了新的周期发送数据(步骤S58)。在没有存储周期发送数据的情况(步骤S58中为“否”的情况)下,返回步骤S57。另外,在存储有周期发送数据的情况(步骤S58中为“是”的情况)下,帧处理部244从时间戳生成部243获取发送定时的时间戳,将接收到的时间戳存储在TS中,将发送数据存储部22中存储的周期发送数据存储在数据部中,从而生成Refresh请求,并从帧发送部25发送(步骤S59),使处理返回步骤S57。上述步骤相当于图4的序列中的SQ16、图5的序列中的SQ36。另一方面,在步骤S57中接收了 RefreshMO请求的情况(步骤S57中为“是”的情况)下,帧处理部244从时间戳生成部243获取RefreshMO请求的接收定时的时间戳,将所获取的时间戳作为测量用PDU从属接收时刻Ts_rcv,存储在时间戳存储部245中。另外,将RefreshMO请求的TS内的值作为测量用PDU主发送时刻Tm_snd,存储在时间戳存储部245中(步骤S60)。然后,帧处理部244判定发送数据存储部22中是否存在新的周期发送数据(步骤S61)。在没有存储周期发送数据的情况(步骤S61中为“否”的情况)下成为等待状态,直至发送数据存储部22中存储有周期发送数据为止。而且,如果存储有周期发送数据(步骤S61中为“是”的情况),则帧处理部244从时间戳生成部243获取发送定时的时间戳,将所获取的时间戳存储在TS中,将发送数据存储部22中的周期发送数据存储在数据部中,从而生成RefreshMO响应,并从帧发送部25向主站点I发送。此时,帧处理部244将RefreshMO响应的TS中存储的时间戳作为测量用PDU从属发送时刻Ts_snd,存储在时间戳存储部245中(步骤S62)。上述步骤相当于图5的序列中的SQ37。然后,如图6所示,主站点I判定帧接收部16是否接收到了 RefreshMO响应(步骤S21)。在没有接收到RefreshMO响应的情况(步骤S21中为“否”的情况)下,帧处理部143进一步判定发送数据存储部22中是否存储了新的周期发送数据(步骤S22)。在没有存储周期发送数据的情况(步骤S22中为“否”的情况)下,返回步骤S21。另外,在存储有周期发送数据的情况(步骤S22中为“是”的情况)下,帧处理部143从时间戳生成部142获取发送定时的时间戳,将所获取的时间戳存储在TS中,将发送数据存储部22中的周期发送数据存储在数据部中从而生成Refresh请求,并从帧发送部15向从属站点2发送(步骤S23),使处理返回步骤S21。上述步骤相当于图5的序列中的SQ33。另一方面,在步骤S21中,在接收到RefreshMO响应的情况(步骤S21中为“是”的情况)下,帧处理部143从时间戳生成部142获取RefreshMO响应的接收定时的时间戳Tm_rev并暂时存储,然后进一步判定发送数据存储部22中是否存储了新的周期发送数据(步骤S24)。在没有新存储周期发送数据的情况(步骤S24中为“否”的情况)下成为等待状态,直至发送数据存储部12中存储有发送数据为止。而且,如果新存储了周期发送数据(步骤S24中为“是”的情况),则帧处理部143从时间戳生成部142获取发送定时的时间戳,将所获取的时间戳存储在TS中,将发送数据存储部22中的周期发送数据存储在数据部中,将在步骤S24中暂时存储的RefreshMO响应的接收定时的时间戳Tm_rcv存储在OBL中,从而生成RefreshGO请求,并从巾贞发送部15向从属站点2发送(步骤S25)。上述步骤相当于图5的序列中的SQ34。然后,如图7所示,从属站点2判定巾贞接收部26是否接收到RefreshGO请求(步骤S63)。在没有接收到RefreshGO请求的情况(步骤S63中为“否”的情况)下,帧处理部244判定是否在发送数据存储部22中存储了新的周期发送数据(步骤S64)。在没有存储周期发送数据的情况(步骤S64中为“否”的情况)下,返回至步骤S63。另外,在存储有周期发送数据的情况(步骤S64中为“是”的情况)下,帧处理部244从时间戳生成部243获取发送定时的时间戳,将所获取的时间戳存储在TS中,将发送数据存储部22中的周期发送数据存储在数据部中,从而生成Refresh请求,并从巾贞发送部25发送(步骤S65)。上述步骤相当于图5的序列中的SQ38。另一方面,在步骤S63中接收到RefreshGO请求的情况(步骤S63中为“是”的情况)下,帧处理部244将接收到的RefreshGO请求的OBL中存储的值作为测量用PDU主接收时刻Tm_rcv,存储在时间戳存储部245中。然后,时钟偏差计算部246由于接收到RefreshGO请求,因此根据存储在时间戳存储部245中的Tm_snd、Ts_rcv、Ts_snd、Tm_rcv,使用上述
(3)式,计算从属站点2的时钟21相对于主站点I的时钟11的时钟偏差。并且,时钟偏差计算部246将计算出的时钟偏差,与之前存储在时钟偏差存储部242中的时钟偏差的值相力口,将相加得到的结果作为新的时钟偏差存储在时钟偏差存储部242中(步骤S66)。然后,从属站点2的帧处理部244判定发送数据存储部22中是否新存储了周期发送数据(步骤S67)。在没有存储周期发送数据的情况(步骤S67中为“否”的情况)下成为等待状态,直至发送数据存储部22中存储有周期发送数据为止。而且,如果存储有周期发送数据(步骤S67中为“是”的情况),则帧处理部244从时间戳生成部243获取发送定时的时间戳,将所获取的时间戳存储在TS中,将发送数据存储部22中的周期发送数据存储在数据部中,从而生成RefreshGO响应,并从帧发送部25发送(步骤S68)。然后,返回步骤S57。上述步骤相当于图5的序列中的SQ39。然后,如图6所示,主站点I判定帧接收部16是否接收到RefreshGO响应(步骤S26),在接收到RefreshGO响应的情况(步骤S26中为“是”的情况)下,返回步骤S17,并重复执行上述处理。另外,在没有接收到RefreshGO响应的情况(步骤S26中为“否”的情况)下,帧处理部143判定是否在发送数据存储部12中新存储了周期发送数据(步骤S27)。在没有存储周期发送数据的情况(步骤S27中为“否”的情况)下,返回步骤S26。另外,在存储有周期发送数据的情况(步骤S27中为“是”的情况)下,帧处理部143从时间戳生成部142获取发送定时的时间戳,将接收到的时间戳存储在TS中,将发送数据存储部12中的周期发送数据存储在数据部中,从而生成Refresh请求,并从巾贞发送部15发送所生成的Refresh请求(步骤S28),使处理返回步骤S26。上述步骤相当于图5的序列中的SQ35。如上所述,通过在主站点I和从属站点2之间的周期通信中交换的、包含更新处理指令的周期通信帧中,包含时钟偏差测量指令或计算指令、偏差生成信息,从而能够在周期通信中进行时钟偏差计算。下面,对延迟检测处理进行说明。在本实施方式I中,作为延迟检测处理,在主站点I处进行使用从从属站点2发送的PDU实现的单程延迟检测处理,和使用在请求响应序列中交换的PDU实现的往返延迟检测处理,在从属站点2处进行单程延迟检测处理。图8是表示实施方式I所涉及的单程延迟检测处理的步骤例的流程图。首先,对主站点I处的单程延迟检测处理进行说明。以与从属站点2之间的周期通信的开始为契机,主站点I的单程延迟检测部145使用时钟11而启动定时器(步骤S71)。此外,主站点I的周期通信的开始,是指图4的SQ14的从从属站点2接收到RefreshGO响应的定时。然后,判定巾贞接收部16是否接收到Refresh请求、RefreshMO响应或RefreshGO响应(步骤S72),在没有接收到的情况(步骤S72中为“否”的情况)下,判定是否从定时器启动开始经过了规定期间(第I延迟容许时间)r_interval (步骤S73)。在没有经过规定期间的情况(步骤S73中为“否”的情况)下,返回步骤S72。另外,在经过了规定期间的情况(步骤S73中为“是”的情况),判定为超过了容许的延迟(步骤S77)。在判定为超过容许延迟的情况下,断开连接而停止通信等,结束处理。另一方面,在步骤S72中,在接收到Refresh请求、RefreshMO响应或RefreshGO响应中的任一个的情况(步骤S72中为“是”的情况)下,单程延迟检测部145从时间戳生成部142获取Refresh请求、RefreshMO响应或RefreshGO响应的接收定时的时间戳,将该时间戳作为PDU接收时刻T_rcv存储在时间戳存储部144中(步骤S74)。另外,将接收到的Refresh请求、RefreshMO响应或RefreshGO响应的存储在TS中的值作为PDU发送时刻T_snd,存储在时间戳存储部144中(步骤S75)。接下来,单程延迟检测部145对在步骤S74、S75中存储在时间戳存储部144中的PDU接收时刻T_rcv和PDU发送时刻T_snd的差,S卩,从从属站点2发送更新指令PDU而到达主站点I的时间,是否小于预先设定的第2延迟容许时间cLallowed进行判定(步骤S76)。在判定的结果为PDU接收时刻T_rcv和PDU发送时刻T_snd的差大于或等于第2延迟容许时间cLallowed的情况(步骤S76中为“否”的情况)下,判定为超过容许延迟(步骤S77),结束处理。另外,在PDU接收时刻T_rcv和PDU发送时刻T_snd的差与第2延迟容许时间cLallowed相比较小的情况(步骤S76中为“是”的情况)下,判定为在容许延迟内(步骤S78),重新启动定时器(步骤S79),返回步骤S72。如上所述,进行主站点I的单程延迟检测处理。下面,对从属站点2的单程延迟检测处理进行说明。从属站点2的单程延迟检测处理也基本上与主站点I的单程延迟检测处理相同,但以下方面与主站点I的情况不同。在步骤S71中启动定时器的定时即周期通信的开始,是指图4的SQ43的从主站点I接收到RefreshGO请求的定时。另外,在步骤S72中,判定是否接收到Refresh请求、RefreshMO请求或RefreshGO请求,在步骤S74中,从时间戳生成部243获取接收到的Refresh请求、RefreshMO请求或RefreshGO请求的接收定时的时间戳,并将其作为PDU接收时刻T_rcv存储在时间戳存储部245中。并且,在步骤S75中,将接收到的Refresh请求、RefreshMO请求或RefreshGO请求的存储在TS中的值作为PDU发送时刻T_snd,存储在时间戳存储部245中。如上所述,在单程延迟检测处理中,能够使用存储有由对方节点进行发送的时刻的时间戳的、包含更新处理指令的周期通信帧,进行单程的延迟检测处理。另外,由于在每次接收包含更新处理指令的周期通信帧时进行延迟检测,因此能够快速地检测延迟。图9是表示实施方式I所涉及的主站点的往返延迟检测处理的步骤例的流程图。首先,如果从帧发送部15发送请求rou (步骤S91),则往返延迟检测部146启动定时器(步骤S92)。然后,往返延迟检测部146判定是否接收到了与请求PDU相对应的响应I3DU(步骤S93),在接收到响应PDU的情况(步骤S93中为“是”的情况)下,使定时器停止(步骤S94),判定为在容许延迟内(步骤S95),结束处理。另外,在步骤S93中,在没有接收到响应rou的情况(步骤S93中为“否”的情况)下,往返延迟检测部146判定从定时器启动开始是否经过了规定时间(往返延迟许可时间)rtt_allowed (步骤S96),在没有经过规定时间的情况(步骤S96中为“否”的情况)下,返回步骤S93。另一方面,在从定时器启动开始经过了规定时间的情况(步骤S96中为“是”的情况)下,使定时器停止(步骤S97),判定为超过容许延迟(步骤S98)。在判定为超过容许延迟的情况下,断开连接,停止通信。由此结束处理。此外,在步骤S93中,往返延迟检测部146对接收到的响应PDU是否是与在步骤S91中发送的请求PDU相对应的响应PDU进行确认。具体来说,在步骤S91中发送的PDU是在偏差计算前发送的请求rou、RefreshReady请求及周期通信以外的通信中的请求PDU的情况下,对在步骤S91中发送的请求rou的TS与在步骤S93中接收到的响应rou的ts是否一致进行确认。如果一致,则判断为是相对应的响应。另外,在步骤S91中发送的请求rou是RefreshMO请求及RefreshGO请求的情况下,对在步骤S91中发送的请求PDU的CTRL中包含的PDU关联信息,与在步骤S93中接收到的响应PDU的CTLR中包含的PDU关联信息是否一致进行确认。如果一致,则判断为是相对应的响应。如上所述,在主站点I向从属站点2发送请求rou,从属站点2向主站点I发送与请求PDU相对应的响应PDU这样的序列的情况下,能够对往返延迟是否在容许延迟内进行检测。另外,在周期通信时以外,由往返延迟检测部146进行往返延迟检测处理,在周期通信时,由单程延迟检测部145进行单程延迟检测处理,由此,通过根据通信种类切换延迟检测处理,从而能够在网络中的通信的全部情况下进行延迟检测。接下来,对PDU丧失检测处理进行说明。图10是表示实施方式I所涉及的PDU丧失检测处理的步骤例的流程图。首先,对主站点I的PDU丧失检测处理进行说明。如果帧接收部16接收到RefreshReady响应(步骤SI 11),则丧失检测部147将接收到的RefreshReady响应的存储在TS中的值作为前次PDU发送时刻T_psnd,存储在时间戳存储部144中(步骤S112)。然后,丧失检测部147判定是否接收到Refresh请求、RefreshMO响应或RefreshGO响应(步骤S113)。在没有接收到的情况(步骤S113中为“否”的情况)下成为等待状态,直至接收到Refresh请求、RefreshMO响应或RefreshGO响应为止。另外,在接收到Refresh请求、RefreshMO响应或RefreshGO响应的情况(步骤SI 13中为“是”的情况)下,将接收到的Refresh请求、RefreshMO响应或RefreshGO响应的存储在TS中的值作为本次PDU发送时刻T_nsnd,存储在时间戳存储部144中(步骤SI 14)。然后,对存储在时间戳存储部144中的本次PDU发送时刻T_nsnd与前次PDU发送时刻T_psnd的差是否小于代表容许接收间隔的丧失评价时间trns_interval进行判定(步骤S115)。在判定的结果为本次rou发送时刻T_nsnd与前次TOU发送时刻T_psnd的差大于或等于丧失评价时间trnsjnterval的情况(步骤S115中为“否”的情况)下,判定为存在PDU丧失(步骤S116)。并且,进行断开连接而停止通信等处理,从而结束处理。另外,在本次PDU发送时刻T_nsnd与前次PDU发送时刻T_psnd的差小于丧失评价时间trns_interval的情况(步骤S115中为“是”的情况)下,判定为没有PDU丧失(步骤S117),将在步骤S114中存储在时间戳存储部144中的本次PDU发送时刻T_nsnd保存为新的前次PDU发送时刻T_psnd (步骤S118)。然后,返回步骤S113,重复执行上述的处理。接下来,对从属站点2的丧失检测处理进行说明。从属站点2的丧失检测处理也基本上与主站点I的丧失检测处理相同,但在步骤Slll中接收RefreshReady请求,及在步骤S113中对是否接收到Refresh请求、RefreshMO请求或RefreshGO请求进行判定这两方面与主站点I的情况不同。
如上所述,在PDU丧失检测处理中,能够使用存储有由对方节点进行发送的时刻的时间戳的、包含更新处理指令的周期通信帧,进行PDU丧失检测处理。另外,由于在每次接收包含更新处理指令的周期通信帧时进行PDU丧失检测处理,因此,能够快速地检测rou丧失。在上述的延迟检测处理和PDU丧失检测处理中,在主站点I的单程延迟检测部145、往返延迟检测部146判断为在容许延迟内,且丧失检测部147判断为没有PDU丧失的情况下,将从从属站点2接收到的Refresh请求、RefreshMO响应、RefreshGO响应的存储在数据部中的数据,存储在接收数据存储部13中。另外,在从属站点2的单程延迟检测部247判断为在容许延迟内,且丧失检测部248判断为没有PDU丧失的情况下,将从主站点I接收到的Refresh请求、RefreshMO请求、RefreshGO请求的存储在数据部中的数据,存储在接收数据存储部23中。接下来,对于主站点I和从属站点2的帧发送部15、25的发送间隔存在波动的情况下的单程延迟检测部145、247的动作进行说明。考虑发送间隔存在波动,且丧失了在周期通信中发送的3个rou (第一至第三rou、例如图5的SQ31至SQ33中发送的I3DU)中的第二 rou的情况。在此情况下,在接收第三rou时,在单程延迟检测部145、247在图10的S115中进行的是否丧失了 PDU的评价中,第三PDU的存储在TS中的T_nsnd与第一 PDU的存储在TS中的T_psnd的差,不会小于PDU丧失检测处理中的丧失评价时间trns_interval。因此,主站点I和从属站点2的单程延迟检测部145、247进行下述动作,以使得发送间隔比丧失评价时间trns_interval的1/2大。主站点I的单程延迟检测部145在图6的发送Refresh请求、RefreshMO请求、RefreshGO请求(包含更新处理指令的更新指令帧)的步骤(S15、S19、S20、S23、S25、S28)中,在发送更新指令帧后,将发送的更新指令帧的存储在TS中的时间戳保存为最终发送定时。而且,在接下来发送更新指令帧时进行等待,直至最终发送定时与本次进行发送的定时之差超过丧失评价时间trns_interval的1/2为止,在超过丧失评价时间的1/2时,从巾贞发送部15发送。另外,从属站点2的单程延迟检测部247在图7中的发送Refresh请求、RefreshMO响应、RefreshGO响应(更新指令帧)的步骤(S56、S59、S62、S65、S68)中,在发送更新指令帧之后,将发送的更新指令帧的存储在TS中的时间戳保存为最终发送定时。而且,在接下来发送更新指令帧时进行等待,直至最终发送定时与本次进行发送的定时之差超过丧失评价时间trns_interval的1/2为止,然后从巾贞发送部25发送。根据本实施方式1,在周期通信中在两个节点之间进行交换的PDU中,在存储要发送的数据的区域和存储用于延迟/丧失检测的时间戳的区域的基础上,还设有存储用于计算时钟偏差的信息的区域,基于延迟/丧失检测所使用的时间戳和用于计算偏差的信息,计算两个节点之间的时钟偏差。由此,除了在周期通信中进行交换的PDU之外,无需为了计算时钟偏差而发送新的rou,且rou的大小也没有变化,因此,如果应用于如进行定序控制的可编程控制器这种以规定的处理周期动作的装置,则具有能够不对定期数据处理产生影响的效果。另外,按照在周期通信时以外进行往返延迟测量,在周期通信时进行单程延迟测量的方式,对延迟测量方法进行切换。由此,如果应用于如进行定序控制的可编程控制器系统这种以规定的处理周期,接收/发送来自传感器或致动器等输入输出设备的输入输出信息的系统,则能够缩短检测出输入输出信息的延迟及丧失所耗费的时间。并且,即使在周期通信数据的生成间隔存在波动的情况下,由于是在发送侧从前一个发送定时开始,经过了用于在接收侧进行丧失判定的丧失评价时间的1/2之后进行发送,因此,能够防止无论在接收侧是否发生了丧失都判定为没有发生丧失的情况,可靠地检测丧失。实施方式2在实施方式I中,没有涉及到PDU的存储在TS中的时刻信息的大小,但在实施方式2中,对于设为任意大小的情况进行说明。在实施方式2中,列举了主站点I和从属站点2具有的时钟11、21均为48位宽的时钟,PDU的TS的大小限定为16位的情况。本实施方式2的主站点I的时间戳生成部142,将由时钟11生成的时刻信息中的低阶16位,生成作为时间戳。另外,从属站点2的时间戳生成部243计算时钟21与时钟偏差存储部242保存的时间偏差的和,将计算值的低阶16位生成作为时间戳。下面,对实施方式2中的时钟偏差计算处理、单程延迟检测处理及PDU丧失检测处理中与实施方式I不同的部分进行说明。<主站点I的连接建立处理>在图6的步骤Sll的连接建立请求处理时,主站点I的帧处理部143生成存储有时钟11的高阶32位的值的通信帧,并从帧发送部15向从属站点2发送。另外,将时钟11的高阶32位的值作为时钟高阶位信息up_clk_s_d、up_clk_s_l,存储在时间戳存储部144中。<从属站点2的连接建立处理>在图7的步骤S51的连接建立请求处理时,从属站点2的帧处理部244,进行将从主站点I接收到的时钟11的高阶32位的值,存储在时间戳存储部245中的处理。此时,帧处理部244将时钟11的高阶32位的值,存储作为响应PDU发送时刻生成用高阶位信息up_elk、请求PDU发送时刻生成用高阶位信息up_clk_d_s、请求PDU接收时刻生成用高阶位信息up_clk_d_r、丧失检测PDU时刻生成用高阶位信息up_clk_l。请求TOU发送时刻生成用高阶位信息up_clk_d_s与PDU发送时刻T_snd相关联而存储,请求PDU接收时刻生成用高阶位信息up_clk_d_r与PDU接收时刻T_rcv相关联而存储,丧失检测PDU时刻生成用高阶位信息up_clk_l与前次PDU发送时刻T_psnd和本次PDU发送时刻T_nsnd相关联而存储。<主站点I的校验码生成处理>在图6 的步骤 S15、S19、S20、S23、S25、S28,即发送 Refresh 请求、RefreshMO 请求、RefreshGO请求的步骤中,主站点I的巾贞处理部143进行在发送的PDU的尾部存储校验码的处理,该校验码是根据由时钟11生成的时刻信息的高阶32位、头部及数据部而生成的。<从属站点2的PDU发送时的校验码设定处理>在图7 的步骤 S55、S59、S62、S65、S68,即发送 Refresh 请求、RefreshMO 响应、RefreshGO响应的步骤中,从属站点2的帧处理部244也进行在发送的I3DU的尾部存储校验码的处理,该校验码是根据由时钟11生成的时刻信息的高阶32位、头部及数据部而生成的。图11是表示实施方式2所涉及的从属站点的PDU发送时的校验码设定处理的步骤例的流程图。首先,判定前一次发送Refresh请求、RefreshMO响应或RefreshGO响应的定时即前次PDU发送时刻T_psnd,是否比发送本次请求的定时即PDU发送时刻T_snd大(步骤S131)。在前次PDU发送时刻T_psnd小于或等于PDU发送时刻T_snd的情况(步骤S131中为“否”的情况)下,将从时间戳存储部245获取的响应PDU发送时刻生成用高阶位信息up_clk,设定为响应发送用高阶位(步骤S132)。另一方面,在前次PDU发送时刻T_psnd大于PDU发送时刻T_snd的情况(步骤S131中为“是”的情况)下,将使得从时间戳存储部245获取的响应PDU发送时刻生成用高阶位信息up_clk递增I得到的值,设定为响应发送用高阶位(步骤S133)。另外,将在步骤S133中得到的递增I后的响应PDU发送时刻生成用高阶位信息up_clk+l,作为新的响应PDU发送时刻生成用高阶位信息up_clk,存储在时间戳存储部245中。接下来,帧处理部244根据所设定的响应发送用高阶位、发送的PDU的头部及数据部生成校验码,将所生成的校验码存储在发送的rou的尾部(步骤S134)。在发送了 PDU之后(步骤S135),帧处理部244将本次发送的rou的PDU发送时刻T_snd作为T_psnd,保存在时间戳存储部245中(步骤S135),处理结束。〈单程延迟检测处理〉图12是表示实施方式2所涉及的单程延迟检测处理的步骤例的流程图。下面,首先对主站点I的单程延迟检测处理进行说明,然后对从属站点2的单程延迟检测处理进行说明。(主站点I的单程延迟检测处理)首先,主站点I的单程延迟检测部145获取由时间戳生成部142当前已生成的时间戳,将所获取的时间戳作为前次PDU接收时刻T_prcv,存储在时间戳存储部144中(步骤S151)。然后,以周期通信的开始为契机,单程延迟检测部145使用时钟11启动定时器(步骤S152)。此外,主站点I的周期通信的开始是指图4的SQ14的从从属站点2接收到RefreshGO响应的定时。然后,对巾贞接收部16是否接收到Refresh请求、RefreshMO响应或RefreshGO响应进行判定(步骤S153),在没有接收到的情况(步骤S153中为“否”的情况)下,对从定时器启动开始是否经过了规定期间(第I延迟容许时间)r_interval进行判定(步骤S154)。在没有经过规定期间的情况(步骤S154中为“否”的情况)下,返回步骤S153。另外,在步骤S154中,在经过了规定期间的情况(步骤S154中为“是”的情况)下,判定为超过了容许的延迟(步骤S159),进行断开连接等处理,并使处理结束。另一方面,在步骤S153中,在接收到Refresh请求、RefreshMO响应或RefreshGO响应中的任一个的情况(步骤S153中为“是”的情况)下,单程延迟检测部145从时间戳生成部142获取Refresh请求、RefreshMO响应或RefreshGO响应的接收定时的时间戳,并将该时间戳作为PDU接收时刻T_rcv存储在时间戳存储部144中(步骤S155)。另外,将接收到的Refresh请求、RefreshMO响应或RefreshGO响应的存储在TS中的值作为PDU发送时刻T_snd,存储在时间戳存储部144中(步骤S156)。然后,单程延迟检测部145生成48位PDU发送时刻T_snd_48和48位PDU接收时刻T_rcv_48 (步骤S157)。图13是表示主站点的48位PDU发送时刻和48位PDU接收时刻的生成处理的步骤例的流程图。首先,主站点I的单程延迟检测部145将时钟11的高阶32位设为时钟高阶位信息up_clk_s_d (步骤S171)。然后,生成将高阶32位设为时钟高阶位信息up_clk_s_d、将低阶16位设为PDU接收时刻T_rcv的48位PDU接收时刻T_rcv_48 (步骤S172)。然后,对PDU发送时刻T_snd是否大于PDU接收时刻T_rcv进行判定(步骤S173)。在PDU发送时刻T_snd小于或等于PDU接收时刻T_rcv的情况(步骤S173中为“否”的情况)下,将时钟高阶位信息up_clk_s_d设定为时刻计算用高阶位(步骤S174)。另一方面,在PDU发送时刻T_snd大于PDU接收时刻T_rcv的情况(步骤S173中为“是”的情况)下,将使得时钟高阶位信息up_clk_s递减I后的值设定为时刻计算用高阶位(步骤S175)。然后,单程延迟检测部145生成48位PDU发送时刻T_snd_48,该48位PDU发送时刻T_snd_48将高阶32位设为在步骤S174或S175中设定的时刻计算用高阶位,将低阶16位设为PDU发送时刻T_snd (步骤S176)。然后,单程延迟检测部145根据所设定的时刻计算用高阶位、接收到的I3DU的头部及数据部,计算校验码(步骤S177),判定计算出的校验码是否与接收到的PDU的存储在尾部的值相等(步骤S178)。在两者不一致的情况(步骤S178的情况)下,判定为发生了异常,结束处理。另外,在两者相等的情况(步骤S178中为“是”的情况)下,返回图12的处理。返回图12,单程延迟检测部145判定48位PDU接收时刻T_rcv_48与48位PDU发送时刻T_snd_48的差,是否小于第2延迟容许时间d_allowed (步骤S158)。在判定结果为48位PDU接收时刻T_rcv_48与48位PDU发送时刻T_snd_48的差大于或等于第2延迟容许时间cLallowed的情况(步骤S158中为“否”的情况)下,判定为超过容许延迟(步骤S159),进行断开连接的处理等,并结束处理。另外,在48位PDU接收时刻T_rcv_48与48位PDU发送时刻T_snd_48的差小于第2延迟容许时间d_allowed的情况(步骤S158中为“是”的情况)下,判定为在容许延迟内(步骤S160)。然后,将存储在时间戳存储部144中的rou接收时刻T_rcv,作 为前次PDU接收时刻T_prcv存储在时间戳存储部144中(步骤S161),重新启动定时器(步骤S162),返回步骤S153。如上所述,进行主站点I的单程延迟检测处理。(从属站点2的单程延迟检测处理)从属站点2的单程延迟检测处理基本上与主站点I的单程延迟检测处理相同,下面对于与主站点I的情况不同的方面进行说明。图12的步骤S152中的启动定时器的定时、即周期通信的开始,是指图4的SQ43的从主站点I接收到RefreshGO请求的定时。另外,在步骤S153中,判定是否接收到Refresh请求、RefreshMO请求或RefreshGO请求,在步骤S155中,从时间戳生成部243获取接收到的Refresh请求、RefreshMO请求或RefreshGO请求的接收定时的时间戳,并作为PDU接收时刻!^!.^存储在时间戳存储部245中。并且,在步骤S156中,将接收到的Refresh请求、RefreshMO请求或RefreshGO请求的存储在TS中的值作为PDU发送时刻T_snd存储在时间戳存储部245中。另外,步骤S158中的48位PDU发送时刻T_snd_48和48位PDU接收时刻T_rcv_48的生成处理也与主站点I的情况不同。图14是表示从属站点的48位PDU发送时刻和48位PDU接收时刻的生成处理的步骤例的流程图。
首先,从属站点2的单程延迟检测部247从时间戳存储部245获取在丧失检测部248中使用的前次PDU发送时(步骤S191)。然后,判定在步骤S156中获取的存储在接收到的Refresh请求、RefreshMO请求或RefreshGO请求的TS中的PDU发送时刻T_snd,是否小于在步骤S191中获取的前次PDU发送时刻1'_ 811(1 (步骤S192)。在PDU发送时刻T_snd大于或等于前次PDU发送时刻T_psnd的情况(步骤S192中为“否”的情况)下,将从时间戳存储部245获取的请求PDU发送时刻生成用高阶位信息up_clk_d_s设定为发送时刻用高阶位(步骤S193)。另一方面,在PDU发送时刻T_snd小于前次PDU发送时刻T_psnd的情况(步骤S192中为“是”的情况)下,将从时间戳存储部245获取的请求PDU发送时刻生成用高阶位信息up_clk_d_s递加I后的值设定为发送时刻用高阶位(步骤S194)。另外,将在步骤S194中获取的up_clk_d_s+l作为新的请求PDU发送时刻生成用高阶位信息up_clk_d_s,存储在时间戳存储部245中。然后,单程延迟检测部247生成48位PDU发送时刻T_snd_48,该48位PDU发送时刻T_snd_48将高阶32位设为在步骤S193或S194中设定的发送时刻用高阶位,将低阶16位设为PDU发送时刻T_snd (步骤S195)。然后,单程延迟检测部247判定在图12的步骤S155中获取的PDU接收时刻T_rcv是否小于在步骤S151中获取的前次PDU接收时刻T_prcv (步骤S196)。在判定的结果为PDU接收时刻T_rcv大于或等于前次PDU接收时刻T_prcv的情况(步骤S196中为“否”的情况)下,将从时间戳存储部245获取的请求PDU接收时刻生成用高阶位信息up_clk_d_r设定为接收时刻用高阶位(步骤S197)。另一方面,在PDU接收时刻T_rcv小于前次PDU接收时刻T_prcv的情况(步骤S196中为“是”的情况)下,将从时间戳存储部245获取的请求PDU接收时刻生成用高阶位信息up_clk_d_r递加I后的值设定为接收时刻用高阶位(步骤S198)。另外,将在步骤S198中得到的up_clk_d_r+l作为新的请求PDU接收时刻生成用高阶位信息up_clk_d_r,存储在时间戳存储部245中。然后,单程延迟检测部247生成48位PDU接收时刻T_rcv_48,该48位PDU接收时刻T_rcv_48将高阶32位设为在步骤S197或S198中设定的接收时刻用高阶位,将低阶16位设为PDU接收时刻T_rcv (步骤S199)。然后,根据在步骤S193或S194中设定的发送时刻用高阶位、接收到的PDU的头部及数据部,计算校验码(步骤S200),判定计算出的校验码与接收到的rou的存储在尾部的值是否相等(步骤S201)。在两者不一致的情况(步骤S201的情况)下,判定为发生了异常,结束处理。另外,在两者相等的情况(步骤S201中为“是”的情况)下,返回图12的处理。〈丧失检测处理〉图15是表示实施方式2所涉及的丧失检测处理的步骤例的流程图。下面,首先对主站点I的丧失检测处理进行说明,然后对从属站点2的丧失检测处理进行说明。(主站点I的丧失检测处理)如果接收到RefreshReady响应(步骤S221),则主站点I的丧失检测部147将接收到的RefreshReady响应的存储在TS中的值作为前次PDU接收时刻T_psnd,存储在时间戳存储部144中(步骤S222)。然后,判定是否接收到Refresh请求、RefreshMO响应或RefreshGO响应中的任一个(步骤S223)。在没有接收到的情况(步骤S223中为“否”的情况)下成为等待状态, 直至接收到Refresh请求、RefreshMO响应或RefreshGO响应为止。
另外,在接收到Refresh请求、RefreshMO响应或RefreshGO响应的情况(步骤S223中为“是”的情况)下,将接收到的Refresh请求、RefreshMO响应或RefreshGO响应的存储在TS中的值作为本次PDU发送时刻T_snd,存储在时间戳存储部144中,将Refresh请求、RefreshMO响应或RefreshGO响应的接收时刻存储作为帧接收时刻T_rcv(步骤S224)。然后,丧失检测部147生成48位前次PDU发送时刻T_psnd_48和48位本次I3DU发送时刻T_nsnd_48 (步骤S225)。图16是表示主站点的48位PDU发送时刻和48位I3DU接收时刻的生成处理的步骤例的流程图。首先,主站点I的丧失检测部147将时钟11的高阶32位设为时钟高阶位信息up_clk_s_l (步骤S241)。然后,判定在步骤S224中获取的本次PDU发送时刻^仙!^是否大于在步骤S2243中接收到的Refresh请求、RefreshMO响应或RefreshGO响应的巾贞接收时刻T_rcv (步骤S242)。在本次PDU发送时刻T_nsnd小于或等于帧接收时刻T_rcv的情况(步骤S242中为“否”的情况)下,将时钟高阶位信息up_clk_S_l设定为第I丧失检测用高阶位(步骤S243)。另一方面,在本次PDU发送时刻T_nsnd大于帧接收时刻T_rcv的情况(步骤S242中为“是”的情况)下,将时钟高阶位信息up_clk_S_l递减I后的值设定为第I丧失检测用高阶位(步骤S244)。然后,丧失检测部147生成48位本次PDU发送时刻T_nsnd_48,该48位本次I3DU发送时刻T_nsnd_48将高阶32位设为在步骤S243或S244中设定的第I丧失检测用高阶位,将低阶16位设为本次PDU发送时刻T_nsnd (步骤S245)。然后,判定前次PDU发送时刻T_psnd是否大于本次PDU发送时刻T_nsnd (步骤S246)。在前次PDU发送时刻T_psnd小于或等于本次PDU发送时刻T_nsnd的情况(步骤S246中为“否”的情况)下,将在步骤S241中获取的时钟高阶位信息up_clk_S_l设定为第2丧失检测用高阶位(步骤S247)。另一方面,在前次I3DU发送时刻T_psnd大于本次I3DU发送时刻T_nsnd的情况(步骤S246中为“是”的`情况)下,将在步骤S241中获取的时钟高阶位信息up_clk_s_l递减I后的值设定为第2丧失检测用高阶位(步骤S248)。然后,丧失检测部147生成48位前次PDU发送时刻T_psnd_48,该48位前次I3DU发送时刻T_psnd_48将高阶32位设为在步骤S247或S248中设定的第2丧失检测用高阶位,将低阶16位设为前次PDU发送时刻T_psnd (步骤S249)。然后,丧失检测部147根据在步骤S243或S244中设定的第I丧失检测高阶位、接收到的PDU的头部及数据部,生成校验码(步骤S250),判定计算出的校验码与接收到的rou的存储在尾部的值是否相等(步骤S251)。在两者不一致的情况(步骤S251的情况)下,判定为发生了异常,结束处理,在两者相等的情况(步骤S251中为“是”的情况)下,返回图15的处理。返回图15,丧失检测部147判定48位本次PDU发送时刻T_nsnd_48与48位前次PDU发送时刻T_psnd_48的差是否小于丧失评价时间trns_interval (步骤S226)。在判定结果为不满足上述条件的情况(步骤S226中为“否”的情况)下,判定为存在丧失(步骤S227),进行断开连接等处理,处理结束。另外,在满足上述条件的情况(步骤S226中为“是”的情况)下,判定为没有丧失(步骤S228)。并且,将本次PDU发送时刻T_nsnd作为前次I3DU发送时刻T_psnd,存储在时间戳存储部144中(步骤S229),使处理返回步骤S223。(从属站点2的丧失检测处理)
从属站点2的丧失检测处理也基本上与主站点I的丧失检测处理相同,下面对于与主站点I的情况不同的方面进行说明。步骤S221是接收RefreshReady请求,步骤S223是对是否接收到Refresh请求、RefreshMO请求或RefreshGO请求进行判定。另外,在步骤S225中的48位本次PDU发送时刻1'_11811(1_48和48位前次PDU发送时刻T_psnd_48的生成处理也与主站点I的情况不同。图17是表示从属站点的48位TOU发送时刻和48位PDU接收时刻的生成处理的步骤例的流程图。首先,从属站点2的丧失检测部248从时间戳存储部245获取丧失检测PDU时刻生成用高阶位信息up_clk_l (步骤S261)。然后,生成48位前次PDU发送时刻T_psnd_48,该48位前次PDU发送时刻T_psnd_48将高阶32位设为丧失检测PDU时刻生成用高阶位信息,将低阶16位设为前次PDU发送时刻T_psnd (步骤S262)。然后,判定前次PDU发送时刻T_psnd是否大于本次PDU发送时刻T_nsnd (步骤S263)。在前次PDU发送时刻T_psnd小于或等于本次PDU发送时刻T_nsnd的情况(步骤S263中为“否”的情况)下,将丧失检测PDU时刻生成用高阶位信息up_clk_l设定为丧失检测用高阶位(步骤S264)。另一方面,在前次PDU发送时刻T_psnd大于本次PDU发送时刻T_nsnd的情况(步骤S263中为“是”的情况)下,将丧失检测PDU时刻生成用高阶位信息up_clk_l递加I后的值设定为丧失检测用高阶位(步骤S265)。另外,将在步骤S265中获取的up_clk_l+l作为新的丧失检测PDU时刻生成用高阶位信息up_clk_l,存储在时间戳存储部245中。然后,丧失检测部248生成48位本次PDU发送时刻T_nsnd_48,该48位本次I3DU发送时刻T_nsnd_48将高阶32位设为在步骤S264或S265中设定的丧失检测用高阶位,将低阶16位设为本次I3DU发送时刻T_nsnd (步骤S266)。然后,丧失检测部248根据所设定的丧失检测用高阶位、接收到的I3DU的头部及数据部,计算校验码(步骤S267),判定计算出的校验码与接收到的I3DU的存储在尾部的值是否相等(步骤S277)。在两者不一致的情况(步骤S277的情况下),判定为发生异常,结束处理。另外,在两者相等的情况(步骤S277中为“是”的情况)下,返回图12的处理。此外,在上述例子中示出了时钟为48位宽,而在I3DU的TS中仅能存储16位的情况,但时钟的位宽也可以是其他的值,PDU的TS中所能存储的位数也可以是其他的值。根据本实施方式2,在PDU的存储时间戳的TS或OBL中存储有能够容纳在该区域中的大小的低阶位,对于时钟的高阶位,在具有作为基准的时钟11的主站点I建立连接时向从属站点2通知。由此,具有下述效果,即,即使在rou的TS的大小被限定为小于时钟宽度的情况下,在主站点I和从属站点2之间,也能够进行延迟/丧失检测及时钟偏差的计算处理。另外,由于在rou中仅包含节点所具有的时钟的一部分即可,因此,还具有能够减小PDU的大小的效果。工业实用性如上所述,本发明所涉及的通信装置,可用于在周期性接收/发送数据的系统中使用的通信装置。标号的说明I节点、主站点2节点、从属站点
3传送路径11,21 时钟12、22发送数据存储部13、23接收数据存储部14主延迟丧失检测单元15、25巾贞发送部16、26帧接收部24从属延迟丧失检测单元141连接建立请求部142、243时间戳生成部143、244 帧处理部144,245时间戳存储部145、247单程延迟检测部146往返延迟检测部147、248丧失检测部241连接建立响应部242时钟偏差存储部246时钟偏差计算部
权利要求
1.一种通信装置,其在与经由传送路径连接的其他通信装置之间进行周期通信, 该通信装置的特征在于,具有: 时钟,其对时间进行测定; 通信单元,其对通信帧进行接收/发送; 时间戳生成单元,其在通过本通信装置发送/接收的所述通信帧的发送时或接收时,使用所述时钟生成时间戳; 发送数据存储单元,其对周期性发送的所述通信帧中所存储的周期发送数据进行存储; 接收数据存储单元,其对周期性接收的所述通信帧中的周期发送数据进行存储; 帧处理单元,其针对所述其他通信装置,生成包含数据更新指令、所述发送数据存储单元中的所述周期发送数据、以及从所述时间戳生成单元获取的发送定时的时间戳即帧发送时刻在内的更新指令帧,如果接收到来自所述其他通信装置的更新指令帧,则将该更新指令帧中包含的周期发送数据存储在所述接收数据存储单元中;以及 单程延迟检测单元,其根据下述条件判定从所述其他通信装置发送的通信帧是否发生了延迟,即,如果接收到所述更新指令帧,则是否是在接收前一个所述更新指令帧后,在第I延迟容许时间内接收到下一个更新指令帧,另外,在所述第I延迟容许时间内接收到所述下一个更新指令帧的情况下,该更新指令帧的从所述其他通信装置至本通信装置的传输时间是否在第2延迟容许时间内。
2.根据权利要求1所述的通信装置,其特征在于, 所述单程延迟检测单元使用帧接收时刻与存储在所述更新指令帧内的所述帧发送时刻的差作为所述传输时间,其中,该帧接收时刻是在接收所述更新指令帧时,从所述时间戳生成单元获取的。
3.根据权利要求1或2所述的通信装置,其特征在于, 还具有往返延迟检测单元,其在周期通信时以外,向所述其他通信装置发送请求帧,在发送所述请求帧之后,在往返延迟许可时间内没有接收到与所述请求帧相对应的响应帧的情况下,判定为发生了延迟。
4.根据权利要求1至3中任一项所述的通信装置,其特征在于, 还具有丧失检测单元,其在接收到所述更新指令帧后,从所述时间戳生成单元获取本次帧接收时刻,并将所述本次帧接收时刻和在前一个所述更新指令帧接收时从所述时间戳生成单元获取的前次帧接收时刻的差,与表示通信帧的丧失的丧失评价时间进行比较,判定所述通 目巾贞是否丧失。
5.根据权利要求4所述的通信装置,其特征在于, 所述丧失检测单元存储进行发送的通信帧的帧发送时刻, 所述通信单元在发送所述更新指令帧的情况下,在从前一个所述帧发送时刻开始经过了所述丧失评价时间的1/2之后,发送下一个更新指令帧。
6.根据权利要求1至5中任一项所述的通信装置,其特征在于, 所述帧处理部还具有下述功能,即, 在周期通信开始后,以规定的间隔将时钟偏差的测定指令包含在所述更新指令帧中并进行发送,如果接收到针对包含所述测定指令的所述更新指令帧的响应帧,则将时钟偏差的计算指令和表示所述响应帧的接收定时的帧接收时刻包含在所述更新指令帧中并进行发送。
7.根据权利要求1或2所述的通信装置,其特征在于, 在所述通信帧中的存储所述帧发送时刻的区域为a位,所述时钟的宽度为b位,且b >a的情况下, 所述帧处理单元具有下 述功能,即: 在与所述其他通信装置建立连接时,将所述时钟的高阶b-a位存储为高阶位信息,并且,在请求建立连接时,将所述高阶位信息包含在通信帧中而发送的功能;以及 将在周期通信中从所述时间戳生成单元得到的时间戳的低阶a位存储在存储所述帧发送时刻的区域中,从而生成更新指令帧的功能, 所述单程延迟检测单元使用所述高阶位信息将所述更新指令帧中的所述帧发送时刻的值形成为b位的值,并进行单程延迟检测。
8.根据权利要求4或5所述的通信装置,其特征在于, 在所述通信帧中的存储所述帧发送时刻的区域为a位,所述时钟的宽度为b位,且b >a的情况下, 所述帧处理单元具有下述功能,即: 在与所述其他通信装置建立连接时,将所述时钟的高阶b-a位存储为高阶位信息,并且,在请求建立连接时,将所述高阶位信息包含在通信帧中而发送的功能;以及 将在周期通信中从所述时间戳生成单元得到的时间戳的低阶a位,存储在存储所述帧发送时刻的区域中,从而生成更新指令帧的功能, 所述丧失检测单元使用所述高阶位信息将所述更新指令帧中的所述帧发送时刻的值形成为b位的值,并进行更新指令帧的丧失检测。
9.根据权利要求7或8所述的通信装置,其特征在于, 所述帧处理单元具有下述功能,即: 在发送所述更新指令帧的情况下,根据所述帧发送时刻的高阶b-a位、所述更新指令帧的头部及存储所述发送数据的数据部,生成校验码,并将该校验码包含在所述更新指令中贞中的功能;以及 在接收所述更新指令帧的情况下,基于所述更新指令帧的本装置中的接收时刻的低阶a位和所述更新指令帧中的a位的所述帧发送时刻之间的大小,对所述高阶位信息进行校正,根据校正后的所述高阶位信息、接收到的所述通信帧的所述头部及所述数据部,生成校验码,对该校验码与接收到的所述更新指令帧中的校验码是否一致进行判定的功能。
10.根据权利要求1或2所述的通信装置,其特征在于, 还具有时钟偏差存储单元,其存储本通信装置的所述时钟相对于所述其他通信装置所具有的时钟的时刻偏差即时钟偏差, 所述时间戳生成单元在由本通信装置进行发送/接收的所述更新指令帧的发送时或接收时,生成以所述时钟偏差对从所述时钟得到的时刻进行校正后的时间戳。
11.根据权利要求10所述的通信装置,其特征在于, 还具有丧失检测单元,其如果接收到所述更新指令帧,则从所述时间戳生成单元获取本次帧接收时刻,并将所述本次帧接收时刻与在前一个所述更新指令帧接收时从所述时间戳生成单元获取的前次帧接收时刻的差,与表示通信帧的丧失的丧失评价时间进行比较,判定所述通 目巾贞是否丧失。
12.根据权利要求11所述的通信装置,其特征在于, 所述丧失检测单元存储进行发送的通信帧的帧发送时刻, 所述通信单元在发送所述更新指令帧的情况下,在从前一个所述帧发送时刻开始经过了所述丧失评价时间的1/2后,发送下一个更新指令帧。
13.根据权利要求10至12中任一项所述的通信装置,其特征在于, 具有下述功能,即,如果从所述其他通信装置接收到包含时钟偏差的测定指令的所述更新指令帧,则将包含所述测定指令的更新指令帧中所包含的所述帧发送时刻存储作为主发送时刻,将包含所述测定指令的更新指令帧的接收定时存储作为从属接收时刻,将与包含所述测定指令的更新指令帧相对应的响应帧的发送定时存储作为从属发送时刻, 该通信装置还具有时钟偏差计算单元,其如果从所述其他通信装置接收到包含时钟偏差的计算指令的所述更新指令帧,则将包含所述计算指令的更新指令帧中所存储的表示所述响应帧的接收定时的帧接收时刻存储作为主接收时刻,使用所述主发送时刻、所述从属接收时刻、所述从属发送时刻及所述主接收时刻,计算所述时钟偏差。
14.根据权利要求13所述的通信装置,其特征在于, 如果将所述主发送时刻设为Tm_snd,将所述从属接收时刻设为Ts_rCV,将所述从属发送时刻设为Ts_snd,将所述主接收时刻设为Tm_rCV,则所述时钟偏差计算单元通过下式(I),计算所述时钟偏差ts_offset,ts_offset= [Tm_rcv+Tm_snd — (Ts_rcv+Ts_snd)] /2...(I)。
15.根据权利要求10所述的通信装置,其特征在于, 在所述通信帧中的存储所述帧发送时刻的区域为a位,所述时钟的宽度为b位,且b >a的情况下, 所述帧处理单元具有下述功能,即: 在与所述其他通信装置建立连接时,将从所述其他通信装置发送的通信帧内所存储的所述其他通信装置的时钟的高阶b-a位存储作为高阶位信息的功能;以及 将在周期通信中从所述时间戳生成单元得到的时间戳的低阶a位,存储在存储所述帧发送时刻的区域中,从而生成更新指令帧的功能, 所述单程延迟检测单元使用所述高阶位信息将所述更新指令帧中的所述帧发送时刻的值形成为b位的值,并进行单程延迟检测。
16.根据权利要求11或12所述的通信装置,其特征在于, 在所述通信帧中的存储所述帧发送时刻的区域为a位,所述时钟的宽度为b位,且b >a的情况下, 所述帧处理单元具有下述功能,即: 在与所述其他通信装置建立连接时,将从所述其他通信装置发送的通信帧内所存储的所述其他通信装置的时钟的高阶b-a位存储作为高阶位信息的功能;以及 将在周期通信中从所述时间戳生成单元得到的时间戳的低阶a位,存储在存储所述帧发送时刻的区域中,从而生成更新指令帧的功能, 所述丧失检测单元使用所述高阶位信息将所述更新指令帧中的所述帧发送时刻的值形成为b位的值,并进行通信帧的丧失检测。
17.根据权利要求13或14所述的通信装置,其特征在于, 在所述通信帧中的存储所述帧发送时刻的区域为a位,所述时钟的宽度为b位,且b >a的情况下, 所述帧处理单元具有下述功能,即: 在与所述其他通信装置建立连接时,将从所述其他通信装置发送的通信帧内所存储的所述其他通信装置的时钟的高阶b-a位存储作为高阶位信息的功能;以及 将在周期通信中从所述时间戳生成单元得到的时间戳的低阶a位存储在存储所述帧发送时刻的区域中,从而生成更新指令帧的功能, 所述偏差计算单元使用所述高阶位 信息将所述主发送时刻、所述从属接收时刻、所述从属发送时刻及所述主接收时刻形成为b位的值,并进行时钟偏差的计算。
18.根据权利要求15至17中任一项所述的通信装置,其特征在于, 所述帧处理单元还具有下述功能,即: 在发送所述通信帧的情况下,根据所述帧发送时刻的高阶b-a位、所述通信帧的头部及存储所述发送数据的数据部,生成校验码,并将该校验码包含在所述通信帧中的功能;以及 在接收所述通信帧的情况下,基于所述通信帧中的a位的所述帧发送时刻和前一个接收到的所述帧中的a位的所述帧发送时刻之间的大小,对所述高阶位信息进行校正,根据校正后的所述高阶位信息、接收到的所述通信帧的所述头部及所述数据部,生成校验码,并对该校验码与接收到的所述通信帧中的校验码是否一致进行判定的功能。
19.一种延迟检测方法,该延迟检测方法由通信系统中的通信装置执行,在该通信系统中,在经由传送路径连接的2台所述通信装置之间进行周期通信, 该延迟检测方法的特征在于,具有: 第I定时器启动工序,在该工序中,在周期通信开始后,启动定时器; 第I单程延迟判定工序,在该工序中,判定是否是在从所述定时器启动开始的规定时间内,接收来自其他通信装置的包含更新指令的更新指令帧; 帧接收时刻获取工序,在该工序中,在所述第I判定工序中接收到所述更新指令帧的情况下,获取所述更新指令帧的接收定时的帧接收时刻; 帧发送时刻获取工序,在该工序中,获取存储在所述更新指令响应帧中的由所述其他通信装置发送所述更新指令帧的发送时刻即帧发送时刻; 第2单程延迟判定工序,在该工序中,使用所述帧接收时刻和所述帧发送时刻,判定有无发生延迟;以及 定时器重新启动工序,在该工序中,在所述第2单程延迟判定工序后,使所述定时器重新启动。
20.根据权利要求19所述的延迟检测方法,其特征在于,还包含以下工序: 第2定时器启动工序,在该工序中,在进行周期通信前,向所述其他通信装置发送请求帧,启动所述定时器;以及 往返延迟判定工序,在该工序中,判定是否在规定的时间内,从所述通信装置接收到针对所述请求巾贞的响应中贞。
21.根据权利要求19或20所述的延迟检测方法,其特征在于,还包含以下工序: 前次帧发送时刻获取工序,在该工序中,如果从所述其他通信装置接收到表示更新准备完成的通信帧,则获取存储在所述通信帧中的该通信帧的帧发送时刻,作为前次帧发送时刻; 本次帧发送时刻获取工序,在该工序中,如果接下来从所述其他通信装置接收到所述更新指令帧,则获取存储在所述更新指令帧中的该更新指令帧的帧发送时刻,作为本次帧发送时刻;以及 帧丧失判定工序,在该工序中,判定所述本次帧发送时刻和所述前次帧发送时刻的差,是否在不会被判定为通 目巾贞丧失的丧失评价时间内。
22.根据权利要求21所述的延迟检测方法,其特征在于, 还包含前次帧发送时刻重新设定工序,在该工序中,在所述帧丧失判定工序中判定为没有发生所述通信帧的丧失的情况下,将所述本次帧发送时刻的值设定为所述前次帧发送时刻, 在该延迟检测方法中,重复执行从所述本次帧发送时刻获取工序开始的处理。
23.根据权利要求19至22中任一项所述的延迟检测方法,其特征在于,还包含以下工序: 时钟偏差测定指令工序,在该工序中,所述2台通信装置中具有作为基准的时钟的通信装置即主站点,在达到对作为其他通信装置的从属站点的时钟相对于所述主站点的时钟的时刻偏差即时钟偏差进行计算的定时后,将在更新指令帧中包含所述时钟偏差的测定指令而构成的第I更新指令请 求帧,向所述从属站点发送,其中,在所述时钟偏差测定指令工序的所述更新指令帧中包含针对所述从属站点的数据更新指令、要进行周期发送的周期发送数据及该帧的帧发送时刻,并且所述时钟偏差测定指令工序的所述更新指令帧是周期性发送的; 请求巾贞接收处理工序,在该工序中,所述从属站点在接收到所述第I更新指令请求中贞之后,将包含在所述第I更新指令请求帧中的帧发送时刻存储作为主发送时刻,将所述第I更新指令请求帧的接收定时存储作为从属接收时刻; 响应帧发送工序,在该工序中,所述从属站点将更新指令响应帧向所述主站点发送,并且,将所述更新指令响应帧的发送时刻存储作为从属发送时刻,其中,该更新指令响应帧是通过使包含针对所述主站点的数据更新指令及周期发送数据的、周期性发送的更新指令中贞,具有针对所述第I更新指令请求巾贞作出响应的功能而构成的; 时钟偏差计算指令工序,在该工序中,所述主站点在接收到所述更新指令响应帧之后,获取该更新指令响应帧的接收时刻作为主接收时刻,将在更新指令帧中包含所述时钟偏差的计算指令而构成的第2更新指令请求帧,向所述从属站点发送,其中,在所述时钟偏差计算指令工序的所述更新指令帧中包含针对所述从属站点的数据更新指令、要进行周期发送的周期发送数据及所述主接收时刻,并且所述时钟偏差计算指令工序的所述更新指令帧是周期性发送的;以及 时钟偏差计算工序,在该工序中,所述从属站点在接收到所述第2更新指令请求帧时,在获取所述从属接收时刻之后,使用所述主发送时刻、所述从属接收时刻、所述从属发送时刻及所述主接收时刻,计算所述从属站点的所述时钟偏差。
全文摘要
具有时间戳生成部(142、243),其在要发送/接收的PDU的发送时或接收时生成时间戳;发送数据存储部(12、22);接收数据存储部(13、23);帧处理部(143、244),其针对其他节点,生成包含数据更新指令、发送数据存储部(12、22)中的周期发送数据以及从时间戳生成部(142、243)获取的帧发送时刻在内的PDU,如果接收到来自其他节点的PDU,则将在该PDU中包含的周期发送数据存储在接收数据存储部(13、23)中;以及单程延迟检测部(145、247),其根据以下条件判定是否发生了来自其他节点的PDU的延迟,即,如果接收到PDU,则是否是在接收到前一个PDU后,在第1延迟容许时间内接收到下一个PDU,另外,在第1延迟容许时间内接收到下一个PDU的情况下,该PDU的从其他节点至本节点的传送时间是否在第2延迟容许时间内。
文档编号H04L12/28GK103109491SQ201080069108
公开日2013年5月15日 申请日期2010年9月15日 优先权日2010年9月15日
发明者伊东辉显, 藤田智之, 金山泰人 申请人:三菱电机株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1