(57)【特許請求の範囲】
【請求項１】
計算機と、前記計算機を制御する制御装置と、前記制御装置の障害発生時に前記制御装置を代替する待機装置とを備える通信システムにおいて、
前記制御装置は、
前記計算機との間で複数のシーケンスを含む準備シーケンス群を実行する制御側準備部と、
前記制御側準備部により前記準備シーケンス群の実行が完了した後に、前記計算機との間で前記計算機を制御する制御通信を開始する制御側通信部と
を備え、
前記待機装置は、
前記制御側準備部により前記制御装置と前記計算機との間で前記準備シーケンス群が開始されると、前記計算機との間で前記準備シーケンス群に含まれる前記複数のシーケンスの一部のシーケンスである第１シーケンス群を実行する第１準備部と、
前記第１準備部により前記第１シーケンス群の実行が完了した後に前記制御装置の障害を検知すると、前記計算機との間で前記準備シーケンス群のうちの前記第１シーケンス群以外のシーケンスからなる第２シーケンス群を実行する第２準備部と、
前記第２準備部により前記第２シーケンス群の実行が完了した後に、前記計算機との間で前記制御通信を開始する待機側通信部と
を備えることを特徴とする通信システム。
【請求項２】
前記待機装置は、さらに、
前記準備シーケンス群に含まれる各シーケンスの内容に基づいて、前記準備シーケンス群を前記第１シーケンス群と前記第２シーケンス群とに分割するシーケンス分割部を備えることを特徴とする請求項１に記載の通信システム。
【請求項３】
前記制御装置は、
前記計算機との間で前記制御通信の実行中に、障害が発生していないことを示す生存情報を予め定められた時間毎に前記待機装置に送信し、
前記待機装置は、
前記制御装置から前記生存情報を受信すると、受信した前記生存情報を前記計算機に送信する生存情報送信部を備え、
前記計算機は、
前記生存情報送信部から前記生存情報を受信し、前記生存情報を受信した時から、次の生存情報を受信するまでの受信間隔時間を計測し、前記受信間隔時間が予め定められた閾値を超えた場合に、前記制御装置または前記待機装置に障害が発生したと判定することを特徴とする請求項１または２に記載の通信システム。
【請求項４】
前記計算機は、
バッファを備え、前記バッファに前記制御通信に用いる制御通信情報を記憶し、
前記計算機は、
前記制御通信により受信する制御データであって、送信元が前記制御装置と前記待機装置とのいずれであるかを識別する識別子を含む制御データを受信し、受信した前記制御データに含まれる前記識別子に基づいて、前記制御通信情報を更新する情報更新部を備えることを特徴とする請求項１〜３のいずれかに記載の通信システム。
【請求項５】
計算機を制御する制御装置の障害発生時に前記制御装置を代替する待機装置において、
前記計算機と前記制御装置との間で前記計算機を制御する制御通信が開始される前に実行される複数のシーケンスを含む準備シーケンス群が、前記計算機と前記制御装置との間で開始されると、前記計算機との間で前記準備シーケンス群に含まれる複数のシーケンスのうちの一部のシーケンスからなる第１シーケンス群を実行する第１準備部と、
前記第１準備部により前記第１シーケンス群の実行が完了した後に前記制御装置の障害を検知すると、前記計算機との間で前記準備シーケンス群のうちの前記第１シーケンス群以外のシーケンスである第２シーケンス群を実行する第２準備部と、
前記第２準備部により前記第２シーケンス群の実行が完了した後に前記計算機との間で前記制御通信を開始する待機側通信部とを備えることを特徴とする待機装置。
【請求項６】
前記待機装置は、さらに、
前記準備シーケンス群に含まれる各シーケンスの内容に基づいて、前記準備シーケンス群を前記第１シーケンス群と前記第２シーケンス群とに分割するシーケンス分割部を備えることを特徴とする請求項５に記載の待機装置。
【請求項７】
計算機と、前記計算機を制御する制御装置と、前記制御装置の障害発生時に前記制御装置を代替する待機装置とを備える通信システムの通信方法において、
前記制御装置と前記計算機との間で複数のシーケンスを含む準備シーケンス群を実行し、
前記準備シーケンス群の実行が完了した後に、前記制御装置と前記計算機との間で前記計算機を制御する制御通信を開始し、
前記制御装置と前記計算機との間で前記準備シーケンス群が開始されると、前記待機装置と前記計算機との間で前記準備シーケンス群に含まれる前記複数のシーケンスの一部のシーケンスからなる第１シーケンス群を実行し、
前記第１シーケンス群の実行が完了した後に前記制御装置の障害を検知すると、前記待機装置と前記計算機との間で前記準備シーケンス群のうちの前記第１シーケンス群以外のシーケンスからなる第２シーケンス群を実行し、
前記第２シーケンス群の実行が完了した後に、前記待機装置と前記計算機との間で前記制御通信を開始することを特徴とする通信方法。
【請求項８】
計算機を制御する制御装置の障害発生時に前記制御装置を代替する待機装置の待機プログラムにおいて、
第１準備部が、前記計算機と前記制御装置との間で、前記計算機を制御する制御通信が開始される前に実行される複数のシーケンスを含む準備シーケンス群が開始されると、前記計算機との間で前記準備シーケンス群に含まれる複数のシーケンスのうちの一部のシーケンスからなる第１シーケンス群を実行する第１準備処理と、
第２準備部が、前記第１準備処理により前記第１シーケンス群の実行が完了した後に前記制御装置の障害を検知すると、前記計算機との間で前記準備シーケンス群のうちの前記第１シーケンス群以外のシーケンスである第２シーケンス群を実行する第２準備処理と、
待機側通信部が、前記第２準備処理により前記第２シーケンス群の実行が完了した後に前記計算機との間で前記制御通信を開始する待機側通信処理と
をコンピュータである前記待機装置に実行させることを特徴とする待機プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信システム、待機装置、通信方法及び待機プログラムに関するものであり、特に、系切り替え方式を採用する通信システム、待機装置、通信方法及び待機プログラムに関する。
【背景技術】
【０００２】
マスタ・スレーブ方式を適用した計装分野向けのネットワークシステムがある。図１は、マスタ・スレーブ方式を適用したネットワークシステム（系切り替えシステム５００）の構成の一例を示す図である。
図１に示すネットワークシステムは、可用性を維持するため、２台のマスタ１００（制御系マスタ１００ａと待機系マスタ１００ｂ）と複数台のスレーブ２００（スレーブ１（２００１）、・・・、スレーブｎ（２００ｎ））から構成される。可用性を維持するとは、システムが停止してしまう時間をできるだけ短くすることである。【０００３】
このように、マスタ１００を二重化することで、制御系マスタ１００ａが故障しても待機系マスタ１００ｂが役割を引き継ぐことができ、可用性を維持できる。
また、可用性を維持するためには、マスタ１００を二重化するだけでなく、制御系マスタ１００ａと待機系マスタ１００ｂとの役割が切り替わる際に発生する、ダウンタイムを短縮することが必要である。
ダウンタイムとは、システムやサービスが停止している時間のことである。ここでは、制御系マスタ１００ａが故障してから待機系マスタ１００ｂとスレーブ２００との間で通信が再開されるまでの時間を指す。【０００４】
ダウンタイムを短縮する技術の例として特許文献１を示す。特許文献１は、実行計算機の障害発生時に、待機計算機の実行オンラインシステムの起動時間を短縮させるものである。特許文献１のシステムは、１台の実行計算機と１台の待機計算機から構成されている。実行計算機には実行オンラインシステムが組み込まれ、待機計算機にはダミーオンラインシステムが組み込まれ、実行計算機と待機計算機とには、切り替えモニタプログラムが組み込まれている。【０００５】
特許文献１のシステムの動作は、以下の通りである。まず、通常時は実行計算機が動作する。このとき、待機計算機では、実行計算機と同じ内容のダミーオンラインシステムをメモリ上に展開しておく。以降、系が切り替わるまで待機計算機上でダミーオンラインシステムが実行される。
実行計算機に障害が発生すると、系が切り替わり、実行計算機の処理は待機計算機へ引き継がれる。待機計算機では既に内容の同じダミーオンラインシステムが起動しているため、メモリを初期化することなく処理の継続が可能となり、ダウンタイムの短縮が可能となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０８−２２１２８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
近年、図１に示すようなネットワークシステムにおいては、システムの安全性向上の観点から、コネクション型通信をベースとした機能安全通信をシステムのネットワーク部に適用することが求められている。機能安全通信とは、コマンドを誤りなく確実に送信するために、以下（ａ）〜（ｄ）の条件を満たした通信のことである。
（ａ）意図しない繰り返し、順序不正、喪失、許容できない遅延、成りすまし、アドレッシング等の通信エラーに対して、対策を行っている。
（ｂ）送信中のデータ破損が検出できるよう、制御通信のパケットにＣＲＣ（Ｃｙｃｌｉｃ・Ｒｅｄｕｎｄａｎｃｙ・Ｃｈｅｃｋ）を付加している。
（ｃ）機能安全通信専用の処理部（安全通信層）を持っている。
（ｄ）通信を開始する前に、機能安全通信を実施するコネクション単位で、以下の機能安全通信初期化シーケンスを実行する。【０００８】
＜機能安全通信初期化シーケンス＞
［１］安全コネクションの確立要求と応答。
［２］ネットワークパラメータ確認要求と応答、パラメータ保持。
［３］安全局パラメータ照合要求と応答、パラメータの正当性確認。
［４］オプション機能が必要な場合はオプションに関係するフレームのやり取りを実行。
［５］リフレッシュ準備＋オフセット計測要求と応答。
［６］［５］のオフセット計測情報をもとにして、安全リフレッシュ＋オフセット生成要求と応答を実行。【０００９】
図１に示すようなネットワークシステムにおいて機能安全通信を実行する場合、通信開始前に、上述した機能安全通信初期化シーケンスを実行する必要があるため、系切り替えに時間を要するという課題がある。
特許文献１に開示されたダウンタイムを短縮する技術では、通信の初期化が必要となるコネクション型通信ベースの機能安全通信の適用を行う場合が想定されていない。【００１０】
図２は、図１のネットワークシステムに機能安全通信を適用した場合の通信シーケンス図である。図２において、矢印はデータのやり取りを示している。
図２に示すように、ネットワークシステムのセットアップ時に、制御系マスタ１００ａとスレーブ２００との間、及び制御系マスタ１００ａと待機系マスタ１００ｂとの間で機能安全通信初期化シーケンスの［１］〜［６］を実行する。
制御系マスタ１００ａに障害が発生し、系が切り替わると、待機系マスタ１００ｂとスレーブ２００との通常通信の開始前に、待機系マスタ１００ｂとスレーブ２００との間で機能安全通信初期化シーケンスの［１］〜［６］を実行することになる。このため、制御系マスタ１００ａが故障してから系切り替えが発生し、待機系マスタ１００ｂとスレーブ２００との間で通信が再開されるまでのダウンタイムが長期化するという課題がある。【００１１】
本発明は、機能安全通信が適用されたネットワークシステムにおいて、系切り替え時に機能安全通信を実施する場合のダウンタイムを短縮することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係る通信システムは、計算機と、前記計算機を制御する制御装置と、前記制御装置の障害発生時に前記制御装置を代替する待機装置とを備える通信システムにおいて、前記制御装置は、前記計算機との間で複数のシーケンスを含む準備シーケンス群を実行する制御側準備部と、前記制御側準備部により前記準備シーケンス群の実行が完了した後に、前記計算機との間で前記計算機を制御する制御通信を開始する制御側通信部とを備え、前記待機装置は、前記制御側準備部により前記制御装置と前記計算機との間で前記準備シーケンス群が開始されると、前記計算機との間で前記準備シーケンス群に含まれる前記複数のシーケンスの一部のシーケンスである第１シーケンス群を実行する第１準備部と、前記第１準備部により前記第１シーケンス群の実行が完了した後に前記制御装置の障害を検知すると、前記計算機との間で前記準備シーケンス群のうちの前記第１シーケンス群以外のシーケンスからなる第２シーケンス群を実行する第２準備部と、前記第２準備部により前記第２シーケンス群の実行が完了した後に、前記計算機との間で前記制御通信を開始する待機側通信部とを備える。
【発明の効果】
【００１３】
本発明に係る通信システムによれば、待機装置は、制御装置と計算機との間で準備シーケンスが開始されると、前記計算機との間で前記準備シーケンスのうちの一部のシーケンスからなる第１シーケンス群を実行する第１準備部と、前記第１シーケンス群の実行が完了した後に前記制御装置の障害を検知すると、前記計算機との間で前記準備シーケンスのうちの前記第１シーケンス群以外のシーケンスである第２シーケンス群を実行する第２準備部と、前記第２シーケンス群の実行が完了した後に前記計算機との間で制御通信を開始する待機側通信部とを備えるので、系切り替え時に待機装置と計算機との間で実行する準備シーケンス群を短くすることができ、ダウンタイムを短縮することができる。
【図面の簡単な説明】
【００１４】
【図１】マスタ・スレーブ方式を適用したネットワークシステム（系切り替えシステム５００）の構成の一例を示す図である。
【図２】図１のネットワークシステムに機能安全通信を適用した場合の通信シーケンス図である。
【図３】実施の形態１に係るマスタ１００（制御系マスタ１００ａ）のブロック構成の一例を示す図である。
【図４】実施の形態１に係るマスタ１００（待機系マスタ１００ｂ）のブロック構成の一例を示す図である。
【図５】実施の形態１に係るスレーブ２００のブロック構成の一例を示す図である。
【図６】実施の形態１に係るマスタ１００、スレーブ２００のハードウェア構成の一例を示す図である。
【図７】実施の形態１に係る系切り替えシステム５００のシステム構成の一例を示す図である。
【図８】実施の形態１に係る制御系マスタ１００ａとスレーブ２００との間の通信シーケンスを示す図である。
【図９】実施の形態１に係る制御系マスタ１００ａと待機系マスタ１００ｂとの間の通信シーケンスを示す図である。
【図１０】実施の形態１に係る待機系マスタ１００ｂとスレーブ２００との間の通信シーケンスを示す図である。
【図１１】実施の形態１に係る待機系マスタ１００ｂの初期化処理部１２２ｂによる初期化作業判定処理を示すフロー図である。
【図１２】実施の形態２に係る待機系マスタ１００ｂのブロック構成の一例を示す図である。
【図１３】実施の形態２に係る生存情報フレーム１３１の構成の一例を示す図である。
【図１４】実施の形態２に係る系切り替えシステム５００の動作を説明するための図である。
【図１５】実施の形態３に係るスレーブ２００の構成の一例を示す図である。
【図１６】実施の形態３に係る機能安全通信の安全フレーム２５０の構成の一例を示す図である。
【図１７】実施の形態３に係る系切り替えシステム５００における識別子判定処理の動作を示すフローチャートである。
【発明を実施するための形態】
【００１５】
実施の形態１．
図１は、マスタ・スレーブ方式を適用したネットワークシステム（系切り替えシステム５００）の構成の一例を示す図である。本実施の形態では、図１に示す系切り替えシステム５００（通信システムの一例）に機能安全通信を適用した場合に、系切り替え時のダウンタイムを短縮することができる方式について説明する。
制御系マスタ１００ａと待機系マスタ１００ｂとは専用線により接続されている。また、制御系マスタ１００ａ及び待機系マスタ１００ｂには、複数台のスレーブ２００（スレーブ１（２００１）〜スレーブｎ（２００ｎ））が伝送路によりライン接続されている。
【００１６】
制御系マスタ１００ａ（制御装置）は、スレーブ２００（計算機）との間で制御通信を行うことにより、スレーブ２００を制御する。待機系マスタ１００ｂ（待機装置）は、制御系マスタ１００ａの障害発生時に制御系マスタ１００ａを代替する。制御系マスタ１００ａと待機系マスタ１００ｂとの構成は、同一構成であることが好ましい。
【００１７】
図３は、本実施の形態に係るマスタ１００（制御系マスタ１００ａ）のブロック構成の一例を示す図である。図４は、本実施の形態に係るマスタ１００（待機系マスタ１００ｂ）のブロック構成の一例を示す図である。
図３及び図４を用いて、制御系マスタ１００ａと、待機系マスタ１００ｂとのブロック構成について説明する。
【００１８】
図３、図４に示すように、制御系マスタ１００ａと待機系マスタ１００ｂとは、同一の構成である。よって、ここでは、マスタ１００の構成として説明する。
また、以下の説明において、構成部に添え字ｍ１〜ｍ５，ｓ１〜ｓｎが付されている場合は、その構成部は、添え字が同一の安全通信制御部１２０が備える構成部であるものとする。また、構成部に添え字ａ，ｂが付されている場合は、その構成部は添え字が同一のマスタ１００（制御系マスタ１００ａあるいは待機系マスタ１００ｂ）が備える構成部であるものとする。
【００１９】
マスタ１００は、制御通信制御部１１０、安全通信制御部１２０を備える。
制御通信制御部１１０は、制御通信に必要なフレームの送受信を制御する。制御通信は、マスタ１００とスレーブ２００との間で行われる通信であり、スレーブ２００を動作させるコマンドをスレーブ２００に送るための通信である。
制御系マスタ１００ａの制御通信制御部１１０ａは、機能安全通信初期化シーケンスの実行が完了した後に、スレーブ２００との間で制御通信を開始する制御側通信部の一例である。待機系マスタ１００ｂの制御通信制御部１１０ｂは、機能安全通信初期化シーケンスのうちの第２シーケンス群（図１０参照）の実行が完了した後に、スレーブ２００との間で制御通信を開始する待機側通信部の一例である。
【００２０】
安全通信制御部１２０は、機能安全通信に必要なフレーム（安全フレームともいう）の送受信を制御する。安全通信制御部１２０は、自マスタ１００に接続されている他マスタ１００、及び複数のスレーブ２００との間で機能安全通信を実現するための通信エラーチェックを行う安全通信層の機能を実行する。
安全通信制御部１２０は、他マスタ１００及び複数のスレーブ２００毎に設けられる。他のマスタ１００との機能安全通信を実現するための安全通信制御部１２０を、安全通信制御部１２０ｍ１とする。スレーブ１〜スレーブｎのそれぞれとの機能安全通信を実現するための安全通信制御部１２０を、安全通信制御部１２０ｓ１〜１２０ｓｎ（ｎはスレーブ台数）とする。
【００２１】
安全通信制御部１２０は、受信元判定部１２４、送信先設定部１２１、初期化処理部１２２、安全データ処理部１２３を備える。
受信元判定部１２４は、安全通信制御部１２０に送られてきた安全フレームを取得し、その安全フレームの受信元を判定する。安全フレームとは、安全通信制御部１２０が通信エラーチェックを行うために必要な情報を格納したフレームのことである。
送信先設定部１２１は、安全フレームに送信先を設定する。
【００２２】
初期化処理部１２２は、機能安全通信初期化シーケンスを実行する。
機能安全通信初期化シーケンスは、制御通信を開始する前に実行される準備シーケンス群の一例である。機能安全通信初期化シーケンス（準備シーケンス群）は、複数のシーケンス［１］〜［６］を含む。
初期化処理部１２２は、安全フレームに含まれるパラメータであって、機能安全通信初期化シーケンスで使用するパラメータを受け取り、機能安全通信初期化シーケンスを実行する。
【００２３】
図３に示すように、マスタ１００が制御系マスタ１００ａの場合は、初期化処理部１２２ａは、スレーブ２００との間で機能安全通信初期化シーケンスを実行する制御側準備部の一例である。
図４に示すように、マスタ１００が待機系マスタ１００ｂの場合は、初期化処理部１２２ｂは、シーケンス分割部１２２１、第１準備部１２２２、第２準備部１２２３を備える。
【００２４】
なお、すべての初期化処理部１２２が、シーケンス分割部１２２１、第１準備部１２２２、第２準備部１２２３を備えていてもよいし、待機系マスタ１００ｂの初期化処理部１２２ｂのみが、シーケンス分割部１２２１、第１準備部１２２２、第２準備部１２２３を備えていてもよい。ただし、制御系マスタ１００ａと待機系マスタ１００ｂとを同一構成にしておけば、どちらも互いをバックアップすることができるので好ましい。
【００２５】
シーケンス分割部１２２１は、機能安全通信初期化シーケンスに含まれる各シーケンスの内容に基づいて、機能安全通信初期化シーケンスを第１シーケンス群と第２シーケンス群とに分割する。シーケンス分割部１２２１は、系切り替えシステム５００のセットアップ時に、機能安全通信初期化シーケンスを第１シーケンス群と第２シーケンス群とに分割する。
【００２６】
第１準備部１２２２は、制御系マスタ１００ａとスレーブ２００との間で機能安全通信初期化シーケンスが開始されるとスレーブ２００との間で機能安全通信初期化シーケンスに含まれる複数のシーケンスの一部のシーケンスである第１シーケンス群を実行する。
第２準備部は、第１シーケンス群の実行が完了した後に制御系マスタ１００ａの障害を検知すると、スレーブ２００との間で機能安全通信初期化シーケンスのうちの第１シーケンス群以外のシーケンスからなる第２シーケンス群を実行する。
【００２７】
本実施の形態では、シーケンス分割部１２２１により機能安全通信初期化シーケンスを第１シーケンス群と第２シーケンス群とに分割してから、第１準備部１２２２が第１シーケンス群を実行するとしているが、これに限らない。予め、システム管理者等が第１シーケンス群と第２シーケンス群とに分割しておき、マスタ１００の備える記憶装置に記憶しておくとしてもよい。
【００２８】
本実施の形態では、安全通信制御部１２０に新たにシーケンス分割部１２２１、第１準備部１２２２、第２準備部１２２３を追加している。
安全データ処理部１２３は、機能安全通信において通信エラー対策に必要な安全データの処理を行う。
【００２９】
図５は、本実施の形態に係るスレーブ２００のブロック構成の一例を示す図である。
スレーブ２００は、制御通信制御部２１０、安全通信制御部２２０を備える。
制御通信制御部２１０は、スレーブ２００側において制御通信に必要なフレームの送受信を制御する。
【００３０】
安全通信制御部２２０は、制御系マスタ１００ａとの通信用の安全通信制御部２２０ｍ２と、待機系マスタ１００ｂとの通信用の安全通信制御部２２０ｍ３から構成される。単に、安全通信制御部２２０と記載した場合には、安全通信制御部２２０ｍ２，２２０ｍ３の両方、あるいはどちらか一方を指す。
【００３１】
安全通信制御部２２０は、スレーブ２００において、機能安全通信に必要な安全フレームの送受信を制御する。本実施の形態では、スレーブ２００に、新たに待機系マスタ１００ｂとの通信用の安全通信制御部２２０ｍ３を追加している。
安全通信制御部２２０は、受信元判定部２２４、送信先設定部２２１、初期化処理部２２２、安全データ処理部２２３を備える。
【００３２】
受信元判定部２２４は、安全通信制御部２２０に送られてきた安全フレームを取得する。
送信先設定部２２１は、安全フレームの送付先を設定する。
初期化処理部２２２は、マスタ１００から送られてきた安全フレームに含まれる機能安全通信初期化シーケンスで使用するパラメータを受け取り、機能安全通信初期化シーケンスを実行する。待機系マスタ１００ｂとの間で機能安全通信初期化シーケンスを実行する場合には、待機系マスタ１００ｂにより機能安全通信初期化シーケンスが分割され、実行される。
本実施の形態では、スレーブ２００の安全通信制御部２２０に、新たに初期化処理部２２２を追加している。
安全データ処理部２２３は、機能安全通信において通信エラー対策に必要な安全データの処理を行う。
【００３３】
図６は、本実施の形態に係る制御系マスタ１００ａ、待機系マスタ１００ｂ、スレーブ２００のハードウェア構成の一例を示す図である。
図６を用いて、制御系マスタ１００ａ、待機系マスタ１００ｂ、スレーブ２００のハードウェア構成例について説明する。
【００３４】
制御系マスタ１００ａ、待機系マスタ１００ｂ、スレーブ２００はコンピュータであり、制御系マスタ１００ａ、待機系マスタ１００ｂ、スレーブ２００の各要素をプログラムで実現することができる。
制御系マスタ１００ａ、待機系マスタ１００ｂ、スレーブ２００のハードウェア構成としては、バスに、演算装置９０１、外部記憶装置９０２、主記憶装置９０３、通信装置９０４、入出力装置９０５が接続されている。
【００３５】
演算装置９０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）である。
外部記憶装置９０２は、例えばＲＯＭ（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）やフラッシュメモリ、ハードディスク装置である。
主記憶装置９０３は、ＲＡＭ（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）である。
通信装置９０４は、例えば通信ボード等であり、ＬＡＮ（Ｌｏｃａｌ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）等に接続されている。通信装置９０４は、ＬＡＮに限らず、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ・Ｐｒｏｔｏｃｏｌ・Ｖｉｒｔｕａｌ・Ｐｒｉｖａｔｅ・Ｎｅｔｗｏｒｋ）、広域ＬＡＮ、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ・Ｔｒａｎｓｆｅｒ・Ｍｏｄｅ）ネットワークといったＷＡＮ（Ｗｉｄｅ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）、あるいは、インターネットに接続されていても構わない。ＬＡＮ、ＷＡＮ、インターネットは、ネットワークの一例である。
入出力装置９０５は、例えばマウス、キーボード、ディスプレイ装置等である。マウスの代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。ディスプレイ装置は、ＬＣＤ（Ｌｉｑｕｉｄ・Ｃｒｙｓｔａｌ・Ｄｉｓｐｌａｙ）、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）、あるいは、その他の表示装置でもよい。
【００３６】
プログラムは、通常は外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１に読み込まれ、実行される。
プログラムは、ブロック構成図に示す「〜部」として説明している機能を実現するプログラムである。
更に、外部記憶装置９０２にはオペレーティングシステム（ＯＳ）も記憶されており、ＯＳの少なくとも一部が主記憶装置９０３にロードされ、演算装置９０１はＯＳを実行しながら、ブロック構成図に示す「〜部」の機能を実現するプログラムを実行する。
また、アプリケーションプログラムも外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１により実行される。
また、「〜テーブル」等の情報も外部記憶装置９０２に記憶されている。
【００３７】
また、「〜の判断」、「〜の判定」、「〜の抽出」、「〜の検知」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の出力」等の処理の結果を示す情報やデータや信号値や変数値が主記憶装置９０３にファイルとして記憶されている。
また、制御系マスタ１００ａ、待機系マスタ１００ｂ、スレーブ２００が受信したデータが主記憶装置９０３に記憶される。
また、暗号鍵・復号鍵や乱数値やパラメータが、主記憶装置９０３にファイルとして記憶されてもよい。
【００３８】
なお、図６の構成は、あくまでも制御系マスタ１００ａ、待機系マスタ１００ｂ、スレーブ２００のハードウェア構成の一例を示すものであり、制御系マスタ１００ａ、待機系マスタ１００ｂ、スレーブ２００のハードウェア構成は図６に記載の構成に限らず、他の構成であってもよい。
【００３９】
図７は、本実施の形態に係る系切り替えシステム５００のシステム構成の一例を示す図である。ここでは、説明を簡単にするため、スレーブ２００の台数を１台と想定する。しかし、上述したように、スレーブ２００の台数は複数台でもよい。
以下の動作の説明では、制御系マスタ１００ａとスレーブ２００との間、制御系マスタ１００ａと待機系マスタ１００ｂとの間、待機系マスタ１００ｂとスレーブ２００との間に分けて、機能安全通信に関わる部分の動作について説明する。
【００４０】
図８は、本実施の形態に係る制御系マスタ１００ａとスレーブ２００との間の通信シーケンスを示す図である。
図８を用いて、制御系マスタ１００ａとスレーブ２００との間の通信シーケンスについて説明する。
【００４１】
（Ａ１）の通信シーケンスは、制御系マスタ１００ａの安全通信制御部１２０（安全通信層）とスレーブ２００の安全通信制御部２２０（安全通信層）との間で安全コネクションを確立するための通信シーケンスである。（Ａ１）の通信シーケンスは、系切り替えシステム５００のセットアップ時に制御系マスタ１００ａの初期化処理部１２２ａとスレーブ２００の初期化処理部２２２との間で行われる機能安全通信初期化シーケンスである。機能安全通信初期化シーケンスでは、以下の項目を実行する。
［１］安全コネクションの確立要求フレームの送受信と応答フレームの送受信を実行。
［２］ネットワークパラメータ確認要求フレームの送受信と応答フレームの送受信、パラメータをバッファに格納し、保持する。
［３］安全局パラメータ照合要求フレームの送受信と応答フレームの送受信、安全通信制御部でパラメータの正当性確認を実行。
［４］その他オプション機能が必要な場合は、オプションに関係するフレームの送受信と処理を実行。
［５］リフレッシュ準備＋オフセット計測要求フレームの送受信と応答フレームの送受信を実行。
［６］オフセット計測情報をもとにして、安全リフレッシュ＋オフセット生成要求フレームの送受信と応答フレーム送受信を実行。
【００４２】
（Ａ２）の通信シーケンスは、制御系マスタ１００ａとスレーブ２００との間で、制御通信を機能安全通信として実行するシーケンスである。
【００４３】
（Ａ２）の機能安全通信時に制御系マスタ１００ａが故障すると、（Ａ３）の通信シーケンスが開始される。（Ａ３）の通信シーケンスにおいて、制御系マスタ１００ａの安全通信制御部１２０とスレーブ２００の安全通信制御部２２０とによって、通信エラーが検出される。通信エラーが検出されると、（Ａ３）の通信シーケンスにおいて、制御系マスタ１００ａの安全通信制御部１２０とスレーブ２００の安全通信制御部２２０との間の安全コネクションが切断される。
【００４４】
図９は、本実施の形態に係る制御系マスタ１００ａと待機系マスタ１００ｂとの間の通信シーケンスを示す図である。
図９を用いて、制御系マスタ１００ａと待機系マスタ１００ｂとの間の通信シーケンスについて説明する。
【００４５】
（Ｂ１）の通信シーケンスは、制御系マスタ１００ａの安全通信制御部１２０（安全通信層）と待機系マスタ１００ｂの安全通信制御部１２０（安全通信層）との間で安全コネクションを確立するためのシーケンスである。（Ｂ１）の通信シーケンスは、系切り替えシステム５００のセットアップ時に制御系マスタ１００ａの初期化処理部１２２ａと待機系マスタ１００ｂの初期化処理部１２２ｂとの間で行われる機能安全通信初期化シーケンスである。機能安全通信初期化シーケンスでは、以下の項目を実行する。
［１］安全コネクションの確立要求フレームの送受信と応答フレームの送受信を実行。
［２］ネットワークパラメータ確認要求フレームの送受信と応答フレームの送受信、パラメータをバッファに格納し、保持する。
［３］安全局パラメータ照合要求フレームの送受信と応答フレームの送受信、安全通信制御部でパラメータの正当性確認を実行。
［４］その他オプション機能が必要な場合は、オプションに関係するフレームの送受信と処理を実行。
［５］リフレッシュ準備＋オフセット計測要求フレームの送受信と応答フレームの送受信を実行。
［６］オフセット計測情報をもとにして、安全リフレッシュ＋オフセット生成要求フレームの送受信と応答フレーム送受信を実行。
【００４６】
（Ｂ２）の通信シーケンスは、制御系マスタ１００ａと待機系マスタ１００ｂとの間で、機能安全通信を実行するシーケンスである。
（Ｂ２）の通信シーケンスでは、系切り替えに必要なデータの送受信が行われる。
【００４７】
（Ｂ２）の通信シーケンス時に制御系マスタ１００ａが故障すると、（Ｂ３）の通信シーケンスが開始される。（Ｂ３）の通信シーケンスにおいて、制御系マスタ１００ａの安全通信制御部１２０と待機系マスタ１００ｂの安全通信制御部１２０とによって、通信エラーが検出される。通信エラーが検出されると、（Ｂ３）の通信シーケンスにおいて、制御系マスタ１００ａの安全通信制御部１２０と待機系マスタ１００ｂの安全通信制御部１２０との間の安全コネクションが切断される。
【００４８】
図１０は、本実施の形態に係る待機系マスタ１００ｂとスレーブ２００との間の通信シーケンスを示す図である。
図１０を用いて、待機系マスタ１００ｂとスレーブ２００との間の通信シーケンスについて説明する。
【００４９】
（Ｃ１）の通信シーケンスは、待機系マスタ１００ｂの安全通信制御部１２０（安全通信層）とスレーブ２００の安全通信制御部２２０（安全通信層）との間で安全コネクションを確立するためのシーケンスの一部である。（Ｃ１）の通信シーケンスは、系切り替えシステム５００のセットアップ時に待機系マスタ１００ｂの初期化処理部１２２ｂの第１準備部１２２２ｂと、スレーブ２００の初期化処理部２２２との間で行われる機能安全通信初期化シーケンスの一部である第１シーケンス群である。系切り替えシステム５００のセットアップ時には、第１準備部１２２２ｂは、上述した機能安全通信初期化シーケンス［１］〜［６］のうちの以下の項目を第１シーケンス群として実行する（第１準備処理、第１準備工程）。
［１］安全コネクションの確立要求フレームの送受信と応答フレームの送受信を実行。
［２］ネットワークパラメータ確認要求フレームの送受信と応答フレームの送受信、パラメータをバッファに格納し、保持する。
［３］安全局パラメータ照合要求フレームの送受信と応答フレームの送受信、安全通信制御部でパラメータの正当性確認を実行。
［４］その他オプション機能が必要な場合は、オプションに関係するフレームの送受信と処理を実行。
（Ｃ１）の通信シーケンス（［１］〜［４］）が終了すると、待機系マスタ１００ｂとスレーブ２００との通信は、系切り替えが発生するまで待機状態となる。
【００５０】
制御系マスタ１００ａが故障すると、（Ｃ２）の通信シーケンスが開始される。（Ｃ２）の通信シーケンスは、制御系マスタ１００ａの障害を検知した後に、待機系マスタ１００ｂの初期化処理部１２２ｂの第２準備部１２２３ｂと、スレーブ２００の初期化処理部２２２との間で行われる機能安全通信初期化シーケンスのうちの第１シーケンス群以外のシーケンスである第２シーケンス群である。
（Ｃ２）の通信シーケンスでは、待機系マスタ１００ｂとスレーブ２００とは、第２シーケンス群を実行し、待機系マスタ１００ｂの安全通信制御部１２０ｂとスレーブ２００の安全通信制御部２２０との間で安全コネクションの確立を完了する。
【００５１】
機能安全通信初期化シーケンスのうちの第２シーケンス群は、以下の項目である。第２準備部１２２３ｂは、第２シーケンス群を実行する（第２準備処理、第２準備工程）。
［５］リフレッシュ準備＋オフセット計測要求フレームの送受信と応答フレームの送受信を実行。
［６］オフセット計測情報をもとにして、安全リフレッシュ＋オフセット生成要求フレームの送受信と応答フレーム送受信を実行。
【００５２】
（Ｃ３）の通信シーケンスは、待機系マスタ１００ｂとスレーブ２００との間で、制御通信を機能安全通信として実行するシーケンスである（待機側通信処理、待機側通信工程）。
【００５３】
上述したように、待機系マスタ１００ｂとスレーブ２００との間では、機能安全通信初期化シーケンスが第１シーケンス群と第２シーケンス群とに分割されて実行される。
次に、機能安全通信初期化シーケンスの分割方法（初期化作業判定方法）について説明する。
機能安全通信初期化シーケンスの分割処理（初期化作業判定処理）は、待機系マスタ１００ｂの安全通信制御部１２０ｂの初期化処理部１２２ｂのシーケンス分割部１２２１ｂにより実行される。
【００５４】
図１１は、本実施の形態に係るシーケンス分割部１２２１ｂによる初期化作業判定処理を示すフロー図である。
機能安全通信初期化シーケンスのうち、クロック計測に関わるものやタイムアウト値の変更が不可能なものについては、初期化シーケンス実行後すぐに機能安全通信を開始する必要があるため、系切り替え後に実行される。それ以外のもの、例えば、安全コネクションＩＤのように初期化シーケンス後すぐに機能安全通信を開始する必要のないものについては、系切り替え前に実行される。
【００５５】
Ｓ１００において、シーケンス分割部１２２１ｂは、機能安全通信初期化シーケンス［１］〜［６］のそれぞれをどのタイミングで実行するかについて、処理装置を用いて判定する。シーケンス分割部１２２１ｂは、機能安全通信初期化シーケンス［１］〜［６］のそれぞれについて、初期化作業判定処理を実行する。処理対象の機能安全通信初期化シーケンスのうちのシーケンスを処理対象シーケンスとする。
【００５６】
Ｓ１１０において、シーケンス分割部１２２１ｂは、処理対象シーケンスの内容が、パラメータの送受信かどうかを判定する。処理対象シーケンスの内容が、パラメータの送受信の場合（Ｓ１１０でＹＥＳ）、Ｓ１１１に進む。処理対象シーケンスの内容がパラメータの送受信でない場合（Ｓ１１０でＮＯ）、Ｓ１１２に進む。
【００５７】
Ｓ１１１において、シーケンス分割部１２２１ｂは、処理対象シーケンスの内容が、タイムアウト値の変更が可能なものであるかどうかを判定する。
処理対象シーケンスの内容が、タイムアウト値の変更が可能なものである場合（Ｓ１１１でＹＥＳ）、シーケンス分割部１２２１ｂは、処理対象シーケンスを系切り替え前に実行してよいと判定し、Ｓ２００で実行される第１シーケンス群であるとする。
処理対象シーケンスの内容が、タイムアウト値の変更が不可能なものである場合（Ｓ１１１でＮＯ）、シーケンス分割部１２２１ｂは、処理対象シーケンスを系切り替え（Ｓ３００）後に実行すべきものと判定し、Ｓ４００で実行される第２シーケンス群であるとする。
【００５８】
Ｓ１１２において、シーケンス分割部１２２１ｂは、処理対象シーケンスの内容が、クロック計測に関わるものであるかどうかを判定する。
処理対象シーケンスの内容が、クロック計測に関わるものでない場合（Ｓ１１２でＮＯ）、シーケンス分割部１２２１ｂは、処理対象シーケンスを系切り替え前に実行してよいと判定し、Ｓ２００で実行される第１シーケンス群であるとする。
処理対象シーケンスの内容が、クロック計測に関わるものである場合（Ｓ１１２でＹＥＳ）、シーケンス分割部１２２１ｂは、処理対象シーケンスを系切り替え（Ｓ３００）後に実行すべきものと判定し、Ｓ４００で実行される第２シーケンス群であるとする。
【００５９】
このように、本実施の形態に係る系切り替えシステム５００では、機能安全通信初期化シーケンスのうちシーケンス実行後すぐに通信を開始しなければならないものは系切り替え後に実行し、それ以外のものは系切り替え前に実行する。図１１は、機能安全通信初期化シーケンスを分割する基準について示したフローチャートである。このフローチャートをベースに機能安全通信初期化シーケンスを分類するアプリケーションを作成し、安全通信制御部１２０ｂに組み込んでもよい。
【００６０】
本実施の形態に係る系切り替えシステム５００によれば、機能安全通信初期化シーケンス［１］−［４］を系切り替え前に、［５］と［６］を系切り替え後に実行することで、系切り替えが発生した後に実行する機能安全初期化シーケンスの削減を行った。この結果、図１に示すネットワークシステムに、コネクション型通信をベースとした機能安全通信を導入した場合でも、ダウンタイム短縮が実現可能となる。
【００６１】
実施の形態２．
本実施の形態では、主に、実施の形態１との差異について説明する。
実施の形態１で説明した構成部と同様の機能を有する構成部については、同一の符号を付し、その説明を省略する場合がある。
【００６２】
実施の形態１で説明した系切り替えシステム５００では、制御系マスタ１００ａとスレーブ２００との間の制御通信を実行中に、待機系マスタ１００ｂが故障した場合、系切り替えが発生して待機系マスタ１００ｂが起動するまで待機系マスタ１００ｂの故障を検出できない。このように、待機系マスタ１００ｂの故障の検出までに時間を要する。このため、機器の交換が遅れることによるダウンタイムの延びや機器の交換が間に合わずにシステムの動作停止が発生する等の虞がある。
【００６３】
図１２は、本実施の形態に係る待機系マスタ１００ｂのブロック構成の一例を示す図である。
図１２に示すように、待機系マスタ１００ｂは、実施の形態１で説明した図４の構成に加えて、生存情報フレーム検出部１３０を備える。
生存情報フレーム検出部１３０は、制御系マスタ１００ａから送付された生存情報を含む生存情報フレーム１３１を受信し、受信した生存情報フレーム１３１を全スレーブ２００へ転送する機能を持つ。
制御系マスタ１００ａは、スレーブ２００との間で制御通信の実行中に、障害が発生していないことを示す生存情報を含む生存情報フレーム１３１を予め定められた時間（送信間隔時間）毎に待機系マスタ１００ｂに送信する。
生存情報フレーム検出部１３０は、制御系マスタ１００ａから生存情報フレーム１３１を受信すると、受信した生存情報フレーム１３１をスレーブ２００に送信する生存情報送信部の一例である。
【００６４】
図１３は、本実施の形態に係る生存情報フレーム１３１の構成の一例を示す図である。
図１３に示すように、生存情報フレーム１３１には、宛先スレーブ局１３１１、送信時刻１３１２が設定される。送信時刻１３１２には、生存情報フレーム１３１が制御系マスタ１００ａから送信された時刻が記録される。
【００６５】
図１４は、本実施の形態に係る系切り替えシステム５００の動作を説明するための図である。
図１４を用いて、系切り替えシステム５００の動作について説明する。
【００６６】
Ｓ１０において、制御系マスタ１００ａは、生存情報フレーム１３１に宛先スレーブ局１３１１を設定するとともに、送信時刻を生存情報フレーム１３１の送信時刻１３１２に設定し、障害が発生していないことを示す生存情報フレーム１３１を生成する。制御系マスタ１００ａは、生成した生存情報フレーム１３１を待機系マスタ１００ｂに送信する。
制御系マスタ１００ａは、予め定められた時間（送信間隔時間）毎に、生存情報フレーム１３１を待機系マスタ１００ｂに送信する。制御系マスタ１００ａは、待機系マスタ１００ｂとの間で機能安全通信の実行中（図９の（Ｂ２）の段階）に、待機系マスタ１００ｂに対して生存情報フレーム１３１を送信する。
【００６７】
Ｓ２０において、待機系マスタ１００ｂの生存情報フレーム検出部１３０は、生存情報フレーム１３１を受信する。
Ｓ３０において、生存情報フレーム検出部１３０は、受信した生存情報フレーム１３１をスレーブ２００へ送信する。このように、生存情報フレーム１３１は、制御系マスタ１００ａから待機系マスタ１００ｂを介して、スレーブ２００に転送される。
【００６８】
Ｓ４０において、スレーブ２００は、生存情報フレーム検出部１３０により送信された生存情報フレーム１３１を受信する。スレーブ２００は、受信した生存情報フレーム１３１に記録されている送信時刻１３１２を取得する。そして、スレーブ２００は、取得した送信時刻１３１２から、次に生存情報フレーム１３１を受信するまでの受信間隔時間を処理装置により計測する。
スレーブ２００は、計測した受信間隔時間が予め定められた閾値を超えた場合に、待機系マスタ１００ｂに障害が発生したと判定する。つまり、スレーブ２００は、生存情報フレーム１３１の受信処理がタイムアウトした場合に、待機系マスタ１００ｂが故障したと認識する。
受信間隔時間は、送信間隔時間よりもやや長めに設定する。受信間隔時間、送信間隔時間は、システム管理者により適宜変更することが可能であるものとする。
【００６９】
このように、本実施の形態に係る系切り替えシステム５００によれば、制御系マスタ１００ａから待機系マスタ１００ｂを介して生存情報フレーム１３１を送付するので、２台のマスタが同時故障する場合と待機系マスタ１００ｂが先に故障する場合とに、早期にスレーブ２００が故障を検出することができる。
【００７０】
制御系マスタ１００ａとスレーブ２００との間、制御系マスタ１００ａと待機系マスタ１００ｂとの間、待機系マスタ１００ｂとスレーブ２００との間のそれぞれの区間でのみ、コネクション型通信で互いの生存を確認する方式と比較し、本実施の形態に係る系切り替えシステム５００によれば、制御系マスタ１００ａとスレーブ２００との間の安全機能通信の実行中に、タイムアウトにより待機系マスタ１００ｂの故障を検出できる。したがって、スレーブ２００は、制御系マスタ１００ａと待機系マスタ１００ｂとの両マスタの故障を最短時間で検出できる。最短時間で両マスタの故障を検出できることで機器の交換を早めに行うことができ、ダウンタイムの短縮やシステム停止の回避を実現できる。
【００７１】
実施の形態３．
本実施の形態では、主に、実施の形態１，２との差異について説明する。
実施の形態１，２で説明した構成部と同様の機能を有する構成部については、同一の符号を付し、その説明を省略する場合がある。
【００７２】
実施の形態１，２で述べた方式では、制御系マスタ１００ａから待機系マスタ１００ｂへの系切り替えの際、スレーブ２００内に、系切り替え前のデータが残ってしまい、系切り替え前と系切り替え後のデータが混在し、システムが誤動作を起こす虞がある。
【００７３】
図１５は、本実施の形態に係るスレーブ２００の構成の一例を示す図である。
図１５に示すように、スレーブ２００は、安全通信制御部２２０をマスタ毎に備える。制御系マスタ１００ａとの通信用の安全通信制御部２２０を、安全通信制御部２２０ｍ４とする。待機系マスタ１００ｂとの通信用の安全通信制御部２２０を、安全通信制御部２２０ｍ５とする。
【００７４】
安全通信制御部２２０（２２０ｍ４，２２０ｍ５）は、図５のスレーブ２００の構成に加えて、識別子判定部２２５（２２５ｍ４，２２５ｍ５）を備える。安全通信制御部２２０ｍ４は、識別子判定部２２５ｍ４を備え、安全通信制御部２２０ｍ５は、識別子判定部２２５ｍ５を備える。
【００７５】
識別子判定部２２５は、待機系マスタ１００ｂから送信された識別子を判定し、系切り替え後に系切り替え前のデータがバッファに残っている場合は、系切り替え前のデータを削除する。
【００７６】
図１６は、本実施の形態に係るスレーブ２００が受信する安全フレーム２５０の構成の一例を示す図である。
安全フレーム２５０とは、機能安全通信において、マスタとスレーブとの間で送受信され、通信エラーチェックを行うために必要な情報（制御安全情報の一例）を格納したフレームのことである。
安全フレーム２５０は、通常、宛先スレーブ局２５１１、安全データ２５１２、ＣＲＣ２５１４から構成される。本実施の形態に係る安全フレーム２５０には、この構成に加え、安全フレームの送信元であるマスタを識別する識別子２５１３が設定される。
スレーブ２００は、バッファを備え、バッファに制御通信に用いる制御通信情報を記憶する。識別子判定部２２５は、機能安全通信（制御通信）により受信する安全フレーム２５０（制御データ）であって、送信元が制御系マスタ１００ａと待機系マスタ１００ｂとのいずれであるかを識別する識別子２５１３を含む安全フレーム２５０を受信する。識別子判定部２２５は、受信した安全フレーム２５０に含まれる識別子２５１３に基づいて、制御通信情報を更新する情報更新部の一例である。
【００７７】
図１７は、本実施の形態に係る系切り替えシステム５００における識別子判定処理の動作を示すフローチャートである。
識別子判定部２２５は、制御系マスタ１００ａとスレーブ２００との間の安全コネクションが確立され、機能安全通信が開始されてから起動する。識別子判定部２２５の動作概要について、図１７を用いて説明する。識別子判定部２２５は、以下の動作を繰り返し実行する。
【００７８】
Ｓ２００において、識別子判定部２２５は、送付されてきた安全フレーム２５１の識別子２５１３が、制御系マスタ１００ａを示しているか、待機系マスタ１００ｂを示しているかを処理装置により判定する。
Ｓ２００において、識別子２５１３が制御系マスタ１００ａであると判定された場合、Ｓ２０１に進む。
Ｓ２００において、識別子２５１３が待機系マスタ１００ｂであると判定された場合、Ｓ２０３に進む。
【００７９】
＜識別子２５１３が制御系マスタ１００ａの場合＞
Ｓ２０１において、識別子判定部２２５は、履歴検査で記録していた前回識別子と、送付されてきた安全フレーム２５１の識別子２５１３とを処理装置により比較する。前回識別子の初期値は制御系マスタ１００ａとする。
前回識別子が待機系マスタ１００ｂの場合は、マスタの系切り替えが終わっているにも関わらず、制御系マスタから遅延したデータを受信したことを意味する。したがって、Ｓ２０２において、識別子判定部２２５は、送付されてきた安全フレーム２５１の安全データ２５１２を削除する。
前回識別子が制御系マスタ１００ａの場合は、Ｓ２０５において、送付されてきた安全フレーム２５１の安全データ２５１２をバッファに格納し、Ｓ２０６に進む。
Ｓ２０６において、識別子判定部２２５は、前回識別子に設定されている制御系マスタ１００ａの識別子を保持する。または、識別子判定部２２５は、前回識別子に制御系マスタ１００ａの識別子を上書きしてもよい。
【００８０】
＜識別子２５１３が待機系マスタ１００ｂの場合＞
Ｓ２０３において、識別子判定部２２５は、履歴検査で記録していた前回識別子と、送付されてきた安全フレーム２５１の識別子２５１３とを処理装置により比較する。
前回識別子が制御系マスタ１００ａの場合は、Ｓ２０４において、識別子判定部２２５は、バッファのデータを一旦削除してから、送付されてきた安全フレーム２５１の安全データ２５１２をバッファに格納する（Ｓ２０５）。その後、識別子判定部２２５は、前回識別子を待機系マスタ１００ｂの識別子に変更する（Ｓ２０６）。
前回識別子が待機系マスタ１００ｂの場合は、Ｓ２０５に進み、送付されてきた安全フレーム２５１の安全データ２５１２をバッファに格納する。Ｓ２０６において、識別子判定部２２５は、前回識別子に設定されている待機系マスタ１００ｂの識別子を保持する。または、識別子判定部２２５は、前回識別子に待機系マスタ１００ｂの識別子を上書きしてもよい。
【００８１】
このように、本実施の形態に係る系切り替えシステム５００では、安全フレーム２５０に、マスタによって付与される識別子を導入する。スレーブ２００が待機系マスタ１００ｂから送付された識別子を受信すると、バッファ内に残る系切り替え前のデータを削除してデータを受信する。したがって、系切り替え時にスレーブ２００に系切り替え前の安全データ２５１２が残ってしまうことによる誤作動を防ぐことができる。
【００８２】
スレーブが安全データのみを受信する方式の場合、スレーブ内に制御系マスタのデータが残っている場合や、待機系マスタのデータを受信した後に制御系マスタの遅延したデータを受信した場合、マスタの系切り替えが終わっているにも関わらず、制御系マスタから受信したデータを実行してしまう虞がある。
【００８３】
本実施の形態に係る系切り替えシステム５００によれば、安全データに識別子を付加し、スレーブが制御系マスタの識別子を受信した後、待機系マスタの識別子を受信する際に、スレーブ内のデータを完全に削除してから受信した安全データを実行することができる。このような、識別子とスレーブの動作によって、系切り替え後に系切り替え前の制御系マスタから受信されたデータの実行を防止でき、システムの誤動作防止を実現できる。
【００８４】
上記実施の形態１〜３において説明したマスタ１００のブロック構成、スレーブ２００のブロック構成は、実施の形態１〜３の構成に限られるわけではない。これらの機能ブロックを、他のどのような組み合わせでマスタ１００、スレーブ２００を構成しても構わない。
【００８５】
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、２つ以上を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、１つを部分的に実施しても構わない。あるいは、これらの実施の形態のうち、２つ以上を部分的に組み合わせて実施しても構わない。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００８６】
１００  マスタ、１００ａ  制御系マスタ、１００ｂ  待機系マスタ、１１０  制御通信制御部、１２０  安全通信制御部、１２１  送信先設定部、１２２  初期化処理部、１２３  安全データ処理部、１２４  受信元判定部、１３０  生存情報フレーム検出部、１３１  生存情報フレーム、２００  スレーブ、２１０  制御通信制御部、２２０  安全通信制御部、２２１  送信先設定部、２２２  初期化処理部、２２３  安全データ処理部、２２４  受信元判定部、２２５  識別子判定部、２５０  安全フレーム、５００  系切り替えシステム、９０１  演算装置、９０２  外部記憶装置、９０３  主記憶装置、９０４  通信装置、９０５  入出力装置、１２２１  シーケンス分割部、１２２２  第１準備部、１２２３  第２準備部、１３１１  宛先スレーブ局、１３１２  送信時刻、２５１１  宛先スレーブ局、２５１２  安全データ、２５１３  識別子、２５１４  ＣＲＣ。
【図１】
0005921782.tif 000002
【図２】
0005921782.tif 000003
【図３】
0005921782.tif 000004
【図４】
0005921782.tif 000005
【図５】
0005921782.tif 000006
【図６】
0005921782.tif 000007
【図７】
0005921782.tif 000008
【図８】
0005921782.tif 000009
【図９】
0005921782.tif 000010
【図１０】
0005921782.tif 000011
【図１１】
0005921782.tif 000012
【図１２】
0005921782.tif 000013
【図１３】
0005921782.tif 000014
【図１４】
0005921782.tif 000015
【図１５】
0005921782.tif 000016
【図１６】
0005921782.tif 000017
【図１７】
0005921782.tif 000018