JP5891086B2 - 通信制御システム、通信制御装置、および被制御装置 - Google Patents

通信制御システム、通信制御装置、および被制御装置 Download PDF

Info

Publication number
JP5891086B2
JP5891086B2 JP2012072803A JP2012072803A JP5891086B2 JP 5891086 B2 JP5891086 B2 JP 5891086B2 JP 2012072803 A JP2012072803 A JP 2012072803A JP 2012072803 A JP2012072803 A JP 2012072803A JP 5891086 B2 JP5891086 B2 JP 5891086B2
Authority
JP
Japan
Prior art keywords
communication
unit
communication path
packet
path
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
JP2012072803A
Other languages
English (en)
Other versions
JP2013207452A (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 Industrial Equipment Systems Co Ltd
Original Assignee
Hitachi Industrial Equipment Systems Co 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 Industrial Equipment Systems Co Ltd filed Critical Hitachi Industrial Equipment Systems Co Ltd
Priority to JP2012072803A priority Critical patent/JP5891086B2/ja
Publication of JP2013207452A publication Critical patent/JP2013207452A/ja
Application granted granted Critical
Publication of JP5891086B2 publication Critical patent/JP5891086B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、情報処理装置及び情報処理ハードウェア、情報処理ソフトウェアを用いた通信制御システム、通信制御装置、および被制御装置に関する。
制御システムとして、単一の制御用計算機が、ネットワークを介して単一または複数の制御対象を制御する構成がある。ある制御システムでは、単一の制御用計算機と複数の制御対象がリングトポロジを構成する。この場合、制御用計算機から送信された制御パケットは、制御対象を順番に伝送していく。制御パケットは複数の制御対象への制御指令を連結して構成される場合もある。また、ネットワークトポロジは、論理的なリングトポロジ(環型トポロジー)であればよい仕様もある。この場合、スタートポロジ(星型トポロジー)やバストポロジ(バス型トポロジー)であっても、制御パケットが順番に制御対象を伝送していけばよい。このようなリングトポロジで構成する制御システムには、EtherCATやSERCOS(SErial Realtime COmmunication System)等がある。
リアルタイムEthernetであるEtherCAT(登録商標:IEC61784パート2のCommunication Profile Family 12)では、制御用計算機であるマスタと制御対象に備え付けられるスレーブデバイス(以下、スレーブとする)でリングトポロジを構成する。
一般に、スレーブでは2つのEthernetポートを有し、これを接続していくことでリングトポロジを構成する。ただし、マスタは、Ethernetポートが1つであっても構わない。
この場合は、リングネットワーク上の終端のスレーブが内部でパケットを折り返すことで、最終的にマスタの1つのEthernetポートにパケットを戻す。したがって、例えば、見た目上はライントポロジを構成する場合であっても、パケットの通信経路に着目すれば、論理的なリングトポロジになっている。
このような制御システムは、制御処理を高信頼に実行するために追加の処置がなされることがある。特に異常発生時に制御処理が正しく実行されないことで多大な被害を及ぼす場合は、このような処置がなされる。単一の制御用計算機と複数の制御対象でリングトポロジを構成する場合は、そのような高信頼化の方法として通信経路の冗長化等の方法がある。通信経路の異常としては、通信ケーブルの断線や接触不良、コネクタ、ケーブルの脱離が例示される。
また、EtherCATにおけるマスタでは、マスタにEthernetの通信ポートを2つ持たせることで、リングトポロジへの接続を冗長化させる方式がとられる。物理的にEtherCATマスタに2つの通信ポートを持たせた場合、冗長化の方法として2つの通信ポートの両方から同一のパケットを送信する方法が考えられる(図1参照)。
これとは別の冗長化の方法で、片方の通信ポートからのみパケットを送信し、パケットを送信するポートから最も遠いスレーブ(つまり、もう片方のポートと隣接するスレーブ)の内部でパケットを折り返すように設定する方法も考えられる(図43参照)。
また、特許文献1では、マスタ内の経路を異常時と正常時で切り替えることによって、パケットが各スレーブを経過する順序を変化させることなく、固定遅延とする技術が開示されている。
特開2011−176718号公報
しかしながら、従来の汎用的な方法でEtherCATマスタを冗長化させた場合、各スレーブ間での時刻同期の問題が生じる。
まず、はじめにEtherCATのリングネットワークが切断された状態では、EtherCATの時刻同期機能が十分な性能で機能しない。
例えば図41に示した例では、EtherCATマスタにおいて、2つの通信ポートのそれぞれから時刻同期用のパケットを送信した場合、それぞれのパケットはリングネットワークを周回せず、送信した通信ポートとは別のもう一方の通信ポートで受信することとなる。したがって、時刻同期のための通信遅延の計算等ができない。
さらに、図42に示すようなスレーブBとスレーブC間の断線時には、ネットワークが二分され、全スレーブ間で時刻を同期することができない。図42では、ネットワークがスレーブA、Bと、スレーブC、Dに二分される。スレーブA、D間でパケットを転送しようとすることができるが、汎用のパソコンを用いる構成では、ソフトウェアを介して、もう片方の通信ポートからパケットを送信する必要がある。しかしながら、このソフトウェア処理はEtherCATスレーブのパケット転送処理に比較して、より長い遅延とジッタを生じる。したがって、全スレーブ間で時刻を同期することができない。
また、ソフトウェアによる冗長化処理の場合において、図44の例に示すように通信経路に異常が発生した場合に、マスタからアクセスできなくなるスレーブが発生するため、経路冗長化の効果が無効化する。
また、特許文献1に開示された技術においては、マスタ内の経路を異常時と正常時で切り替えることによって、パケットが各スレーブを経過する順序を変化させることなく、固定遅延としている。しかしながら、異常時においては、パケットが往路と復路で、各スレーブを経過しないため、後記する図8にしたがい式1〜式5で述べる方法によって、スレーブ間の通信遅延を求めることができない。
例えば、図20に示す断線の場合においては、スレーブBを経過したパケットは、通信経路の異常発生箇所があるため、マスタに戻り、スレーブCへと転送される。この時、スレーブB、C間の通信経路が変化しているため、新たにスレーブB、C間の通信遅延を算出する必要がある。しかしながら、スレーブCへと転送されたパケットは、その後、スレーブBへ戻ることなく、マスタで受信される。この場合、図8で示した方法にしたがって、式1〜式5に示す計算方法が利用できないため、個別に各通信経路上の通信遅延を求めて合計する必要がある。しかしながら、この方法にはいくつかの課題がある。一つ目は、計算そのものが困難であることである。例えば、マスタを経由する際の遅延(図20の遅延t3)は、求めること自体が難しい。二つ目の課題は、断線箇所によって計算する経路の数が変化することである。これは、通信遅延の計算を複雑化させ、結果として容易に求めることができない。
これらの課題により、通信経路での異常発生時に再び同期するまでの時間がかかれば、各スレーブ間の同期精度は時間経過とともに悪化する。場合によっては、システムが満足すべき許容値を下回る可能性がある。
以上をまとめると、汎用的なEtherCATマスタの冗長化構成や、ソフトウェアによる冗長化処理の方法、あるいは特許文献1に開示された技術においては、通信経路での異常発生時における時刻同期の同期精度の低下という信頼性に関わる課題がある。
本発明は前記課題に鑑みてなされたものであり、信頼性を向上した通信制御システムを提供することを目的とする。
前記の課題を解決して、本発明の目的を達成するために、以下のように構成した。
即ち、本発明の通信制御システムは、1つ又は複数の被制御装置と、ネットワークを介して前記被制御装置を制御する通信制御装置と、を備えて構成される通信制御システムであって、前記通信制御装置は、演算部と、パケットをネットワークに送信する送信部とネットワークからのパケットを受信する受信部とを有してなる第一の通信部および第二の通信部と、前記演算部と前記第一の通信部および第二の通信部との間に設けられ、通信経路を制御する冗長化通信制御部と、前記被制御装置を時刻同期する時刻同期部と、を具備し、前記冗長化通信制御部は、前記ネットワークの経路の状態を判定する通信経路状態判定部と、前記演算部と前記第一の通信部および第二の通信部との間の接続を切り替える冗長経路切替部と、パケット受信時刻を記憶する通信遅延記憶部と、を具備し、前記通信経路状態判定部は、前記ネットワークの通信経路の異常を判定する通信経路異常判定部と、前記ネットワークの通信経路の正常を判定する通信経路正常判定部と、を具備し、前記演算部は、制御対象への指令値を前記冗長化通信制御部へと送信し、前記制御対象への通信結果を前記冗長化通信制御部から受信し、通信部は、前記冗長化通信制御部から受信した通信内容を、前記ネットワークを介して、前記制御対象に送信し、前記制御対象から受信した結果を前記冗長化通信制御部に送信し、前記冗長経路切替部は、前記通信経路正常判定部が通信経路を正常と判定している場合には、前記演算部と前記第一の通信部とを接続すると共に、前記第二の通信部の受信部と送信部とを接続し、前記通信経路異常判定部が通信経路を異常と判定している場合には、前記演算部を前記第一の通信部の送信部と接続すると共に、前記演算部を前記第二の通信部の受信部とも接続し、かつ、前記第一の通信部の受信部と前記第二の通信部の送信部と、を接続し、前記通信遅延記憶部は、前記通信経路正常判定部が通信経路を正常と判定している場合に、前記第一の通信部の受信部でパケットを受信した第一の受信時刻と、前記第二の通信部の受信部でパケットを受信した第二の受信時刻と、を保持し、前記時刻同期部は、前記通信遅延記憶部が保持する第二の受信時刻と第一の受信時刻を用いて算出される遅延補正値を用いて制御対象を時刻同期する、ことを特徴とする。
また、その他の手段は、発明を実施するための形態のなかで説明する。
以上、本発明によれば、信頼性を向上した通信制御システムを提供することができる。
本発明の第1実施形態を適用した制御用計算機を用いて構成するシステムの一例を示す図である。 本発明の第1実施形態を適用した制御用計算機のハードウェア構成の一例を示す図である。 本発明の第1実施形態を適用した冗長化通信制御部の機能構成の一例を示す図である。 本発明の第1実施形態を適用した冗長経路切替部内部の通信経路の第1の接続形態を示す図である。 本発明の第1実施形態を適用した冗長経路切替部内部の通信経路の第2の接続形態を示す図である。 本発明の第1実施形態を適用した制御対象におけるハードウェア構成を示す図である。 本発明の第1実施形態を適用したスレーブICのハードウェア構成を示す図である。 本発明の第1実施形態を適用したEtherCATスレーブA、B、Cの各スレーブICにおいて、パケットの通信経路と各スレーブの各ポートでの受信時刻を示す図である。 本発明の第1実施形態を適用した冗長化通信制御部による動作手順の第1例を示すフローチャートである。 本発明の第1実施形態を適用した冗長化通信制御部による動作手順の第2例を示すフローチャートである。 本発明の第1実施形態を適用した通信経路において、通信経路異常が発生した状態を示す図である。 本発明の第1実施形態を適用した通信経路において、通信経路が正常となった状態を示す図である。 EtherCATのパケット構成の例を示す図である。 本発明の第1実施形態を適用した通信経路において、通信経路が正常な状態を示す図である。 本発明の第1実施形態を適用した通信経路に通信経路異常がある状態を示す図である。 本発明の第1実施形態において、全てのスレーブが処理すべきレジスタに対するBRDコマンドのワーキングカウンタの値を利用する方法を示すフローチャートである。 本発明の第1実施形態を適用したシステムにおいて、通信経路に異常が発生している状態を示す図である。 本発明の第1実施形態を適用したシステムにおいて、非ゼロの値が取得された通信ポートが接続する通信経路が異常であると判定する方法を示すフローチャートである。 本発明の第1実施形態を適用したシステムにおいて、主ポートと冗長ポートとがあって、通信経路異常が生じている状態を示す図である。 本発明の第1実施形態を適用したシステムにおいて、正常状態と異常状態とを示した状態遷移図である。 本発明の第1実施形態を適用した冗長経路切替部を介して主ポートの通信部と冗長ポートの通信部とによって、2つの制御対象に通信パケットを送っている状況を示す図である。 本発明の第1実施形態を適用した冗長経路切替部を介して主ポートの通信部と冗長ポートの通信部とによって、4つの制御対象に通信パケットを送っている通信経路に通信経路異常が発生した状況を示す図である。 本発明の第1実施形態を適用したシステムにおいて、時刻同期補正の手順を示すフローチャートである。 本発明の第1実施形態を適用した冗長経路切替部と主ポートと冗長ポートとスレーブA〜スレーブDからなる通信経路において、通信経路異常がない状況を示す図である。 本発明の第2実施形態を適用した制御対象の通信ハードウェア上のCPU上で動作する機能構成を示す図である。 本発明の第2実施形態を適用したシステムにおいて、時系列上の割込みと同期のタイミングを示すタイムチャートである。 本発明の第2実施形態を適用したシステムにおいて、時刻同期割込みとタイマによるタイマ割込みと時刻管理部の動作を示した第1例のフローチャートである。 本発明の第2実施形態を適用したシステムにおいて、時刻同期割込みとタイマによるタイマ割込みと時刻管理部の動作を示した第2例のフローチャートである。 本発明の第2実施形態を適用したシステムにおいて、時系列上の割込みと同期のタイミングを示すタイムチャートである。 本発明の第3実施形態を適用した制御用計算機のハードウェア構成を示す図である。 本発明の第3実施形態における制御用計算機のハードウェア構成の一例を示す図である。 本発明の第3実施形態における制御用計算機を用いたシステムの構成の一例を示す図である。 本発明の第3実施形態における物理的な通信部と機能的な通信部の対応付けの一例を示した図である。 本発明の第3実施形態における冗長経路切替部内部の通経路の接続の第1例を示した図である。 本発明の第3実施形態における冗長経路切替部内部の通経路の接続の第2例を示した図である。 本発明の第3実施形態における冗長経路切替部内部の通経路の接続の第3例を示した図である。 本発明の第3実施形態における冗長経路切替部内部の通経路の接続の第4例を示した図である。 本発明の第3実施形態における動作管理部が制御する冗長経路切替部内の接続状態の切り替えを示す状態遷移図である。 本発明の第4実施形態における通信経路において2箇所に経路異常が発生したときの状態を示す図である。 本発明の第5実施形態を適用した中継装置を用いて構成するシステムの例を示す図である。 本発明の第5実施形態を適用した中継装置のハードウェア構成の一例を示す図である。 本発明の第5実施形態を適用した冗長化通信制御部の機能構成を示すブロック図である。 EtherCATマスタにおいて、2つの通信ポートのそれぞれから時刻同期用のパケットを送信した場合のパケットの通信経路の一例を示した図である。 EtherCATマスタにおいて、2つの通信ポートのそれぞれから時刻同期用のパケットを送信した場合のパケットの通信経路に通信経路異常が発生している一例を示した図である。 EtherCATマスタにおいて、2つの通信ポートの一方からのみパケットを送信した場合のパケットの通信経路の一例を示した図である。 EtherCATマスタにおいて、2つの通信ポートの一方からのみパケットを送信した場合のパケットの通信経路に通信経路異常が発生している一例を示した図である。
以下、本発明の通信制御システムの実施の形態について説明する。
(第1実施形態)
本発明に係る通信制御システムの第1実施形態について図を参照して説明する。
<制御用計算機を用いて構成するシステム>
図1は、本発明の第1実施形態を適用した制御用計算機120を用いて構成するシステムの一例を示す図である。
制御用計算機120(通信制御装置)は、制御用ネットワーク122(ネットワーク)を介して複数の制御対象121(被制御装置)と接続し、制御する。
図1における制御対象121としては、例えば、サーボアンプとサーボモータによる構成がある。
また、制御用ネットワーク122の例としては、Ethernet(登録商標:IEEE802.3)が適用される。
また、制御用計算機120は、2つのEthernet通信ポートを有し、制御用ネットワーク122と接続する。
<制御用計算機のハードウェア構成>
図2は、本発明の第1実施形態を適用した制御用計算機120のハードウェア構成の一例を示す図である。
CPU(Central Processing Unit)101は、不揮発性記憶媒体109からプログラムを、バス110を介してメモリ108に転送して実行する。実行処理プログラムの例としては、オペレーティングシステム(以下、OSと称す)や、OS上で動作するアプリケーションプログラムがある。
冗長化通信制御部102は、CPU101上で動作するプログラムから通信要求を受け取り、PHY103を用いて制御用ネットワーク122に対して通信する。冗長化通信制御部102の実装例としては、FPGA(Field-Programmable Gate Array)、CPLD(Complex Programmable Logic Device)、ASIC(Application Specific Integrated Circuit)、ゲートアレイ(Gate Array)等のICがある。なお、冗長化通信制御部102は、CPU101に含まれていてもよい。
また、PHY103は、制御用ネットワーク122との通信機能を実装した送受信機ICである。PHY103の提供する通信規格の例として、EthernetのPHY(physical layer、物理層)チップがある。
なお、図2の構成では、PHY103と冗長化通信制御部102が接続しているので、EthernetのMAC(Media Access Control)層の処理は、冗長化通信制御部102に含まれる。
ただし、MAC機能を提供するICを冗長化通信制御部102とPHY103間に配置する構成や、MAC機能を提供するICとPHY103を組み合わせた通信用ICと冗長化通信制御部102を接続する構成においても、本発明の効果は失われるものではない。なお、PHY103は、冗長化通信制御部102に含まれていてもよい。
バス104は、Ethernetの冗長化通信制御部102とPHY103層を接続する通信規格であり、MII(Media Independent Interface)、GMII(Gigabit Media Independent Interface)、RMII(Reduced Gigabit Media Independent Interface)などが例示される。なお、PHY103を冗長化通信制御部102内に含む場合は、バス104は冗長化通信制御部102内に含まれる。
メモリ108は、CPU101が動作するための一時的な記憶領域であり、不揮発性記憶媒体109から転送したOS、アプリケーションプログラム等が格納される。
不揮発性記憶媒体109は、情報の記憶媒体で、OS、アプリケーション、デバイスドライバ等や、CPU101を動作させるためのプログラムの保存、プログラムの実行結果の保存に利用される。不揮発性記憶媒体109として、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)、フラッシュメモリが例示される。また、取り外しが容易な外部記憶媒体として、フロッピーディスク(FD)、CD、DVD、ブルーレイ(登録商標)、USBメモリ、コンパクトフラッシュ(登録商標)等の利用が例示される。
バス110は、CPU101、メモリ108、不揮発性記憶媒体109、冗長化通信制御部102をそれぞれ接続する。バス110としては、PCIバス(Peripheral Components Interconnect bus)、ISAバス(Industrial Standard Architecture bus)、PCI Expressバス、システムバス、メモリバス等が例示される。
<冗長化通信制御部の機能構成>
次に、冗長化通信制御部の各機能部を説明する。
図3は、本発明の第1実施形態を適用した冗長化通信制御部102の機能構成の一例を示す図である。
図3において、バス接続部130は、制御用計算機120(図2)のハードウェア構成においてバス110(図2)と接続する。バス接続部130は、バス110(図2)の通信仕様に応じてCPU101(図2)やメモリ108(図2)と通信する。また、冗長化通信制御部102(図3)内においては動作管理部138や冗長経路切替部131と接続し、冗長経路切替部131と通信パケットを送受信し、動作管理部138とは冗長化通信制御部102の制御情報、状態情報を通信する。
冗長経路切替部131は、パケットの通信経路を切り替えることのできる機能部であり、通信パケットの通信経路としてパケット生成部139、パケットフィルタ部140、通信部135a、135bと接続している。また、冗長経路切替部131の経路を切り替え、状態情報を取得するため、動作管理部138と接続している。
冗長経路切替部131内部の通信経路の接続について、図4、図5を参照して先に説明する。図3の他の回路は、冗長経路切替部131内部について記した後に、説明する。
冗長経路切替部131内部の通信経路の接続を図4、図5に示す。
図4は、冗長経路切替部131内部の通信経路の第1の接続形態を示す図である。
図5は、冗長経路切替部131内部の通信経路の第2の接続形態を示す図である。
冗長経路切替部131は、動作管理部138からの指令によって、図4、図5に示す通信経路の接続形態をとる。なお、受信ポートのRX184と送信ポートのTX185の組み合わせが主ポートであり、受信ポートのRX182と送信ポートのTX183の組み合わせが冗長ポートである。
図4、図5において、Rx180は、パケットフィルタ部140(図3)、Tx181はパケット生成部139(図3)と接続している。
CPU101上で動作するアプリケーションから送信されるパケットデータはTx181を介して、冗長経路切替部131に送信される。一方、ネットワークから冗長経路切替部131が受信したパケットデータはRx180を介して、CPU101上で動作するアプリケーションやメモリ108に転送される。
Rx184は、通信部135aの受信部137aと、Tx185は、通信部135aの送信部136aと接続している。Rx182は、通信部135bの受信部137bと、Tx183は、通信部135bの送信部136bと接続している。
再び、図3の構成について説明する。
通信経路状態判定部132は、通信経路異常判定部133と通信経路正常判定部134とを備えて構成され、後記するパケットフィルタ部140から受信する内容を元に通信経路の状態を判定する。
それによって、制御用ネットワーク122が途中で切断されている等の異常や、正常に通信しているか等を判定し、その判定結果を動作管理部138に通知する。また、通信経路の状態を判定するために、受信部137a、137bからの受信経路と接続し、通信パケットを監視する。
通信経路異常判定部133は、制御用ネットワーク122が途中で切断されているなどの異常の発生を判定する。
通信経路正常判定部134は、制御用ネットワーク122が正常に通信しているかを判定する。
通信部135(135a、135b)は、制御用ネットワーク122に接続し、制御用ネットワーク122の通信プロトコルにしたがって通信をするための機能部である。
前記した図2の構成では、PHY103が冗長化通信制御部102外にあるため、通信部135はMAC層の処理部に該当する。ただし、冗長化通信制御部102をMAC層、PHY層を含めたEthernet通信デバイスと接続する場合はMAC層との接続インターフェース部となり、また、PHY機能まで含めて冗長化通信制御部102に包含してもよい。
図3において、通信部135a(第一の通信部)は、送信部136aと受信部137aとを備えている。また、通信部135aは、パケット生成部139から伝送されたパケットを送信する通信ポートであり、図4、図5のTx185、Rx184と接続している。
通信部135b(第二の通信部)は、送信部136bと受信部137bとを備えている。また、通信部135bは、リングネットワークを構成する終端のEtherCATスレーブからのパケットを受信して、折り返す通信ポートである。
説明の便宜上、通信部135aと通信部135bとを区別しているが、2つのPHY103のどちらから優先的にパケットを送信するかにおいて制約はない。以降では、パケットを最初に送信する通信部135aを主ポートとし、冗長用の通信部135bを冗長ポートとして説明する。
送信部136(136a、136b)は、通信部135(135a、135b)における送信機能部であり、制御用計算機120から制御用ネットワーク122に対してパケットを送信する。
受信部137(137a、137b)は、通信部135(135a、135b)における受信機能部であり、制御用ネットワーク122(図2)から送信されたパケットを受信する。
図3において、動作管理部138は、冗長化通信制御部102の動作の制御や、状態をバス110(図2)に提示し、冗長経路切替部131の機能を制御するための機能部である。具体例として、機能レジスタが挙げられる。
CPU101(図2)上で動作するプログラムは、バス110を介して動作管理部138の機能レジスタにアクセスすることにより、冗長化通信制御部102の動作の制御、状態の取得を実行する。
動作管理部138で設定可能な項目として、2つの通信ポートのどちらからパケットを送信するか、システムの想定するスレーブ数、通信経路の状態判定基準、冗長経路切替部131の経路切替等が挙げられる。また、取得可能な情報として、ネットワークに接続しているスレーブ数、異常の有無が発生していると考えられる通信経路の場所に関する情報等が考えられる。
パケット生成部139は、通信経路状態判定部132の要求に応じて、バス接続部130から送信されるパケット内容の変更や、新規パケットの送信をする。
通信経路状態判定部132からは、通信経路の状態を判定するためにこれらの要求がなされる。ただし、特にパケットを修正、追加しない場合は、バス接続部130から受信したデータをそのまま送信する。なお、バス接続部130から直接パケットを131へ送信する場合は、バス接続部130とパケット生成部139の送信データ信号のどちらかを選択的に冗長経路切替部131へ送信する構成としてもよい。
パケットフィルタ部140は、予め指定された条件に一致するEtherCATテレグラム175(図12等参照)を通信経路状態判定部132へ通知する。
通信遅延記憶部141は、通信遅延に異常が発生して、変更された通信経路にかかわる情報を記憶する。それは、通信遅延そのものであってもよいし、変更後の通信遅延を算出可能な値であってもよい。また、変更前の正常時の通信遅延を記憶していてもよい。
計時部142は、所定の事象の発生時を計時する機能部である。実装として、タイマと、少なくとも所定事象を受けた時点のタイマ値の記憶手段から構成される。
<制御対象のハードウェア構成>
次に、図6を参照して、制御対象121(図1)のハードウェア構成(通信ハードウェア150、図6)について説明する。
本発明の第1実施形態の特徴である通信経路の時刻同期の確保においては、制御対象121の動作が関係する。IEC61158、IEC61784パート2のCommunication Profile Family 12で定義されるEtherCAT仕様に準拠した制御対象121を例に説明する。ただし、本発明の効果はEtherCAT仕様に限定されない。
図6は、制御対象121におけるハードウェア構成(通信ハードウェア150)を示す図である。
図6において、通信ハードウェア150は、CPU101と不揮発性記憶媒体109とスレーブIC151と2つの送受信機ICであるPHY103を備えて構成されている。
CPU101は、バス163を介してスレーブIC151を制御する。
スレーブIC151は、主ポートと冗長ポートの役目をする2つのPHY103によって通信を行う。また、スレーブIC151は、通信に必要な情報の記憶と参照において不揮発性記憶媒体109を用いる。
通信ハードウェア150は、制御対象121における通信機能を実現する。実際の構成では、CPU101に周辺デバイスが接続し、センサやアクチュエータを制御するが、本実施形態の効果に関しての説明であるため、図6には図示していない。
スレーブIC151は、IEC61158、IEC61784パート2のCommunication Profile Family 12で定義されるEtherCAT仕様に準拠したスレーブ専用のICである。
<スレーブICの構成>
次に、スレーブIC151の構成について説明する。スレーブIC151は、EtherCAT Processor Unit160(図7参照)を備えており、EtherCAT仕様に準拠して、通信処理を実行するICである。
EPU(EtherCAT Processor Unit)160は、所定の事象に関連して、計時する機能を有する。具体的には、所定のアドレスにアクセスするコマンドを受信した場合に、各通信ポートで受信した時刻を計時し、レジスタとして公開する(図8参照)。なお、図8と時刻の計時の詳細については、後記する。
制御用計算機120(図1)は、該レジスタにアクセスして、これらの時刻を取得可能である。
《スレーブICのハードウェア構成》
図7は、スレーブIC151のハードウェア構成を示す図である。
図7において、通信ポート(0〜3)と自動転送部161とループバック機能部162との組み合わせによる通信ポート機能構成部が4組ある。
また、EPU160が、通信ポート0に係るループバック機能部162と、通信ポート1に係るループバック機能部162との間に、接続されている。
また、バス163が、EPU160からスレーブIC151の外部と接続されている。バス163の詳細は後記する。
自動転送部161は、受信したパケットを隣接する通信ポートへ、転送する機能部である。転送方向は、スレーブIC151内で一定になっており、通信ポート0、3、1、2、0の順である。
《スレーブICの機能》
ループバック機能部162は、EPU160からの設定とループバック機能部162が接続する通信経路の接続状態によって、通信ポートへ通信パケットを送信するか、あるいは隣接するループバック機能部162へ通信パケットを転送する機能部である。
ループバック機能部162は、制御用計算機120から送信される通信内容にしたがって、EPU160によって設定される。
その設定内容の例として、常に通信ポートへ通信パケットを送信するOpenモードがある。
また、常に隣接するループバック機能部162へ通信パケットを転送するCloseモードがある。
また、接続している通信ポートの設定状態によって通信パケットの送信経路を切り替えるAutoモードがある。
また、接続している通信ポートの設定状態によって通信パケットの送信経路を切り替えるが、隣接する制御対象121、あるいは制御用計算機120と通信経路を再度確立する場合は明示的にEtherCATマスタから指定する必要のあるAuto Closeモードがある。
Autoモードでは、通信ポートを介して隣接する制御用計算機120へパケットを送信する。あるいは制御対象121と通信が確立している場合は、ループバック機能部162は、通信ポートへパケットを送信する。
あるいは、通信経路が接続していないか、通信経路中に異常、故障があり、隣接する制御用計算機120、あるいは制御対象121と通信経路が確立していない場合は、ループバック機能部162は、隣接するループバック機能部162へ通信パケットを転送する。
なお、EtherCAT仕様に限定せずに、制御対象121は通信経路の異常に対して、パケットを制御用計算機120へ折り返す機能を有していれば、本発明の効果は失われない。すなわち、CPU101が通信経路の異常を検知して、パケットを折り返す方法や、マスタが制御対象121に対して、パケットを折り返すように設定してもよい。
バス163は、EPU160とCPU101、あるいはEPU160と周辺デバイスを接続する。そして、CPU101、あるいは周辺デバイスへのEtherCATに関する情報の通知、あるいはCPU101からEPU160を設定するため、あるいは周辺デバイスの情報をEPU160に通知するために用いられる。
また、バス163上に割込み信号をもうけてもよい。割込みを通知する方向は、EPU160から対向装置でも構わないし、対向装置からEPU160でもよい。
各通信ポートは、隣接するスレーブとEtherCATで定義される物理仕様(Ethernet、あるいはEBUS等)で接続する。
また、制御対象121における通信経路の異常の判定方法は、IEEE802.3で規定されるMDI(Management Data Interface)におけるPHY ICの状態レジスタのリンクステータスを用いる方法や、PHY ICで一般的に用いられるLED点灯用の出力信号を、CPU101や、別途もうけるFPGA、CPLD等(図示なし)で用いる方法が例示される。
また、制御用計算機120における通信経路の異常の判定方法は、パケットを送信してから、受信する前に所定期間が経過したかどうかや、応答パケットがないこと、あるいは各制御対象121が所定規則にしたがって操作(加減乗除など)するパラメータをパケット上に設け、応答パケットの該値を評価する方法(後述するワーキングカウンタを用いる方法等)が例示される。
なお、通信経路の異常の判定方法の詳細については、後記する。
[スレーブの時刻同期機能について]
図7に示したスレーブIC151の時刻同期機能について説明するに先立って、まず、EtherCATの時刻同期機能の概略について説明する。そして、その後に、スレーブIC151の時刻同期機能について説明する。
<EtherCATの時刻同期機能の概略>
図1に示したマスタの有する2つのポートを利用した冗長化構成におけるEtherCATの時刻同期機能の概略について説明する。
EtherCATの時刻同期機能は、スレーブ間の通信遅延計測、各スレーブの時計のオフセット補償、各スレーブが有する時計の進み具合のドリフト補償という3段階で構成されている。
このうち、各スレーブ間の通信遅延計測は、図8に示すアルゴリズムを基本としている。
図8は、EtherCATスレーブA、B、Cの各スレーブIC151(151a〜151c)において、パケットの通信経路と各スレーブの各ポートでの受信時刻を示す図である。
図8において、EPU(EtherCAT Processor Unit)160は、EtherCAT仕様に準拠して、通信処理を実行するICである。なお、EPU160は、スレーブIC151の中に備えられている。
また、Ta、Tb、Tc、Td、Teは、時刻同期用の所定のパケット(時刻同期用パケットとする)の各ポートにおける受信時刻である。
また、TAP、TBP、TCPは、各スレーブA、B、CのEPU160における受信時刻である。
また、tdiffはスレーブ間の通信遅延である。
なお、図8においては、tdiffAB、tdiffBC、tdiffCB、tdiffBAなどと表記し、後記する数式の式1〜式4、式6、式8〜式14においては、tdiffAB、tdiffBC、tdiffCB、tdiffBAなどと表記する。
また、tpは、EPU160の処理時間である。
<通信遅延について>
図8で、スレーブAに着目すれば、Ta、Teは同じスレーブIC151a上のクロックで計測しているが、スレーブIC151bとは、クロックのオフセットやドリフトが異なるため、Tb、Tdとそのまま比較することはできない。
ここで、図8のTa〜Teが計測可能で、tpが既知であるとする。スレーブCとスレーブB間の通信遅延tdiffBCは、次式で算出できる。
diffBC=(Td−Tb)÷2 ・・・(式1)
ただし、tdiffBCとtdiffCBは等しいとする。なお、EtherCATスレーブのプロセッサユニットは、同種のものを利用していると仮定している。もし、プロセッサユニットが異なる場合は、tpの違いを考慮する必要がある。
また、スレーブBとスレーブA間の通信遅延tdiffABは、次式で求められる。
diffAB={(Te−Ta)−(Td−Tb)−tp} ÷ 2+tp ・・・(式2)
diffBA=tdiffAB−tp ・・・(式3)
なお、時刻同期機能に対応していないEtherCATスレーブは、単なる通信経路と見なされる。言い換えれば、固定の通信遅延でパケットを転送する必要がある。
このように時刻同期機能を実現する場合には、時刻同期用のパケットをリングネットワークで周回させる必要がある。言い換えると、あるスレーブにおいて往路と復路におけるパケットの受信時刻をもとに通信遅延を計算する。
式1〜式3に示すように、スレーブ間の通信遅延を求めた後、これらの通信遅延を積算して、各スレーブと基準時刻を有するスレーブ間の通信遅延を求めることができる。
例えば、図8でスレーブAを基準とする場合、スレーブAとスレーブB間の通信遅延は、tdiffABとなり、スレーブAとスレーブC間の通信遅延tdiffACは、次式となる。
diffAC= tdiffAB +tdiffBC ・・・(式4)
これらの通信遅延を用いて、マスタは基準時刻となるスレーブAのTAPを、その他のスレーブに通知する。各スレーブは、各スレーブ自身のEPU160の受信時刻を用いて、基準時刻となるスレーブAとの時刻のオフセットを計算することができる。
例えば、スレーブBにおけるスレーブAとの時刻のオフセットOffsetB(数式ではOffsetBと表記)は、次式で求められる。
OffsetB = TAP − TBP ・・・(式5)
各スレーブは、スレーブAとの通信遅延と、時刻のオフセットを用いて、基準時刻と同期することができる。
EtherCATにおいては、時刻同期に対応したスレーブの中で、マスタに最も近い(ホップ数の小さい)スレーブの時刻を基準時刻とする。
<スレーブの時刻同期機能>
次に、図1における制御対象121(スレーブ)における時刻同期機能について説明する。
制御対象121は、基準時刻に同期するための機能を備える。例えば、制御対象121自身の管理する時刻(以下、ローカルクロックとする)と、基準時刻の差(以下、時刻オフセットとする)を保持し、ローカルクロックを基準時刻に同期する。
あるいは、基準時刻を有する制御対象121(制御用計算機120でもよい)と制御対象121間の通信遅延を、時刻オフセットと別に管理し、時刻オフセットとあわせて、ローカルクロックを基準時刻に同期してもよい。
図8を例に、これら時刻同期機能の動作を説明する。スレーブAのローカルクロックを基準時刻とし、スレーブBが同期する場合を説明する。スレーブBにおける時刻オフセットOffsetBは前記した式5によって求める。
スレーブBとスレーブA間の通信遅延tdiffABと、時刻オフセットOffsetBを用いて、スレーブBのローカルクロックCBは次式のように基準時刻CAに同期させる。
CA = CB + OffsetB − tdiffAB ・・・(式6)
なお、時刻オフセットや、通信遅延は複数回求めて最小値あるいは最大値を用いてもよいし、平均値や統計処理を施した数値を用いてもよい。
また、基準時刻の計算においても式6による推定だけでなく、定期的に基準時刻を取得し、基準時刻を所定の数学モデルで近似する方法が例示される。
<EtherCATスレーブのタイムスタンプ>
EtherCATにおいては、スレーブ間の通信遅延を計算するために図8で説明した機能を有している。
すなわち、所定の通信パケットの受信にともなって、各通信ポートでの受信時刻(Ta、Tb、Tc、Td、Te)やEPU160での受信時刻(TAP、TBP、TCP)を計時(タイムスタンプ)する機能を備える。
なお、スレーブ間の通信遅延を求めることができれば、制御対象121が備えなければならない機能は、上記の計時機能に限定されない。例えば、NTP(Network Time Protocol)やIEEE1588のバウンダリクロック機能や、end-to-end TC(Transparent Clock)、peer-to-peer TC(Transparent Clock)、あるいはそれらに類する機能を用いることが例示される。
<冗長化通信制御部による動作手順・動的シーケンス>
次に、冗長化通信制御部102(図3)による動作手順を示す。
図9は、本発明の第1実施形態を適用した冗長化通信制御部102による動作手順の例(第1例)を示すフローチャートである。
《S001》
はじめに、冗長経路切替部131の内部状態を図4に示す正常モードに設定する(ステップS001)。そして、ステップS002に進む。
《S002》
次に、EtherCATの正規の手順にしたがい、アプリケーションに応じたリアルタイム通信を実行する(ステップS002)。そして、ステップS003に進む。
《S003》
ステップS003において、冗長化通信制御部102は、パケットを受信するまで待機する。パケットを受信しなければ(N:S003)、ステップS003の先頭に戻り、引き続きパケットを受信するまで待機する。
また、パケットを受信すれば(Y:S003)、ステップS004に進む。
《S004》
ステップS004において、パケットの受信が、主ポートによる受信か否かを判定する。主ポートの受信であれば(Y:S004)、ステップS005に進む。
また、主ポートの受信でなければ(N:S004)、ステップS010に進む。
《S005》
ステップS005において、通信経路に異常が発生しているかを判定する。異常が発生していれば(Y:S005)、ステップS006に進む。
また、異常が発生していなければ(N:S005)、ステップS008に進む。
《S006》
異常が発生しているので、冗長ポートへパケットを転送し、冗長ポートから送信する。
そして、ステップS007に進む。
《S007》
次に、ステップS007において、後述する時刻同期補正処理(時刻補正処理)を実行する。そして、終了する。
《S008》
ステップS008では、ステップS005において、異常が発生していないとの判定を受けて、主ポートでのパケット受信時刻tbを計時し、通信遅延記憶部141に記録する。そして、ステップS009に進む。
《S009》
ステップS009では、パケットを制御用計算機120内部に取り込む。そして、終了する。
《S010》
ステップS010では、ステップS004において、主ポートでのパケットの受信でなかったのを受けて、異常が発生しているかを判定する。
異常が発生していれば(Y:S010)、ステップS009に進む。また、異常が発生していなければ(N:S005)、ステップS011に進む。
《S011》
ステップS011では、冗長ポートでのパケット受信時刻taを計時し、通信遅延記憶部141に記録する。そして、ステップS012に進む。
《S012》
ステップS012では、冗長ポートからパケットを送信する。そして、終了する。
以上が、冗長化通信制御部102による動作手順のフローチャートである。
<冗長化通信制御部102による動作手順の第2例>
次に、冗長化通信制御部102の動作手順の別の例(第2例)を示す。
図10は、冗長化通信制御部102の動作手順の第2例を示すフローチャートである。
前記した図9との違いを図10の点線部に示す。異なる箇所はステップのS020〜S024である。
図10と図9との違いであるステップのS020〜S024は、図10において、冗長ポートへ転送したパケットを識別可能とし、パケットがネットワーク中にある状態での通信経路の変化に対応可能としていることに関連している。
次に、前記の図10と図9との違いであるステップのS020〜S024について順に説明する。
《S020》
図9、図10におけるステップS004において、パケットを主ポートで受信した場合(Y:S004)であって、ステップS020で、冗長ポートへ転送したパケットか否かを判定する。
冗長ポートへ転送したパケットである場合(Y:S020)、ステップS021に進む。また、冗長ポートへ転送したパケットでない場合(N:S020)、ステップS005に進む。
《S021》
ステップS021において、冗長ポートへ転送したパケットについて、対応処理を実行する(S021)。
なお、この冗長ポートへ転送したパケットが発生する状態については、後記する。
《S022》
ステップS022において、冗長ポートへ転送したパケットを識別可能な状態とする。
これは、図9、図10のステップS005において、冗長ポートへの転送ではない、転送パケットの場合であるので、異常は発生している。したがって、パケットの識別が必要となる。
パケットを識別する方法としては、パケットへ所定の処理を加えることや、冗長化通信制御部102でパケットを識別するための情報を記憶する方法が例示される。
パケットへ加える処理としては、所定の位置を所定値にすることや、シーケンス番号を設定する方法、特定のパラメータを設定する方法が例示される。
なお、EtherCATで例示するため、EtherCATのパケット構成の詳細については、後記する。
また、冗長化通信制御部102でパケットを識別するためにパケットへ加える処理の詳細については後記する。
《S023》
ステップS023で、冗長ポートへの転送パケットか否かを判定する。
冗長ポートへ転送したパケットである場合(Y:S023)、ステップS009に進む。また、冗長ポートへ転送したパケットでない場合(N:S023)、ステップS010に進む。
《S024》
ステップS024では、図10のステップS010において、異常が発生しているとの判定を受けて、その対応処理を実行する。そして、終了する。
なお、冗長ポートへ転送したパケットが発生する状態についての詳細については、後記する。
<フローチャートおいて省略した項目の詳細な説明>
以上のフローチャートで詳細な説明を省略したステップのS021、S022、S023において省略した項目について順に詳しく説明する。
《冗長ポートへ転送したパケットが発生する状態・S021》
ステップS021における冗長ポートへ転送したパケットが発生する状態について、説明する。
冗長ポートへ転送したパケットの処理方法について述べる前に、このパケットが発生する状態について図11A、図11Bを用いて説明する。
図11Aは、冗長経路切替部131を介して主ポートと冗長ポートの通信部によって、4つの制御対象121であるスレーブA〜スレーブDに通信パケットを送っているが、通信経路異常122Xが発生した状態を示す図である。
また、図11Bは、冗長経路切替部131を介して主ポートと冗長ポートの通信部によって、4つの制御対象121であるスレーブA〜スレーブDに通信パケットを送っていて、通信経路が正常な状態を示す図である。
図11Bに示すように、通信経路が正常な状態では、マスタの主ポートからスレーブA、スレーブB、スレーブC、スレーブDの順に通信パケットが伝送される。この伝送にはLAN(Local Area Network)ケーブルが用いられている。1本のLANケーブルの中には送信方向と受信方向の2本の通信線がある。したがって、主ポート135aの送信部136aから送信方向の通信線を辿って、スレーブA、スレーブB、スレーブC、スレーブDの順に通信パケットが伝達され、マスタの冗長ポート135bの受信部137bに入力する。そして、冗長ポート135bで折り返して、送信部136bから再び通信パケットがスレーブD、スレーブC、スレーブB、スレーブAの順に伝送され主ポート135aの受信部137aに到達して冗長経路切替部131に送られている。
次に、図11Aに示すように、通信経路異常122Xが発生したときの状態について説明する。この通信経路異常122Xが発生すると、スレーブBとスレーブCの間は伝送できなくなる。なお、この間はLANケーブルが1本なので、図11Aにおいて、スレーブBとスレーブC間の伝送線を1本の線で表記している。
スレーブBに備えられたEPU(EtherCAT Processor Unit)160は、通信経路異常122Xを検知して、スレーブBで通信パケットを折り返し、再びスレーブAへ転送し、マスタの主ポート135aの受信部137aに入力する。
マスタはスレーブのEPU160の情報から通信経路異常122Xの発生を検知して、冗長経路切替部131の接続経路を図11Aに示すように切替える。
この切替えにより、冗長ポートの送信部136bからスレーブDへ通信パケットが伝送され、さらにスレーブCに伝送される。スレーブCのEPU160は、通信経路異常122Xを検知して、スレーブCで通信パケットを折り返し、再びスレーブDへ転送する。さらにスレーブDは、マスタの冗長ポート135bの受信部137bに通信パケットを伝送する。
以上の経路を辿ることにより、冗長ポートへ転送したパケットが発生する。
なお、図11Aと図11Bの冗長経路切替部131の切替え状態は、それぞれ図5、図4に対応している。
また、この冗長ポートへ転送したパケットの受信に対する処理方法としてはパケットを破棄してもよいし、未アクセスのスレーブ(例えば図11A、図11BのスレーブC、D)に再度パケットを送信してもよい。あるいは、通信経路が正常になったと判断し、冗長経路切替部131を図4に示す正常モードとしてもよい。
《EtherCATのパケット構成・S022》
ステップS022において、詳細な説明を省略したが、次にパケットの構成について、説明する。また、ワーキングカウンタであるWKC178についても説明する。
EtherCATで例示するため、EtherCATのパケット構成の例を次に示す。
図12は、EtherCATのパケット構成の例を示す図である。
図12に示すように、EtherCATの通信内容は、Ethernetフレーム(170)のデータ領域(172)に格納される。
EtherCATにおける、Ethernetヘッダ171のTypeフィールドは0x88A4である。データが正しいかどうかをFCS(Frame Check Sequence)173を用いて検査する。
EtherCATのデータ構造は、EtherCATヘッダ174と、ひとつ、または複数のEtherCATテレグラム175で構成され、EtherCATテレグラム175は、テレグラムヘッダ176、データ177、ワーキングカウンタ178(WKC)から構成される。
ワーキングカウンタ178は、そのテレグラムを処理すべきスレーブで正しく処理されるたびに、スレーブによって所定の数だけカウントアップされるフィールドである。
コマンド220は、EtherCAT仕様におけるコマンドを示す。識別子221は、データグラムの識別子である。アドレス222は、EtherCAT仕様におけるアドレスである。データサイズ223は、データ177のサイズである。予約224は、所定動作の予約である。C225は、フレームが巡回していることを示す。M226は、後続のテレグラムが存在することを示す。IRQ227は、スレーブからの所定事象の発生を制御用計算機120に通知するために用いられる。
《冗長ポートへ転送したパケットが発生する状態・S023》
ステップS023において、詳細な説明を省略したが、次にパケットが発生する状態につい、説明する。
S023の対応処理方法を述べるために、冗長ポートへ転送したパケットが発生する状態について図13A、図13Bを用いて説明する。
図13Aは、冗長経路切替部131を介して主ポートと冗長ポートの通信部によって、4つの制御対象121であるスレーブA〜スレーブDに通信パケットを送っていて、通信経路が正常な状態を示す図である。
また、図13Bは、冗長経路切替部131を介して主ポートと冗長ポートの通信部によって、4つの制御対象121であるスレーブA〜スレーブDに通信パケットを送っているが、通信経路異常122Xがある状態を示す図である。
なお、図13A、図13Bは、それぞれ図11B、図11Aに対応しているので、重複する説明は省略する。
したがって、冗長ポートへ転送したパケット受信に対する処理方法としては、パケットを破棄してもよいし、複数のパケットを受信したスレーブ(例えば、図13A、図13BのC、D)に再アクセスし、異常がないかを確認してもよい。あるいは、通信経路が異常になったと判断し、冗長経路切替部131を図5に示す異常モードとしてもよい。
<通信経路異常の発生箇所の特定方法>
S021、S024で未アクセスのスレーブ、あるいは複数回パケットを受信したスレーブを特定するために、通信経路の異常の発生箇所を特定する必要がある。
通信経路の異常の発生箇所の特定方法を図14、図16に示す。
また、図15は、第1実施形態を適用したシステムにおいて、通信経路に異常が発生している状態を示す図である。図15を参照して、図14のフローチャートを説明するので、先に図15について説明する。
図15において、制御用計算機(マスタ)120は、制御用ネットワーク122を介して5つの制御対象(スレーブ)121a〜121eと接続して制御をするが、通信経路異常122Xが発生している。なお、nは制御対象の個数(n=1〜5)を表し、アドレスは各制御対象121a〜121eを特定するために割り当てられた番地を表している。
通信経路が正常である場合には、各制御対象121a〜121eはすべての異なるアドレスが割り当てられており、通信パケットのアドレスのカウンタが0のときにスレーブは自分宛であると認識する。そして隣のスレーブに渡すときは、+1を足す。この仕組みによって、異なるアドレスが割り当てられた各スレーブは、自分宛の通信パケットを認識する。
ただし、図15においては、通信経路異常122Xが発生しているので、制御対象121a〜121cのアドレスは、それぞれ0、−1、−2が割り当てられ、また、制御対象121d〜121eのアドレスは、それぞれ0、−1が割り当てられている。なお、正常な場合に割り当てられる制御対象121d〜121eのアドレスはそれぞれ−3、−4である。
ただし、図14のフローチャートにおいては、nの値をアドレスと見立ててワーキングカウンタの値を参照する方式を説明する。
次に、図15を参照して、図14に示す通信経路異常の発生箇所の特定方法の第1例を説明する。
《通信経路異常の発生箇所の特定方法・第1例》
図14に通信経路異常の発生箇所の特定方法の第1例を示す。
図14は、全てのスレーブが処理すべきレジスタに対するBRD(Broadcast Read)コマンドのワーキングカウンタの値を利用する方法を示すフローチャートである。
《S050》
はじめに、ステップS050において、全スレーブが処理すべきレジスタ(例えば、TYPEレジスタ)に対するBRDコマンドを送信する。そして、ステップS051に進む。
《S051》
ステップS051において、このコマンドを含んだテレグラムを受信し、そのワーキングカウンタ(WKCを読む)の値をみる。
例えば、図15の場合、制御対象121a〜121cのn=1、2、3を経由したEtherCATテレグラムのワーキングカウンタは3となり、スレーブ121cと121d間の通信経路で異常(122X)が起きていると判定する。
《通信経路異常の発生箇所の特定方法・第2例》
図16に通信経路異常の発生箇所の特定方法の第2例を示す。
図16は、非ゼロの値が取得された通信ポートが接続する通信経路が異常であると判定する方法を示すフローチャートである。
《S060》
まず、ステップS060で、各スレーブの各通信ポートのロストリンクカウンタレジスタ(図示せず)を読む。そして、ステップS061に進む。
《S061》
ステップS061で、非ゼロの値が取得された通信ポートが接続する通信経路が異常であると判定する。そして終了する。
なお、ロストリンクカウンタレジスタは、読み込みと同時に、書込みによってレジスタ値をクリアする必要がある。
以上の方法によって、通信経路の異常が起きたと判定した場所を動作管理部138へと通知し、CPU101上で動作するプログラム等に提示可能とする。
<異常判定の方法>
図9、図10のS005、S010における異常判定の方法について述べる。
《異常判定方法の第1例・主ポートのパケット受信》
異常判定方法の第1例として、冗長ポートからパケットを受信する前に、主ポートからパケットを受信したかどうかをみる方法を示す。
図17は、制御用計算機120における冗長経路切替部131を介して、主ポート135aと冗長ポート135bから2つの制御対象121に通信パケットを送っているが、通信経路異常122Xが生じている状態を示す図である。
図17において、主ポート135aが、Tx181、Tx185、通信部135a、制御対象121、通信部135a、Rx184、Rx180の経路で通信のパケットが伝達されている。
しかし、冗長ポート135bがTx183、Rx182を有する通信部135b、そして制御対象121において、通信のパケットが伝達されていない。
このように、冗長ポートでパケットを受信せず、主ポートで受信した場合に、通信経路を異常と判定する。なお、図17ではパケットの通信方向を示し、PHY103は省略している。
《異常判定方法の第2例・ワーキングカウンタを見る方法》
異常判定方法の第2例として、全てのスレーブが処理すべきレジスタに対するBRD(Broadcast Read)コマンドをEtherCATフレームに付与し、そのワーキングカウンタを見る方法を示す。
図14、図15に示すように、全てのスレーブが処理すべきレジスタに対するBRDコマンドをEtherCATフレームに付与し、そのワーキングカウンタを見る方法である。
EtherCATフレームのワーキングカウンタの値が、事前に設定した所定数よりも小さければ通信経路を異常と判定する。例えば、TYPEレジスタに対するBRDコマンドに対して、各スレーブはワーキングカウンタ178(WKC178、図12)に1を足すため、受信したテレグラムのワーキングカウンタ178が全スレーブ数よりも小さければ異常が発生したと判定できる。
これらの異常判定の方法は、組み合わせて用いてもよい。
また、いずれかの判定方法によって異常と判定した場合に異常と判定してもよいし(論理和)、両方の判定方法で異常と判定した場合に異常と判定してもよい(論理積)。
なお、冗長ポートに接続する通信経路に異常がある場合、主ポートから送信されたパケットは、冗長ポートで受信する前に主ポートで受信するが、BRDコマンドのワーキングカウンタ178の値は全スレーブ数と一致する。
この場合、主ポートで受信したパケットは冗長ポートへ転送してもよいし、通信経路の異常をユーザやオペレータに通知して、パケットを制御用計算機120内部に取り込んでもよい。
《異常判定方法の第3例・ステートマシン制御》
次に、異常判定方法の第3例として、ステートマシンによる制御であって、パケットごとの判定ではない方法について説明する。
冗長経路切替部131の内部経路の切り替えは、図9、図10に示すように受信したパケットごとに異常の有無を判定して、切り替えてもよいし、図18に示す状態遷移で管理してもよい。
図18は、本発明の第1実施形態を適用したシステムにおいて、通信経路の正常状態と異常状態とを示した状態遷移図である。
図18において、S030は正常状態、S031が異常状態を示し、S032とS033はその遷移過程を示している。
例えば、初期状態から、S030の正常状態に遷移し、受信したパケットを異常と判定した場合(S032)に、S031の異常状態に遷移する。
また、S031では、受信したパケットを正常と判定した場合(S033)にS030の正常状態に遷移する。
S030では、冗長経路切替部131の内部経路を図4に示す正常モードとし、S031では、図5に示す異常モードとする。
次に、S033における正常と判定する方法を説明する。
<受信したパケットを正常と判定する方法>
次に、受信したパケットを正常と判定する方法について説明する。
《正常判定方法・第1例》
受信したパケットを正常と判定する第1の正常判定方法について説明する。
図19は、冗長経路切替部131を介して、主ポートの通信部135aと冗長ポートの通信部135bとによって、2つの制御対象121に通信パケットを送っている状況を示す図である。
図19において、通信が正常に行われているかを判定する正常判定の方法として、冗長ポートである通信部135bからパケットを受信した後に、主ポートである通信部135aからパケットを受信したかどうかをみる方法が例示される。
冗長ポートである通信部135bで受信(190)した後に主ポートである通信部135aで受信(191)すれば、通信経路を正常と判定する。
《正常判定方法・第2例》
次に、受信したパケットを正常と判定する第2の正常判定方法について説明する。
第2の正常判定方法として、全てのスレーブが処理すべきレジスタに対するBRDコマンドをEtherCATフレームに付与し、そのワーキングカウンタを見る方法が例示される。EtherCATフレームのワーキングカウンタの値と、事前に設定した所定数と等しい場合に通信経路を正常と判定する。
例えば、図15において、通信経路異常122Xがない場合には、図12に示したワーキングカウンタのWKC178が制御対象121a〜121eを通過する毎に、カウントし、前記したように、事前に設定した所定数(図15ではn=5)と比較し、等しい場合に通信経路を正常と判定する。
《正常判定方法・第3例》
また、受信したパケットを正常と判定する第3の正常判定方法について説明する。
図18におけるS032、S033の事象発生時に、バス110(図2)の通信手段を用いて、CPU101(図2)上で動作するプログラム等に、内部状態を切り替えたことを通知する。
バス110の通信手段には割込み通知等の手段がある。この通知を受けたプログラムでは、通信経路上に異常が生じていること、あるいは正常に復帰したことをユーザやオペレータに通知することで、ユーザやオペレータは異常を復旧させるために通信ケーブルの置換等の対策の実施や、その対策の完了を確認することができる。
<時刻補正処理>
次に、図9、図10のステップS007における時刻補正処理について述べる。
図20は、冗長経路切替部131を介して主ポートの通信部135aと冗長ポートの通信部135bとによって、4つの制御対象(スレーブA〜スレーブD)に通信パケットを送っている通信経路122に通信経路異常122Xが発生した状況を示す図である。
前述したとおり、通信経路の異常発生後、通信経路の異常をはさむスレーブ間の通信遅延は算出が困難である。
また、図20に示すように、異常の発生箇所によっても、計算する通信経路の数が変化する。
しかしながら、通信経路の異常発生時の通信遅延が、制御用計算機120内部の遅延(図20のt3)と、EPU160を経由しないスレーブIC151内部の経路の、全スレーブ分の和であることに着目すれば、図4に示す正常モードにおける冗長ポートの受信時刻と、主ポートの受信時刻の差にほぼ等しい。
なお、図22は、冗長経路切替部131を介して主ポートと冗長ポートの通信部によって、4つの制御対象121であるスレーブA〜スレーブDに通信パケットを送っている状況を示す図であり、前記した冗長ポートの受信時刻がtaであり、主ポートの受信時刻がtbであることを示している。
厳密には、通信経路の異常の直前のスレーブ(図20のスレーブB)において、スレーブ内のEPU160を通る経路と、EPU160を通らない経路の通信遅延差dだけ異なる。
しかしながら、遅延差dは、スレーブIC151に固有の値であるため、tbとtaの差を求めることで、容易に通信経路の異常をはさむスレーブ間の通信遅延を算出することができる。
したがって、図9、図10において、S008で主ポートでのパケットの受信時刻tb(第二の時刻)を記録し、S011で冗長ポートでのパケットの受信時刻ta(第一の時刻)を記録する。
そして、taとtbの差分Dを次式で算出する。
D = tb − ta ・・・(式7)
tbとtaは、同じパケットに対して計時する必要がある。したがって、図9、図10のS008、S012では、パケットが同じかどうかを特定する必要がある。
<パケットを特定する方法>
パケットを特定する方法としては、パケットへ所定の処理を加えることや、冗長化通信制御部102でパケットを識別するための情報を記憶する方法が例示される。
<パケットへ加える処理>
また、前記したパケットを特定するために、パケットへ加える処理としては、所定の位置を所定値にすること、シーケンス番号を設定する方法、特定のパラメータを設定する方法、スレーブの動作に影響を与えない情報領域をパケットへ付加する方法などが例示される。
具体的には、IRQ227(図12)の所定ビットを1にすることや、識別子221(図12)を所定値にすること、あるいは、制御対象121の動作に影響を与えない情報領域をパケットに付加し、その領域用に識別子を格納する方法が例示される。
そのような情報領域の付加方法としては、存在しないアドレスにアクセスするテレグラム175(図12)や、コマンド220(図12)をNOP(No Operation)とするテレグラム175(図12)が例としてあげられる。
<情報を記憶する方法>
冗長化通信制御部102で情報を記憶する方法としては、パケットのテレグラムヘッダ176のパラメータ(コマンド220、識別子221、アドレス222等)を記憶する方法や、データサイズ等のパケットにかかわる属性値を記憶する方法が例示される。
あるいは、パケットを識別する必要のないようにパケットを1つずつ通信処理するようにしてもよい。このようにすれば、あるパケットを送信してから、受信するパケットは、送信したパケットと同じであることを保証できる。
または、常時、パケットを1つずつ通信処理するのではなく、受信時刻tb、taを計測するために、所定回数のみ、パケットを1つずつ通信処理してもよい。所定回数は1回でもよいし、複数回でもよい。
<差分Dについて>
なお、式7における差分Dは、複数回求めて最小値あるいは最大値を用いてもよいし、平均値や統計処理を施した数値を用いてもよい。
また、差分Dは、通信経路に異常が発生した時に、変更した通信遅延を求めるために必要であるが、別の方法で求めてもよい。
例えば、各スレーブのEPU160を経由しない通信遅延Pがわかっている場合は、通信遅延Pをスレーブ数分合計した値Dpを差分Dとしてもよい。
また、事前に制御用計算機120内の転送遅延を計測し、Dpに加えてもよい。なお、動的にスレーブ数を求める方法としては、すべてのスレーブが処理すべきレジスタに対するBRDコマンドを発行し、そのワーキングカウンタを見る方法が例示される。このコマンドは動作管理部138の要求にしたがって発行され、パケット生成部139がパケットを生成し、送信する。あるいは、事前に動作管理部138に設定したスレーブ数を用いてもよい。
<時刻同期補正の手順>
次に、時刻同期補正の手順について説明する。
図21は、時刻同期補正の手順を示すフローチャートである。
図21に示す時刻同期補正の手順のフローチャートを、具体例として、図20と図22を参照して説明する。
なお、図20は前記したように、冗長経路切替部131と主ポートと冗長ポートとスレーブA〜スレーブDからなる通信経路において、通信経路異常122Xが生じた状況を示す図である。また、図22は、冗長経路切替部131と主ポートと冗長ポートとスレーブA〜スレーブDからなる通信経路において、通信経路異常がない状況を示す図である。
《S040》
まず、スタートした後、はじめに、ステップS040において、補正用の通信遅延を算出可能か判定する。
これは、例えばアプリケーションの実行開始時にすでに通信経路異常が発生している場合が考えられる。
この通信経路異常が発生している場合、受信時刻tb、taを保持していないため、式7における差分Dを算出できず、ステップS040において、算出不可と判定する。
あるいは、冗長ポートからパケットを折り返した時に、通信経路異常が発生し、taは保持し、tbを保持していない場合に算出不可と判定する。
あるいは、複数のtb、taを用いて、差分Dを統計的に算出する場合に、所定数のtb、taを保持していない場合に算出不可であると判定する(N:S040)。
そして、ステップS044に進む。
また、ステップS040において、補正用の通信遅延を算出可能であると判定すれば(Y:S040)、次のステップS041に進む。
《S041》
ステップS041において、通信経路異常の発生箇所を特定する。
発生箇所の特定方法は、前述した図14、図16に示す通信経路異常の発生箇所の特定方法が、一例としてある。
そして、ステップS042に進む。
《S042》
ステップS042において、通信遅延の変更分diffを計算する。
通信遅延の変更分は、通信経路の異常の発生箇所をはさむスレーブ間の遅延について、通信経路の異常の発生前と発生後の差分をとる。
各スレーブの遅延レジスタの値は、基準時刻を有するスレーブまでの遅延である。したがって、異常発生前の通信遅延を求めるためには、通信経路の異常の発生箇所をはさむスレーブのそれぞれの遅延を取得して差分を計算する。
図20で例示すれば、各スレーブの遅延レジスタの値System_delay(System delay)を用いて、通信経路異常発生前の通信遅延tdiffBCは次式で求まる。
diffBC = System delayC − System delayB ・・・(式8)
通信経路異常発生後の通信遅延tdiffBC2は、式7の差分Dをもとに計算する。差分Dをそのまま用いてもよい。
diffBC2 = D ・・・(式9)
あるいは、通信経路異常発生箇所直前のスレーブ内の通信経路の違いによる遅延差dを用いて、次式で計算してもよい。
diffBC2 = D − d ・・・(式10)
なお、遅延差dは、該スレーブにアクセスして取得してもよいし、スレーブの種類に応じた値を制御用計算機120で保持して利用してもよい。
あるいは、通信経路異常発生箇所直後のスレーブ内の通信遅延e(図20の遅延t5)を用いてもよい。
この通信遅延eは、該スレーブとその隣接スレーブの遅延レジスタの値と、該スレーブ内の通信経路の違いによる遅延差dを用いて計算することができる。図20で例示すれば、次式で求まる。
e = System delayD − System delayC − dc ・・・(式11)
ここでdcは、スレーブCにおけるスレーブ内の通信経路の違いによる遅延差dである。
なお、冗長ポートに隣接するスレーブ(図22のスレーブD)においては、冗長ポートにおける遅延レジスタの値System delayが存在しないため、基準時刻を有するスレーブから冗長ポートまでの遅延を別途計算する必要がある。
通信遅延eを用いて、通信遅延tdiffBC2は、次式のいずれかで求めることができる。
diffBC2 = D − e ・・・(式12)
diffBC2 = D − d − e ・・・(式13)
通信遅延の変更分diffは次式で計算する。
diff = tdiffBC2 − tdiffBC ・・・(式14)
この通信遅延の変更分が、通信経路の異常発生箇所以降のスレーブの通信遅延の補正値である。したがって、通信経路の異常発生箇所以降のスレーブの遅延レジスタの値を更新する。
以上が、ステップS042における通信遅延の変更分の計算方法の例である。
次に、ステップS043に進む。
《S043》
ステップS043において、通信経路異常の発生箇所以降のスレーブの通信遅延を更新する。
この更新する通信遅延の計算方法を以下に示す。
通信経路の異常発生箇所以降のスレーブに設定する遅延レジスタ値System_delay_New(System delay New)は、次式で求まる。
System delay New = System delay + diff ・・・(式15)
遅延レジスタの更新にあたっては、各スレーブに対して、2回のアクセスが必要である。すなわち、現状の遅延レジスタ値System_delayの取得と、System_delay_Newの更新である。
以上により、通信経路異常の発生箇所以降のスレーブの通信遅延を更新する。
そして、ステップS043の後は、終了する。
《S044》
ステップS040において、補正用の通信遅延を算出不可と判定した場合(N:S040)は、ステップS044において、通信経路の異常をユーザやオペレータに通知して、対応処理を実行する。
対応処理としては、通信経路の異常発生箇所を特定して、制御対象121(図1、スレーブA〜D、図20)を点検することや、該通信ケーブルの交換、確認等が例示される。
<顕現性の確保>
以上の式7〜式14による通信経路の異常発生後の通信遅延の変更分diffの算出において、通信経路異常発生後の通信遅延は、差分Dをそのまま用いる場合においては、どの通信経路に異常が発生しても、同じ値(請求項)である。
また、式10によって差分Dを求める場合においては、各スレーブの遅延差dだけ値が異なる。
スレーブ毎に遅延差dが等しければ、式10で計算する場合でも、どの通信経路に異常が発生したかにかかわらず、差分Dは同じ値である。したがって、必ず具体的に計算できて、顕現性が確保されている。
<通信遅延の更新方法>
また、図21のステップS042、S043における通信経路異常の発生箇所以降のスレーブに通信遅延の更新方法は、別の方法も考えられる。例えば、受信時刻tbとtaの差分Dを求めた後に全スレーブに通知する方法である。
通知する方法は、所定のレジスタへの書込み(ライトコマンドの発行)が例示される。
具体的には、BWR(Broadcast Write)コマンドや全スレーブを同じアドレスにマッピングさせた論理アドレスへのLWR(Logical memory Write)コマンドが例示される。
この場合、通信経路の異常が発生すると、各スレーブは、通信遅延の変更が必要かを知るため、各スレーブが通信経路異常発生箇所の前に位置するか、後に位置するかを知る必要がある。
<異常発生箇所の特定における通知方法>
図14、図16で示した異常発生箇所の特定方法で、制御用計算機120(マスタ)が異常発生箇所を特定すると、その発生箇所以降のスレーブに個別に通知してもよい。
また、マスタが、発生箇所直後のスレーブにアクセスするオートインクリメントアドレスコマンドを発行し、各スレーブが、オートインクリメントアドレスが0以上かどうかを判定してもよい。
ここで、オートインクリメントアドレスとは、スレーブの接続順序に基づくアドレス方法であり、各スレーブは、テレグラムのオートインクリメントアドレスをインクリメントする特徴がある。受信したテレグラムのオートインクリメントアドレスが0の場合に、各スレーブは、そのテレグラムを処理する。
あるいは、通信経路の異常発生時は、主ポートから送信されたパケットは、再び主ポートで受信されるため、そこで、制御用計算機120のパケット生成部139が、残りのスレーブにアクセスするコマンドを付加することが例示される。そのようなコマンドとして、BWRコマンドが例示される。
各スレーブは、通信経路異常の発生をもって、CPU101によって、事前に通知された差分Dを遅延レジスタの現在値に加えることで時刻を更新する。
各スレーブは、制御用計算機120(マスタ)からの通知によって通信経路異常の発生を知る。例えば、制御用計算機120からスレーブに割込み可能なレジスタへコマンドを発行してもよい。
また、通信経路異常に接するスレーブは、スレーブIC151やPHY103の所定の信号によって、通信経路異常の発生を検知できるため、マスタから送信されたデータグラムのIRQ227の所定ビットを有効にしてもよい。
なお、式10によって、遅延を補正する場合は、制御用計算機120が通信経路異常発生箇所直前のスレーブの遅延差dを求めて、各スレーブに通知してもよい。通知する方法は、所定のレジスタへの書込みが例示される。
<時刻同期補正の方法の利点>
これらの時刻同期補正の方法は、図21に比べて、制御用計算機120が発行するパケット数、テレグラム数を少なくできる利点がある。
スレーブを所定の通知方法に対応させる必要があるが、必要なパケット数、テレグラム数がスレーブ数に依存しないという利点があり、スレーブ数が多くなるほど有効である。
また、パケット数、テレグラム数を少なくできれば、それだけ、通信経路の異常発生時でも迅速な再時刻同期が可能である。
あるいは、これらの時刻同期補正の方法と、図21に示す方法に対応したスレーブを混在させてもよい。この場合、先にパケット数、テレグラム数が少ない方式に対応したスレーブの時刻を補正した後、その後、図21の方法を実行することが例示される。
この場合、各スレーブの対応を示す必要がある。事前に、制御用計算機120において、スレーブの情報(接続順、アドレス等)によって識別してもよいし、該スレーブが所定のアドレスに対応を提示してもよい。
<時刻同期の補正処理の実行タイミング・その他の例>
また、図9では、時刻同期補正処理をステップS007で実行しているが、任意のタイミングで実行してもよい。
例えば、図21のステップS040において、所定の統計処理に必要な充分な数の受信時刻tb、taを計測した時点が挙げられる。
または、一時的な通信経路異常の可能性を除去するため、所定時間、通信経路異常の状態が継続するかを監視してもよい。監視時間中に通信経路が正常状態に戻れば、時刻同期補正処理を実行する必要はない。
あるいは、制御対象121の動作に影響のないタイミングで時刻同期補正処理を実行することが例示される。
制御動作の周期実行動作と、時刻同期補正処理のタイミングが重なれば、制御対象121が誤ったタイミングで制御動作を実行するおそれがある。このような場合、制御用計算機120は、通信経路異常を検知後、ただちに定期的な時刻補正パケットの送信を停止する。この間、制御対象121は、自身の時刻制度で時刻を管理する。
それから、制御用計算機120は、制御指令値やセンサ値取得要求の送信直後や、予め設定した所定の周期動作実行タイミング後に、時刻補正処理を実行する。
このようにすれば、制御対象121が誤ったタイミングで制御動作を実行する可能性を避けることができる。
<異常発生後に復帰した場合の時刻補正>
また、通信経路異常発生後に、時刻補正処理を実行後、通信経路異常が解消され、正常に戻る場合を考える。この場合には、再度、時刻を補正する必要がある。
この時、必要な情報は、通信経路が正常時の通信遅延と、再補正対象となるスレーブの識別、通信経路が正常になったことの判定結果である。
正常時の通信遅延は、正常時の遅延レジスタ値を記憶して、再補正時に利用する方法が例示される。
あるいは通信経路異常発生時には、補正対象のスレーブは、式15によって補正後の遅延を計算したため、変更分diffがわかれば、次式で再補正用の遅延System_delayを算出できる。
System delay = System delay New − diff ・・・(式16)
したがって、変更分diffを計算した時に保持する方法が例示される。
《変更分diffの保持》
変更分diffは制御用計算機120が算出してもよいし、制御対象121が算出してもよいため、制御用計算機120または制御対象121が変更分diffを保持すればよい。
また、制御用計算機120が前記の変更分diffを保持する場合は、各制御対象121に通知してもよい。
また、式16により、再補正後の遅延を算出して、再補正対象となる制御対象121の遅延レジスタ値を補正してもよい。
《再補正対象となる制御対象の識別》
再補正対象となる制御対象121の識別は、制御用計算機120において、通信経路異常発生時に特定した通信経路異常の発生箇所を記憶してもよい。
あるいは、各制御対象121が、通信経路異常発生時に通知された内容に基づいて、自身で記憶してもよい。
また、通信経路が正常になったことは、図18のステップS033において用いる方法等によって、制御用計算機120で判定可能である。この判定をもって、制御用計算機120は、その発生箇所以降のスレーブに個別に通知してもよい。
また、マスタが、発生箇所直後のスレーブにアクセスするオートインクリメントアドレスコマンドを発行し、各スレーブが、オートインクリメントアドレスが0以上かどうかを判定してもよい。
<冗長化の汎用的な構成における効果>
以上の発明により、冗長化の汎用的な構成における課題への効果を説明する。
通信経路に異常が発生している場合に、冗長経路切替部131が図5の構成をとることで、パケットはソフトウェア処理を介さずに冗長化通信制御部102内で折り返して通信部135bからパケットを送信することができる。これによって、制御用計算機120内では一定遅延でパケットを転送できる。
さらに通信経路の異常によって、通信経路を変更した場合でも、通信経路異常の発生箇所に依存せずに、変更後の通信遅延を容易に求めることができる。これによって、通信経路に異常が発生している場合においても時刻同期アルゴリズムを実行することができる。
したがって、本発明を適用すれば、冗長化によるリアルタイム通信の高信頼化を提供することができる。
(第2実施形態)
次に、本発明に係る通信制御システムの第2実施形態について図を参照して説明する。
<制御対象の通信ハードウェア上のCPU上で動作する機能構成>
図23は、本発明を適用した制御対象121(図1)の通信ハードウェア150(図6)上のCPU101(図6)上で動作する機能構成を示す図である。
図23の第2実施形態で使用する符号は、特に断りのない限り、第1実施形態で説明した機能や要素等と同一であることを意味する。
第2実施形態は、本発明を適用した制御用計算機120の時刻補正処理中に、同期した時刻に基づくスレーブの割込みが乱れることに対応したものである。
図23において、時刻管理部230は、時刻同期割込み231とタイマ232を用いて、アプリケーション233を定期的に起動する。
時刻同期割込み231は、基準時刻に同期して発行される割込みであり、一般に定周期で発行するように設定される。時刻同期割込み231は、バス163上に構成する。
また、時刻同期割込み231を発行する周期やパルス幅は、スレーブIC151上の設定であり、通信を介して、制御用計算機120によって設定されてもよいし、CPU101上で動作するソフトウェアから設定してもよい。
タイマ232は、計時機能を有するタイマであり、CPU101に含まれるハードウェアによって構成してもよいし、CPU101に含まれる定期割込み機能を用いて、ソフトウェア上で計時してもよい。
あるいは、CPU101に含まずに、タイマデバイスやFPGA、CPLD等を用いて構成してもよい。
また、タイマ232は、所定の期間の経過をもって、割込みを通知できるように構成してもよい。
アプリケーション233は、時刻管理部230に定期的に起動されるソフトウェアであり、図6に図示していないアクチュエータへの指令や、同じく図6に図示していないセンサからのセンサ値の取得等を実行する。
第2実施形態の要点は、時刻管理部230が、タイマ232によって時刻同期割込み231の乱れを補正することである。
通信経路で異常が発生すると、異常をはさむスレーブ間の通信遅延は長くなる。これは、式6において遅延tdiffABが大きくなることを意味する。制御用計算機120によって遅延が補正されるまでの間、遅延tdiffABは、実際の値よりも小さな値のままである。
図8の手順において、制御用計算機120は各スレーブに対して、基準時刻とローカルクロック間の通信遅延、時刻オフセットを求めた後は、定期的に基準時刻を各スレーブに配信する。各スレーブは、配信された基準時刻をもとに定期的にローカルクロックを補正する。
ここで、通信経路の異常が発生して、通信遅延が変化した場合を考える。通信経路の異常発生後に基準時刻が配信されると、過渡的にローカルクロックCBが基準時刻よりも早く進む期間が存在する。これは、時刻同期割込み231が本来の正しい時刻よりも前に発生することを意味する(図24)。時刻管理部230はタイマ232を活用して、乱れを検知するとともに、遅延が補正されるまでの間、タイマ232を基にアプリケーション233を起動する。
<時刻同期割込みとタイマによるタイマ割込みと時刻管理部の動作>
第2実施形態において、時刻同期割込み231(図23)とタイマ232(図23)によるタイマ割込みと時刻管理部230(図23)の動作と、あわせて、時系列上の割込みと同期のタイミングを次に示す。
図25は、時刻同期割込み231とタイマ232によるタイマ割込みと時刻管理部230の動作を示した第1例のフローチャートである。
また、図24は、時系列上の割込みと同期のタイミングを示すタイムチャートである。図24を参照して、図25のフローチャートを説明する。
図24において、横軸は時間の流れであり、タイマ割込み(tT0、tT1)と時刻同期割込み231(a〜g)の割込み状態を示している。また、Pintは、時刻同期の周期である。
図24において、Pintで示したひとつの周期の区間において、タイマ割込みtT1の前に時刻同期割込み231cが発生しているので、通信経路異常が発生していると判定できる状態を示している。
図25の時刻同期割込み231とタイマ232によるタイマ割込みと時刻管理部230の動作を示したフローチャートについて説明する。
《S060》
まず、スタートとして、はじめに、ステップS060において、時刻管理部230は、時刻同期割込み231の生成周期PintをスレーブIC151、あるいはスレーブIC151(図6)の設定を保持するスレーブ搭載の不揮発性記憶メモリ(EEPROM等、109、図6)から取得する。
そして、ステップS061に進む。
《S061》
次に、ステップS061において、最初の時刻同期割込み231の発生を待機する(S061、図24のtP0)。
すなわち、ステップS061において、時刻同期割込みが発生したか否かを検出、判定する。
発生した場合(Y:S061)には、ステップS062に進む。
また、発生しない場合(N:S061)には、ステップS061の先頭に戻り、引き続き時刻同期割込みの発生を検出すべく待機する。
なお、具体的には、スレーブの時刻同期の設定は制御用計算機120(マスタ)が設定する。
また、全スレーブが同期する前に通信経路異常が発生するような場合は、制御用計算機120(マスタ、図1)は、ただちに全スレーブの時刻同期機能を停止する必要がある。
この方法は、時刻同期機能を無効化するレジスタへのBWR(Broadcast Write)コマンドの発行が例示される。なお、時刻同期機能の無効化は、時刻同期割込み231の停止を意味する。
《S062》
次に、ステップS062において、タイマ232に所定時間経過後に割込みを発生するように設定する。そして、次に、ステップS063に進む。
なお、前記所定時間は、周期Pint(図24)よりも所定の期間短い時間とする。短くする期間は、過渡期に時刻同期割込み231が早まることを考慮して定める。
このタイマ割込みよりも前に時刻同期割込み231が発生した場合に、通信経路異常が発生し、再補正前と考える。
《S063》
次に、ステップS063において、アプリケーション233を起動する。
そして、ステップS064に進む。
《S064》
次にステップ064において、時刻同期割込み231の発生か、またはタイマ割込みの発生を待機する。
すなわち、ステップS064において、時刻同期割込み、またはタイマ割込みの発生があったか否かを検出、判定する。
発生があった場合(Y:S064)には、ステップS065に進む。また、発生しない場合(N:S064)には、ステップS064の先頭に戻り、引き続き時刻同期割込み、またはタイマ割込みの発生を検出すべく待機する。
《S065》
次に、ステップ065において、発生した割込みがタイマ割込みかどうかを判定する。
発生した割込みがタイマ割込みであれば(Y:S065、図24のtT0)、ステップS061の手順へ戻る。
また、ステップ065において、発生した割込みがタイマ割込みでなく、時刻同期割込み231であれば(N:S065、図24の231c)、通信経路に異常が発生し、再同期補正前と判定し、ステップS066へ進む。
《S066》
次に、ステップ066において、タイマ割込みの発生を待機する。
すなわち、ステップS066において、タイマ割込みは発生したか否かを検出、判定する。
タイマ割込みが発生していれば(Y:S066)、ステップS067へ進む。タイマ割込みが発生していなければ(N:S066)、ステップS066の先頭に戻り、引き続きタイマ割込みは発生したか否かを検出すべく待機する。
《S067》
次に、ステップS067においては、タイマ割込み発生(tT1)後、周期Pintとタイマ割込みまでを発生させるまでの期間の差分の間、待機する。これは、アプリケーション233を起動させるタイミング(図24のtP2)まで待つためである。
所定期間の経過を待機する方法は、タイマ232による割込みを用いてもよいし、また、定期的にタイマ232の値を取得して、所定期間が経過していないかを確認する方法でもよい。
所定期間が経過したと判定した場合(Y:S067)には、ステップS068へ進む。
また、所定期間が経過していないと判定した場合(N:S067)には、ステップS067の先頭に戻り、引き続き所定期間が経過するまで待機する。
《S068》
続いて、ステップS068において、時刻管理部230は、タイマ値t1を取得する(図24のt1a)。
そして、ステップS069に進む。
《S069》
次に、ステップS069において、タイマ割込みを設定する。
この時のタイマ割込みの期間は、周期Pintが望ましい。これは、時刻同期割込み231の生成タイミングにずれが生じており、通信遅延の更新が完了するまでは、タイマ232にしたがってアプリケーション233を起動する必要があるためである。
そして、ステップS070に進む。
《S070》
次に、ステップS070において、アプリケーション233を起動する。
そして、ステップS071に進む。
《S071》
次に、ステップS071においては、時刻同期割込み231の発生か、または、タイマ割込みの発生があるまで待機する。
具体的には、時刻同期割込み231の発生か、または、タイマ割込みの発生を検出、判定する。
時刻同期割込み231の発生か、または、タイマ割込みの発生を検出したと判定した場合(Y:S071)には、ステップS072に進む。
また、時刻同期割込み231の発生も、タイマ割込みの発生もないと判定した場合(N:S071)には、ステップS071の先頭に戻り、引き続き時刻同期割込み231の発生か、または、タイマ割込みの発生を検出するまで待機する。
《S072》
次に、ステップS072においては、発生した割込みが時刻同期割込み231か否かを判定する。
発生した割込みが時刻同期割込み231であると判定した場合(Y:S072)には、ステップS073に進む。
また、発生した割込みが時刻同期割込み231でない判定した場合(N:S072)には、ステップS071の先頭に戻る。
《S073》
次に、ステップS073においては、タイマ値t2を取得する(図24のt2a、t2b、t2c)。
そして、ステップS074に進む。
《S074》
次に、ステップS074においては、t1と周期Pintの和と、t2の差分の絶対値が所定値Th以下(以内)かどうか、(|(t1+Pint)―t2|<Th)を判定する。
所定値Th以下であれば、通信遅延の更新が完了したと判定し、ステップS062へ進む。また、所定値Thを超していれば(図24のt2a、t2b)、ステップS075へ進む。
なお、ステップS074において、一度の条件成立でS062へ進むのではなく、所定回数の成立、あるいは所定連続回数の成立をもってS062へと進んでもよい。
なお、図24では、t2cの時、この所定値Th以下の条件を満足している。
《S075》
次に、ステップS075においては、発生した割り込みがタイマ割込みか否かを確認し、判定する。これは、S071、S072、S073、S074において、タイマ割込みが発生している可能性があるためである。
ステップS075において、タイマ割込みが発生していれば(Y:S075)、ステップS068へと進む。
また、タイマ割込みが発生していなければ(N:S075)、S071へと進む。
以上が、図25のフローチャートの時刻同期割込み231とタイマ232によるタイマ割込みと時刻管理部230の動作である。
<時系列上の割込みと同期のタイミング>
また、通信経路で異常が発生した後、再び通信経路が正常に復帰した場合を考える。この場合は、図24の時刻同期割込み231bと時刻同期割込み231cの間隔が短くなったこととは逆に長くなる。
この場合の時刻同期割込み231とタイマ232によるタイマ割込みと時刻管理部230の動作と、あわせて、時系列上の割込みと同期のタイミングを示す。
<タイマ割込みと時刻管理部230の動作の第2例のフローチャート>
図26は、時刻同期割込み231とタイマ232によるタイマ割込みと時刻管理部230の動作を示した第2例のフローチャートである。
また、図27は、時系列上の割込みと同期のタイミングを示すタイムチャートである。
図26のフローチャートを説明する前に図27について説明する。
図27において、横軸は時間の流れであり、タイマ割込み(tT1)と時刻同期割込み231(h〜n)の割込み状態を示している。また、Pintは、時刻同期の周期である。
図27において、Pintで示したひとつの周期の区間において、タイマ割込みtT1の後に時刻同期割込み231jが発生しているので、通信経路異常が発生していると判定できる状態を示している。
図26の時刻同期割込み231とタイマ232によるタイマ割込みと時刻管理部230の動作を示したフローチャートについて説明する。
ただし、図26のフローチャートと図25のフローチャートは非常に似ており、図26のフローチャートの各ステップS060〜S075は、図25のフローチャートの各ステップS090〜S105相当しており、概ね等しいステップについては、詳細な説明が重複する場合には、省略することもある。
《S090》
図26のステップS090は、図25のステップS060と概ね等しいので、説明を省略する。
《S091》
次に、ステップS091において、最初の時刻同期割込み231の発生を待機する(S091、図27のtP0)。
なお、その他の説明は、ステップS061と重複するので、詳細な説明は省略する。
《S092》
次に、ステップS092において、タイマ232に所定時間経過後に割込みを発生するように設定する。そして、次に、ステップS093に進む。
なお、前記所定時間は、周期Pint(図24)よりも所定の期間、長い時間とする。長くする期間は、過渡期に時刻同期割込み231が遅くなることを考慮して定める。
この時刻同期割込み231よりも前にタイマ割込みが発生した場合に、通信経路が正常復帰し、再補正前と考える。
《S093〜S094》
図26のステップS093〜S094は、図25のステップS063〜S064と概ね等しいので、重複する説明を省略する。
《S095》
次に、図26のステップ095において、発生した割込みが時刻同期割込み231かどうかを判定する。
発生した割込みが時刻同期割込み231であれば(Y:S095、図27のtP1)、ステップS092の手順へ戻る。
また、ステップ095において、発生した割込みが時刻同期割込み231なくタイマ割込みであれば(N:S095、図27のtT1)、通信経路が正常復帰し、再同期補正前と判定し、ステップS096へ進む。
《S096》
次に、ステップ096において、タイマ割込み発生(tT1)後、アプリケーション233を起動する。そして、ステップS097に進む。
《S097》
次に、ステップS097においては、タイマ割込みまでを発生させるまでの期間と、周期Pintの差分の間、待機する。これは、アプリケーション233を起動させるタイミング(図27のtP3)まで待つためである。
所定期間が経過したと判定した場合(Y:S097)には、ステップS098へ進む。
また、所定期間が経過していないと判定した場合(N:S097)には、ステップS097の先頭に戻り、引き続き所定期間が経過するまで待機する。
《S098》
続いて、ステップS098において、時刻管理部230は、タイマ値t1を取得する(図27のt1e)。
《S099〜S102》
図26のステップS099〜S102は、図25のステップS069〜S072と概ね等しいので、重複する説明を省略する。
《S103》
次に、ステップS103においては、タイマ値t2を取得する(図27のt2e、t2f、t2g)。
そして、ステップS104に進む。
《S104》
次に、ステップS104においては、t1と周期Pintの和と、t2の差分の絶対値が所定値Th以下(以内)かどうか、(|(t1+Pint)―t2|<Th)を判定する。
所定値Th以下であれば、通信遅延の更新が完了したと判定し、ステップS92へ進む。また、所定値Thを超していれば(図27のt2e、t2f)、ステップS105へ進む。
なお、ステップS104において、一度の条件成立でS092へ進むのではなく、所定回数の成立、あるいは所定連続回数の成立をもってS092へと進んでもよい。
なお、図27では、t2gの時、この所定値Th以下の条件を満足している。
《S105》
次に、ステップS105においては、発生した割り込みがタイマ割込みか否かを確認し、判定する。これは、S101、S102、S103、S104において、タイマ割込みが発生している可能性があるためである。
ステップS105において、タイマ割込みが発生していれば(Y:S105)、ステップS098へと進む。また、タイマ割込みが発生していなければ(N:S105)、S0101へと進む。
以上が、図26のフローチャートの時刻同期割込み231とタイマ232によるタイマ割込みと時刻管理部230の動作である。
<冗長化の汎用的な構成における効果>
以上の発明により、冗長化の汎用的な構成における課題への効果を説明する。
通信経路に異常が発生している場合に、冗長経路切替部131が図5の構成をとることで、パケットはソフトウェア処理を介さずに冗長化通信制御部102内で折り返して通信部135bからパケットを送信することができる。これによって、制御用計算機120内では一定遅延でパケットを転送できる。
さらに通信経路の異常によって、通信経路を変更した場合でも、通信経路異常の発生箇所に依存せずに、変更後の通信遅延を容易に求めることができる。
これによって、通信経路に異常が発生している場合においても時刻同期アルゴリズムを実行することができる。
さらに、通信経路の異常発生直後の各スレーブの過渡的な更新期間においても、スレーブにおいて、タイマを用いた時刻管理部230によって、基準時刻に対する同期精度を維持した状態で制御システムを継続することができる。
したがって、第2実施形態によって、冗長化によるリアルタイム通信の高信頼化を図ることができる。
(第3実施形態)
次に、本発明に係る通信制御システムの第3実施形態について、図28〜図35を参照して説明する。
<冗長化通信制御部111の機能構成>
図28は、本発明の第3実施形態を適用した冗長化通信制御部111の機能構成を示すブロック図である。
第3実施形態における冗長化通信制御部111は、主ポートと冗長ポートによる組み合わせのポートをさらに複数ポートとしたものであって、通信部(135a〜135d)を備えた構成となっている。
つまり、第1実施形態の冗長化通信制御部102(図3、通信部(135a〜135b))と比較して、通信部(135c〜135d)を追加した構成となっている。
なお、第3実施形態において使用する符号で、第1実施形態と同じ符号のものは、特に断りのない限り、第1実施形態で説明した機能や要素等と同一であることを意味する。重複する説明は省略する。
また、図29は、第3実施形態における制御用計算機120のハードウェア構成の一例を示す図である。
図29の制御用計算機120のハードウェア構成は、図2で説明した第1実施形態における制御用計算機120のハードウェア構成と同じような構成であるが、PHY103が4つの構成となっている点が図2とは異なる。このPHY103が4つの構成は、図28の冗長化通信制御部111の通信部135a〜135dと対応している。その他の図2と重複する説明は省略する。
また、図30は、第3実施形態における制御用計算機120を用いたシステムの構成の一例を示す図である。
図30の制御用計算機120を用いたシステムの構成は、図1で説明した第1実施形態における制御用計算機120を用いたシステムの構成と同じような構成であるが、制御用ネットワーク122aに接続された制御対象121と、制御用ネットワーク122bに接続された制御対象121とを、別の系列として制御している点が異なる。この制御用ネットワーク122a、122bの構成は、前記した図28と図29のそれぞれの特徴と対応している。
図29、図30に示す制御用計算機120は、通信ポートを4つ(135a〜135d)有しているため、2つの通信ポートを接続したリングネットワークを2つ有することが第3実施形態としての特徴である。この第3実施形態について、さらに詳しく説明する。
<通信部の論理的接続構成>
図28において、通信部135aと通信部135bは、同じ制御用ネットワーク122aに接続している。また、通信部135cと通信部135dも同じ制御用ネットワーク122bに接続している。
通信部135aは、パケット生成部139から伝送されたパケットを送信する通信ポートであり、図32、図33、図34、図35のTx201、Rx200と接続している。
なお、図32、図33、図34、図35は、それぞれ、冗長経路切替部240(図28)内部の通信経路の接続の例(第1例〜第4例)を示した図である。
また、図31は、物理的な通信部(通信部A〜通信部D)と機能的な通信部(P020〜P026)の対応付けの一例を示した図である。
通信部135bは、通信部135aと制御用ネットワーク122aを構成する終端のEtherCATスレーブからのパケットを受信する通信ポートであり、図32、図33、図34、図35のTx203、Rx202と接続している。
通信部135cは、通信部135bが受信したパケットを制御用ネットワーク122bに送信する通信ポートであり、図32、図33、図34、図35のTx205、Rx204と接続している。
通信部135dは、通信部135cと制御用ネットワーク122bを構成する終端のEtherCATスレーブからのパケットを受信する通信ポートであり、図32、図33、図34、図35のTx207、Rx206と接続している。
<通信部の物理的な配置と論理的な配置の関連付け>
次に、通信部の物理的な位置と通信部135a〜135dの対応関係について説明する。
また、事前にパケットを特定の通信部から送信して、順番にパケットを受信した通信部について、順次、通信部135b〜135dとの関連を、図28と図31を参照して説明する。
なお、図31は、制御用計算機120における冗長経路切替部240を介する通信部A〜通信部Dと通信経路P020〜P026との関連を示す図である。
例えば、物理的な位置が明らかな通信部135A、B、C、D(図31)に対して、はじめに通信部135Aからパケットを送信したとする。このとき、通信部Aを図28に示す通信部135aとする。
次に通信部C(図31)にて、このパケットを受信した場合(P020)、通信部Cが図28の通信部135bとなる。
そして、通信部Cにて受信したパケットを、残りの通信ポートのどちらかに転送する。ここでは通信部B(図31)を選択し、パケットを送信する(P021)。
このとき、通信部Bを図28の通信部135cとする。このパケットは、ネットワークの配線が正しければ通信部D(図31)で受信する(P022)。
通信部Dで受信したパケットは、冗長経路切替部240を図31に示すように結線し、そのまま通信部Dから送信する(P023)。
なお、ここで通信部Dは、図28の通信部135dとなる。以上のようにして、ネットワークの配線が正しいという前提のもとに、パケットを送信し、その受信の順番をみることで物理的な通信部A〜Dと本実施形態上の論理的な通信部135a〜135dを対応付けることができる。
この仕組みを用いることで、ネットワークがリングネットワークとして配線されていないことを検出することができる。これは誤配線の場合もあれば、通信経路上に異常が発生している場合が考えられる。
例えば、図31において最初に通信部Aから送信したパケットを再び、通信部Aで受信した場合は、通信部Aに接続されたネットワークがライントポロジに構成されていれば、通信部Aに接続されたネットワーク上に異常が発生していると判定できる。
この検出された情報を動作管理部138からCPU101上のプログラムに通知することで、ユーザやオペレータが、通信ケーブルの接続確認、通信ケーブルの置換等の対策をとることができる。
<複数ポートの冗長経路切替部内の経路>
次に、複数ポートの冗長経路切替部内の経路について説明する。
前記したように、図32、図33、図34、図35は、それぞれ、冗長経路切替部240(図28)内部の通信経路の接続の例を示した図である。
冗長経路切替部240は、動作管理部138(図28)からの指令によって、図32、図33、図34、図35に示す通信経路の接続形態をとる。
図32、図33、図34、図35において、Rx200は、通信部135aの受信部137aと、Tx201は、通信部135aの送信部136aと接続している。
また、Rx202は、通信部135bの受信部137bと、Tx203は、通信部135bの送信部136bと接続している。
また、Rx204は、通信部135cの受信部137cと、Tx205は、通信部135cの送信部136cと接続している。
また、Rx206は、通信部135dの受信部137dと、Tx207は、通信部135dの送信部136dと接続している。
第3実施形態における本発明の経路切替の方法や、補正遅延の算出方法等の基本的な考え方は、第1実施形態と同様である。ただし、時刻同期の補正値は、制御用ネットワーク122aと制御用ネットワーク122bのそれぞれで算出する。
また、図9におけるステップS001の冗長経路切替部の制御系路の設定においては、はじめに、正常モードの設定では、冗長経路切替部240の通信経路の接続状態を図32の構成にする。
<冗長経路切替部の経路の接続状態>
冗長経路切替部240内部の通信経路の接続状態は、制御用ネットワーク122a、122bのそれぞれの通信経路の状態によって異なる。
図36は、動作管理部138が制御する冗長経路切替部240内の接続状態の切り替えを示す状態遷移図である。
図36を参照して、動作管理部138が制御する冗長経路切替部240内の接続状態の切り替えについて説明する。
S080は正常モード、S081は制御用ネットワーク122aのみが異常の状態、S082は制御用ネットワーク122bのみが異常の状態、S083は制御用ネットワーク122a、bの両方が異常の状態である。
遷移条件となる事象S084は、制御用ネットワーク122aを異常と判定することである。また、S085は制御用ネットワーク122bを異常と判定することである。
また、S086は制御用ネットワーク122aを正常と判定することである。また、S087は制御用ネットワーク122bを正常と判定することである。
冗長経路切替部240の経路の接続状態は、S080では図32に示した接続状態である。また、同様に、S081では図33、S082では図34、S083では図35のそれぞれの接続状態である。
ただし、図36に示す状態遷移図の各状態と、冗長経路切替部240内部の通信経路の接続状態を対応させずに、各受信パケットごとに、通信経路の異常を判定して別の通信ポートに転送するか、制御用計算機120内にパケットを取り込んでもよい。
例えば、通信部135cの受信部137cで受信した場合で説明する。
制御用ネットワーク122a、制御用ネットワーク122bの両方とも正常であれば、通信部135bの送信部136bに転送する(図32)。
また、制御用ネットワーク122bのみが異常であれば、通信部135dの送信部136dに転送(図34、図35)する。
また、制御用ネットワーク122aのみが異常であれば、制御用計算機120内部にパケットを取り込む(図33)。
<補正遅延の算出>
前記したように第1実施形態では、補正遅延を算出するために通信経路が正常時の主ポートと冗長ポートの受信時刻ta、tbを記録し、差分Dを求めた(式7)。
しかしながら、第3実施形態では、これが制御用ネットワーク122ごとに記録する必要がある。
制御用ネットワーク122aで通信経路異常が起きた場合の補正値を算出するためには、図32におけるRx204での受信時刻tmcと、Rx200での受信時刻tmaを記録する必要がある。
同様に、制御用ネットワーク122bで通信経路異常が起きた場合の補正値を算出するためには、図32におけるRx206での受信時刻tmdとRx204での受信時刻tmcとを記録する必要がある。
制御用ネットワーク122aの通信経路異常に対する差分Daは次式で計算する。
Da = tma − tmc ・・・(式17)
制御用ネットワーク122bの通信経路異常に対する差分Dbは次式で計算する。
Db = tmc − tmd ・・・(式18)
したがって、制御用ネットワーク122aに対して、通信経路異常発生箇所を含むスレーブ間の通信遅延を算出するには、式9、式10、式12、式13における差分Dを上記のDaに置き換えればよい。
一方で、制御用ネットワーク122bの通信経路異常に対して、通信経路異常発生箇所を含むスレーブ間の通信遅延を算出するには、式9、式10、式12、式13における差分Dを次式で計算する必要がある。
D = Da2 + Db ・・・(式19)
ただし、Da2は、制御用ネットワーク122aで通信経路異常が発生している場合は、Daであり、制御用ネットワーク122aが正常な場合は0である。
<異常判定方法>
次に、通信経路の異常を判定する方法について、例を示す。
《異常判定方法・第1例》
通信経路の異常判定の第1の方法として、通信部135aからパケットを送信後に、通信部135bでパケットを受信する前に、通信部135aでパケットを受信したかどうかをみる方法が例示される。
通信部135bでパケットを受信せず、通信部135aで受信した場合に、制御用ネットワーク122aの通信経路を異常と判定する。
同様に、通信部135cからパケットを送信後に、通信部135dでパケットを受信する前に、通信部135cでパケットを受信したかどうかをみる。
通信部135dでパケットを受信せず、通信部135cで受信した場合に、制御用ネットワーク122bの通信経路を異常と判定する。
《異常判定方法・第2例》
また、通信経路の異常判定の第2の方法として、全てのスレーブが処理すべきレジスタに対するBRDコマンドをEtherCATフレームに付与し、そのワーキングカウンタを見る方法が例示される。
EtherCATフレームのワーキングカウンタの値が、事前に設定した所定の数よりも小さければ通信経路を異常と判定する。
この場合、制御用ネットワーク122aと制御用ネットワーク122bのそれぞれのネットワークに接続しているスレーブの数を事前に設定している必要がある。
制御用ネットワーク122aに接続するスレーブ数をNa、制御用ネットワーク122bに接続するスレーブ数をNbとした場合に、EtherCATフレームのワーキングカウンタの値がNaよりも小さければ、少なくとも制御用ネットワーク122aの通信経路を異常と判定する。
また、ワーキングカウンタの値が、Naより大きくNbより小さければ制御用ネットワーク122bの通信経路を異常と判定する。
これらの異常判定の方法は組み合わせて用いてもよい。いずれかの判定方法によって異常と判定した場合に異常と判定してもよいし(論理和)、両方の判定方法で異常と判定した場合に異常と判定してもよい(論理積)。
<正常判定方法>
次に、通信経路が正常であることを判定する方法について、例を示す。
《正常判定方法・第1例》
通信経路の正常判定の第1例の方法として、通信部135aからパケットを送信後に、通信部135bでパケットを受信した後に、通信部135aでパケットを受信したかどうかをみる方法が例示される。
通信部135bで受信した後に通信部135aで受信すれば、通信経路を正常と判定する。
同様に、通信部135cからパケットを送信後に、通信部135dでパケットを受信した後に、通信部135cでパケットを受信したかどうかをみる。
通信部135dでパケットを受信してから、通信部135cで受信した場合に、制御用ネットワーク122bの通信経路を正常と判定する。
《正常判定方法・第2例》
また、通信経路の正常判定の第2例の方法として、全てのスレーブが処理すべきレジスタに対するBRDコマンドをEtherCATフレームに付与し、そのワーキングカウンタを見る方法が例示される。
EtherCATフレームのワーキングカウンタの値と、事前に設定した所定数が等しい場合に通信経路を正常と判定する。
図26の構成の場合は、通信部135aで受信したEtherCATフレームのワーキングカウンタと制御用ネットワーク122aのスレーブ数Naが等しい場合に、制御用ネットワーク122aの通信経路を正常と判定する。
また、通信部135cで受信したEtherCATフレームのワーキングカウンタと制御用ネットワーク122bのスレーブ数Nbが等しい場合に、制御用ネットワーク122bの通信経路を正常と判定する。
<第3実施形態の効果>
以上の第3実施形態により、通信経路に異常が発生している場合に、冗長経路切替部240が図33、図34、図35の構成をとることで、パケットはソフトウェア処理を介さずに冗長化通信制御部102内で折り返して通信部135bからパケットを送信することができる。これによって、制御用計算機120内では一定遅延でパケットを転送できる。
さらに通信経路の異常によって、通信経路を変更した場合でも、通信経路異常の発生箇所に依存せずに、変更後の通信遅延を容易に求めることができる。これによって、通信経路に異常が発生している場合においても時刻同期アルゴリズムを実行することができる。
さらに、通信部135を4つにすることにより、制御用ネットワーク122a、制御用ネットワーク122bのそれぞれで通信経路の異常が発生した場合でも、EtherCATによるリアルタイム通信を継続することができる。
以上の効果をまとめれば、本発明の第3実施形態により、冗長化によるリアルタイム通信の高信頼化を図ることができる。
(第4実施形態)
次に、本発明に係る通信制御システムの第4実施形態について、図37、図1〜図3を参照して説明する。
第4実施形態は、通信経路において、2ヵ所以上の断線(異常発生)が起きた場合を想定したものであり、この際の冗長経路切替部131の通信経路の接続状態の切り替え切り替えの基準や通信経路状態判定部132の判定手順に特徴がある。
なお、第4実施形態において使用する符号で、第1、第2、第3実施形態と同じ符号のものは、特に断りのない限り、第1、第2、第3実施形態で説明した機能や要素等と同一であることを意味する。
第4実施形態を適用した冗長化通信制御部102の機能構成を示す図は、図3と同様であり、また制御用計算機120のハードウェア構成は、図2と同様である。
重複する説明は省略する。
第4実施形態では、前記したように2ヵ所以上の通信経路異常を想定する。
そのために、第1実施形態とは、リアルタイム通信を継続するか否かを判定することと、通信遅延の補正値の算出方法が異なる。
はじめに、リアルタイム通信を継続するかの判断について述べる。
通信経路が2ヵ所以上発生すれば、リングトポロジを構成して冗長な通信経路を用意しても、制御用計算機120(図1)と通信不可な制御対象121(図1)が発生する。したがって、2ヵ所以上の通信経路異常が発生した場合にリアルタイム通信を継続するかどうかを判断する必要がある。
判断条件として、正常に通信可能なスレーブ数、あるいは通信接続できない場合でもEtherCAT通信を継続可能とするスレーブの識別子等が例としてあげられる。これらの条件は、CPU101(図2)上で動作するプログラムによって、動作管理部138(図3)に対して設定される。
2ヵ所以上、通信経路異常が発生してもリアルタイム通信を継続する場合、制御用計算機120と通信可能な制御対象121を時刻同期させることが第4実施形態の特徴であり、また目的である。
通信経路異常をはさむスレーブ間の通信遅延は変化するため、これを補正する必要がある。遅延算出の方法は、第1実施形態と同様に、通信経路が正常時の主ポートと冗長ポートの受信時刻の差分から、通信不可なスレーブ数分の通信遅延を減じることである。
<異常発生箇所の取得方法>
第4実施形態における異常発生箇所の取得方法と、制御用計算機120と通信不可な制御対象121の数を求める方法を、図37を参照して説明する。
図37は、制御用計算機(マスタ)120における冗長経路切替部131を介して主ポートの通信部135aと冗長ポートの通信部135bから、5つの制御対象121a〜121eに通信パケットを送っているが、通信経路において2箇所に経路異常(210a、210b)が発生したときの状態を示す図である。
送信するEtherCATフレームに全てのスレーブが処理すべきレジスタに対するBRDコマンドをEtherCATフレームに付与する。
1箇所以上の通信経路で異常が発生した場合は、通信部135bでパケットを受信する前に通信部135aでパケットを受信する。
この受信の順番をもって通信経路の異常発生を検知し、通信部135aで受信した前記のBRDコマンドのワーキングカウンタを見る。
このワーキングカウンタの値Waは、通信部135aに最も近い経路異常210aまでのスレーブの数Naを反映する。
図37の場合では、制御対象121aと制御対象121bとが対象となるので、ワーキングカウンタは2である。したがって、このワーキングカウンタの示した2の値(Wa=2)で、通信部135aから通信経路122を辿ることによって、経路異常210aの発生箇所を制御対象121bと制御対象121c間の通信経路上と判定する。
次に通信部135aで受信したパケットは、冗長経路切替部131によって通信部135bへ折り返し、送信する。このパケットは再び通信部135bで受信する。
このときにBRDコマンドのワーキングカウンタの値Wbが、事前に設定したスレーブ数Nと等しければ、通信経路異常の発生箇所は1箇所と判定することができる。もし、WbがNよりも小さければ通信経路異常の発生箇所は少なくとも2箇所と判定する。
図37の場合では、Wbは3となり、WbとWaの差分が、通信部135bから、通信部135bに最も近い経路異常210bまでのスレーブの数Nbを反映する。
図37の場合では、3−2=1である。したがって、経路異常210bの発生箇所を制御対象121eと制御対象121d間の通信経路上と判定する。
スレーブ数Nから、ワーキングカウンタの値Wbを引けば、制御用計算機120と通信不可な制御対象121の数Nncを求めることができる。
図37では、5−3=2である。したがってNnc=2と判定する。
また、図37では、制御対象121c、制御対象121dが通信不可であるため、制御対象121bと制御対象121e間の通信遅延を求めて、制御対象121eの遅延レジスタの値を補正する。
以下、この補正の仕方を、図37を例として説明する。
通信経路異常発生前の通信遅延tdiffBEは、次式で求める。
diffBE = System delayE − System delayB ・・・(式20)
通信経路異常発生後の通信遅延tdiffBE2は、式7の差分Dと、制御用計算機120と通信不可な制御対象121の数Nncをもとに、式9、式10、式12、式13と同様に、下記のいずれかの式で求めることができる。
まず、Σdiを式21で定義して、
Figure 0005891086
通信遅延tdiffBE2を次の各式のように定める。
diffBE2 = D − Σdi ・・・(式22)
diffBE2 = D − Σdi − d ・・・(式23)
diffBE2 = D − Σdi − e ・・・(式24)
diffBE2 = D − Σdi − d−e ・・・(式25)
ここで、式21におけるdiは、制御用計算機120と通信不可なスレーブiにおける、EPU160を経由しないスレーブIC151内部の経路の通信遅延である。diは、事前に求めておく必要がある。
これは、システム稼働前に計測してもよいし、通信経路が正常な時に実行する時刻同期手順の実行時に算出することができる。制御対象121を構成するスレーブIC151の種類を同じにすれば、1つのスレーブに関して、diを算出すれば、制御対象121の違いによらず、同じ値を用いることができる。制御対象121間の通信ケーブルの種類や長さを同じにすれば、さらに精度を高めることができる。
通信遅延の変更分diffは次式で算出できる。
diff = tdiffBE2 − tdiffBE ・・・(式26)
したがって、式15により、通信経路異常の発生箇所以降のスレーブの遅延レジスタを更新することができる。
<3箇所以上の通信経路の異常に関して>
なお、第4実施形態では通信経路異常の発生箇所が少なくとも2箇所あることはわかるが、正確な通信経路異常の発生箇所の数はわからない。しかしながら、EtherCAT通信の継続が可能かどうかは、EtherCATスレーブと通信可能かどうかで判定するため、発生箇所の正確な数は必要ではない。
また、通信経路異常の発生箇所が変化したとしても、通信不可な経路上で発生する場合があるため、時刻の再補正を必ずしも実行する必要はないが、制御用計算機120が通信不可能なスレーブ数が変化した場合は、通信遅延が変化するため、時刻の再補正が必要である。
<第4実施形態の効果>
以上、第4実施形態によって、通信経路に異常が発生している場合に、冗長経路切替部131が図5の構成をとることで、パケットはソフトウェア処理を介さずに冗長化通信制御部102内で折り返して通信部135bからパケットを送信することができる。これによって、制御用計算機120内では一定遅延でパケットを転送できる。
さらに通信経路の異常によって、通信経路を変更した場合でも、通信経路異常の発生箇所に依存せずに、変更後の通信遅延を容易に求めることができる。これにより、通信経路に異常が発生している場合においても時刻同期アルゴリズムを実行することができる。
さらに、第1実施形態と比較して、通信経路異常が2箇所以上発生した場合でも、EtherCAT通信を継続できるような条件下においては、システムを継続できる。
また、制御用計算機120と通信可能な制御対象121においては、通信経路に異常が発生している場合においても時刻同期アルゴリズムを実行することができる。
よって、第4実施形態によって、冗長化によるリアルタイム通信の高信頼化を図ることができる。
(第5実施形態)
次に、本発明に係る通信制御システムの第5実施形態について図38〜図40を参照して説明する。
図38は、第5実施形態を適用した中継装置250を用いて構成するシステムの例を示す図である。
図38において、制御用計算機120は、制御用ネットワーク122cにおいて複数の制御対象121をライン状に接続して制御するとともに、冗長化中継ボックスである中継装置250に接続されている。
また、中継装置250からは、制御用ネットワーク122dにおいて複数の制御対象121をリング状に接続(リングネットワーク)して制御している。
つまり、中継装置250は、制御用ネットワーク122(122c、122d)中にあって、制御用計算機120から送信されたパケットを、中継装置250以降の制御対象121へ中継、転送する。
すなわち、第5実施形態は、冗長化中継ボックスである中継装置250において、通信経路の冗長化と時刻同期を実現することを想定している。
また、図38では、制御用ネットワーク122cをライントポロジとしているが、制御用ネットワーク122cをリングトポロジとし、ネットワークの途中に中継装置250を接続してもよい。
なお、第5実施形態において使用する符号で、第1〜第4実施形態と同じ符号のものは、特に断りのない限り、第1〜第4実施形態で説明した機能や要素等と同一であることを意味する。
<中継装置250のハードウェア構成>
図39は、第5実施形態を適用した中継装置250のハードウェア構成の一例を示す図である。
図39の中継装置250のハードウェア構成は、図2で説明した第1実施形態における制御用計算機120のハードウェア構成と同じような構成であるが、PHY103a〜PHY103cであるようにPHY103が3つの構成となっている点が図2とは異なる。
図39において、PHY103cは、制御用ネットワーク122c(図38)と接続する。また、PHY103a、PHY103bは、制御用ネットワーク122d(図38)と接続する。
冗長化通信制御部111は、制御用ネットワーク122cを通じて、PHY103cと通信するパケットを、PHY103aを通じて、制御用ネットワーク122dへ中継、転送する。
したがって、制御用ネットワークの中継装置の機能を果たすことが可能となる。
なお、図39において、その他の構成要素が、図2の構成要素と重複する説明は省略する。
<冗長化通信制御部111の機能構成>
次に、冗長化通信制御部111の機能構成について説明する。
図40は、第5実施形態を適用した冗長化通信制御部111の機能構成を示すブロック図である。
第5実施形態における冗長化通信制御部111は、主ポートと冗長ポートによる組み合わせのポートを3ポートとしたものであって、通信部(135a〜135c)を備えた構成となっている。つまり、第1実施形態の冗長化通信制御部102(図3、通信部(135a〜135b))と比較して、通信部135cを追加した構成となっている。
なお、第3実施形態において使用する符号で、第1実施形態と同じ符号のものは、特に断りのない限り、第1実施形態で説明した機能や要素等と同一であることを意味する。重複する説明は省略する。
また、制御用ネットワーク122cをリングネットワークとして構成する場合は、通信部135が、例えば通信部135d(図示せず)として、さらに追加される。
第5実施形態を適用した冗長化通信制御部111による動作手順は、図9で示した動作手順と同様である。
なお、図38において、中継装置250は、制御用計算機120と同様に、中継装置250自身が時刻同期を実行してもよいし、通信経路が正常時の受信部137a(図40)、受信部137b(図40)の受信時刻を記録して保持してもよい。
あるいは、受信時刻の差分を計算して保持してもよいし、複数回、差分を計算して、最小値あるいは最大値を用いてもよいし、平均値や統計処理を施した数値を用いてもよい。
これらの記録した値を所定のアドレスにおいて提示し、制御用計算機120等から取得可能としてもよい。
同様に、中継装置250が通信経路の異常の発生箇所を特定し、所定のアドレスにおいて提示し、制御用計算機120等から取得可能としてもよい。制御用計算機120は、中継装置250が提示する前記の情報を用いて、制御用ネットワーク122dのスレーブ間の通信遅延を容易に補正することができる。
また、制御用ネットワーク122dに通信経路異常が発生した場合において、通信遅延の補正がなされるまでの間、制御用計算機120からの時刻同期のパケットを無効化してもよい。
具体的には、制御用ネットワーク122cから受信したパケットを解析し、時刻同期実行後の定常状態で送信されるパケット(例えば、ARMWコマンド等)を識別すれば、制御用ネットワーク122dに送信する際に除去し、再度パケットを受信した際に、除去した部分を付加して制御用ネットワーク122cに送信することが例示される。
あるいは、制御対象121に向けて、中継装置250が算出した補正遅延や通信経路異常の発生の有無や通信経路異常の発生箇所を通知してもよい。
<第5実施形態の効果>
以上の第5実施形態により、通信経路に異常が発生している場合に、冗長経路切替部131が図5の構成をとることで、パケットはソフトウェア処理を介さずに冗長化通信制御部102内で折り返して通信部135bからパケットを送信することができる。これにより、制御用計算機120内では一定遅延でパケットを転送できる。
さらに通信経路の異常によって、通信経路を変更した場合でも、通信経路異常の発生箇所に依存せずに、変更後の通信遅延を容易に求めることができる。これにより、通信経路に異常が発生している場合においても時刻同期アルゴリズムを実行することができる。
さらに、ネットワークの特定の部分のみを冗長化して高信頼化しながら、通信経路の異常が発生しても、時刻同期精度を維持することができる。
また、中継装置250が補正遅延を算出するために必要な情報を算出して提示することで、制御用計算機120は、容易に制御用ネットワーク122dの通信経路の異常発生時にも、時刻を同期させることができる。
(その他の実施形態)
以上、本発明の実施形態について図面を参照して詳述したが、本発明はこれら実施形態およびその変形に限定されるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があってもよく、以下にその例をあげる。
《制御対象121のハードウェア構成》
第1実施形態において、制御対象121(図1)のハードウェア構成(通信ハードウェア150)として、図6のCPU101を備えた構成を説明したが、制御対象121のハードウェア構成は、図6の構成に限定されない。
例えば、CPU101を有せず、スレーブIC151(図6)から直接、周辺デバイスに接続する構成であってもよい。
図6においては、ライントポロジを構成するため、通信機能であるPHY103を2つ有しているが、終端デバイスとして構成する場合は、PHY103は1つでもよい。
また、パケットを周回させることができれば、PHY103は、3つ以上であってもよい。なお、図7のスレーブICは、4つのPHY103と接続可能な構成を示している。
《冗長化通信制御部102のパケットを識別する構成》
図10に示した冗長化通信制御部102(図2、図3)は、冗長ポートへ転送したパケットを識別する構成として説明した。しかしながら、冗長ポートへ転送したパケットと、冗長ポートで受信して冗長ポートから折り返して送信するパケットを区別できれば所望の機能を果たすことは可能である。
したがって、冗長ポートで受信して冗長ポートから折り返して送信するパケットを識別できるように構成してもよい。
《時刻管理部230の割込み確認方法》
図25では、割込み生成可能なタイマ232について説明したが、割込みによる時刻管理部230への通知ではなく、時刻管理部230が定期的にタイマ232の値を取得して、所定期間が経過していないかを確認する方法でもよい。
《所定値Th以下の判定方法》
図25のフローチャートのステップ074と、図26のステップS104においては、t1と周期Pintの和と、t2の差分の絶対値が所定値Th以下(以内)かどうか、(|(t1+Pint)―t2|<Th)を判定する方法について説明したが、この判定方法には限らない。
例えば、時刻同期割込み231の直前にタイマ割込みが発生する場合も考えられ、その場合を考慮して、周期Pintを足さずに、(|(t1―t2)|<Th)で判定してもよい。
《通信部135の個数と構成》
第3実施形態においては、通信部135を4つとしたが、より多くの通信部135を用いた場合でも同様の効果を得ることができる。また、通信部135の数が奇数の場合は、1つの通信部135に接続されるネットワークはライントポロジとなり、残りの偶数の通信部135においては、2つの通信部135ごとにリングネットワークを構成し、本発明の効果を得ることができる。
101 CPU
102、111 冗長化通信制御部
103 PHY(送受信機IC)
104、110、163 バス
108 メモリ
109 不揮発性記憶媒体
120 制御用計算機(通信制御装置)
121、121a〜121e スレーブIC、制御対象(被制御装置)
122、122a〜122d 制御用ネットワーク(ネットワーク)
130 バス接続部
131、240 冗長経路切替部
132 通信経路状態判定部
133 通信経路異常判定部
134 通信経路正常判定部
135a 通信部(第一の通信部)、主ポート
135b 通信部(第二の通信部)、冗長ポート
135、135c〜135d 通信部
136、136a〜136d 送信部
137、137a〜137d 受信部
138 動作管理部
139 パケット生成部
140 パケットフィルタ部
141 通信遅延記憶部
142 計時部
150 通信ハードウェア
151、151a〜151c スレーブIC
160 EPU、EtherCAT Processor Unit、
161 自動転送部
162 ループバック機能部
170 Ethernetフレーム
171 Ethernetヘッダ
172 データ領域
173 Frame Check Sequence、
174 EtherCATヘッダ
175 テレグラム
176 テレグラムヘッダ
177 テレグラムデータ
178 ワーキングカウンタ、WKC
210a、210b、210、122X 通信経路異常
220 コマンド
221 識別子
222 アドレス
223 データサイズ
224 予約
225 C
226 M
227 IRQ
180、182、184、200、202、204、206 Rx
181、183、185、201、203、205、207 Tx
190、191 受信処理
230 時刻管理部
231 時刻同期割込み
232 タイマ
233 アプリケーション
250 中継装置

