(57)【要約】【課題】制御システムのコントローラの制御ソフトウェアを更新する際に、コントローラによる制御停止時間を短くすること。【解決手段】実施形態のコントローラにおいて、制御部は、第１の領域に記憶されている制御ソフトウェアを実行することによるＩ／Ｏ機器の制御中に、外部から新たな制御ソフトウェアを受信した場合に、当該新たな制御ソフトウェアを第２の領域に記憶してから、Ｉ／Ｏ機器に対して、データの出力を停止してデータを保持するようにさせる出力保持指令を送信し、実行する制御ソフトウェアを、第１の領域に記憶されている制御ソフトウェアから第２の領域に記憶されている新たな制御ソフトウェアに切り替えるリセット処理を実行した後、第２の領域に記憶されている新たな制御ソフトウェアを実行するとともに、Ｉ／Ｏ機器に対して、データの出力を許可する出力許可指令を送信する。【選択図】図１
2018022367.tif 000002
【特許請求の範囲】
【請求項１】
制御ソフトウェアを記憶している第１の領域と、前記制御ソフトウェアとは異なる制御ソフトウェアを記憶可能な第２の領域と、を有する、電気的に書き換え可能な不揮発性半導体記憶媒体と、
前記第１の領域に記憶されている前記制御ソフトウェアを実行することによるＩ／Ｏ機器の制御中に、外部から新たな制御ソフトウェアを受信した場合に、当該新たな制御ソフトウェアを前記第２の領域に記憶してから、前記Ｉ／Ｏ機器に対して、データの出力を停止してデータを保持するようにさせる出力保持指令を送信し、実行する制御ソフトウェアを、前記第１の領域に記憶されている制御ソフトウェアから前記第２の領域に記憶されている前記新たな制御ソフトウェアに切り替えるリセット処理を実行した後、前記第２の領域に記憶されている前記新たな制御ソフトウェアを実行するとともに、前記Ｉ／Ｏ機器に対して、データの出力を許可する出力許可指令を送信する制御部と、を備えるコントローラ。
【請求項２】
制御ソフトウェアを記憶する、電気的に書き換え可能な不揮発性半導体記憶媒体と、
前記不揮発性半導体記憶媒体から転送された前記制御ソフトウェアを記憶するＲＡＭと、
前記ＲＡＭに記憶されている前記制御ソフトウェアを実行することによるＩ／Ｏ機器の制御中に、外部から新たな制御ソフトウェアを受信した場合に、当該新たな制御ソフトウェアを前記不揮発性半導体記憶媒体に記憶してから、前記Ｉ／Ｏ機器に対して、データの出力を停止してデータを保持するようにさせる出力保持指令を送信し、リセット処理を実行して前記不揮発性半導体記憶媒体に記憶されている前記新たな制御ソフトウェアを前記ＲＡＭに転送した後、前記ＲＡＭに記憶されている前記新たな制御ソフトウェアを実行するとともに、前記Ｉ／Ｏ機器に対して、データの出力を許可する出力許可指令を送信する制御部と、を備えるコントローラ。
【請求項３】
前記制御部は、予め定められたタイミングで、または、ユーザから指示があったタイミングで、前記リセット処理を実行する、請求項１または請求項２に記載のコントローラ。
【請求項４】
請求項１から請求項３のいずれか一項に記載の前記コントローラと、
前記制御ソフトウェアによって動作し、前記コントローラと同様にして外部から新たな制御ソフトウェアを受信して記憶するとともに当該新たな制御ソフトウェアによる制御処理を実行する機器と、を備える制御システム。
【請求項５】
前記制御システムにおける機器構成と制御ソフトウェアファイルの関連を示すＩＤを含むテーブル情報と、前記制御システムにおける機器毎の前記制御ソフトウェアファイルと、を記憶する管理装置を、さらに備え、
前記コントローラは、前記管理装置から前記テーブル情報と前記制御ソフトウェアファイルとを受信して記憶し、前記テーブル情報と前記制御ソフトウェアファイルとに基づいて、前記制御システム内の機器に新たな制御ソフトウェアを記憶させるとともに当該新たな制御ソフトウェアによる制御処理を実行させる、請求項４に記載の制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、コントローラ、および、制御システムに関する。
【背景技術】
【０００２】
従来から、産業プラント（以下、単に「プラント」という。）等において、Ｉ／Ｏ（Input／output）機器等を制御するためにコントローラ（プログラマブルコントローラ）が用いられている。コントローラは、例えば、制御ソフトウェア（制御プログラム。ファームウェア）とアプリケーションプログラムに基づいて動作する。そして、制御ソフトウェアの更新を行う必要が生じる場合がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１４２９３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般に、例えば、パソコンのＯＳ（Operating  System）の更新は、新たなＯＳをダウンロードし、電源を再起動することによって行われる。その所要時間は、数分程度であり、パソコンの使用に関して、特に支障はない。
【０００５】
一方、プラント等におけるＤＣＳ（Distributed  Control  System）やＰＬＣ（Programmable  Logic  Controller）などを用いた制御システムは、昼夜を通して不停止で動作している場合が多い。従来技術では、コントローラの制御ソフトウェアを更新するためにプラント等を停止する時間は、短くても数分程度であり、さらなる短時間化が求められている。
【課題を解決するための手段】
【０００６】
実施形態のコントローラは、不揮発性半導体記憶媒体と、制御部と、を備える。不揮発性半導体記憶媒体は、制御ソフトウェアを記憶している第１の領域と、制御ソフトウェアとは異なる制御ソフトウェアを記憶可能な第２の領域と、を有し、電気的に書き換え可能である。制御部は、第１の領域に記憶されている制御ソフトウェアを実行することによるＩ／Ｏ機器の制御中に、外部から新たな制御ソフトウェアを受信した場合に、当該新たな制御ソフトウェアを第２の領域に記憶してから、Ｉ／Ｏ機器に対して、データの出力を停止してデータを保持するようにさせる出力保持指令を送信し、実行する制御ソフトウェアを、第１の領域に記憶されている制御ソフトウェアから第２の領域に記憶されている新たな制御ソフトウェアに切り替えるリセット処理を実行した後、第２の領域に記憶されている新たな制御ソフトウェアを実行するとともに、Ｉ／Ｏ機器に対して、データの出力を許可する出力許可指令を送信する。
【０００７】
実施形態の制御システムは、前記コントローラと、制御ソフトウェアによって動作し、当該コントローラと同様にして外部から新たな制御ソフトウェアを受信して記憶するとともに当該新たな制御ソフトウェアによる制御処理を実行する機器と、を備える。
【図面の簡単な説明】
【０００８】
【図１】図１は、第１の実施形態にかかる制御システムの構成図である。
【図２】図２は、第１の実施形態にかかる制御システムの動作説明図である。
【図３】図３は、第１の実施形態にかかるコントローラのブート処理を示すフローチャートである。
【図４】図４は、第１の実施形態にかかるコントローラの第１制御ソフトウェアによる処理を示すフローチャートである。
【図５】図５は、第１の実施形態にかかるコントローラの第２制御ソフトウェアによる処理を示すフローチャートである。
【図６】図６は、第２の実施形態にかかる制御システムの構成図である。
【図７】図７は、第３の実施形態にかかる制御システムの構成図である。
【図８】図８は、第４の実施形態にかかる制御システムの構成図である。
【図９】図９は、第５の実施形態にかかる制御システムの構成図である。
【図１０】図１０は、第５の実施形態にかかるコントローラのブート処理を示すフローチャートである。
【図１１】図１１は、第５の実施形態にかかるコントローラのＣＰＵによる処理を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、添付の図面を用いて、第１の実施形態〜第５の実施形態にかかるコントローラ、および、制御システムについて説明する。なお、第２の実施形態以降において、それまでの実施形態と重複する事項の説明は、適宜省略する。
【００１０】
（第１の実施形態）
図１は、第１の実施形態にかかる制御システムＳの構成図である。制御システムＳは、例えば、プラントに適用されるものであり、パソコン１と、コントローラ２と、Ｉ／Ｏ機器３と、を備えている。
【００１１】
パソコン１は、コンピュータ装置であり、エンジニアリングツール１１を備えている。エンジニアリングツール１１とは、制御システムＳに関するシステム構築、プログラミング、モニタリング、情報収集、監視等をサポートするために開発されたソフトウェアである。エンジニアリングツール１１は、例えば、新たな制御ソフトウェア（制御プログラム。ファームウェア）をコントローラ２に提供（ダウンロード）する。
【００１２】
コントローラ２は、プラントの制御を行うための基本機能をプログラミングした制御ソフトウェアやアプリケーションプログラム等を実行する装置であり、ＣＰＵ（Central  Processing  Unit）２１、ＲＡＭ（Random  Access  Memory）２２、ＦＲＯＭ（Flash  Read  Only  Memory）２３、ツールインタフェース２４、Ｉ／Ｏインタフェース２５、および、バス２６を備えている。
【００１３】
ＣＰＵ２１は、制御部である。ＲＡＭ２２は、ＣＰＵ２１の動作領域であり、プラントを制御するためにユーザが作成したアプリケーションプログラム（不図示）や各種変数のほか、初期診断実行フラグ２２１等を記憶する。初期診断実行フラグ２２１は、例えば、「０」がＣＰＵ２１による初期診断を実行しないことを意味し、「１」がＣＰＵ２１による初期診断を実行することを意味するフラグである。例えば、コントローラ２に電源が入れられた直後は初期診断を実行すべきなので、初期診断実行フラグ２２１はその直前までに「１」にセットされる。また、コントローラ２に新たな制御ソフトウェアがダウンロードされた後にリセット処理（リブート）した直後は初期診断を実行する必要がないので、初期診断実行フラグ２２１はその直前までに「０」にセットされる。例えば、初期診断実行フラグ２２１に記憶されている値は、コントローラ２の電源が切られる場合はＦＲＯＭ２３に保存され、その後にコントローラ２の電源が入れられた場合に復旧される（他の実施形態も同様）。
【００１４】
ＦＲＯＭ２３は、いわゆるフラッシュメモリであり、第１制御ソフトウェア（制御ソフトウェア）を記憶している第１の領域２３２と、第１制御ソフトウェアとは異なる第２制御ソフトウェア（新たな制御ソフトウェア）を記憶可能な第２の領域２３３と、を有する、電気的に書き換え可能な不揮発性半導体記憶媒体である。また、ＦＲＯＭ２３は、ブート処理プログラム２３１と、制御ソフトウェア選択フラグ２３１１と、を記憶する。
【００１５】
コントローラ２の電源が入れられた後や、コントローラ２がリセット処理（リブート）された後に、ＣＰＵ２１は、まず、ブート処理プログラム２３１を実行する。制御ソフトウェア選択フラグ２３１１は、例えば、「０」が第１の領域２３２に記憶されている第１制御ソフトウェアの選択を意味し、「１」が第２の領域２３３に記憶されている第２制御ソフトウェアの選択を意味するフラグである。
【００１６】
ＣＰＵ２１は、第１の領域２３２に記憶されている第１制御ソフトウェアを実行することによるＩ／Ｏ機器３の制御中に、外部から第２制御ソフトウェア（新たな制御ソフトウェア）を受信した場合に、第２制御ソフトウェアを第２の領域２３３に記憶してから、Ｉ／Ｏ機器３に対して、コントローラ２へのデータの出力を停止してデータを保持するようにさせる出力保持指令を送信する。その後、ＣＰＵ２１は、実行する制御ソフトウェアを、第１の領域２３２に記憶されている第１制御ソフトウェアから第２の領域２３３に記憶されている第２制御ソフトウェアに切り替えるリセット処理を実行した後、第２の領域２３３に記憶されている第２制御ソフトウェアを実行するとともに、Ｉ／Ｏ機器３に対して、データの出力を許可する出力許可指令を送信する。
【００１７】
なお、従来技術と比較すると、ＦＲＯＭ２３において、ブート処理プログラム２３１と第１制御ソフトウェアを記憶する第１の領域２３２は従来技術でも存在する構成であり、第２制御ソフトウェアを記憶する第２の領域２３３が新たな構成である。したがって、ＦＲＯＭ２３は、従来技術のものと比較して、第２の領域２３３の分、容量が大きなものである必要がある。
【００１８】
ツールインタフェース２４は、パソコン１との間で情報の送受信を行うためのインタフェースである。Ｉ／Ｏインタフェース２５は、Ｉ／Ｏ機器３との間で情報の送受信を行うためのインタフェースである。バス２６は、コントローラ２の内部のデータ伝送路である。
【００１９】
Ｉ／Ｏ機器３は、プラントを構成する装置との入出力を行うための機器である。Ｉ／Ｏ機器３としては、例えば、制御対象設備に設置されたセンサ等からの信号の入力を行う入力装置（ＡＩ（Analog  Input）機器、ＤＩ（Digital  Input）機器）や、制御対象設備のアクチュエータ等に対して信号の出力を行う出力装置（ＡＯ（Analog  Output）機器、ＤＯ（Digital  Output）機器）がある。
【００２０】
通信路４は、パソコン１とコントローラ２を結ぶ通信路であり、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）やＵＳＢ（Universal  Serial  Bus）などの高速の通信路が好ましいが、それらに限定されない。通信路５は、コントローラ２とＩ／Ｏ機器３を結ぶ通信路である。
【００２１】
次に、図２を用いて制御システムＳの動作の概要を説明した後、図３〜図５を用いて各構成の動作の詳細を説明する。図２に示す例では、ＣＰＵ２１は、第１の領域２３２に記憶されている第１制御ソフトウェアを実行して、Ｉ／Ｏ機器３を制御しているものとする。
【００２２】
図２は、第１の実施形態にかかる制御システムＳの動作説明図である。まず、パソコン１のエンジニアリングツール１１は、ユーザの操作に基づいて、第２制御ソフトウェア（新たな制御ソフトウェア）をコントローラ２へダウンロードする（１）。ＣＰＵ２１は、現在の制御ソフトウェア選択フラグ２３１１の状態（「０」）に基づいて、第１の領域２３２と第２の領域２３３のうち、第２の領域２３３が空いていることを認識し（２）、ダウンロードされた第２制御ソフトウェアを第２の領域２３３に格納する（３）。
【００２３】
次に、ＣＰＵ２１は、制御ソフトウェア選択フラグ２３１１を「０」から「１」に変更する（４）。これは、リブートした後に、ＣＰＵ２１が第２の領域２３３に記憶された第２制御ソフトウェアによって動作するようにするためである。次に、ＣＰＵ２１は、初期診断実行フラグ２２１を「１」から「０」に変更する（５）。これは、コントローラ２に第２制御ソフトウェアがダウンロードされた後にリブートした直後は、コントローラ２の電源を入れた直後と違って初期診断を実行する必要がないからである。以上で、ＣＰＵ２１を第２制御ソフトウェアで動作させるための準備が整ったことになる。
【００２４】
その後、ＣＰＵ２１は、Ｉ／Ｏインタフェース２５を経由して、すべてのＩ／Ｏ機器３へ出力保持指令を送信する（６）。これにより、Ｉ／Ｏ機器３は、コントローラ２へのデータの出力を停止してデータを保持する。これは、コントローラ２が、リセット処理（リブート）をしている間はＩ／Ｏ機器３からの出力を受け付けることができないからである。
【００２５】
その後、ＣＰＵ２１は、コントローラ２をリセット処理（リブート）する（７）。このリセット処理（リブート）は、例えば、コントローラ２に対するユーザの操作に基づいて実行してもよいし、あるいは、自動的に実行してもよい。このリセット処理により、ＣＰＵ２１は、ブート処理プログラム２３１を実行する。ＣＰＵ２１は、ブート処理プログラム２３１にしたがって、制御ソフトウェア選択フラグ２３１１の状態（「１」）を参照し、第２の領域２３３に記憶された第２制御ソフトウェアによる処理に移行する。そして、ＣＰＵ２１は、第２の領域２３３に記憶された第２制御ソフトウェアを実行し、初期診断実行フラグ２２１の状態（「０」）に基づいて初期診断を実施せず、初期診断実行フラグ２２１を「０」から「１」に変更する（８）。次に、ＣＰＵ２１は、ＲＡＭ２２のアプリケーションプログラムを実行し、Ｉ／Ｏ機器３との通信設定が完了したら、すべてのＩ／Ｏ機器３へ出力許可指令を送信する（９）。
【００２６】
図３は、第１の実施形態にかかるコントローラ２のブート処理プログラム２３１によるブート処理の動作を示すフローチャートである。ＣＰＵ２１は、まず、ブート（リブート）処理の要求があったか否かを判定し（ステップＳ１）、Ｙｅｓの場合はステップＳ２に進み、Ｎｏの場合はステップＳ１に戻る。ステップＳ１でＹｅｓの場合とは、例えば、コントローラ２に電源が入れられたときや、コントローラ２に新たな制御ソフトウェアがダウンロードされ、その後にリブートする場合である。
【００２７】
ステップＳ２において、ＣＰＵ２１は、初期化処理を実行する。次に、ＣＰＵ２１は、制御ソフトウェア選択フラグ２３１１が「０」と「１」のいずれであるかを判定し（ステップＳ３）、「０」の場合（図２の（２）の後）はステップＳ４に進み、「１」の場合（図２の（７）の後）はステップＳ５に進む。
【００２８】
ステップＳ４において、ＣＰＵ２１は、第１制御ソフトウェアによる処理に移行し、処理を終了する。また、ステップＳ５において、ＣＰＵ２１は、第２制御ソフトウェアによる処理に移行し、処理を終了する。
【００２９】
図４は、第１の実施形態にかかるコントローラ２の第１制御ソフトウェアによる処理（図３のステップＳ４の後の処理）を示すフローチャートである。ＣＰＵ２１は、第１の領域２３２に記憶された第１制御ソフトウェアを実行し、まず、初期設定を実行する（ステップＳ１１）。次に、ＣＰＵ２１は、初期診断実行フラグ２２１の状態（「１」）に基づいて、初期診断を実行する（ステップＳ１２）。
【００３０】
次に、ＣＰＵ２１は、ＲＡＭ２２に格納されたアプリケーションプログラムも併せて用いて、Ｉ／Ｏ機器３に対する制御処理を開始する（ステップＳ１３）。
【００３１】
次に、ＣＰＵ２１は、パソコン１のエンジニアリングツール１１から新たな制御ソフトウェア（第２制御ソフトウェア）のダウンロード要求があるか否かを判定し（ステップＳ１４）、Ｙｅｓの場合はステップＳ１５に進み、Ｎｏの場合はステップＳ１４に戻る。
【００３２】
ステップＳ１５において、ＣＰＵ２１は、空いている第２の領域２３３に、パソコン１のエンジニアリングツール１１からダウンロードした第２制御ソフトウェアを格納する（図２の（３））。
【００３３】
次に、ＣＰＵ２１は、制御ソフトウェア選択フラグ２３１１を「０」から「１」に書き換える（変更する）（ステップＳ１６。図２の（４））。次に、ＣＰＵ２１は、初期診断実行フラグ２２１を「１」から「０」に変更（クリア）する（ステップＳ１７。図２の（５））。
【００３４】
次に、ＣＰＵ２１は、Ｉ／Ｏインタフェース２５を経由して、すべてのＩ／Ｏ機器３へ出力保持指令を送信する（ステップＳ１８。図２の（６））。次に、ＣＰＵ２１は、ブート（リブート）処理を要求し（ステップＳ１９）、処理を終了する。この後、ＣＰＵ２１は、ブート処理プログラム２３１を実行し、図３の処理において、ステップＳ１でＹｅｓ→ステップＳ２→ステップＳ３で「１」→ステップＳ５と進み、第２制御ソフトウェアによる処理に移行する。
【００３５】
図５は、第１の実施形態にかかるコントローラ２の第２制御ソフトウェアによる処理（図３のステップＳ５の後の処理）を示すフローチャートである。ＣＰＵ２１は、第２の領域２３３に記憶された第２制御ソフトウェアを実行し、まず、初期設定を実行する（ステップＳ２１）。次に、ＣＰＵ２１は、初期診断実行フラグ２２１の状態（「０」）に基づいて、初期診断を実行せず、初期診断実行フラグ２２１を「０」から「１」に変更する（ステップＳ２２。図２の（８））。
【００３６】
次に、ＣＰＵ２１は、ＲＡＭ２２に格納されたアプリケーションプログラムも併せて用いて、Ｉ／Ｏ機器３に対する制御処理を開始する（ステップＳ２３）。
【００３７】
次に、ＣＰＵ２１は、Ｉ／Ｏインタフェース２５を経由して、すべてのＩ／Ｏ機器３へ出力許可指令を送信する（ステップＳ２４。図２の（９））。次に、ＣＰＵ２１は、さらに新たな制御ソフトウェアのダウンロード要求があるか否かを判定し（ステップＳ２５）、Ｙｅｓの場合は図４のステップＳ１５以降と同様の処理に進み、Ｎｏの場合はステップＳ２５に戻る。なお、ステップＳ２５でＹｅｓの場合、ＣＰＵ２１は、第１の領域２３２に新たな制御ソフトウェアをダウンロードし、リブート後、その新たな制御ソフトウェアでの制御処理を実行する。
【００３８】
このようにして、本実施形態の制御システムＳによれば、コントローラ２の制御ソフトウェアを更新するために制御システムＳを停止する時間を従来よりも短くすることができる。例えば、ＦＲＯＭ２３の容量を第２の領域２３３の分だけ増量させる必要はあるが、それ以外にハードウェア資源を追加することなく、パソコン１のエンジニアリングツール１１から高速通信可能な通信路４、ツールインタフェース２４を経由して新たな制御ソフトウェアをコントローラ２にダウンロードすることができる。そして、プラントを停止する時間の長さは、コントローラ２からＩ／Ｏ機器３に出力保持指令を送信してから出力許可指令を送信するまでの短時間（例えば数秒〜数十秒程度）で済む。なお、パソコン１のエンジニアリングツール１１から新たな制御ソフトウェアをコントローラ２にダウンロードするたびに、ＣＰＵ２１は、第１の領域２３２に記憶している制御ソフトウェアによる処理と、第２の領域２３３に記憶している制御ソフトウェアによる処理を、交互に実行することになる。
【００３９】
一方、従来技術では、コントローラに新たな制御ソフトウェアをダウンロードするには、例えば、まず、コントローラの電源をＯＦＦしてから、ディップスイッチなどの設定によってコントローラを専用モードで立上げ、制御ソフトウェア更新のための専用機器をＲＳ−２３２Ｃなどのインタフェースを経由してコントローラに接続し、ダウンロードを実施する。その後、ダウンロードが完了したら、コントローラの電源を再度ＯＦＦしてから、スイッチ設定を通常へ戻し、再起動を行っていた。そのため、コントローラの制御ソフトウェアを更新するためにプラント等を停止する時間が長く（短くても数分程度に）なってしまっていた。
【００４０】
（第２の実施形態）
次に、第２の実施形態にかかる制御システムＳについて説明する。図６は、第２の実施形態にかかる制御システムＳの構成図である。この制御システムＳは、第１の実施形態の場合と比較して、コントローラ２のＲＡＭ２２内に、時計情報２２２、切替日時情報２２３、切替タイミング情報２２４が記憶されている点で相違する。これにより、コントローラ２は、予め定められたタイミングで、または、パソコン１のユーザから指示があったタイミングで、リセット処理（第２制御ソフトウェアをダウンロードした後のリブート）を実行することができる。以下、詳細に説明する。
【００４１】
時計情報２２２は、ＲＴＣ（Real  Time  Clock）やソフトタイマにより実現され、コントローラ２の内部で参照可能な日時情報である。
【００４２】
切替日時情報２２３は、新たな制御ソフトウェアによる処理へ切り替える日時の情報であり、パソコン１のエンジニアリングツール１１により設定される。
【００４３】
切替タイミング情報２２４は、次の（Ａ）〜（Ｃ）の３つから選択可能な情報であり、パソコン１のエンジニアリングツール１１により設定される。
（Ａ）ダウンロード完了と同時に切り替え
（Ｂ）指定日時に切り替え
（Ｃ）エンジニアリングツール１１からの指示により切り替え
【００４４】
（Ａ）が選択されている場合、第１の実施形態で説明した動作となる。つまり、ＣＰＵ２１は、第１の領域２３２に記憶されている制御ソフトウェアを実行し、図４のステップＳ１５で第２制御ソフトウェアをダウンロードした後に、ＲＡＭ２２の切替タイミング情報２２４を参照し、（Ａ）が選択されていれば、すぐにステップＳ１６以降の処理に移行する。
【００４５】
また、ＣＰＵ２１は、図４のステップＳ１５で第２制御ソフトウェアをダウンロードした後、ＲＡＭ２２の切替タイミング情報２２４を参照し、（Ｂ）が選択されていれば、定期的に時計情報２２２と切替日時情報２２３を参照し、切替日時情報２２３で指定される日時に、ステップＳ１６以降の処理に移行する。
【００４６】
また、ＣＰＵ２１は、図４のステップＳ１５で第２制御ソフトウェアをダウンロードした後、ＲＡＭ２２の切替タイミング情報２２４を参照し、（Ｃ）が選択されていれば、エンジニアリングツール１１からの指示を常時監視し、指示があれば、ステップＳ１６以降の処理に移行する。
【００４７】
このようにして、第２の実施形態の制御システムＳによれば、予め指定したプラントを停止しても影響の少ない時間帯や、あるいは、プラントを停止しても影響が少ないとパソコン１のユーザが判断した任意のタイミングで、コントローラ２を新たな制御ソフトウェアによる処理に切り替えることができ、より安全かつ便利である。
【００４８】
（第３の実施形態）
次に、第３の実施形態にかかる制御システムＳについて説明する。図７は、第３の実施形態にかかる制御システムＳの構成図である。
【００４９】
プラントを制御するコントローラ２は、実際には複数の機器から構成されることが多い。図７に示すように、コントローラ２は、メイン機器であるコントローラ機器と、複数のステーションバス機器＃１、＃２、・・・（以下、区別しないときは単に「ステーションバス機器」という。）とで構成され、それらはステーションバス２０１で接続される。ステーションバス機器は、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）通信によって他の機器と接続する機能を有する機器である。
【００５０】
Ｉ／Ｏ機器３は、Ｉ／Ｏ通信機器＃１、＃２、・・・（以下、区別しないときは単に「Ｉ／Ｏ通信機器」という。）と、それらに接続されるＡＩ機器、ＡＯ機器、ＤＩ機器、ＤＯ機器（以下、区別しないときは単に「Ｉ／Ｏ機器」という。）とで構成されている。
【００５１】
コントローラ機器とＩ／Ｏ通信機器は、Ｉ／Ｏバス３０１で接続される。また、Ｉ／Ｏ通信機器＃１と、ＡＩ機器＃１、ＡＯ機器＃１、ＤＩ機器＃１、ＤＯ機器＃１は、Ｉ／Ｏバス３０２で接続される。また、Ｉ／Ｏ通信機器＃２と、ＡＩ機器＃２、ＡＯ機器＃２、ＤＩ機器＃２、ＤＯ機器＃２は、Ｉ／Ｏバス３０３で接続される。
【００５２】
図７に示したコントローラ２内の機器とＩ／Ｏ機器３内の機器のすべては、図１に示したコントローラ２と同様にＣＰＵ、ＲＡＭ、ＦＲＯＭ、通信インタフェース等を備え、制御ソフトウェアによって動作する。そして、これらの機器すべてに対して、第１の実施形態や第２の実施形態と同様の新たな制御ソフトウェアのダウンロードおよび実行を行わせることができる。つまり、これらのすべての機器は、制御ソフトウェアによって動作し、図１に示したコントローラ２と同様にして新たな制御ソフトウェアをダウンロード（受信して各々のＦＲＯＭ内の領域に記憶）するとともに当該新たな制御ソフトウェアによる制御処理を実行する機器である。
【００５３】
データ経路Ｒ１は、パソコン１のエンジニアリングツール１１からコントローラ２内の機器に新たな制御ソフトウェアをダウンロードする経路である。また、データ経路Ｒ２は、パソコン１のエンジニアリングツール１１からＩ／Ｏ機器３内のＩ／Ｏ通信機器に新たな制御ソフトウェアをダウンロードする経路である。また、データ経路Ｒ３は、パソコン１のエンジニアリングツール１１からＩ／Ｏ機器３内のＩ／Ｏ機器に新たな制御ソフトウェアをダウンロードする経路である。
【００５４】
このようにして、第３の実施形態の制御システムＳによれば、コントローラ２内の機器とＩ／Ｏ機器３内の機器のすべてに対して、パソコン１のエンジニアリングツール１１から新たな制御ソフトウェアをダウンロードし、実行させることができる。
【００５５】
一方、従来技術では、コントローラ２内の機器とＩ／Ｏ機器３内の機器のそれぞれに対して、１台ずつ、制御ソフトウェア更新のための専用機器をＲＳ−２３２Ｃなどのインタフェースを経由して接続し、電源再投入などの操作を行いながら作業していたので、手間や時間が多くかかった。第３の実施形態の制御システムＳによれば、各機器が設置されている現場へ作業者が行くことなく、しかも、短時間で、各機器の制御ソフトウェアを更新することができる。
【００５６】
（第４の実施形態）
次に、第４の実施形態にかかる制御システムＳについて説明する。図８は、第４の実施形態にかかる制御システムＳの構成図である。この第４の実施形態は、第３の実施形態を前提とする。
【００５７】
パソコン１（管理装置）のエンジニアリングツール１１に、制御システムＳにおける機器構成と制御ソフトウェアファイルの関連を示すＩＤ（IDentifier）を含むテーブル情報である機器構成・制御ソフトウェアファイルＩＤテーブル１１１と、制御システムＳにおける機器毎の種類に応じた複数の制御ソフトウェアファイルの集合である制御ソフトウェアファイル群１１２を設ける。
【００５８】
機器構成・制御ソフトウェアファイルＩＤテーブル１１１は、コントローラ機器を頂点として、ステーションバス機器、Ｉ／Ｏ通信機器、ＡＩ機器、ＡＯ機器、ＤＩ機器、ＤＯ機器のすべての配置と、各機器の制御ソフトウェアファイルを識別するためのＩＤを格納する。
【００５９】
エンジニアリングツール１１における機器構成・制御ソフトウェアファイルＩＤテーブル１１１と制御ソフトウェアファイル群１１２を、コントローラ機器に送信し、記憶させておく。そして、コントローラ機器は、その記憶した機器構成・制御ソフトウェアファイルＩＤテーブル１１１と制御ソフトウェアファイル群１１２に基づいて、データ経路Ｒ１〜Ｒ３に沿って各機器に対応する制御ソフトウェアファイルをダウンロードさせるとともに当該制御ソフトウェアによる制御処理を実行させる。
【００６０】
実際のプラントでは、コントローラ機器の配下に、数十〜数百のＩ／Ｏ通信機器と、数百〜数千のＩ／Ｏ機器（ＡＩ機器、ＡＯ機器、ＤＩ機器、ＤＯ機器）が存在する場合が多い。従来技術における新たな制御ソフトウェアの機器毎のダウンロードでは、数日以上の膨大な時間を必要としていた。
【００６１】
一方、第４の実施形態の制御システムＳによれば、パソコン１のエンジニアリングツール１１で新たな制御ソフトウェアのダウンロードを行う機器の選択と必要な制御ソフトウェアファイルの読み込みを行うだけで、すべての機器へのダウンロードを実行できるので、数分という短時間で完了することができる。また、所定の複数の機器（例えば、複数のＩ／Ｏ通信機器など）へ並行してダウンロードを実施することもできる。
【００６２】
（第５の実施形態）
次に、第５の実施形態にかかる制御システムＳについて説明する。第１の実施形態では、図１等に示すように、ＣＰＵ２１は、第１の領域２３２に記憶されている第１制御ソフトウェアを実行してＩ／Ｏ機器３の制御を行いながら、パソコン１のエンジニアリングツール１１から受信した新たな制御ソフトウェアを第２の領域２３３に書き込んでいた。第５の実施形態では、ＦＲＯＭ２３に制御ソフトウェアを記憶しておき、ＣＰＵ２１は、その制御ソフトウェアを実行するときは、ＲＡＭ２２に転送してＲＡＭ２２上で実行し、パソコン１のエンジニアリングツール１１から新たな制御ソフトウェアを受信したときは、その新たな制御ソフトウェアをＦＲＯＭ２３に書き込む。以下、第１の実施形態との相違点を中心に詳述する。
【００６３】
図９は、第５の実施形態にかかる制御システムＳの構成図である。コントローラ２のＦＲＯＭ２３には、制御ソフトウェアが格納されている。また、ＦＲＯＭ２３には、第１の実施形態と異なり、制御ソフトウェア選択フラグ２３１１が存在しない。
【００６４】
ＲＡＭ２２は、ＦＲＯＭ２３から転送された制御ソフトウェアを記憶する。ＣＰＵ２１は、ＲＡＭ２２に記憶されている制御ソフトウェアを実行することによるＩ／Ｏ機器３の制御中に、パソコン１のエンジニアリングツール１１（外部）から新たな制御ソフトウェアを受信した場合に、当該新たな制御ソフトウェアをＦＲＯＭ２３に記憶してから、Ｉ／Ｏ機器３に対して出力保持指令を送信する。その後、ＣＰＵ２１は、リセット処理を実行してＦＲＯＭ２３に記憶されている新たな制御ソフトウェアをＲＡＭ２２に転送した後、ＲＡＭ２２に記憶されている新たな制御ソフトウェアを実行するとともに、Ｉ／Ｏ機器３に対して出力許可指令を送信する。
【００６５】
以下、図９を用いて制御システムＳの動作の概要を説明した後、図１０、図１１を用いて各構成の動作の詳細を説明する。まず、パソコン１のエンジニアリングツール１１は、新たな制御ソフトウェアをコントローラ２へダウンロードする（１１）。ＣＰＵ２１は、ダウンロードされた新たな制御ソフトウェアをＦＲＯＭ２３に格納する（１２）。
【００６６】
次に、ＣＰＵ２１は、初期診断実行フラグ２２１を「１」から「０」に変更する（１３）。次に、ＣＰＵ２１は、Ｉ／Ｏインタフェース２５を経由して、すべてのＩ／Ｏ機器３へ出力保持指令を送信する（１４）。これにより、Ｉ／Ｏ機器３は、データの出力を停止してデータを保持する。次に、ＣＰＵ２１は、コントローラ２をリセット処理（リブート）する（１５）。次に、ＣＰＵ２１は、リセット処理の後、ＦＲＯＭ２３の新たな制御ソフトウェアをＲＡＭ２２に転送し（１６）、ＲＡＭ２２上の新たな制御ソフトウェアとアプリケーションプログラムを実行し、Ｉ／Ｏ機器３との通信設定が完了したら、すべてのＩ／Ｏ機器３へ出力許可指令を送信する（１７）。
【００６７】
図１０は、第５の実施形態にかかるコントローラ２のブート処理を示すフローチャートである。ＣＰＵ２１は、ブート処理プログラム２３１を実行し、まず、ブート（リブート）処理の要求があったか否かを判定し（ステップＳ３１）、Ｙｅｓの場合はステップＳ３２に進み、Ｎｏの場合はステップＳ３１に戻る。
【００６８】
ステップＳ３２において、ＣＰＵ２１は、初期化処理を実行する。次に、ＣＰＵ２１は、ＦＲＯＭ２３の制御ソフトウェアをＲＡＭ２２に転送する（ステップＳ３３）。次に、ＣＰＵ２１は、ＲＡＭ２２上の制御ソフトウェアによる処理に移行し（ステップＳ３４）、処理を終了する。
【００６９】
図１１は、第５の実施形態にかかるコントローラ２のＣＰＵ２１による処理を示すフローチャートである。まず、ＣＰＵ２１は、ＲＡＭ２２上の制御ソフトウェアによる処理を開始する（ステップＳ４１）。
【００７０】
次に、ＣＰＵ２１は、パソコン１のエンジニアリングツール１１から新たな制御ソフトウェアのダウンロード要求があるか否かを判定し（ステップＳ４２）、Ｙｅｓの場合はステップＳ４３に進み、Ｎｏの場合はステップＳ４２に戻る。
【００７１】
ステップＳ４３において、ＣＰＵ２１は、ＦＲＯＭ２３に、パソコン１のエンジニアリングツール１１から受信した新たな制御ソフトウェアをダウンロードする（図９の（１１）（１２））。
【００７２】
次に、ＣＰＵ２１は、初期診断実行フラグ２２１を「１」から「０」に変更（クリア）する（ステップＳ４４。図９の（１３））。
【００７３】
次に、ＣＰＵ２１は、Ｉ／Ｏインタフェース２５を経由して、すべてのＩ／Ｏ機器３へ出力保持指令を送信する（ステップＳ４５。図９の（１４））。次に、ＣＰＵ２１は、ブート（リブート）処理を要求する（ステップＳ４６）。この後、ＣＰＵ２１は、ブート処理プログラム２３１を実行し（ステップＳ４７）、図１０の処理において、ステップＳ３１でＹｅｓ→ステップＳ３２→ステップＳ３３→ステップＳ３４と進み、新たな制御ソフトウェアをＦＲＯＭ２３からＲＡＭ２２に転送する（図９の（１６））とともに、新たな制御ソフトウェアによる処理に移行する。
【００７４】
次に、ＣＰＵ２１は、ＲＡＭ２２上の新たな制御ソフトウェアを実行し、初期診断実行フラグ２２１の状態（「０」）に基づき、初期診断を実行せず、初期診断実行フラグ２２１を「０」から「１」に変更する（ステップＳ４８）。
【００７５】
次に、ＣＰＵ２１は、ＲＡＭ２２に格納されたアプリケーションプログラムも併せて用いて、Ｉ／Ｏ機器３に対する制御処理を開始する（ステップＳ４９）。
【００７６】
次に、ＣＰＵ２１は、Ｉ／Ｏインタフェース２５を経由して、すべてのＩ／Ｏ機器３へ出力許可指令を送信する（ステップＳ５０。図９の（１７））。ステップＳ５０の後、ステップＳ４２に戻る。
【００７７】
このようにして、第５の実施形態の制御システムＳによれば、コントローラ２の制御ソフトウェアを更新するために制御システムＳを停止する時間を従来よりも短くすることができる。さらに、既存のコントローラで、ＦＲＯＭでの素子劣化によるリードエラーを回避するためにＦＲＯＭの制御ソフトウェアをＲＡＭ上に転送して動作させている場合、ＲＡＭ上に初期診断実行フラグ２２１を追加する等の少ない変更のみで第５の実施形態のコントローラ２を実現できるので、手間が少なくて済む。
【００７８】
なお、前述した第２の実施形態〜第４の実施形態は、第１の実施形態の制御システムＳを前提として説明したが、この第５の実施形態の制御システムＳを前提として実現してもよい。
【００７９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００８０】
また、本実施形態の制御システムＳで実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータ装置で読み取り可能な記録媒体に記録して提供することができる。また、本実施形態の制御システムＳで実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。
【符号の説明】
【００８１】
１      パソコン
１１    エンジニアリングツール
１１１  機器構成・制御ソフトウェアファイルＩＤテーブル
１１２  制御ソフトウェアファイル群
２      コントローラ
２１    ＣＰＵ
２２    ＲＡＭ
２２１  初期診断実行フラグ
２２２  時計情報
２２３  切替日時情報
２２４  切替タイミング情報
２３    ＦＲＯＭ
２３１  ブート処理プログラム
２３２  第１の領域
２３３  第２の領域
２４    ツールインタフェース
２５    Ｉ／Ｏインタフェース
２６    バス
３      Ｉ／Ｏ機器
４      通信路
５      通信路
【図１】
2018022367.tif 000003
【図２】
2018022367.tif 000004
【図３】
2018022367.tif 000005
【図４】
2018022367.tif 000006
【図５】
2018022367.tif 000007
【図６】
2018022367.tif 000008
【図７】
2018022367.tif 000009
【図８】
2018022367.tif 000010
【図９】
2018022367.tif 000011
【図１０】
2018022367.tif 000012
【図１１】
2018022367.tif 000013