説明

冗長構成をとるコントローラ

【課題】冗長系の切り替えを安全に実施し、制御の引き継ぎが完了するまでの時間を短縮する。
【解決手段】コントローラ1は、ホスト機能部30を有する主系制御モジュール10と、ファンクション機能部71を有する入出力モジュール70−n(nは自然数)と、ファンクション機能部60−nおよびホスト機能部30A−nを有する待機系制御モジュール10A−nがシステムバス90で接続されている。主系制御モジュール10は、入出力モジュール70−nを制御すると共に、ファンクション機能部71の接続を構成する構成情報31を、ファンクション機能部60−nへ所定のタイミングで繰り返し通知し、待機系制御モジュール10A−nは、ファンクション機能部60−nが受信した構成情報31を保持し、構成情報31の通知が途絶したとき、構成情報31−nに基づいて入出力モジュール70−nを引き継いて制御する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ファクトリーオートメーション(FA)やプロセスオートメーション(PA)の分野で利用され、システムの信頼性や可用性の向上のため、制御モジュールを冗長化した冗長構成をとるコントローラに関する。
【背景技術】
【0002】
近年、デバイス間やコンポーネント間の接続インタフェースとして、パーソナルコンピュータなどを中心に、パラレル伝送方式に代わってシリアル伝送方式が多く採用されている。
【0003】
シリアル伝送方式は、基板上および基板間の接続に必要な信号線が極めて少なくて済み、機器の小型化や構造の簡素化を図りやすくなる。更に、シリアル伝送方式は、パラレル方式において大きな問題となる信号間のスキュー(伝搬時間のずれ)が発生しないことから、高速化に有利である。
【0004】
特許文献1には、シリアル伝送方式を、ファクトリーオートメーション(FA)やプロセスオートメーション(PA)の分野で利用されるコントローラ(以降、単に「コントローラ」と記す)に適用した場合、装置構成の簡素化や柔軟性の向上といった利点が得られることが記載されている。
【0005】
ファクトリーオートメーション(FA)とは、工場に於ける生産/製造工程を自動化することをいう。ファクトリーオートメーション(FA)では、プログラマブルコントローラなどによって産業用ロボットなどを制御している。
プロセスオートメーション(PA)とは、化学工業などに於いて、プロセスの各点で温度・圧力・流量などを自動制御し、生産工程を自動化することをいう。
【0006】
非特許文献1には、シリアル伝送方式であるUniversal Serial Bus(USB)の規格が記載されている。USB規格に於いては、一つの計算機が複数の周辺機器に対する入出力を集中制御する。USB規格に於いては、バス上にただ一つ存在するホスト機能部と、ホスト機能部からの要求に従い、入出力動作を実行するファンクション機能部とが相互に通信を行う。
【0007】
ファクトリーオートメーション(FA)やプロセスオートメーション(PA)の分野で利用されるコントローラでは、システムが誤った動作をしないこと(信頼性)やシステムが必要なときにサービスを提供できること(可用性)の確保が重要である。よって、突発的なハードウェアの故障やソフトウェアの異常動作により制御モジュールが停止した場合にも制御を継続できるよう、複数の制御モジュールを設けた冗長構成がとられている場合がある。
【0008】
冗長構成の例として、制御モジュールの一つを主系として通常時の場合に運用し、残りの制御モジュールを待機系として主系に障害が発生した場合に備えるホットスタンバイ構成がある。
【0009】
特許文献2では、データ処理装置のプロセス入出力データにデータ更新番号を付与することにより、稼動側から待機側への処理引き継ぎに先立って両データ処理装置間で処理を同期化する技術が開示されている。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2007−267455号公報
【特許文献2】特開平8−202750号公報
【非特許文献】
【0011】
【非特許文献1】"Universal Serial Bus Specification Revision 2.0"、[online]、2000年4月27日、USB Implementers Forum, [平成23年5月10日検索]、インターネット(URL:http://www.usb.org/developers/docs/usb_20_021411.zip)
【発明の概要】
【発明が解決しようとする課題】
【0012】
特許文献2に記載の発明は、シリアル伝送インタフェース特有の制約事項を考慮していない。そのため、シリアル伝送インタフェースをシステムバスとして用いたコントローラにおいて、制御モジュールを冗長化すると、制御システムとしての可用性が低下するという問題があった。
【0013】
例えば、USBのようにホスト機能がバス上に一つしか存在できないシリアル方式のインタフェースをシステムバスとして用い、複数の制御モジュールを備えた冗長構成のコントローラを構成するには、各制御モジュールに搭載されているホスト機能部からの信号経路をスイッチなどで切り替え、主系制御モジュールからの制御指令のみが入出力モジュールに伝達されるようにする必要がある。
【0014】
このとき、待機系制御モジュールは、ホスト機能部から入出力モジュールに至る信号経路が切断もしくは無効化されているため、システムに接続されている入出力モジュールの状態を取得することができない。
【0015】
また、特許文献2に記載の発明は、主系制御モジュールにおいて障害が発生して、制御を継続できなくなった場合には、このスイッチなどを操作して、待機系制御モジュールのホスト機能部から入出力モジュールに至る信号経路を確立することで系切り替えを行う。しかし、前述したように、待機系制御モジュールは、制御すべき入出力モジュールに関する情報を有していない。待機系制御モジュールは、新たに発見手順/認識手順を実行し、システムに接続されている入出力モジュールから必要な情報を取得する必要がある。
【0016】
このため、主系制御モジュールの障害を検出して、待機系制御モジュールへの系切り替えを行ってから、実際に待機系制御モジュールへの制御の引き継ぎが完了するまでに、所定の時間が掛かる。その間、制御装置による入出力モジュールの制御が停止してしまう場合がある。
【0017】
加えて、入出力モジュールの内部構造によっては、系切り替えの実行時に発生するバスリセットにより、入出力モジュールの内部状態が失われる場合がある。制御を引き継いだ待機系制御モジュールがこのまま入出力モジュールにアクセスした場合、入出力モジュールの内部状態と制御プログラムの内部状態との間で矛盾が生じ、制御処理に悪影響を及ぼす恐れがある。
そこで本発明では、冗長系の切り替えを安全に実施し、かつ、制御の引き継ぎが完了するまでの時間を短縮可能な冗長構成をとるコントローラを提供することを課題とする。
【課題を解決するための手段】
【0018】
前記課題を解決し、本発明の目的を達成するために、以下のように構成した。
【0019】
すなわち、本発明の冗長構成をとるコントローラは、少なくとも第1のホスト機能部を有する主系制御モジュール、および、少なくとも1つの第2のファンクション機能部、および、少なくとも1つの第2のホスト機能部を有する少なくとも1つの待機系制御モジュールがシステムバスで相互に接続される冗長構成をとり、制御対象として少なくとも第1のファンクション機能部を有する少なくとも1つの被制御モジュールを前記システムバスを介して制御する冗長構成をとるコントローラであって、前記主系制御モジュールは、前記被制御モジュールを管理すると共に、前記第1のホスト機能部から前記第1のファンクション機能部への接続を構成するファンクション構成情報を、前記第2のファンクション機能部へ所定のタイミングで繰り返し通知し、前記待機系制御モジュールは、前記第2のファンクション機能部が受信した前記ファンクション構成情報を保持し、前記ファンクション構成情報の通知が途絶したとき、前記ファンクション構成情報に基づいて前記被制御モジュールを引き継いて制御することを特徴とする。
その他の手段については、発明を実施するための形態のなかで説明する。
【発明の効果】
【0020】
本発明によれば、冗長系の切り替えを安全に実施し、かつ、制御の引き継ぎが完了するまでの時間を短縮可能な冗長構成をとるコントローラを提供可能となる。
【図面の簡単な説明】
【0021】
【図1】第1の実施形態に係るコントローラを示す概略の構成図である。
【図2】第1の実施形態に係るバス経路制御部を示す概略の構成図である。
【図3】第1の実施形態に係るシーケンス図である。
【図4】第1の実施形態に係る待機系制御モジュールの動作を示すフローチャートである。
【図5】第2の実施形態に係るコントローラを示す概略の構成図である。
【図6】第2の実施形態に係るバス経路制御部を示す概略の構成図である。
【発明を実施するための形態】
【0022】
以降、本発明を実施するための形態を、図を参照して詳細に説明する。
【0023】
(第1の実施形態の構成)
図1は、第1の実施形態に係るコントローラを示す概略の構成図である。
冗長化制御装置であるコントローラ1は、主系制御モジュール10と、1つ以上の待機系制御モジュール10A−1,10A−2と、バス経路制御部100と、これらを相互に接続するUSBケーブルであるシステムバス90とを有している。コントローラ1は、システムバス90とハブ110とを介して、1つ以上の入出力モジュール70−1〜70−3を制御する。
【0024】
主系制御モジュール10は、通常稼動時に於いて、所定の演算処理と、入出力モジュール70−n(nは自然数)に対する入出力処理とを実施するモジュールである。主系制御モジュール10は、制御プログラム20と、この制御プログラム20を実行するための図示しないCPU(Central Processing Unit)およびメモリと、ホスト機能部30とを備えている。
【0025】
第1のホスト機能部であるホスト機能部30は、システムバス90を駆動して入出力モジュール70−nと通信する機能を備えている。システムバス90を駆動するとは、このシステムバス90にクロックパルスとUSBのバスパワー電源を供給し、このシステムバス90を介して入出力モジュール70−nにコマンドやデータを送信することである。ホスト機能部30は、構成情報31と、構成情報同期部(M)32と、同期スケジュール部33とを有している。
【0026】
構成情報31は、入出力モジュール70−1〜70−3をそれぞれ管理し、ホスト機能部30からファンクション機能部71への接続を構成するファンクション構成情報である。構成情報31は、例えばシステムバス90がUSBである場合、システムバス90上に於ける入出力モジュール70−n(n=1〜3)のアドレス情報と、デバイスクラスの情報と、エンドポイントの数と種類の情報とを含んでいる。なお、システムバス90としてUSB以外のインタフェースを用いた場合には、構成情報31の内容は異なるものとなる。
【0027】
構成情報同期部(M)32は、同期スケジュール部33からの同期要求によって、構成情報31を、待機系制御モジュール10A−1,10A−2のファンクション機能部60−1,60−2に送信する。
同期スケジュール部33は、構成情報同期部(M)32に所定のタイミングで同期要求を出力する。
【0028】
待機系制御モジュール10A−1は、制御プログラム20−1と、この制御プログラム20−1を実行するための図示しないCPU(Central Processing Unit)およびメモリと、ホスト機能部30A−1と、主系状態監視部50−1と、ファンクション機能部60−1とを備えている。待機系制御モジュール10A−1と待機系制御モジュール10A−2とは、同様の構成を有している。よって、以下では、待機系制御モジュール10A−1を例に説明する。
【0029】
構成情報同期部(B)32A−1は、ファンクション機能部60−1と協働して主系制御モジュール10が保持する構成情報31を共有している。構成情報同期部(B)32A−1は、ファンクション機能部60−1の出力側が接続されており、更に、構成情報同期部(B)32A−1の出力側には、構成情報31−1が接続されている。この構成情報31−1は、主系制御モジュール10が保持する構成情報31と同期している。待機系制御モジュール10A−1は、主系制御モジュール10による構成情報31の通知が途絶し、主系制御モジュール10から入出力モジュール70−1〜70−3の制御を引き継ぐ際に、ホスト機能部30A−1による入出力モジュール70−1〜70−3の発見および認識を抑止する。これにより、迅速に入出力モジュール70−1〜70−3の制御を引き継ぐことが可能となる。
【0030】
ホスト機能部30A−1は、主系制御モジュール10に異常が発生したときに、これに代わってシステムバス90を駆動し、構成情報31−1に基づいて入出力モジュール70−1〜70−3と通信する。
【0031】
ファンクション機能部60−1は、システムバス90に接続され、ホスト機能部30A−1からの要求に応答し、かつ、主系制御モジュール10の稼動状態を監視する。
【0032】
主系状態監視部50−1は、主系制御モジュール10からファンクション機能部60−1を介して通知される構成情報を監視する。この構成情報の通知が途絶すると、バス経路制御部100に系切り替え要求信号51−1を出力する。
【0033】
バス経路制御部100は、入力された系切り替え要求信号51−1に応じて、主系制御モジュール10から入出力モジュール70−1〜70−3との接続である第1の信号経路と、待機系制御モジュール10A−1,10A−2から入出力モジュール70−1〜70−3へ至る複数の第2の信号経路のうちいずれか1つに切り替える。なお、待機系制御モジュール10A−1が1台のみの場合には、第2の信号経路は単一である。
【0034】
すなわち、コントローラ1は、バス経路制御部100によって、主系制御モジュール10のホスト機能部30からのシステムバス90の経路を、待機系制御モジュール10A−1,10A−2のホスト機能部30A−1,30A−2からのいずれか1つからの経路に切り替える。本実施形態では、主系状態監視部50−1,50−2は、発火期限時間(タイムアウト時間)が同一に設定されているので、系切り替え要求信号51−1,51−2をそれぞれ、ほぼ同時に出力する。
バス経路制御部100は、系切り替え要求信号51−1,51−2を、ほぼ同時に検知すると、プライオリティエンコーダによって、待機系制御モジュール10A−1のホスト機能部30A−1に切り替える。そして、切り替えた第2の信号経路に対応する系切り替え要求信号51−1をマスクする。切り替えた待機系制御モジュール10A−1で不具合が発生した時に、誤って系切り替え要求信号51−1が出力され、他の第2の信号経路に切り替えられなくなることを抑止するためである。
また、本実施形態に於いて、バス経路制御部100は、系切り替え要求信号51−1のみを先に検知すると、検知した系切り替え要求信号51−1に係る待機系制御モジュール10A−1への第2の信号経路に切り替える。そして、切り替えた第2の信号経路に対応する系切り替え要求信号51−1をマスクして、以降の系切り替え要求信号51−1を受け付けないようにする。
【0035】
本実施形態に於いて、切り替えられた第2の信号経路に於ける待機系制御モジュール10A−1は、構成情報31−1に基づいて入出力モジュール70−1〜70−3を引き継いで制御する。
【0036】
被制御モジュールである入出力モジュール70−1〜70−3は、ホスト機能部30,30A−1,30A−2からの要求に応答する機能を備えたファンクション機能部71を備えている。コントローラ1は、少なくとも1つの入出力モジュール70−n(nは自然数)を有している。
【0037】
入出力モジュール70−1,70−2のファンクション機能部71は、USBケーブルであるシステムバス90と、ハブ110とを介してバス経路制御部100の下流側に接続されている。
【0038】
入出力モジュール70−3のファンクション機能部71は、システムバス90を介してバス経路制御部100の下流側に接続されている。
【0039】
入出力モジュール70−1〜70−3は、主系制御モジュール10、待機系制御モジュール10A−1,10A−2からの指令に従い、外部からデータを取り込み、または、外部へデータを出力する。
【0040】
システムバス90は、シリアル伝送方式のインタフェースによって主系制御モジュール10や待機系制御モジュール10A−1,10A−2と入出力モジュール70−1〜70−3とを接続する。本実施形態のシステムバス90は、USBケーブルである。
【0041】
図2は、第1の実施形態に係るバス経路制御部を示す概略の構成図である。
本実施形態のバス経路制御部100は、ホスト選択部101と、信号分配部102とを有している。
ホスト選択部101の信号の上流側は、主系制御モジュール10のホスト機能部30と、待機系制御モジュール10A−1のホスト機能部30A−1と、待機系制御モジュール10A−2のホスト機能部30A−2とに接続されている。ホスト選択部101の信号の下流側は、信号分配部102に接続されている。ホスト選択部101は更に、主系状態監視部50−1,50−2に接続され、それぞれ系切り替え要求信号51−1,51−2を入力可能に接続されている。
【0042】
信号分配部102の上流側は、ホスト選択部101の下流側に接続されている。信号分配部102の下流側は、ハブ110の上流側と、入出力モジュール70−3のファンクション機能部71と、待機系制御モジュール10A−1,10A−2のファンクション機能部60−1,60−2とに接続されている。ハブ110の下流側は、入出力モジュール70−1,70−2のファンクション機能部71に接続されている。
【0043】
ホスト選択部101は、系切り替え要求信号51−1,51−2のいずれか1つが入力されると、入力された系切り替え要求信号51−nに係る待機系制御モジュール10A−nに切り替える。ホスト選択部101は、複数の系切り替え要求信号51−1,51−2が、ほぼ同時に入力されると、プライオリティエンコーダにより、予め定められた優先順位にしたがって、入力された系切り替え要求信号51−1,51−2に係る待機系制御モジュール10A−1,10A−2のいずれかに切り替える。ここで「ほぼ同時」とは、所定の閾値以内に、複数の系切り替え要求信号51−1,51−2がホスト選択部101に入力された場合をいう。本実施形態では、待機系制御モジュール10A−1、待機系制御モジュール10A−2の順番を優先順位とし、この優先順位にあわせて切り替えている。
【0044】
この切り替えに伴って、待機系制御モジュール10A−1のホスト機能部30A−1が通信を引き継ぐ。通信の引き継ぎに伴い、系切り替え要求信号51−1,51−2は入力されなくなるので、ホスト選択部101は、系切り替え要求信号51−1をマスクする。これにより、待機系制御モジュール10A−1のまま切り替え不能となることを抑止している。
【0045】
(第1の実施形態の動作)
図1を基に、第1の実施形態のコントローラの動作を説明する。
《バス経路制御部100の動作》
USB規格では、システムバス90上にホストがただ一つ存在するように決められている。バス経路制御部100は、主系制御モジュール10、待機系制御モジュール10A−1,10A−2のいずれか一つが入出力モジュール70−1〜70−3、および、待機系制御モジュール10A−1,10A−2のファンクション機能部60−1,60−2に接続されるよう、システムバス90の信号経路を設定している。
【0046】
具体的には、バス経路制御部100は、主系制御モジュール10のホスト機能部30に接続された信号線と、待機系制御モジュール10A−1のホスト機能部30A−1に接続された信号線と、待機系制御モジュール10A−2のホスト機能部30A−2に接続された信号線のうち一系統のみをアクティブにする。通常稼働時には、主系制御モジュール10のホスト機能部30に接続された信号線のみをアクティブにする。主系制御モジュール10の異常発生時には、系切り替え要求信号51−1により、待機系制御モジュール10A−1のホスト機能部30A−1に接続された信号線のみをアクティブにする。アクティブにした信号線を入出力モジュール70−1〜70−3に分配して、これらのファンクション機能部71に接続する。更に、アクティブにした信号線を、待機系制御モジュール10A−2のファンクション機能部60−2にも接続する。
【0047】
更に、待機系制御モジュール10A−1の異常発生時には、系切り替え要求信号51−2により、待機系制御モジュール10A−2のホスト機能部30A−2に接続された信号線のみをアクティブにする。アクティブにした信号線を入出力モジュール70−1〜70−3に分配して、これらのファンクション機能部71に接続する。
【0048】
以上の経路設定により、一つの主系制御モジュール10を頂点として、残りの待機系制御モジュール10A−1,10A−2と入出力モジュール70−1〜70−3とが、スター状またはツリー状に接続されたバスが構成される。
【0049】
《コントローラ1の通常稼動状態の動作》
コントローラ1が通常稼動状態にあり、主系制御モジュール10が通常動作しているとき、主系制御モジュール10のホスト機能部30は、構成情報31を待機系制御モジュール10A−1,10A−2へ所定のタイミングで通知する。
【0050】
具体的には、同期スケジュール部33は、継続的に所定タイミングで構成情報31の同期要求信号を生成して構成情報同期部(M)32を駆動する。構成情報同期部(M)32は、その同期要求信号によって、構成情報31の内容を、待機系制御モジュール10A−1,10A−2のファンクション機能部60−1,60−2に繰り返し送信(通知)する。
【0051】
待機系制御モジュール10A−1,10A−2のホスト機能部30A−1,30A−2は、受信した情報を、ホスト機能部30A−1,30A−2の構成情報31−1,31−2に保持(複製)する。
【0052】
なお、この「所定タイミング」は、このコントローラ1に於いて、入出力モジュール70−1〜70−3の最新の構成情報31が得られるように定めれば良い。同期スケジュール部33は、継続的に所定周期(100msec周期など)で構成情報31の同期要求信号を生成しても良い。同期スケジュール部33は更に、継続的に「入出力モジュール70−1〜70−3への入出力処理発生時」に同期要求信号を生成しても良い。
【0053】
また、構成情報通知は、ファンクション機能部60−1,60−2から主系状態監視部50−1,50−2へも出力される。主系状態監視部50−1,50−2はいわゆるウォッチドッグタイマであり、直前の構成情報通知から所定時間である発火期限時間(タイムアウト時間)が経過すると発火する。この発火までの時間は、構成情報の同期が実行される間隔よりも十分に長くなるよう設定されている。これにより、主系制御モジュール10に異常が発生したとき、ファンクション機能部60−1,60−2から主系状態監視部50−1,50−2へ構成情報通知が行われなくなる。所定の発火期限時間が経過すると、ウォッチドッグタイマが発火して、主系状態監視部50−1,50−2は、バス経路制御部100に対して系切り替え要求信号51−1,51−2を出力する。バス経路制御部100は、複数の系切り替え要求信号51−1,51−2を認識すると、プライオリティエンコーダにより、優先順位が最も高い待機系制御モジュール10A−1のホスト機能部30A−1に接続された信号線のみをアクティブにし、以降は系切り替え要求信号51−1をマスクする。
【0054】
主系状態監視部50−1の発火期限時間は更に、ファクトリーオートメーションやプロセスオートメーションなどのシステムの安全性が保たれる時間よりも短く設定している。これにより、システムとしての安全性を保ったまま、待機系制御モジュール10A−nへの動作の引き継ぎが可能となる。
【0055】
以上により、通常稼動状態では、主系制御モジュール10と待機系制御モジュール10A−1,10A−2との間で構成情報が同期されるとともに、待機系制御モジュール10A−1,10A−2において主系制御モジュール10の稼動状態を監視することが可能となる。
【0056】
《コントローラ1の系切り替え時の動作》
次に、系切り替え時の動作について説明する。
通常稼動中のコントローラ1において、主系制御モジュール10が故障などにより制御動作を継続できなくなると、待機系制御モジュール10A−1,10A−2のファンクション機能部60−1,60−2への構成情報31の通知が途絶する。それにより、主系状態監視部50−1,50−2は、前回の構成情報の通知の受信から、所定の発火期限時間が経過した後に発火し、バス経路制御部100に対して系切り替え要求信号51−1,51−2を其々出力する。
【0057】
バス経路制御部100は、待機系制御モジュール10A−1,10A−2の主系状態監視部50−1,50−2から系切り替え要求信号51−1,51−2が入力されると、主系制御モジュール10のホスト機能部30の系統を切断し、代わって、待機系制御モジュール10A−1のホスト機能部30A−1の系統をアクティブにする。これにより、待機系制御モジュール10A−1が新たな主系となり、主系制御モジュール10から制御を引き継ぐ。新たな主系となった待機系制御モジュール10A−1には、入出力モジュール70−1〜70−3が接続されている。このとき、待機系制御モジュール10A−1は、同期した構成情報31−1を有しているため、入出力モジュール70−1〜70−3と、待機系制御モジュール10A−1,10A−2のファンクション機能部60−1,60−2に関する構成情報を改めて収集する必要がない。そのため、待機系制御モジュール10A−1は、入出力モジュール70−1〜70−3といったUSBデバイスの接続時に必要となるデバイスの発見手順/認識手順を省略し、直ちに制御プログラム20−1を動作させて制御を引き継ぐことが可能となる。
【0058】
以上の系切り替えの動作により、待機系制御モジュール10A−1,10A−2が新たな主系となった際に、ホスト機能部30Aと入出力モジュール70−1〜70−3とで行われる不要な通信を抑止し、待機系制御モジュール10A−1,10A−2が実際に制御を引き継ぐまでの時間を短縮可能である。
【0059】
図3は、第1の実施形態に係るシーケンス図である。
シーケンスQ10〜Q13は、構成処理に係るシーケンスである。
コントローラ1が起動すると、まず、バス経路制御部100は、主系制御モジュール10から入出力モジュール70−nへのバス経路をアクティブにする。
【0060】
シーケンスQ10に於いて、主系制御モジュール10のホスト機能部30は、入出力モジュール70−n(n=1〜3)のファンクション機能部71へ、このファンクション機能部71を構成する命令を送信する。この構成する命令を受信すると、ファンクション機能部71は、ホスト機能部30とのUSB通信を開始する。
【0061】
続いて、シーケンスQ11に於いて、入出力モジュール70−nのファンクション機能部71は、主系制御モジュール10のホスト機能部30へ、このファンクション機能部71の構成への応答を行う。主系制御モジュール10のホスト機能部30は、受信したファンクション機能部71の構成への応答に基づいて、入出力モジュール70−nの構成情報31を生成する。
上記シーケンスQ10〜Q11の処理を、接続されている入出力モジュール70−nの個数分だけ繰り返す。
【0062】
シーケンスQ12に於いて、主系制御モジュール10のホスト機能部30は、待機系制御モジュール10A−1のファンクション機能部60−1へ、このファンクション機能部60−1を構成する命令を送信する。待機系制御モジュール10A−1の主系状態監視部50−1は、ファンクション機能部60−1の構成完了を以て発火期限時間のカウントを開始する。
【0063】
シーケンスQ13に於いて、待機系制御モジュール10A−1のファンクション機能部60−1は、主系制御モジュール10のホスト機能部30へ、ファンクション機能部60−1の構成への応答を行う。この処理を、接続されている待機系制御モジュール10A−nの個数分だけ繰り返す。
【0064】
シーケンスQ20〜Q24は、構成情報通知処理に係るシーケンスである。この構成情報通知処理は、主系制御モジュール10の制御プログラム20の所望のタイミングで行われる。
シーケンスQ20に於いて、主系制御モジュール10の同期スケジュール部33は、構成情報同期部(M)32に対して同期要求信号を送信する。
シーケンスQ21に於いて、構成情報同期部(M)32は、待機系制御モジュール10A−1のファンクション機能部60−1に対して構成情報を通知する。
【0065】
シーケンスQ22に於いて、待機系制御モジュール10A−1のファンクション機能部60−1は、主系制御モジュール10の構成情報同期部(M)32に対して、構成情報の通知への応答を行う。
【0066】
シーケンスQ23に於いて、待機系制御モジュール10A−1のファンクション機能部60−1は、ホスト機能部30A−1の構成情報同期部(B)32A−1に対して、構成情報31を送信する。送信された構成情報31は、構成情報31−1として格納される。
【0067】
シーケンスQ24に於いて、待機系制御モジュール10A−1のファンクション機能部60−1は、主系状態監視部50−1に対して、構成情報31を受信した旨を通知する。
シーケンスQ25に於いて、待機系制御モジュール10A−1の主系状態監視部50−1は、発火期限時間を再設定する。ここで発火期限時間とは、前記のとおり、ウォッチドッグタイマのタイムアウト時間のことをいう。
【0068】
シーケンスQ30〜Q32は、系切り替え処理に係るシーケンスである。この系切り替え処理は、待機系制御モジュール10A−1の主系状態監視部50−1の発火期限時間のタイミングで行われる。
シーケンスQ30に於いて、待機系制御モジュール10A−1の主系状態監視部50−1は、発火期限時間の到来と共に発火する。すなわち、主系状態監視部50−1のウォッチドッグタイマがタイムアウトする。
【0069】
シーケンスQ31に於いて、待機系制御モジュール10A−1の主系状態監視部50−1は、バス経路制御部100に対して、系切り替え要求信号51−1を出力する。
【0070】
シーケンスQ32に於いて、待機系制御モジュール10A−1の主系状態監視部50−1は、ホスト機能部30A−1に対して、ホスト制御の引き継ぎ処理を指示する。
【0071】
主系制御モジュール10に異常が発生して、冗長系である待機系制御モジュール10A−1に切り替えた際、シーケンスQ10〜Q13に示すような構成処理を行わずに、代わりにシーケンスQ30〜Q32に示すホスト制御の引き継ぎ処理を行っている。これにより、冗長系の切り替えを安全に実施し、かつ、制御の引き継ぎが完了するまでの時間を短縮可能となる。
【0072】
図4は、第1の実施形態に係る待機系制御モジュールの動作を示すフローチャートである。以下、待機系制御モジュール10A−1を例として説明する。
処理が開始すると、ステップS10に於いて、待機系制御モジュール10A−1は、ファンクション機能部60−1の構成要求を受信したか否かを判断する。ファンクション機能部60−1の構成要求を受信していないならば(No)、ステップS10の処理に戻る。ファンクション機能部60−1の構成要求を受信したならば(Yes)、ステップS11の処理を行う。
【0073】
ステップS11に於いて、待機系制御モジュール10A−1は、ファンクション機能部60−1を構成して、主系制御モジュール10のホスト機能部30に応答を返す。
【0074】
ステップS12に於いて、待機系制御モジュール10A−1は、主系制御モジュール10のホスト機能部30から構成情報31を受信したか否かを判断する。構成情報31を受信したならば(Yes)、ステップS13の処理を行う。構成情報31を受信せずに発火期限時間が経過したならば、ステップS14の処理を行う。
【0075】
ステップS13に於いて、待機系制御モジュール10A−1の構成情報同期部(B)32A−1は、受信した情報を、ホスト機能部30A−1内の構成情報31−1に記憶(同期)し、ステップS12の処理に戻る。
【0076】
ステップS14に於いて、待機系制御モジュール10A−1の主系状態監視部50−1は、バス経路制御部100により、待機系制御モジュール10A−1のホスト機能部30A−1への経路に切り替える。
ステップS15に於いて、待機系制御モジュール10A−1は、記憶している構成情報31を基にUSBホスト機能を引き継ぐ。
【0077】
ステップS16に於いて、待機系制御モジュール10A−1は、所定の入力条件が成立するまで待つ。ステップS17に於いて、待機系制御モジュール10A−1の制御プログラム20は、ホスト機能部30Aを介して入出力モジュール70−n(n=1〜3)を制御し、ステップS16の処理に戻って繰り返す。
【0078】
(第1の実施形態の効果)
以上説明した第1の実施形態では、次の(A)〜(D)のような効果がある。
(A) 主系制御モジュール10と待機系制御モジュール10A−1,10A−2による冗長系システムを構成し、かつ、系切り替えにより待機系制御モジュール10A−1が新たな主系となった際に、ホスト機能部30A−1と入出力モジュール70−nとで行われる不要な通信を抑止でき、待機系制御モジュール10A−1が実際に制御を引き継ぐまでの時間が短縮される。
【0079】
(B) 主系制御モジュール10の構成情報31の通知を所定タイミングとし、この構成情報31の通知が途切れたときに、主系制御モジュール10に異常が発生したと判断している。これにより、主系制御モジュール10の異常検知の特別なハードウェアやソフトウェアを必要とせず、この主系制御モジュール10の異常を容易に検知可能である。更に、異常発生の所定タイミング前に於ける直近の構成情報31を、取得可能である。
(C) 本実施形態のコントローラ1は、USB規格に準拠した全ての入出力モジュール70−nを使用可能である。
【0080】
(D) 主系状態監視部50−1の発火期限時間(タイムアウト時間)は、構成情報通知の時間よりも長く、かつ、システムとしての安全性が保たれる時間よりも短く設定している。これにより、システムとしての安全性を保ったまま、待機系制御モジュール10A−nへの動作の引き継ぎが可能となる。
(第2の実施形態の構成)
【0081】
図5は、第2の実施形態に係るコントローラを示す概略の構成図である。図1に示す第1の実施形態に係るコントローラと同一の要素には同一の符号を付与し、説明を適宜省略、または簡略化する。
【0082】
本実施形態のコントローラ1Bは、第1の実施形態のコントローラ1とは異なる主系制御モジュール10Bと、複数の待機系制御モジュール10C−1と、入出力モジュール70C−1〜70C−3とを有し、第1の実施形態のシステムバス90とは異なるシステムバス91によって相互に接続されている。
本実施形態のシステムバス91は、リアルタイムEthernet(登録商標)であり、デイジーチェーン接続されている。
【0083】
システムバス91は、それぞれ行きと戻りの経路を持ち、全体として一つの大きなループを構成している。主系制御モジュール10Bは、システムバス91上に送出されるデータの起点(マスタ)である。待機系制御モジュール10C−1および入出力モジュール70C−1〜70C−3は、それぞれシステムバス91上のデータを取り込みながら、それらのデータを次に接続されているモジュールへと転送する。
【0084】
本実施形態の主系制御モジュール10Bは、図1に示す第1の実施形態の主系制御モジュール10のホスト機能部30の代わりに、リアルタイムEthernet(登録商標)のホスト機能を有するホスト機能部30Bを有している。
【0085】
本実施形態の待機系制御モジュール10C−1は、図1に示す第1の実施形態の待機系制御モジュール10A−1とは異なり、リアルタイムEthernet(登録商標)のホスト機能を有するホスト機能部30C−1と、リアルタイムEthernet(登録商標)のファンクション機能を有するファンクション機能部60C−1と、システムバス91の経路を切り替えるバス経路制御部100Cとを有している。
【0086】
本実施形態の入出力モジュール70C−1〜70C−3は、図1に示す第1の実施形態の入出力モジュール70−1〜70−3とは異なり、リアルタイムEthernet(登録商標)のファンクション機能を有するファンクション機能部71Cを其々有している。
【0087】
これらのモジュールは、システムバス91のトポロジに合わせて行き経路と戻り経路がそれぞれ接続されている。システムバス91では、バス上に同時に存在できるマスタは一つである。そのため、バス経路制御部100Cによって、マスタとなる制御モジュールへの切り替えを実施する。
【0088】
通常運転時に於いて、主系制御モジュール10Bがマスタとなる。主系制御モジュール10Bは、所定のタイミングで構成情報31をシステムバス91上に通知する。待機系制御モジュール10C−1は、ファンクション機能部60C−1を介して、システムバス91から構成情報31を取り込んで複製すると共に、主系制御モジュール10Bの状態を監視する。
【0089】
構成情報31の通知が途絶すると、待機系制御モジュール10C−1は、主系制御モジュール10Bが動作不能になったと判断し、自らがシステムバス91上のマスタとなるよう系切り替え要求信号51C−1を発生し、バス経路制御部100Cの接続状態を切り替える。
【0090】
図6は、第2の実施形態に係るバス経路制御部を示す概略の構成図である。
バス経路制御部100Cは、スイッチ101C,102Cを有している。バス経路制御部100Cには、主系制御モジュール10Bのホスト機能部30Bからの出力信号と入力信号が接続され、待機系制御モジュール10C−1のホスト機能部30C−1からの出力信号と入力信号が接続され、入出力モジュール70C−1のファンクション機能部71への入出力信号が接続されている。待機系制御モジュール10C−1のホスト機能部30C−1への入力信号は、待機系制御モジュール10C−1のファンクション機能部60C−1への入力信号と同一である。
【0091】
スイッチ101Cは、主系制御モジュール10Bのホスト機能部30Bからの出力側と、待機系制御モジュール10C−1のホスト機能部30C−1からの出力側とを切替えて、入出力モジュール70C−1のファンクション機能部71Cに接続する。
【0092】
スイッチ102Cは、主系制御モジュール10Bのホスト機能部30Bからの出力側と、入出力モジュール70C−1のファンクション機能部71Cの出力側とを切替えて、待機系制御モジュール10C−1のファンクション機能部60C−1およびホスト機能部30C−1に接続する。
【0093】
(第2の実施形態の動作)
図5、図6を基に、第2の実施形態に係るコントローラ1Bの動作を説明する。
《バス経路制御部100Cの動作》
バス経路制御部100Cは、主系制御モジュール10Bと待機系制御モジュール10C−1のいずれか一つが入出力モジュール70C−1〜70C−3と接続されるよう、システムバス91の信号経路を設定している。
【0094】
具体的には、バス経路制御部100Cは、主系制御モジュール10Bのホスト機能部30Bに接続された信号線と、待機系制御モジュール10C−1のホスト機能部30C−1に接続された信号線のうち一系統のみをアクティブにする。
【0095】
通常稼働時には、主系制御モジュール10Bのホスト機能部30Bに接続された信号線のみをアクティブにする。主系制御モジュール10Bの異常発生時には、待機系制御モジュール10C−1のホスト機能部30C−1に接続された信号線のみをアクティブにする。
【0096】
アクティブにした信号線を入出力モジュール70C−1〜70C−3に分配して、これらのファンクション機能部71Cに接続する。更に、アクティブにした信号線を、待機系制御モジュール10C−1のファンクション機能部60C−1に接続する。
【0097】
以上の経路設定により、一つの主系制御モジュール10Cを頂点として、残りの待機系制御モジュール10C−1と入出力モジュール70C−1〜70C−3とが、デイジーチェーン状に接続されたバスが構成される。
【0098】
《コントローラ1Bの通常稼動状態の動作》
コントローラ1Bの通常稼動状態の動作は、第1の実施形態に於けるコントローラ1の通常稼動状態の動作と同様である。
【0099】
《コントローラ1Aの系切り替え時の動作》
次に、系切り替え時の動作について説明する。
【0100】
通常稼動中のコントローラ1Bにおいて、主系制御モジュール10Bの故障などにより制御動作を継続できなくなると、待機系制御モジュール10C−1のファンクション機能部60C−1への構成情報31の通知が途絶する。構成情報31の通知の途絶により、待機系制御モジュール10C−1の主系状態監視部50C−1は、発火期限時間が経過して発火し、バス経路制御部100Cに対して系切り替え要求信号51C−1を出力する。
【0101】
バス経路制御部100Cは、待機系制御モジュール10C−1の主系状態監視部50C−1から系切り替え要求信号51C−1が入力されると、予め定められた優先度に従い、待機系制御モジュール10C−1のホスト機能部30C−1の系統をアクティブにする。これにより、待機系制御モジュール10C−1が新たな主系となり、主系制御モジュール10Bから制御を引き継ぐ。新たな主系となった待機系制御モジュール10C−1には、入出力モジュール70C−1〜70C−3が接続されている。このとき、待機系制御モジュール10C−1は、同期した構成情報31−1を有しているため、入出力モジュール70C−1〜70C−3に関する構成情報を改めて収集する必要がない。そのため、待機系制御モジュール10C−1は、リアルタイムEthernet(登録商標)の接続時に必要となるデバイスの発見手順/認識手順を省略し、直ちに制御プログラム20を動作させて制御を引き継ぐことが可能となる。
【0102】
(第2の実施形態の効果)
以上説明した第2の実施形態では、次の(E)のような効果がある。
(E) リアルタイムEthernet(登録商標)に於いても、第1の実施形態に於けるUSBと同様に、主系制御モジュール10Bと待機系制御モジュール10C−1による冗長系システムを構成し、かつ、系切り替えにより待機系制御モジュール10A−1が新たな主系となった際に、ホスト機能部30A−1と入出力モジュール70−nとで行われる不要な通信を抑止でき、待機系制御モジュール10A−1が実際に制御を引き継ぐまでの時間が短縮される。
(変形例)
【0103】
本発明は、上記実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で、変更実施が可能である。この利用形態や変形例としては、例えば、次の(a)〜(e)のようなものがある。
【0104】
(a) 第1の実施形態の主系制御モジュール10と待機系制御モジュール10A−1,10A−2は、それぞれ共通のハードウェアによって実現されても良い。すなわち、両者の構成要素を共に備えた構成の共通制御モジュールとし、スイッチ、端子、不揮発性メモリへの設定などによって主系あるいは待機系としての機能が選択されるように構成しても良い。更に、この共通制御モジュールを複数接続し、そのうち一つがスイッチ、端子、不揮発性メモリへの設定などによって主系制御モジュール10として動作するように構成しても良い。これにより、設計者は、1種類の制御モジュールのみを設計すれば良く、設計工数が少なくなる。更に、コントローラ1を運用する側では、1種類の制御モジュールのみを運用すれば良いため、可用性が増大する。
【0105】
(b) 第1の実施形態の主系制御モジュール10と待機系制御モジュール10A−1,10A−2は、必要に応じてハブ110によりシステムバス90を分岐させ、より多数の入出力モジュール70−n(nは自然数)を接続させても良い。
【0106】
(c) 第1の実施形態のバス経路制御部100は、プライオリティエンコーダにより、同時に入力された系切り替え要求信号51−1,51−2の優先度を切替えている。しかし、これに限られず主系状態監視部50−1,50−2の発火期限時間を変えることにより、同時に系切り替え要求信号51−1,51−2を出力すること(いわゆる「競合状態」)を抑止しても良い。更に、主系状態監視部50−1,50−2は、予め定められた優先度に基づいて順番に、系切り替え要求信号51−1,51−2をバス経路制御部100に出力するように設定しても良い。
【0107】
(d) 第1の実施形態において、コントローラ1は、入出力モジュール70−1〜70−3を制御している。しかし、これに限られず、少なくとも1つ以上のファンクション機能部を有している被制御モジュールであれば良い。
【0108】
(e) 第1の実施形態のシステムバス90は、USBである。第2の実施形態のシステムバス91は、リアルタイムEthernet(登録商標)である。しかし、これに限られず、システムバスにPCI−Express(登録商標)など他の規格を用いても良い。
【符号の説明】
【0109】
1,1B コントローラ(冗長化制御装置)
10,10B 主系制御モジュール
10A−1,10A−2,10C−1 待機系制御モジュール
20 制御プログラム
30,30B ホスト機能部(第1のホスト機能部)
30A−1,30A−2,30C−1 ホスト機能部(第2のホスト機能部)
31,31−1,31−2 構成情報(ファンクション構成情報)
32 構成情報同期部(M)
32A−1,32A−2 構成情報同期部(B)
33 同期スケジュール部
50−1,50−2,50C−1 主系状態監視部
51−1,51−2,51C−1 主系状態監視部
60−1,60−2,60C−1 ファンクション機能部(第2のファンクション機能部)
70−1〜70−3,70C−1〜70C−3 入出力モジュール(被制御モジュール)
71,71C ファンクション機能部(第1のファンクション機能部)
90,91 システムバス
100,100C バス経路制御部
110 ハブ

【特許請求の範囲】
【請求項1】
少なくとも第1のホスト機能部を有する主系制御モジュール、および、少なくとも1つの第2のファンクション機能部、および、少なくとも1つの第2のホスト機能部を有する少なくとも1つの待機系制御モジュールがシステムバスで相互に接続される冗長構成をとり、
制御対象として少なくとも第1のファンクション機能部を有する少なくとも1つの被制御モジュールを前記システムバスを介して制御する冗長構成をとるコントローラであって、
前記主系制御モジュールは、
前記被制御モジュールを管理すると共に、前記第1のホスト機能部から前記第1のファンクション機能部への接続を構成するファンクション構成情報を、前記第2のファンクション機能部へ所定のタイミングで繰り返し通知し、
前記待機系制御モジュールは、
前記第2のファンクション機能部が受信した前記ファンクション構成情報を保持し、前記ファンクション構成情報の通知が途絶したとき、前記ファンクション構成情報に基づいて前記被制御モジュールを引き継いて制御する
ことを特徴とする冗長構成をとるコントローラ。
【請求項2】
前記待機系制御モジュールは複数であり、
前記ファンクション構成情報の通知が途絶したことを、それぞれ異なるタイムアウト時間によって検出する
ことを特徴とする請求項1に記載の冗長構成をとるコントローラ。
【請求項3】
請求項1または請求項2に記載の冗長化制御装置は更に、
前記主系制御モジュールの前記第1のホスト機能部から前記被制御モジュールの前記第1のファンクション機能部へ至る第1の信号経路と、当該待機系制御モジュールの前記第2のホスト機能部から前記被制御モジュールの前記第1のファンクション機能部へ至る単一または複数の第2の信号経路のうちいずれかに切り替えるバス経路制御部を有し、
前記バス経路制御部が前記第2の信号経路のいずれか1つに切り替えた際に、切り替えられた信号経路に於ける待機系制御モジュールは、前記ファンクション構成情報に基づいて前記被制御モジュールを引き継いて制御する
を特徴とする冗長構成をとるコントローラ。
【請求項4】
前記バス経路制御部は、前記被制御モジュールからの系切り替え信号によって、前記系切り替え信号に係る前記第2の信号経路に切替えたのち、切り替えた前記第2の信号経路に対応する前記系切り替え信号をマスクする
ことを特徴とする請求項1ないし請求項3のいずれか1項に記載の冗長構成をとるコントローラ。
【請求項5】
前記バス経路制御部は、複数の前記系切り替え信号を検知したとき、プライオリティエンコーダによって、複数の前記系切り替え信号に係る前記第2の信号経路のうちいずれかに切り替えたのち、切り替えた前記第2の信号経路に対応する前記系切り替え信号をマスクする
ことを特徴とする請求項4に記載の冗長構成をとるコントローラ。
【請求項6】
前記待機系制御モジュールは、
前記ファンクション構成情報の通知が途絶し、前記主系制御モジュールから前記被制御モジュールの制御を引き継ぐ際に、前記第2のホスト機能部による前記被制御モジュールの発見および認識を抑止する
ことを特徴とする請求項1ないし請求項5のいずれか1項に記載の冗長構成をとるコントローラ。
【請求項7】
前記第1のホスト機能部および前記第2のホスト機能部は、前記第1のファンクション機能部および前記第2のファンクション機能部とUSB(Universal Serial Bus)プロトコルより通信する
ことを特徴とする請求項1ないし請求項6のいずれか1項に記載の冗長構成をとるコントローラ。
【請求項8】
前記システムバスは、シリアル伝送方式である
ことを特徴とする請求項1ないし請求項6のいずれか1項に記載の冗長構成をとるコントローラ。
【請求項9】
前記システムバスは、リアルタイムEthernet(登録商標)、PCI−Express(登録商標)のいずれかである
ことを特徴とする請求項1ないし請求項6のいずれか1項に記載の冗長構成をとるコントローラ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−256164(P2012−256164A)
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願番号】特願2011−128253(P2011−128253)
【出願日】平成23年6月8日(2011.6.8)
【出願人】(502129933)株式会社日立産機システム (1,140)
【Fターム(参考)】