(57)【要約】【課題】大規模プラントなど入出力部の数が増大しても演算部と各入出力部間の通信性能の劣化を防ぐことが可能な中継制御システムおよび通信中継方法を提供する。【解決手段】制御対象に命令に伴う要求または応答を含むデータを入出力する複数の入出力装置と、入出力装置に対する制御を命令する演算装置と、演算装置と入出力装置との通信を中継する複数の中継装置とを備え、中継装置毎に、複数の入出力装置と中継装置とがリング状の通信回線を介して接続され、中継装置は、そのデータを中継するか否かを判定する通信可否判定手段を有し、通信可否判定手段の判定結果に基づき、そのデータの通信を中継する。【選択図】  図１
2015210711.tif 000002
【特許請求の範囲】
【請求項１】
制御対象に命令に伴う要求または応答を含むデータを入出力する複数の入出力装置と、
前記入出力装置に対する制御を命令する演算装置と、
前記演算装置と前記入出力装置との通信を中継する複数の中継装置とを備え、
前記中継装置毎に、複数の前記入出力装置と前記中継装置とがリング状の通信回線を介して接続され、前記中継装置は、前記データを中継するか否かを判定する通信可否判定手段を有し、前記通信可否判定手段の判定結果に基づき、前記データの通信を中継する、
ことを特徴とする中継制御システム。
【請求項２】
請求項１記載の中継制御システムであって、
前記中継装置は、前記演算装置との間で前記データを通信する電気入出力ポートと、複数の前記入出力装置から前記データを受信する光入力ポートとを備え、
前記通信可否判定手段は、いずれのポートから入力されたかに基づいて前記データの通信を中継する方向を判断する第一の判断と、前記演算装置から前記入出力装置に送られるデータであるかまたは前記入出力装置から前記演算装置に送られるデータであるかを判断する第二の判断とによって、前記データの通信可否を判定することを特徴とする中継制御システム。
【請求項３】
請求項２記載の中継制御システムであって、
前記中継装置は、複数の前記入出力装置に対して前記データを送信する光出力ポートをさらに備え、
前記通信可否判定手段は、前記電気入出力ポートから入力され、前記演算装置から前記入出力装置に送られるデータであると判定した場合に前記データを前記光出力ポートに出力し、前記光入力ポートから入力され、前記入出力装置から前記演算装置に送られるデータであると判定した場合に前記データを前記電気入出力ポートに出力することを特徴とする中継制御システム。
【請求項４】
請求項３記載の中継制御システムであって、
前記通信可否判定手段は、前記電気入出力ポートから入力され、前記入出力装置から前記演算装置に送られるデータであると判定した場合には前記データを前記光出力ポートに出力せず、前記光入力ポートから入力され、前記演算装置から前記入出力装置に送られるデータであると判定した場合には前記データを前記電気入出力ポートに出力しないことを特徴とする中継制御システム。
【請求項５】
制御対象に命令に伴う要求または応答を含むデータを入出力する複数の入出力装置と、
前記入出力装置に対する制御を命令する第一の演算装置と、
前記入出力装置に対する制御を命令する第二の演算装置と、
前記第一の演算装置と前記入出力装置との通信を中継する複数の第一の中継装置と、
前記第二の演算装置と前記入出力装置との通信を中継する複数の第二の中継装置とを備え、
前記第一の中継装置毎に、複数の前記入出力装置と前記第一の中継装置とがリング状の第一の通信回線を介して接続され、前記第二の中継装置毎に、複数の前記入出力装置と前記第二の中継装置とがリング状の第二の通信回線を介して接続され、前記第一の中継装置および前記第二の中継装置は、前記データを中継するか否かを判定する通信可否判定手段を有し、前記通信可否判定手段の判定結果に基づき、前記データの通信を中継し、いずれか一方の演算装置が動作中は他方の演算装置が前記一方の演算装置と前記入出力装置との間の通信をモニタすることを特徴とする中継制御システム。
【請求項６】
請求項５記載の中継制御システムであって、
前記データは前記通信回線を識別するためのブランチ識別情報を含み、
前記第一の中継装置および前記第二の中継装置は、前記演算装置との間で前記データを通信する電気入出力ポートと、複数の前記入出力装置から前記データを受信する光入力ポートとを備え、
各中継装置の前記通信可否判定手段は、いずれのポートから入力されたかに基づいて前記データの通信を中継する方向を判断する第一の判断と、前記第一の演算装置または前記第二の演算装置から前記入出力装置に送られるデータであるかまたは前記入出力装置から前記第一の演算装置または前記第二の演算装置に送られるデータであるかを判断する第二の判断と、前記データが前記第一の演算装置から送られたデータであるかまたは前記第二の演算装置から送られたデータであるかを判断する第三の判断と、前記データに含まれるブランチ識別情報と前記第一の中継装置または前記第二の中継装置に付されたブランチ識別情報とに基づいて、データの通信可否を判断する第四の判断とによって、データの通信可否を判定することを特徴とする中継制御システム。
【請求項７】
請求項６記載の中継制御システムであって、
前記第一の中継装置および前記第二の中継装置は、複数の前記入出力装置に対して前記データを送信する光出力ポートをさらに備え、
前記通信可否判定手段は、前記電気入出力ポートから入力され、前記第一の演算装置または前記第二の演算装置から前記入出力装置に送られるデータであって当該演算装置が出力したデータであると判定した場合には前記データを前記光出力ポートに出力し、前記光入力ポートから入力され、ｉ）前記第一の演算装置または前記第二の演算装置から前記入出力装置に送られるデータであって当該演算装置が出力したデータではなくかつ前記データに含まれるブランチ識別情報と前記第一の中継装置または前記第二の中継装置に付されたブランチ識別情報とが一致すると判定した場合には前記データを前記電気入出力ポートに出力し、ｉｉ）前記入出力装置から前記第一の演算装置または前記第二の演算装置に送られるデータであると判定した場合には前記データを前記電気入出力ポートに出力することを特徴とする中継制御システム。
【請求項８】
請求項６記載の中継制御システムであって、
前記通信可否判定手段は、前記電気入出力ポートから入力され、ｉ）前記第一の演算装置または前記第二の演算装置から前記入出力装置に送られるデータであって当該演算装置が出力したデータでないと判定した場合には前記データを前記光出力ポートに出力せず、ｉｉ）前記入出力装置から前記第一の演算装置または前記第二の演算装置に送られるデータであると判定した場合には前記データを前記光出力ポートに出力せず、前記光入力ポートからデータが入力され、ｉｉｉ）前記第一の演算装置または前記第二の演算装置から前記入出力装置に送られるデータであって当該演算装置が出力したデータであると判定した場合には前記データを前記電気入出力ポートに出力せず、ｉｖ）前記第一の演算装置または前記第二の演算装置から前記入出力装置に送られるデータであって当該演算装置が出力したデータではなくかつ前記データに含まれるブランチ識別情報と前記第一の中継装置または前記第二の中継装置に付されたブランチ識別情報とが一致しないと判定した場合には前記データを前記電気入出力ポートに出力しないことを特徴とする中継制御システム。
【請求項９】
制御対象に命令に伴う要求または応答を含むデータを入出力する複数の入出力装置に対する制御を命令する演算装置と前記入出力装置との通信を中継する複数の中継装置毎に、複数の前記入出力装置と前記中継装置とがリング状の通信回線を介して接続され、
前記中継装置が有する前記演算装置との間で前記データを通信する電気入出力ポートまたは複数の前記入出力装置から前記データを受信する光入力ポートのいずれのポートから入力されたかに基づいて前記データの通信を中継する方向を判断する第一の判断ステップと、
前記演算装置から前記入出力装置に送られるデータであるかまたは前記入出力装置から前記演算装置に送られるデータであるかを判断する第二の判断ステップと、
各判断ステップによる判定結果に基づき、前記データの通信を中継する中継ステップと、
を含むことを特徴とする通信中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算部と入出力部が分離され、演算部と入出力部とをそれぞれ中継装置を介した通信回線で接続する制御システム装置に関する。
【背景技術】
【０００２】
化学プラントや原子力発電所等の、安全確保が優先される現場に用いられる制御システムは、可用性（availability:その対象が障害に対してどれだけ強いかを示す観点。稼働率。）に対する要求が厳しい。これらの制御システムでは、演算部を二重化し、それら演算部と入出力部の各装置間を接続する通信回線を二重化し、さらに演算部と入出力部をリング状に接続することにより、高い可用性を実現する方法が提案されている。例えば、特許文献１によれば、二重化した通信回線をリング状に接続することにより、一箇所に集中して発生する回線故障に対し、高い耐障害性を有するので、強力な可用性を提供できると記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１１３４１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の制御システムでは、二重化された演算部と、各入出力部は中継装置を介して、二重化された１つのリング状の通信回線で接続される構成となっている。その為、入出力部の数を増やしたい場合は、中継装置と通信回線を必要数、リングの構成に追加することとなる。中継装置では、光信号を電気信号に変換するなどの処理に少なからず時間がかかる(例えば変換時間3μs)。また、通信回線の距離が長くなると、通信信号の通信時間が長くなる(例えば6ns/m)。従って、入出力部の数を増やすと各入出力部との通信に時間がかかり、制御システムの通信性能が落ちるという課題がある。特に、大規模プラントの制御では入出力装置が数百台接続される事もあり、その影響は大きい。
【０００５】
本発明は、上記に鑑みてなされたものであって、大規模プラントなど入出力部の数が増大しても演算部と各入出力部間の通信性能の劣化を防ぐことが可能な中継制御システムおよび通信中継方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明にかかる中継制御システムは、制御対象に命令に伴う要求または応答を含むデータを入出力する複数の入出力装置と、前記入出力装置に対する制御を命令する演算装置と、前記演算装置と前記入出力装置との通信を中継する複数の中継装置とを備え、前記中継装置毎に、複数の前記入出力装置と前記中継装置とがリング状の通信回線を介して接続され、前記中継装置は、前記データを中継するか否かを判定する通信可否判定手段を有し、前記通信可否判定手段の判定結果に基づき、前記データの通信を中継する、ことを特徴とする中継制御システムとして構成される。
【０００７】
また、本発明にかかる中継制御システムは、制御対象に命令に伴う要求または応答を含むデータを入出力する複数の入出力装置と、前記入出力装置に対する制御を命令する第一の演算装置と、前記入出力装置に対する制御を命令する第二の演算装置と、前記第一の演算装置と前記入出力装置との通信を中継する複数の第一の中継装置と、前記第二の演算装置と前記入出力装置との通信を中継する複数の第二の中継装置とを備え、前記第一の中継装置毎に、複数の前記入出力装置と前記第一の中継装置とがリング状の第一の通信回線を介して接続され、前記第二の中継装置毎に、複数の前記入出力装置と前記第二の中継装置とがリング状の第二の通信回線を介して接続され、前記第一の中継装置および前記第二の中継装置は、前記データを中継するか否かを判定する通信可否判定手段を有し、前記通信可否判定手段の判定結果に基づき、前記データの通信を中継し、いずれか一方の演算装置が動作中は他方の演算装置が前記一方の演算装置と前記入出力装置との間の通信をモニタすることを特徴とする中継制御システムとして構成される。
【０００８】
また、本発明は、上記中継制御システムで行われる通信中継方法としても把握される。
【発明の効果】
【０００９】
本発明によれば、大規模プラントなど入出力部の数が増大しても演算部と各入出力部間の通信性能の劣化を防ぐことができる。
【図面の簡単な説明】
【００１０】
【図１】二重化されたCPUユニットが複数ブランチに接続された制御システムのブロック図である。
【図２】CPUユニット１台がRIOユニット3台に接続された制御システムのブロック図である。
【図３】CPUユニット１台を使用した制御システムにおけるフレーム構成図である。
【図４】ユニキャスト通信における要求フレームと応答フレームのタイムチャートである。
【図５】CPUユニット１台に対し、RIOユニットが6台、直列接続された制御システムのブロック図である。
【図６】CPUユニット１台に対し、RIOユニットが3台ずつ、並列接続された制御システムのブロック図である。
【図７】CPUIFの機能を表すブロック図である。
【図８】CPU二重化の制御システムにおけるフレーム構成図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、本発明にかかる中継制御システムおよび通信中継方法の実施の形態を詳細に説明する。
【実施例１】
【００１２】
まず、化学プラントや原子力発電所等で使用される制御システムの一例を、図２を用いて説明する。図２は、制御システムの一例を示すブロック図である。図２に示すように、一般的な制御システムは、指令装置100と、演算部であるCPUユニット102と、入出力部であるRIOユニット112、121及び130とを有している。また、本制御システムの制御対象120、129、138が、それぞれRIOユニット112、121、130に接続されている。
【００１３】
指令装置100は、制御システムの状態を監視するとともに、制御システムへ各種指令を行う。CPUユニット102は、演算装置であるCPU103と、中継装置である電気光変換装置CPUIF108および電気光変換装置CPUIF109とを有して構成される。
【００１４】
CPU103は、各入出力部から通信回線を介して取得した入力情報と指令装置100からの指令を元に入出力部への出力情報を演算し、その結果を、通信回線を介して各入出力部へ送出する。
【００１５】
RIOユニット112は、入出力装置であるRIO119と、電気光変換装置RIOIF200と、電気光変換装置RIOIF201と、電気光変換装置RIOIF115と、電気光変換装置RIOIF116とを有して構成される。RIOユニット121は、入出力装置であるRIO128と、電気光変換装置RIOIF122と、電気光変換装置RIOIF123と、電気光変換装置RIOIF124と、電気光変換装置RIOIF125とを有して構成される。RIOユニット130は、入出力装置であるRIO137と、電気光変換装置RIOIF131と、電気光変換装置RIOIF132と、電気光変換装置RIOIF202と、電気光変換装置RIOIF203とを有して構成される。
【００１６】
RIO119、128及び137は、CPU103から通信回線を介して演算結果を取得し、制御対象120、129、138に出力する。また、RIO119、128及び137は、制御対象120、129、138より取得した入力データを、通信回線を介してCPU103へ送出する。CPU103と各RIO119、128、137は、二重化されたリング状の通信回線で接続されている。ここでは二重化されたリング状の通信回線の一方を1系通信回線、もう一方を2系通信回線と呼ぶ。
【００１７】
次に、CPUユニット102の通信回線と通信動作について説明する。
【００１８】
CPU103とCPUIF108は、1系の電気通信回線104で接続されており、電気信号で双方向の通信が可能である。CPUIF108には、さらにCPUユニット外部との通信を行うために、1系の光通信回線177と176が接続されている。光通信回線177は、CPUユニット外部へ通信データを送出する回線であり、光通信回線176は、CPUユニット外部から通信データを受信する回線である。通信は、フレームと呼ばれるデータのかたまりによって行われる。フレームの種類や構造については後述する。
【００１９】
CPUIF108は、1系電気通信回線104から電気信号のフレームを受信すると、電気信号を光信号に変換し、1系光通信回線177へ光信号のフレームを送出する。また、CPUIF108は、1系の光通信回線176から光信号のフレームを受信すると、光信号を電気信号に変換し、1系の電気通信回線104へ送出する。
【００２０】
CPU103とCPUIF109は、2系の電気通信回線105で接続されており、電気信号で双方向の通信が可能である。CPUIF109には、さらにCPUユニット外部との通信を行うために、2系の光通信回線179と178が接続されている。光通信回線179は、CPUユニット外部へ通信データを送出する回線であり、光通信回線178は、CPUユニット外部から通信データを受信する回線である。
【００２１】
CPUIF109は、2系電気通信回線105から電気信号のフレームを受信すると、電気信号を光信号に変換し、2系光通信回線179へ光信号のフレームを送出する。また、CPUIF109は、2系の光通信回線178から光信号のフレームを受信すると、光信号を電気信号に変換し、2系の電気通信回線105へ送出する。
【００２２】
次に、RIOユニット112の通信回線と通信動作について説明する。
【００２３】
RIO119とRIOIF200とRIOIF115は、1系の電気通信回線117でそれぞれ接続されている。RIOIF200には、RIOユニット外部からの通信データを受信するための1系の光通信回線177が接続されている。RIOIF115には、RIOユニット外部へ通信データを送信するための1系の光通信回線192が接続されている。
【００２４】
RIOIF200は、1系光通信回線177から光信号のフレームを受信すると、光信号を電気信号に変換し、1系電気通信回線117へ電気信号のフレームを送出する。光通信回線192は、RIOユニット外部へ通信データを送出する回線である。RIOIF115は、1系電気通信回線117から電気信号のフレームを受信すると、電気信号を光信号に変換し、1系光通信回線192へ光信号のフレームを送出する。
【００２５】
RIO119とRIOIF201とRIOIF116は、2系の電気通信回線118でそれぞれ接続されている。RIOIF201には、RIOユニット外部へ通信データを送信するための2系の光通信回線178が接続されている。RIOIF116には、RIOユニット外部からの通信データを受信するための2系の光通信回線194が接続されている。
【００２６】
RIOIF201は、2系電気通信回線118から電気信号のフレームを受信すると、電気信号を光信号に変換し、2系光通信回線178へ光信号のフレームを送出する。光通信回線194は、RIOユニット外部から通信データを受信する回線である。RIOIF116は、2系光通信回線194から光信号のフレームを受信すると、光信号を電気信号に変換し、2系電気通信回線118へ電気信号のフレームを送出する。RIOユニット121、130については、RIOユニット112と構成及び動作が変わらないので説明を省略する。
【００２７】
次に、各ユニット間の1系通信回線の接続について説明する。
【００２８】
CPUIF108とRIOIF200は、1系の光通信回線177で接続され、CPUIF108からRIOIF200への通信が可能である。RIOIF115とRIOIF122は、1系の光通信回線192で接続され、RIOIF115からRIOIF122への通信が可能である。RIOIF124とRIOIF131は、1系の光通信回線196で接続され、RIOIF124からRIOIF131への通信が可能である。RIOIF202とCPUIF108は、1系の光通信回線176で接続され、RIOIF202からCPUIF108への通信が可能である。
【００２９】
次に、各ユニット間の2系通信回線の接続について説明する。
【００３０】
CPUIF109とRIOIF203は、2系の光通信回線179で接続され、CPUIF109からRIOIF203への通信が可能である。RIOIF132とRIOIF125は、2系の光通信回線198で接続され、RIOIF132からRIOIF125への通信が可能である。RIOIF123とRIOIF116は、2系の光通信回線194で接続され、RIOIF123からRIOIF116への通信が可能である。RIOIF201とCPUIF109は、2系の光通信回線178で接続され、RIOIF201からCPUIF109への通信が可能である。CPU103とRIO119、RIO128、RIO137間の通信はフレームを送受信することで行われる。
【００３１】
図３は、フレーム構成例を示している。図３に示すように、フレームは、その先頭から、開始フラグ300、要求/応答フラグ301、ブロードキャスト/ユニキャスト/グループキャストフラグ302、送信先アドレス303、送信元アドレス304、データ305、終了フラグ306という構成要素を含んでいる。
【００３２】
開始フラグ300は、フレームの先頭を示すフラグ情報である。CPU103とRIO119とRIO128とRIO137はこの「開始フラグ」を検出して、フレームを受信したことを認識する。
【００３３】
要求/応答フラグ301は、そのフレームが要求フレームであるか、応答フレームであるかを示す1bitから数bitで構成されるフラグ情報である。
【００３４】
要求フレームは、要求/応答フラグ301が“要求”を示すフレームであり、CPU103から各RIOへの通信に使用される。具体的には、CPU103が各RIOに対し、入出力などの動作を要求するためのフレームである。
【００３５】
応答フレームは、要求/応答フラグ301が“応答”を示すフレームであり、RIOからCPUへの通信に使用される。具体的には、RIO119またはRIO128またはRIO137が制御対象120または制御対象129または制御対象138からの入力情報をCPU103に対して送信したり、RIO119またはRIO128またはRIO137が制御対象120または制御対象129または制御対象138に対して出力した情報をCPU103に送信したりする。
【００３６】
ブロードキャスト/ユニキャスト/グループキャストフラグ302は、CPU103と各RIO間の通信がブロードキャスト通信か、ユニキャスト通信か、グループキャスト通信かを示すフラグ情報である。ユニキャスト通信とブロードキャスト通信とグループキャスト通信の詳細については後述する。
【００３７】
送信先アドレス303は、送信先を示すアドレスである。CPU103とRIO119とRIO128とRIO137は、このアドレスが自分のアドレスと一致するか否かを判定し、一致する場合には接続される通信回線からのフレームを受信し、不一致の場合にはフレームを受信しない。なお、全てのCPUとRIOは、重複しないユニークなアドレスを持つ。
【００３８】
送信元アドレス304は、送信元を示すアドレスである。つまり、このフレームを送信するCPUまたはRIOが、自分のアドレスをこの項目に設定してフレームを送信する。
【００３９】
データ305は、入力データまたは出力データが設定される箇所である。終了フラグ306は、フレームの終了を示すフラグ情報である。また、フレームには、CRCを付加し、データ健全性のチェックを行っているが、ここでは説明を省略する。
【００４０】
次に、ユニキャスト通信とブロードキャスト通信とグループキャスト通信について、図２を用いて説明する。
【００４１】
ユニキャスト通信は、CPUから特定のRIOに要求フレームを送信し、該RIOは、要求フレーム受信後、必要な処理を実施し、CPUに対して応答フレームを送信する。この一連の処理をユニキャスト通信と称す。ユニキャスト通信における通信の流れを、図２を用いて説明する。ここでは、1系通信回線によるRIO137への通信を例に説明する。
【００４２】
CPU103から電気通信回線104に出力された、RIO137あてのユニキャスト通信の要求フレームは、CPUIF108に入力される。CPUIF108は、要求フレームを受信すると、光/電気変換を行い、光通信回線177に要求フレームを出力する。
【００４３】
RIOIF200は、光通信回線177から要求フレームを受信すると、光/電気変換を行い、電気通信回線117に出力する。電気通信回線117に出力された要求フレームは、RIO119及び、RIOIF115に入力される。
【００４４】
RIOIF115は、要求フレームを受信すると、光/電気変換を行い、光通信回線192に出力する。RIO119は、受信した要求フレームの送信先アドレスが自らのアドレスとの一致/不一致を確認する。ここでは、アドレス不一致のため、RIO119は、入出力動作やCPU103への応答フレーム送信は行わない。
【００４５】
RIOIF122は、光通信回線192から要求フレームを受信すると、光/電気変換を行い、電気通信回線126に出力する。電気通信回線126に出力された要求フレームは、RIO128及び、RIOIF124に入力される。RIOIF124は、要求フレームを受信すると、光/電気変換を行い、光通信回線196に出力する。RIO128は、RIO119と同様の動作を行うので説明を省略する。
【００４６】
RIOIF131は、光通信回線196から要求フレームを受信すると、光/電気変換を行い、電気通信回線135に出力する。電気通信回線135に出力された要求フレームは、RIO137及び、RIOIF202に入力される。RIOIF202は、要求フレームを受信すると、光/電気変換を行い、光通信回線176に出力する。
【００４７】
RIO137は、受信した要求フレームの送信先アドレスが自らのアドレスとの一致/不一致を確認する。ここでは、RIO137は、アドレスが一致したと判断し、要求フレームのデータ内容に応じた処理を行った後、応答フレームを電気通信回線135に出力する。応答フレームの流れについては後述する。
【００４８】
CPUIF108は、光通信回線176から要求フレームを受信すると、光/電気変換を行い、電気通信回線104に出力する。電気通信回線104に出力された要求フレームは、CPU103に入力される。CPU103は、受信したフレームの送信先アドレスが自らのアドレスとの一致/不一致を確認する。ここでは、アドレス不一致のため、データを取り込まない。
【００４９】
次に、RIO137からの応答フレームの流れについて説明する。
【００５０】
応答フレームは、電気通信回線135からRIOIF131、RIOIF202にそれぞれ入力されるが、RIOIF131は、出力先がないため、特に何もしない。
【００５１】
RIOIF202は、応答フレームを受信すると、光/電気変換を行い、光通信回線176に出力する。CPUIF108は、光通信回線176から応答フレームを受信すると、光/電気変換を行い、電気通信回線104に出力する。応答フレームは、電気通信回線104を介してCPU103に入力され、CPU103は、受信した応答フレームに応じた処理を行う。
【００５２】
次に、ユニキャスト通信における要求フレームと応答フレームの通信回線を流れる順番について説明する。
【００５３】
応答フレームは、RIO137が要求フレームを受信して、必要な処理を実施した後、通信回線に送出される。従って、応答フレームが流れる通信回線には、要求フレーム、応答フレームの順にフレームが通過する。例として、CPU103とRIO137とのユニキャスト通信での光通信回線176におけるフレームのタイムチャートを図４に示す。図４に示すように、要求フレーム400が流れた後に応答フレーム401が流れる。続いて、ブロードキャスト通信について説明する。
【００５４】
ブロードキャスト通信は、CPU103から全てのRIOに対して、要求フレームを送信する通信である。ブロードキャスト通信では、フレームの送信先アドレス303は無効となり、全てのRIOが対象となる。全てのRIOは、要求フレームを受信後、必要な処理を実施するが、CPUへの応答フレームは送信しない。
【００５５】
ブロードキャスト通信における通信の流れを、図２を用いて説明する。ここでは、1系通信回線での通信を例に説明する。
【００５６】
CPU103から電気通信回線104に出力された、ブロードキャスト通信の要求フレームは、CPUIF108に入力される。CPUIF108は、要求フレームを受信すると、光/電気変換を行い、光通信回線177に要求フレームを出力する。
【００５７】
RIOIF200は、光通信回線177から要求フレームを受信すると、光/電気変換を行い、電気通信回線117に出力する。電気通信回線117に出力された要求フレームは、RIO119及び、RIOIF115に入力される。
【００５８】
RIOIF115は、要求フレームを受信すると、光/電気変換を行い、光通信回線192に出力する。RIO119は、受信した要求フレームのブロードキャスト/ユニキャスト/グループキャストフラグ302が“ブロードキャスト”と判定すると、要求フレームのデータ内容に応じた処理を行う。ただし、CPUに対して、応答フレームの送信は行わない。
【００５９】
RIOIF122は、光通信回線192から要求フレームを受信すると、光/電気変換を行い、電気通信回線126に出力する。電気通信回線126に出力された要求フレームは、RIO128及び、RIOIF124に入力される。RIOIF124は、要求フレームを受信すると、光/電気変換を行い、光通信回線196に出力する。RIO128は、RIO119と同様の動作を行うので説明を省略する。
【００６０】
RIOIF131は、光通信回線196から要求フレームを受信すると、光/電気変換を行い、電気通信回線135に出力する。電気通信回線135に出力された要求フレームは、RIO137及び、RIOIF202に入力される。RIOIF202は、要求フレームを受信すると、光/電気変換を行い、光通信回線176に出力する。
【００６１】
CPUIF108は、光通信回線176から要求フレームを受信すると、光/電気変換を行い、電気通信回線104に出力する。電気通信回線104に出力された要求フレームは、CPU103に入力される。
【００６２】
CPU103は受信したフレームの送信先アドレスが自らのアドレスとの一致/不一致を確認する。ここでは、アドレス不一致のため、データを取り込まない。RIO137は、RIO119と同様の動作を行うので説明を省略する。続いて、グループキャスト通信について説明する。
【００６３】
グループキャスト通信は、複数のRIOをグルーピングし、そのグループに属するRIOに対して、CPUから要求フレームを送信する通信である。グループキャスト通信の流れについては、グループに属していないRIOは、要求フレームを受信しても、要求フレームの処理を行わないこと以外、ブロードキャスト通信と同じため、説明を省略する。
【００６４】
ここまで、各通信のフレームの流れについて、1系通信回線を例に説明した。なお、2系通信回線の通信については、通信方向が逆ではあるが、1系通信と同様の通信であるため説明を省略する。
【００６５】
次に、図２の構成に対し、RIOユニットを増やした場合の課題について説明する。
【００６６】
図５は、図２で示したRIOユニット112、RIOユニット121、RIOユニット130に対して、点線で囲まれたRIOユニット139、RIOユニット148、RIOユニット157を同一リング上に直列に追加接続した場合のブロック図である。ここで、図２の構成と図５の構成の通信時間の違いについて、RIO137への1系通信を例に説明する。
【００６７】
図２の構成の場合、CPU103から送信された要求フレームは、電気通信回線104、CPUIF108、光通信回線177、RIOIF200、電気通信回線117、RIOIF115、光通信回線192、RIOIF122、電気通信回線126、RIOIF124、光通信回線196、RIOIF131、電気通信回線135を介して、RIO137に入力される。
【００６８】
図５の構成の場合、CPU103から送信された要求フレームは、電気通信回線104、CPUIF108、光通信回線177、RIOIF200、電気通信回線117、RIOIF115、光通信回線192、RIOIF122、電気通信回線126、RIOIF124、光通信回線196、RIOIF500、電気通信回線144、RIOIF142、光通信回線504、RIOIF502、電気通信回線162、RIOIF158、光通信回線205、RIOIF151、電気通信回線153、RIOIF149、光通信回線201、RIOIF202、電気通信回線135を介して、RIO137に入力される。
【００６９】
ここで、光/電気変換に着目すると、図２の構成の場合は、CPU103からの要求フレームがRIO137に入力されるまでに、6台の電気光変換装置によって、6回光/電気変換する。光/電気変換に3μsかかるとすると、１通信において、光/電気変換にかかる時間は18μsである。
【００７０】
一方、直列にRIOユニットを追加接続した図５の構成の場合は、CPU103からの要求フレームがRIO137に入力されるまでに、12台の電気光変換装置によって、12回光/電気変換する。従って、１通信において、光/電気変換にかかる時間は36μsとなり、図２の構成に対し18μs増大する。また、追加された通信回線の距離に応じて、通信時間はさらに増大する。１通信にかかる時間を100〜200μs程度と考えると、制御システムの通信性能に対する影響は大きい。従って、本実施例では、RIOユニットを並列に接続できる様にする。
【００７１】
図６は、本発明の一例を示す制御システムのブロック図である。
【００７２】
CPUユニット102は、CPU103、CPUIF108、CPUIF109、CPUIF108およびCPUIF109と同様のCPUIF110、CPUIF111で構成される。CPU103とCPUIF108、CPUIF110は同一の1系電気通信回線104で接続される。CPU103とCPUIF109、CPUIF111は同一の2系電気通信回線105で接続される。
【００７３】
次に、各ユニット間の通信回線の接続について説明する。
【００７４】
CPUIF108とRIOIF200は、1系の光通信回線177で接続され、CPUIF108からRIOIF200への通信が可能である。RIOIF115とRIOIF122は、1系の光通信回線192で接続され、RIOIF115からRIOIF122への通信が可能である。RIOIF124とRIOIF131は、1系の光通信回線196で接続され、RIOIF124からRIOIF131への通信が可能である。RIOIF202とCPUIF108は、1系の光通信回線176で接続され、RIOIF202からCPUIF108への通信が可能である。
【００７５】
CPUIF109とRIOIF203は、2系の光通信回線179で接続され、CPUIF109からRIOIF203への通信が可能である。RIOIF132とRIOIF125は、2系の光通信回線198で接続され、RIOIF132からRIOIF125への通信が可能である。RIOIF123とRIOIF116は、2系の光通信回線194で接続され、RIOIF123からRIOIF116への通信が可能である。RIOIF201とCPUIF109は、2系の光通信回線178で接続され、RIOIF201からCPUIF109への通信が可能である。
【００７６】
CPUIF110とRIOIF500は、1系の光通信回線181で接続され、CPUIF110からRIOIF500への通信が可能である。RIOIF142とRIOIF149は、1系の光通信回線200で接続され、RIOIF142からRIOIF149への通信が可能である。RIOIF151とRIOIF158は、1系の光通信回線204で接続され、RIOIF151からRIOIF158への通信が可能である。RIOIF502とCPUIF110は、1系の光通信回線180で接続され、RIOIF502からCPUIF110への通信が可能である。CPUIF111とRIOIF503は、2系の光通信回線183で接続され、CPUIF111からRIOIF503への通信が可能である。
【００７７】
RIOIF159とRIOIF152は、2系の光通信回線206で接続され、RIOIF159からRIOIF152への通信が可能である。RIOIF150とRIOIF143は、2系の光通信回線202で接続され、RIOIF150からRIOIF143への通信が可能である。RIOIF501とCPUIF111は、2系の光通信回線182で接続され、RIOIF501からCPUIF111への通信が可能である。
【００７８】
CPUIF108及びCPUIF109とRIOユニット112、RIOユニット121、RIOユニット130は、複数の光通信回線及び電気通信回線によって、1系、2系にリング状に接続されている。この二重化されたリング状の通信回線をブランチと称す。
【００７９】
ここでは、CPUIF108及びCPUIF109とRIOユニット112、RIOユニット121及びRIOユニット130が接続された通信回線をブランチ1と呼び、CPUIF110及びCPUIF111とRIOユニット139、RIOユニット148及びRIOユニット157が接続された通信回線をブランチ2と呼ぶ。
【００８０】
本構成の様に、RIOユニットを並列に接続すれば、接続するRIOユニットの台数を増やしても、RIOユニットを直列に追加接続した場合の通信時間の増大を防ぐことができる。
【００８１】
次に、本実施例における通信のフレームの流れについて、CPU103とRIO155との間の1系通信回線におけるユニキャスト通信を例として説明する。
【００８２】
CPU103から電気通信回線104に出力されたRIO155あてのユニキャスト通信の要求フレームはCPUIF108とCPUIF110に入力される。CPUIF108は要求フレームを受信すると、光/電気変換を行い、光通信回線177に要求フレームを出力する。CPUIF110は要求フレームを受信すると、光/電気変換を行い、光通信回線181に要求フレームを出力する。つまり、ブランチ1とブランチ2の両通信回線に要求フレームが送出される。ここで、通信対象のRIO155が含まれないブランチ1にも要求フレームが送出されるが、これは、ブロードキャスト通信など、複数のRIOへの通信を行う場合がある為である。
【００８３】
CPUIF108から光通信回線177に出力された要求フレームは、電気通信回線117、光通信回線192、電気通信回線126、光通信回線196、電気通信回線135を介して、ブランチ1に接続された各RIOに配信され、光通信回線176からCPUIF108に入力される。
【００８４】
CPUIF110から光通信回線181に出力された要求フレームは、電気通信回線144、光通信回線200、電気通信回線153、光通信回線204、電気通信回線162を介して、ブランチ2に接続された各RIOに配信され、光通信回線180からCPUIF110に入力される。ここで、CPUIF108とCPUIF110の動作について説明する。
【００８５】
CPU103とCPUIF108とCPUIF110は、同一の電気通信回線104で接続されている。このため、CPUIF108が光通信回線176からの要求フレームを光/電気変換して電気通信回線104に出力する動作と、CPUIF110が光通信回線180からの要求フレームを光/電気変換して電気通信回線104に出力する動作がほぼ同じタイミングで実施されてしまうと、それぞれのCPUIFが出力するフレームの電気信号が重なり、信号が崩れてしまう場合がある。これをフレームの衝突という。
【００８６】
衝突した信号をCPU103が受信すると、CPU103が正常な処理ができなくなる場合がある事が考えられ、システムの制御に影響してしまう。従って、本実施例では、CPUIFは光通信回線からの要求フレームを識別し、光通信回線から要求フレームを受信しても、電気通信回線に出力しないようにする。これにより、CPUIF108及びCPUIF110から電気通信回線104に要求フレームが出力されないため、フレームの衝突は発生しなくなる。また、CPU103には、要求フレームが入力されなくなるが、本要求フレームはCPU103が送出したものであるから、特に問題は発生しない。CPUIFの動作の詳細については後述する。
【００８７】
次に、RIO155からCPU103への応答フレームの1系通信回線における流れについて説明する。
【００８８】
RIO155は、要求フレームを受信すると、制御対象156への入出力など必要な処理を行い、応答フレームを電気通信回線153に出力する。応答フレームは、電気通信回線153からRIOIF149、RIOIF151にそれぞれ入力されるが、RIOIF149は出力先がないため、特に何もしない。
【００８９】
RIOIF151は、応答フレームを受信すると、光/電気変換を行い、光通信回線204に出力する。応答フレームは、さらにRIOIF158、電気通信回線162、RIOIF502、光通信回線180を介して、CPUIF110に入力される。CPUIF110は、光通信回線180から応答フレームを受信すると、光/電気変換を行い、電気通信回線104に出力する。応答フレームは、電気通信回線104を介してCPU103に入力され、CPU103は、受信した応答フレームに応じた処理を行う。また、CPU103とCPUIF108とCPUIF110は同一の電気通信回線で接続されているため、RIO155からの応答フレームはCPU103だけでなく、CPUIF108にも入力される。
【００９０】
ここで、CPUIF108が受信した応答フレームを光/電気変換し、光通信回線177に出力してしまうと、応答フレームはブランチ1の1系通信回線を流れて、光通信回線176からCPUIF108に入力、光/電気変換され、再度、電気通信回線104に出力されてしまう。これをフレームの回り込みと称す。さらに、その応答フレームをCPUIF110が受信し、ブランチ2の通信回線にフレームを流すことになり、応答フレームは永遠に通信回線を流れ続けることになってしまう。
【００９１】
従って、本実施例では、CPUIFは、電気通信回線からの応答フレームを識別し、電気通信回線から応答フレームを受信しても、光通信回線に出力しない。これにより、応答フレームが通信回線を永遠に流れ続けることを防ぐことができる。
【００９２】
次に、CPUIFの動作について、図７を用いて説明する。
【００９３】
図７は、CPUIFの機能ブロック図である。図７に示すように、CPUIF700は、通信可否判定手段であるフレーム判定部702の判断結果に応じて、フレーム出力の制御を行う通信制御部701と、入力されたフレームを出力するかしないかの判断を行うフレーム判定部702と、光/電気変換器703と、電気入出力ポート707と、光出力ポート708と、光入力ポート709とを有している。まず、電気入出力ポートに入力されたフレームの流れについて説明する。フレーム判定部702は、まず、電気入出力ポートからフレームを受け取ったか否かを判定することにより、流れるフレームの方向を判定し、さらに以下の判定を行っている。
【００９４】
CPUIF700の電気入出力ポート707に入力されたフレーム（要求/応答フレーム704）は、通信制御部701内のフレーム判定部702に入力される。フレーム判定部702は、入力されたフレームの要求/応答フラグを確認し、要求フレームか応答フレームかを判定する。
【００９５】
フレーム判定部が要求フレームであると判定した場合、通信制御部701は、光/電気変換器703にフレームを出力する。光/電気変換器703は、入力されたフレームを光/電気変換し、光出力ポート708を介して、接続された光通信回線に出力する。フレーム判定部が応答フレームであると判定した場合、通信制御部701は光/電気変換器703にフレームを出力しない。
【００９６】
次に、光入力ポート709に入力されたフレームの流れについて説明する。フレーム判定部702は、まず、光/電気変換器703を介して光入力ポートからフレームを受け取ったか否かを判定することにより、流れるフレームの方向を判定し、さらに以下の判定を行っている。
【００９７】
CPUIF700の光入力ポート709に入力されたフレームは、光/電気変換器703に入力される。光/電気変換器703は、入力されたフレームを光/電気変換し、通信制御部701内のフレーム判定部702に出力する。フレーム判定部702は、入力されたフレームの要求/応答フラグを確認し、要求フレームか応答フレームかを判定する。
【００９８】
フレーム判定部が要求フレームであると判定した場合、通信制御部701は、電気入出力ポート707に出力しない。フレーム判定部が応答フレームであると判定した場合、通信制御部701は、電気入出力ポート707を介して、接続された光通信回線に出力する。
【００９９】
以上をまとめると、CPUIFの動作は表１のようになる。
【０１００】
【表１】
2015210711.tif 000003
【０１０１】
本実施例では、ブランチが2つある構成としていたが、CPUIFを増加して、さらにブランチを並列に接続できる事は言うまでもない。
【０１０２】
次に、CPUユニットを二重化し可用性を向上させた制御システムの一例を、図１を用いて説明する。
【０１０３】
図１は、本発明の制御システムの一例を示すブロック図である。本制御システムは、図６に示したCPUユニット１台で複数ブランチを制御するシステムと比較して、CPUユニット166が追加されている。
【０１０４】
CPUユニット166の内部構成は、CPUユニット102の内部構成と同じで、CPU167と、CPUIF172と、CPUIF173と、CPUIF174と、CPUIF175とを有して構成される。また、RIOユニット内のRIOIFのうち、CPUユニットと光通信回線で接続されるRIOIFを反射RIOIFとする。
【０１０５】
反射RIOIFには、1つの電気通信回線と2つの光通信回線が接続されており、光通信回線の1方は光入力回線で、もう一方は光出力回線である。反射RIOIFは、光入力回線から入力された通信フレームは光/電気変換され、電気通信回線へ出力されると共に、光出力回線にも出力する。その他の機能はRIOIFと同じである。
【０１０６】
CPUIF172と反射RIOIF133は、1系の光通信回線185で接続され、CPUIF172から反射RIOIF133への通信が可能である。CPUIF172と反射RIOIF113は1系の光通信回線184で接続され、反射RIOIF113からCPUIF172への通信が可能である。
【０１０７】
CPUIF173と反射RIOIF114は、2系の光通信回線186で接続され、CPUIF173から反射RIOIF114への通信が可能である。CPUIF173と反射RIOIF134は2系の光通信回線187で接続され、反射RIOIF134からCPUIF173への通信が可能である。
【０１０８】
CPUIF174と反射RIOIF160は1系の光通信回線189で接続され、CPUIF174からCPUIF160への通信が可能である。CPUIF174と反射RIOIF140は1系の光通信回線188で接続され、反射RIOIF140からCPUIF174への通信が可能である。
【０１０９】
CPUIF175と反射RIOIF141は2系の光通信回線190で接続され、CPUIF175から反射RIOIF141への通信が可能である。CPUIF175と反射RIOIF161は2系の光通信回線191で接続され、反射RIOIF161からCPUIF175への通信が可能である。
【０１１０】
また、RIOIF115とRIOIF122は、1系の光通信回線192と1系の光通信回線193の2回線で接続され、双方向の通信が可能である。RIOIF124とRIOIF131は、1系の光通信回線196と1系の光通信回線197の2回線で接続され、双方向の通信が可能である。
【０１１１】
RIOIF142とRIOIF149は、1系の光通信回線200と1系の光通信回線201の2回線で接続され、双方向の通信が可能である。RIOIF151とRIOIF158は、1系の光通信回線204と1系の光通信回線205の2回線で接続され、双方向の通信が可能である。
【０１１２】
RIOIF116とRIOIF123は、2系の光通信回線194と2系の光通信回線195の2回線で接続され、双方向の通信が可能である。RIOIF125とRIOIF132は、2系の光通信回線198と2系の光通信回線199の2回線で接続され、双方向の通信が可能である。
【０１１３】
RIOIF143とRIOIF150は、2系の光通信回線202と2系の光通信回線203の2回線で接続され、双方向の通信が可能である。RIOIF152とRIOIF159は、2系の光通信回線206と2系の光通信回線207の2回線で接続され、双方向の通信が可能である。
【０１１４】
CPUユニットを二重化することで、一方のCPUが故障しても、他方のCPUで制御を継続することができるため、CPU故障に対し、高い耐障害性を有する。従って、強力な可用性を提供できる。CPU103が故障した場合等、CPU103の動作をCPU167が引き継ぐ場合は、CPU103の代わりに、CPU167が各RIOユニットと通信を開始する。通信方法は、通信方向が逆である以外はCPU103の通信と同じである。
【０１１５】
CPUユニット166のCPU167は、CPU103が動作中でありRIOに制御を命令している間は、各RIOへの通信は行わないが、CPU103の動作を引き継いで制御対象の制御を継続することを可能とするために、CPU103と各RIOとの通信フレームを取り込んでおく。これをスヌープと称する。（スヌープ：snoop：盗み聞きするという意味から転じて、ネットワーク等をモニタすることを意図する)。
【０１１６】
次に、本実施例における通信フレームの流れについて、CPU103とRIO146との間の1系通信回線におけるユニキャスト通信を例として説明する。
【０１１７】
CPU103から電気通信回線104を介してCPUIF108とCPUIF110に入力された要求フレームは、それぞれ光通信回線177と光通信回線181に出力され、それぞれ反射RIOIF113と反射RIOIF140に入力される。
【０１１８】
反射RIOIF113に入力された要求フレームは、光/電気変換され、電気通信回線117へ出力されると共に、光通信回線184にも出力される。反射RIOIF140に入力された要求フレームは、光/電気変換され、電気通信回線144へ出力されると共に、光通信回線188にも出力される。
【０１１９】
反射RIOIF113から電気通信回線117に送出された要求フレームは、光通信回線192、電気通信回線126、光通信回線196、電気通信回線135を介して、ブランチ1内の各RIOに配信され、光通信回線176からCPUIF108に入力されるが、要求フレームであるため、電気通信回線104には出力されない。また、RIO119とRIO128とRIO137は要求フレームの送信先アドレスが自らのアドレスと一致しないため何もしない。
【０１２０】
反射RIOIF140から電気通信回線144に送出された要求フレームは、光通信回線200、電気通信回線153、光通信回線204、電気通信回線162を介して、ブランチ2内の各RIOに配信され、光通信回線180からCPUIF110に入力される。
【０１２１】
また、RIO155とRIO164は、要求フレームの送信先アドレスが自らのアドレスと不一致であると認識し、要求フレームを受信しない。RIO146は、要求フレームの送信先アドレスが自らのアドレスと一致しているため、必要な処理を行い、応答フレームを出力する。応答フレームの流れについては後述する。
【０１２２】
一方、光通信回線184及び光通信回線188に出力された要求フレームは、それぞれ、CPUIF172、CPUIF174に入力される。図６で示したシステムでは、CPUIFは光通信回線からの要求フレームは電気通信回線へ出力しないとしているが、それではCPU167にフレームが届かず、CPU167は要求フレームをスヌープすることができない。つまり、CPUIF172とCPUIF174に入力された要求フレームの少なくとも１つは電気通信回線へ出力する必要がある。
【０１２３】
次に、RIO146から出力される応答フレームの流れについて説明する。
【０１２４】
RIO146から電気通信回線144に出力された応答フレームは反射RIOIF140と反射RIOIF142にそれぞれ入力される。RIOIF142に入力された応答フレームは、光/電気変換され、光通信回線200、RIOIF149、電気通信回線153、RIOIF151、光通信回線204、RIOIF158、電気通信回線162、反射RIOIF160、光通信回線180を介して、CPU103に入力される。一方、反射RIOIF140に入力された応答フレームは、光/電気変換され、光通信回線188を介して、CPUIF174に到達する。
【０１２５】
ここで、CPUユニット166に到達する要求フレーム、応答フレームについて説明する。CPUIF172には、CPU103からの要求フレームが入力される。CPUIF174にはCPU103からの要求フレームとRIO146からの応答フレームが順次入力される。
【０１２６】
CPUIF172に入力されるフレームとCPUIF174に入力されるフレームは、異なる経路を通るので、入力される順番やタイミングは、回線の長さや回線内の各中継機器の処理時間等によって変化する。つまり、それぞれのCPUIFが電気回線にフレームを流してしまうと、前述したフレームの衝突が発生したり、フレームの順番が入れ替わったりしてしまう場合がある。
【０１２７】
これに対して、回線の長さを規定したり、通信回線中の中継機器の数を規定する事、またはCPUIF間でそれぞれのフレーム到達の待ち合わせを行うなどにより、上述の問題を回避する事ができるが、通信回線の配線の自由度が低くなることにより、使い勝手が悪くなったり、CPUIFやCPUユニットのコストに影響したりしてしまう。
【０１２８】
一方、CPUIF174に入力されるフレームは必ず要求フレーム、応答フレームの順に入力される。これは、RIO146は要求フレームを受信した後、応答フレームを出力するためである。
【０１２９】
従って、前述のフレーム衝突やフレーム順番の入れ替わりなく、フレームをCPU167に入力するためには、スヌープするCPUのCPUユニット内の複数のCPUIFのうち、応答するRIOが含まれるブランチに接続するCPUIFだけが、光通信回線からのフレームを電気通信回線に出力すれば良い。
【０１３０】
本例では、光通信回線184からCPUIF172に入力される要求フレームは、電気通信回線168に出力されず、光通信回線188からCPUIF174に入力される要求フレームは、電気通信回線168に出力され、CPU167に入力される。また続いて、光通信回線188から応答フレームがCPUIF174に入力される。CPUIF174に入力された応答フレームは、電気通信回線168に出力され、CPU167に入力される。
【０１３１】
以上により、CPU167はCPU103とRIO146間の通信の要求フレームと応答フレームをスヌープする。なお、CPUIF174から出力される要求フレームは、電気通信回線168を介してCPU167とCPUIF172に入力される。
【０１３２】
図６の構成では、CPUIFは電気通信回線からの要求フレームは、光通信回線へ出力するとしているが、それでは一度、各ブランチの通信回線を通った要求フレームが再び流れることとなる。従って、スヌープするCPUのCPUユニット内のCPUIFは、電気通信回線から入力される要求フレームが光通信回線に出力しないようにする必要がある。これらの問題を回避するための本実施例のCPUIFの動作を、図７及び図８を使用し説明する。
【０１３３】
図８は、本発明の制御システムの通信に使用するフレーム構成図である。図８に示すように、フレームは、その先頭から、開始フラグ300、要求/応答フラグ301、ブロードキャスト/ユニキャスト/グループキャストフラグ302、CPUID800、ブランチID801、送信先アドレス303、送信元アドレス304、データ305、終了フラグ306という構成要素を含んでいる。
【０１３４】
CPUID800は、CPUユニット毎の個別番号である。CPUID800は、CPUユニット内スイッチであり、各CPUユニットにユニークな値が設定され、CPUユニット内のCPU及びCPUIFに取り込まれる。従って、同一CPUユニット内の機器は全て同一のCPUIDを保持する。なお、本例ではスイッチで設定するとしたが、各機器のメモリ等に設定しても良い。CPUは、要求フレームに自らのCPUIDを設定して送信する。
【０１３５】
ブランチIDは、ブランチ毎の個別番号である。ブランチIDは、各CPUIF内のスイッチで設定される。同一ブランチに接続されるCPUIFは同じブランチIDに設定される。なお、本例ではスイッチで設定するとしたが、各機器のメモリ等に設定しても良い。CPUは、通信対象のRIOが接続されるブランチに対応するブランチIDを要求フレームに設定して送信する。なお、ブロードキャスト通信やグループキャスト通信の場合は、要求フレームにどのブランチIDを設定しても良い。
【０１３６】
次に、図１の構成におけるCPUIFの詳細な動作について、図７を用いて説明する。まず、電気入出力ポートに入力されたフレームの流れについて説明する。フレーム判定部702は、図６を用いて説明した場合と同様に、まず、電気入出力ポートからフレームを受け取ったか否かを判定することにより、流れるフレームの方向を判定し、さらに以下の判定を行っている。
【０１３７】
CPUIF700の電気入出力ポート707に入力されたフレームは、通信制御部701内のフレーム判定部702に入力される。フレーム判定部702は、入力されたフレームの要求/応答フラグ301とCPUID900を確認する。
【０１３８】
フレーム判定部702が、フレーム構成の要求/応答フラグ301が“応答”と判定した場合に、通信制御部701は光/電気変換器703にフレームを出力しない。
【０１３９】
フレーム判定部が、フレーム構成の要求/応答フラグ301が“要求”と判定し、かつ、CPUID900が自身の持っているCPUIDと一致していると判定した場合に、通信制御部701は光/電気変換器703にフレームを出力する。光/電気変換器703は、入力されたフレームを光/電気変換し、光出力ポート708を介して、接続された光通信回線に出力する。
【０１４０】
フレーム判定部が、フレーム構成の要求/応答フラグ301が“要求”と判定し、かつ、CPUID900が自身の持っているCPUIDと不一致であると判定した場合に通信制御部701は光/電気変換器703にフレームを出力しない。
【０１４１】
次に、光入力ポート709に入力されたフレームの流れについて説明する。フレーム判定部702は、図６を用いて説明した場合と同様に、まず、電気入出力ポートからフレームを受け取ったか否かを判定することにより、流れるフレームの方向を判定し、さらに以下の判定を行っている。
【０１４２】
CPUIF700の光入力ポート709に入力されたフレームは、光/電気変換器703に入力される。光/電気変換器703は、入力されたフレームを光/電気変換し、通信制御部701内のフレーム判定部702に出力する。フレーム判定部702は、入力されたフレームの要求/応答フラグ301とCPUID900とブランチID901を確認する。
【０１４３】
フレーム判定部702が、フレーム構成の要求/応答フラグ301が“応答”と判定した場合に、通信制御部701は、電気入出力ポート707を介して、接続された光通信回線に出力する。フレーム判定部702が、フレーム構成の要求/応答フラグ301が“要求”と判定し、かつ、CPUID900が自身の持っているCPUIDと一致していると判定した場合に、通信制御部701は、電気入出力ポート707に出力しない。
【０１４４】
フレーム判定部702が、フレーム構成の要求/応答フラグ301が“要求”と判定し、かつ、CPUID900が自身の持っているCPUIDと不一致であると判定し、かつ、ブランチIDが自身の持っているブランチIDと一致していると判定した場合に、通信制御部701は、電気入出力ポート707を介して、接続された光通信回線に出力する。
【０１４５】
フレーム判定部702が、フレーム構成の要求/応答フラグ301が“要求”と判定し、かつ、CPUID900が自身の持っているCPUIDと不一致であると判定し、かつ、ブランチIDが自身の持っているブランチIDと不一致であると判定した場合に、通信制御部701は、電気入出力ポート707に出力しない。
【０１４６】
表２は、本制御システムのCPUIFの動作をまとめたものである。
【０１４７】
【表２】
2015210711.tif 000004
【０１４８】
以上により、フレーム衝突やフレーム順番の入れ替わり、及びフレームの回り込みの発生なく、CPU、RIO間の通信及びスヌープを実現できる。
【０１４９】
なお、表２の動作を行うCPUIFは図１のシステム構成はもちろん、図２のシステム構成、図６のシステム構成、その他RIOユニット追加、及びブランチを追加したシステム構成のいずれにも適用できる。
【０１５０】
以上、本実施例によれば、演算装置に入出力装置が接続されているリング状の通信回線を、中継装置を介して並列に複数接続し、その中継装置は、入力されたフレームの種類によって、フレームを通過させるかを決定する中継装置とすることで、通信フレームの衝突などの回線障害を回避し、強力な可用性とシステムの大規模化を両立させる制御システムを提供できる。
【０１５１】
なお、本実施例においては、制御対象に命令に伴う要求または応答を含むデータを入出力する複数の入出力装置に対する制御を命令する第一の演算装置と前記入出力装置との通信を中継する複数の第一の中継装置毎に、複数の前記入出力装置と前記第一の中継装置とがリング状の第一の通信回線を介して接続され、前記入出力装置に対する制御を命令する第二の演算装置と前記入出力装置との通信を中継する複数の第二の中継装置毎に、複数の前記入出力装置と前記第二の中継装置とがリング状の第二の通信回線を介して接続され、前記第一の中継装置および前記第二の中継装置が有する前記演算装置との間で前記データを通信する電気入出力ポートまたは複数の前記入出力装置から前記データを受信する光入力ポートのいずれのポートから入力されたかに基づいて前記データの通信を中継する方向を判断する第一の判断ステップと、前記第一の演算装置または前記第二の演算装置から前記入出力装置に送られるデータであるかまたは前記入出力装置から前記第一の演算装置または前記第二の演算装置に送られるデータであるかを判断する第二の判断ステップと、前記データが前記第一の演算装置から送られたデータであるかまたは前記第二の演算装置から送られたデータであるかを判断する第三の判断ステップと、前記データに含まれる前記通信回線を識別するためのブランチ識別情報と前記第一の中継装置または前記第二の中継装置に付されたブランチ識別情報とに基づいて、データの通信可否を判断する第四の判断ステップと、各判断ステップの判定結果に基づき、前記データの通信を中継し、いずれか一方の演算装置が動作中は他方の演算装置が前記一方の演算装置と前記入出力装置との間の通信をモニタする中継ステップと、を含む通信中継方法を、図１に示した構成および表２に示した基準に従って実行することができる。
【符号の説明】
【０１５２】
100  指令措置
101  指令回線
102,166  CPUユニット
103,167  CPU
104,105,117,118,126,127,135,136,
144,145,153,154,162,163,168,169  電気通信回線
108〜111,172〜175  CPUIF
112,121,130,139,148,157  RIOユニット  
113,114,133,134,140,141,160,161  反射RIOIF
115,116,122〜125,131,132,142,143,
149〜152,158,159,200〜203,500〜503  RIOIF
119,128,137,146,155,164  RIO
120,129,138,147,156,165  制御対象
176〜207, 504〜507  光通信回線
300  開始フラグ
301  要求/応答フラグ
302  ブロードキャスト/ユニキャスト/グループキャストフラグ
303  送信先アドレス
304  送信元アドレス
305  データ
306  終了フラグ
400  要求フレーム
401  応答フレーム
700  CPUIF
701  通信制御部
702  フレーム判定部
703  光/電気変換器
704〜706  要求/応答フレーム
707  電気入出力ポート
708  光出力ポート
709  光入力ポート
800  CPUID
801  ブランチID
【図１】
2015210711.tif 000005
【図２】
2015210711.tif 000006
【図３】
2015210711.tif 000007
【図４】
2015210711.tif 000008
【図５】
2015210711.tif 000009
【図６】
2015210711.tif 000010
【図７】
2015210711.tif 000011
【図８】
2015210711.tif 000012