(57)【要約】【課題】ＨＭＩデータを高いロバスト性の下でミラーリングする。【解決手段】ＯＳ４１及びリアルタイムＯＳ５１で動作するＩＰＣ３である。ＩＰＣ３は、ＯＳ４１のＨＭＩアプリ４１２によって、順次ＨＭＩデータの取得処理を行うデータ管理部４１１と、データ管理部４１１によってＨＭＩデータが記憶されるバッファ４１３と、リアルタイムＯＳ５１のミラーリング処理部５２によって、データ管理部４１１とデータの授受を行うデータ管理部５１１と、データ管理部５１１によってデータが記憶されるミラーリングデータ保持部５１３とを備える。データ管理部４１１は、ＨＭＩデータの取得毎にバッファ４１３に記憶し、かつミラーリングデータとしてデータ管理部５１１へ送信し、データ管理部５１１は、ミラーリングデータを受信する毎にバッファメモリ５１３に記憶する。【選択図】図３
2019159882.tif 000002
【特許請求の範囲】
【請求項１】
第１のオペレーティングシステムと制御対象の制御を行う第２のオペレーティングシステムとで動作する制御部を備えたコントローラであって、
前記第１のオペレーティングシステム上で動作するアプリケーションプログラムによって、周期的に入力される第１のデータの取得処理を行う第１データ管理部と、
前記第１データ管理部によって前記第１のデータが記憶される第１メモリと、
前記第２のオペレーティングシステム上で動作するアプリケーションプログラムによって、前記第１データ管理部とデータの授受を行う第２データ管理部と、
前記第２データ管理部によってデータが記憶される第２メモリとを備え、
前記第１データ管理部は、取得した前記第１のデータをミラーリングデータとして前記第２データ管理部へ送信し、
前記第２のデータ管理部は、前記ミラーリングデータを前記第２メモリに記憶することを特徴とするコントローラ。
【請求項２】
前記第１データ管理部によって、前記第１のオペレーティングシステムのアプリケーションプログラムの終了時に前記第１メモリの内容が保存される第１不揮発性メモリを備える請求項１に記載のコントローラ。
【請求項３】
前記制御部への電源遮断を検知する電断検知部と、
前記電源遮断を検知されると、前記第２データ管理部によって、前記第２メモリの内容が保存される第２不揮発性メモリとを備える請求項１又は２に記載のコントローラ。
【請求項４】
前記制御部への電源遮断を検知する電断検知部と、
前記電源遮断を検知されると、前記第２データ管理部によって、前記第２メモリの内容が保存される第２不揮発性メモリとを備え、
前記第２データ管理部は、前記第１データ管理部からの要求に応答して前記第２不揮発性メモリの内容を前記第１データ管理部へ送信し、
前記第１データ管理部は、前記制御部の起動時に、前記第１不揮発性メモリの内容を読み出して、受信した前記第２不揮発性メモリの内容と比較して、最新の内容を前記第１メモリに復元する請求項１又は２に記載のコントローラ。
【請求項５】
前記第２データ管理部によってデータが記憶されるバックアップメモリを備え、
前記第２データ管理部は、前記第２のオペレーティングシステムの起動時に前記第２不揮発性メモリの内容を前記バックアップメモリに読み出し、前記第１データ管理部からの要求に応答して前記バックアップメモリの内容を前記第１データ管理部へ送信する請求項４に記載のコントローラ。
【請求項６】
前記第２のオペレーティングシステムは、リアルタイムオペレーティングシステムである請求項１〜５のいずれかに記載のコントローラ。
【請求項７】
第１のオペレーティングシステムと制御対象の制御を行う第２のオペレーティングシステムとで動作する制御部が、
前記第１のオペレーティングシステム上で動作するアプリケーションプログラムによって周期的に入力される第１のデータを取得する取得ステップと、
前記取得ステップで取得された前記第１のデータを第１メモリに記憶する第１メモリステップと、
前記取得ステップで取得された前記第１のデータをミラーリングデータとして前記第２のオペレーティングシステム側に送信する送信ステップと、
前記第２のオペレーティングシステム上で動作するアプリケーションプログラムによって、前記ミラーリングデータを第２メモリに記憶する第２メモリステップとを行うデータ保存方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセス管理等のデータのミラーリングを行うコントローラ及びデータ保存方法に関する。
【背景技術】
【０００２】
プロセス制御システムにおいては、ロバスト性の観点から、制御対象の状態に関するプロセス管理データをミラーリング（同じ内容を同時に２箇所に記憶すること）データとして別途取り込むことが知られている。例えば特許文献１には、制御対象側の各種センサからのデータを取得するＩ／Ｏモジュール２０４が複数使用される態様において、これらのＩ／Ｏモジュール２０４を監視し制御する複数の制御モジュール２０６を冗長用として設け、かかる複数の制御モジュール２０６がＩ／Ｏモジュール２０４に関する情報データベースのミラーリングを実施するようにしたプロセス制御システムが記載されている。
【０００３】
また、プロセス制御システムにおいて、ユーザプログラム（制御プログラム）によって、高頻度で入力されるＨＭＩ（Human Machine Interface）データをバッファに取り込むと共にＭＲＡＭ（Magnetoresistive Random AccessMemory）にも取り込むミラーリング処理が知られている。ＭＲＡＭは、無限の書き換えを可能にし、高速かつ不揮発性を有することから、停電などの異常に対して強いロバスト性を発揮する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−２７５６５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
昨今、ＰＬＣ（Programmable Logic Controller）と、ＨＭＩとしてのプログラマブル表示器とを備えて、機械や設備等の制御対象の動作を制御するＩＰＣ（産業用ＰＣ）システムが知られている。ＩＰＣは、Windows（登録商標）等の汎用ＯＳで動作し、一般的にＭＲＡＭを備えていないため、ＨＭＩデータのミラーリング処理のためにＭＲＡＭに代わる技術が必要となる。
【０００６】
例えば、入力毎にＨＭＩデータをディスク（ＨＤＤ／ＳＳＤ）にフラッシュ（書き込み）する代替え技術が考えられるが、高頻度での書込ではディスク寿命の問題が発生し、また書込中に電源遮断（電断）が生じるとデータが破損する虞がある。
【０００７】
また、仮想記憶空間にマッピングされるメモリマップドファイルを利用してＨＭＩデータのミラーリング処理を行う代替え技術が考えられるが、ディスクへのフラッシュのタイミングによっては、データロスの問題が発生する。データロスを防ぐためには、ＨＭＩデータを高頻度でフラッシュすることになるため、上述と同じく、寿命の点で課題がある。
【０００８】
本発明は、上記に鑑みてなされたもので、専用のオペレーティングシステムでミラーリング処理を行うことで高いロバスト性を確保するコントローラ及びデータ保存方法を提供することを目的とするものである。
【課題を解決するための手段】
【０００９】
本発明に係るコントローラは、第１のオペレーティングシステムと制御対象の制御を行う第２のオペレーティングシステムとで動作する制御部を備えたコントローラであって、前記第１のオペレーティングシステム上で動作するアプリケーションプログラムによって、周期的に入力される第１のデータの取得処理を行う第１データ管理部と、前記第１データ管理部によって前記第１のデータが記憶される第１メモリと、前記第２のオペレーティングシステム上で動作するアプリケーションプログラムによって、前記第１データ管理部とデータの授受を行う第２データ管理部と、前記第２データ管理部によってデータが記憶される第２メモリとを備え、前記第１データ管理部は、取得した前記第１のデータをミラーリングデータとして前記第２データ管理部へ送信し、前記第２のデータ管理部は、前記ミラーリングデータを前記第２メモリに記憶することを特徴とするものである。
【００１０】
また、本発明に係るプロセス管理データ保存方法は、第１のオペレーティングシステムと制御対象の制御を行う第２のオペレーティングシステムとで動作する制御部が、前記第１のオペレーティングシステム上で動作するアプリケーションプログラムによって周期的に入力される第１のデータを取得する取得ステップと、前記取得ステップで取得された前記第１のデータを第１メモリに記憶する第１メモリステップと、前記取得ステップで取得された前記第１のデータをミラーリングデータとして前記第２のオペレーティングシステム側に送信する送信ステップと、前記第２のオペレーティングシステム上で動作するアプリケーションプログラムによって、前記ミラーリングデータを第２メモリに記憶する第２メモリステップとを行うものである。
【００１１】
これらの発明によれば、典型的には汎用の第１のオペレーティングシステム上で動作する第１データ管理部（アプリケーションプログラム）によって、継続的に取得されるようなＨＭＩデータ等の第１のデータが適宜第１メモリに保存されると共に、取得された第１のデータはミラーリングデータとして、共通のプロセッサで動作する第２のオペレーティングシステム側に送信される。ミラーリングデータは、第２のオペレーティングシステム上で動作する第２データ管理部（アプリケーションプログラム）によって、第２メモリに保存されることでミラーリング処理が行われる。第１のデータを第２のオペレーティングシステム側で保存処理することで、第１のデータのデータ破損の防止、データロスの最小化、さらにデータ復旧が可能となる。また、一方のオペレーティングシステム側にフリーズ（ブルースクリーン含む）、異常終了、また電断等の異常が生じた場合でも第１のデータの復旧が可能となり、高いロバスト性が発揮される。
【００１２】
また、本発明は、前記第１データ管理部によって、前記第１のオペレーティングシステムのアプリケーションプログラムの終了時に前記第１メモリの内容が保存される第１不揮発性メモリを備えるものである。この構成によれば、第１のオペレーティングシステム側のアプリケーションプログラムの終了時点で、すなわち直前（最終）の第１のデータが保存されることで、最新データでの復旧が可能となる。
【００１３】
また、本発明は、前記制御部への電源遮断を検知する電断検知部と、前記電源遮断を検知されると、前記第２データ管理部によって、前記第２メモリの内容が保存される第２不揮発性メモリとを備えるものである。この構成によれば、電断等の異常終了時の第１のデータを退避保存可能とすることで、次の起動の際にデータ復旧が可能となる。
【００１４】
また、本発明は、前記制御部への電源遮断を検知する電断検知部と、前記電源遮断を検知されると、前記第２データ管理部によって、前記第２メモリの内容が保存される第２不揮発性メモリとを備え、前記第２データ管理部は、前記第１データ管理部からの要求に応答して前記第２不揮発性メモリの内容を前記第１データ管理部へ送信し、前記第１データ管理部は、前記制御部の起動時に、前記第１不揮発性メモリの内容を読み出して、受信した前記第２不揮発性メモリの内容と比較して、最新の内容を前記第１メモリに復元するものである。この構成によれば、第１のオペレーティングシステム側のアプリケーションプログラムが起動される際に、第１のオペレーティングシステム側で保存した第１のデータと第２のオペレーティングシステム側で保存したミラーリングデータのうち、最新側のデータが復旧に供される。
【００１５】
また、本発明は、前記第２データ管理部によってデータが記憶されるバックアップメモリを備え、前記第２データ管理部は、前記第２のオペレーティングシステムの起動時に前記第２不揮発性メモリの内容を前記バックアップメモリに読み出し、前記第１データ管理部からの要求に応答して前記バックアップメモリの内容を前記第１データ管理部へ送信するものである。この構成によれば、電断後に起動された第２のオペレーティングシステムによって第２不揮発性メモリの内容がバックアップメモリに読み込まれることによって、第１メモリの復旧時に、バックアップメモリの内容が、要求に応答して第１データ管理部へ送信され、データ復旧用に供される。
【００１６】
また、第２のオペレーティングシステムをリアルタイムオペレーティングシステムとすることで、プロセス制御における一連の処理を所定の処理時間で高い応答性をもって実行させるときに好適となる。
【発明の効果】
【００１７】
本発明によれば、第１のデータを高いロバスト性の下でミラーリングすることができる。
【図面の簡単な説明】
【００１８】
【図１】本発明に係るコントローラが適用される一例を示すＩＰＣシステムの概要を示すブロック図である。
【図２】本発明に係るコントローラの一実施形態を示すブロック図である。
【図３】図２のコントローラの詳細な機能構成図である。
【図４】ＯＳが実行する起動処理を示すフローチャートである。
【図５】ＯＳが実行する稼働〜終了処理を示すフローチャートである。
【図６】リアルタイムＯＳが実行する電断処理等を示すフローチャートである。
【図７】コントローラの他のブロック図である。
【発明を実施するための形態】
【００１９】
図１は、本発明に係るコントローラが適用される一例を示すＩＰＣシステムの概要を示すブロック図である。図１において、ＩＰＣシステム１０は、パーソナルコンピュータ（ＰＣ）１、コントローラとしてのＩＰＣ（Industrial Personal Computer）３、及びＩＰＣ３の制御プログラムによって生成される制御信号によって動作が制御される各種乃至所要数の制御対象部２を備える。制御対象部２は、典型的には機械や設備等である。ＰＣ１は、システム管理者によって作成された、制御対象部２に所望の動作を行わせるためのアプリケーションプログラム、各種動作設定値（保持変数その他）を含む設定データファイルをＩＰＣ３側に記憶するためのパーソナルコンピュータである。
【００２０】
ＰＣ１とＩＰＣ３とはイーサネット（登録商標）Ｌ１で接続されて、情報の授受が可能にされている。また、ＩＰＣ３と各種の制御対象部２とは、EtherCAT（登録商標）Ｌ２で接続されて、データの授受が可能にされている。EtherCAT（登録商標）Ｌ２は、産業用のオープンなネットワークで、フィールドネットワークとして利用されているものである。
【００２１】
ＩＰＣ３は、タッチパネルから構成されるディスプレイ１０３と接続されている。ＩＰＣ３は、ＰＬＣ部（Programmable Logic Controller）とＨＭＩ部とを備えた構成を有する。ＩＰＣ３は、ディスプレイ１０３側からの操作データの入力、制御対象部２乃至図略のセンサその他からの各データの入力、及びこれらの入力データから各制御対象部２の動作を行わせる制御信号（ＰＬＣデータ）の生成、出力を行う。なお、以下では、ディスプレイ１０３側からの操作データ、制御対象部２乃至図略のセンサその他からの各データのうちの、例えば制御信号を作成する際に用いる保持変数、異常やその内容を示すアラームデータ、及び各種のデータのログを含めてＨＭＩデータ（本発明における第１のデータに相当）という。
【００２２】
ＩＰＣ３内のＣＰＵ（プロセッサ）は、本実施形態では、ＨＭＩデータの取得、管理に関連する処理を行うWindows（登録商標）等の汎用のＯＳ（Operating System）で動作すると共に、制御対象部２に対する一連の処理を所定の処理時間で高い応答性をもって実行させるに好適な組込式のＱＮＸ等のリアルタイムＯＳで動作する。
【００２３】
図２は、本発明に係るコントローラの一実施形態を示すブロック図である。図３は、図２のコントローラの詳細な機能構成図である。図２及び図３において、ＩＰＣ３は、ＯＳ４１上で動作するアプリケーションプログラムである第１ＲＴ（RunTime）４２を備えたＯＳ部４と、リアルタイムＯＳ５１上で動作するアプリケーションプログラムである、揮発性メモリへのミラーリング処理を実行する簡易ＲＡＩＤ（Redundant Array of Inexpensive Disks）などのミラーリング処理部５２及びＰＬＣデータ５３１（第２のデータ）の処理用の第２ＲＴ（RunTime）５３を備えたリアルタイムＯＳ部５とからなるソフトウエア部分とを備えると共に、ＣＰＵ（プロセッサ）６０、メモリ６０１、ドライブストレージ６１及び不揮発性メモリ６２を有するハードウェア６を備える。なお、ドライブストレージ６１は、ＨＤＤ又はＳＳＤの意味である。なお、不揮発性メモリ６２に代えて、バッテリ付のSRAMなど、他の不揮発性メモリの実現手段を採用してもよい。
【００２４】
ＯＳ４１及びリアルタイムＯＳ５１は、ハイパーバイザ７等を利用した仮想環境上で実行される。リアルタイムＯＳ５１は、信頼性の高いＯＳであり、制御対象部２を安定的に制御可能なものである。ＯＳ４１は、リアルタイムＯＳ５１と比較すると、信頼性の面で劣る一方、汎用性が高く、種々の汎用アプリケーション又はユーザアプリケーションを実行させることができるものである。なお、ハイパーバイザ７とは、ＯＳ４１、リアルタイムＯＳ５１よりも下位のレベルで動作するもので、ハードウェア構成を再現（エミュレート）することにより複数のＯＳ（この例ではＯＳ４１、リアルタイムＯＳ５１）を制御し、１台のプロセッサ上で複数の仮想環境を構築することができるものである。
【００２５】
図２において、ミラーリング処理は、経時方向に順次入力されるＨＭＩデータ４０３である保持変数、アラームデータ及びデータログが、ＯＳ４１上の第１ＲＴ４２によって、バッファ等に保存されると共にミラーリングデータとしてリアルタイムＯＳ５１側に送信される。リアルタイムＯＳ５１上のミラーリング処理部５２によって、ＨＭＩデータ５０３はバッファ等に保存される。
【００２６】
ＨＭＩデータ４０３は、必要なタイミング、例えば第１ＲＴ４２の終了時にハードウェア６のドライブストレージ６１にファイルＡとして保存される。このように適宜のタイミングでの保存処理によって、保存動作を低減し得ることからディスクの長寿命化が図れる。また、ミラーリング処理部５２によってミラーリングデータとして保存されたＨＭＩデータ５０３は、例えば異常発生時、本実施形態では、電源供給が停止したことが検知された時（電断が検知された時）に、不揮発性メモリ６２にファイルＢとして保存（退避）される。保存を異常発生等のタイミングで行わせることで、リアルタイムＯＳ５１の負荷を低減している。なお、リアルタイムＯＳ５１上で動作する第２ＲＴ５３によって作成されるＰＬＣデータ（第２のデータ）も、ＨＭＩデータ（第１のデータ）と同様、電断発生時に、不揮発性メモリ６２にファイルＣとして保存（退避）される。
【００２７】
また、ＯＳ４１が起動した時、ファイルＡであるＨＭＩデータとファイルＢであるＨＭＩデータとは、例えば保存時点を示すタイムスタンプを比較されて、最新側のＨＭＩデータが復旧用に供される。なお、タイムスタンプは、公知のように内部タイマ（図略）からの時間情報を対象情報に対する処理の時点で対応付けることで利用可能にされる。
【００２８】
次に、図３を用いて、ＯＳ部４側及びリアルタイムＯＳ部５側の機能構成と、ＨＭＩデータの流れとを説明する。ＯＳ部４は、ＯＳ４１及びＯＳ４１上で動作する第１ＲＴ４２、例えばＨＭＩアプリ４１２が実行されることによって、データ管理部４１１として機能する。ＯＳ部４には、さらに保持データバッファ４１３、通信Ｉ／Ｆ４１４を備えている。
【００２９】
データ管理部４１１は、稼働中に、ディスプレイ１０３や制御対象部２側から順次入力されてくる、前述のＨＭＩデータを保持データバッファ４１３に更新的に保存すると共に、ミラーリングデータとして通信Ｉ／Ｆ４１４に出力する。また、データ管理部４１１は、ＨＭＩアプリ４１２の終了時に保持データバッファ４１３の内容をドライブストレージ６１に保存する。また、データ管理部４１１は、起動時に、ドライブストレージ６１に最後に保存されたＨＭＩデータの読み出しと、リアルタイムＯＳ５部側の不揮発性メモリ６２に最後に保存されたＨＭＩデータとを読み出し、両方のタイムスタンプを比較することで、最新側のＨＭＩデータを選別し、保持データバッファ４１３に復元する。
【００３０】
リアルタイムＯＳ５部は、リアルタイムＯＳ５１及びリアルタイムＯＳ５１上で動作するミラーリング処理部５２が実行されることによって、データ管理部５１１、及び電断検知部５１２として機能する。電断検知部５１２は、種々の態様が考えられ、例えば電源ラインの電圧レベルを検出し、閾値と比較する一般的なセンサ構成でもよい。リアルタイムＯＳ部５は、さらにバッファであるミラーリングデータ保持部５１３、バッファであるバックアップデータ保持部５１４、及び通信Ｉ／Ｆ５１５を備えている。通信Ｉ／Ｆ４１４と通信Ｉ／Ｆ５１５との間の通信方式は、特に問わず、例えばEthernet（登録商標）や仮想バス（VMBus）であってもよい。
【００３１】
データ管理部５１１は、稼働中に、通信Ｉ／Ｆ４１４から通信Ｉ／Ｆ５１５に送信されてきたミラーリングデータであるＨＭＩデータをミラーリングデータ保持部５１３に格納する。また、データ管理部５１１は、電断が検知された時、ミラーリングデータ保持部５１３に格納されているＨＭＩデータを、不揮発性メモリ６２に書き込む。なお、電断対策としては種々の態様が採用可能であり、例えば内蔵充電池や公知の保護回路を内装するなどしてＣＰＵ６０に遮断までの処理時間を確保させるものでもよい。また、データ管理部５１１は、リアルタイムＯＳ５１の起動時に、不揮発性メモリ６２の最新のＨＭＩデータをバックアップデータ保持部５１４に書き込む。また、データ管理部５１１は、通信Ｉ／Ｆ４１４から送信要求を受けると、バックアップデータ保持部５１４のＨＭＩデータを通信Ｉ／Ｆ５１５を介して通信Ｉ／Ｆ４１４に送信する。
【００３２】
図４は、ＯＳ上で動作するデータ管理部４１１によって実行される起動処理を示すフローチャートである。ＨＭＩアプリ４１２が起動すると、ＯＳ部４のドライブストレージ６１に保存されている保持データが読み出されて取得される（ステップＳ１）。次いで、リアルタイムＯＳ部５に対して、バックアップデータ保持部５１４に保存されたバックアップデータに対する取得要求が発せられる（ステップＳ３）。データ管理部４１１は、取得要求に応答してリアルタイムＯＳ部５側から送信され、取得されたバックアップデータと、ドライブストレージ６１に保存されている保持データとのタイムスタンプから、保持データバッファ４１３への復元の要否を判断する（ステップＳ５）。すなわち、ドライブストレージ６１に保存されている保持データの方が、リアルタイムＯＳ部５側から取得されるバックアップデータよりも時間的に新しい場合、保持データの復元処理は不要となる。なお、この場合、ドライブストレージ６１を書き込む態様でもよい。
【００３３】
一方、リアルタイムＯＳ部５側から取得されるバックアップデータの方が、ドライブストレージ６１に保存されている保持データよりも時間的に新しい場合、保持データの復元は必要、すなわちリアルタイムＯＳ部５側から取得されたバックアップデータを保持データバッファ４１３に復元する（ステップＳ７）。これにより、ＨＭＩアプリの起動に応じて直近のバックアップデータが保持データバッファ４１３に復元されることになる。
【００３４】
図５は、ＯＳ上で動作するデータ管理部４１１によって実行される稼働〜終了処理を示すフローチャートである。起動後のＨＭＩアプリ４１２は、稼働中において、ＨＭＩメインプログラム処理が、新たに入力されてきたＨＭＩデータのデータ更新か、メインプログラム終了通知の受信かの判断を行う（ステップＳ１１）。
【００３５】
ＨＭＩメインプログラム処理が、新たに入力されてきたＨＭＩデータのデータ更新と判断された場合、当該ＨＭＩデータを保持対象のデータとして、更新処理が指示される（ステップＳ１３）。すなわち、データ管理部４１１は、保持対象の保持データを保持データバッファ４１３に更新的に記憶する（ステップＳ１５）。次いで、データ管理部４１１は、保持対象の保持データをミラーリングデータとしてリアルタイムＯＳ部５側に送信する（ステップＳ１７）。
【００３６】
一方、ステップＳ１１において、ＨＭＩメインプログラム処理が、メインプログラム終了通知の受信と判断された場合、保持データバッファ４１３に保持されている保持データがドライブストレージ６１にファイルとして保存される（ステップＳ１９）。この時、タイムスタンプと対応付けて保存処理が行われることが好ましい。
【００３７】
図６は、リアルタイムＯＳ上で動作するデータ管理部５１１によって実行される電断処理等を示すフローチャートである。まず、起動時に、バックアップデータが不揮発性メモリ６２から取得される（ステップ＃１）。取得されたバックアップデータは、バックアップデータ保持部５１４に保持される（ステップ＃３）。この処理によって、起動直後から、ＯＳ部４からのバックアップデータ取得要求に応答することが可能となる。
【００３８】
次いで、電断通知の有無が判断される（ステップ＃５）。電断通知がない場合、続いて、ＯＳ部４側からデータ受信の有無が判断される（ステップ＃７）。ＯＳ部４側からのデータ受信がミラーリングデータの受信である場合、データ管理部５１１は、受信したミラーリングデータをミラーリングデータ保持部５１３に保存して（ステップ＃９）、ステップ＃５にリターンする。一方、ＯＳ部４側からデータ受信がバックアップデータ取得要求の受信である場合、データ管理部５１１は、バックアップデータをＯＳ４側に送信して（ステップ＃１１）、ステップ＃５にリターンする。
【００３９】
これに対し、ステップ＃５で電断通知がある場合、データ管理部５１１は、ミラーリングデータ保持部５１３に保存されているミラーリングデータを、不揮発性メモリ６２に書き込む（ステップ＃１３）。これにより、電断後の起動時に、電断時のタイムスタンプを付されたミラーリングデータが不揮発性メモリ６２から読み込まれてバックアップデータ保持部５１４に保存される（ステップ＃１，＃３）。
【００４０】
なお、ミラーリングデータをミラーリングデータ保持部５１３に書き込む途中で電断が発生した場合を考慮して、ミラーリングデータ保持部５１３を、例えば２個設けて交互に又は冗長化（２重書き込み）することで、ミラーリングデータの完全性を担保するようにしてもよい。
【００４１】
図７は、コントローラの他のブロック図である。図７に示すＩＰＣ３Ａは、図２のＩＰＣ３と比べて、ミラーリング処理部５２を備えていない点、及びミラーリング処理を第２ＲＴアプリ５３から不揮発性メモリ６２に直接書き込むようにした点である。ＩＰＣ３Ａは，ＯＳ４１上で動作する第１ＲＴ４２Ａによって、経時方向に順次入力されるＨＭＩデータをバッファすると共に、ミラーリングデータとしてＯＳ４１を介して、不揮発性メモリ６２に直接書き込む。なお、バッファされたＨＭＩデータは、所定のタイミング、例えば第１ＲＴアプリ４２Ａが終了する時点でドライブストレージ６１に保存される。これにより、ドライブストレージ６１は、長寿命化が図られ、またＨＭＩデータの入力毎に高頻度で書き込む場合に比してデータロスが低減され、さらにリアルタイムＯＳ部５Ａ側の負荷が軽減される。
【００４２】
なお、本実施形態では、ＨＭＩデータ、ミラーリングデータの保存用として、保持データバッファ４１３、ミラーリングデータ保持部（バッファ）５１３で説明したが、揮発性メモリに限らず、不揮発性のメモリであってもよい。また、本実施形態では、ＣＰＵ６０をシングルプロセッサとして説明したが、各ＯＳを制御するマルチプロセッサを採用する態様でもよい。
【００４３】
この発明は、前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００４４】
３  ＩＰＣ（コントローラ）
４１  ＯＳ（第１のオペレーティングシステム）
４１１  データ管理部（第１データ管理部）
４２  第１ＲＴ（アプリケーションプログラム）
４１２  ＨＭＩアプリ（アプリケーションプログラム）
４１３  保持データバッファ（第１メモリ）
５１  リアルタイムＯＳ（第２のオペレーティングシステム）
５１１  データ管理部（第２データ管理部）
５１２  電断検知部
５１３  ミラーリングデータ保持部（第２メモリ）
５１４  バックアップデータ保持部（バックアップメモリ）
５２  ミラーリング処理部（アプリケーションプログラム）
６０  ＣＰＵ（制御部）
６１  ドライブストレージ（第１不揮発性メモリ）
６２  不揮発性メモリ（第２不揮発性メモリ）
【図１】
2019159882.tif 000003
【図２】
2019159882.tif 000004
【図３】
2019159882.tif 000005
【図４】
2019159882.tif 000006
【図５】
2019159882.tif 000007
【図６】
2019159882.tif 000008
【図７】
2019159882.tif 000009