(57)【要約】【課題】バックアップのためのストレージへの書き込み処理時間の短縮、およびバックアップのためのストレージへの書き込み回数を低減する。【解決手段】実施形態のコントローラは、第１の記憶部と、変更情報生成部と、保存処理部とを備える。第１の記憶部は、プラント制御処理によって生成された複数のデータを記憶可能な揮発性の記憶部である。変更情報生成部は、複数のデータのうち、所定の期間内に変化があったデータの第１の記憶部における格納先を示す変更情報を生成する。保存処理部は、所定の期間ごとに、変更情報が示す格納先に格納されたデータを不揮発性の第２の記憶部に保存する。【選択図】図１
2020149477.tif 000002
【特許請求の範囲】
【請求項１】
プラント制御処理によって生成された複数のデータを記憶可能な揮発性の第１の記憶部と、
前記複数のデータのうち、所定の期間内に変化があったデータの前記第１の記憶部における格納先を示す変更情報を生成する変更情報生成部と、
前記所定の期間ごとに、前記変更情報が示す格納先に格納された前記データを不揮発性の第２の記憶部に保存する保存処理部と、
を備えるコントローラ。
【請求項２】
前記第１の記憶部および前記第２の記憶部は、互いに重ならないように設定された複数のアドレス空間に分割され、
前記複数のデータの各々は、前記第１の記憶部の前記複数のアドレス空間のいずれかに格納され、
前記変更情報は、前記アドレス空間の識別情報と、前記アドレス空間に格納された前記データの前記所定の期間内における変化の有無とが対応付けられており、
前記第１の記憶部は、前記第１の記憶部における前記アドレス空間と、前記第２の記憶部における前記アドレス空間との対応付けを示す対応付け情報を記憶し、
前記保存処理部は、前記変更情報を参照して、前記第１の記憶部の前記複数のアドレス空間のうち、前記所定の期間内に変化があった前記データを格納するアドレス空間を特定し、特定した前記アドレス空間に記憶された全てのデータを、特定した前記アドレス空間に対応付けられた前記第２の記憶部のアドレス空間に書き込む、
請求項１に記載のコントローラ。
【請求項３】
前記第１の記憶部は、前記複数のデータを記憶可能な第１の記憶領域と、前記複数のデータのうち前記変更情報が示す格納先に格納された前記データを記憶可能な第２の記憶領域と、を有し、
前記保存処理部は、前記変更情報が示す格納先に格納された前記データを前記第１の記憶領域から前記第２の記憶領域にコピーし、当該コピー後に、前記データを前記第２の記憶領域から前記第２の記憶部にコピーする、
請求項１または２に記載のコントローラ。
【請求項４】
前記保存処理部は、ユーザから前記第２の記憶部の交換の準備を要求する操作を受け付けた場合に、前記第１の記憶部から前記第２の記憶部への前記データの保存を停止し、ユーザから前記第２の記憶部の交換の完了を入力する操作を受け付けた場合に、前記第１の記憶部から前記第２の記憶部への前記データの保存を再開する、
請求項１から３のいずれか１項に記載のコントローラ。
【請求項５】
前記第２の記憶部の書き込み回数が所定の閾値以上となった場合に警告を出力する出力部、
をさらに備える、
請求項４に記載のコントローラ。
【請求項６】
前記変更情報生成部は、前記複数のデータのうち、変化量が所定の変化量以上であるデータを、変化があったデータと判断する、
請求項１から５のいずれか１項に記載のコントローラ。
【請求項７】
前記第２の記憶部に保存された前記データと、前記第１の記憶部に記憶された前記データとの差分データを記憶可能な揮発性の第３の記憶部と、
外部からの電力供給が停止した場合に、前記第３の記憶部に電力を供給するバッテリと、
前記コントローラが起動した場合に、前記第２の記憶部から前記第１の記憶部に前記データを転送し、当該転送後に、前記第２の記憶部から前記第１の記憶部に前記差分データを転送するデータ転送部と、をさらに備える、
請求項１から６のいずれか１項に記載のコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、コントローラに関する。
【背景技術】
【０００２】
従来、産業プラント（以下、単に「プラント」という）を制御するＤＣＳ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ：分散制御システム）またはプログラマブルロジックコントローラ（ＰＬＣ：Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）等において、処理に用いられる各種のデータをバックアップする技術が知られている。例えば、停電等によって外部電源からの電力供給が停止した場合に、バッテリから供給される電力によって処理を継続し、その間にデータをＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）等の不揮発性の記憶媒体に保存する技術が知られている。
【０００３】
また、近年、通常のＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）のアーキテクチャを利用したプログラマブルロジックコントローラ等が主流となってきている。このようなプログラマブルロジックコントローラ等においては、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）またはｅＭＭＣ（ｅｍｂｅｄｄｅｄ  Ｍｕｌｔｉ  Ｍｅｄｉａ  Ｃａｒｄ）等のストレージに、定期的にデータを保存することにより、データをバックアップする技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−８０９４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術においては、バックアップのためのストレージへの書き込み処理時間の短縮、およびバックアップのためのストレージへの書き込み回数を低減することについてのニーズがあった。
【課題を解決するための手段】
【０００６】
実施形態のコントローラは、第１の記憶部と、変更情報生成部と、保存処理部とを備える。第１の記憶部は、プラント制御処理によって生成された複数のデータを記憶可能な揮発性の記憶部である。変更情報生成部は、複数のデータのうち、所定の期間内に変化があったデータの第１の記憶部における格納先を示す変更情報を生成する。保存処理部は、所定の期間ごとに、変更情報が示す格納先に格納されたデータを不揮発性の第２の記憶部に保存する。
【図面の簡単な説明】
【０００７】
【図１】図１は、第１の実施形態にかかる制御システムの全体構成の一例を模式的に示す図である。
【図２】図２は、第１の実施形態にかかるＲＡＭおよびストレージに記憶される各種のデータの一例を示す図である。
【図３】図３は、第１の実施形態にかかるコントローラの機能的構成の一例を示す図である。
【図４】図４は、第１の実施形態にかかる処理データのバックアップ処理の流れの一例を示すタイムチャートである。
【図５】図５は、第１の実施形態にかかる処理の流れの一例を示すフローチャートである。
【図６】図６は、第１の実施形態にかかる処理データのバックアップ処理の流れの一例を示すフローチャートである。
【図７】図７は、第１の実施形態にかかる設定データのバックアップ処理の流れの一例を示すフローチャートである。
【図８】図８は、第２の実施形態にかかるＲＡＭおよびストレージに記憶される各種のデータの一例を示す図である。
【図９】図９は、第２の実施形態にかかる処理の流れの一例を示すフローチャートである。
【図１０】図１０は、第２の実施形態にかかる設定データのバックアップ処理の流れの一例を示すフローチャートである。
【図１１】図１１は、第２の実施形態にかかるストレージの交換時の処理の流れの一例を示すフローチャートである。
【図１２】図１２は、第３の実施形態にかかる処理データから微小変化の影響を除く手法の一例を説明する図である。
【図１３】図１３は、第４の実施形態にかかる制御システムの全体構成の一例を模式的に示す図である。
【図１４】図１４は、第４の実施形態にかかるＲＡＭ、ストレージ、およびバッテリバックアップＲＡＭに記憶される各種のデータの一例を示す図である。
【図１５】図１５は、第４の実施形態にかかる変更データリスト２７１の一例を示す図である。
【図１６】図１６は、第４の実施形態にかかる処理の流れの一例を示すフローチャートである。
【図１７】図１７は、比較例にかかるプラント制御処理とバックアップ処理の実行タイミングの一例を示すタイムチャートである。
【図１８】図１８は、他の比較例にかかる停電時におけるバックアップ処理の実行タイミングの一例を示すタイムチャートである。
【発明を実施するための形態】
【０００８】
（第１の実施形態）
図１は、本実施形態にかかる制御システムＳの全体構成の一例を模式的に示す図である。制御システムＳは、例えば産業プラント（プラント）を制御するシステムであり、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）１と、コントローラ２と、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）機器３とを備える。
【０００９】
ＰＣ１は、エンジニアリングツール１１を備える情報処理装置である。ＰＣ１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの制御装置と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの記憶装置と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【００１０】
エンジニアリングツール１１は、コントローラ２を管理するソフトウェア（プログラム）である。一例として、エンジニアリングツール１１は、コントローラ２で実行されるアプリケーションプログラムの生成、生成したアプリケーションプログラムのコントローラ２への送信、コントローラ２で実行される処理の監視（モニタリング）等を実行する。
【００１１】
Ｉ／Ｏ機器３は、プラントを構成する装置との入出力を行うための機器である。Ｉ／Ｏ機器３としては、例えば、制御対象設備に設置されたセンサ等からの信号の入力を行う入力装置（ＡＩ（Ａｎａｌｏｇ  Ｉｎｐｕｔ）機器、ＤＩ（Ｄｉｇｉｔａｌ  Ｉｎｐｕｔ）機器）や、制御対象設備のアクチュエータ等に対して信号の出力を行う出力装置（ＡＯ（Ａｎａｌｏｇ  Ｏｕｔｐｕｔ）機器、ＤＯ（Ｄｉｇｉｔａｌ  Ｏｕｔｐｕｔ）機器）がある。
【００１２】
コントローラ２は、Ｉ／Ｏ機器３の動作を制御することにより、プラントを制御する装置である。コントローラ２は、例えば、ＤＣＳ（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｏｎｔｒｏｌ  Ｓｙｓｔｅｍ：分散制御システム）用コントローラまたはＰＬＣ（ＰＬＣ：Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）等であるものとする。
【００１３】
本実施形態のコントローラ２は、ＣＰＵ２１と、ＲＡＭ２２と、ストレージ２３と、ツールインタフェース２４と、Ｉ／Ｏインタフェース２５と、バス２６とを備える。
【００１４】
ツールインタフェース２４は、ＰＣ１との間で情報の送受信を行うためのインタフェースである。Ｉ／Ｏインタフェース２５は、Ｉ／Ｏ機器３との間で情報の送受信を行うためのインタフェースである。バス２６は、コントローラ２の内部のデータ伝送路である。
【００１５】
通信路４は、ＰＣ１とコントローラ２とを結ぶ通信路であり、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）やＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などの高速の通信路である。また、通信路５は、コントローラ２とＩ／Ｏ機器３とを結ぶ通信路である。
【００１６】
ＲＡＭ２２は、コントローラ２の主記憶装置であり、ＣＰＵ２１の動作領域である。ＲＡＭ２２は、本実施形態における揮発性の第１の記憶部の一例である。ＲＡＭ２２は、後述の複数の処理データを記憶可能である。
【００１７】
ストレージ２３は、不揮発性の記憶装置であり、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）またはｅＭＭＣ（ｅｍｂｅｄｄｅｄ  Ｍｕｌｔｉ  Ｍｅｄｉａ  Ｃａｒｄ）等である。ストレージ２３は、本実施形態における第２の記憶部の一例である。本実施形態におけるＲＡＭ２２およびストレージ２３は、互いに重ならないように設定された複数のアドレス空間に分割されるものとする。本実施形態においては、当該アドレス空間を、ブロックという。
【００１８】
次に、本実施形態におけるＲＡＭ２２およびストレージ２３に記憶される各種のデータについて説明する。
【００１９】
図２は、本実施形態にかかるＲＡＭ２２およびストレージ２３に記憶される各種のデータの一例を示す図である。
【００２０】
ＲＡＭ２２には、処理データ記憶領域２２１と、一時記憶領域２２２と、バックアップ不要データ記憶領域２２３と、設定データ記憶領域２２４とが設けられる。各記憶領域は、例えば論理アドレスによって区別されている。
【００２１】
処理データ記憶領域２２１は、コントローラ２で実行されるプラント制御処理で生成される複数の処理データを記憶可能な記憶領域である。処理データ記憶領域２２１は、第１の記憶領域の一例である。
【００２２】
より詳細には、処理データは、アプリケーションプログラム７２に含まれる処理の実行によって変化するデータであり、可変データともいう。一例として、処理データは、アプリケーションプログラム７２によって生成されたデータ、また、Ｉ／Ｏ機器３からの入力値等である。処理データは、ストレージ２３へのバックアップの対象となる。また、本実施形態においては、処理データは、データの一例である。
【００２３】
また、本実施形態においては、処理データ記憶領域２２１は、複数の処理データを記憶可能な領域である。複数の処理データの各々は、後述の処理実行部２０３によって、処理データ記憶領域２２１のブロックのいずれかに格納される。本実施形態における複数のブロックは、互いに重ならないように設定された複数のアドレス空間の一例である。
【００２４】
各ブロックには、複数の処理データが格納されるものとしても良いし、１の処理データが格納されても良い。また、複数のブロックの各々は、識別情報によって特定可能であるものとする。本実施形態においては、ブロックの識別情報は、ブロック番号という。また、ブロックの識別情報は、ＲＡＭ２２における論理アドレス等でも良い。
【００２５】
処理データ記憶領域２２１におけるブロックは、ストレージ２３のブロックと同一の記憶容量であり、ストレージ２３のブロックと一対一で対応するものとする。例えば、処理データ記憶領域２２１の複数のブロックと、ストレージ２３における複数のブロックのうち、ブロック番号が同一のブロック同士が対応関係にあるものとする。つまり、処理データ記憶領域２２１の“ブロック１”に格納された処理データのバックアップ先は、ストレージ２３の“ブロック１”となる。ＲＡＭ２２の処理データ記憶領域２２１におけるブロックと、ストレージ２３のブロックの対応付けを示す対応付け情報は、一例として、ＲＡＭ２２内に保存されるものとする。なお、本実施形態では、ブロック番号が同一のブロック同士が対応付けられているものとしたが、対応付け情報は、ブロック番号が異なるブロック同士を対応付けても良い。
【００２６】
また、図２に示す例では、複数の処理データの各々は、ブロック１、ブロック２、ブロック３の３つのブロックのいずれかに格納されているが、ブロックの数はこれに限定されるものではない。また、ストレージ２３および処理データ記憶領域２２１における複数のブロックの各々の大きさは、一例として、５１２ＫＢとする。なお、ＲＡＭ２２の記憶領域全体が複数のブロックに分割されても良いし、処理データ記憶領域２２１のみが複数のブロックに分割されても良い。
【００２７】
一時記憶領域２２２は、処理データ記憶領域２２１に記憶された処理データのうち、後述の変更マップ２２３１が示すバックアップ対象の処理データを記憶可能な記憶領域である。一時記憶領域２２２は、ストレージ２３の書き込み単位であるブロックと同じ大きさの記憶領域が複数設けられる。図２に示す例では、一時記憶領域２２２は、３つの記憶領域を有するが、一時記憶領域２２２に含まれる記憶領域の数は、処理データ記憶領域２２１に記憶されるブロックの数以下であれば良く、図２に示す例に限定されるものではない。
【００２８】
一時記憶領域２２２の複数の記憶領域の各々には、処理データ記憶領域２２１からブロック単位でコピーされた処理データが保存される。より詳細には、一時記憶領域２２２は、処理データ記憶領域２２１に記憶された処理データのブロックのうち、前回のバックアップ処理よりも後に変更された処理データを含むブロックを、記憶する。一時記憶領域２２２は、第２の記憶領域の一例である。
【００２９】
バックアップ不要データ記憶領域２２３は、ストレージ２３へのバックアップの対象とならない各種のデータを記憶する記憶領域である。本実施形態においては、バックアップ不要データ記憶領域２２３には、変更マップ２２３１と、一時記憶領域使用マップ２２３２と、ブート（ＢＯＯＴ）処理プログラム７０と、制御プログラム７１と、アプリケーションプログラム７２と、バックアップ処理プログラム７３とが記憶される。
【００３０】
また、前述の一時記憶領域２２２に保存されるデータもストレージ２３へのバックアップの対象外となるため、一時記憶領域２２２とバックアップ不要データ記憶領域２２３とを含む記憶領域２２５を、バックアップ不要データ記憶領域としても良い。
【００３１】
変更マップ２２３１には、処理データ記憶領域２２１に記憶された複数の処理データのうち、所定の期間内に変化があったデータの格納先を示す情報が登録される。所定の期間は、後述のバックアップ周期６０で定義される期間である。一例として、変更マップ２２３１には、処理データ記憶領域２２１に記憶された処理データの複数のブロックの各々の番号と、複数のブロックの各々に格納された処理データの前回のバックアップ処理以降の変更の有無とが対応付けられた情報が、ブロックの数分登録される。
【００３２】
図２に示す例では、変更マップ２２３１には、処理データ記憶領域２２１に記憶された処理データの複数のブロックのうち、ブロック１およびブロック２が“変更あり”、ブロック３が“変更なし”と登録されている。初期状態においては、変更マップ２２３１には、処理データ記憶領域２２１に記憶された全てのブロックに対して“変更なし”と登録されているものとする。変更マップ２２３１に登録された個々の情報が、本実施形態における変更情報の一例である。
【００３３】
なお、変更マップ２２３１の登録形式は図２に示す例に限定されるものではない。例えば、変更されていない処理データのみが格納されたブロックのブロック番号は登録されず、変更された処理データを格納するブロックのブロック番号のみが登録されるものとしても良い。具体的には、ブロック１およびブロック２が変更された場合は、変更マップ２２３１には、単に“ブロック１”および“ブロック２”と登録されるものとしても良い。
【００３４】
一時記憶領域使用マップ２２３２は、一時記憶領域２２２に含まれる複数の記憶領域のうち、処理データが保存されている記憶領域を示す情報である。図２に示す例では、一時記憶領域使用マップ２２３２は、一時記憶領域２２２に含まれる３つの記憶領域のうち、１つ目の記憶領域には処理データ記憶領域２２１のブロック１の処理データが記憶され、２つ目の記憶領域には処理データ記憶領域２２１のブロック２の処理データが記憶され、３つ目の記憶領域には処理データが記憶されていないことを示している。
【００３５】
ブート処理プログラム７０は、コントローラ２が起動した場合に起動するプログラムである。一例として、ブート処理プログラム７０は、コントローラ２が起動した場合に、ストレージ２３の処理データ記憶領域２３１および設定データ記憶領域２３２に記憶された各種のデータと、制御プログラム７１と、アプリケーションプログラム７２と、バックアップ処理プログラム７３とをＲＡＭ２２に転送する。
【００３６】
制御プログラム７１は、コントローラ２の基本的な機能を実現するためのプログラムである。
【００３７】
アプリケーションプログラム７２は、プラントを管理するための各種の処理を含むプログラムである。一例として、アプリケーションプログラム７２は、Ｉ／Ｏ機器３への制御信号の送信、Ｉ／Ｏ機器３からのデータの取得等の処理を含む。アプリケーションプログラム７２に含まれる処理は、実行周期（スキャン周期）が予め定義されている。処理の実行周期の長さは特に限定されるものではないが、例えば１００ｍｓとするが、これに限定されるものではない。本実施形態においては、アプリケーションプログラム７２によって実行される処理を、プラント制御処理という。
【００３８】
バックアップ処理プログラム７３は、処理データおよび後述の設定データをストレージ２３にバックアップするための各種の処理を実行するプログラムである。
【００３９】
設定データ記憶領域２２４は、ユーザ等によって不定期に変更される設定データを記憶可能な記憶領域である。設定データ記憶領域２２４は、一例として、バックアップ周期６０と、パラメータデータ６１とを記憶する。本実施形態においては、バックアップ周期６０と、パラメータデータ６１を総称して、設定データという。なお、設定データはこれらに限定されるものではない。設定データは、ストレージ２３へのバックアップの対象となる。
【００４０】
バックアップ周期６０は、処理データがストレージ２３にバックアップされる周期である。本実施形態においては、バックアップ周期６０は、アプリケーションプログラム７２の実行周期の数で定義される。例えば、アプリケーションプログラム７２の処理が３回実行されるごとに処理データがストレージ２３にバックアップされる設定の場合には、バックアップ周期６０は“３”と設定される。バックアップ周期６０は、所定の期間の一例である。本実施形態においては、バックアップ周期６０は、アプリケーションプログラム７２の処理の実行周期を２回以上含む期間とする。
【００４１】
また、バックアップ周期６０は、アプリケーションプログラム７２の処理の実行周期の整数倍の数で定義されても良い。例えば、アプリケーションプログラム７２の処理の実行周期が１００ｍｓの場合に、バックアップ周期６０が“３００ｍｓ”であると、アプリケーションプログラム７２の処理が３回実行されるごとに処理データがストレージ２３にバックアップされる設定となる。
【００４２】
パラメータデータ６１は、Ｉ／Ｏ機器３の設定情報、またはアプリケーションプログラム７２のパラメータ値等である。パラメータデータ６１は、ユーザの操作によって不定期に変更される。
【００４３】
ストレージ２３には、処理データ記憶領域２３１と、設定データ記憶領域２３２と、プログラム記憶領域２３３とが設けられる。
【００４４】
処理データ記憶領域２３１は、ＲＡＭ２２からコピーされた処理データを記憶可能な記憶領域であり、第１のバックアップ領域ともいう。処理データは、ストレージ２３におけるブロックの単位で記憶される。なお、図２では、処理データのみブロックを表示しているが、ストレージ２３においては、設定データ記憶領域２３２およびプログラム記憶領域２３３に記憶される各種のデータも、ストレージ２３におけるブロックの単位で記憶されるものとする。
【００４５】
設定データ記憶領域２３２は、ＲＡＭ２２からコピーされた設定データを記憶可能な記憶領域であり、第２のバックアップ領域ともいう。本実施形態においては、設定データ記憶領域２３２は、バックアップ周期６０と、パラメータデータ６１とを記憶する。
【００４６】
処理データ記憶領域２３１および設定データ記憶領域２３２に記憶された処理データおよび設定データは、バックアップデータともいう。
【００４７】
プログラム記憶領域２３３は、コントローラ２で実行される各種のプログラムを記憶する記憶領域である。本実施形態においては、プログラム記憶領域２３３は、ブート処理プログラム７０と、制御プログラム７１と、アプリケーションプログラム７２と、バックアップ処理プログラム７３とを記憶する。
【００４８】
次に、本実施形態のコントローラ２の機能的構成の詳細について説明する。
【００４９】
図３は、本実施形態にかかるコントローラ２の機能的構成の一例を示す図である。図３に示すように、コントローラ２は、データ転送部２０１と、受付部２０２と、処理実行部２０３と、変更記録部２０４と、保存処理部２０５と、出力部２０６とを備える。
【００５０】
データ転送部２０１は、コントローラ２が起動した場合に、ストレージ２３からＲＡＭ２２に各種のデータを転送する。コントローラ２が起動した場合とは、コントローラ２の初回起動時だけではなく、例えば、停電等による外部からの電力供給の停止によってコントローラ２の電源がオフ状態となった後に、外部からの電源供給の再開によってコントローラ２が起動した場合も含む。ストレージ２３からＲＡＭ２２に転送されるデータは、例えば、処理データ記憶領域２３１にバックアップ済みのされた処理データ、設定データ記憶領域２３２にバックアップ済みのバックアップ周期６０およびパラメータデータ６１等である。
【００５１】
受付部２０２は、エンジニアリングツール１１を介して、ユーザによる設定データの変更操作を受け付ける。受付部２０２は、設定データ、例えばバックアップ周期６０またはパラメータデータ６１の変更操作を受け付けた場合に、設定データ記憶領域２２４に保存されたバックアップ周期６０またはパラメータデータ６１を変更する。受付部２０２は、設定データの変更操作を受け付けた場合に、変更対象の設定データを、保存処理部２０５に通知する。
【００５２】
処理実行部２０３は、アプリケーションプログラム７２によって実現される機能であり、アプリケーションプログラム７２に定義されたプラント制御処理を実行する。処理実行部２０３は、予め定められた実行周期ごとにプラント制御処理を実行する。処理実行部２０３は、プラント制御処理によって発生する複数の処理データの各々を、処理データ記憶領域２２１の複数のブロックのいずれかに保存する。また、処理実行部２０３は、プラント制御処理を実行することにより、処理データ記憶領域２２１に記憶された処理データを参照または更新する。また、処理実行部２０３は、プラント制御処理が完了した場合に、変更した処理データの格納先ブロックのブロック番号を、変更記録部２０４に通知する。
【００５３】
変更記録部２０４は、処理データ記憶領域２２１に記憶された複数の処理データのうち、バックアップ周期６０として定義された期間内に変化があった処理データのＲＡＭ２２における格納先を示す変更情報を生成し、生成した変更情報を変更マップ２２３１に登録する。より詳細には、変更記録部２０４は、処理実行部２０３によって処理が実行される度に、処理データ記憶領域２２１に記憶された複数の処理データの変更の有無をブロック単位で判断し、各ブロックに格納された処理データの変更の有無を変更マップ２２３１に登録する。変更記録部２０４は、本実施形態における変更情報生成部の一例である。
【００５４】
本実施形態においては、変更記録部２０４は、処理実行部２０３から変更した処理データの格納先のブロックの通知を受けた場合に、当該ブロックの処理データが変更されたものと判断する。なお、変化があった処理データを判断する手法はこれに限定されるものではない。
【００５５】
保存処理部２０５は、バックアップ周期６０として定義された期間ごとに、変更マップ２２３１によって示される処理データをストレージ２３に保存する。保存処理部２０５による処理を、本実施形態においては、バックアップ処理という。保存処理部２０５は、変更マップ２２３１を参照して、処理データ記憶領域２２１の複数のブロックのうち、バックアップ周期６０で定義される期間内に変化があった処理データを格納するブロックを特定し、特定したブロックに記憶された全てのデータを、特定したブロックに対応付けられたストレージ２３のブロックに書き込む。
【００５６】
より詳細には、保存処理部２０５は、変更マップ２２３１によって特定される処理データを、ブロック単位で、処理データ記憶領域２２１から一時記憶領域２２２の空き領域にコピーする。保存処理部２０５は、一時記憶領域使用マップ２２３２に登録された各領域の使用状況に基づいて、一時記憶領域２２２の空き領域を判断する。
【００５７】
また、保存処理部２０５は、処理データを一時記憶領域２２２へコピーした場合に、当該処理データのコピー先の領域と、コピーした処理データのブロック番号とを、一時記憶領域使用マップ２２３２に登録する。
【００５８】
また、保存処理部２０５は、一時記憶領域２２２にコピーされた処理データを、一時記憶領域２２２からストレージ２３に、ブロック単位で、コピーする。保存処理部２０５は、一時記憶領域２２２に記憶された処理データのブロック番号と同一のブロック番号のストレージ２３のブロックに、処理データをコピーする。
【００５９】
保存処理部２０５は、変更マップ２２３１によって特定される処理データの処理データ記憶領域２２１から一時記憶領域２２２へのコピーが完了した場合に、変更マップ２２３１に登録された全てのブロック番号の各々の変更状況を“変更なし”にする。また、保存処理部２０５は、一時記憶領域２２２からストレージ２３への処理データのコピーが完了すると、一時記憶領域２２２および一時記憶領域使用マップ２２３２に保存されたデータを削除する。
【００６０】
また、保存処理部２０５は、受付部２０２からいずれかの設定データが変更されたことを通知された場合に、設定データ記憶領域２２４に記憶された変更後の設定データを、ストレージ２３にコピーする。
【００６１】
出力部２０６は、アプリケーションプログラム７２に定義されたプラント制御処理の実行状況をＰＣ１に出力する。
【００６２】
ここで、本実施形態にかかる処理データのバックアップ処理の流れについて、タイムチャートを用いて説明する。
【００６３】
図４は、本実施形態にかかる処理データのバックアップ処理の流れの一例を示すタイムチャートである。
【００６４】
図４に示すように、アプリケーションプログラム７２に定義された処理であるプラント制御処理は、予め定められた実行周期で実行される。また、プラント制御処理の実行が完了する度に、変更記録部２０４が、プラント制御処理によって変更された処理データのブロック番号を記録する変更記録処理を実行する。変更記録処理は、バックアップ準備処理ともいう。
【００６５】
また、図４に示す例におけるバックアップ周期６０は“３”であり、プラント制御処理の実行周期が３回到来する毎に、バックアップ処理が実行されるものとする。
【００６６】
例えば、１回目の実行周期において、プラント制御処理によってブロック１の処理データが変更されたとする。この場合、変更記録部２０４は、変更マップ２２３１に、ブロック１が“変更あり”であることを登録する。
【００６７】
また、２回目の実行周期において、プラント制御処理によってブロック２の処理データが変更されたとする。この場合、変更記録部２０４は、変更マップ２２３１に、ブロック２が“変更あり”であることを登録する。
【００６８】
また、ストレージ２３には、前回以前のバックアップ周期で保存された処理データが記憶されているものとする。１回目の実行周期と２回目の実行周期においては、バックアップのタイミングではないため、処理データはストレージ２３にバックアップされない。
【００６９】
また、３回目の実行周期において、プラント制御処理によってブロック１およびブロック２の処理データが変更されたとする。この場合、変更記録部２０４は、変更マップ２２３１に、ブロック１およびブロック２が“変更あり”であることを登録する。なお、１回目と２回目の実行周期において、既にブロック１およびブロック２が変更されているため、変更マップ２２３１の内容自体は変化しない。
【００７０】
また、図４に示す例では、プラント制御処理の実行周期が３回到来する毎に、保存処理部２０５によってバックアップ処理が実行される。保存処理部２０５は、変更マップ２２３１に“変更あり”と登録されたブロック１およびブロック２に格納された処理データを、処理データ記憶領域２２１から一時記憶領域２２２の空き領域にコピーする。また、保存処理部２０５は、処理データのコピー先の領域と、ブロック番号とを、一時記憶領域使用マップ２２３２に登録する。一時記憶領域使用マップ２２３２は、図４では記載を省略する。
【００７１】
また、保存処理部２０５は、処理データ記憶領域２２１から一時記憶領域２２２への処理データのコピーが完了した場合に、変更マップ２２３１に登録された全てのブロック番号の各々の変更状況を“変更なし”にする。
【００７２】
保存処理部２０５は、一時記憶領域２２２にコピーされたブロック１およびブロック２の処理データを、一時記憶領域２２２からストレージ２３にコピーする。ブロック３は、前回のバックアップ処理以降に変化していないため、保存処理部２０５は、ストレージ２３のブロック３の処理データを変更しない。この時点で、ストレージ２３は、処理データ記憶領域２２１に記憶された最新の処理データと同様の処理データを記憶している状態となる。
【００７３】
また、保存処理部２０５は、一時記憶領域２２２からストレージ２３への処理データのコピーが完了すると、一時記憶領域２２２および一時記憶領域使用マップ２２３２に保存されたデータを削除する。
【００７４】
ここで、また、バックアップ処理の処理時間によっては、次の実行周期のプラント制御処理の開始前に、バックアップ処理が終了しない場合がある。図４に示す例では、バックアップ処理の実行中に、プラント制御処理の４回目の実行周期が開始しており、処理データ記憶領域２２１のブロック３の処理データが変更されている。しかしながら、保存処理部２０５は、バックアップ対象の処理データを処理データ記憶領域２２１から一時記憶領域２２２にコピーした後にストレージ２３へ保存するため、ストレージ２３への保存処理中に処理データ記憶領域２２１が更新されても問題なくバックアップ処理を継続することができる。このため、処理実行部２０３は、バックアップ処理の完了を待機せずに、実行周期通りにプラント制御処理を実行することができる。
【００７５】
次に、以上のように構成されたコントローラ２で実行される処理の流れについて、フローチャートを用いて説明する。
【００７６】
図５は、本実施形態にかかる処理の流れの一例を示すフローチャートである。このフローチャートの処理は、コントローラ２が起動した場合に開始する。
【００７７】
まず、データ転送部２０１は、コントローラ２が起動すると、ストレージ２３からＲＡＭ２２へバックアップデータを転送する（Ｓ１）。バックアップデータは、具体的には処理データと設定データであるが、このフローチャートの初回実行の際は、ストレージ２３には処理データがまだ保存されていない場合がある。この場合は、データ転送部２０１は、ストレージ２３からＲＡＭ２２へ処理データを転送しなくとも良い。
【００７８】
次に、処理実行部２０３は、プラント制御処理の実行タイミングか否かを判断する（Ｓ２）。前回のプラント制御処理の実行からの時間が所定の実行周期の時間未満である場合は、処理実行部２０３は、現在はプラント制御処理の実行タイミングではないと判断する（Ｓ２“Ｎｏ”）。この場合、処理実行部２０３は、Ｓ２の処理を繰り返して実行タイミングまで待機する。また、このフローチャートの初回実行の際は、処理実行部２０３は、「前回のプラント制御処理の実行からの時間」ではなく、「コントローラ２が起動してからの時間」が所定の実行周期の時間未満である場合に、現時点はプラント制御処理の実行タイミングではないと判断する。
【００７９】
また、前回のプラント制御処理の実行からの時間が所定の実行周期の時間長となった場合は、処理実行部２０３は、現在がプラント制御処理の実行タイミングであると判断する（Ｓ２“Ｙｅｓ”）。この場合、処理実行部２０３は、プラント制御処理を実行する（Ｓ３）。処理実行部２０３は、プラント制御処理が完了した場合に、プラント制御処理の今回の実行周期で変更した処理データのブロックを、変更記録部２０４に通知する。また、このフローチャートの初回実行の際は、処理実行部２０３は、「前回のプラント制御処理の実行からの時間」ではなく、「コントローラ２が起動してからの時間」が所定の実行周期の時間長となった場合に、プラント制御処理の実行タイミングであると判断する。
【００８０】
次に、変更記録部２０４は、処理データ記憶領域２２１に記憶された複数の処理データのうち、変更された処理データがあるか否かを判断する（Ｓ４）。具体的には、変更記録部２０４は、処理実行部２０３から変更した処理データのブロックの通知を受けた場合に、当該ブロックの処理データが変更されたものと判断する。
【００８１】
変更記録部２０４は、処理データ記憶領域２２１に記憶された複数の処理データのうち、変更されたものがあると判断した場合は（Ｓ４“Ｙｅｓ”）、変更された処理データを変更マップ２２３１に登録する（Ｓ５）。より詳細には、変更マップ２２３１において、変更記録部２０４は、変更された処理データのブロックを特定するブロック番号に対応付けて、“変更あり”と登録する。
【００８２】
また、変更記録部２０４は、変更された処理データがないと判断した場合は（Ｓ４“Ｎｏ”）、Ｓ５の処理を行わずに、Ｓ６の処理に進む。
【００８３】
次に、保存処理部２０５は、バックアップ処理の実行タイミングか否かを判断する（Ｓ６）。具体的には、保存処理部２０５は、前回のバックアップ処理の後に実行されたプラント制御処理の実行回数が、ＲＡＭ２２に登録されたバックアップ周期６０と一致する場合に、現在がバックアップ処理の実行タイミングであると判断する（Ｓ６“Ｙｅｓ”）。この場合、保存処理部２０５は、処理データのバックアップ処理を開始する（Ｓ７）。処理データのバックアップ処理の流れの詳細は後述する。
【００８４】
また、このフローチャートの初回実行の際は、保存処理部２０５は、「前回のバックアップ処理の後に実行されたプラント制御処理の実行回数」ではなく、「コントローラ２が起動してから実行されたプラント制御処理の実行回数」がＲＡＭ２２に登録されたバックアップ周期６０と一致する場合に、現在がバックアップ処理の実行タイミングであると判断する。
【００８５】
また、保存処理部２０５は、前回のバックアップ処理の後に実行されたプラント制御処理の実行回数が、ＲＡＭ２２に登録されたバックアップ周期６０未満である場合に、現在がバックアップ処理の実行タイミングではないと判断する（Ｓ６“Ｎｏ”）。この場合、保存処理部２０５は、バックアップ処理を実行せずにＳ２の処理に戻る。
【００８６】
また、このフローチャートの初回実行の際は、保存処理部２０５は、「前回のバックアップ処理の後に実行されたプラント制御処理の実行回数」ではなく、「コントローラ２が起動してから実行されたプラント制御処理の実行回数」がＲＡＭ２２に登録されたバックアップ周期６０未満である場合に、現在がバックアップ処理の実行タイミングではないと判断する。
【００８７】
また、保存処理部２０５は、Ｓ７の処理データのバックアップ処理の開始の後は、Ｓ２の処理に戻る。このフローチャートの処理は、例えば、コントローラ２への電力の供給が停止する等によってコントローラ２の電源がオフ状態になるまで、継続して実行される。なお、ユーザの操作や、所定の条件等によって処理が終了するものとしても良い。
【００８８】
次に、本実施形態にかかる処理データのバックアップ処理の流れについて説明する。
【００８９】
図６は、本実施形態にかかる処理データのバックアップ処理の流れの一例を示すフローチャートである。このフローチャートの処理は、コントローラ２が起動した場合に開始する。
【００９０】
まず、保存処理部２０５は、変更マップ２２３１に"変更あり"と登録されたブロック番号のブロックに格納された処理データを、処理データ記憶領域２２１から、一時記憶領域２２２にコピーする（Ｓ７０１）。
【００９１】
そして、保存処理部２０５は、一時記憶領域２２２の使用中の領域と、当該領域に保存した処理データのブロック番号とを、一時記憶領域使用マップ２２３２に登録する（Ｓ７０２）。
【００９２】
そして、保存処理部２０５は、変更マップ２２３１に登録された全てのブロック番号の状態を、”変更なし”にする（Ｓ７０３）。
【００９３】
そして、保存処理部２０５は、一時記憶領域２２２保存した処理データを、ストレージ２３へブロック単位でコピーする（Ｓ７０４）。具体的には、保存処理部２０５は、ストレージ２３のブロックのうち、一時記憶領域２２２保存した処理データのブロック番号と同一のブロック番号に該当するブロックを特定し、当該ブロックに、処理データを保存する。
【００９４】
そして、保存処理部２０５は、ストレージ２３へのコピー処理の終了後に、一時記憶領域２２２および一時記憶領域使用マップ２２３２に保存されたデータを削除する（Ｓ７０５）。ここで、このフローチャートの処理は終了し、図５で説明したメインフローに戻る。
【００９５】
次に、本実施形態にかかる設定データのバックアップ処理の流れについて説明する。
【００９６】
図７は、本実施形態にかかる設定データのバックアップ処理の流れの一例を示すフローチャートである。このフローチャートの処理は、一例として、コントローラ２が起動した場合に開始する。
【００９７】
まず、受付部２０２は、エンジニアリングツール１１から設定データの変更を受け付けたか否かを判断する（Ｓ２１）。
【００９８】
受付部２０２がエンジニアリングツール１１から設定データの変更を受け付けたと判断した場合（Ｓ２１“Ｙｅｓ”）、保存処理部２０５は、変更された設定データを、ＲＡＭ２２からストレージ２３へコピーする（Ｓ２２）。保存処理部２０５は、Ｓ２２の処理の後、Ｓ２１の処理に戻る。このフローチャートの処理は、例えば、コントローラ２への電力の供給が停止する等によってコントローラ２の電源がオフ状態になるまで、継続して実行される。なお、ユーザの操作や、所定の条件等によって処理が終了するものとしても良い。
【００９９】
ここで、本実施形態の比較例となるバックアップの手法について説明する。
【０１００】
図１７は、比較例にかかるプラント制御処理とバックアップ処理の実行タイミングの一例を示すタイムチャートである。比較例として、図１７に示すように、プラント制御処理の実行周期の度に、バックアップ処理を実行するという手法がある。この比較例においては、バックアップ処理の都度、全ての処理データがバックアップ対象となる。このような手法は、バックアップ処理に時間を要するため、プラント制御処理の実行周期が短い場合には、適用することが困難な場合がある。
【０１０１】
一例として、バックアップ先の記憶装置がＲＡＭまたはＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の半導体記憶素子である場合には、データの読み書きの速度が速いので比較例にかかる手法を採用することができるが、バックアップ先の記憶装置がＳＳＤまたはｅＭＭＣ等のストレージである場合には、半導体記憶素子よりもデータの読み書きの速度が遅いので、適用することが困難な場合がある。また、全ての処理データをバックアップ対象とすると、ストレージ側の書き込み対象のブロック数が増加する。このため、比較例の手法では、ストレージの書き込み回数が増加し、ストレージの寿命に影響する場合がある。このため、比較例の手法は、ストレージ等の不揮発性の記憶装置をバックアップ先とする構成に適さない場合がある。
【０１０２】
また、他の比較例として、停電等による外部からの電力供給が停止した後に、コントローラ内部のバッテリ等の二次電池から供給される電力によってバックアップ処理を実行する手法がある。
【０１０３】
図１８は、他の比較例にかかる停電時におけるバックアップ処理の実行タイミングの一例を示すタイムチャートである。図１８に示す例では、外部からの電力供給が停止した場合に、プラント制御処理は停止し、バックアップ処理が開始する。他の比較例においては、バッテリによる電力供給によってコントローラの稼動が継続している時間内に、バックアップ処理によって、ＲＡＭ上の全ての処理データがストレージへ保存される。
【０１０４】
他の比較例においては、ストレージへの書き込み回数は少なくなるが、一度に全ての処理データをバックアップするため、ストレージへの書き込み処理時間は低減されない。また、他の比較例においては、外部からの電力供給が停止してから全ての処理データのバックアップ処理が完了するまでの間、コントローラの稼動を継続可能な電力を供給するバッテリが必要となる。近年において主流となっているＰＣのアーキテクチャを利用したコントローラでは、ＣＰＵの消費電力が増加傾向にあるため、全ての処理データのバックアップ処理が完了するまでの間電力を供給可能なバッテリを設けることが困難な場合がある。
【０１０５】
これらの比較例に対して、本実施形態のコントローラ２は、複数の処理データのうち、バックアップ周期６０で定義された期間内に変化があった処理データのＲＡＭ２２内の格納先を示す変更情報を生成し、バックアップ周期６０で定義された期間ごとに、変更情報が示す格納先に格納された処理データを、ＲＡＭ２２からストレージ２３に保存する。
【０１０６】
このため、本実施形態のコントローラ２によれば、バックアップ周期６０で定義された期間内に変化があった処理データのみをストレージ２３へのバックアップの対象にするため、処理データ全体をバックアップの対象にする場合と比較して、バックアップのためのストレージ２３への書き込み処理時間を短縮することができる。また、本実施形態のコントローラ２によれば、バックアップ周期６０で定義された期間内に変化があった処理データを示す情報を変更マップ２２３１として保存しておき、バックアップ周期６０で定義された期間ごとに変更マップ２２３１によって特定される処理データを、ＲＡＭ２２からストレージ２３に保存するため、プラント制御処理の実行の度にストレージ２３へのバックアップを実行する場合と比較して、バックアップのためのストレージ２３への書き込み回数を低減することができる。
【０１０７】
また、本実施形態のコントローラ２のＲＡＭ２２およびストレージ２３は、複数のブロックに分割され、複数の処理データの各々は、ＲＡＭ２２の複数のブロックのいずれかに格納される。また、本実施形態の変更情報は、ブロック番号と、ブロックに格納された処理データのバックアップ周期６０で定義された期間内における変化の有無とが対応付けられている。本実施形態のコントローラ２は、変更マップ２２３１を参照して、ＲＡＭ２２の複数のブロックのうち、バックアップ周期６０で定義された期間内に変化があった処理データを格納するブロックを特定し、特定したブロックに記憶された全てのデータを、特定したブロックに対応付けられたストレージ２３のブロックに書き込む。このように、本実施形態のコントローラ２によれば、バックアップ処理の際に、処理データの書き込み対象となるストレージ２３のブロックを、ＲＡＭ２２において変更された処理データを格納するブロックに対応付けられたブロックに限定するため、書き込み対象となるブロックの数を低減することができる。このような構成により、本実施形態のコントローラ２によれば、バックアップのためのストレージ２３への書き込み回数をさらに低減し、ストレージ２３の劣化の進行を低減することができる。
【０１０８】
また、本実施形態のコントローラ２では、ＲＡＭ２２は、複数の処理データを記憶可能な処理データ記憶領域２２１と、複数の処理データのうち変更情報が示す格納先に格納された処理データを記憶可能な一時記憶領域２２２と、を有する。また、本実施形態のコントローラ２では、変更情報が示す格納先に格納された処理データを処理データ記憶領域２２１から一時記憶領域２２２にコピーし、当該コピー後に、当該処理データを一時記憶領域２２２からストレージ２３にコピーする。このため、本実施形態のコントローラ２によれば、ストレージ２３への保存処理中に処理データ記憶領域２２１が更新されても問題なくバックアップ処理を継続することができる。このため、本実施形態のコントローラ２によれば、バックアップ処理に要する時間に関わらず、プラント制御処理の実行周期を定めることができる。
【０１０９】
（第２の実施形態）
この第２の実施形態においては、コントローラ２は、第１の実施形態で説明したバックアップ処理が可能な構成を備えた上で、さらに、コントローラ２の稼動中にストレージ２３を交換可能な構成を備える。
【０１１０】
本実施形態の制御システムＳの全体構成、およびコントローラ２のハードウェア構成は、図１で説明した第１の実施形態と同様である。
【０１１１】
図８は、本実施形態にかかるＲＡＭ２２およびストレージ２３に記憶される各種のデータの一例を示す図である。
【０１１２】
本実施形態のコントローラ２のＲＡＭ２２は、第１の実施形態と同様の内容に加えて、バックアップ不要データ記憶領域２２３内に、ストレージ書き込み回数８１と、着脱準備要求フラグ８２と、着脱可能フラグ８３とを記憶する。
【０１１３】
ストレージ書き込み回数８１は、保存処理部２０５によるストレージ２３への書き込み回数の累計値である。
【０１１４】
着脱準備要求フラグ８２は、ユーザがストレージ２３の着脱の準備を要求しているか否かを示すフラグである。ストレージ２３の着脱の準備は、交換の準備ともいう。
【０１１５】
着脱可能フラグ８３は、ストレージ２３が着脱可能な状態であるか否かを示すフラグである。
【０１１６】
また、本実施形態のコントローラ２は、図３で説明した第１の実施形態と同様に、データ転送部２０１と、受付部２０２と、処理実行部２０３と、変更記録部２０４と、保存処理部２０５と、出力部２０６とを備える。
【０１１７】
本実施形態のデータ転送部２０１と、処理実行部２０３と、変更記録部２０４とは、第１の実施形態と同様の機能を備える。
【０１１８】
本実施形態の受付部２０２は、第１の実施形態と同様の機能を備えた上で、エンジニアリングツール１１を介して、ユーザから、ストレージ２３の着脱準備を要求する操作を受け付ける。受付部２０２は、ストレージ２３の着脱準備の要求を受け付けた場合に、着脱準備要求フラグ８２を“ＯＮ”にする。ストレージ２３の着脱準備を要求するユーザの操作は、ストレージ２３の交換の準備を要求する操作ともいう。
【０１１９】
また、受付部２０２は、エンジニアリングツール１１を介して、ユーザから、ストレージの着脱の完了を入力する操作を受け付ける。着脱の完了を入力するユーザの操作は、ストレージ２３の交換の完了を入力する操作ともいう。受付部２０２は、ストレージ２３の着脱の完了の操作を受け付けた場合に、着脱準備要求フラグ８２を“ＯＦＦ”にする。なお、ストレージの着脱の完了を入力する操作を受け付けることを、着脱完了の通知を受け付けるともいう。受付部２０２は、ストレージ２３の着脱準備の要求またはストレージ２３の着脱完了の通知を受け付けた場合に、保存処理部２０５に通知する。
【０１２０】
また、本実施形態の保存処理部２０５は、第１の実施形態と同様の機能を備えた上で、受付部２０２がストレージ２３の着脱準備の要求を受け付けた場合に、ＲＡＭ２２からストレージ２３への処理データの保存を停止し、ストレージ２３の着脱の完了の通知を受けた場合に、ＲＡＭ２２からストレージ２３への処理データの保存を再開する。
【０１２１】
より詳細には、保存処理部２０５は、着脱準備要求フラグ８２が“ＯＮ”の場合は処理データのバックアップ処理を実行しない。また、保存処理部２０５は、着脱準備要求フラグ８２が“ＯＮ”になった場合に、ストレージへの書き込み処理中でない場合は、着脱可能フラグ８３を“ＯＮ”にする。また、保存処理部２０５は、ストレージへの書き込み処理の実行中に着脱準備要求フラグ８２が“ＯＮ”になった場合には、ストレージ２３への書き込み処理の完了後に、着脱可能フラグ８３を“ＯＮ”にする。また、保存処理部２０５は、ストレージ２３の着脱完了後、着脱可能フラグ８３を“ＯＦＦ”にする。保存処理部２０５は、着脱可能フラグ８３を“ＯＮ”または“ＯＦＦ”にした場合、出力部２０６に通知する。
【０１２２】
また、本実施形態の出力部２０６は、第１の実施形態と同様の機能を備えた上で、ストレージ書き込み回数８１が所定の閾値以上となった場合に、警告を出力する。
【０１２３】
警告の出力の手法は特に限定されるものではないが、一例として、出力部２０６は、エンジニアリングツール１１に、ストレージ書き込み回数８１が所定の閾値以上となったことを通知する。エンジニアリングツール１１が、当該通知をＰＣ１のディスプレイ等に表示することにより、ユーザに、ストレージ書き込み回数８１が所定の閾値以上となったことを把握させることができる。また、警告の出力の手法はこれに限定されるものではなく、出力部２０６は、コントローラ２本体に設けられたＬＥＤ（ｌｉｇｈｔ  ｅｍｉｔｔｉｎｇ  ｄｉｏｄｅ）を点滅または点灯等させることによって警告を出力しても良いし、音声等で警告を出力しても良い。
【０１２４】
また、所定の閾値は、特に限定されるものではないが、ストレージ２３の書き込み回数の上限に近い回数とする。
【０１２５】
また、出力部２０６は、着脱可能フラグ８３が“ＯＮ”になった場合に、ストレージ２３の着脱が可能であることを示す着脱可能の通知を出力する。一例として、出力部２０６は、エンジニアリングツール１１に、着脱可能の通知を出力するが、ＬＥＤの点滅または点灯や、音声等で着脱可能の通知を出力しても良い。
【０１２６】
次に、以上のように構成されたコントローラ２で実行される処理の流れについて、フローチャートを用いて説明する。
【０１２７】
図９は、本実施形態にかかる処理の流れの一例を示すフローチャートである。
【０１２８】
Ｓ１のストレージ２３からＲＡＭ２２へのバックアップデータの転送の処理から、Ｓ６のバックアップ処理の実行タイミングか否かの判断の処理までは、第１の実施形態と同様である。
【０１２９】
次に、保存処理部２０５は、現在がバックアップ処理の実行タイミングであると判断した場合、着脱準備要求フラグ８２が“ＯＮ”であるか否かを判断する（Ｓ１０１）。保存処理部２０５は、着脱準備要求フラグ８２が“ＯＮ”であると判断した場合（Ｓ１０１“Ｙｅｓ”）、Ｓ２バックアップ処理を実行せずに、Ｓ２の処理に戻る。
【０１３０】
また、保存処理部２０５は、着脱準備要求フラグ８２が“ＯＦＦ”であると判断した場合（Ｓ１０１“Ｎｏ”）、処理データのバックアップ処理を開始する（Ｓ７）。Ｓ７の処理データのバックアップ処理は、第１の実施形態と同様である。
【０１３１】
Ｓ７の処理の後、保存処理部２０５は、ストレージ書き込み回数８１を１回分加算する（Ｓ１０２）。
【０１３２】
そして、保存処理部２０５は、ストレージの書き込み回数の累計値、つまり、ストレージ書き込み回数８１が、閾値以上であるか否かを判断する（Ｓ１０３）。保存処理部２０５は、ストレージ書き込み回数８１が閾値以上ではないと判断した場合（Ｓ１０３“Ｎｏ”）、Ｓ２の処理に戻る。
【０１３３】
保存処理部２０５は、ストレージ書き込み回数８１が、閾値以上であると判断した場合（Ｓ１０３“Ｙｅｓ”）、出力部２０６に通知する。この場合、出力部２０６は、警告を出力する（Ｓ１０４）。出力部２０６が警告を出力した後、Ｓ２の処理に戻る。
【０１３４】
また、図１０は、本実施形態にかかる設定データのバックアップ処理の流れの一例を示すフローチャートである。
【０１３５】
Ｓ２１の設定データの変更を受け付けたか否かの判断の処理から、Ｓ２２の変更された設定データをストレージ２３へコピーする処理までは、第１の実施形態と同様である。
【０１３６】
Ｓ２２の処理の後、保存処理部２０５は、ストレージ書き込み回数８１を１回分加算する（Ｓ１１１）。
【０１３７】
そして、保存処理部２０５は、ストレージ書き込み回数８１が、閾値以上であるか否かを判断する（Ｓ１１２）。保存処理部２０５は、ストレージ書き込み回数８１が閾値以上ではないと判断した場合（Ｓ１１２“Ｎｏ”）、Ｓ２１の処理に戻る。
【０１３８】
保存処理部２０５は、ストレージ書き込み回数８１が、閾値以上であると判断した場合（Ｓ１１２“Ｙｅｓ”）、出力部２０６に通知する。この場合、出力部２０６は、警告を出力する（Ｓ１１３）。出力部２０６が警告を出力した後、Ｓ２１の処理に戻る。
【０１３９】
次に、本実施形態のストレージ２３の交換時の処理の流れについて説明する。
【０１４０】
図１１は、本実施形態にかかるストレージ２３の交換時の処理の流れの一例を示すフローチャートである。
【０１４１】
まず、受付部２０２は、ユーザによるストレージ２３の着脱準備の要求を受け付けたか否かを判断する（Ｓ１２１）。受付部２０２は、ストレージ２３の着脱準備の要求を受け付けていないと判断した場合は（Ｓ１２１“Ｎｏ”）、Ｓ１２１の処理を繰り返す。
【０１４２】
受付部２０２は、ストレージ２３の着脱準備の要求を受け付けたと判断した場合は（Ｓ１２１“Ｙｅｓ”）、着脱準備要求フラグ８２を“ＯＮ”にする（Ｓ１２２）。受付部２０２は、ストレージ２３の着脱準備の要求を受けたことを、保存処理部２０５に通知する。
【０１４３】
次に、保存処理部２０５は、ストレージ２３への書き込み処理中であるか否かを判断する（Ｓ１２３）。保存処理部２０５は、ストレージ２３への書き込み処理中であると判断した場合には（Ｓ１２３“Ｙｅｓ”）、ストレージ２３への書き込み処理の完了を待機する。
【０１４４】
保存処理部２０５は、ストレージ２３への書き込み処理中ではないと判断した場合には（Ｓ１２３“Ｎｏ”）、着脱可能フラグ８３を“ＯＮ”にする（Ｓ１２４）。保存処理部２０５は、着脱可能フラグ８３を“ＯＮ”にしたことを、出力部２０６に通知する。
【０１４５】
出力部２０６は、着脱可能フラグ８３が“ＯＮ”になった場合に、ストレージ２３の着脱が可能であることを示す着脱可能の通知を出力する（Ｓ１２５）。
【０１４６】
次に、受付部２０２は、ユーザによるストレージ２３の着脱完了の通知を受け付けたか否かを判断する（Ｓ１２６）。受付部２０２は、ストレージ２３の着脱完了の通知を受け付けていないと判断した場合に（Ｓ１２６“Ｎｏ”）、Ｓ１２６の処理を繰り返す。
【０１４７】
受付部２０２は、ストレージ２３の着脱完了の通知を受け付けたと判断した場合に（Ｓ１２６“Ｙｅｓ”）、着脱可能フラグ８３を“ＯＦＦ”にする（Ｓ１２７）。ストレージ２３の着脱完了の通知を受け付けた場合とは、つまり、ユーザがストレージ２３の交換を完了し、当該完了した旨を、エンジニアリングツール１１に入力した場合である。
【０１４８】
そして、保存処理部２０５は、ストレージ２３の初期化処理を実行する（Ｓ１２８）。なお、ストレージ２３の初期化処理は、他の機能部が実行するものとしても良い。
【０１４９】
そして、保存処理部２０５は、処理データの全てのブロックを“変更あり”で変更マップ２２３１に登録する（Ｓ１２９）。変更マップ２２３１に、処理データの全てのブロックを“変更あり”と登録することにより、次のバックアップ処理の実行タイミングで、ＲＡＭ２２の処理データ記憶領域２２１に記憶された全ての処理データが、ストレージ２３に保存される。
【０１５０】
次に、保存処理部２０５は、ストレージ書き込み回数８１を“０”にする（Ｓ１３０）。そして、保存処理部２０５は、着脱可能フラグ８３を“ＯＦＦ”にする（Ｓ１３１）。
【０１５１】
そして、保存処理部２０５は、設定データのバックアップ処理を開始する（Ｓ１３２）。Ｓ１３２の設定データのバックアップ処理は、図１０で説明した設定データのバックアップ処理のＳ２２からＳ１１３の処理と同様であるものとする。ここで、Ｓ１２１の処理に戻る。
【０１５２】
このように、本実施形態のコントローラ２は、ユーザからストレージ２３の着脱準備の要求を受け付けた場合に、ＲＡＭ２２からストレージ２３への処理データの保存を停止し、ユーザからストレージ２３の着脱の完了の通知を受けた場合に、ＲＡＭ２２からストレージ２３への処理データの保存を再開する。このため、本実施形態のコントローラ２によれば、第１の実施形態の効果に加えて、コントローラ２の稼動を継続した状態で、ユーザがストレージ２３の交換をすることができる。
【０１５３】
例えば、コントローラ２全体の製品寿命よりも早くストレージ２３の書き込み回数が上限値に近づいた場合に、ストレージ２３を新しいストレージ２３に交換することによって、コントローラ２を継続して使用することができる。また、コントローラ２の稼動を継続した状態でストレージ２３の交換が可能であることにより、プラントを停止しなくとも、ストレージ２３の交換が可能となる。
【０１５４】
また、本実施形態のコントローラ２によれば、ストレージ書き込み回数８１が所定の閾値以上となった場合に警告を出力するため、ユーザが適切な時期にストレージ２３を交換することを支援することができる。
【０１５５】
（第３の実施形態）
この第３の実施形態においては、コントローラ２は、変化量が所定の変化量以上である処理データを、ストレージ２３へのバックアップの対象とする。
【０１５６】
本実施形態の制御システムＳの全体構成、およびコントローラ２のハードウェア構成は、図１で説明した第１の実施形態と同様である。
【０１５７】
また、本実施形態のコントローラ２は、図３で説明した第１の実施形態と同様に、データ転送部２０１と、受付部２０２と、処理実行部２０３と、変更記録部２０４と、保存処理部２０５と、出力部２０６とを備える。
【０１５８】
本実施形態のデータ転送部２０１と、受付部２０２と、処理実行部２０３と、保存処理部２０５と、出力部２０６とは、第１の実施形態と同様の機能を備える。
【０１５９】
本実施形態の変更記録部２０４は、第１の実施形態と同様の機能を備えた上で、処理データ記憶領域２２１に記憶された複数の処理データのうち、変化量が所定の変化量以上である処理データを、変更された処理データと判断する。変更記録部２０４は、変更された処理データに対応付けられたブロックについて、“変更あり”として変更マップ２２３１に登録する。
【０１６０】
例えば、プラントが安定稼働している場合において、処理データが微小変化を繰り返す場合がある。例えば、処理データがＩ／Ｏ機器３から取得されたプロセス値である場合、当該処理データが“１．００００１”から“１．００００２”に変化する等の微小な変化は、略一定の値が継続している状態として取り扱うことができる。このような場合に、本実施形態の変更記録部２０４は、当該処理データが変更されていないと判断する。
【０１６１】
ここで、本実施形態の処理データは、コントローラ２の内部的には、ＩＥＥＥ単精度実数形式で保存されるものとする。ＩＥＥＥ単精度実数形式では、１つの処理データは、１ｂｉｔの符号と、８ｂｉｔの指数部と、２３ｂｉｔの仮数部とによって構成される。このような形式で保持された処理データの微小変化を除くために、本実施形態においては、変更記録部２０４は、変更前後の処理データを１６進数の状態で下位の桁を除いて比較することにより、微小変化の影響を効率的に除外することができる。
【０１６２】
図１２は、本実施形態にかかる処理データから微小変化の影響を除く手法の一例を説明する図である。図１２に示すように処理データが“１．００００１”から“１．００００２”に微小変化した場合、変更記録部２０４は、“１．００００１”を１６進数で表した“３Ｆ８００００８”と、“１．００００２”を１６進数で表した“３Ｆ８０００１０”の下位８ｂｉｔ（１６進数の２桁）を“０”に置換する。この場合、変更前後の処理データは両方とも“３Ｆ８０００００”となり、変更記録部２０４は、当該処理データは変化していないものとして取り扱う。なお、図１２のように所定の桁を０に置換することを、本実施形態ではマスクする、という。
【０１６３】
マスク対象となるｂｉｔ数は、例えば、ユーザ等によって予め設定されるものとする。
【０１６４】
このように、本実施形態のコントローラ２は、複数の処理データのうち、変化量が所定の変化量以上である処理データを、変化があった処理データと判断するため、処理データが微小変化をした場合には当該処理データをバックアップ対象にしない。このため、本実施形態のコントローラ２によれば、第１の実施形態の効果に加えて、ストレージ２３への書き込み回数をさらに低減することができるという効果を奏する。
【０１６５】
（第４の実施形態）
この第４の実施形態においては、コントローラ２は、バッテリバックアップＲＡＭを備え、停電からの復旧時等に、停電前の時点における最新の処理データで動作を再開する。
【０１６６】
図１３は、本実施形態にかかる制御システムＳの全体構成の一例を模式的に示す図である。本実施形態の制御システムＳは、第１の実施形態と同様の構成に加えて、バッテリバックアップＲＡＭ２７と、バッテリ２８とを備える。
【０１６７】
バッテリ２８は、外部からのコントローラ２への電力供給が停止した場合に、バッテリバックアップＲＡＭ２７に電力を供給する二次電池である。また、バッテリ２８は、コンデンサ等であっても良い。
【０１６８】
バッテリバックアップＲＡＭ２７は、揮発性の記憶装置であり、外部からのコントローラ２への電力供給が停止した場合においても、バッテリ２８から電力供給を受けることにより、記憶内容を保持することができる。バッテリバックアップＲＡＭ２７は、本実施形態における第３の記憶部の一例である。
【０１６９】
また、本実施形態においては、バッテリバックアップＲＡＭ２７の記憶容量は、ＲＡＭ２２の処理データ記憶領域２２１よりも小さくても良い。
【０１７０】
図１４は、本実施形態にかかるＲＡＭ２２、ストレージ２３、およびバッテリバックアップＲＡＭ２７に記憶される各種のデータの一例を示す図である。ＲＡＭ２２およびストレージ２３の記憶内容は、第１の実施形態と同様である。
【０１７１】
バッテリバックアップＲＡＭ２７は、変更データリスト２７１と、変更データ数２７２とを記憶する。
【０１７２】
変更データリスト２７１は、変更された処理データのリストである。より詳細には、変更データリスト２７１は、変更された処理データを含むブロックと、当該ブロック内における変更された処理データの位置を示すアドレスと、変更された処理データとを対応付けた情報である。
【０１７３】
変更データリスト２７１は、ストレージ２３へのバックアップ処理が実行される度に、後述の保存処理部２０５によって削除され、次のバックアップ処理のタイミングまで、変更記録部２０４によって再度蓄積される。つまり、変更データリスト２７１は、ストレージ２３に保存されたバックアップデータと、ＲＡＭ２２の処理データ記憶領域２２１に記憶された最新の処理データとの差分に相当する。変更データリスト２７１は、本実施形態における差分データの一例である。
【０１７４】
変更データ数２７２は、変更データリスト２７１に登録された変更された処理データの件数である。
【０１７５】
図１５は、本実施形態にかかる変更データリスト２７１の一例を示す図である。図１５に示すように、変更データリスト２７１は、変更された処理データを含むブロックのブロック番号と、アドレスと、変更された処理データとが対応付けられた情報である。
【０１７６】
アドレスは、変更された処理データを含むブロック内における変更された処理データの位置を示す相対アドレスである。一例として、アドレスは、ブロックの先頭から処理データの開始位置までのｂｉｔ数である。
【０１７７】
変更データリスト２７１に登録される処理データは、１つのブロックに保存された処理データ全体ではなく、変更された箇所に相当する処理データのみであるものとする。
【０１７８】
また、本実施形態のコントローラ２は、図３で説明した第１の実施形態と同様に、データ転送部２０１と、受付部２０２と、処理実行部２０３と、変更記録部２０４と、出力部２０６とを備える。
【０１７９】
本実施形態の受付部２０２と、処理実行部２０３と、保存処理部２０５と、出力部２０６とは、第１の実施形態と同様の機能を備える。
【０１８０】
本実施形態の変更記録部２０４は、第１の実施形態と同様の機能を備えた上で、処理実行部２０３によって処理が実行される度に、変化があった処理データを変更データリスト２７１に登録する。また、変更記録部２０４は、変更データリスト２７１に登録した処理データの件数を、変更データ数２７２に登録する。
【０１８１】
また、本実施形態の保存処理部２０５は、第１の実施形態と同様の機能を備えた上で、ストレージ２３へのバックアップ処理が完了した場合に、変更データリスト２７１および変更データ数２７２に登録された情報を削除する。
【０１８２】
本実施形態のデータ転送部２０１は、第１の実施形態と同様の機能を備えた上で、コントローラ２が起動した場合に、ストレージ２３からＲＡＭ２２へバックアップデータを転送した後に、バッテリバックアップＲＡＭ２７からＲＡＭ２２へバックアップデータを転送する。
【０１８３】
次に、以上のように構成された本実施形態のコントローラ２で実行される処理の流れについて、フローチャートを用いて説明する。
【０１８４】
図１６は、本実施形態にかかる処理の流れの一例を示すフローチャートである。
【０１８５】
Ｓ１のストレージ２３からＲＡＭ２２へのバックアップデータの転送の処理は、第１の実施形態と同様である。
【０１８６】
次に、データ転送部２０１は、バッテリバックアップＲＡＭ２７からＲＡＭ２２の処理データ記憶領域２２１へバックアップデータを転送する（Ｓ２０１）。
【０１８７】
より詳細には、データ転送部２０１は、変更データリスト２７１に登録されたレコードを１件読み出し、当該レコードに登録された変更ブロックに基づいて、変更された処理データが登録されたブロックを特定する。そして、データ転送部２０１は、変更データリスト２７１に登録されたアドレスに基づいて、特定されたブロックにおける変更された処理データの位置を特定する。データ転送部２０１は、特定した位置に、変更データリスト２７１に登録された変更後の処理データを登録する。
【０１８８】
そして、データ転送部２０１は、バッテリバックアップＲＡＭ２７からＲＡＭ２２へ転送した処理データの件数が、変更データ数２７２と一致するか否かを判断する（Ｓ２０２）。データ転送部２０１は、バッテリバックアップＲＡＭ２７からＲＡＭ２２へ転送した処理データの件数が、変更データ数２７２と一致していないと判断した場合（Ｓ２０２“Ｎｏ”）、Ｓ２０１の処理を繰り返す。
【０１８９】
データ転送部２０１は、変更データリスト２７１に登録された順に沿ってＲＡＭ２２の処理データ記憶領域２２１に、処理データを登録するため、同じアドレスの処理データが複数回変更されている場合は、最終的には最も新しい処理データが処理データ記憶領域２２１に登録された状態になる。
【０１９０】
また、データ転送部２０１は、バッテリバックアップＲＡＭ２７からＲＡＭ２２へ転送した処理データの件数が、変更データ数２７２と一致すると判断した場合（Ｓ２０２“Ｙｅｓ”）、Ｓ２の処理に進む。Ｓ２のプラント制御処理の実行タイミングの判断の処理から、Ｓ５の変更マップ２２３１への登録の処理までは第１の実施形態と同様である。
【０１９１】
次に、変更記録部２０４は、変更された処理データを変更データリスト２７１に登録する（Ｓ２０３）。そして、変更記録部２０４は、変更データリスト２７１に登録した処理データの件数分、変更データ数２７２を加算する（Ｓ２０４）。Ｓ６のバックアップ処理の実行タイミングの判断の処理から、Ｓ７の処理データのバックアップ処理の開始までは、第１の実施形態と同様である。
【０１９２】
図１６のフローチャートの処理は、図５で説明した第１の実施形態と同様に、コントローラ２が起動した場合に開始するものとするが、Ｓ２０１およびＳ２０２の処理は、停電等により電力の供給が停止してコントローラ２の電源がオフ状態になった後に、電力の供給が再開してコントローラ２が起動した場合にのみ実行されるものとしても良い。
【０１９３】
このように、本実施形態のコントローラ２は、バッテリバックアップＲＡＭ２７と、外部からの電力供給が停止した場合に、バッテリバックアップＲＡＭ２７に電力を供給するバッテリ２８とを備える。バッテリバックアップＲＡＭ２７は、ストレージ２３に保存されたバックアップデータとＲＡＭ２２の処理データ記憶領域２２１に記憶された最新の処理データの差分である変更データリスト２７１を記憶可能であり、本実施形態のコントローラ２は、コントローラ２が起動した場合に、ストレージ２３からＲＡＭ２２に処理データを転送した後に、バッテリバックアップＲＡＭ２７からＲＡＭ２２に処理データを転送する。このため、本実施形態のコントローラ２によれば、バックアップ周期６０として定義された期間の途中で停電等によってコントローラ２の電源がオフ状態になった場合であっても、コントローラ２の起動後に、最新の処理データに基づいてプラント管理処理を再開することができる。
【０１９４】
以上説明したとおり、第１から第４の実施形態によれば、バックアップのためのストレージ２３への書き込み処理時間の短縮、およびバックアップのためのストレージ２３への書き込み回数を低減することができる。
【０１９５】
上述の各実施形態のコントローラ２で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１９６】
また、上述の各実施形態のコントローラ２で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、上述の各実施形態のコントローラ２で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。また、上述の各実施形態のコントローラ２で実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するように構成しても良い。
【０１９７】
上述の各実施形態のコントローラ２で実行されるプログラムは、上述した各部（データ転送部、受付部、処理実行部、変更記録部、保存処理部、出力部）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記記憶媒体からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、データ転送部、受付部、処理実行部、変更記録部、保存処理部、出力部が主記憶装置上に生成されるようになっている。
【０１９８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１９９】
２  コントローラ
１１  エンジニアリングツール
２２  ＲＡＭ
２３  ストレージ
２７  バッテリバックアップＲＡＭ
２８  バッテリ
６０  バックアップ周期
６１  パラメータデータ
７３  バックアップ処理プログラム
８２  着脱準備要求フラグ
８３  着脱可能フラグ
２０１  データ転送部
２０２  受付部
２０３  処理実行部
２０４  変更記録部
２０５  保存処理部
２０６  出力部
２２１  処理データ記憶領域
２２２  一時記憶領域
２２３  バックアップ不要データ記憶領域
２２４  設定データ記憶領域
２３１  処理データ記憶領域
２３２  設定データ記憶領域
２３３  プログラム記憶領域
２７１  変更データリスト
２７２  変更データ数
２２３１  変更マップ
２２３２  一時記憶領域使用マップ
Ｓ  制御システム
【図１】
2020149477.tif 000003
【図２】
2020149477.tif 000004
【図３】
2020149477.tif 000005
【図４】
2020149477.tif 000006
【図５】
2020149477.tif 000007
【図６】
2020149477.tif 000008
【図７】
2020149477.tif 000009
【図８】
2020149477.tif 000010
【図９】
2020149477.tif 000011
【図１０】
2020149477.tif 000012
【図１１】
2020149477.tif 000013
【図１２】
2020149477.tif 000014
【図１３】
2020149477.tif 000015
【図１４】
2020149477.tif 000016
【図１５】
2020149477.tif 000017
【図１６】
2020149477.tif 000018
【図１７】
2020149477.tif 000019
【図１８】
2020149477.tif 000020