(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024167975
(43)【公開日】2024-12-05
(54)【発明の名称】ソフトウェア更新システム、ソフトウェア更新方法、及び、ソフトウェア更新プログラム
(51)【国際特許分類】
G06F 8/65 20180101AFI20241128BHJP
G05B 19/05 20060101ALI20241128BHJP
【FI】
G06F8/65
G05B19/05 D
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2023084324
(22)【出願日】2023-05-23
(71)【出願人】
【識別番号】000006208
【氏名又は名称】三菱重工業株式会社
(74)【代理人】
【識別番号】110000785
【氏名又は名称】SSIP弁理士法人
(72)【発明者】
【氏名】則松 恭彰
【テーマコード(参考)】
5B376
5H220
【Fターム(参考)】
5B376CA27
5B376CA55
5B376CA56
5B376FA11
5H220AA01
5H220BB09
5H220CC03
5H220CX05
5H220JJ02
5H220JJ26
5H220LL03
5H220MM08
(57)【要約】
【課題】プラント制御装置の稼働率を低下させることなく、品質のよいソフトウェアの更新作業を自動的に実施する。
【解決手段】本願は、プラント制御装置が備える多重化された第1モジュール及び第2モジュールに含まれる不揮発性メモリに記憶されたソフトウェアを更新するためのソフトウェア更新システムに関する。本システムは、第1モジュール及び第2モジュールを、稼働モジュール又は非稼働モジュールのいずれかに分類し、更新情報に基づいて非稼働モジュールのソフトウェアの更新を実行する。ソフトウェアの更新後、稼働モジュールの状態を示す第1状態データと、ソフトウェアが更新された非稼働モジュールの状態を示す第2状態データとを比較することにより、異常の有無が判定される。異常が無いと判定された場合、稼働モジュールと非稼働モジュールとが互いに入れ替えられるように、第1モジュール及び第2モジュールの稼働状態が変更される。
【選択図】
図1
【特許請求の範囲】
【請求項1】
プラント制御装置が備える多重化された第1モジュール及び第2モジュールに含まれる不揮発性メモリに記憶されたソフトウェアを更新するためのソフトウェア更新システムであって、
前記ソフトウェアの更新情報を送信するための更新情報送信部と、
前記第1モジュール及び前記第2モジュールを、稼働モジュール又は非稼働モジュールのいずれかに分類するためのモジュール分類部と、
前記更新情報に基づいて、前記非稼働モジュールの前記ソフトウェアの更新を実行するための更新実行部と、
前記稼働モジュールの状態を示す第1状態データと、前記ソフトウェアが更新された前記非稼働モジュールの状態を示す第2状態データとを比較することにより、異常の有無を判定するための異常判定部と、
前記異常判定部によって前記異常が無いと判定された場合に、前記稼働モジュールと前記非稼働モジュールとを互いに入れ替えるように、前記第1モジュール及び前記第2モジュールの稼働状態を変更するための稼働状態変更部と、
を備える、ソフトウェア更新システム。
【請求項2】
前記更新実行部は、前記稼働状態変更部によって前記稼働モジュールと前記非稼働モジュールとが互いに入れ替えられた後、前記非稼働モジュールに対して前記ソフトウェアの更新を再び実行する、請求項1に記載のソフトウェア更新システム。
【請求項3】
前記第1状態データは、前記稼働モジュールから出力される実出力データを含み、
前記第2状態データは、前記非稼働モジュールで仮想的に算出され、前記実出力データに対応する仮想出力データを含む、請求項1又は2に記載のソフトウェア更新システム。
【請求項4】
前記第1状態データは、前記稼働モジュールにおける自己診断データを含み、
前記第2状態データは、前記非稼働モジュールにおける自己診断データを含む、請求項1又は2に記載のソフトウェア更新システム。
【請求項5】
前記プラント制御装置は、
プラントの構成機器との間でアナログ信号を送受信可能な複数のIOモジュールと、
前記複数のIOモジュール装置との間でデジタル信号を送受信可能な複数のIOアダプタモジュールと、
前記複数のIOアダプタモジュールを制御するためのコントローラと、
を備える、請求項1又は2に記載のソフトウェア更新システム。
【請求項6】
前記複数のIOモジュールは、前記第1モジュール及び前記第2モジュールを含む、請求項5に記載のソフトウェア更新システム。
【請求項7】
前記複数のIOアダプタモジュールは、前記第1モジュール及び前記第2モジュールを含む、請求項5に記載のソフトウェア更新システム。
【請求項8】
前記コントローラは、前記第1モジュール及び前記第2モジュールを含む複数のコントローラモジュールを有する、請求項5に記載のソフトウェア更新システム。
【請求項9】
前記第1モジュール及び前記第2モジュールは、多重化された通信ネットワークを介して、前記更新情報を取得可能に構成される、請求項1又は2に記載のソフトウェア更新システム。
【請求項10】
前記ソフトウェアはファームウェアである、請求項1又は2に記載のソフトウェア更新システム。
【請求項11】
前記プラント制御装置の操作及び制御を行うための端末と一体的に構成される、請求項1又は2に記載のソフトウェア更新システム。
【請求項12】
プラント制御装置が備える多重化された第1モジュール及び第2モジュールに含まれる不揮発性メモリに記憶されたソフトウェアを更新するためのソフトウェア更新方法であって、
前記ソフトウェアの更新情報を送信する工程と、
前記第1モジュール及び前記第2モジュールを、稼働モジュール又は非稼働モジュールのいずれかに分類する工程と、
前記更新情報に基づいて、前記非稼働モジュールの前記ソフトウェアの更新を実行する工程と、
前記稼働モジュールの状態を示す第1状態データと、前記ソフトウェアが更新された前記非稼働モジュールの状態を示す第2状態データとを比較することにより、異常の有無を判定する工程と、
前記異常が無いと判定された場合に、前記稼働モジュールと前記非稼働モジュールとを互いに入れ替えるように、前記第1モジュール及び前記第2モジュールの稼働状態を変更する工程と、
を備える、ソフトウェア更新方法。
【請求項13】
プラント制御装置が備える多重化された第1モジュール及び第2モジュールに含まれる不揮発性メモリに記憶されたソフトウェアを更新するためのソフトウェア更新プログラムであって、
コンピュータ装置に、
前記ソフトウェアの更新情報を送信する工程と、
前記第1モジュール及び前記第2モジュールを、稼働モジュール又は非稼働モジュールのいずれかに分類する工程と、
前記更新情報に基づいて、前記非稼働モジュールの前記ソフトウェアの更新を実行する工程と、
前記稼働モジュールの状態を示す第1状態データと、前記ソフトウェアが更新された前記非稼働モジュールの状態を示す第2状態データとを比較することにより、異常の有無を判定する工程と、
前記異常が無いと判定された場合に、前記稼働モジュールと前記非稼働モジュールとを互いに入れ替えるように、前記第1モジュール及び前記第2モジュールの稼働状態を変更する工程と、
を実行可能な、ソフトウェア更新プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プラント制御装置の構成モジュールが備える不揮発性メモリに記憶されたソフトウェアを更新可能なソフトウェア更新システム、ソフトウェア更新方法、及び、ソフトウェア更新プログラムに関する。
【背景技術】
【0002】
例えば火力発電プラントのようなプラント設備では、多数の構成機器からなるプラントの制御・監視等、統括的に制御するためのプラント制御装置が用いられる。プラント制御装置には、制御演算に必要なデータの入出力するためのIOモジュール、IOモジュールと各種デジタル信号を送受信するためのゲート装置、及び、ゲート装置を制御するためのコントローラ等が含まれる。これらのプラント制御装置の各構成は、不揮発性メモリに記憶されたファームウェア等のソフトウェアを起動時に読み込み、そのデータを基にして周辺機器を制御する。
【0003】
不揮発性メモリに記憶されるソフトウェアは、必要に応じて更新(アップデート)が必要である。従来、この種のソフトウェアの更新作業は、不揮発性メモリが搭載された機器がある現場に作業員が出向いて行う必要があった。特に、更新対象となる機器が複数ある場合、各機器の設置場所に作業員が移動しながら更新作業を行わなければならないため、多くの時間やコストがかかっていた。またソフトウェアの更新作業中は、更新対象の稼働を停止させなければならないため、プラント稼働率を低下させる要因にもなる。また作業員によるソフトウェアの更新作業は人手によって実施されるため、例えば、更新対象とするソフトウェアの取違い等、ヒューマンエラーが発生する可能性もある。
【0004】
このような課題を解消するための手段として、人手に頼ることなく、自動的にソフトウェアの更新作業を実施するためのシステムが提案されている。例えば特許文献1では、運用系と待機系とに二重化(多重化)されたモジュールを含むプラント制御装置において、運用系のモジュールを通常通り動作させながら、待機系のモジュールにインストールされたソフトウェアを更新することで、プラント稼働率を低下させることなく、自動的なソフトウェアの更新が可能とされている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記特許文献1では、運用系モジュールによってプラント制御を継続しながら、待機系モジュールについてソフトウェアの更新を行った後、運用系モジュールと待機系モジュールとを入れ替えることにより、当初運用系モジュールについてもソフトウェアの更新作業を行っている。しかしながら、この文献では、ソフトウェアの更新が正常に実施されたか否かを検証することなく、運用系モジュールと待機系モジュールとの切替が行われている。そのため、ソフトウェアの更新が正常に完了していなかった場合や、ソフトウェアの更新によって意図しないモジュールの入出力特性の変化があった場合には、プラントの運用に支障をきたしてしまうおそれがある。
【0007】
本開示の少なくとも一実施形態は上述の事情に鑑みなされたものであり、プラント制御装置の稼働率を低下させることなく、品質のよいソフトウェアの更新作業を自動的に実施可能なソフトウェア更新システム、ソフトウェア更新方法、及び、ソフトウェア更新プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本開示の少なくとも一実施形態に係るソフトウェア更新システムは、上記課題を解決するために、
プラント制御装置が備える多重化された第1モジュール及び第2モジュールに含まれる不揮発性メモリに記憶されたソフトウェアを更新するためのソフトウェア更新システムであって、
前記ソフトウェアの更新情報を送信するための更新情報送信部と、
前記第1モジュール及び前記第2モジュールを、稼働モジュール又は非稼働モジュールのいずれかに分類するためのモジュール分類部と、
前記更新情報に基づいて、前記非稼働モジュールの前記ソフトウェアの更新を実行するための更新実行部と、
前記稼働モジュールの状態を示す第1状態データと、前記ソフトウェアが更新された前記非稼働モジュールの状態を示す第2状態データとを比較することにより、異常の有無を判定するための異常判定部と、
前記異常判定部によって前記異常が無いと判定された場合に、前記稼働モジュールと前記非稼働モジュールとを互いに入れ替えるように、前記第1モジュール及び前記第2モジュールの稼働状態を変更するための稼働状態変更部と、
を備える。
【0009】
本開示の少なくとも一実施形態に係るソフトウェア更新方法は、上記課題を解決するために、
プラント制御装置が備える多重化された第1モジュール及び第2モジュールに含まれる不揮発性メモリに記憶されたソフトウェアを更新するためのソフトウェア更新方法であって、
前記ソフトウェアの更新情報を送信する工程と、
前記第1モジュール及び前記第2モジュールを、稼働モジュール又は非稼働モジュールのいずれかに分類する工程と、
前記更新情報に基づいて、前記非稼働モジュールの前記ソフトウェアの更新を実行する工程と、
前記稼働モジュールの状態を示す第1状態データと、前記ソフトウェアが更新された前記非稼働モジュールの状態を示す第2状態データとを比較することにより、異常の有無を判定する工程と、
前記異常が無いと判定された場合に、前記稼働モジュールと前記非稼働モジュールとを互いに入れ替えるように、前記第1モジュール及び前記第2モジュールの稼働状態を変更する工程と、
を備える。
【0010】
本開示の少なくとも一実施形態に係るソフトウェア更新プログラムは、上記課題を解決するために、
プラント制御装置が備える多重化された第1モジュール及び第2モジュールに含まれる不揮発性メモリに記憶されたソフトウェアを更新するためのソフトウェア更新プログラムであって、
コンピュータ装置に、
前記ソフトウェアの更新情報を送信する工程と、
前記第1モジュール及び前記第2モジュールを、稼働モジュール又は非稼働モジュールのいずれかに分類する工程と、
前記更新情報に基づいて、前記非稼働モジュールの前記ソフトウェアの更新を実行する工程と、
前記稼働モジュールの状態を示す第1状態データと、前記ソフトウェアが更新された前記非稼働モジュールの状態を示す第2状態データとを比較することにより、異常の有無を判定する工程と、
前記異常が無いと判定された場合に、前記稼働モジュールと前記非稼働モジュールとを互いに入れ替えるように、前記第1モジュール及び前記第2モジュールの稼働状態を変更する工程と、
を実行可能である。
【発明の効果】
【0011】
本開示の少なくとも一実施形態によれば、プラント制御装置の稼働率を低下させることなく、品質のよいソフトウェアの更新作業を自動的に実施可能なソフトウェア更新システム、ソフトウェア更新方法、及び、ソフトウェア更新プログラムを提供できる。
【図面の簡単な説明】
【0012】
【
図1】一実施形態に係るプラント制御装置の全体構成図である。
【
図2】一実施形態に係るソフトウェア更新システムのブロック構成図である。
【
図3】
図2の異常判定部における幾つかの判定基準の例である。
【
図4】一実施形態に係るソフトウェア更新方法を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、添付図面を参照して本開示の幾つかの実施形態について説明する。ただし、実施形態として記載されている又は図面に示されている構成部品の寸法、材質、形状、その相対的配置等は、本開示の範囲をこれに限定する趣旨ではなく、単なる説明例にすぎない。
【0014】
まず本開示の少なくとも一実施形態に係るソフトウェア更新システムによってソフトウェア更新が実施される対象であるプラント制御装置について説明する。
図1は一実施形態に係るプラント制御装置1の全体構成図である。プラント制御装置1はプラント設備を構成する要素を制御対象として広く含むことができるが、本実施形態では、発電プラント等のプラント設備を構成するガスタービン、蒸気タービン、ボイラー等の要素を制御対象とする場合を例示する。例えばプラント制御装置の制御対象は、例えば、ITS(Intelligent Transport Systems)、冷熱システム(大型冷凍機、空気調和機)、車両(鉄道、自動車、建設機械等)等であってもよい。
【0015】
プラント制御装置1は、プラント設備の各構成を制御対象とする組み込みシステムとして構成され、OPS(オペレータステーション)2と、EMS(エンジニアリングメンテナンスステーション)4と、ACS(アクセサリーステーション)6と、配信サーバ7と、コントローラ8と、IO機器10-1~10-n(nは2以上の自然数)とを備える。
【0016】
尚、組込みシステムであるプラント制御装置1を構築するこれらの各製品は、通信ネットワークを介して互いにデータ送受信可能に構成され、制御対象であるプラント設備の運用形態に合わせて、逐次、変更可能である。
【0017】
OPS2は、オペレータが、制御対象であるプラント設備の状態を把握し、プラント設備の各構成の制御(例えば弁の開閉制御等)を行うための装置である。EMS4は、プラント設備を運用する際に実行される制御プログラムを作成するとともに、当該制御プログラムをコントローラ8にインストールするための装置である。ACS6は、プラント制御装置1で取り扱われる各種データの保存・管理や、プリンタなどの周辺機器とのインターフェースとして機能するための装置である。
【0018】
配信サーバ7は、プラント制御装置1の各構成にインストールされているソフトウェアを更新するための更新情報を配信するためのサーバ端末である。更新情報は、ソフトウェアを更新するためのアップデートに関する情報を含む。更新対象となるソフトウェアは、制御プログラムであってもよいし、ファームウェアであってもよい。より具体的には後述するが、更新対象となるソフトウェアは、コントローラ8を構成する各コントローラモジュール8-1~8-mにインストールされる制御プログラムであってもよいし、IO機器10-1~10-nを構成するIOアダプタ12又はIOモジュール14にインストールされるファームウェアであってもよい。これらの更新情報の配信は、後述のソフトウェア更新システム100からの指令を配信サーバ7が受信するタイミングで実施される。
【0019】
コントローラ8は、プラント制御装置1の制御演算を行う中核機器であり、複数のコントローラモジュール8-1~8-m(mは2以上の自然数)を備える。コントローラモジュール8-1~8-mは、EMS4によってインストールされた制御プログラムに従って、弁、センサ等の入出力、状態を制御する。
【0020】
複数のコントローラモジュール8-1~8-mは、複数台並列に接続されることで多重化されている。各コントローラモジュール8-1~8-mにインストールされた制御プログラムは、後述のソフトウェア更新システムの更新対象となるソフトウェアの一例であってもよい。制御プログラムは、例えば、これらのコントローラモジュール8-1~8-mに搭載された不揮発性メモリに記憶される。
【0021】
尚、前述のOPS2、EMS4、ACS6及び配信サーバ7は、通信ネットワーク22を介してコントローラ8に接続される。通信ネットワーク22は、多重化されていてもよい。
【0022】
IO機器10-1~10-nは、上位のコントローラ8と、制御対象となる各機器との間における各種データの入出力を行うためのインターフェース機器であり、それぞれIOアダプタ12及びIOモジュール14を含んで構成される。
【0023】
IOアダプタ12はIOネットワークの通信中継装置であり、各IO機器10-1~10-nにそれぞれ設けられる。IOアダプタ12は、互いに多重化された第1IOアダプタモジュール12a及び第2IOアダプタモジュール12bを含む。第1IOアダプタモジュール12a及び第2IOアダプタモジュール12bには、その機能を発揮するために必要なファームウェアがインストールされる。これらのファームウェアは、後述のソフトウェア更新システムの更新対象となるソフトウェアの一例であってもよい。このファームウェアは、例えば、これらのIOアダプタモジュールに搭載された不揮発性メモリに記憶される。
【0024】
第1IOアダプタモジュール12aは、第1リングネットワーク16aを介して、コントローラ8と各種データを送受信可能に接続されるとともに、各IOモジュール14と各種データを送受信可能に構成される。第2IOアダプタモジュール12bは、第2リングネットワーク16bを介して、コントローラ8と各種データを送受信可能に接続されるとともに、各IOモジュール14と各種データを送受信可能に構成される。第1リングネットワーク16aは、IO機器10-1~10-nの各々が有する第1IOアダプタモジュール12aを直列的に接続する。第2リングネットワーク16bは、IO機器10-1~10-nの各々が有する第2IOアダプタモジュール12bを直列的に接続する。このように第1リングネットワーク16a及び第2リングネットワーク16bは、コントローラ8に対して並列に接続されることにより、多重化される。
【0025】
IOモジュール14は、制御対象であるプラント設備の各構成(例えば各種センサ、アクチュエータ等)との間で各種データを送受信するための構成である。各IO機器10-1~10nは、互いに多重化された第1IOモジュール14a及び第2IOモジュール14bを有する。第1IOモジュール14a及び第2IOモジュール14bには、その機能を発揮するために必要なファームウェアがインストールされる。これらのファームウェアは、後述のソフトウェア更新システムの更新対象となるソフトウェアの一例であってもよい。このファームウェアは、例えば、これらのIOモジュールに搭載された不揮発性メモリに記憶される。
【0026】
互いに多重化された第1IOモジュール14a及び第2IOモジュール14bは、各IO機器10-1~10nにおいて、各種データの送受信先である構成に対応して複数対設けられる。第1IOモジュール14a及び第2IOモジュール14bの各々は、前述の第1IOアダプタモジュール12a又は第2IOアダプタモジュール12bを介して、コントローラ8に接続される。すなわち、第1IOアダプタモジュール12aは第1IOモジュール14a及び第2IOモジュール14bにそれぞれアクセス可能であり、第2IOアダプタモジュール12bもまた第1IOモジュール14a及び第2IOモジュール14bにそれぞれアクセス可能である。
【0027】
続いて上記構成を有するプラント制御装置1と一体的に構成されるソフトウェア更新システム100について説明する。ソフトウェア更新システム100は、通信ネットワーク22を介して、OPS2、EMS4、ACS6、配信サーバ7、コントローラ8、及び、IO機器10-1~10-nと通信可能に接続される。
【0028】
図2は一実施形態に係るソフトウェア更新システム100のブロック構成図である。ソフトウェア更新システム100は、更新情報送信部102と、モジュール分類部104と、更新実行部106と、異常判定部108と、稼働状態変更部110とを備える。
【0029】
更新情報送信部102は、ソフトウェアの更新対象となるモジュールに対して更新情報を送信するための構成である。更新情報は、ソフトウェアを更新するための情報(いわゆるアップロードデータ)を含む。更新情報送信部102は、自らが更新情報を送信してもよいが、本実施形態では、更新情報を配信するための専用サーバである配信サーバ7に対して、例えば更新情報の送信を指示するための指令を送信する。当該指令を受けた配信サーバ7は、ソフトウェアの更新対象となる各モジュールに対して、更新情報の配信を行う。
【0030】
尚、ソフトウェアの更新対象となるモジュールは、コントローラ8を構成する複数のコントロールモジュール8-1~8-mであってもよい。この場合、更新情報は、これらのコントロールモジュール8-1~8-mにインストールされた制御プログラムを更新するための情報である。またソフトウェアの更新対象となるモジュールは、IO機器10-1~10-nを構成する複数のIOアダプタ12又はIOモジュール14であってもよい。この場合、更新情報は、これらの複数のIOアダプタ12又はIOモジュール14にインストールされたファームウェアを更新するための情報である。
【0031】
更新対象となるモジュールは、前述のコントロールモジュール8-1~8-m、IOアダプタモジュール12、又は、IOモジュール14の少なくとも1つを含むことができ、互いに多重化される。以下の説明では、便宜上、更新対象となる多重化された任意の2つのモジュールを、第1モジュールM1及び第2モジュールM2と称し、特段の記載がある場合を除き、その種類は問わない。多重化された第1モジュールM1及び第2モジュールM2は、それぞれ稼働状態と非稼働状態とを切替可能に構成されており、一方が稼働状態にある場合には、他方が非稼働状態にあることにより、一方のバックアップとして機能する。
【0032】
尚、稼働状態とは、そのモジュールにインストールされたソフトウェアが実行されることにより、プラント制御装置1の運用に寄与する状態にあることを意味する。非稼働状態とは、そのモジュールにインストールされたソフトウェアが実行されないことにより、プラント制御装置1の運用に寄与しない状態、或いは、ソフトウェアが実行されるものの、その演算結果が出力されないことによりプラント制御装置1の運用に寄与しない状態にあることを意味する。
【0033】
モジュール分類部104は、第1モジュールM1及び第2モジュールM2を、稼働モジュール又は非稼働モジュールのいずれかに分類するための構成である。例えば各モジュールには、その稼働状態を示すフラグを含むステータス情報が用意されており、モジュール分類部104は、当該ステータス情報にアクセスすることにより、第1モジュールM1及び第2モジュールM2が稼働モジュールであるか非稼働モジュールであるかをそれぞれ特定する。
【0034】
更新実行部106は、更新情報に基づいて、非稼働モジュールのソフトウェアの更新を実行するための構成である。具体的には、更新実行部106は、モジュール分類部104によって特定された非稼働モジュールに対して、更新情報送信部102によって送信された更新情報を適用することにより、ソフトウェアの更新を行う。更新実行部106によるソフトウェアの更新は、非稼働状態にある非稼働モジュールに対して実施されるため(すなわち、非稼働モジュールによって実現可能な機能は、非稼働モジュールと多重化された稼働モジュールによって実現されるため)、プラント制御装置1の稼働状態に影響を与えない。
【0035】
異常判定部108は、稼働モジュールの状態を示す第1状態データと、ソフトウェアの更新後における非稼働モジュールの状態を示す第2状態データとを比較することにより、異常の有無を判定するための構成である。第1状態データ及び第2状態データは、互いに比較可能な判定項目に対応するデータを含んでおり、異常判定部108は、予め設定された判定基準を満たすか否かに基づいて、異常の有無を判定する。
【0036】
ここで
図3は
図2の異常判定部108における幾つかの判定基準の例である。
図3では、ソフトウェアの更新対象となるモジュールの種類に関わらない共通項目としての判定基準と、モジュールの種類ごとに規定された判定基準とが示されている。
【0037】
まずモジュールの種類に関わらない共通項目に対応する判定基準は、(i)更新後の非稼働モジュールにインストールされているソフトウェアの型式(バージョン情報)が正しいこと、及び、(ii)更新後のフラッシュROM内のCRC値が、書き込みデータ(FWデータ)のCRC値と一致すること、が規定される。また更新対象のモジュールがIOモジュール14である場合に対応する判定基準は、(iii)出力モジュールの出力値が稼働モジュール及び非稼働モジュール間で一致すること、(iv)入力モジュールの入力値が稼働モジュール及び非稼働モジュール間で一致すること、及び、(v)更新後の非稼働モジュールのステータスが正常であること、が規定される。
【0038】
また更新対象のモジュールがIOアダプタモジュール12である場合に対応する判定基準は、(vi)更新後の非稼働モジュールのステータスが正常であることを含む。また更新対象のモジュールがコントローラモジュール8-1~8-mである場合に対応する判定基準は、(vii)他のコントローラモジュールの入出力データと比較し、それらの値が一致すること、又は、(viii)更新後の非稼働モジュールのステータスが正常であること、が規定される。
【0039】
尚、上記(v)(vi)(viii)における非稼働モジュールのステータスは、例えば、当該モジュールが自己診断機能を備えている場合には、自己診断結果に基づいて特定される。この場合、第1状態データは稼働モジュールにおける自己診断データを含み、第2状態データは、前記非稼働モジュールにおける自己診断データを含む。このように、各モジュールが自己診断機能を有する場合には、稼働モジュールと非稼働モジュールとの各自己診断データを比較することにより、実施された非稼働モジュールに対するソフトウェアの更新が正常に行われたか否かを適切に判定できる。自己診断の診断項目には、例えば、電源異常、クロック異常、他デバイスとのハートビート異常、通信異常等の異常が含まれる。
【0040】
また稼働モジュールから取得される第1状態データは、当該モジュールから出力される実出力データであり、非稼働モジュールから取得される第2状態データは、当該モジュールから算出される仮想出力データであってもよい。稼働モジュールは、実際に機能することによりプラント制御装置1の動作に貢献するため、第1状態データは実出力データとして取得可能である。一方、非稼働モジュールは実際に機能していないものの、その内部において稼働モジュールと同等の演算処理がなされており、稼働モジュールが不能な状態陥った場合に、その代わりに演算処理結果を実出力データとして出力できるようにスタンバイ状態にある。すなわち、非稼働モジュールでは、稼働モジュールの実出力データと同等の演算処理結果が内部値として用意されている。そのため、このように非稼働モジュールが有する内部値を仮想出力データとして取得し、稼働モジュールから出力される実出力データと比較することにより、異常の有無を判定することができる。
【0041】
稼働状態切替部110は、第1モジュールM1及び第2モジュールM2の稼働状態を変更するための構成である。本実施形態では、異常判定部108によって異常が無いと判定された場合に、稼働モジュールと非稼働モジュールとを互いに入れ替えるように、第1モジュールM1及び第2モジュールM2の稼働状態を変更するように構成される。
【0042】
尚、上記構成を有するソフトウェア更新システム100は、プラント制御装置1の操作及び制御を行うための端末であるOPS2と一体的に構成されてもよい。またEMS4にソフトウェア更新システム100の機能を組み込んでもよい。
【0043】
続いて上記構成を有するソフトウェア更新システム100によって実施されるソフトウェア更新方法について説明する。
図4は一実施形態に係るソフトウェア更新方法を示すフローチャートである。
【0044】
まず更新情報送信部102は、更新対象となる各モジュールに対して更新情報を送信する(ステップS1)。本実施形態では、配信サーバ7に対して、更新情報を更新対象となる第1モジュールM1及び第2モジュールM2に対して配信するように指令を送信する。これにより配信サーバ7からは、第1モジュールM1及び第2モジュールM2に対して配信される。
【0045】
続いてモジュール分類部104は、更新対象となる第1モジュールM1及び第2モジュールM2を、稼働モジュール又は非稼働モジュールのいずれかにそれぞれ分類する(ステップS2)。例えば第1モジュールM1及び第2モジュールM2には、その稼働状態を示すフラグを含むステータス情報が用意されており、モジュール分類部104は、当該ステータス情報にアクセスすることにより、各モジュールが稼働モジュールであるか非稼働モジュールであるかを特定する。
【0046】
続いて更新実行部106は、ステップS2で非稼働モジュールとして分類されたモジュールに対してソフトウェアの更新を実行する(ステップS3)。このモジュールがコントローラモジュール8-1~8-mである場合には、インストールされているソフトウェアである制御プログラムが更新される。また、このモジュールがIOアダプタモジュール12やIOモジュール14である場合には、インストールされているソフトウェアであるファームウェアが更新される。
尚、ステップS3では、非稼働モジュールが複数ある場合には、複数の非稼働モジュールに対してソフトウェアの更新を実行してもよい。
【0047】
続いて異常判定部108は、稼働モジュールから第1状態データを取得するとともに、非稼働モジュールから第2状態データを取得する(ステップS4)。そして異常判定部108は、ステップS4で取得した第1状態データ及び第2状態データに基づいて、異常の有無を判定する(ステップS5)。ステップS5では、
図4を参照して前述したように、第1状態データ及び第2状態データに含まれる項目ごとに異常の有無が判定される。
【0048】
その結果、異常判定部108によって異常がないと判定された場合(ステップS5:YES)、稼働状態切替部110は、稼働モジュールと非稼働モジュールとを互いに入れ替えるように、第1モジュールM1及び第2モジュールM2の稼働状態を変更する(ステップS6)。このようにソフトウェアの更新による異常が無いと判定されたことを条件として、稼働モジュールと非稼働モジュールとの切替が実施される。これにより、ソフトウェアの更新によってプラント制御装置の運用に支障をきたすことを回避した、品質のよいソフトウェアの更新作業を自動的に遂行することができる。
【0049】
尚、稼働状態の切替後は、更新対象となるモジュールが他に残っていないか否かが判定される(ステップS7)。その結果、更新対象となるモジュールが残っていた場合には(ステップS7:NO)、処理をステップS2に戻し、当該他のモジュールについても前述の手順に従ってソフトウェアの更新が行われる。
例えば更新対象となる第1モジュールM1及び第2モジュールM2のうち、最初に非稼働状態にあった第1モジュールM1に対して更新を実行した場合、非稼働状態にあった第1モジュールM1は稼働状態に切り替えられるとともに、稼働状態にあった第2モジュールM2が非稼働状態に切り替えられ、当該第2モジュールM2に対してソフトウェアの更新が再び実行される。すなわち、稼働モジュールと非稼働モジュールとが切り替えられた後、当初の非稼働モジュールについてソフトウェアの更新が行われていた際に、稼働モジュールとして稼働していたモジュールについてもソフトウェアの更新が実行される。これにより、多重化された第1モジュール及び第2モジュールの双方に対するソフトウェアの更新を完了することができる。そして、更新対象となるモジュールが残っておらず、全ての更新対象となるモジュールに対してソフトウェアの更新が完了した場合には(ステップS7:YES)、一連の処理を終了する(END)。
【0050】
一方、異常判定部108によって異常があると判定された場合(ステップS5:NO)、ソフトウェアの更新は中断される(ステップS8)。この際、異常が発見された旨を画面や音声等によってオペレータに対して報知するようにしてもよい。
【0051】
尚、更新対象となるモジュールのうちIOアダプタモジュール12及びIOモジュール14は、コントローラ8から多重化された通信ネットワーク(第1リングネットワーク16a及び第2リングネットワーク16b)を介して接続される。配信サーバ7から配信される更新情報は、このように多重化された通信ネットワークを介して提供されることで、通信ネットワークにおける通信負荷を低下させることで、更新時における通信速度を向上し、更新に要する時間を効果的に短縮できる。
【0052】
以上説明したように上記実施形態によれば、プラント制御装置1を構成する多重化された第1モジュールM1及び第2モジュールM2のうち、非稼働モジュールについてソフトウェアの更新が行われる。ソフトウェアの更新が行われた非稼働モジュールの状態を示す第2状態データは、ソフトウェアの更新が行われていない稼働モジュールの状態を示す第1状態データと比較されることにより、当該ソフトウェアの更新による異常の有無が判定される。そして、ソフトウェアの更新による異常が無いと判定されたことを条件として、稼働モジュールと非稼働モジュールとの切替が実施される。これにより、ソフトウェアの更新によってプラント制御装置1の運用に支障をきたすことを回避した、品質のよいソフトウエアの更新作業を自動的に遂行することができる。
【0053】
その他、本開示の趣旨を逸脱しない範囲で、上記した実施形態における構成要素を周知の構成要素に置き換えることは適宜可能であり、また、上記した実施形態を適宜組み合わせてもよい。
【0054】
上記各実施形態に記載の内容は、例えば以下のように把握される。
【0055】
(1)一態様に係るソフトウェア更新システムは、
プラント制御装置が備える多重化された第1モジュール及び第2モジュールに含まれる不揮発性メモリに記憶されたソフトウェアを更新するためのソフトウェア更新システムであって、
前記ソフトウェアの更新情報を送信するための更新情報送信部と、
前記第1モジュール及び前記第2モジュールを、稼働モジュール又は非稼働モジュールのいずれかに分類するためのモジュール分類部と、
前記更新情報に基づいて、前記非稼働モジュールの前記ソフトウェアの更新を実行するための更新実行部と、
前記稼働モジュールの状態を示す第1状態データと、前記ソフトウェアが更新された前記非稼働モジュールの状態を示す第2状態データとを比較することにより、異常の有無を判定するための異常判定部と、
前記異常判定部によって前記異常が無いと判定された場合に、前記稼働モジュールと前記非稼働モジュールとを互いに入れ替えるように、前記第1モジュール及び前記第2モジュールの稼働状態を変更するための稼働状態変更部と、
を備える。
【0056】
上記(1)の態様によれば、プラント制御装置を構成する多重化された第1モジュール及び第2モジュールのうち、非稼働モジュールについてソフトウェアの更新が行われる。ソフトウェアの更新が行われた非稼働モジュールの状態を示す第2状態データは、ソフトウェアの更新が行われていない稼働モジュールの状態を示す第1状態データと比較されることにより、当該ソフトウェアの更新による異常の有無が判定される。そして、ソフトウェアの更新による異常が無いと判定されたことを条件として、稼働モジュールと非稼働モジュールとの切替が実施される。これにより、ソフトウェアの更新によってプラント制御装置の運用に支障をきたすことを回避した、品質のよいソフトウェアの更新作業を自動的に遂行することができる。
【0057】
(2)他の態様では、上記(1)の態様において、
前記更新実行部は、前記稼働状態変更部によって前記稼働モジュールと前記非稼働モジュールとが互いに入れ替えられた後、前記非稼働モジュールに対して前記ソフトウェアの更新を再び実行する。
【0058】
上記(2)の態様によれば、前述のように稼働モジュールと非稼働モジュールとが切り替えられた後、当初の非稼働モジュールについてソフトウェアの更新が行われていた際に、稼働モジュールとして稼働していたモジュールについてもソフトウェアの更新が実行される。これにより、プラント制御装置を稼働させることなく、多重化された第1モジュール及び第2モジュールの双方に対するソフトウェアの更新を完了することができる。
【0059】
(3)他の態様では、上記(1)又は(2)の態様において、
前記第1状態データは、前記稼働モジュールから出力される実出力データを含み、
前記第2状態データは、前記非稼働モジュールで仮想的に算出され、前記実出力データに対応する仮想出力データを含む。
【0060】
上記(3)の態様によれば、稼働モジュールの実出力データと、非稼働モジュールの仮想出力データとを比較することにより、実施された非稼働モジュールに対するソフトウェアの更新が正常に行われたか否かを適切に判定できる。
【0061】
(4)他の態様では、上記(1)から(3)のいずれか一態様において、
前記第1状態データは、前記稼働モジュールにおける自己診断データを含み、
前記第2状態データは、前記非稼働モジュールにおける自己診断データを含む。
【0062】
上記(4)の態様によれば、各モジュールが自己診断機能を有する場合には、稼働モジュールと非稼働モジュールとの各自己診断データを比較することにより、実施された非稼働モジュールに対するソフトウェアの更新が正常に行われたか否かを適切に判定できる。
【0063】
(5)他の態様では、上記(1)から(4)のいずれか一態様において、
前記プラント制御装置は、
プラントの構成機器との間でアナログ信号を送受信可能な複数のIOモジュールと、
前記複数のIOモジュール装置との間でデジタル信号を送受信可能な複数のIOアダプタモジュールと、
前記複数のIOアダプタモジュールを制御するためのコントローラと、
を備える。
【0064】
上記(5)の態様によれば、IOモジュール、IOアダプタモジュール及びコントローラを備えるプラント制御装置を構成する各モジュールに対するソフトウェアの自動的更新を好適に実施できる。
【0065】
(6)他の態様では、上記(5)の態様において、
前記複数のIOモジュールは、前記第1モジュール及び前記第2モジュールを含む。
【0066】
上記(6)の態様によれば、プラントの構成機器との間でアナログ信号を送受信可能な複数のIOモジュールに含まれる第1モジュール及び第2モジュールにおけるソフトウェアの自動的更新を好適に実施できる。
【0067】
(7)他の態様では、上記(5)又は(6)の態様において、
前記複数のIOアダプタモジュールは、前記第1モジュール及び前記第2モジュールを含む。
【0068】
上記(7)の態様によれば、複数のIOモジュールとの間でデジタル信号を送受信可能な複数のIOアダプタモジュールに含まれる第1モジュール及び第2モジュールにおけるソフトウェアの自動的更新を好適に実施できる。
【0069】
(8)他の態様では、上記(5)から(7)のいずれか一態様において、
前記コントローラは、前記第1モジュール及び前記第2モジュールを含む複数のコントローラモジュールを有する。
【0070】
上記(8)の態様によれば、複数のIOアダプタモジュールを制御するためのコントローラが有する複数のコントローラモジュールに含まれる第1モジュール及び第2モジュールにおけるソフトウェアの自動的更新を好適に実施できる。
【0071】
(9)他の態様では、上記(1)から(8)のいずれか一態様において、
前記第1モジュール及び前記第2モジュールは、多重化された通信ネットワークを介して、前記更新情報を取得可能に構成される。
【0072】
上記(9)の態様によれば、更新情報の取得が、多重化された通信ネットワークを介して行われる。これにより、通信ネットワークにおける通信負荷を低下させることで、更新時における通信速度を向上し、更新に要する時間を効果的に短縮できる。
【0073】
(10)他の態様では、上記(1)から(9)のいずれか一態様において、
前記ソフトウェアはファームウェアである。
【0074】
上記(10)の態様によれば、プラント制御装置を構成する各モジュールに搭載された不揮発性メモリに記憶されたファームウェアを好適に更新できる。
【0075】
(11)他の態様では、上記(1)から(10)のいずれか一態様において、
前記プラント制御装置の操作及び制御を行うための端末と一体的に構成される。
【0076】
上記(11)の態様によれば、ソフトウェアの更新に関する各機能をプラント制御装置の操作及び制御を行うための端末と一体的に構成することで、既存のプラント制御装置において、好適にソフトウェアの更新を実施することができる。
【0077】
(12)一態様に係るソフトウェア更新方法は、
プラント制御装置が備える多重化された第1モジュール及び第2モジュールに含まれる不揮発性メモリに記憶されたソフトウェアを更新するためのソフトウェア更新方法であって、
前記ソフトウェアの更新情報を送信する工程と、
前記第1モジュール及び前記第2モジュールを、稼働モジュール又は非稼働モジュールのいずれかに分類する工程と、
前記更新情報に基づいて、前記非稼働モジュールの前記ソフトウェアの更新を実行する工程と、
前記稼働モジュールの状態を示す第1状態データと、前記ソフトウェアが更新された前記非稼働モジュールの状態を示す第2状態データとを比較することにより、異常の有無を判定する工程と、
前記異常が無いと判定された場合に、前記稼働モジュールと前記非稼働モジュールとを互いに入れ替えるように、前記第1モジュール及び前記第2モジュールの稼働状態を変更する工程と、
を備える。
【0078】
上記(12)の態様によれば、プラント制御装置を構成する多重化された第1モジュール及び第2モジュールのうち、非稼働モジュールについてソフトウェアの更新が行われる。ソフトウェアの更新が行われた非稼働モジュールの状態を示す第2状態データは、ソフトウェアの更新が行われていない稼働モジュールの状態を示す第1状態データと比較されることにより、当該ソフトウェアの更新による異常の有無が判定される。そして、ソフトウェアの更新による異常が無いと判定されたことを条件として、稼働モジュールと非稼働モジュールとの切替が実施される。これにより、ソフトウェアの更新によってプラント制御装置の運用に支障をきたすことを回避した、品質のよいソフトウェアの更新作業を自動的に遂行することができる。
【0079】
(13)一態様に係るソフトウェア更新プログラムは、
プラント制御装置が備える多重化された第1モジュール及び第2モジュールに含まれる不揮発性メモリに記憶されたソフトウェアを更新するためのソフトウェア更新プログラムであって、
コンピュータ装置に、
前記ソフトウェアの更新情報を送信する工程と、
前記第1モジュール及び前記第2モジュールを、稼働モジュール又は非稼働モジュールのいずれかに分類する工程と、
前記更新情報に基づいて、前記非稼働モジュールの前記ソフトウェアの更新を実行する工程と、
前記稼働モジュールの状態を示す第1状態データと、前記ソフトウェアが更新された前記非稼働モジュールの状態を示す第2状態データとを比較することにより、異常の有無を判定する工程と、
前記異常が無いと判定された場合に、前記稼働モジュールと前記非稼働モジュールとを互いに入れ替えるように、前記第1モジュール及び前記第2モジュールの稼働状態を変更する工程と、
を実行可能である。
【0080】
上記(13)の態様によれば、プラント制御装置を構成する多重化された第1モジュール及び第2モジュールのうち、非稼働モジュールについてソフトウェアの更新が行われる。ソフトウェアの更新が行われた非稼働モジュールの状態を示す第2状態データは、ソフトウェアの更新が行われていない稼働モジュールの状態を示す第1状態データと比較されることにより、当該ソフトウェアの更新による異常の有無が判定される。そして、ソフトウェアの更新による異常が無いと判定されたことを条件として、稼働モジュールと非稼働モジュールとの切替が実施される。これにより、ソフトウェアの更新によってプラント制御装置の運用に支障をきたすことを回避した、品質のよいソフトウェアの更新作業を自動的に遂行することができる。
【符号の説明】
【0081】
1 プラント制御装置
2 OPS
4 EMS
6 ACS
7 配信サーバ
8 コントローラ
8-1~8-m コントローラモジュール
10-1~10-n IO機器
12 IOアダプタ
14 IOモジュール
16a 第1リングネットワーク
16b 第2リングネットワーク
22 通信ネットワーク
100 ソフトウェア更新システム
102 更新情報送信部
104 モジュール分類部
106 更新実行部
108 異常判定部
110 稼働状態変更部