Claims (20)

  1. 1つ又は複数の被制御装置と、ネットワークを介して前記被制御装置を制御する通信制御装置と、を備えて構成される通信制御システムであって、
    前記通信制御装置は、
    演算部と、
    パケットをネットワークに送信する送信部とネットワークからのパケットを受信する受信部とを有してなる第一の通信部および第二の通信部と、
    前記演算部と前記第一の通信部および第二の通信部との間に設けられ、通信経路を制御する冗長化通信制御部と、
    前記被制御装置を時刻同期する時刻同期部と、
    を具備し、
    前記冗長化通信制御部は、
    前記ネットワークの経路の状態を判定する通信経路状態判定部と、
    前記演算部と前記第一の通信部および第二の通信部との間の接続を切り替える冗長経路切替部と、
    パケット受信時刻を記憶する通信遅延記憶部と、
    を具備し、
    前記通信経路状態判定部は、
    前記ネットワークの通信経路の異常を判定する通信経路異常判定部と、
    前記ネットワークの通信経路の正常を判定する通信経路正常判定部と、
    を具備し、
    前記演算部は、制御対象への指令値を前記冗長化通信制御部へと送信し、前記制御対象への通信結果を前記冗長化通信制御部から受信し、
    通信部は、前記冗長化通信制御部から受信した通信内容を、前記ネットワークを介して、前記制御対象に送信し、前記制御対象から受信した結果を前記冗長化通信制御部に送信し、
    前記冗長経路切替部は、前記通信経路正常判定部が通信経路を正常と判定している場合には、前記演算部と前記第一の通信部とを接続すると共に、前記第二の通信部の受信部と送信部とを接続し、前記通信経路異常判定部が通信経路を異常と判定している場合には、前記演算部を前記第一の通信部の送信部と接続すると共に、前記演算部を前記第二の通信部の受信部とも接続し、かつ、前記第一の通信部の受信部と前記第二の通信部の送信部と、を接続し、
    前記通信遅延記憶部は、前記通信経路正常判定部が通信経路を正常と判定している場合に、前記第一の通信部の受信部でパケットを受信した第一の受信時刻と、前記第二の通信部の受信部でパケットを受信した第二の受信時刻と、を保持し、
    前記時刻同期部は、前記通信遅延記憶部が保持する第二の受信時刻と第一の受信時刻を用いて算出される遅延補正値を用いて制御対象を時刻同期する、
    ことを特徴とする通信制御システム。
  2. 前記通信制御装置は、
    さらに、通信経路異常発生箇所特定部を具備し、
    前記通信経路異常発生箇所特定部は、通信経路異常の発生箇所を特定して、通信経路が変わった前記被制御装置を識別し、
    前記時刻同期部は、前記通信経路異常発生箇所特定部が識別した前記被制御装置と時刻同期する、
    ことを特徴とする請求項1に記載の通信制御システム。
  3. 前記時刻同期部は、前記通信経路正常判定部が通信経路を正常と判定している場合の前記被制御装置の遅延情報に対して、
    前記通信経路異常判定部が通信経路を異常と判定している場合は、前記通信経路異常発生箇所特定部が識別した前記被制御装置の遅延情報に前記遅延補正値を加算する、ことを特徴とする請求項2に記載の通信制御システム。
  4. すべての前記被制御装置は、通信を受信した場合に、所定の数を足す通信内容をパケットに付与し、
    前記通信制御装置の前記通信経路異常発生箇所特定部は、前記パケットを受信した場合に、前記通信内容の数を用いて通信経路異常発生箇所を特定する、
    ことを特徴とする請求項2に記載の通信制御システム。
  5. 前記通信経路異常発生箇所特定部は、
    前記被制御装置の通信経路情報が通信経路の異常を示す場合に、前記被制御装置の接続する通信経路を異常と特定する、
    ことを特徴とする請求項2に記載の通信制御システム。
  6. すべての前記被制御装置は、通信を受信した場合に、所定の数を足す通信内容をパケットに付与し、
    前記通信制御装置の前記時刻同期部は、前記通信経路異常発生箇所特定部が識別した前記被制御装置のパケットを受信した際には、数が所定の値以上となるように初期値を設定した通信内容を前記パケットに付与する、
    ことを特徴とする請求項2に記載の通信制御システム。
  7. 前記時刻同期部は、前記通信経路異常判定部が通信経路を異常と判定している場合に、前記第一の通信部の前記受信部で受信したパケットに対して、
    前記通信経路異常発生箇所特定部が識別した前記被制御装置の前記遅延補正値、遅延情報と前記遅延補正値の加算値、通信経路の変更有無のいずれかまたは複数の情報を付加して、
    前記第二の通信部の前記送信部から送信する、
    ことを特徴とする請求項2に記載の通信制御システム。
  8. 前記通信遅延記憶部は、
    前記通信経路正常判定部が通信経路を正常と判定している場合の前記被制御装置の遅延情報と前記遅延補正値、
    前記通信経路異常判定部が通信経路を異常と判定している場合の前記通信経路異常発生箇所特定部が特定した通信経路異常の発生箇所、
    通信経路が変わった前記被制御装置、
    のいずれかまたは複数を保持し、
    前記時刻同期部は、
    前記通信経路状態判定部の通信経路の判定が異常から正常に変わった場合に、前記通信遅延記憶部が保持する情報を用いて前記被制御装置と時刻同期する、
    ことを特徴とする請求項2に記載の通信制御システム。
  9. 前記通信制御装置は、
    前記通信経路異常判定部が通信経路を異常と判定している場合に、前記第一の通信部の前記受信部で受信してから、前記第二の通信部の前記送信部から送信したパケットを識別し、
    前記第一の通信部で受信した第一のパケットが前記識別したパケットである場合に、
    前記第一のパケットを破棄する、
    前記第一のパケットを転送する、
    前記通信経路正常判定部が通信経路を正常と判定する、
    のいずれかまたは複数の処理を実行する
    ことを特徴とする請求項1に記載の通信制御システム。
  10. 前記通信制御装置は、
    前記通信経路異常判定部が通信経路を異常と判定している場合に、前記第一の通信部の前記受信部で受信してから、前記第二の通信部の前記送信部から送信したパケットを識別し、
    前記第二の通信部で受信した第一のパケットが前記識別したパケットである場合に、
    前記第一のパケットを破棄する、
    前記第一のパケットを転送する、
    前記通信経路異常判定部が通信経路を異常と判定する、
    のいずれかまたは複数の処理を実行する、
    ことを特徴とする請求項1に記載の通信制御システム。
  11. 前記時刻同期部は、前記遅延補正値の算出に前記被制御装置内の通信遅延を用いる、
    ことを特徴とする請求項1に通信制御システム。
  12. 前記通信遅延は、経路異常発生箇所に隣接する前記被制御装置内の通信遅延である、
    ことを特徴とする請求項11に記載の通信制御システム。
  13. 前記時刻同期部は、
    通信不可な前記被制御装置の数をもとに前記遅延補正値を算出する、
    ことを特徴とする請求項1に記載の通信制御システム。
  14. 前記時刻同期部は、
    前記通信経路異常判定部が通信経路を異常と判定した場合に時刻補正パケットの送信を停止し、所定事象後に前記時刻補正パケットの送信を再開する、
    ことを特徴とする請求項1に記載の通信制御システム。
  15. ネットワークを介して1つ又は複数の被制御装置を制御する通信制御装置は、
    演算部と、
    パケットをネットワークに送信する送信部とネットワークからのパケットを受信する受信部とを有してなる第一の通信部および第二の通信部と、
    前記演算部と前記第一の通信部および第二の通信部との間に設けられ、通信経路を制御する冗長化通信制御部と、
    前記被制御装置を時刻同期する時刻同期部と、
    を具備し、
    前記冗長化通信制御部は、
    前記ネットワークの経路の状態を判定する通信経路状態判定部と、
    前記演算部と前記第一の通信部および第二の通信部との間の接続を切り替える冗長経路切替部と、
    パケット受信時刻を記憶する通信遅延記憶部と、
    を具備し、
    前記通信経路状態判定部は、
    前記ネットワークの通信経路の異常を判定する通信経路異常判定部と、
    前記ネットワークの通信経路の正常を判定する通信経路正常判定部と、
    を具備し、
    前記演算部は、制御対象への指令値を前記冗長化通信制御部へと送信し、前記制御対象への通信結果を前記冗長化通信制御部から受信し、
    通信部は、前記冗長化通信制御部から受信した通信内容を、前記ネットワークを介して、前記制御対象に送信し、前記制御対象から受信した結果を前記冗長化通信制御部に送信し、
    前記冗長経路切替部は、前記通信経路正常判定部が通信経路を正常と判定している場合には、前記演算部と前記第一の通信部とを接続すると共に、前記第二の通信部の受信部と送信部とを接続し、前記通信経路異常判定部が通信経路を異常と判定している場合には、前記演算部を前記第一の通信部の送信部と接続すると共に、前記演算部を前記第二の通信部の受信部とも接続し、かつ、前記第一の通信部の受信部と前記第二の通信部の送信部と、を接続し、
    前記通信遅延記憶部は、前記通信経路正常判定部が通信経路を正常と判定している場合に、前記第一の通信部の受信部でパケットを受信した第一の受信時刻と、前記第二の通信部の受信部でパケットを受信した第二の受信時刻と、を保持し、
    前記時刻同期部は、前記通信遅延記憶部が保持する第二の受信時刻と第一の受信時刻を用いて算出される遅延補正値を用いて前記制御対象を時刻同期する、
    ことを特徴とする通信制御装置。
  16. さらに、通信経路異常発生箇所特定部を具備し、
    前記通信経路異常発生箇所特定部は、通信経路異常の発生箇所を特定して、通信経路が変わった前記被制御装置を識別し、
    前記時刻同期部は、前記通信経路異常発生箇所特定部が識別した前記被制御装置と時刻同期する、
    ことを特徴とする請求項15に記載の通信制御装置。
  17. 前記時刻同期部は、前記通信経路正常判定部が通信経路を正常と判定している場合の前記被制御装置の遅延情報に対して、
    前記通信経路異常判定部が通信経路を異常と判定している場合は、前記通信経路異常発生箇所特定部が識別した前記被制御装置の遅延情報に前記遅延補正値を加算する、ことを特徴とする請求項16に記載の通信制御装置。
  18. 請求項15に記載の前記通信制御装置からネットワークを介して制御および時刻同期される被制御装置は、
    パケットをネットワークに通信する被制御装置通信部と、
    前記通信部で通信されるパケットを用いて時刻同期する被制御装置時刻同期部と、
    通信経路状態を判定する被制御装置通信経路状態判定部と、
    被制御装置通信遅延記憶部と、
    を備え、
    前記被制御装置通信経路状態判定部は、
    前記ネットワークの通信経路の異常を判定する被制御装置通信経路異常判定部と、
    前記ネットワークの通信経路の正常を判定する被制御装置通信経路正常判定部と、
    を有し、
    前記被制御装置通信遅延記憶部は、
    前記被制御装置通信経路正常判定部が通信経路を正常と判定している場合の遅延情報と、前記遅延補正値と、を保持し、
    前記被制御装置時刻同期部は、
    前記被制御装置通信経路正常判定部が通信経路を正常と判定している場合は前記遅延情報を用いて時刻同期し、
    前記被制御装置通信経路異常判定部が通信経路を異常と判定している場合は前記遅延情報と、前記遅延補正値とを用いて時刻同期する、
    ことを特徴とする被制御装置。
  19. 前記被制御装置通信経路状態判定部は、前記通信制御装置からの通信を用いて、通信経路の状態を
    判定することを特徴とする請求項18に記載の被制御装置。
  20. 前記被制御装置は、
    前記被制御装置通信部が接続する通信経路の異常を判定した場合に、通信経路の異常発生を示す所定の情報を通信パケットに付加して送信する、
    ことを特徴とする請求項18に記載の被制御装置。
