(57)【要約】【課題】手間をかけることなくゲートウエイで動作するプログラムが更新できるようにする。【解決手段】更新データ受信部１０３が、更新用プログラムデータを受け付け、第１更新部１０４が、更新用プログラムデータにより待機状態の第２モジュール１０２のプログラムを更新し、第１同期部１０５が、第１モジュール１０１と第２モジュール１０２との間でデータベースを同期し、切替部１０６が、第２モジュール１０２を稼動状態として第１モジュール１０１を待機状態とし、第２更新部１０７が、待機状態となった第１モジュール１０１のプログラムを更新し、第２同期部１０８が、稼動状態の第２モジュール１０２と待機状態の第１モジュール１０１との間でデータベースを同期する。【選択図】  図１
2019091381.tif 000002
【特許請求の範囲】
【請求項１】
第１モジュールと第２モジュールとを冗長して備えるゲートウエイであって、
更新用プログラムデータを受け付けるように構成された更新データ受信部と、
前記更新データ受信部が受け付けた前記更新用プログラムデータにより待機している前記第２モジュールのプログラムを更新するように構成された第１更新部と、
前記第１更新部により前記第２モジュールのプログラムを更新すると、稼動している前記第１モジュールと前記第２モジュールとの間でデータベースを同期するように構成された第１同期部と、
前記第１同期部が前記データベースの同期をした後で、前記第２モジュールを稼動状態として前記第１モジュールを待機状態とする切り替えを行うように構成された切替部と、
前記切替部が切り替えを実施した後で、前記第１モジュールのプログラムを更新するように構成された第２更新部と、
前記第２更新部により前記第１モジュールのプログラムを更新すると、前記第２モジュールと前記第１モジュールとの間で前記データベースを同期するように構成された第２同期部と
を備えることを特徴とするゲートウエイ。
【請求項２】
請求項１記載のゲートウエイにおいて、
自ノードより上位側の上位ノードよりネットワークを介して更新コマンドを受け付けるように構成された更新指示受付部と、
前記更新指示受付部が、前記更新コマンドを受け付けると、前記更新コマンドを受け付けた旨の返信を前記上位ノードに送信するように構成された返信部と、
前記第２同期部が、前記データベースの同期をした後で、前記ネットワークに接続している自ノードより下位側の下位ノードに対して前記更新コマンドを送信するように構成された更新指示送信部と、
前記更新指示送信部から前記更新コマンドを送信した後で、前記下位ノードより前記更新コマンドを受信した旨の返信を受け付けると、前記更新用プログラムデータを前記下位ノードに対して送信するように構成された更新データ送信部と
を更に備え、
前記更新データ受信部は、前記更新指示受付部が前記更新コマンドを受け付けた後で前記更新用プログラムデータを受け付けることを特徴とするゲートウエイ。
【請求項３】
請求項１記載のゲートウエイにおいて、
不揮発性記憶媒体に記憶されている前記更新用プログラムデータを読み出すように構成された読出部を更に備え、
前記更新データ受信部は、前記読出部が読み出した前記更新用プログラムデータを受け付けることを特徴とするゲートウエイ。
【請求項４】
第１モジュールと第２モジュールとを冗長して備えるゲートウエイのプログラム更新方法であって、
更新用プログラムデータを受け付ける第１ステップと、
前記第１ステップで受け付けた前記更新用プログラムデータにより待機している前記第２モジュールのプログラムを更新する第２ステップと、
前記第２ステップで前記第２モジュールのプログラムを更新すると、稼動している前記第１モジュールと前記第２モジュールとの間でデータベースを同期する第３ステップと、
前記第３ステップで前記データベースの同期をした後で、前記第２モジュールを稼動状態として前記第１モジュールを待機状態とする切り替えを行う第４ステップと、
前記第４ステップで切り替えを実施した後で、前記第１モジュールのプログラムを更新する第５ステップと、
前記第５ステップで前記第１モジュールのプログラムが更新されると、前記第２モジュールと前記第１モジュールとの間で前記データベースを同期する第６ステップと
を備えることを特徴とするプログラム更新方法。
【請求項５】
請求項４記載のプログラム更新方法において、
自ノードより上位側の上位ノードよりネットワークを介して更新コマンドを受け付ける第７ステップと、
前記第７ステップで、前記更新コマンドを受け付けると、前記更新コマンドを受け付けた旨の返信を前記上位ノードに送信する第８ステップと、
前記第６ステップで、前記データベースの同期をした後で、前記ネットワークに接続している自ノードより下位側の下位ノードに対して前記更新コマンドを送信する第９ステップと、
前記第９ステップで前記更新コマンドを送信した後で、前記下位ノードより前記更新コマンドを受信した旨の返信を受け付けると、前記更新用プログラムデータを前記下位ノードに対して送信する第１０ステップと
を更に備え、
前記第１ステップでは、前記第７ステップで前記更新コマンドを受け付けた後で前記更新用プログラムデータを受け付けることを特徴とするプログラム更新方法。
【請求項６】
請求項４記載のプログラム更新方法において、
不揮発性記憶媒体に記憶されている前記更新用プログラムデータを読み出す第１１ステップを更に備え、
前記第１ステップでは、前記第１１ステップで読み出した前記更新用プログラムデータを受け付けることを特徴とするプログラム更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１モジュールと第２モジュールとを冗長して備えてプログラムを更新するゲートウエイおよびプログラム更新方法に関する。
【背景技術】
【０００２】
従来、プラントなどのプロセス制御に用いるプロセス制御システムにおいて、高信頼性を要求される場合には、冗長構造をもつ構成が用いられている。システムを冗長させることで、より安定した運用を行える。このような冗長構造をもつネットワークに接続するプロセス制御システムなどのゲートウエイでは、例えば、第１モジュールと第２モジュールとを備え、通常では第１モジュールを稼動状態として動作し、第１モジュールに異常が発生すると待機中の第２モジュールに切り替えるようにしている（特許文献１，特許文献２参照）。
【０００３】
これまで、上述したようなゲートウエイで動作するゲートウエイプログラムを更新する場合、まず、待機状態の第２モジュールで動作するプログラムを停止して更新し、モジュールを再起動して第１モジュールとデータを同期させる。次に、稼動状態と待機状態との切り替えを行い、待機状態になった第１モジュールのプログラムを更新して再起動し、データを同期させる。この後、再度、稼動状態と待機状態との切り替えを行うようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２２７５９７号公報
【特許文献２】特開２０１２−２０８７０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来、上述した更新を手動で実施していたため、制御システムのネットワーク上に存在する複数のゲートウエイの全てについて更新を適用する場合には、１台ずつ上記の手順に従い実施していたため、作業に時間がかかり、また作業ミスも発生する可能性があった。
【０００６】
本発明は、以上のような問題点を解消するためになされたものであり、手間をかけることなくゲートウエイで動作するプログラムが更新できるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るゲートウエイは、第１モジュールと第２モジュールとを冗長して備えるゲートウエイであって、更新用プログラムデータを受け付けるように構成された更新データ受信部と、更新データ受信部が受け付けた更新用プログラムデータにより待機している第２モジュールのプログラムを更新するように構成された第１更新部と、第１更新部により第２モジュールのプログラムを更新すると、稼動している第１モジュールと第２モジュールとの間でデータベースを同期するように構成された第１同期部と、第１同期部がデータベースの同期をした後で、第２モジュールを稼動状態として第１モジュールを待機状態とする切り替えを行うように構成された切替部と、切替部が切り替えを実施した後で、第１モジュールのプログラムを更新するように構成された第２更新部と、第２更新部により第１モジュールのプログラムを更新すると、第２モジュールと第１モジュールとの間でデータベースを同期するように構成された第２同期部とを備える。
【０００８】
上記ゲートウエイにおいて、自ノードより上位側の上位ノードよりネットワークを介して更新コマンドを受け付けるように構成された更新指示受付部と、更新指示受付部が、更新コマンドを受け付けると、更新コマンドを受け付けた旨の返信を上位ノードに送信するように構成された返信部と、第２同期部が、データベースの同期をした後で、ネットワークに接続している自ノードより下位側の下位ノードに対して更新コマンドを送信するように構成された更新指示送信部と、更新指示送信部から更新コマンドを送信した後で、下位ノードより更新コマンドを受信した旨の返信を受け付けると、更新用プログラムデータを下位ノードに対して送信するように構成された更新データ送信部とを更に備え、更新データ受信部は、更新指示受付部が更新コマンドを受け付けた後で更新用プログラムデータを受け付ける。
【０００９】
上記ゲートウエイにおいて、不揮発性記憶媒体に記憶されている更新用プログラムデータを読み出すように構成された読出部を更に備え、更新データ受信部は、読出部が読み出した更新用プログラムデータを受け付ける。
【００１０】
本発明に係るプログラム更新方法は、第１モジュールと第２モジュールとを冗長して備えるゲートウエイのプログラム更新方法であって、更新用プログラムデータを受け付ける第１ステップと、第１ステップで受け付けた更新用プログラムデータにより待機している第２モジュールのプログラムを更新する第２ステップと、第２ステップで第２モジュールのプログラムを更新すると、稼動している第１モジュールと第２モジュールとの間でデータベースを同期する第３ステップと、第３ステップでデータベースの同期をした後で、第２モジュールを稼動状態として第１モジュールを待機状態とする切り替えを行う第４ステップと、第４ステップで切り替えを実施した後で、第１モジュールのプログラムを更新する第５ステップと、第５ステップで第１モジュールのプログラムが更新されると、第２モジュールと第１モジュールとの間でデータベースを同期する第６ステップとを備える。
【００１１】
上記プログラム更新方法において、自ノードより上位側の上位ノードよりネットワークを介して更新コマンドを受け付ける第７ステップと、第７ステップで、更新コマンドを受け付けると、更新コマンドを受け付けた旨の返信を上位ノードに送信する第８ステップと、第６ステップで、データベースの同期をした後で、ネットワークに接続している自ノードより下位側の下位ノードに対して更新コマンドを送信する第９ステップと、第９ステップで更新コマンドを送信した後で、下位ノードより更新コマンドを受信した旨の返信を受け付けると、更新用プログラムデータを下位ノードに対して送信する第１０ステップとを更に備え、第１ステップでは、第７ステップで更新コマンドを受け付けた後で更新用プログラムデータを受け付ける。
【００１２】
上記プログラム更新方法において、不揮発性記憶媒体に記憶されている更新用プログラムデータを読み出す第１１ステップを更に備え、第１ステップでは、第１１ステップで読み出した更新用プログラムデータを受け付ける。
【発明の効果】
【００１３】
以上説明したことにより、本発明によれば、手間をかけることなくゲートウエイで動作するプログラムが更新できるという優れた効果が得られるようになる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施の形態１におけるゲートウエイの構成を示す構成図である。
【図２】図２は、本発明の実施の形態１におけるプログラム更新方法を説明するためのフローチャートである。
【図３】図３は、本発明の実施の形態２におけるゲートウエイの構成を示す構成図である。
【図４】図４は、本発明の実施の形態２におけるプログラム更新方法を説明するためのフローチャートである。
【図５】図５は、本発明に係るゲートウエイのハードウエア構成を示す構成図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について説明する。
【００１６】
［実施の形態１］
はじめに、本発明の実施の形態１におけるゲートウエイ１００について図１を参照して説明する。ゲートウエイ１００は、第１モジュール１０１と第２モジュール１０２とを冗長して備えている。また、ゲートウエイ１００は、更新データ受信部１０３、第１更新部１０４、第１同期部１０５、切替部１０６、第２更新部１０７、第２同期部１０８を備える。
【００１７】
更新データ受信部１０３は、更新用プログラムデータを受け付ける。第１更新部１０４は、更新データ受信部１０３が受け付けた更新用プログラムデータにより、待機状態の第２モジュール１０２のプログラムを更新する。第１同期部１０５は、第１更新部１０４により第２モジュール１０２のプログラムを更新すると、稼動状態の第１モジュール１０１と第２モジュール１０２との間でデータベースを同期する。
【００１８】
切替部１０６は、第１同期部１０５がデータベースの同期をした後で、第２モジュール１０２を稼動状態として第１モジュール１０１を待機状態とする切り替えを行う。第２更新部１０７は、切替部１０６が切り替えを実施した後で、切り替えられることで待機状態となった第１モジュール１０１のプログラムを更新する。第２同期部１０８は、第２更新部１０７により待機状態の第１モジュール１０１のプログラムが更新されると、稼動状態の第２モジュール１０２と待機状態の第１モジュール１０１との間でデータベースを同期する。
【００１９】
また、ゲートウエイ１００は、更新指示受付部１０９、返信部１１０、更新指示送信部１１１、更新データ送信部１１２を備える。
【００２０】
更新指示受付部１０９は、自ノード（ゲートウエイ１００）より上位側の上位ノード１３１よりネットワーク１２１を介して更新コマンドを受け付ける。返信部１１０は、更新指示受付部１０９が、更新コマンドを受け付けると、更新コマンドを受け付けた旨の返信を上位ノード１３１に送信する。
【００２１】
更新指示送信部１１１は、第２同期部１０８が、データベースの同期をした後で、ネットワーク１２１に接続している自ノードより下位側の下位ノード１３２に対して更新コマンドを送信する。更新データ送信部１１２は、更新指示送信部１１１から更新コマンドを送信した後で、下位ノード１３２より更新コマンドを受信した旨の返信を受け付けると、更新用プログラムデータを下位ノード１３２に対して送信する。ここで、更新データ受信部１０３は、更新指示受付部１０９が更新コマンドを受け付けた後で更新用プログラムデータを受け付ける。
【００２２】
なお、上位ノード１３１、下位ノード１３２は、ゲートウエイ１００と同様の構成とされている。
【００２３】
次に、実施の形態１におけるゲートウエイ１００におけるプログラム更新方法について、図２のフローチャートを用いて説明する。
【００２４】
まず、ステップＳ１０１で、更新指示受付部１０９が、自ノードより上位側の上位ノード１３１よりネットワーク１２１を介して更新コマンドが送出されたか否かを検出する（第７ステップ）。更新指示受付部１０９で更新コマンドが受け付けられると（ステップＳ１０１のｙｅｓ）、ステップＳ１０２で、返信部１１０が、更新コマンドを受け付けた旨の返信を上位ノード１３１に送信する（第８ステップ）。
【００２５】
次に、ステップＳ１０３で、更新データ受信部１０３が、上位ノード１３１より送信された更新用プログラムデータを受け付ける（第１ステップ）。次に、ステップＳ１０４で、第１更新部１０４が、更新データ受信部１０３が受け付けた更新用プログラムデータにより、待機状態の第２モジュール１０２のプログラムを更新する（第２ステップ）。次いで、ステップＳ１０５で、第１同期部１０５が、稼動状態の第１モジュール１０１と待機状態の第２モジュール１０２との間でデータベースを同期する（第３ステップ）。
【００２６】
次に、ステップＳ１０６で、切替部１０６が、第２モジュール１０２を稼動状態とて第１モジュール１０１を待機状態とする切り替えを行う（第４ステップ）。次に、ステップＳ１０７で、第２更新部１０７が、切り替えられることで待機状態となった第１モジュール１０１のプログラムを更新する（第５ステップ）。次に、ステップＳ１０８で、第２同期部１０８が、稼動状態の第２モジュール１０２と待機状態の第１モジュール１０１との間でデータベースを同期する（第６ステップ）。
【００２７】
次に、ステップＳ１０９で、切替部１０６が、第１モジュール１０１を稼動状態として第２モジュール１０２を待機状態とする切り替えを行う。次に、ステップＳ１１０で、更新指示送信部１１１が、ネットワーク１２１に接続している自ノードより下位側の下位ノード１３２に対して更新コマンドを送信する（第９ステップ）。
【００２８】
次に、ステップＳ１１１で、更新データ送信部１１２が、下位ノード１３２より更新コマンドを受信した旨の返信が送信されたか否かを検出する。返信が検出されると（ステップＳ１１１のｙｅｓ）、ステップＳ１１２で、更新データ送信部１１２は、更新用プログラムデータを下位ノード１３２に対して送信する（第１０ステップ）。
【００２９】
以上に説明したように、実施の形態１によれば、上位ノードより受け付けた更新コマンドを契機とし、上位ノードより受け付けた更新用プログラムデータで自ノードの更新を実施し、更新を実施した後、下位ノードに更新コマンドを送信し、また、更新用プログラムデータを送信するようにしたので、手間をかけることなく、複数のゲートウエイに対し、動作するプログラムが更新できるようになる。実施の形態１によれば、例えば、作業者が、最上位のノード１台を更新すれば、これより下位の全てのノードが自動的に更新されていくので、作業ミスや作業者の負担を軽減できるようになる。
【００３０】
［実施の形態２］
次に、本発明の実施の形態２におけるゲートウエイ２００について、図３を参照して説明する。ゲートウエイ２００は、第１モジュール１０１と第２モジュール１０２とを冗長して備えている。また、ゲートウエイ２００は、更新データ受信部１０３、第１更新部１０４、第１同期部１０５、切替部１０６、第２更新部１０７、第２同期部１０８を備える。
【００３１】
更新データ受信部１０３は、更新用プログラムデータを受け付ける。第１更新部１０４は、更新データ受信部１０３が受け付けた更新用プログラムデータにより、待機状態の第２モジュール１０２のプログラムを更新する。第１同期部１０５は、第１更新部１０４により第２モジュール１０２のプログラムを更新すると、稼動状態の第１モジュール１０１と第２モジュール１０２との間でデータベースを同期する。
【００３２】
切替部１０６は、第１同期部１０５がデータベースの同期をした後で、第２モジュール１０２を稼動状態として第１モジュール１０１を待機状態とする切り替えを行う。第２更新部１０７は、切替部１０６が切り替えを実施した後で、切り替えられることで待機状態となった第１モジュール１０１のプログラムを更新する。第２同期部１０８は、第２更新部１０７により待機状態の第１モジュール１０１のプログラムを更新すると、稼動状態の第２モジュール１０２と待機状態の第１モジュール１０１との間でデータベースを同期する。
【００３３】
また、ゲートウエイ２００は、データ検出部２０１および読出部２０２を備える。データ検出部２０１は、ゲートウエイ２００に接続された不揮発性記憶媒体に、対応する更新用プログラムデータが記憶されているか否かを検出する。ゲートウエイ２００は、例えば図示しないカードスロットを備え、カード状の不揮発性記憶媒体が挿抜可能とされ、不揮発性記憶媒体がカードスロットに挿入されると、不揮発性記憶媒体に記憶されているデータを自動的に読み出すように構成されている。
【００３４】
読出部２０２は、不揮発性記憶媒体に記憶されている更新用プログラムデータを読み出す。データ検出部２０１が、不揮発性記憶媒体に更新用プログラムデータが記憶されていることを検出すると、読出部２０２が、この更新用プログラムデータを読み出す。更新データ受信部１０３は、読出部２０２が読み出した更新用プログラムデータを受け付ける。
【００３５】
次に、実施の形態２におけるゲートウエイ２００におけるプログラム更新方法について、図４のフローチャートを用いて説明する。
【００３６】
まず、ステップＳ２０１で、データ検出部２０１は、ゲートウエイ２００に接続された不揮発性記憶媒体に、対応する更新用プログラムデータが記憶されているか否かを検出する。データ検出部２０１が、不揮発性記憶媒体に更新用プログラムデータが記憶されていることを検出すると（ステップＳ２０１のｙｅｓ）、ステップＳ２０２で、読出部２０２が、不揮発性記憶媒体に記憶されている更新用プログラムデータを読み出す（第１１ステップ）。
【００３７】
次に、ステップＳ２０３で、更新データ受信部１０３が、不揮発性記憶媒体より読み出された更新用プログラムデータを受け付ける（第１ステップ）、ステップＳ２０４で、第１更新部１０４が、更新データ受信部１０３が受け付けた更新用プログラムデータにより、待機状態の第２モジュール１０２のプログラムを更新する（第２ステップ）。次いで、ステップＳ２０５で、第１同期部１０５が、稼動状態の第１モジュール１０１と待機状態の第２モジュール１０２との間でデータベースを同期する（第３ステップ）。
【００３８】
次に、ステップＳ２０６で、切替部１０６が、第２モジュール１０２を稼動状態とて第１モジュール１０１を待機状態とする切り替えを行う（第４ステップ）。次に、ステップＳ２０７で、第２更新部１０７が、切り替えられることで待機状態となった第１モジュール１０１のプログラムを更新する（第５ステップ）。次に、ステップＳ２０８で、第２同期部１０８が、稼動状態の第２モジュール１０２と待機状態の第１モジュール１０１との間でデータベースを同期する（第６ステップ）最後に、ステップＳ２０９で、切替部１０６が、第１モジュール１０１を稼動状態として第２モジュール１０２を待機状態とする切り替えを行う。
【００３９】
以上に説明したように、実施の形態２によれば、不揮発性記憶媒体に更新用プログラムデータが記憶されていることの検出を契機とし、不揮発性記憶媒体により読み出された更新用プログラムデータで自ノードの更新を実施するようにしたので、手間をかけることなく、ゲートウエイに対して動作するプログラムが更新できるようになる。また、不揮発性記憶媒体を、更新対象の複数のゲートウエイの各々に接続すれば、全てのゲートウエイに対して同一の状態でプログラムの更新ができるので、作業ミスや作業者の負担を軽減できるようになる。
【００４０】
なお、上述した実施の形態におけるゲートウエイを構成する各制御装置は、図５に示すように、ＣＰＵ（Central Processing Unit；中央演算処理装置）３０１と主記憶装置３０２と外部記憶装置３０３とネットワーク接続装置３０４となどを備えたコンピュータ機器であり、主記憶装置に展開されたプログラムによりＣＰＵ３０１が動作することで、上述した各機能が実現される。ネットワーク接続装置３０４は、ネットワーク３０５に接続する。また、各機能は、複数のコンピュータ機器に分散させるようにしてもよい。
【００４１】
以上に説明したように、本発明によれば、手間をかけることなくゲートウエイで動作するプログラムが更新できるようになる。
【００４２】
なお、本発明は以上に説明した実施の形態に限定されるものではなく、本発明の技術的思想内で、当分野において通常の知識を有する者により、多くの変形および組み合わせが実施可能であることは明白である。
【符号の説明】
【００４３】
１００…ゲートウエイ、１０１…第１モジュール、１０２…第２モジュール、１０３…更新データ受信部、１０４…第１更新部、１０５…第１同期部、１０６…切替部、１０７…第２更新部、１０８…第２同期部、１０９…更新指示受付部、１１０…返信部、１１１…更新指示送信部、１１２…更新データ送信部、１２１…ネットワーク、１３１…上位ノード、１３２…下位ノード。
【図１】
2019091381.tif 000003
【図２】
2019091381.tif 000004
【図３】
2019091381.tif 000005
【図４】
2019091381.tif 000006
【図５】
2019091381.tif 000007