JP5891086B2 - 通信制御システム、通信制御装置、および被制御装置 - Google Patents
通信制御システム、通信制御装置、および被制御装置 Download PDFInfo
- 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
Links
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Description
一般に、スレーブでは2つのEthernetポートを有し、これを接続していくことでリングトポロジを構成する。ただし、マスタは、Ethernetポートが1つであっても構わない。
この場合は、リングネットワーク上の終端のスレーブが内部でパケットを折り返すことで、最終的にマスタの1つのEthernetポートにパケットを戻す。したがって、例えば、見た目上はライントポロジを構成する場合であっても、パケットの通信経路に着目すれば、論理的なリングトポロジになっている。
まず、はじめにEtherCATのリングネットワークが切断された状態では、EtherCATの時刻同期機能が十分な性能で機能しない。
例えば図41に示した例では、EtherCATマスタにおいて、2つの通信ポートのそれぞれから時刻同期用のパケットを送信した場合、それぞれのパケットはリングネットワークを周回せず、送信した通信ポートとは別のもう一方の通信ポートで受信することとなる。したがって、時刻同期のための通信遅延の計算等ができない。
さらに、図42に示すようなスレーブBとスレーブC間の断線時には、ネットワークが二分され、全スレーブ間で時刻を同期することができない。図42では、ネットワークがスレーブA、Bと、スレーブC、Dに二分される。スレーブA、D間でパケットを転送しようとすることができるが、汎用のパソコンを用いる構成では、ソフトウェアを介して、もう片方の通信ポートからパケットを送信する必要がある。しかしながら、このソフトウェア処理はEtherCATスレーブのパケット転送処理に比較して、より長い遅延とジッタを生じる。したがって、全スレーブ間で時刻を同期することができない。
例えば、図20に示す断線の場合においては、スレーブBを経過したパケットは、通信経路の異常発生箇所があるため、マスタに戻り、スレーブCへと転送される。この時、スレーブB、C間の通信経路が変化しているため、新たにスレーブB、C間の通信遅延を算出する必要がある。しかしながら、スレーブCへと転送されたパケットは、その後、スレーブBへ戻ることなく、マスタで受信される。この場合、図8で示した方法にしたがって、式1〜式5に示す計算方法が利用できないため、個別に各通信経路上の通信遅延を求めて合計する必要がある。しかしながら、この方法にはいくつかの課題がある。一つ目は、計算そのものが困難であることである。例えば、マスタを経由する際の遅延(図20の遅延t3)は、求めること自体が難しい。二つ目の課題は、断線箇所によって計算する経路の数が変化することである。これは、通信遅延の計算を複雑化させ、結果として容易に求めることができない。
これらの課題により、通信経路での異常発生時に再び同期するまでの時間がかかれば、各スレーブ間の同期精度は時間経過とともに悪化する。場合によっては、システムが満足すべき許容値を下回る可能性がある。
即ち、本発明の通信制御システムは、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上で動作するアプリケーションプログラムがある。
なお、図2の構成では、PHY103と冗長化通信制御部102が接続しているので、EthernetのMAC(Media Access Control)層の処理は、冗長化通信制御部102に含まれる。
ただし、MAC機能を提供するICを冗長化通信制御部102とPHY103間に配置する構成や、MAC機能を提供するICとPHY103を組み合わせた通信用ICと冗長化通信制御部102を接続する構成においても、本発明の効果は失われるものではない。なお、PHY103は、冗長化通信制御部102に含まれていてもよい。
次に、冗長化通信制御部の各機能部を説明する。
図3は、本発明の第1実施形態を適用した冗長化通信制御部102の機能構成の一例を示す図である。
図3において、バス接続部130は、制御用計算機120(図2)のハードウェア構成においてバス110(図2)と接続する。バス接続部130は、バス110(図2)の通信仕様に応じてCPU101(図2)やメモリ108(図2)と通信する。また、冗長化通信制御部102(図3)内においては動作管理部138や冗長経路切替部131と接続し、冗長経路切替部131と通信パケットを送受信し、動作管理部138とは冗長化通信制御部102の制御情報、状態情報を通信する。
冗長経路切替部131内部の通信経路の接続について、図4、図5を参照して先に説明する。図3の他の回路は、冗長経路切替部131内部について記した後に、説明する。
図4は、冗長経路切替部131内部の通信経路の第1の接続形態を示す図である。
図5は、冗長経路切替部131内部の通信経路の第2の接続形態を示す図である。
冗長経路切替部131は、動作管理部138からの指令によって、図4、図5に示す通信経路の接続形態をとる。なお、受信ポートのRX184と送信ポートのTX185の組み合わせが主ポートであり、受信ポートのRX182と送信ポートのTX183の組み合わせが冗長ポートである。
CPU101上で動作するアプリケーションから送信されるパケットデータはTx181を介して、冗長経路切替部131に送信される。一方、ネットワークから冗長経路切替部131が受信したパケットデータはRx180を介して、CPU101上で動作するアプリケーションやメモリ108に転送される。
Rx184は、通信部135aの受信部137aと、Tx185は、通信部135aの送信部136aと接続している。Rx182は、通信部135bの受信部137bと、Tx183は、通信部135bの送信部136bと接続している。
通信経路状態判定部132は、通信経路異常判定部133と通信経路正常判定部134とを備えて構成され、後記するパケットフィルタ部140から受信する内容を元に通信経路の状態を判定する。
それによって、制御用ネットワーク122が途中で切断されている等の異常や、正常に通信しているか等を判定し、その判定結果を動作管理部138に通知する。また、通信経路の状態を判定するために、受信部137a、137bからの受信経路と接続し、通信パケットを監視する。
通信経路異常判定部133は、制御用ネットワーク122が途中で切断されているなどの異常の発生を判定する。
通信経路正常判定部134は、制御用ネットワーク122が正常に通信しているかを判定する。
前記した図2の構成では、PHY103が冗長化通信制御部102外にあるため、通信部135はMAC層の処理部に該当する。ただし、冗長化通信制御部102をMAC層、PHY層を含めたEthernet通信デバイスと接続する場合はMAC層との接続インターフェース部となり、また、PHY機能まで含めて冗長化通信制御部102に包含してもよい。
受信部137(137a、137b)は、通信部135(135a、135b)における受信機能部であり、制御用ネットワーク122(図2)から送信されたパケットを受信する。
CPU101(図2)上で動作するプログラムは、バス110を介して動作管理部138の機能レジスタにアクセスすることにより、冗長化通信制御部102の動作の制御、状態の取得を実行する。
動作管理部138で設定可能な項目として、2つの通信ポートのどちらからパケットを送信するか、システムの想定するスレーブ数、通信経路の状態判定基準、冗長経路切替部131の経路切替等が挙げられる。また、取得可能な情報として、ネットワークに接続しているスレーブ数、異常の有無が発生していると考えられる通信経路の場所に関する情報等が考えられる。
通信経路状態判定部132からは、通信経路の状態を判定するためにこれらの要求がなされる。ただし、特にパケットを修正、追加しない場合は、バス接続部130から受信したデータをそのまま送信する。なお、バス接続部130から直接パケットを131へ送信する場合は、バス接続部130とパケット生成部139の送信データ信号のどちらかを選択的に冗長経路切替部131へ送信する構成としてもよい。
次に、図6を参照して、制御対象121(図1)のハードウェア構成(通信ハードウェア150、図6)について説明する。
本発明の第1実施形態の特徴である通信経路の時刻同期の確保においては、制御対象121の動作が関係する。IEC61158、IEC61784パート2のCommunication Profile Family 12で定義されるEtherCAT仕様に準拠した制御対象121を例に説明する。ただし、本発明の効果はEtherCAT仕様に限定されない。
図6において、通信ハードウェア150は、CPU101と不揮発性記憶媒体109とスレーブIC151と2つの送受信機ICであるPHY103を備えて構成されている。
CPU101は、バス163を介してスレーブIC151を制御する。
スレーブIC151は、主ポートと冗長ポートの役目をする2つのPHY103によって通信を行う。また、スレーブIC151は、通信に必要な情報の記憶と参照において不揮発性記憶媒体109を用いる。
スレーブIC151は、IEC61158、IEC61784パート2のCommunication Profile Family 12で定義されるEtherCAT仕様に準拠したスレーブ専用のICである。
次に、スレーブIC151の構成について説明する。スレーブIC151は、EtherCAT Processor Unit160(図7参照)を備えており、EtherCAT仕様に準拠して、通信処理を実行するICである。
EPU(EtherCAT Processor Unit)160は、所定の事象に関連して、計時する機能を有する。具体的には、所定のアドレスにアクセスするコマンドを受信した場合に、各通信ポートで受信した時刻を計時し、レジスタとして公開する(図8参照)。なお、図8と時刻の計時の詳細については、後記する。
制御用計算機120(図1)は、該レジスタにアクセスして、これらの時刻を取得可能である。
図7は、スレーブIC151のハードウェア構成を示す図である。
図7において、通信ポート(0〜3)と自動転送部161とループバック機能部162との組み合わせによる通信ポート機能構成部が4組ある。
また、EPU160が、通信ポート0に係るループバック機能部162と、通信ポート1に係るループバック機能部162との間に、接続されている。
また、バス163が、EPU160からスレーブIC151の外部と接続されている。バス163の詳細は後記する。
自動転送部161は、受信したパケットを隣接する通信ポートへ、転送する機能部である。転送方向は、スレーブIC151内で一定になっており、通信ポート0、3、1、2、0の順である。
ループバック機能部162は、EPU160からの設定とループバック機能部162が接続する通信経路の接続状態によって、通信ポートへ通信パケットを送信するか、あるいは隣接するループバック機能部162へ通信パケットを転送する機能部である。
ループバック機能部162は、制御用計算機120から送信される通信内容にしたがって、EPU160によって設定される。
また、常に隣接するループバック機能部162へ通信パケットを転送するCloseモードがある。
また、接続している通信ポートの設定状態によって通信パケットの送信経路を切り替えるAutoモードがある。
また、接続している通信ポートの設定状態によって通信パケットの送信経路を切り替えるが、隣接する制御対象121、あるいは制御用計算機120と通信経路を再度確立する場合は明示的にEtherCATマスタから指定する必要のあるAuto Closeモードがある。
あるいは、通信経路が接続していないか、通信経路中に異常、故障があり、隣接する制御用計算機120、あるいは制御対象121と通信経路が確立していない場合は、ループバック機能部162は、隣接するループバック機能部162へ通信パケットを転送する。
なお、EtherCAT仕様に限定せずに、制御対象121は通信経路の異常に対して、パケットを制御用計算機120へ折り返す機能を有していれば、本発明の効果は失われない。すなわち、CPU101が通信経路の異常を検知して、パケットを折り返す方法や、マスタが制御対象121に対して、パケットを折り返すように設定してもよい。
また、バス163上に割込み信号をもうけてもよい。割込みを通知する方向は、EPU160から対向装置でも構わないし、対向装置からEPU160でもよい。
各通信ポートは、隣接するスレーブとEtherCATで定義される物理仕様(Ethernet、あるいはEBUS等)で接続する。
なお、通信経路の異常の判定方法の詳細については、後記する。
図7に示したスレーブIC151の時刻同期機能について説明するに先立って、まず、EtherCATの時刻同期機能の概略について説明する。そして、その後に、スレーブIC151の時刻同期機能について説明する。
図1に示したマスタの有する2つのポートを利用した冗長化構成におけるEtherCATの時刻同期機能の概略について説明する。
EtherCATの時刻同期機能は、スレーブ間の通信遅延計測、各スレーブの時計のオフセット補償、各スレーブが有する時計の進み具合のドリフト補償という3段階で構成されている。
このうち、各スレーブ間の通信遅延計測は、図8に示すアルゴリズムを基本としている。
図8において、EPU(EtherCAT Processor Unit)160は、EtherCAT仕様に準拠して、通信処理を実行するICである。なお、EPU160は、スレーブIC151の中に備えられている。
また、Ta、Tb、Tc、Td、Teは、時刻同期用の所定のパケット(時刻同期用パケットとする)の各ポートにおける受信時刻である。
また、TAP、TBP、TCPは、各スレーブA、B、CのEPU160における受信時刻である。
なお、図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は、次式で算出できる。
tdiffBC=(Td−Tb)÷2 ・・・(式1)
ただし、tdiffBCとtdiffCBは等しいとする。なお、EtherCATスレーブのプロセッサユニットは、同種のものを利用していると仮定している。もし、プロセッサユニットが異なる場合は、tpの違いを考慮する必要がある。
また、スレーブBとスレーブA間の通信遅延tdiffABは、次式で求められる。
tdiffAB={(Te−Ta)−(Td−Tb)−tp} ÷ 2+tp ・・・(式2)
tdiffBA=tdiffAB−tp ・・・(式3)
このように時刻同期機能を実現する場合には、時刻同期用のパケットをリングネットワークで周回させる必要がある。言い換えると、あるスレーブにおいて往路と復路におけるパケットの受信時刻をもとに通信遅延を計算する。
例えば、図8でスレーブAを基準とする場合、スレーブAとスレーブB間の通信遅延は、tdiffABとなり、スレーブAとスレーブC間の通信遅延tdiffACは、次式となる。
tdiffAC= tdiffAB +tdiffBC ・・・(式4)
例えば、スレーブBにおけるスレーブAとの時刻のオフセットOffsetB(数式ではOffsetBと表記)は、次式で求められる。
OffsetB = TAP − TBP ・・・(式5)
各スレーブは、スレーブAとの通信遅延と、時刻のオフセットを用いて、基準時刻と同期することができる。
EtherCATにおいては、時刻同期に対応したスレーブの中で、マスタに最も近い(ホップ数の小さい)スレーブの時刻を基準時刻とする。
次に、図1における制御対象121(スレーブ)における時刻同期機能について説明する。
制御対象121は、基準時刻に同期するための機能を備える。例えば、制御対象121自身の管理する時刻(以下、ローカルクロックとする)と、基準時刻の差(以下、時刻オフセットとする)を保持し、ローカルクロックを基準時刻に同期する。
あるいは、基準時刻を有する制御対象121(制御用計算機120でもよい)と制御対象121間の通信遅延を、時刻オフセットと別に管理し、時刻オフセットとあわせて、ローカルクロックを基準時刻に同期してもよい。
スレーブBとスレーブA間の通信遅延tdiffABと、時刻オフセットOffsetBを用いて、スレーブBのローカルクロックCBは次式のように基準時刻CAに同期させる。
CA = CB + OffsetB − tdiffAB ・・・(式6)
なお、時刻オフセットや、通信遅延は複数回求めて最小値あるいは最大値を用いてもよいし、平均値や統計処理を施した数値を用いてもよい。
また、基準時刻の計算においても式6による推定だけでなく、定期的に基準時刻を取得し、基準時刻を所定の数学モデルで近似する方法が例示される。
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例)を示すフローチャートである。
はじめに、冗長経路切替部131の内部状態を図4に示す正常モードに設定する(ステップS001)。そして、ステップS002に進む。
次に、EtherCATの正規の手順にしたがい、アプリケーションに応じたリアルタイム通信を実行する(ステップS002)。そして、ステップS003に進む。
ステップS003において、冗長化通信制御部102は、パケットを受信するまで待機する。パケットを受信しなければ(N:S003)、ステップS003の先頭に戻り、引き続きパケットを受信するまで待機する。
また、パケットを受信すれば(Y:S003)、ステップS004に進む。
ステップS004において、パケットの受信が、主ポートによる受信か否かを判定する。主ポートの受信であれば(Y:S004)、ステップS005に進む。
また、主ポートの受信でなければ(N:S004)、ステップS010に進む。
ステップS005において、通信経路に異常が発生しているかを判定する。異常が発生していれば(Y:S005)、ステップS006に進む。
また、異常が発生していなければ(N:S005)、ステップS008に進む。
異常が発生しているので、冗長ポートへパケットを転送し、冗長ポートから送信する。
そして、ステップS007に進む。
次に、ステップS007において、後述する時刻同期補正処理(時刻補正処理)を実行する。そして、終了する。
ステップS008では、ステップS005において、異常が発生していないとの判定を受けて、主ポートでのパケット受信時刻tbを計時し、通信遅延記憶部141に記録する。そして、ステップS009に進む。
ステップS009では、パケットを制御用計算機120内部に取り込む。そして、終了する。
ステップS010では、ステップS004において、主ポートでのパケットの受信でなかったのを受けて、異常が発生しているかを判定する。
異常が発生していれば(Y:S010)、ステップS009に進む。また、異常が発生していなければ(N:S005)、ステップS011に進む。
ステップS011では、冗長ポートでのパケット受信時刻taを計時し、通信遅延記憶部141に記録する。そして、ステップS012に進む。
ステップS012では、冗長ポートからパケットを送信する。そして、終了する。
次に、冗長化通信制御部102の動作手順の別の例(第2例)を示す。
図10は、冗長化通信制御部102の動作手順の第2例を示すフローチャートである。
前記した図9との違いを図10の点線部に示す。異なる箇所はステップのS020〜S024である。
図10と図9との違いであるステップのS020〜S024は、図10において、冗長ポートへ転送したパケットを識別可能とし、パケットがネットワーク中にある状態での通信経路の変化に対応可能としていることに関連している。
図9、図10におけるステップS004において、パケットを主ポートで受信した場合(Y:S004)であって、ステップS020で、冗長ポートへ転送したパケットか否かを判定する。
冗長ポートへ転送したパケットである場合(Y:S020)、ステップS021に進む。また、冗長ポートへ転送したパケットでない場合(N:S020)、ステップS005に進む。
ステップS021において、冗長ポートへ転送したパケットについて、対応処理を実行する(S021)。
なお、この冗長ポートへ転送したパケットが発生する状態については、後記する。
ステップS022において、冗長ポートへ転送したパケットを識別可能な状態とする。
これは、図9、図10のステップS005において、冗長ポートへの転送ではない、転送パケットの場合であるので、異常は発生している。したがって、パケットの識別が必要となる。
パケットを識別する方法としては、パケットへ所定の処理を加えることや、冗長化通信制御部102でパケットを識別するための情報を記憶する方法が例示される。
パケットへ加える処理としては、所定の位置を所定値にすることや、シーケンス番号を設定する方法、特定のパラメータを設定する方法が例示される。
なお、EtherCATで例示するため、EtherCATのパケット構成の詳細については、後記する。
また、冗長化通信制御部102でパケットを識別するためにパケットへ加える処理の詳細については後記する。
ステップS023で、冗長ポートへの転送パケットか否かを判定する。
冗長ポートへ転送したパケットである場合(Y:S023)、ステップS009に進む。また、冗長ポートへ転送したパケットでない場合(N:S023)、ステップS010に進む。
ステップS024では、図10のステップS010において、異常が発生しているとの判定を受けて、その対応処理を実行する。そして、終了する。
なお、冗長ポートへ転送したパケットが発生する状態についての詳細については、後記する。
以上のフローチャートで詳細な説明を省略したステップのS021、S022、S023において省略した項目について順に詳しく説明する。
ステップS021における冗長ポートへ転送したパケットが発生する状態について、説明する。
冗長ポートへ転送したパケットの処理方法について述べる前に、このパケットが発生する状態について図11A、図11Bを用いて説明する。
図11Aは、冗長経路切替部131を介して主ポートと冗長ポートの通信部によって、4つの制御対象121であるスレーブA〜スレーブDに通信パケットを送っているが、通信経路異常122Xが発生した状態を示す図である。
また、図11Bは、冗長経路切替部131を介して主ポートと冗長ポートの通信部によって、4つの制御対象121であるスレーブA〜スレーブDに通信パケットを送っていて、通信経路が正常な状態を示す図である。
スレーブBに備えられたEPU(EtherCAT Processor Unit)160は、通信経路異常122Xを検知して、スレーブBで通信パケットを折り返し、再びスレーブAへ転送し、マスタの主ポート135aの受信部137aに入力する。
マスタはスレーブのEPU160の情報から通信経路異常122Xの発生を検知して、冗長経路切替部131の接続経路を図11Aに示すように切替える。
以上の経路を辿ることにより、冗長ポートへ転送したパケットが発生する。
なお、図11Aと図11Bの冗長経路切替部131の切替え状態は、それぞれ図5、図4に対応している。
ステップS022において、詳細な説明を省略したが、次にパケットの構成について、説明する。また、ワーキングカウンタであるWKC178についても説明する。
EtherCATで例示するため、EtherCATのパケット構成の例を次に示す。
図12は、EtherCATのパケット構成の例を示す図である。
図12に示すように、EtherCATの通信内容は、Ethernetフレーム(170)のデータ領域(172)に格納される。
EtherCATにおける、Ethernetヘッダ171のTypeフィールドは0x88A4である。データが正しいかどうかをFCS(Frame Check Sequence)173を用いて検査する。
ワーキングカウンタ178は、そのテレグラムを処理すべきスレーブで正しく処理されるたびに、スレーブによって所定の数だけカウントアップされるフィールドである。
コマンド220は、EtherCAT仕様におけるコマンドを示す。識別子221は、データグラムの識別子である。アドレス222は、EtherCAT仕様におけるアドレスである。データサイズ223は、データ177のサイズである。予約224は、所定動作の予約である。C225は、フレームが巡回していることを示す。M226は、後続のテレグラムが存在することを示す。IRQ227は、スレーブからの所定事象の発生を制御用計算機120に通知するために用いられる。
ステップS023において、詳細な説明を省略したが、次にパケットが発生する状態につい、説明する。
S023の対応処理方法を述べるために、冗長ポートへ転送したパケットが発生する状態について図13A、図13Bを用いて説明する。
図13Aは、冗長経路切替部131を介して主ポートと冗長ポートの通信部によって、4つの制御対象121であるスレーブA〜スレーブDに通信パケットを送っていて、通信経路が正常な状態を示す図である。
また、図13Bは、冗長経路切替部131を介して主ポートと冗長ポートの通信部によって、4つの制御対象121であるスレーブA〜スレーブDに通信パケットを送っているが、通信経路異常122Xがある状態を示す図である。
したがって、冗長ポートへ転送したパケット受信に対する処理方法としては、パケットを破棄してもよいし、複数のパケットを受信したスレーブ(例えば、図13A、図13BのC、D)に再アクセスし、異常がないかを確認してもよい。あるいは、通信経路が異常になったと判断し、冗長経路切替部131を図5に示す異常モードとしてもよい。
S021、S024で未アクセスのスレーブ、あるいは複数回パケットを受信したスレーブを特定するために、通信経路の異常の発生箇所を特定する必要がある。
通信経路の異常の発生箇所の特定方法を図14、図16に示す。
また、図15は、第1実施形態を適用したシステムにおいて、通信経路に異常が発生している状態を示す図である。図15を参照して、図14のフローチャートを説明するので、先に図15について説明する。
通信経路が正常である場合には、各制御対象121a〜121eはすべての異なるアドレスが割り当てられており、通信パケットのアドレスのカウンタが0のときにスレーブは自分宛であると認識する。そして隣のスレーブに渡すときは、+1を足す。この仕組みによって、異なるアドレスが割り当てられた各スレーブは、自分宛の通信パケットを認識する。
ただし、図14のフローチャートにおいては、nの値をアドレスと見立ててワーキングカウンタの値を参照する方式を説明する。
次に、図15を参照して、図14に示す通信経路異常の発生箇所の特定方法の第1例を説明する。
図14に通信経路異常の発生箇所の特定方法の第1例を示す。
図14は、全てのスレーブが処理すべきレジスタに対するBRD(Broadcast Read)コマンドのワーキングカウンタの値を利用する方法を示すフローチャートである。
はじめに、ステップS050において、全スレーブが処理すべきレジスタ(例えば、TYPEレジスタ)に対するBRDコマンドを送信する。そして、ステップS051に進む。
ステップS051において、このコマンドを含んだテレグラムを受信し、そのワーキングカウンタ(WKCを読む)の値をみる。
例えば、図15の場合、制御対象121a〜121cのn=1、2、3を経由したEtherCATテレグラムのワーキングカウンタは3となり、スレーブ121cと121d間の通信経路で異常(122X)が起きていると判定する。
図16に通信経路異常の発生箇所の特定方法の第2例を示す。
図16は、非ゼロの値が取得された通信ポートが接続する通信経路が異常であると判定する方法を示すフローチャートである。
まず、ステップS060で、各スレーブの各通信ポートのロストリンクカウンタレジスタ(図示せず)を読む。そして、ステップS061に進む。
ステップS061で、非ゼロの値が取得された通信ポートが接続する通信経路が異常であると判定する。そして終了する。
なお、ロストリンクカウンタレジスタは、読み込みと同時に、書込みによってレジスタ値をクリアする必要がある。
以上の方法によって、通信経路の異常が起きたと判定した場所を動作管理部138へと通知し、CPU101上で動作するプログラム等に提示可能とする。
図9、図10のS005、S010における異常判定の方法について述べる。
異常判定方法の第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例として、全てのスレーブが処理すべきレジスタに対するBRD(Broadcast Read)コマンドをEtherCATフレームに付与し、そのワーキングカウンタを見る方法を示す。
図14、図15に示すように、全てのスレーブが処理すべきレジスタに対するBRDコマンドをEtherCATフレームに付与し、そのワーキングカウンタを見る方法である。
EtherCATフレームのワーキングカウンタの値が、事前に設定した所定数よりも小さければ通信経路を異常と判定する。例えば、TYPEレジスタに対するBRDコマンドに対して、各スレーブはワーキングカウンタ178(WKC178、図12)に1を足すため、受信したテレグラムのワーキングカウンタ178が全スレーブ数よりも小さければ異常が発生したと判定できる。
また、いずれかの判定方法によって異常と判定した場合に異常と判定してもよいし(論理和)、両方の判定方法で異常と判定した場合に異常と判定してもよい(論理積)。
なお、冗長ポートに接続する通信経路に異常がある場合、主ポートから送信されたパケットは、冗長ポートで受信する前に主ポートで受信するが、BRDコマンドのワーキングカウンタ178の値は全スレーブ数と一致する。
この場合、主ポートで受信したパケットは冗長ポートへ転送してもよいし、通信経路の異常をユーザやオペレータに通知して、パケットを制御用計算機120内部に取り込んでもよい。
次に、異常判定方法の第3例として、ステートマシンによる制御であって、パケットごとの判定ではない方法について説明する。
冗長経路切替部131の内部経路の切り替えは、図9、図10に示すように受信したパケットごとに異常の有無を判定して、切り替えてもよいし、図18に示す状態遷移で管理してもよい。
図18は、本発明の第1実施形態を適用したシステムにおいて、通信経路の正常状態と異常状態とを示した状態遷移図である。
図18において、S030は正常状態、S031が異常状態を示し、S032とS033はその遷移過程を示している。
また、S031では、受信したパケットを正常と判定した場合(S033)にS030の正常状態に遷移する。
S030では、冗長経路切替部131の内部経路を図4に示す正常モードとし、S031では、図5に示す異常モードとする。
次に、S033における正常と判定する方法を説明する。
次に、受信したパケットを正常と判定する方法について説明する。
受信したパケットを正常と判定する第1の正常判定方法について説明する。
図19は、冗長経路切替部131を介して、主ポートの通信部135aと冗長ポートの通信部135bとによって、2つの制御対象121に通信パケットを送っている状況を示す図である。
図19において、通信が正常に行われているかを判定する正常判定の方法として、冗長ポートである通信部135bからパケットを受信した後に、主ポートである通信部135aからパケットを受信したかどうかをみる方法が例示される。
冗長ポートである通信部135bで受信(190)した後に主ポートである通信部135aで受信(191)すれば、通信経路を正常と判定する。
次に、受信したパケットを正常と判定する第2の正常判定方法について説明する。
第2の正常判定方法として、全てのスレーブが処理すべきレジスタに対するBRDコマンドをEtherCATフレームに付与し、そのワーキングカウンタを見る方法が例示される。EtherCATフレームのワーキングカウンタの値と、事前に設定した所定数と等しい場合に通信経路を正常と判定する。
例えば、図15において、通信経路異常122Xがない場合には、図12に示したワーキングカウンタのWKC178が制御対象121a〜121eを通過する毎に、カウントし、前記したように、事前に設定した所定数(図15ではn=5)と比較し、等しい場合に通信経路を正常と判定する。
また、受信したパケットを正常と判定する第3の正常判定方法について説明する。
図18におけるS032、S033の事象発生時に、バス110(図2)の通信手段を用いて、CPU101(図2)上で動作するプログラム等に、内部状態を切り替えたことを通知する。
バス110の通信手段には割込み通知等の手段がある。この通知を受けたプログラムでは、通信経路上に異常が生じていること、あるいは正常に復帰したことをユーザやオペレータに通知することで、ユーザやオペレータは異常を復旧させるために通信ケーブルの置換等の対策の実施や、その対策の完了を確認することができる。
次に、図9、図10のステップS007における時刻補正処理について述べる。
図20は、冗長経路切替部131を介して主ポートの通信部135aと冗長ポートの通信部135bとによって、4つの制御対象(スレーブA〜スレーブD)に通信パケットを送っている通信経路122に通信経路異常122Xが発生した状況を示す図である。
前述したとおり、通信経路の異常発生後、通信経路の異常をはさむスレーブ間の通信遅延は算出が困難である。
また、図20に示すように、異常の発生箇所によっても、計算する通信経路の数が変化する。
なお、図22は、冗長経路切替部131を介して主ポートと冗長ポートの通信部によって、4つの制御対象121であるスレーブA〜スレーブDに通信パケットを送っている状況を示す図であり、前記した冗長ポートの受信時刻がtaであり、主ポートの受信時刻がtbであることを示している。
厳密には、通信経路の異常の直前のスレーブ(図20のスレーブB)において、スレーブ内のEPU160を通る経路と、EPU160を通らない経路の通信遅延差dだけ異なる。
したがって、図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回でもよいし、複数回でもよい。
なお、式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において、補正用の通信遅延を算出可能か判定する。
これは、例えばアプリケーションの実行開始時にすでに通信経路異常が発生している場合が考えられる。
この通信経路異常が発生している場合、受信時刻tb、taを保持していないため、式7における差分Dを算出できず、ステップS040において、算出不可と判定する。
あるいは、冗長ポートからパケットを折り返した時に、通信経路異常が発生し、taは保持し、tbを保持していない場合に算出不可と判定する。
あるいは、複数のtb、taを用いて、差分Dを統計的に算出する場合に、所定数のtb、taを保持していない場合に算出不可であると判定する(N:S040)。
そして、ステップS044に進む。
また、ステップS040において、補正用の通信遅延を算出可能であると判定すれば(Y:S040)、次のステップS041に進む。
ステップS041において、通信経路異常の発生箇所を特定する。
発生箇所の特定方法は、前述した図14、図16に示す通信経路異常の発生箇所の特定方法が、一例としてある。
そして、ステップS042に進む。
ステップS042において、通信遅延の変更分diffを計算する。
通信遅延の変更分は、通信経路の異常の発生箇所をはさむスレーブ間の遅延について、通信経路の異常の発生前と発生後の差分をとる。
各スレーブの遅延レジスタの値は、基準時刻を有するスレーブまでの遅延である。したがって、異常発生前の通信遅延を求めるためには、通信経路の異常の発生箇所をはさむスレーブのそれぞれの遅延を取得して差分を計算する。
図20で例示すれば、各スレーブの遅延レジスタの値System_delay(System delay)を用いて、通信経路異常発生前の通信遅延tdiffBCは次式で求まる。
tdiffBC = System delayC − System delayB ・・・(式8)
tdiffBC2 = D ・・・(式9)
あるいは、通信経路異常発生箇所直前のスレーブ内の通信経路の違いによる遅延差dを用いて、次式で計算してもよい。
tdiffBC2 = D − d ・・・(式10)
なお、遅延差dは、該スレーブにアクセスして取得してもよいし、スレーブの種類に応じた値を制御用計算機120で保持して利用してもよい。
この通信遅延eは、該スレーブとその隣接スレーブの遅延レジスタの値と、該スレーブ内の通信経路の違いによる遅延差dを用いて計算することができる。図20で例示すれば、次式で求まる。
e = System delayD − System delayC − dc ・・・(式11)
ここでdcは、スレーブCにおけるスレーブ内の通信経路の違いによる遅延差dである。
通信遅延eを用いて、通信遅延tdiffBC2は、次式のいずれかで求めることができる。
tdiffBC2 = D − e ・・・(式12)
tdiffBC2 = D − d − e ・・・(式13)
通信遅延の変更分diffは次式で計算する。
diff = tdiffBC2 − tdiffBC ・・・(式14)
この通信遅延の変更分が、通信経路の異常発生箇所以降のスレーブの通信遅延の補正値である。したがって、通信経路の異常発生箇所以降のスレーブの遅延レジスタの値を更新する。
次に、ステップS043に進む。
ステップS043において、通信経路異常の発生箇所以降のスレーブの通信遅延を更新する。
この更新する通信遅延の計算方法を以下に示す。
通信経路の異常発生箇所以降のスレーブに設定する遅延レジスタ値System_delay_New(System delay New)は、次式で求まる。
System delay New = System delay + diff ・・・(式15)
遅延レジスタの更新にあたっては、各スレーブに対して、2回のアクセスが必要である。すなわち、現状の遅延レジスタ値System_delayの取得と、System_delay_Newの更新である。
以上により、通信経路異常の発生箇所以降のスレーブの通信遅延を更新する。
そして、ステップS043の後は、終了する。
ステップ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の場合に、各スレーブは、そのテレグラムを処理する。
各スレーブは、通信経路異常の発生をもって、CPU101によって、事前に通知された差分Dを遅延レジスタの現在値に加えることで時刻を更新する。
各スレーブは、制御用計算機120(マスタ)からの通知によって通信経路異常の発生を知る。例えば、制御用計算機120からスレーブに割込み可能なレジスタへコマンドを発行してもよい。
なお、式10によって、遅延を補正する場合は、制御用計算機120が通信経路異常発生箇所直前のスレーブの遅延差dを求めて、各スレーブに通知してもよい。通知する方法は、所定のレジスタへの書込みが例示される。
これらの時刻同期補正の方法は、図21に比べて、制御用計算機120が発行するパケット数、テレグラム数を少なくできる利点がある。
スレーブを所定の通知方法に対応させる必要があるが、必要なパケット数、テレグラム数がスレーブ数に依存しないという利点があり、スレーブ数が多くなるほど有効である。
また、パケット数、テレグラム数を少なくできれば、それだけ、通信経路の異常発生時でも迅速な再時刻同期が可能である。
あるいは、これらの時刻同期補正の方法と、図21に示す方法に対応したスレーブを混在させてもよい。この場合、先にパケット数、テレグラム数が少ない方式に対応したスレーブの時刻を補正した後、その後、図21の方法を実行することが例示される。
この場合、各スレーブの対応を示す必要がある。事前に、制御用計算機120において、スレーブの情報(接続順、アドレス等)によって識別してもよいし、該スレーブが所定のアドレスに対応を提示してもよい。
また、図9では、時刻同期補正処理をステップS007で実行しているが、任意のタイミングで実行してもよい。
例えば、図21のステップS040において、所定の統計処理に必要な充分な数の受信時刻tb、taを計測した時点が挙げられる。
制御動作の周期実行動作と、時刻同期補正処理のタイミングが重なれば、制御対象121が誤ったタイミングで制御動作を実行するおそれがある。このような場合、制御用計算機120は、通信経路異常を検知後、ただちに定期的な時刻補正パケットの送信を停止する。この間、制御対象121は、自身の時刻制度で時刻を管理する。
それから、制御用計算機120は、制御指令値やセンサ値取得要求の送信直後や、予め設定した所定の周期動作実行タイミング後に、時刻補正処理を実行する。
このようにすれば、制御対象121が誤ったタイミングで制御動作を実行する可能性を避けることができる。
また、通信経路異常発生後に、時刻補正処理を実行後、通信経路異常が解消され、正常に戻る場合を考える。この場合には、再度、時刻を補正する必要がある。
この時、必要な情報は、通信経路が正常時の通信遅延と、再補正対象となるスレーブの識別、通信経路が正常になったことの判定結果である。
正常時の通信遅延は、正常時の遅延レジスタ値を記憶して、再補正時に利用する方法が例示される。
System delay = System delay New − diff ・・・(式16)
したがって、変更分diffを計算した時に保持する方法が例示される。
変更分diffは制御用計算機120が算出してもよいし、制御対象121が算出してもよいため、制御用計算機120または制御対象121が変更分diffを保持すればよい。
また、式16により、再補正後の遅延を算出して、再補正対象となる制御対象121の遅延レジスタ値を補正してもよい。
再補正対象となる制御対象121の識別は、制御用計算機120において、通信経路異常発生時に特定した通信経路異常の発生箇所を記憶してもよい。
あるいは、各制御対象121が、通信経路異常発生時に通知された内容に基づいて、自身で記憶してもよい。
また、通信経路が正常になったことは、図18のステップS033において用いる方法等によって、制御用計算機120で判定可能である。この判定をもって、制御用計算機120は、その発生箇所以降のスレーブに個別に通知してもよい。
また、マスタが、発生箇所直後のスレーブにアクセスするオートインクリメントアドレスコマンドを発行し、各スレーブが、オートインクリメントアドレスが0以上かどうかを判定してもよい。
以上の発明により、冗長化の汎用的な構成における課題への効果を説明する。
通信経路に異常が発生している場合に、冗長経路切替部131が図5の構成をとることで、パケットはソフトウェア処理を介さずに冗長化通信制御部102内で折り返して通信部135bからパケットを送信することができる。これによって、制御用計算機120内では一定遅延でパケットを転送できる。
さらに通信経路の異常によって、通信経路を変更した場合でも、通信経路異常の発生箇所に依存せずに、変更後の通信遅延を容易に求めることができる。これによって、通信経路に異常が発生している場合においても時刻同期アルゴリズムを実行することができる。
したがって、本発明を適用すれば、冗長化によるリアルタイム通信の高信頼化を提供することができる。
次に、本発明に係る通信制御システムの第2実施形態について図を参照して説明する。
図23は、本発明を適用した制御対象121(図1)の通信ハードウェア150(図6)上のCPU101(図6)上で動作する機能構成を示す図である。
図23の第2実施形態で使用する符号は、特に断りのない限り、第1実施形態で説明した機能や要素等と同一であることを意味する。
第2実施形態は、本発明を適用した制御用計算機120の時刻補正処理中に、同期した時刻に基づくスレーブの割込みが乱れることに対応したものである。
時刻同期割込み231は、基準時刻に同期して発行される割込みであり、一般に定周期で発行するように設定される。時刻同期割込み231は、バス163上に構成する。
また、時刻同期割込み231を発行する周期やパルス幅は、スレーブIC151上の設定であり、通信を介して、制御用計算機120によって設定されてもよいし、CPU101上で動作するソフトウェアから設定してもよい。
あるいは、CPU101に含まずに、タイマデバイスやFPGA、CPLD等を用いて構成してもよい。
また、タイマ232は、所定の期間の経過をもって、割込みを通知できるように構成してもよい。
第2実施形態の要点は、時刻管理部230が、タイマ232によって時刻同期割込み231の乱れを補正することである。
通信経路で異常が発生すると、異常をはさむスレーブ間の通信遅延は長くなる。これは、式6において遅延tdiffABが大きくなることを意味する。制御用計算機120によって遅延が補正されるまでの間、遅延tdiffABは、実際の値よりも小さな値のままである。
ここで、通信経路の異常が発生して、通信遅延が変化した場合を考える。通信経路の異常発生後に基準時刻が配信されると、過渡的にローカルクロック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が発生しているので、通信経路異常が発生していると判定できる状態を示している。
まず、スタートとして、はじめに、ステップS060において、時刻管理部230は、時刻同期割込み231の生成周期PintをスレーブIC151、あるいはスレーブIC151(図6)の設定を保持するスレーブ搭載の不揮発性記憶メモリ(EEPROM等、109、図6)から取得する。
そして、ステップS061に進む。
次に、ステップS061において、最初の時刻同期割込み231の発生を待機する(S061、図24のtP0)。
すなわち、ステップS061において、時刻同期割込みが発生したか否かを検出、判定する。
発生した場合(Y:S061)には、ステップS062に進む。
また、発生しない場合(N:S061)には、ステップS061の先頭に戻り、引き続き時刻同期割込みの発生を検出すべく待機する。
なお、具体的には、スレーブの時刻同期の設定は制御用計算機120(マスタ)が設定する。
また、全スレーブが同期する前に通信経路異常が発生するような場合は、制御用計算機120(マスタ、図1)は、ただちに全スレーブの時刻同期機能を停止する必要がある。
この方法は、時刻同期機能を無効化するレジスタへのBWR(Broadcast Write)コマンドの発行が例示される。なお、時刻同期機能の無効化は、時刻同期割込み231の停止を意味する。
次に、ステップS062において、タイマ232に所定時間経過後に割込みを発生するように設定する。そして、次に、ステップS063に進む。
なお、前記所定時間は、周期Pint(図24)よりも所定の期間短い時間とする。短くする期間は、過渡期に時刻同期割込み231が早まることを考慮して定める。
このタイマ割込みよりも前に時刻同期割込み231が発生した場合に、通信経路異常が発生し、再補正前と考える。
次に、ステップS063において、アプリケーション233を起動する。
そして、ステップS064に進む。
次にステップ064において、時刻同期割込み231の発生か、またはタイマ割込みの発生を待機する。
すなわち、ステップS064において、時刻同期割込み、またはタイマ割込みの発生があったか否かを検出、判定する。
発生があった場合(Y:S064)には、ステップS065に進む。また、発生しない場合(N:S064)には、ステップS064の先頭に戻り、引き続き時刻同期割込み、またはタイマ割込みの発生を検出すべく待機する。
次に、ステップ065において、発生した割込みがタイマ割込みかどうかを判定する。
発生した割込みがタイマ割込みであれば(Y:S065、図24のtT0)、ステップS061の手順へ戻る。
また、ステップ065において、発生した割込みがタイマ割込みでなく、時刻同期割込み231であれば(N:S065、図24の231c)、通信経路に異常が発生し、再同期補正前と判定し、ステップS066へ進む。
次に、ステップ066において、タイマ割込みの発生を待機する。
すなわち、ステップS066において、タイマ割込みは発生したか否かを検出、判定する。
タイマ割込みが発生していれば(Y:S066)、ステップS067へ進む。タイマ割込みが発生していなければ(N:S066)、ステップS066の先頭に戻り、引き続きタイマ割込みは発生したか否かを検出すべく待機する。
次に、ステップS067においては、タイマ割込み発生(tT1)後、周期Pintとタイマ割込みまでを発生させるまでの期間の差分の間、待機する。これは、アプリケーション233を起動させるタイミング(図24のtP2)まで待つためである。
所定期間の経過を待機する方法は、タイマ232による割込みを用いてもよいし、また、定期的にタイマ232の値を取得して、所定期間が経過していないかを確認する方法でもよい。
所定期間が経過したと判定した場合(Y:S067)には、ステップS068へ進む。
また、所定期間が経過していないと判定した場合(N:S067)には、ステップS067の先頭に戻り、引き続き所定期間が経過するまで待機する。
続いて、ステップS068において、時刻管理部230は、タイマ値t1を取得する(図24のt1a)。
そして、ステップS069に進む。
次に、ステップS069において、タイマ割込みを設定する。
この時のタイマ割込みの期間は、周期Pintが望ましい。これは、時刻同期割込み231の生成タイミングにずれが生じており、通信遅延の更新が完了するまでは、タイマ232にしたがってアプリケーション233を起動する必要があるためである。
そして、ステップS070に進む。
次に、ステップS070において、アプリケーション233を起動する。
そして、ステップS071に進む。
次に、ステップS071においては、時刻同期割込み231の発生か、または、タイマ割込みの発生があるまで待機する。
具体的には、時刻同期割込み231の発生か、または、タイマ割込みの発生を検出、判定する。
時刻同期割込み231の発生か、または、タイマ割込みの発生を検出したと判定した場合(Y:S071)には、ステップS072に進む。
また、時刻同期割込み231の発生も、タイマ割込みの発生もないと判定した場合(N:S071)には、ステップS071の先頭に戻り、引き続き時刻同期割込み231の発生か、または、タイマ割込みの発生を検出するまで待機する。
次に、ステップS072においては、発生した割込みが時刻同期割込み231か否かを判定する。
発生した割込みが時刻同期割込み231であると判定した場合(Y:S072)には、ステップS073に進む。
また、発生した割込みが時刻同期割込み231でない判定した場合(N:S072)には、ステップS071の先頭に戻る。
次に、ステップS073においては、タイマ値t2を取得する(図24のt2a、t2b、t2c)。
そして、ステップS074に進む。
次に、ステップS074においては、t1と周期Pintの和と、t2の差分の絶対値が所定値Th以下(以内)かどうか、(|(t1+Pint)―t2|<Th)を判定する。
所定値Th以下であれば、通信遅延の更新が完了したと判定し、ステップS062へ進む。また、所定値Thを超していれば(図24のt2a、t2b)、ステップS075へ進む。
なお、ステップS074において、一度の条件成立でS062へ進むのではなく、所定回数の成立、あるいは所定連続回数の成立をもってS062へと進んでもよい。
なお、図24では、t2cの時、この所定値Th以下の条件を満足している。
次に、ステップS075においては、発生した割り込みがタイマ割込みか否かを確認し、判定する。これは、S071、S072、S073、S074において、タイマ割込みが発生している可能性があるためである。
ステップS075において、タイマ割込みが発生していれば(Y:S075)、ステップS068へと進む。
また、タイマ割込みが発生していなければ(N:S075)、S071へと進む。
また、通信経路で異常が発生した後、再び通信経路が正常に復帰した場合を考える。この場合は、図24の時刻同期割込み231bと時刻同期割込み231cの間隔が短くなったこととは逆に長くなる。
この場合の時刻同期割込み231とタイマ232によるタイマ割込みと時刻管理部230の動作と、あわせて、時系列上の割込みと同期のタイミングを示す。
図26は、時刻同期割込み231とタイマ232によるタイマ割込みと時刻管理部230の動作を示した第2例のフローチャートである。
また、図27は、時系列上の割込みと同期のタイミングを示すタイムチャートである。
図26のフローチャートを説明する前に図27について説明する。
図27において、横軸は時間の流れであり、タイマ割込み(tT1)と時刻同期割込み231(h〜n)の割込み状態を示している。また、Pintは、時刻同期の周期である。
図27において、Pintで示したひとつの周期の区間において、タイマ割込みtT1の後に時刻同期割込み231jが発生しているので、通信経路異常が発生していると判定できる状態を示している。
ただし、図26のフローチャートと図25のフローチャートは非常に似ており、図26のフローチャートの各ステップS060〜S075は、図25のフローチャートの各ステップS090〜S105相当しており、概ね等しいステップについては、詳細な説明が重複する場合には、省略することもある。
図26のステップS090は、図25のステップS060と概ね等しいので、説明を省略する。
次に、ステップS091において、最初の時刻同期割込み231の発生を待機する(S091、図27のtP0)。
なお、その他の説明は、ステップS061と重複するので、詳細な説明は省略する。
次に、ステップS092において、タイマ232に所定時間経過後に割込みを発生するように設定する。そして、次に、ステップS093に進む。
なお、前記所定時間は、周期Pint(図24)よりも所定の期間、長い時間とする。長くする期間は、過渡期に時刻同期割込み231が遅くなることを考慮して定める。
この時刻同期割込み231よりも前にタイマ割込みが発生した場合に、通信経路が正常復帰し、再補正前と考える。
図26のステップS093〜S094は、図25のステップS063〜S064と概ね等しいので、重複する説明を省略する。
次に、図26のステップ095において、発生した割込みが時刻同期割込み231かどうかを判定する。
発生した割込みが時刻同期割込み231であれば(Y:S095、図27のtP1)、ステップS092の手順へ戻る。
また、ステップ095において、発生した割込みが時刻同期割込み231なくタイマ割込みであれば(N:S095、図27のtT1)、通信経路が正常復帰し、再同期補正前と判定し、ステップS096へ進む。
次に、ステップ096において、タイマ割込み発生(tT1)後、アプリケーション233を起動する。そして、ステップS097に進む。
次に、ステップS097においては、タイマ割込みまでを発生させるまでの期間と、周期Pintの差分の間、待機する。これは、アプリケーション233を起動させるタイミング(図27のtP3)まで待つためである。
所定期間が経過したと判定した場合(Y:S097)には、ステップS098へ進む。
また、所定期間が経過していないと判定した場合(N:S097)には、ステップS097の先頭に戻り、引き続き所定期間が経過するまで待機する。
続いて、ステップS098において、時刻管理部230は、タイマ値t1を取得する(図27のt1e)。
図26のステップS099〜S102は、図25のステップS069〜S072と概ね等しいので、重複する説明を省略する。
次に、ステップS103においては、タイマ値t2を取得する(図27のt2e、t2f、t2g)。
そして、ステップS104に進む。
次に、ステップS104においては、t1と周期Pintの和と、t2の差分の絶対値が所定値Th以下(以内)かどうか、(|(t1+Pint)―t2|<Th)を判定する。
所定値Th以下であれば、通信遅延の更新が完了したと判定し、ステップS92へ進む。また、所定値Thを超していれば(図27のt2e、t2f)、ステップS105へ進む。
なお、ステップS104において、一度の条件成立でS092へ進むのではなく、所定回数の成立、あるいは所定連続回数の成立をもってS092へと進んでもよい。
なお、図27では、t2gの時、この所定値Th以下の条件を満足している。
次に、ステップS105においては、発生した割り込みがタイマ割込みか否かを確認し、判定する。これは、S101、S102、S103、S104において、タイマ割込みが発生している可能性があるためである。
ステップS105において、タイマ割込みが発生していれば(Y:S105)、ステップS098へと進む。また、タイマ割込みが発生していなければ(N:S105)、S0101へと進む。
以上の発明により、冗長化の汎用的な構成における課題への効果を説明する。
通信経路に異常が発生している場合に、冗長経路切替部131が図5の構成をとることで、パケットはソフトウェア処理を介さずに冗長化通信制御部102内で折り返して通信部135bからパケットを送信することができる。これによって、制御用計算機120内では一定遅延でパケットを転送できる。
さらに通信経路の異常によって、通信経路を変更した場合でも、通信経路異常の発生箇所に依存せずに、変更後の通信遅延を容易に求めることができる。
さらに、通信経路の異常発生直後の各スレーブの過渡的な更新期間においても、スレーブにおいて、タイマを用いた時刻管理部230によって、基準時刻に対する同期精度を維持した状態で制御システムを継続することができる。
したがって、第2実施形態によって、冗長化によるリアルタイム通信の高信頼化を図ることができる。
次に、本発明に係る通信制御システムの第3実施形態について、図28〜図35を参照して説明する。
図28は、本発明の第3実施形態を適用した冗長化通信制御部111の機能構成を示すブロック図である。
第3実施形態における冗長化通信制御部111は、主ポートと冗長ポートによる組み合わせのポートをさらに複数ポートとしたものであって、通信部(135a〜135d)を備えた構成となっている。
つまり、第1実施形態の冗長化通信制御部102(図3、通信部(135a〜135b))と比較して、通信部(135c〜135d)を追加した構成となっている。
なお、第3実施形態において使用する符号で、第1実施形態と同じ符号のものは、特に断りのない限り、第1実施形態で説明した機能や要素等と同一であることを意味する。重複する説明は省略する。
図29の制御用計算機120のハードウェア構成は、図2で説明した第1実施形態における制御用計算機120のハードウェア構成と同じような構成であるが、PHY103が4つの構成となっている点が図2とは異なる。このPHY103が4つの構成は、図28の冗長化通信制御部111の通信部135a〜135dと対応している。その他の図2と重複する説明は省略する。
また、図30は、第3実施形態における制御用計算機120を用いたシステムの構成の一例を示す図である。
図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)の対応付けの一例を示した図である。
通信部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との関連を示す図である。
次に通信部C(図31)にて、このパケットを受信した場合(P020)、通信部Cが図28の通信部135bとなる。
そして、通信部Cにて受信したパケットを、残りの通信ポートのどちらかに転送する。ここでは通信部B(図31)を選択し、パケットを送信する(P021)。
通信部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に示す通信経路の接続形態をとる。
また、Rx202は、通信部135bの受信部137bと、Tx203は、通信部135bの送信部136bと接続している。
また、Rx204は、通信部135cの受信部137cと、Tx205は、通信部135cの送信部136cと接続している。
また、Rx206は、通信部135dの受信部137dと、Tx207は、通信部135dの送信部136dと接続している。
また、図9におけるステップS001の冗長経路切替部の制御系路の設定においては、はじめに、正常モードの設定では、冗長経路切替部240の通信経路の接続状態を図32の構成にする。
冗長経路切替部240内部の通信経路の接続状態は、制御用ネットワーク122a、122bのそれぞれの通信経路の状態によって異なる。
図36は、動作管理部138が制御する冗長経路切替部240内の接続状態の切り替えを示す状態遷移図である。
図36を参照して、動作管理部138が制御する冗長経路切替部240内の接続状態の切り替えについて説明する。
遷移条件となる事象S084は、制御用ネットワーク122aを異常と判定することである。また、S085は制御用ネットワーク122bを異常と判定することである。
また、S086は制御用ネットワーク122aを正常と判定することである。また、S087は制御用ネットワーク122bを正常と判定することである。
冗長経路切替部240の経路の接続状態は、S080では図32に示した接続状態である。また、同様に、S081では図33、S082では図34、S083では図35のそれぞれの接続状態である。
例えば、通信部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とを記録する必要がある。
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の方法として、通信部135aからパケットを送信後に、通信部135bでパケットを受信する前に、通信部135aでパケットを受信したかどうかをみる方法が例示される。
通信部135bでパケットを受信せず、通信部135aで受信した場合に、制御用ネットワーク122aの通信経路を異常と判定する。
同様に、通信部135cからパケットを送信後に、通信部135dでパケットを受信する前に、通信部135cでパケットを受信したかどうかをみる。
通信部135dでパケットを受信せず、通信部135cで受信した場合に、制御用ネットワーク122bの通信経路を異常と判定する。
また、通信経路の異常判定の第2の方法として、全てのスレーブが処理すべきレジスタに対するBRDコマンドをEtherCATフレームに付与し、そのワーキングカウンタを見る方法が例示される。
EtherCATフレームのワーキングカウンタの値が、事前に設定した所定の数よりも小さければ通信経路を異常と判定する。
制御用ネットワーク122aに接続するスレーブ数をNa、制御用ネットワーク122bに接続するスレーブ数をNbとした場合に、EtherCATフレームのワーキングカウンタの値がNaよりも小さければ、少なくとも制御用ネットワーク122aの通信経路を異常と判定する。
また、ワーキングカウンタの値が、Naより大きくNbより小さければ制御用ネットワーク122bの通信経路を異常と判定する。
次に、通信経路が正常であることを判定する方法について、例を示す。
通信経路の正常判定の第1例の方法として、通信部135aからパケットを送信後に、通信部135bでパケットを受信した後に、通信部135aでパケットを受信したかどうかをみる方法が例示される。
通信部135bで受信した後に通信部135aで受信すれば、通信経路を正常と判定する。
同様に、通信部135cからパケットを送信後に、通信部135dでパケットを受信した後に、通信部135cでパケットを受信したかどうかをみる。
通信部135dでパケットを受信してから、通信部135cで受信した場合に、制御用ネットワーク122bの通信経路を正常と判定する。
また、通信経路の正常判定の第2例の方法として、全てのスレーブが処理すべきレジスタに対するBRDコマンドをEtherCATフレームに付与し、そのワーキングカウンタを見る方法が例示される。
EtherCATフレームのワーキングカウンタの値と、事前に設定した所定数が等しい場合に通信経路を正常と判定する。
図26の構成の場合は、通信部135aで受信したEtherCATフレームのワーキングカウンタと制御用ネットワーク122aのスレーブ数Naが等しい場合に、制御用ネットワーク122aの通信経路を正常と判定する。
また、通信部135cで受信したEtherCATフレームのワーキングカウンタと制御用ネットワーク122bのスレーブ数Nbが等しい場合に、制御用ネットワーク122bの通信経路を正常と判定する。
以上の第3実施形態により、通信経路に異常が発生している場合に、冗長経路切替部240が図33、図34、図35の構成をとることで、パケットはソフトウェア処理を介さずに冗長化通信制御部102内で折り返して通信部135bからパケットを送信することができる。これによって、制御用計算機120内では一定遅延でパケットを転送できる。
さらに通信経路の異常によって、通信経路を変更した場合でも、通信経路異常の発生箇所に依存せずに、変更後の通信遅延を容易に求めることができる。これによって、通信経路に異常が発生している場合においても時刻同期アルゴリズムを実行することができる。
さらに、通信部135を4つにすることにより、制御用ネットワーク122a、制御用ネットワーク122bのそれぞれで通信経路の異常が発生した場合でも、EtherCATによるリアルタイム通信を継続することができる。
以上の効果をまとめれば、本発明の第3実施形態により、冗長化によるリアルタイム通信の高信頼化を図ることができる。
次に、本発明に係る通信制御システムの第4実施形態について、図37、図1〜図3を参照して説明する。
第4実施形態は、通信経路において、2ヵ所以上の断線(異常発生)が起きた場合を想定したものであり、この際の冗長経路切替部131の通信経路の接続状態の切り替え切り替えの基準や通信経路状態判定部132の判定手順に特徴がある。
なお、第4実施形態において使用する符号で、第1、第2、第3実施形態と同じ符号のものは、特に断りのない限り、第1、第2、第3実施形態で説明した機能や要素等と同一であることを意味する。
第4実施形態を適用した冗長化通信制御部102の機能構成を示す図は、図3と同様であり、また制御用計算機120のハードウェア構成は、図2と同様である。
重複する説明は省略する。
そのために、第1実施形態とは、リアルタイム通信を継続するか否かを判定することと、通信遅延の補正値の算出方法が異なる。
はじめに、リアルタイム通信を継続するかの判断について述べる。
通信経路が2ヵ所以上発生すれば、リングトポロジを構成して冗長な通信経路を用意しても、制御用計算機120(図1)と通信不可な制御対象121(図1)が発生する。したがって、2ヵ所以上の通信経路異常が発生した場合にリアルタイム通信を継続するかどうかを判断する必要がある。
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でパケットを受信する。
このワーキングカウンタの値Waは、通信部135aに最も近い経路異常210aまでのスレーブの数Naを反映する。
図37の場合では、制御対象121aと制御対象121bとが対象となるので、ワーキングカウンタは2である。したがって、このワーキングカウンタの示した2の値(Wa=2)で、通信部135aから通信経路122を辿ることによって、経路異常210aの発生箇所を制御対象121bと制御対象121c間の通信経路上と判定する。
このときに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を例として説明する。
tdiffBE = System delayE − System delayB ・・・(式20)
通信経路異常発生後の通信遅延tdiffBE2は、式7の差分Dと、制御用計算機120と通信不可な制御対象121の数Nncをもとに、式9、式10、式12、式13と同様に、下記のいずれかの式で求めることができる。
まず、Σdiを式21で定義して、
tdiffBE2 = D − Σdi ・・・(式22)
tdiffBE2 = D − Σdi − d ・・・(式23)
tdiffBE2 = D − Σdi − e ・・・(式24)
tdiffBE2 = D − Σdi − d−e ・・・(式25)
これは、システム稼働前に計測してもよいし、通信経路が正常な時に実行する時刻同期手順の実行時に算出することができる。制御対象121を構成するスレーブIC151の種類を同じにすれば、1つのスレーブに関して、diを算出すれば、制御対象121の違いによらず、同じ値を用いることができる。制御対象121間の通信ケーブルの種類や長さを同じにすれば、さらに精度を高めることができる。
diff = tdiffBE2 − tdiffBE ・・・(式26)
したがって、式15により、通信経路異常の発生箇所以降のスレーブの遅延レジスタを更新することができる。
なお、第4実施形態では通信経路異常の発生箇所が少なくとも2箇所あることはわかるが、正確な通信経路異常の発生箇所の数はわからない。しかしながら、EtherCAT通信の継続が可能かどうかは、EtherCATスレーブと通信可能かどうかで判定するため、発生箇所の正確な数は必要ではない。
また、通信経路異常の発生箇所が変化したとしても、通信不可な経路上で発生する場合があるため、時刻の再補正を必ずしも実行する必要はないが、制御用計算機120が通信不可能なスレーブ数が変化した場合は、通信遅延が変化するため、時刻の再補正が必要である。
以上、第4実施形態によって、通信経路に異常が発生している場合に、冗長経路切替部131が図5の構成をとることで、パケットはソフトウェア処理を介さずに冗長化通信制御部102内で折り返して通信部135bからパケットを送信することができる。これによって、制御用計算機120内では一定遅延でパケットを転送できる。
さらに通信経路の異常によって、通信経路を変更した場合でも、通信経路異常の発生箇所に依存せずに、変更後の通信遅延を容易に求めることができる。これにより、通信経路に異常が発生している場合においても時刻同期アルゴリズムを実行することができる。
さらに、第1実施形態と比較して、通信経路異常が2箇所以上発生した場合でも、EtherCAT通信を継続できるような条件下においては、システムを継続できる。
また、制御用計算機120と通信可能な制御対象121においては、通信経路に異常が発生している場合においても時刻同期アルゴリズムを実行することができる。
よって、第4実施形態によって、冗長化によるリアルタイム通信の高信頼化を図ることができる。
次に、本発明に係る通信制御システムの第5実施形態について図38〜図40を参照して説明する。
図38は、第5実施形態を適用した中継装置250を用いて構成するシステムの例を示す図である。
図38において、制御用計算機120は、制御用ネットワーク122cにおいて複数の制御対象121をライン状に接続して制御するとともに、冗長化中継ボックスである中継装置250に接続されている。
また、中継装置250からは、制御用ネットワーク122dにおいて複数の制御対象121をリング状に接続(リングネットワーク)して制御している。
すなわち、第5実施形態は、冗長化中継ボックスである中継装置250において、通信経路の冗長化と時刻同期を実現することを想定している。
また、図38では、制御用ネットワーク122cをライントポロジとしているが、制御用ネットワーク122cをリングトポロジとし、ネットワークの途中に中継装置250を接続してもよい。
なお、第5実施形態において使用する符号で、第1〜第4実施形態と同じ符号のものは、特に断りのない限り、第1〜第4実施形態で説明した機能や要素等と同一であることを意味する。
図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の機能構成について説明する。
図40は、第5実施形態を適用した冗長化通信制御部111の機能構成を示すブロック図である。
第5実施形態における冗長化通信制御部111は、主ポートと冗長ポートによる組み合わせのポートを3ポートとしたものであって、通信部(135a〜135c)を備えた構成となっている。つまり、第1実施形態の冗長化通信制御部102(図3、通信部(135a〜135b))と比較して、通信部135cを追加した構成となっている。
なお、第3実施形態において使用する符号で、第1実施形態と同じ符号のものは、特に断りのない限り、第1実施形態で説明した機能や要素等と同一であることを意味する。重複する説明は省略する。
第5実施形態を適用した冗長化通信制御部111による動作手順は、図9で示した動作手順と同様である。
なお、図38において、中継装置250は、制御用計算機120と同様に、中継装置250自身が時刻同期を実行してもよいし、通信経路が正常時の受信部137a(図40)、受信部137b(図40)の受信時刻を記録して保持してもよい。
これらの記録した値を所定のアドレスにおいて提示し、制御用計算機120等から取得可能としてもよい。
同様に、中継装置250が通信経路の異常の発生箇所を特定し、所定のアドレスにおいて提示し、制御用計算機120等から取得可能としてもよい。制御用計算機120は、中継装置250が提示する前記の情報を用いて、制御用ネットワーク122dのスレーブ間の通信遅延を容易に補正することができる。
具体的には、制御用ネットワーク122cから受信したパケットを解析し、時刻同期実行後の定常状態で送信されるパケット(例えば、ARMWコマンド等)を識別すれば、制御用ネットワーク122dに送信する際に除去し、再度パケットを受信した際に、除去した部分を付加して制御用ネットワーク122cに送信することが例示される。
あるいは、制御対象121に向けて、中継装置250が算出した補正遅延や通信経路異常の発生の有無や通信経路異常の発生箇所を通知してもよい。
以上の第5実施形態により、通信経路に異常が発生している場合に、冗長経路切替部131が図5の構成をとることで、パケットはソフトウェア処理を介さずに冗長化通信制御部102内で折り返して通信部135bからパケットを送信することができる。これにより、制御用計算機120内では一定遅延でパケットを転送できる。
さらに通信経路の異常によって、通信経路を変更した場合でも、通信経路異常の発生箇所に依存せずに、変更後の通信遅延を容易に求めることができる。これにより、通信経路に異常が発生している場合においても時刻同期アルゴリズムを実行することができる。
さらに、ネットワークの特定の部分のみを冗長化して高信頼化しながら、通信経路の異常が発生しても、時刻同期精度を維持することができる。
また、中継装置250が補正遅延を算出するために必要な情報を算出して提示することで、制御用計算機120は、容易に制御用ネットワーク122dの通信経路の異常発生時にも、時刻を同期させることができる。
以上、本発明の実施形態について図面を参照して詳述したが、本発明はこれら実施形態およびその変形に限定されるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があってもよく、以下にその例をあげる。
第1実施形態において、制御対象121(図1)のハードウェア構成(通信ハードウェア150)として、図6のCPU101を備えた構成を説明したが、制御対象121のハードウェア構成は、図6の構成に限定されない。
例えば、CPU101を有せず、スレーブIC151(図6)から直接、周辺デバイスに接続する構成であってもよい。
図6においては、ライントポロジを構成するため、通信機能であるPHY103を2つ有しているが、終端デバイスとして構成する場合は、PHY103は1つでもよい。
また、パケットを周回させることができれば、PHY103は、3つ以上であってもよい。なお、図7のスレーブICは、4つのPHY103と接続可能な構成を示している。
図10に示した冗長化通信制御部102(図2、図3)は、冗長ポートへ転送したパケットを識別する構成として説明した。しかしながら、冗長ポートへ転送したパケットと、冗長ポートで受信して冗長ポートから折り返して送信するパケットを区別できれば所望の機能を果たすことは可能である。
したがって、冗長ポートで受信して冗長ポートから折り返して送信するパケットを識別できるように構成してもよい。
図25では、割込み生成可能なタイマ232について説明したが、割込みによる時刻管理部230への通知ではなく、時刻管理部230が定期的にタイマ232の値を取得して、所定期間が経過していないかを確認する方法でもよい。
図25のフローチャートのステップ074と、図26のステップS104においては、t1と周期Pintの和と、t2の差分の絶対値が所定値Th以下(以内)かどうか、(|(t1+Pint)―t2|<Th)を判定する方法について説明したが、この判定方法には限らない。
例えば、時刻同期割込み231の直前にタイマ割込みが発生する場合も考えられ、その場合を考慮して、周期Pintを足さずに、(|(t1―t2)|<Th)で判定してもよい。
第3実施形態においては、通信部135を4つとしたが、より多くの通信部135を用いた場合でも同様の効果を得ることができる。また、通信部135の数が奇数の場合は、1つの通信部135に接続されるネットワークはライントポロジとなり、残りの偶数の通信部135においては、2つの通信部135ごとにリングネットワークを構成し、本発明の効果を得ることができる。
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に記載の通信制御システム。 - すべての前記被制御装置は、通信を受信した場合に、所定の数を足す通信内容をパケットに付与し、
前記通信制御装置の前記通信経路異常発生箇所特定部は、前記パケットを受信した場合に、前記通信内容の数を用いて通信経路異常発生箇所を特定する、
ことを特徴とする請求項2に記載の通信制御システム。 - 前記通信経路異常発生箇所特定部は、
前記被制御装置の通信経路情報が通信経路の異常を示す場合に、前記被制御装置の接続する通信経路を異常と特定する、
ことを特徴とする請求項2に記載の通信制御システム。 - すべての前記被制御装置は、通信を受信した場合に、所定の数を足す通信内容をパケットに付与し、
前記通信制御装置の前記時刻同期部は、前記通信経路異常発生箇所特定部が識別した前記被制御装置のパケットを受信した際には、数が所定の値以上となるように初期値を設定した通信内容を前記パケットに付与する、
ことを特徴とする請求項2に記載の通信制御システム。 - 前記時刻同期部は、前記通信経路異常判定部が通信経路を異常と判定している場合に、前記第一の通信部の前記受信部で受信したパケットに対して、
前記通信経路異常発生箇所特定部が識別した前記被制御装置の前記遅延補正値、遅延情報と前記遅延補正値の加算値、通信経路の変更有無のいずれかまたは複数の情報を付加して、
前記第二の通信部の前記送信部から送信する、
ことを特徴とする請求項2に記載の通信制御システム。 - 前記通信遅延記憶部は、
前記通信経路正常判定部が通信経路を正常と判定している場合の前記被制御装置の遅延情報と前記遅延補正値、
前記通信経路異常判定部が通信経路を異常と判定している場合の前記通信経路異常発生箇所特定部が特定した通信経路異常の発生箇所、
通信経路が変わった前記被制御装置、
のいずれかまたは複数を保持し、
前記時刻同期部は、
前記通信経路状態判定部の通信経路の判定が異常から正常に変わった場合に、前記通信遅延記憶部が保持する情報を用いて前記被制御装置と時刻同期する、
ことを特徴とする請求項2に記載の通信制御システム。 - 前記通信制御装置は、
前記通信経路異常判定部が通信経路を異常と判定している場合に、前記第一の通信部の前記受信部で受信してから、前記第二の通信部の前記送信部から送信したパケットを識別し、
前記第一の通信部で受信した第一のパケットが前記識別したパケットである場合に、
前記第一のパケットを破棄する、
前記第一のパケットを転送する、
前記通信経路正常判定部が通信経路を正常と判定する、
のいずれかまたは複数の処理を実行する、
ことを特徴とする請求項1に記載の通信制御システム。 - 前記通信制御装置は、
前記通信経路異常判定部が通信経路を異常と判定している場合に、前記第一の通信部の前記受信部で受信してから、前記第二の通信部の前記送信部から送信したパケットを識別し、
前記第二の通信部で受信した第一のパケットが前記識別したパケットである場合に、
前記第一のパケットを破棄する、
前記第一のパケットを転送する、
前記通信経路異常判定部が通信経路を異常と判定する、
のいずれかまたは複数の処理を実行する、
ことを特徴とする請求項1に記載の通信制御システム。 - 前記時刻同期部は、前記遅延補正値の算出に前記被制御装置内の通信遅延を用いる、
ことを特徴とする請求項1に通信制御システム。 - 前記通信遅延は、経路異常発生箇所に隣接する前記被制御装置内の通信遅延である、
ことを特徴とする請求項11に記載の通信制御システム。 - 前記時刻同期部は、
通信不可な前記被制御装置の数をもとに前記遅延補正値を算出する、
ことを特徴とする請求項1に記載の通信制御システム。 - 前記時刻同期部は、
前記通信経路異常判定部が通信経路を異常と判定した場合に時刻補正パケットの送信を停止し、所定事象後に前記時刻補正パケットの送信を再開する、
ことを特徴とする請求項1に記載の通信制御システム。 - ネットワークを介して1つ又は複数の被制御装置を制御する通信制御装置は、
演算部と、
パケットをネットワークに送信する送信部とネットワークからのパケットを受信する受信部とを有してなる第一の通信部および第二の通信部と、
前記演算部と前記第一の通信部および第二の通信部との間に設けられ、通信経路を制御する冗長化通信制御部と、
前記被制御装置を時刻同期する時刻同期部と、
を具備し、
前記冗長化通信制御部は、
前記ネットワークの経路の状態を判定する通信経路状態判定部と、
前記演算部と前記第一の通信部および第二の通信部との間の接続を切り替える冗長経路切替部と、
パケット受信時刻を記憶する通信遅延記憶部と、
を具備し、
前記通信経路状態判定部は、
前記ネットワークの通信経路の異常を判定する通信経路異常判定部と、
前記ネットワークの通信経路の正常を判定する通信経路正常判定部と、
を具備し、
前記演算部は、制御対象への指令値を前記冗長化通信制御部へと送信し、前記制御対象への通信結果を前記冗長化通信制御部から受信し、
通信部は、前記冗長化通信制御部から受信した通信内容を、前記ネットワークを介して、前記制御対象に送信し、前記制御対象から受信した結果を前記冗長化通信制御部に送信し、
前記冗長経路切替部は、前記通信経路正常判定部が通信経路を正常と判定している場合には、前記演算部と前記第一の通信部とを接続すると共に、前記第二の通信部の受信部と送信部とを接続し、前記通信経路異常判定部が通信経路を異常と判定している場合には、前記演算部を前記第一の通信部の送信部と接続すると共に、前記演算部を前記第二の通信部の受信部とも接続し、かつ、前記第一の通信部の受信部と前記第二の通信部の送信部と、を接続し、
前記通信遅延記憶部は、前記通信経路正常判定部が通信経路を正常と判定している場合に、前記第一の通信部の受信部でパケットを受信した第一の受信時刻と、前記第二の通信部の受信部でパケットを受信した第二の受信時刻と、を保持し、
前記時刻同期部は、前記通信遅延記憶部が保持する第二の受信時刻と第一の受信時刻を用いて算出される遅延補正値を用いて前記制御対象を時刻同期する、
ことを特徴とする通信制御装置。 - さらに、通信経路異常発生箇所特定部を具備し、
前記通信経路異常発生箇所特定部は、通信経路異常の発生箇所を特定して、通信経路が変わった前記被制御装置を識別し、
前記時刻同期部は、前記通信経路異常発生箇所特定部が識別した前記被制御装置と時刻同期する、
ことを特徴とする請求項15に記載の通信制御装置。 - 前記時刻同期部は、前記通信経路正常判定部が通信経路を正常と判定している場合の前記被制御装置の遅延情報に対して、
前記通信経路異常判定部が通信経路を異常と判定している場合は、前記通信経路異常発生箇所特定部が識別した前記被制御装置の遅延情報に前記遅延補正値を加算する、ことを特徴とする請求項16に記載の通信制御装置。 - 請求項15に記載の前記通信制御装置からネットワークを介して制御および時刻同期される被制御装置は、
パケットをネットワークに通信する被制御装置通信部と、
前記通信部で通信されるパケットを用いて時刻同期する被制御装置時刻同期部と、
通信経路状態を判定する被制御装置通信経路状態判定部と、
被制御装置通信遅延記憶部と、
を備え、
前記被制御装置通信経路状態判定部は、
前記ネットワークの通信経路の異常を判定する被制御装置通信経路異常判定部と、
前記ネットワークの通信経路の正常を判定する被制御装置通信経路正常判定部と、
を有し、
前記被制御装置通信遅延記憶部は、
前記被制御装置通信経路正常判定部が通信経路を正常と判定している場合の遅延情報と、前記遅延補正値と、を保持し、
前記被制御装置時刻同期部は、
前記被制御装置通信経路正常判定部が通信経路を正常と判定している場合は前記遅延情報を用いて時刻同期し、
前記被制御装置通信経路異常判定部が通信経路を異常と判定している場合は前記遅延情報と、前記遅延補正値とを用いて時刻同期する、
ことを特徴とする被制御装置。 - 前記被制御装置通信経路状態判定部は、前記通信制御装置からの通信を用いて、通信経路の状態を
判定することを特徴とする請求項18に記載の被制御装置。 - 前記被制御装置は、
前記被制御装置通信部が接続する通信経路の異常を判定した場合に、通信経路の異常発生を示す所定の情報を通信パケットに付加して送信する、
ことを特徴とする請求項18に記載の被制御装置。
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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12261643B2 (en) | 2020-03-30 | 2025-03-25 | Sungrow Power Supply Co., Ltd. | Data transceiving control method and application system therefor |
Families Citing this family (12)
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 | 通号城市轨道交通技术有限公司 | 一种列车控制系统 |
JP7608091B2 (ja) | 2020-08-25 | 2025-01-06 | 株式会社オートネットワーク技術研究所 | 車載装置、異常検知方法および異常検知プログラム |
Family Cites Families (6)
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 | 株式会社日立産機システム | 情報処理装置及び制御用ネットワークシステム |
-
2012
- 2012-03-28 JP JP2012072803A patent/JP5891086B2/ja active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12261643B2 (en) | 2020-03-30 | 2025-03-25 | Sungrow Power Supply Co., Ltd. | Data transceiving control method and application system therefor |
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 | |
CN101578806B (zh) | 通信装置、同步通信系统及同步通信方法 | |
Berwanger et al. | FlexRay–the communication system for advanced automotive control systems | |
JP6045950B2 (ja) | 通信制御装置及び通信システム | |
US9467309B2 (en) | Network distributor | |
CN102577254A (zh) | 故障安全通信的方法和系统 | |
JP2001024630A (ja) | 2つのネットワーク間での同期方法および装置 | |
EP4050436A1 (en) | Control device and distributed control system | |
JP7393530B2 (ja) | パケット転送方法、デバイス、およびシステム | |
JP6709086B2 (ja) | 通信制御装置、および、通信制御方法 | |
JP4224100B2 (ja) | バスシステムを介してデータを交換する方法,装置およびシステム | |
JP6231453B2 (ja) | 通信制御装置 | |
JP2019179361A (ja) | セーフティ制御システムおよびセーフティ制御ユニット | |
US9705823B2 (en) | Port status synchronization method, related device, and system | |
CN104767633A (zh) | 一种工业以太网系统 | |
WO2019167415A1 (ja) | 通信制御装置及び通信制御システム | |
JP7330329B2 (ja) | 通信制御装置及び通信制御システム | |
US20160315839A1 (en) | Transmission method, transmission system, and transmission device | |
JP7337021B2 (ja) | 産業用ネットワークに接続されるスレーブ装置を制御するマスタ装置及び当該マスタ装置に備えられる通信モジュール | |
WO2009118653A1 (en) | Network device performing connection check, network system, and frame transfer method | |
CN117155502A (zh) | 时钟同步偏差确定方法和装置、测试设备、存储介质 |
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 |