JP2012072803A 2012-03-28 2012-03-28 通信制御システム、通信制御装置、および被制御装置 Active JP5891086B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012072803A JP5891086B2 (ja) 2012-03-28 2012-03-28 通信制御システム、通信制御装置、および被制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012072803A JP5891086B2 (ja) 2012-03-28 2012-03-28 通信制御システム、通信制御装置、および被制御装置

Publications (2)

Publication Number Publication Date
JP2013207452A JP2013207452A (ja) 2013-10-07
JP5891086B2 true JP5891086B2 (ja) 2016-03-22

Family

ID=49526158

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012072803A Active JP5891086B2 (ja) 2012-03-28 2012-03-28 通信制御システム、通信制御装置、および被制御装置

Country Status (1)

Country Link
JP (1) JP5891086B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6233021B2 (ja) * 2013-12-27 2017-11-22 株式会社Ihi 通信分配装置
DE102014006231A1 (de) 2014-04-30 2015-11-05 Omron Corporation Verbinden mehrerer Slave-Einheiten mit einer Master-Steuereinheit in einem System mit verteilter Steuerung
JP6465620B2 (ja) 2014-10-31 2019-02-06 ヤマハ発動機株式会社 制御システムおよび制御方法
JP2016119616A (ja) * 2014-12-22 2016-06-30 富士電機株式会社 リング型ネットワークシステム、そのマスタノード
JP6208712B2 (ja) * 2015-04-28 2017-10-04 日本電信電話株式会社 時刻同期方法および時刻同期装置
JP6729040B2 (ja) * 2016-02-02 2020-07-22 富士電機株式会社 通信システム、ノード装置、およびプログラム
JP2019153941A (ja) * 2018-03-02 2019-09-12 株式会社日立製作所 通信制御装置及び通信制御システム
JP7330329B2 (ja) * 2018-03-02 2023-08-21 株式会社日立製作所 通信制御装置及び通信制御システム
CN108803564B (zh) * 2018-05-28 2020-08-18 湖北三江航天万峰科技发展有限公司 一种通讯控制设备自动化测试系统与方法
JP2021091053A (ja) * 2019-12-11 2021-06-17 セイコーエプソン株式会社 ロボットシステムおよびロボットの制御装置
CN112078630B (zh) * 2020-08-25 2022-10-18 通号城市轨道交通技术有限公司 一种列车控制系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2590694B2 (ja) * 1993-07-27 1997-03-12 日本電気株式会社 同期切替装置
US7046621B2 (en) * 2002-07-10 2006-05-16 I/O Controls Corporation Redundant multi-fiber optical ring network
US8072999B1 (en) * 2007-05-08 2011-12-06 Motion Engineering Inc. Method and system for removing and returning nodes in a synchronous network
JP2009200872A (ja) * 2008-02-22 2009-09-03 Nec Saitama Ltd 冗長構成システムにおける基準信号同期制御方法
JP2010278897A (ja) * 2009-05-29 2010-12-09 Renesas Electronics Corp 通信データ処理回路及び通信データ処理方法
JP5394283B2 (ja) * 2010-02-25 2014-01-22 株式会社日立産機システム 情報処理装置及び制御用ネットワークシステム

