JP6045950B2 - 通信制御装置及び通信システム - Google Patents

通信制御装置及び通信システム Download PDF

Info

Publication number
JP6045950B2
JP6045950B2 JP2013055383A JP2013055383A JP6045950B2 JP 6045950 B2 JP6045950 B2 JP 6045950B2 JP 2013055383 A JP2013055383 A JP 2013055383A JP 2013055383 A JP2013055383 A JP 2013055383A JP 6045950 B2 JP6045950 B2 JP 6045950B2
Authority
JP
Japan
Prior art keywords
communication
time
communication control
control device
packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013055383A
Other languages
English (en)
Other versions
JP2014183386A (ja
Inventor
丸山 龍也
龍也 丸山
山田 勉
山田  勉
城戸 三安
三安 城戸
吉田 昌司
昌司 吉田
輝昭 酒田
輝昭 酒田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2013055383A priority Critical patent/JP6045950B2/ja
Publication of JP2014183386A publication Critical patent/JP2014183386A/ja
Application granted granted Critical
Publication of JP6045950B2 publication Critical patent/JP6045950B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、通信制御装置及び通信システムに関し、通信装置間の時刻を同期させる通信制御装置及び通信システムに適用して好適なるものである。
分散されて構成される制御システムにおいては、実現するアプリケーションに応じて、接続端末間の時刻を同期することが求められる場合がある。ネットワークで接続された分散制御システムの場合は、ネットワークを介した時刻同期パケットの送受信によって、時刻を同期することができる。
例えば、産業用製造装置の場合、ロボットアーム、チップマウンタ、工作機械テーブル等の制御対象を複数のサーボモータで動作をさせる。これらの制御対象に所望の動作をさせるためには、制御対象の複数のサーボモータを同期して制御する必要がある。その他、時刻同期の応用としては、計測、測定の分野や、マルチメディア、無線通信等の基地局、電力系統の分野などが挙げられる。
ネットワークを用いた時刻同期方式としては、NTP(Network Time Protocol)、SNTP(Simple Network Time Protocol)、IEC61158、IEC61784−2のCommunication Profile Family 12(以下、EtherCAT(登録商標)とする)、IEEE1588等の同期プロトコルが挙げられる。
上記の同期プロトコルを利用して、ネットワーク上で時刻情報パケットを送受信し、通信装置間の通信遅延を計測することで、通信装置間の時刻を同期させることができる。時刻を同期させる際には、ネットワーク上で、基準となる時刻情報を提供する通信装置(以下、時刻マスタとする)を決定し、残りの通信装置(以下、時刻スレーブとする)を時刻マスタに同期させる。なお、時刻マスタ、時刻スレーブは固定的な機能ではなく、時刻同期の際の役割であるため、時刻同期プロトコルによって、各通信装置が動的に時刻マスタ、時刻スレーブのいずれにもなりうる。
高可用性が求められる高信頼な制御システムにおいては、時刻マスタの障害によるシステム停止を防止することが求められる。一般的な対策としては、時刻マスタの二重化等の多重化が挙げられる。例えば、IEEE1588では、時刻マスタの障害時に他の通信装置が代替することができる。しかし、時刻マスタの障害を検出するまでに所定のタイムアウト期間を待機しなければならず、その間、通信装置間の同期処理が実行されない。さらに、時刻マスタが冗長化されていても、時刻スレーブが、時刻同期のための制御パラメータを初期化することによる過渡的な誤差が生じる可能性がある。
このように、制御システムの高信頼化のために時刻マスタを冗長化した場合、時刻マスタの切り替り時において、同期精度が悪化するという問題があった。そこで、特許文献1では、複数の時刻マスタを同時に機能させ、時刻スレーブでは、複数の時刻マスタからの時刻情報と、各時刻マスタまでの通信遅延を所定の方法で組み合わせて同期することにより、一つの時刻マスタの障害による影響を低減する技術が開示されている。
特開2012−23654号公報
しかし、上記特許文献1では、複数の時刻マスタが同時に機能するために、時刻同期用のパケットによる通信量が増大し、制御システムでの有効な通信帯域を低下させるという問題があった。さらに、一般的な時刻同期プロトコルでは、このような動作は規定されておらず、これらの規格に準拠した端末装置でのシステム構成が困難であった。
本発明は以上の点を考慮してなされたもので、既存の同期プロトコルを利用して時刻マスタ機能を冗長化し、時刻同期機能を高信頼化することが可能な通信制御装置及び通信システムを提案しようとするものである。
かかる課題を解決するために本発明においては、ネットワークを介して接続された1または2以上の通信装置と同期パケットを送受信して時刻同期する通信制御装置であって、第1の通信装置の第1の同期パケットを観測して得られたパラメータとして、前記第1の同期パケットのシーケンス番号を保存するパラメータ保存部と、前記第1の通信装置の異常が検知された場合に、前記パラメータとしての前記第1の同期パケットのシーケンス番号及び前記通信制御装置自身の時刻情報をもとに第2の同期パケットを生成するパケット生成部と、前記第2の同期パケットを前記第1の通信装置以外の他の通信装置に送信する通信部とを備えることを特徴とする、通信制御装置が提供される。
かかる構成によれば、通信制御装置は、時刻マスタとして振る舞う第1の通信装置の第1の同期パケットを観測して得られたパラメータである第1の同期パケットのシーケンス番号を保存して、該通信装置の異常が検知された場合に、保存した第1の同期パケットのシーケンス番号及び通信制御装置自身の時刻情報をもとに第2の同期パケットを生成して、他の通信装置に送信する。これにより、時刻情報を提供するマスタ機能を冗長化し、さらにマスタ切り替り時の過渡的な同期精度の低下を防止することができる。
本発明によれば、既存の同期プロトコルを利用して時刻マスタ機能を冗長化し、時刻同期機能を高信頼化することができる。
本発明の第1の実施形態にかかる通信システムの構成を示すブロック図である。 同実施形態にかかる通信制御装置の構成を示すブロック図である。 同実施形態にかかる通信制御部の構成を示すブロック図である。 同実施形態にかかる通信装置間の通信遅延を説明する概念図である。 同実施形態にかかるEtherCATのパケット構成を示す概念図である。 同実施形態にかかる通信制御装置の機能構成を示すブロック図である。 同実施形態にかかる通信制御装置の動作を示すフローチャートである。 同実施形態にかかる通信経路の変更を示す概念図である。 同実施形態にかかる通信経路の変更を示す概念図である。 本発明の第2の実施形態にかかる通信システムの構成を示すブロック図である。 同実施形態にかかる通信制御装置の構成を示すブロック図である。 同実施形態にかかる通信制御装置の機能構成を示すブロック図である。 同実施形態にかかる時刻同期プロトコルの実行手順を示すブロック図である。 同実施形態にかかるマスタとスレーブとの間のメッセージ送受信を示すブロック図である。 同実施形態にかかる通信制御装置の動作を示すフローチャートである。 同実施形態にかかるIEEE1588のヘッダフォーマットを示す概念図である。 同実施形態にかかる通信制御装置のパケット送信を説明する概念図である。 本発明の第3の実施形態にかかる通信システムの構成を示すブロック図である。 同実施形態にかかるBCの構成を示すブロック図である。 同実施形態にかかるBCの機能構成を示すブロック図である。
以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1−1)ハードウェア構成
(1−1−1)通信システムの構成
まず、図1を参照して、通信システムの構成について説明する。図1に示すように、通信システムは、制御用計算機120と、複数の通信装置121a、121b、121c(以降、通信装置121a〜121cを通信装置121と総称して説明する場合もある。)と、通信制御装置123とから構成される。通信制御装置、制御用計算機120及び通信装置121は、ネットワーク122を介して通信可能に接続されている。
なお、本実施の形態では、通信制御装置123、制御用計算機120及び通信装置121は、EtherCATを利用して通信しているとして説明する。なお、本発明の効果はEtherCATに限定されるものではなく、同様の通信方式に有効である。本実施の形態は、EtherCATを例に、発明の効果を述べる。
制御用計算機120は、EtherCATのマスタ装置であり、通信制御装置123及び通信装置121に対して、通信パケットを送受信することにより、制御指令値の伝送、計測値の取得や各種設定を実行する。
通信装置121は、EtherCATのスレーブ装置であり、制御用計算機120の制御指令に基づく各種処理を実行したり、実行結果に伴う計測値を更新したりする。
通信制御装置123は、通信装置121と同様にEtherCATのスレーブ装置として振る舞う。一方で、本発明の通信制御装置として機能し、時刻マスタの冗長化機能を有する。時刻マスタの冗長化機能については後で詳細に説明する。
(1−1−2)通信制御装置のハードウェア構成
次に、図2を参照して、通信制御装置123のハードウェア構成について説明する。図2に示すように、通信制御装置123は、CPU101、PHY104、メモリ108、不揮発性記憶媒体109、バス110及び通信制御部111などから構成される。
CPU101は、演算処理装置および制御装置として機能し、不揮発性記憶媒体109に格納されているプログラムをメモリ108に転送して各種処理を実行させる。実行処理プログラムとしては、オペレーティングシステム(以下、OSと称す)やOS上で動作するアプリケーションプログラムなどが例示される。また、CPU101上で動作するプログラムは、通信制御部111の動作設定を行ったり、状態情報を取得したりする。
PHY104は、ネットワーク122との通信機能を備えた送受信機ICである。PHY104の提供する通信規格としては、IEEE802.3のPHY(物理層)チップが例示される。なお、図2では、PHY104と通信制御部111が接続している構成としているため、IEEE802.3のMAC(Media Access Control)層の処理は通信制御部111に含まれる。ただし、MAC機能を提供するICを通信制御部111とPHY104間に配置する構成や、MAC機能を提供するICとPHY104を組み合わせた通信用ICと通信制御部111を接続する構成としてもよい。また、PHY104は、通信制御部111に含まれていてもよい。また、図2では、4つのPHY104を示しているが、PHY104は、通信制御部111が対応する通信ポート数と同数で構成される。
メモリ108は、CPU101が動作するための一時的な記憶領域であり、不揮発性記憶媒体109から転送されたOSや、アプリケーションプログラムなどが格納される。
不揮発性記憶媒体109は、各種情報を記憶するための記憶媒体であって、OS、アプリケーション、デバイスドライバ等や、CPU101を動作させるためのプログラムが保存されたり、プログラムの実行結果が保存されたりする。不揮発性記憶媒体109としては、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)、フラッシュメモリなどが例示される。また、取り外しが容易な外部記憶媒体として、フロッピー(登録商標)ディスク(FD)、CD、DVD、ブルーレイ(登録商標)、USBメモリ、コンパクトフラッシュ(登録商標)等を利用してもよい。
バス110は、CPU101、通信制御部111、メモリ108、不揮発性記憶媒体109を相互に接続する。バス110としては、PCIバス、ISAバス、PCI Expressバス、システムバスまたはメモリバスなどが例示される。
通信制御部111は、EtherCATの通信機能を提供するICである。図3を参照して、通信制御部111のハードウェア構成について説明する。
図3に示すように、LAN102a〜d(以降、LAN102a〜dをLAN102と総称して説明する場合もある)は、ネットワーク122と送受信するための送受信機ICである。LAN102は、ネットワーク122を介して受信したパケットをEPU(EtherCAT Processor UNIT)103や他のLAN102へ伝送したり、EPU103や他のLAN102から伝送されたパケットをネットワーク122へ送信したりする。
LAN102としては、IEEE 802.3規格のMAC(Media Access Control)チップ、PHY(物理層)チップ、MACとPHYの複合チップ、FPGA(Field Programmable Gate Array)、CPLD(Complex Programmable Logic Device)、ASIC(Application Specific Integrated Circuit)、ゲートアレイ等のICを例示できる。なお、LAN102は、EPU103に含まれていてもよい。図3では、4つのLAN102を示しているが、かかる例に限定されず、複数のLAN102を備えていてもよい。
EPU103は、EtherCAT仕様に準拠して、通信処理を実行するICである。具体的に、EPU103は、EtherCAT規格に従い、受信したパケットを解析し、必要なパラメータを抽出したり、パラメータにしたがった処理を実行したり、パケットへの所定情報の書込みを実行したりする。EPU103としては、CPU、FPGA、CPLD、ASICまたはゲートアレイなどのICが例示される。
ループバック機能部112は、接続するLAN102における通信の確立状況、あるいは設定に応じて、パケットの転送先をLAN102が接続するネットワークか、あるいは隣接するループバック機能部112とする。
(1−2)EtherCATの時刻同期機能
次に、図4を参照して、EtherCATにおける時刻同期の仕組みについて説明する。
EtherCATの時刻同期機能は、スレーブ間の通信遅延計測、各スレーブの時計のオフセット補償、各スレーブが有する時計の進み具合のドリフト補償という3段階で構成されている。このうち、各スレーブ間の通信遅延の計測は、図4に示すアルゴリズムを基本としている。図4では、通信装置121aはスレーブAとして、通信装置121bはスレーブBとして、通信装置121cはスレーブCとして振る舞うとして以下説明する。
図4は、EtherCATのスレーブA、B、Cの各通信装置121において、パケットの通信経路と各スレーブの各ポートでの受信時刻を示している。EPU103(図中EtherCAT Processor Unitと表記)は、上記したように、EtherCAT仕様に準拠して、通信処理を実行するICである。
図4のTa、Tb、Tc、Td及びTeは、時刻同期用の所定のパケット(時刻同期用パケット1とする)の各ポートにおける受信時刻で、tdiffAB、tdiffBC、tdiffCB及びtdiffBAはスレーブ間の通信遅延を示す。例えば、tdiffABは、スレーブAとスレーブB間の通信遅延を示す。tpは、EPU103の処理時間を示す。TAP、TBP及びTCPは、各スレーブA、B、CのEPU103における受信時刻である。
ここで、スレーブAに着目した場合、Ta及びTeは同じ通信装置121a上のクロックで計測しているが、通信装置121bとは、クロックのオフセットやドリフトが異なるため、Tb及びTdとそのまま比較することはできない。
図4のTa〜Teが計測可能で、tpが既知であるとした場合、スレーブCとスレーブB間の通信遅延tdiffBCは、数式(1)で算出できる。
tdiffBC =(Td−Tb)÷2 ・・・(1)
ただし、tdiffBCとtdiffCBは等しいとする。なお、EtherCATスレーブのプロセッサユニットは同種のものを利用していると仮定している。もし、プロセッサユニットが異なる場合は、tpの違いを考慮する必要がある。
また、スレーブBとスレーブA間の通信遅延tdiffABは、数式(2)及び(3)で求められる。
tdiffAB =((Te−Ta)−(Td−Tb)−tp)÷2+tp・・・(2)
tdiffBA =tdiffAB−tp ・・・(3)
なお、時刻同期機能に対応していないEtherCATスレーブは、単なる通信経路と見なされる。すなわち、時刻同期機能に対応していないEtherCATスレーブに対しては、予め設定された固定の通信遅延でパケットを転送する必要がある。
このように時刻同期機能を実現する場合には、時刻同期用のパケットをリングネットワークで周回させる必要がある。すなわち、あるスレーブにおいて往路と復路におけるパケットの受信時刻をもとに通信遅延を計算する必要がある。
このように、スレーブ間の通信遅延を求めた後、これらの通信遅延を積算して、各スレーブと基準時刻を有するスレーブ間の通信遅延を求めることができる。例えば、図4でスレーブAを基準とする場合、スレーブAとスレーブB間の通信遅延は、tdiffABとなり、スレーブAとスレーブC間の通信遅延tdiffACは、数式(4)で求められる。
tdiffAC=tdiffAB+tdiffBC・・・(4)
これらの通信遅延を用いて、マスタは基準時刻となるスレーブAのTAPを、その他のスレーブに通知する。各スレーブは、各スレーブ自身のEPU103の受信時刻を用いて、基準時刻となるスレーブAとの時刻のオフセットを計算することができる。例えば、スレーブBにおけるスレーブAとの時刻のオフセットOffsetBは数式(5)で求められる。
OffsetB=TAP−TBP・・・(5)
各スレーブは、スレーブAとの通信遅延と、時刻のオフセットを用いて、自己の時刻を基準時刻と同期させることができる。
EtherCATにおいては、時刻同期に対応したスレーブの中で、マスタに最も近い(ホップ数の小さい)スレーブの時刻を基準時刻とする。図1では、通信装置121aを時刻マスタとしている。
次に、図5を参照して、EtherCATのパケット構成について説明する。EtherCATの通信内容は、Ethernet(登録商標)フレーム200のデータ領域202に格納される。EtherCATにおける、Ethernet(登録商標)ヘッダ201のTypeフィールドは0x88A4である。データが正しいか否かをFCS(Frame Check Sequence)203を用いて検査する。
EtherCATのデータ構造は、EtherCATヘッダ204と、ひとつ、または複数のEtherCATテレグラム205で構成される。EtherCATテレグラム205は、テレグラムヘッダ206、テレグラムデータ207、ワーキングカウンタ208(WKC)から構成される。ワーキングカウンタ208は、そのテレグラムを処理すべきスレーブで正しく処理されるたびに、スレーブによって所定の数だけカウントアップされるフィールドである。
コマンド220は、EtherCAT仕様におけるコマンドを示す。識別子221は、データグラムの識別子である。アドレス222は、EtherCAT仕様におけるアドレスである。データサイズ223は、データ207のサイズである。C225は、フレームが巡回していることを示す。M226は、後続のテレグラムが存在することを示す。IRQ227は、スレーブからの所定事象の発生を制御用計算機120に通知するために用いられる。
(1−3)通信制御装置の機能構成
次に、図6を参照して通信制御装置123の機能構成について説明する。図6に示すように、通信制御装置123は、パラメータ保存部130、通信部131a、131b(以降、通信部131と総称して説明する場合もある)、時刻マスタ障害判定部132及び時刻配信パケット更新部133などを備える。
パラメータ保存部130は、時刻同期処理に必要なパラメータを保存する機能を有する。これらのパラメータは、通信部131によって受信したパケット上のデータそのものであってもよいし、該データをもとに変形、あるいは所定の方法で算出したパラメータであってもよい。パラメータ保存部130が保存するパラメータとしては、例えば、時刻マスタとの通信遅延や、時刻マスタの時刻との誤差などを例示できる。パラメータ保存部130は、EPU103、メモリ108、不揮発性記憶媒体109、CPU101上で動作するOSのいずれか、または複数によって構成される。
通信部131は、パケットを送受信する機能を有する。通信部131は、LAN102、あるいは通信機能の一部がEPU103に含まれる場合は、LAN102とEPU103で構成される。図6では、2つの通信部131を示しているが、通信部131aはLAN102a、通信部131bはLAN102bに相当する。
時刻マスタ障害判定部132は、通信部131で送受信されるパケットに含まれるデータや、送受信のタイミング等によって、時刻マスタの障害を判定する機能を有する。時刻マスタ障害判定部132は、EPU103、CPU101上で動作するソフトウェアプログラムのいずれか、または複数によって構成される。
時刻配信パケット更新部133は、時刻マスタ障害判定部132が時刻マスタの障害を検知した場合に、時刻配信パケット内のデータを更新すること等により、時刻マスタを代替する機能を有する。時刻配信パケット更新部133は、EPU103、CPU101上で動作するソフトウェアプログラムのいずれか、または複数によって構成される。
なお、別途、バス110上にFPGA、CPLD、ASIC等のICを設けて、パラメータ保存部130、時刻マスタ障害判定部132、時刻配信パケット更新部133のいずれか、または複数を構成してもよい。
(1−4)通信制御装置の動作の詳細
次に、図7を参照して、通信制御装置123の動作の詳細を説明する。図7に示すように、通信制御装置123は、時刻情報の配信パケットを受信するまで待機する(S001)。なお、時刻情報の配信パケット以外のパケットは、通信装置121と同様に、通常のEtherCATスレーブとして処理する。
ステップS001において、時刻情報の配信パケットを受信したと判定されると、時刻マスタ障害判定部132は、時刻マスタが異常かを判定する(S002)。上記したように、時刻マスタ障害判定部132は、ステップS001で受信した配信パケットに含まれるデータや、送受信のタイミングによって、時刻マスタが障害かを判定する。
ステップS002において、時刻マスタが異常であると判定された場合には、パラメータ保存部130が必要なパラメータを保存しているかを判定する(S003)。具体的に、パラメータ保存部130が保存するパラメータとは、時刻マスタとの通信遅延、時刻マスタとの時刻誤差である。これらのパラメータは、EtherCATの時刻同期手順において、制御用計算機120による初期手順で設定される。すなわち、パラメータ保存部130に必要なパラメータが保存されている場合には、時刻マスタである通信装置121aと通信制御装置123との時刻が同期されており、通信制御装置123が通信装置121aに代わって時刻マスタとして振る舞うことができることを意味している。
パラメータ保存部130は、これらのパラメータが0ではないことから、必要なパラメータを保存していると判定してもよい。また、制御用計算機120からのパケットにおいて、遅延時刻、時刻誤差を保持するレジスタへのアクセスがあった場合に、これらのパラメータの更新があったとして、パラメータを保存していると判定してもよい。なお、これらのパラメータが0となるのは、時刻スレーブとして振る舞う通信装置のみである。
次に、S003において、パラメータ保存部130が必要なパラメータを保存していると判定された場合には、時刻配信パケット更新部133は、配信する時刻情報を更新する(S004)。このときに、更新する時刻情報は、通信制御装置123自身の時刻と、パラメータ保存部130で保持したパラメータをもとに決定する。具体的には数式(6)で求められる。
T=L−d+O・・・(6)
ここで、Tは更新した時刻情報、Lは通信制御装置123自身の時刻、dは時刻マスタと通信制御装置123間の通信遅延、Oは時刻マスタと通信制御装置123の時刻誤差である。
また、通信制御装置123が時刻マスタに同期している時刻Sを用いて、数式(7)で計算してもよい。
T=S−d・・・(7)
なお、更新時刻Tを通信制御装置123自身の時刻Lとしてもよいが、もとの時刻マスタを代替し、過渡的な同期精度の低下を防止するためには、数式(6)または数式(7)による更新をするとよい。
ステップS004を実行した後、通信部131bを用いてパケットを後段の通信装置121に転送する(S006)。
一方、ステップS002において、時刻マスタが異常ではない、すなわち時刻マスタが障害を起こしていないと判定された場合には、通常のスレーブ同様にパケットを処理する(S005)。また、S003において、パラメータ保存部130に必要なパラメータを保存していないと判定された場合にも、通常のスレーブ同様にパケットを処理する(S005)。その後、通信部131bを用いてパケットを後段の通信装置121に転送する(S006)。
次に、ステップS002における時刻マスタ障害判定部132による時刻マスタの障害判定方法について説明する。
EtherCATでは、制御用計算機120が送信するパケットによる所定アドレスへのアクセスにより、時刻マスタが自身の時刻情報をパケットに格納する。この時刻マスタの機能が正常に動作していなければ、通信制御装置123が受信するパケットの該当領域には異常な値が書き込まれる。異常な値としては、例えば0を例示できる。時刻マスタが正常であっても偶然に時刻情報として0となる場合がある。この場合に時刻マスタ障害判定部132が時刻マスタを異常と誤判定するが、図7のステップS004において、時刻マスタに同期した時刻に更新するため、同期精度は維持される。
また、時刻配信パケットの受信間隔を通信制御装置123自身の時刻で計測し、時刻配信パケットに格納されている時刻情報の差分と比較することにより、時刻マスタの異常を判定してもよい。この判定基準を数式(8)で示す。
|(Li+1 − Li)−(Ti+1 − Ti)| > α・・・(8)
ここで、Liはi番目に受信した時の通信制御装置123の時刻であり、Tiはi番目に受信した時刻配信パケットに格納された時刻情報であり、αは異常と判定する閾値である。αは、時刻の進み具合の誤差に基づいて決定することが示される。例えば、時刻の進み具合の誤差から考えられる最大誤差以上とすることが示される。
上記数式(8)は、連続して受信した時刻配信パケットを用いて判断しているが、数式(8)の条件を所定回数連続して満足した場合に異常と判定することや、数式(8)の(Li+1 − Li)−(Ti+1 − Ti)を所定回数計測して算出される統計値(平均値、分散、積分値、合計値等)と所定の閾値を比較することで、時刻マスタを異常と判定してもよい。
これらの受信間隔に基づいて判定可能な異常の原因は、時刻マスタ自身の時刻の異常の他に、図8に示すように通信経路の変更による通信遅延の変化が含まれる。図8では、通信装置121aが時刻マスタであるとする。通信装置121aと通信制御装置123間の通信経路に異常が発生したとし、制御用計算機120からのパケットは通信装置121aを経由後、制御用計算機120に戻るとする。
上記したように、EtherCATのバケットには、各スレーブが処理した場合に所定の値が足されるカウンタ部分(ワーキングカウンタ208)が設けられている。制御用計算機120は、パケット上のカウンタが、全スレーブ数に基づく期待値と異なる場合に経路上の異常を検知する。また、パケットを送信した通信ポート(図8の通信ポート1)で該パケット受信したことで、経路上の異常を検知してもよい。
上記方法による経路上の異常を判定した制御用計算機120は、代替通信ポート(図8の通信ポート2)からパケットを送信する。なお、制御用計算機120は、通信経路の異常を判断せずに、両方の通信ポートから同じパケットを送信してもよい。
このようにして、時刻配信パケットは、通信装置121aでパケットを受信後、再び、制御用計算機120に戻り、その後、通信制御装置123に転送される。この場合、通信装置121aで受信してから通信制御装置123で受信するまでの通信遅延が正常時よりも長くなるため、上記数式(8)等によって、時刻情報の異常を判定することができる。
また、時刻マスタ障害判定部132が、時刻マスタである通信装置121aの異常を検知することができた場合には、自身の時刻と時刻マスタの情報から時刻情報を修正することができる(図7のステップS004)。これにより、他の通信装置121の時刻精度が低下することを防ぐことができる。
また、図9に示すように時刻マスタである通信装置121a自身が障害でダウンする場合も考えられる。通信装置121a自身の障害は、通信装置121aの両端の通信経路の異常も含まれる。この場合、時刻配信パケットは通信装置121aを経由しないため、パケット上の時刻情報、ならびにワーキングカウンタ208の値は0となる。したがって、パケット上の時刻情報、ならびにワーキングカウンタ208の値が0の場合に、時刻マスタが異常であると判定することができる。
また、EtherCATのオートインクリメントアドレスを用いて時刻マスタの異常を判定してもよい。オートインクリメントアドレスは、各スレーブがパケットを処理するごとにアドレス値を1ずつインクリメントし、受信した際のアドレス値が0であれば、そのデータグラムが自身に対するパケットと判定するアドレス体系である。データグラムはEtherCATパケットの構成単位であって、上記したデータ207である。時刻配信パケットでは、ARMWコマンド(Auto Increment Read Multiple Write)というオートインクリメントアドレスを用いたデータグラムによって時刻情報を配信する。
図9のように、時刻配信パケットが通信装置121aを経由しない場合、ARMWコマンドのオートインクリメントアドレスは、1をインクリメントされずに通信制御装置123に転送される。したがって、通信制御装置123は時刻配信パケット記載のオートインクリメントアドレスを確認することにより、時刻マスタの異常を判定することができる。
正常時であれば、通信制御装置123が通信装置121aの隣のノードの場合、受信するパケットのオートインクリメントアドレスは1となる(通信装置121aが0)。通信制御装置123と通信装置121a間のホップ数をN(隣接する場合は1)として、受信したパケットのオートインクリメントアドレスがNでなければ、時刻マスタの異常と判定する。なお、時刻マスタ障害判定部132は時刻マスタである通信装置121aと通信制御装置123間のホップ数Nを、時刻同期の初期手順で受信したパケットのオートインクリメントアドレスから取得し、パラメータ保存部130に保持している。
オートインクリメントアドレスが期待値Nでなかった場合、時刻配信パケット更新部133は、図7のS004の手順で時刻情報を更新する。さらに、該データグラムのオートインクリメントアドレスを数式(9)で求めた値に更新し、次の通信装置121に転送する。
AutoAddr=N+1・・・(9)
ここで、AutoAddrはオートインクリメントアドレスである。
その他、時刻配信パケットを所定期間受信しなかった場合に、時刻マスタ障害判定部132は、時刻マスタを異常と判定してもよい。この所定期間の観測は、時刻同期手順の初期手順から開始してもよいし、時刻配信パケットを受信後に開始してもよい。また、時刻配信パケットの受信間隔の観測の開始を指示する所定のパケットを受信した後に、時刻配信パケットの受信間隔の観測を開始してもよい。また、通信制御装置123自身に所定の入力手段(キーボード、スイッチ、マイク等)を設けて、所定の信号を入力後に時刻配信パケットの受信間隔の観測を開始してもよい。
また、異常判定する時刻配信パケットの受信間隔の閾値は、予め、固定値を設定してもよいし、制御用計算機120から所定のフォーマットのパケットを受信して設定するようにしてもよい。また、通信制御装置123に設けた入力手段からの入力に応じて閾値を設定してもよい。また、受信間隔の閾値は、水晶振動子等の物理的な特性で決定される通信制御装置123自身の時刻の精度と、システムの要求する同期精度によって決定してもよい。すなわち、同期精度を実行しない期間でずれる精度誤差が、要求する同期精度より低下しないように実行周期を決定する。
例えば、1秒間の同期処理を実行せずにF(時間)の同期精度誤差が生じる通信装置を用い、要求同期精度がPの場合、数式(10)より、同期処理を実行すべき周期Qが求まる。
Q=1[単位:秒]×P/F・・・(10)
例えば、F=100マイクロ秒、P=1マイクロ秒であれば、Q=1×1/100=10ミリ秒となる。
上記数式(10)により算出される周期Qは、制御用計算機120の時刻配信パケットの送信間隔について適用してもよい。この送信間隔は、ネットワーク122上の通信装置121、通信制御装置123の中で最も条件の厳しいノードにあわせる必要がある。
上記のように、時刻マスタ障害判定部132が時刻マスタの異常を検知した場合には、時刻配信パケットを受信することができないため、図7に示す手順を適用することができない。このような場合、通信制御装置123自身が時刻配信パケットを生成して、送信するようにしてもよい。このとき、時刻情報は、上記数式(6)または数式(7)のいずれかによって算出することができる。
また、オートインクリメントアドレスを用いる場合は、次の通信装置121に転送するデータグラムのオートインクリメントアドレスを数式(9)によって算出することができる。また、通信制御装置123が時刻配信パケットを送信するタイミングは、時刻マスタ障害判定部132が時刻マスタの異常を判定したタイミングでもよいし、所定の周期で送信してもよい。このときの周期は、上記数式(10)に基づいて決定してもよい。
また、本発明を適用した通信制御装置123を複数用いて、多段で構成してもよい。この場合、パケット上の時刻情報は、時刻マスタ障害判定部132が時刻マスタを異常と判定した通信制御装置123のうち、最後に時刻配信パケットを処理した通信制御装置123による時刻情報に更新される。
または、通信制御装置123が時刻情報を更新したことをパケットに記録し、後段の通信制御装置123は、その記録を見て、時刻情報の更新処理を制御するようにしてもよい。
パケット上への更新処理の有無の記録方法としては、EtherCATパケットのデータグラムのヘッダ上の項目(例えば、IRQ:Interrupt ReQuest)を用いてもよいし、該情報を示す所定のデータグラムを付加してもよい。
また、それらの記録の表現方法により、どの通信制御装置123が更新処理を実行したかを示すことができ、それをもとに、後段の通信制御装置123の制御を変更することができる。例えば、データグラムのヘッダのIRQを用いる場合は、ビット位置と通信制御装置123の識別情報とを対応づけるようにしてもよい。
また、後段の通信制御装置123は、すでに更新処理を実行した通信制御装置123があれば、更新処理を実行しないようにしてもよい。また、複数の通信制御装置123の間で優先度を設定して、その優先度に基づいて更新処理の適用可否を決定してもよい。例えば、各通信制御装置123は、自身よりも優先度が高い通信制御装置123が時刻情報を更新している場合には自身の時刻情報を更新せず、自身よりも優先度の低い通信制御装置123が時刻情報を更新している場合には自身の時刻情報を更新するようにしてもよい。
該優先度は、通信制御装置123の時刻精度や計算機機能に基づいて決定してもよい。計算機機能としては、CPU101の性能や、メモリ108、不揮発性記憶媒体109の容量、スループットなどが挙げられる。また、該優先度は、ネットワーク上における位置、通信帯域、単位時間あたりの通信量、通信遅延、通信媒体等をもとに算出した統計値(平均値、最小値、最大値、分散等)に基づいて決定してもよい。
(1−5)本実施の形態の効果
以上のように、本実施の形態によれば、通信制御装置123は、時刻マスタとして振る舞う通信装置121の同期パケットを観測して得られたパラメータを保存して、該通信装置121の異常が検知された場合に、保存したパラメータ及び通信制御装置123自身の時刻情報をもとに同期パケットを生成して、他の通信装置に送信する。これにより、時刻情報を提供するマスタ機能を冗長化し、さらにマスタ切り替り時の過渡的な同期精度の低下を防止することができる。
(2)第2の実施の形態
本実施の形態は、時刻同期プロトコルにIEEE1588を利用した場合について説明する。本実施の形態で使用する符号は、特に断りのない限り、第1の実施の形態で説明した機能や要素等と同一であることを意味する。なお、以下では、上記した第1の実施の形態と同様の構成については詳細な説明は省略し、第1の実施の形態と異なる構成について特に詳細に説明する。
(2−1)ハードウェア構成
(2−1−1)通信システムの構成
図10に本実施の形態の通信システムの構成を示す。図10に示すように、通信制御装置140は、IEEE1588の機能を備え、ネットワーク142を介して、他の通信装置141と通信する。
通信装置141は、通信制御装置140と同様に、IEEE1588の機能を備え、ネットワーク142を介して、他の通信装置141、通信制御装置140と通信する。ネットワーク142としては、IEEE802.3や各種産業用ネットワークが例示される。
ネットワーク142は、ブロードキャストドメインとし、ある通信制御装置140、通信装置141から送信されるブロードキャストパケット、マルチキャストパケットは、ネットワーク142に接続される各通信制御装置140、通信装置141に転送される。また、ネットワーク142は、ネットワークスイッチ、ブリッジ、ルータ、IEEE1588のTC(Transparent Clock)、OpenFlowスイッチ等の各種ネットワーク中継装置が含まれていてもよい。
(2−1−2)通信制御装置のハードウェア構成
次に、図11を参照して、通信制御装置140のハードウェア構成について説明する。図11に示すように、通信制御装置140は、CPU101、LAN102、PHY104、メモリ108、不揮発性記憶媒体109及びバス110などから構成される。CPU101、LAN102、PHY104、メモリ108、不揮発性記憶媒体109及びバス110は、第1の実施の形態と同様のため、詳細な説明は省略する。
(2−2)通信制御装置の機能構成
次に、図12を参照して通信制御装置140の機能構成について説明する。図12に示すように、通信制御装置140は、パラメータ保存部130、通信部131、時刻マスタ異常判定部150、時刻マスタパラメータ動的抽出部151及び時刻マスタ代替部152から構成される。パラメータ保存部130及び通信部131は、第1の実施の形態と同様の機能を有するため、詳細な説明は省略する。
時刻マスタ異常判定部150は、通信部131で送受信されるパケットに含まれるデータや、送受信のタイミング等によって、時刻マスタの異常を判定する機能を有する。時刻マスタ異常判定部150は、CPU101上で動作するソフトウェアプログラムによって構成される。
時刻マスタパラメータ動的抽出部151は、IEEE1588において、時刻マスタとして振る舞う通信装置141から受信したパケット上のパラメータを抽出し、パラメータ保存部130に保存する機能を有する。
時刻マスタ代替部152は、時刻マスタ異常判定部150が時刻マスタの異常を判定した場合に、時刻マスタ機能を代替する機能を有する。
(2−3)IEEE1588の時刻同期
ここで、図13を参照して、IEEE1588の時刻同期プロトコルの実行手順について説明する。IEEE1588においては、通信装置141がマスタ−スレーブ構成をとる。図14に、IEEE1588におけるマスタとスレーブとの間のメッセージの送受信を示す。
図13に示すように、はじめにマスタは、スレーブにSyncメッセージを送信する(S060)。このとき、マスタはSyncメッセージの送信時刻t1を記録する(S061)。そして、スレーブは、Syncメッセージを受信すると、その受信時刻t2を記録する(S062)。
そして、マスタは次のいずれかの手段でt1をスレーブに通知する(S063)。第1の手段は、Syncメッセージにt1の情報をのせる方法である。第2の手段は、Syncメッセージに続くFollow_Upメッセージにt1の情報をのせる方法である。
続いて、スレーブは、マスタにDelay_Reqメッセージを送信する(S064)。このとき、スレーブはDelay_Reqメッセージの送信時刻t3を記録する(S065)。マスタは、Delay_Reqメッセージを受信すると、その受信時刻t4を記録する(S066)。
そして、マスタはDelay_Respメッセージにt4の情報をのせ、t4をスレーブに通知する(S067)。Delay_Respメッセージを受信したスレーブは、t1、t2、t3及びt4から、マスタとスレーブとの間の通信遅延及び時刻の差分を計算する(S068)。
通信遅延の計算には、マスタとスレーブとの間の通信遅延が往復路で等しいことを前提としている。したがって、片道の通信遅延tdは、数式(11)で算出される。
td=((t4−t3)+(t2−t1))/2・・・(11)
また、マスタとスレーブの時刻の差分tdiffは、数式(12)で算出される。
tdiff={(t4−t3)−(t2−t1)}/2・・・(12)
上記数式(12)で算出されたtdiffを用いて、マスタ及びスレーブは時刻を同期することができる。
(2−4)通信制御装置の動作の詳細
次に、図15を参照して、本実施の形態にかかる通信制御装置140の動作の詳細を説明する。
IEEE 1588では、BMC(Best Master Clock)アルゴリズム、あるいは静的な設定により、各通信制御装置140及び通信装置141の各ポートにおいて、上記したマスタ及びスレーブの役割を決定する。このとき、通信制御装置140は、時刻マスタの障害時に、時刻マスタの代替機能を達成することとするため、スレーブとなるものとする。以下では、説明の便宜上、通信装置141aをマスタとなるものとする。マスタとなった通信装置141aは、定期的に、Syncパケットをネットワーク142に対してマルチキャスト送信する。
まず、時刻マスタ異常判定部150は、時刻マスタが正常かを判定する(S010)。ステップS010において、時刻マスタが正常であると判定された場合には、通信制御装置140は、パケットの受信を待機し(S011)、受信したパケットがSyncであるか判定する(S012)。
ステップS012において、受信したパケットがSyncであると判定された場合には、通信制御装置140は、マスタとして認識した通信装置141aの識別子とシーケンスID、ドメイン番号を記録し(S013)、通常のスレーブと同様にSyncパケットの受信時刻を記録する(S014)。
ここで、通信制御装置140が記録するパラメータについて説明するため、図16を参照して、IEEE1588のヘッダフォーマットについて説明する。
図16に示すように、通信装置141aの識別子は、sourcePortIdentity168であり、シーケンス番号はsequenceId169であり、ドメイン番号はdomainNumber165である。
通信制御装置140では、Syncパケットを受信するたびに、時刻マスタパラメータ動的抽出部151がこれらのパラメータを抽出し、パラメータ保存部130に保存する。
図15のステップS010において、時刻マスタ異常判定部150が時刻マスタ機能の異常を検知した場合(S010のN)、時刻マスタ代替部152は、パラメータ保存部130に保存されたパラメータを用いて、Syncパケットを生成し(S015)、以降、マスタ機能を代替する(S016)。
具体的には、ステップS015において、パラメータ保存部130に保存したsourcePortIdentity168とdomainNumber165を用いてSyncパケットが生成される。また、IEEE1588ではsequenceId169は1ずつインクリメントした数字でなければならないため、時刻マスタパラメータ動的抽出部151が最後に抽出してパラメータ保存部130に保存したsequenceId169の値に1を足した値を用いてSyncパケットを生成する。
図15に示す処理は、定期的に実行してもよいし、時刻マスタ異常判定部150が、時刻マスタの判定状態を変更したタイミングで実行してもよい。
次に、時刻マスタ異常判定部150の判定基準について説明する。時刻マスタ異常判定部150が時刻マスタを異常と判定する一つの基準は、IEEE1588で規定されている、Announceメーセージを所定周期受信しなかったタイムアウトによって異常と判定してもよい。ただし、この方法は他の通信装置141(スレーブ)でも同様にタイムアウトが発生し、同期用の制御パラメータを初期化し、過渡的な精度低下が発生する可能性がある。
したがって、Announceメッセージのタイムアウトではなく、Syncパケットを所定期間、あるいは所定周期受信しなかった場合、あるいは所定期間あたりの受信数が所定の閾値以下の場合に異常と判定するようにしてもよい。
または、通信制御装置140から、時刻マスタである通信装置141aにPing等のパケットを通信し、返信がなかった場合、または所定回数連続して受信がなかった場合、または所定期間中の変換回数が所定の閾値以下の場合に異常と判定してもよい。
また、上記数式(8)と同様に、時刻配信パケット(Sync)の受信間隔と、時刻配信パケット上の時刻情報の差分をもとに時刻マスタの異常を判定してもよい。数式(8)は連続して受信した時刻配信パケットを用いて判断しているが、数式(8)の条件を所定回数連続して満足した場合や、(式8)の(Li+1 − Li)−(Ti+1 − Ti)を所定回数計測して算出される統計値(平均値、分散、積分値、合計値等)と所定の閾値を比較することで、時刻マスタを異常と判定してもよい。
ただし、数式(8)に基づいて判定する場合は通信制御装置140自身の時刻が異常となっている場合もありうる。そのような場合を防止するため、通信制御装置140を多重化し、それぞれの通信制御装置140の判定結果をネットワーク142にブロードキャスト、あるいは通信制御装置140のグループを含めたマルチキャストグループにマルチキャストするようにしてもよい。ブロードキャストまたはマルチキャストされるパケットには、少なくとも判定結果が含まれ、判定した通信制御装置140の識別子が含められてもよい。
また、通信制御装置140ごとに優先度(重み付け)を付与し、該優先度に応じた度合いを点数化して、該パケットに含めてもよい。この優先度は、各通信制御装置140の信頼性設計の度合い(ソフトウェアやハードウェアの冗長度、故障率の組み合わせ等)に基づいて決定してもよい。また、通信制御装置140の(CPU101の性能、メモリ108、不揮発性記憶媒体109の容量、スループットなどの計算機性能に基づいて決定してもよい。また、ネットワーク142中の位置、時刻マスタまでのホップ数、通信遅延、通信帯域、通信媒体をもとに算出した統計値(平均値、最小値、最大値、分散等)に基づいて決定してもよい。また、通信制御装置140が判定した異常要因に点数に反映してもよい。
該パケットを受信した通信制御装置140は、上記の点数が所定の閾値よりも大きい場合、あるいは所定の通信制御装置140が異常と判定した場合、時刻マスタを異常と判定する。
上記による時刻マスタの異常判定の場合、通信装置141aは同期パケットを継続して送信し得る。各通信装置141、通信制御装置140が複数の同期パケット(Sync)を受信することを防止するため、通信制御装置140が通信装置141aの送信を停止するように構成してもよい。例えば、同期パケットの送信を停止するmanagementメッセージや独自のTLV(Tag Length Value)メッセージを通信装置141aに送信する。これらのメッセージには、少なくとも同期パケットの送信を停止する内容を含めるようにしてもよい。
また、SNMP(Simple Network Management Protocol)や、VLAN、IEEE802.1Q等の機能を備えたネットワーク中継装置を用いて(図示なし)、通信装置141aを送信不可とするようにネットワーク中継装置を設定してもよい。また、該ネットワーク中継装置を用いて、時刻配信パケット(Sync)のみをフィルタし、他の通信装置に転送しないように設定してもよい。
同様に、複数の通信制御装置140を用いて、複数の通信制御装置140が時刻マスタの異常を検知した場合、複数の同期パケット(Sync)が送信される可能性がある。
このような場合を防止するため、上記したように、複数の通信制御装置140に優先度を設け、最も優先度の高い通信制御装置140のみが同期パケットを送信するようにしてもよい。または、優先度の最も高い通信制御装置140がネットワーク中継装置を設定し、他の通信制御装置140が時刻配信パケット(Sync)を送信できないように設定してもよい。このとき、優先度の判定基準として、異常を判定した時刻の早さが考えられ、最も早く時刻マスタの異常を判定した通信制御装置140に最も高い優先度を与えてもよい。
または、Syncの送信周期、あるいはAnnounceメッセージの送信周期等に基づく所定周期内で、架空のタイムスロットを各通信制御装置140に割り当てる方法が例示される。具体的には、各通信制御装置140が時刻マスタの異常を判定した際に、自身が割り当てられたタイムスロットよりも前のタイムスロットで、他の通信制御装置140が同期パケットを送信していれば、自身は、同期パケットを送信しない。また、他の通信制御装置140が同期パケットを送信していない場合は、自身が同期パケットを送信するようにしてもよい。
次に、図17を参照して、通信制御装置140a〜dを用いた場合の動作について説明する。通信制御装置140dに着目した場合、図17(a)では、通信制御装置140bがSyncパケットを送信しているため、通信制御装置140d自身は時刻マスタの異常を判定したとしても同期パケットを送信しない。
一方、図17(b)の場合は、通信制御装置140dより前に他の通信制御装置140がSyncパケットを送信していないため、通信制御装置140dが時刻マスタを異常と判定した場合は、通信制御装置140dがSyncパケットを送信する。
なお、タイムスロットの割り当てには、上記した優先度を用いてもよい。また、優先度の決定には動的な基準も含まれるため、図17に示すタイムスロットは動的に構成し、各通信制御装置140に割り当てたタイムスロットを通信してもよい。このようなタイムスロットは、通信制御装置140のいずれかが実行してもよいし、専用の通信装置141が実行してもよい。
なお、各通信制御装置140は、IEEE1588等の時刻同期プロトコルによって同期しているため、図17に示すような同期は、任意のタイミングで開始することができる。したがって、タイムスロットの割り当てを実行する通信装置は、周期の開始時、あるいは、周期の長さを各通信制御装置140に通知する。
また、通信制御装置140は、図15のステップS013において、通信装置141a(時刻マスタ)の必要なパラメータを保存した後、常に所定周期でSyncパケットを送信してもよい。このような場合、2つの同一のSyncパケットを受信した通信装置141は、2つのパケットを両方用いてもよいし、片方のみ(例えば、後着廃棄)を用いてもよい。
また、時刻マスタを異常と判定した後に、再び時刻マスタを正常と判定する場合がある。そのような場合、通信制御装置140は、自身の同期パケットの送信を停止してもよいし、継続して同期パケットを送信してもよい。また、時刻マスタ異常判定部150が時刻マスタを正常と判定している間に、時刻マスタに同期してもよい。このように構成することにより、時刻マスタが異常となり、通信制御装置140が代替した場合であっても、同期精度の低下を阻止することができる。
また、通信制御装置140は図12に示す機能構成を有するが、通信部131と組み合わせて、時刻マスタ異常判定部150、時刻マスタパラメータ保存部151、パラメータ保存部130、時刻マスタ代替部152のいずれか、または複数を、別の通信装置として構成してもよい。この場合、機能部間の関係や、要求、情報の通知は、ネットワーク142と、ネットワーク142上のパケットとなって実現される。例えば、時刻マスタ異常判定部150の判定結果は、所定のパケットフォーマットとなって、時刻マスタ代替部152となる通信装置に転送される。
上記したように構成し、例えば、時刻マスタ異常判定部150を複数配置することで、時刻マスタの異常検知率、精度を向上させたり、部分的な機能を専用の高性能装置、あるいは低性能装置に実装させたりすることができ、性能とコストの最適化を調整することができる。
また、複数階層のブロードキャストドメインで構成する場合も、ドメインをまたいで時刻マスタを代替することができる。この場合、各機能部を表す通信装置をドメインごとに管理する。
また、通信制御装置140は、通信装置141a(時刻マスタ)が配信していたAnnounceメッセージを、時刻マスタの代わりに送信してもよい。この場合、時刻マスタ異常判定部150が時刻マスタを正常と判定している間に、通信装置141aより配信されていたAnnounceメッセージを解析し、必要なパラメータをパラメータ保存部130に保存してもよい。
なお、通信制御装置140にGPS(Global Positioning System)を接続し、GPSの時刻を同期させる時刻の基準としてもよい。また、ネットワーク142は任意のトポロジの適用が可能であり、ライントポロジ、スタートポロジやリングトポロジでもよい。リングトポロジの場合は、IEC62439−3のHSR(High Availability Seamless Redundancy)の適用が例示される。
(2−5)本実施の形態の効果
以上のように、本実施の形態によれば、通信制御装置140を用いて、時刻マスタ機能を冗長化して、時刻同期機能を高信頼化することができる。さらに、時刻マスタの異常を検知して時刻マスタを代替することにより、過渡的な同期精度低下を防止することができる。さらに、動的に時刻マスタが変更する場であっても、時刻マスタ機能を冗長化することができ、通信制御装置140を多重化することにより、代替機能の信頼性を向上させることもできる。
(3)第3の実施の形態
本実施の形態では、時刻同期プロトコルIEEE1588のBoundary Clock(以下、BCと称して説明する)を用いて、IEEE1588のマスタ、スレーブが複数階層にまたがる場合について説明する。本実施の形態に使用する符号は、特に断りのない限り、上記した第1の実施の形態及び第2の実施の形態で説明した機能や要素等と同一であることを意味する。
(3−1)ハードウェア構成
(3−1−1)通信システムの構成
図18に、本実施の形態のBC180を用いたシステム構成を示す。図18では、通信装置141aがグランドマスタ(IEEE1588のマスタ、スレーブ階層の最上位のマスタ)であるとする。
BC180は、IEEE1588のBCの機能を有し、各通信ポートにBMCアルゴリズム、またはBMCアルゴリズム相当によって、IEEE1588のマスタ、スレーブ等の状態を決定し、時刻同期パケットを通信する。
ネットワーク中継装置181は、ネットワークスイッチ、ブリッジ、ルータ、IEEE1588のTC(Transparent Clock)、IEEE1588のBC、OpenFlowスイッチ等の各種ネットワーク中継装置である。なお、本実施の形態にかかるBC180を用いてもよい。
(3−1−2)Boundary Clockのハードウェア構成
次に、図19を参照して、BC180のハードウェア構成について説明する。図19に示すように、BC180は、CPU101、PHY104、メモリ108、不揮発性記憶媒体109、バス110及び経路制御IC190などから構成される。CPU101、PHY104、メモリ108、不揮発性記憶媒体109及びバス110は、第1の実施の形態と同様のため、詳細な説明は省略する。
経路制御IC190は、ネットワークパケットの転送、中継機能を有するとともに、IEEE1588のBC機能を備え、通信ポートごとの状態決定、時刻同期パケットの送受信、タイムスタンプの取得、設定などを実行する。また、PHY104の数は、BC180が備える通信ポートの数だけ必要である。
(3−2)Boundary Clockの機能構成
次に、図20を参照して、BC180の機能構成について説明する。図20に示すように、BC180は、パラメータ保存部130、通信部131、時刻マスタ異常判定部150、時刻マスタパラメータ動的抽出部151及び時刻マスタ代替部152などから構成される。
パラメータ保存部130及び通信部131は、第1の実施の形態と同様の機能を有するため、詳細な説明は省略する。なお、通信部131は、図19のPHY104の数と同数である。
BC180では、BMCまたはBMC相当のアルゴリズムにより、ある一つの通信ポートがスレーブとなり、他の通信ポートはマスタとなる。通信部131のうち、グランドマスタ通信装置141aと接続する通信部131がスレーブポートとなる。
時刻マスタパラメータ動的抽出部151は、該通信部131から受信するマスタのパケットから必要なパラメータを抽出して、パラメータ保存部130に依存する。
時刻マスタ異常判定部150が、通信装置141aを異常と判定した場合、BMCアルゴリズムの再実行により、グランドマスタが他の通信装置となって、過渡的な時刻精度の悪化が発生する可能性がある。そのような場合を防ぐため、時刻マスタ代替部152は、通信装置141aが正常である場合と同様のAnnounceパケットを生成し、通信部131から送信する。また、通信装置141aと同期していた自身の時刻をもとに各ポートのマスタ処理を継続する。
(3−3)本実施の形態の効果
以上のように、本実施の形態によれば、BC180を複数用いて、IEEE1588のネットワークを階層化した場合であっても、時刻マスタ機能を冗長化して、高信頼化することが可能となる。
120 制御用計算機
121 通信装置
123 通信制御装置
101 CPU
104 PHY
108 メモリ
109 不揮発性記憶媒体
110 バス
111 通信制御部
130 パラメータ保存部
131 通信部
132 時刻マスタ障害判定部
133 時刻配信パケット更新部

Claims (20)

  1. ネットワークを介して接続された1または2以上の通信装置と同期パケットを送受信して時刻同期する通信制御装置であって、
    第1の通信装置の第1の同期パケットを観測して得られたパラメータとして、前記第1の同期パケットのシーケンス番号を保存するパラメータ保存部と、
    前記第1の通信装置の異常が検知された場合に、前記パラメータとしての前記第1の同期パケットのシーケンス番号及び前記通信制御装置自身の時刻情報をもとに第2の同期パケットを生成するパケット生成部と、
    前記第2の同期パケットを前記第1の通信装置以外の通信装置に送信する通信部と
    を備えることを特徴とする、通信制御装置。
  2. 前記パケット生成部は、
    前記第1の通信装置の同期した時刻情報をもとに前記第2の同期パケットの時刻情報を生成する
    ことを特徴とする、請求項1に記載の通信制御装置。
  3. 前記第1の通信装置に障害が発生しているかを判定する障害判定部を備え、
    前記障害判定部は、
    前記第1の同期パケットに含まれる時刻情報が0である場合に、前記第1の通信装置に障害が発生していると判定し、前記第1の通信装置の異常を検知する
    ことを特徴とする、請求項1に記載の通信制御装置。
  4. 前記第1の通信装置に障害が発生しているかを判定する障害判定部を備え、
    前記障害判定部は、
    前記第1の通信装置が連続して受信する前記第1の同期パケットの受信間隔と、前記第1の同期パケットに含まれる時刻情報の間隔をもとに、前記第1の通信装置の異常を検知する
    ことを特徴とする、請求項1に記載の通信制御装置。
  5. 前記第1の通信装置に障害が発生しているかを判定する障害判定部を備え、
    前記障害判定部は、
    前記第1の通信装置が連続して受信する前記第1の同期パケットの受信間隔が、前記第1の同期パケットに含まれる時刻情報の間隔よりも所定の値大きい場合に、前記第1の通信装置の異常を検知する
    ことを特徴とする、請求項1に記載の通信制御装置。
  6. 前記第1の通信装置に障害が発生しているかを判定する障害判定部を備え、
    前記障害判定部は、
    前記第1の同期パケットに含まれる前記パラメータが、所定の期待値と異なる場合に、前記第1の通信装置の異常を検知する
    ことを特徴とする、請求項1に記載の通信制御装置。
  7. 前記第1の通信装置に障害が発生しているかを判定する障害判定部を備え、
    前記障害判定部は、
    前記第1の同期パケットを所定期間受信しなかった場合に、前記第1の通信装置の異常を検知する
    ことを特徴とする、請求項1に記載の通信制御装置。
  8. 前記第1の通信装置に障害が発生しているかを判定する障害判定部を備え、
    前記障害判定部は、
    前記通信部による前記第1の通信装置との通信結果に基づいて、の通信装置の異常を検知する
    ことを特徴とする、請求項1に記載の通信制御装置。
  9. 前記障害判定部は、
    前記通信部による前記第1の通信装置との通信結果により、前記第1の通信装置からの返信がない場合に、の通信装置の異常を検知する
    ことを特徴とする、請求項に記載の通信制御装置。
  10. 前記第1の通信装置に障害が発生しているかを判定する障害判定部を備え、
    前記障害判定部により前記第1の通信装置の異常が検知された場合に、
    前記通信部は、前記第1の同期パケットを送信不可とする
    ことを特徴とする、請求項1に記載の通信制御装置。
  11. 前記第1の通信装置に障害が発生しているかを判定する障害判定部を備え、
    前記障害判定部により異常が検知された前記第1の通信装置が正常状態となったと判定された場合に、
    前記通信部は、前記第2の同期パケットの送信を停止する
    ことを特徴とする、請求項1に記載の通信制御装置。
  12. 前記第1の通信装置に障害が発生しているかを判定する障害判定部を備え、
    前記障害判定部により前記第1の通信装置の異常が検知された場合に、
    前記通信部は、前記第1の通信装置に代わって前記第1の通信装置との通信遅延、時刻誤差を含む時刻の属性情報を送信する
    ことを特徴とする、請求項1に記載の通信制御装置。
  13. 前記通信部は、
    前記第2の同期パケットを所定の周期で送信する
    ことを特徴とする、請求項1に記載の通信制御装置。
  14. 前記パケット生成部は、
    前記通信制御装置が前記第2の同期パケットを生成したことを示す生成情報を前記第2の同期パケットに含める
    ことを特徴とする、請求項1に記載の通信制御装置。
  15. 前記パケット生成部は、
    前記第2の同期パケットに前記通信制御装置を識別する識別情報を前記第2の同期パケットに含める
    ことを特徴とする、請求項1に記載の通信制御装置。
  16. 前記通信制御装置は、他の複数の通信制御装置とネットワークを介して接続され、
    前記パケット生成部は、
    前記他の複数の通信制御装置のうちいずれかの通信制御装置が前記第1の同期パケットを生成した場合に、前記第2の同期パケットを生成しない
    ことを特徴とする、請求項1に記載の通信制御装置。
  17. 前記他の複数の通信制御装置に優先度が設定されている場合に、
    前記通信部は、前記設定された優先度が最も高い場合に、前記第2の同期パケットを送信する
    ことを特徴とする、請求項1に記載の通信制御装置。
  18. 前記通信部は、前記設定された優先度に基づいて、前記第2の同期パケットを時分割に送信する
    ことを特徴とする、請求項17に記載の通信制御装置。
  19. ネットワーク中継装置を備え、
    前記通信部は、前記ネットワーク中継装置を設定して、前記第1の同期パケットを通信不可とする
    ことを特徴とする、請求項1に記載の通信制御装置。
  20. 少なくとも2つの通信装置がネットワークを介して時刻同期する通信システムであって、
    一の通信装置の第1の同期パケットを観測して得られたパラメータとして、前記第1の同期パケットのシーケンス番号を保存し、
    前記一の通信装置の異常が検知された場合に、他の通信装置が、前記パラメータとしての前記第1の同期パケットのシーケンス番号及び前記他の通信装置の時刻情報をもとに第2の同期パケットを生成し、
    前記他の通信装置が前記第2の同期パケットを送信する
    ことを特徴とする、通信システム。
JP2013055383A 2013-03-18 2013-03-18 通信制御装置及び通信システム Active JP6045950B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013055383A JP6045950B2 (ja) 2013-03-18 2013-03-18 通信制御装置及び通信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013055383A JP6045950B2 (ja) 2013-03-18 2013-03-18 通信制御装置及び通信システム

Publications (2)

Publication Number Publication Date
JP2014183386A JP2014183386A (ja) 2014-09-29
JP6045950B2 true JP6045950B2 (ja) 2016-12-14

Family

ID=51701731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013055383A Active JP6045950B2 (ja) 2013-03-18 2013-03-18 通信制御装置及び通信システム

Country Status (1)

Country Link
JP (1) JP6045950B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11990990B2 (en) 2019-12-12 2024-05-21 Mitsubishi Electric Corporation Relay device and communication system

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016119616A (ja) * 2014-12-22 2016-06-30 富士電機株式会社 リング型ネットワークシステム、そのマスタノード
JP6728842B2 (ja) * 2016-03-24 2020-07-22 オムロン株式会社 光学計測装置
JP2019153941A (ja) * 2018-03-02 2019-09-12 株式会社日立製作所 通信制御装置及び通信制御システム
KR102182494B1 (ko) * 2020-06-22 2020-11-24 주식회사 플로소프트 노이즈 판별 기능을 가진 이더캣 네트워크 시스템 및 이더캣 네트워크 시스템의 노이즈 판별 방법
JPWO2023073970A1 (ja) * 2021-10-29 2023-05-04
WO2024150305A1 (ja) * 2023-01-11 2024-07-18 日本電信電話株式会社 無線通信システム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0630009A (ja) * 1992-07-06 1994-02-04 Toshiba Corp リング型lanにおけるマスタのバックアップ方式
JP5332421B2 (ja) * 2008-09-05 2013-11-06 横河電機株式会社 計測レコーダ・システム
JP5394283B2 (ja) * 2010-02-25 2014-01-22 株式会社日立産機システム 情報処理装置及び制御用ネットワークシステム
JP5649505B2 (ja) * 2011-04-19 2015-01-07 株式会社東芝 同期制御システム
CN102325019B (zh) * 2011-08-23 2014-10-15 西安电子科技大学 一种实时工业以太网EtherCAT冗余***的时钟同步方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11990990B2 (en) 2019-12-12 2024-05-21 Mitsubishi Electric Corporation Relay device and communication system

Also Published As

Publication number Publication date
JP2014183386A (ja) 2014-09-29

Similar Documents

Publication Publication Date Title
JP6045950B2 (ja) 通信制御装置及び通信システム
US11496235B2 (en) Symmetric path/link over LAG interface using LLDP for time synchronization between two nodes using PTP
JP5923430B2 (ja) 通信制御装置
US20130227008A1 (en) Clock synchronization based on predefined grandmaster
JP7423249B2 (ja) 制御装置及び分散制御システム
EP3163786B1 (en) Clock synchronization method and apparatus
JP5891086B2 (ja) 通信制御システム、通信制御装置、および被制御装置
JP5127482B2 (ja) タイミング同期方法、同期装置、同期システム及び同期プログラム
JP2013104772A (ja) フレーム伝送装置及び同期方法
JP5120097B2 (ja) 時間同期システムおよび時間同期装置
JP6709086B2 (ja) 通信制御装置、および、通信制御方法
JP2014127887A (ja) 通信制御装置
JP6231453B2 (ja) 通信制御装置
WO2016002367A1 (ja) 通信システム、通信方法、及び、通信プログラム
WO2019167415A1 (ja) 通信制御装置及び通信制御システム
EP2698949B1 (en) METHOD AND SYSTEM FOR SETTING DETECTION FRAME TIMEOUT DURATION OF ETHERNET NODEs
CN214627023U (zh) 一种兼容可定义确定性通信以太网的交换设备
EP4002779B1 (en) Method and apparatus for sharing information in redundant network, and computer storage medium
JP7330329B2 (ja) 通信制御装置及び通信制御システム
JP7451721B2 (ja) クロックポート属性回復方法、デバイス、およびシステム
JP6326474B2 (ja) 通信制御装置
JP2016165034A (ja) 同期ネットワークシステム、通信装置、同期方法、及び同期プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160523

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161101

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161116

R150 Certificate of patent or registration of utility model

Ref document number: 6045950

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150