Also Published As

Publication number Publication date
JP2013207452A (ja) 2013-10-07

Similar Documents

Publication Publication Date Title
JP5891086B2 (ja) 通信制御システム、通信制御装置、および被制御装置
EP2362585B1 (en) Information processor and network control system
US8792508B2 (en) Subscriber and communication controller of a communication system and method for implementing a gateway functionality in a subscriber of a communication system
JP5923430B2 (ja) 通信制御装置
EP2774336B1 (en) Real-time distributed network module, real-time distributed network and method therefor
Berwanger et al. FlexRay–the communication system for advanced automotive control systems
JP4873663B2 (ja) 信号を復号するための方法と装置
US9467309B2 (en) Network distributor
CN102577254A (zh) 故障安全通信的方法和系统
JP2001024630A (ja) 2つのネットワーク間での同期方法および装置
JP7423249B2 (ja) 制御装置及び分散制御システム
JP7393530B2 (ja) パケット転送方法、デバイス、およびシステム
JP6045950B2 (ja) 通信制御装置及び通信システム
JP6709086B2 (ja) 通信制御装置、および、通信制御方法
KR20150019499A (ko) 게이트웨이의 메시지 처리 방법
JP4224100B2 (ja) バスシステムを介してデータを交換する方法,装置およびシステム
JP6231453B2 (ja) 通信制御装置
JP2019179361A (ja) セーフティ制御システムおよびセーフティ制御ユニット
JP2016119616A (ja) リング型ネットワークシステム、そのマスタノード
WO2019167415A1 (ja) 通信制御装置及び通信制御システム
US20160197856A1 (en) Port Status Synchronization Method, Related Device, and System
US20160315839A1 (en) Transmission method, transmission system, and transmission device
JP7330329B2 (ja) 通信制御装置及び通信制御システム
JP7337021B2 (ja) 産業用ネットワークに接続されるスレーブ装置を制御するマスタ装置及び当該マスタ装置に備えられる通信モジュール
EP2260622A1 (en) Network device performing connection check, network system, and frame transfer method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140730

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150709

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150721

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150918

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: 20160202

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160222

R150 Certificate of patent or registration of utility model

Ref document number: 5891086

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150