(57)【要約】【課題】蓄電部に十分な電荷が蓄積されていない状態で、揮発性記憶部と不揮発性記憶部との間でデータ転送を行うと、データ転送が途中で中断する場合があること。【解決手段】制御装置は、不揮発性記憶部と、揮発性記憶部と、電荷を蓄積する蓄電部と、電源異常が検出された場合に、蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、揮発性記憶部に記憶されているデータを不揮発性記憶部にバックアップする制御部とを備える。制御装置は、揮発性記憶部と、電荷を蓄積する蓄電部と、電源投入後に、蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、不揮発性記憶部に記憶されているデータを揮発性記憶部にリストアする制御部とを備えてよい。【選択図】図５
2018026101.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性記憶部と、
揮発性記憶部と、
電荷を蓄積する蓄電部と、
電源異常が検出された場合に、前記蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、前記揮発性記憶部に記憶されているデータを前記不揮発性記憶部にバックアップする制御部と
を備える制御装置。
【請求項２】
前記制御部は、前記電源異常が検出された場合に、前記蓄電部に蓄積されている電荷量が前記予め定められた電荷量以下であるときは、前記揮発性記憶部に記憶されているデータを前記不揮発性記憶部にバックアップしない
請求項１に記載の制御装置。
【請求項３】
前記制御部は、前記電源異常が検出された場合に、前記蓄電部に蓄積されている電荷量が前記予め定められた電荷量以下であるときは、前記揮発性記憶部に記憶されているデータを前記不揮発性記憶部にバックアップせずに、前記バックアップしなかった旨を示す情報を、前記不揮発性記憶部に記憶させる
請求項１に記載の制御装置。
【請求項４】
前記蓄電部の電圧を監視する電圧監視部
をさらに備え、
前記制御部は、電源異常が検出された場合に、前記電圧監視部が検出した電圧が予め定められた電圧を超えることを条件として、前記揮発性記憶部に記憶されているデータを前記不揮発性記憶部にバックアップし、前記電圧監視部が検出した電圧が前記予め定められた電圧以下であるときは、前記揮発性記憶部に記憶されているデータを前記不揮発性記憶部にバックアップしない
請求項１から３のいずれか一項に記載の制御装置。
【請求項５】
電源電圧を降圧して、前記制御装置を動作させる予め定められた動作電圧の電力を生成する電源部
をさらに備え、
前記動作電圧より高い予め定められた電圧以下に前記電源電圧が低下した場合に、前記電源異常を検出する低電圧検出部
をさらに備える請求項１から４のいずれか一項に記載の制御装置。
【請求項６】
前記制御部は、電源投入後に、前記蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、前記不揮発性記憶部から前記揮発性記憶部にリストアされたデータを用いる制御を開始する
請求項１から５のいずれか一項に記載の制御装置。
【請求項７】
前記制御部は、電源投入後に、前記蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、前記不揮発性記憶部に記憶されているデータを前記揮発性記憶部にリストアする
請求項１から６のいずれか一項に記載の制御装置。
【請求項８】
前記制御部は、電源投入後に、前記不揮発性記憶部に記憶されているデータを前記揮発性記憶部にリストアした後、前記蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、前記揮発性記憶部にリストアした前記データを用いる制御を開始する
請求項１から６のいずれか一項に記載の制御装置。
【請求項９】
不揮発性記憶部と、
揮発性記憶部と、
電荷を蓄積する蓄電部と、
電源投入後に、前記蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、前記不揮発性記憶部から前記揮発性記憶部にリストアされたデータを用いる制御を開始する制御部と
を備える制御装置。
【請求項１０】
不揮発性記憶部と、
揮発性記憶部と、
電荷を蓄積する蓄電部と、
電源投入後に、前記蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、前記不揮発性記憶部に記憶されているデータを前記揮発性記憶部にリストアする制御部と
を備える制御装置。
【請求項１１】
不揮発性記憶部と、
揮発性記憶部と、
電荷を蓄積する蓄電部と、
電源投入後に、前記不揮発性記憶部に記憶されているデータを前記揮発性記憶部にリストアした後、前記蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、前記揮発性記憶部にリストアした前記データを用いる制御を開始する制御部と
を備える制御装置。
【請求項１２】
請求項１から１１のいずれか一項に記載の制御装置と、
前記制御装置による制御に従って、被制御機器との間でデータの入出力を行う入出力装置と
を備える制御システム。
【請求項１３】
電源異常が検出された場合に、蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、揮発性記憶部に記憶されているデータを不揮発性記憶部にバックアップする段階
を備える制御方法。
【請求項１４】
電源投入後に、蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、不揮発性記憶部から揮発性記憶部にリストアされたデータを用いる制御を開始する段階
を備える制御方法。
【請求項１５】
電源投入後に、蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、不揮発性記憶部に記憶されているデータを揮発性記憶部にリストアする段階
を備える制御方法。
【請求項１６】
電源投入後に、不揮発性記憶部に記憶されているデータを揮発性記憶部にリストアした後、蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、前記揮発性記憶部にリストアされた前記データを用いる制御を開始する段階
を備える制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御システム及び制御方法に関する。
【背景技術】
【０００２】
プログラマブルコントローラにおいて、充電要素の出力電圧が所定の電圧以下になった後に電源停止信号を出力するリセット合成回路と、電源回路の出力電圧が所定の電圧以下になった場合に電源回路を停止させる起動トリガ回路とを備えるＣＰＵユニットが知られている（例えば特許文献１参照）。
特許文献１  特開２０１１−７０４４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
例えば電源異常が発生した場合に、揮発性記憶部に記憶されているデータを不揮発性記憶部にバックアップする場合に、蓄電部に十分な量の電荷が蓄積されていないと、バックアップが途中で中断してしまう場合がある。このように、蓄電部に十分な電荷が蓄積されていない状態で、揮発性記憶部と不揮発性記憶部との間でデータ転送を行うと、データ転送が途中で中断してしまう場合がある。
【課題を解決するための手段】
【０００４】
第１の態様において、制御装置は、不揮発性記憶部と、揮発性記憶部と、電荷を蓄積する蓄電部と、電源異常が検出された場合に、蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、揮発性記憶部に記憶されているデータを不揮発性記憶部にバックアップする制御部とを備える。
【０００５】
制御部は、前記電源異常が検出された場合に、前記蓄電部に蓄積されている電荷量が前記予め定められた電荷量以下であるときは、前記揮発性記憶部に記憶されているデータを前記不揮発性記憶部にバックアップしなくてよい。
【０００６】
制御部は、前記電源異常が検出された場合に、前記蓄電部に蓄積されている電荷量が前記予め定められた電荷量以下であるときは、前記揮発性記憶部に記憶されているデータを前記不揮発性記憶部にバックアップせずに、前記バックアップしなかった旨を示す情報を、前記不揮発性記憶部に記憶させてよい。
【０００７】
蓄電部の電圧を監視する電圧監視部をさらに備え、制御部は、電源異常が検出された場合に、前記電圧監視部が検出した電圧が予め定められた電圧を超えることを条件として、前記揮発性記憶部に記憶されているデータを前記不揮発性記憶部にバックアップし、前記電圧監視部が検出した電圧が前記予め定められた電圧以下であるときは、前記揮発性記憶部に記憶されているデータを前記不揮発性記憶部にバックアップしなくてよい。
【０００８】
電源電圧を降圧して、前記制御装置を動作させる予め定められた動作電圧の電力を生成する電源部をさらに備え、動作電圧より高い予め定められた電圧以下に前記電源電圧が低下した場合に、前記電源異常を検出する低電圧検出部をさらに備えてよい。
【０００９】
制御部は、電源投入後に、前記蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、前記不揮発性記憶部から前記揮発性記憶部にリストアされたデータを用いる制御を開始してよい。
【００１０】
制御部は、電源投入後に、前記蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、前記不揮発性記憶部に記憶されているデータを前記揮発性記憶部にリストアしてよい。
【００１１】
制御部は、電源投入後に、不揮発性記憶部に記憶されているデータを揮発性記憶部にリストアした後、蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、揮発性記憶部にリストアしたデータを用いる制御を開始してよい。
【００１２】
第２の態様において、制御装置は、不揮発性記憶部と、揮発性記憶部と、電荷を蓄積する蓄電部と、電源投入後に、前記蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、前記不揮発性記憶部から前記揮発性記憶部にリストアされたデータを用いる制御を開始する制御部とを備えてよい。
【００１３】
第３の態様において、制御装置は、不揮発性記憶部と、揮発性記憶部と、電荷を蓄積する蓄電部と、電源投入後に、前記蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、前記不揮発性記憶部に記憶されているデータを前記揮発性記憶部にリストアする制御部とを備えてよい。
【００１４】
第４の態様において、制御装置は、不揮発性記憶部と、揮発性記憶部と、電荷を蓄積する蓄電部と、電源投入後に、前記不揮発性記憶部に記憶されているデータを前記揮発性記憶部にリストアした後、前記蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、前記揮発性記憶部にリストアした前記データを用いる制御を開始する制御部とを備えてよい。
【００１５】
第５の態様において、制御システムは、上記の制御装置と、制御装置による制御に従って、被制御機器との間でデータの入出力を行う入出力装置とを備える。
【００１６】
第６の態様において、制御方法は、電源異常が検出された場合に、蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、揮発性記憶部に記憶されているデータを不揮発性記憶部にバックアップする段階を備える。
【００１７】
第７の態様において、制御方法は、電源投入後に、蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、不揮発性記憶部から揮発性記憶部にリストアされたデータを用いる制御を開始する段階を備える。
【００１８】
第８の態様において、制御方法は、電源投入後に、蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、不揮発性記憶部に記憶されているデータを揮発性記憶部にリストアする段階を備える。
【００１９】
第９の態様において、制御方法は、電源投入後に、不揮発性記憶部に記憶されているデータを揮発性記憶部にリストアした後、蓄電部に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、前記揮発性記憶部にリストアされた前記データを用いる制御を開始する段階を備える。
【００２０】
なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【００２１】
【図１】一実施形態における制御システム１０の概略的な構成を示す。
【図２】ＣＰＵモジュール１００の機能構成を概略的に示す。
【図３】電源部２２０の機能構成を概略的に示す。
【図４】電源投入後の電圧監視部３００の処理を示すフローチャートである。
【図５】電源投入後の電圧監視部３００の処理を示すフローチャートである。
【図６】電源投入後の制御部２００の他の処理を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００２３】
図１は、一実施形態における制御システム１０の概略的な構成を示す。制御システム１０は、管理装置２０と、ＣＰＵモジュール１００と、ＩＯモジュール１２０ａ及びＩＯモジュール１２０ｂと、電源モジュール１８０と、被制御機器４０ａ、被制御機器４０ｂ及び被制御機器４０ｃとを備える。
【００２４】
本実施形態において、ＩＯモジュール１２０ａ及びＩＯモジュール１２０ｂを、ＩＯモジュール１２０と総称する場合がある。また、被制御機器４０ａ、被制御機器４０ｂ及び被制御機器４０ｃを、被制御機器４０と総称する場合がある。ＣＰＵモジュール１００は、制御装置の一例である。ＩＯモジュール１２０は、ＣＰＵモジュール１００による制御に従って、被制御機器４０との間でデータの入出力を行う入出力装置の一例である。
【００２５】
管理装置２０は、パーソナルコンピュータ等のコンピュータにより実現される。管理装置２０は、ネットワークを通じてＣＰＵモジュール１００と通信する。ＣＰＵモジュール１００は、ネットワーク又はバスを通じて、ＩＯモジュール１２０ａ及びＩＯモジュール１２０ｂと通信する。ＩＯモジュール１２０ａは、被制御機器４０ａに接続される。ＩＯモジュール１２０ａは、被制御機器４０ａとの間のデータの入出力を担う。ＩＯモジュール１２０ｂは、被制御機器４０ｂ及び被制御機器４０ｃのそれぞれのとの間のデータの入出力を担う。なお、ＣＰＵモジュール１００の数、ＩＯモジュール１２０の数、及び、被制御機器４０の数は、本実施形態に示される数に限定されない。
【００２６】
制御システム１０は、工場やプラント等の産業施設において用いられてよい。制御システム１０は、ファクトリーオートメーションの少なくとも一部として用いられてよい。管理装置２０、ＣＰＵモジュール１００及びＩＯモジュール１２０は、産業用制御システムであってよい。被制御機器４０は、管理装置２０、ＣＰＵモジュール１００及びＩＯモジュール１２０による制御対象となる機器である。被制御機器４０は、モータ、エンコーダ、ポンプ、バルブ、カメラ、各種センサ等であってよい。被制御機器４０は、例えば産業機械であってよい。ＣＰＵモジュール１００及びＩＯモジュール１２０は、それぞれプログラマブルロジックコントローラ（ＰＬＣ）であってよい。
【００２７】
管理装置２０は、制御システム１０全体を制御する。管理装置２０は、ＣＰＵモジュール１００からステータス情報を読み出し、制御システム１０が制御する工程に従って、ＣＰＵモジュール１００に各種の制御指示を出力する。
【００２８】
ＩＯモジュール１２０は、被制御機器４０から、被制御機器４０による計測結果を示す情報や被制御機器４０の状態を示す情報等のデータを入力データとして取得する。ＩＯモジュール１２０は、被制御機器４０から取得した入力データを、ＣＰＵモジュール１００に出力する。
【００２９】
ＣＰＵモジュール１００は、ラダー図等を通じて生成されたシーケンス制御のためのアプリケーションプログラムを有する。ＣＰＵモジュール１００は、管理装置２０から取得した制御指示と、ＩＯモジュール１２０を通じて取得した入力データとに基づいて、被制御機器４０への出力データを生成して、ＩＯモジュール１２０に送信する。ＩＯモジュール１２０は、ＣＰＵモジュール１００から受信した出力データに基づいて、被制御機器４０に制御信号を出力する。
【００３０】
電源モジュール１８０は、ＣＰＵモジュール１００及びＩＯモジュール１２０に供給される電力である電源電力を生成する。電源モジュール１８０は、商用電力から電源電力を生成してよい。なお、電源電力の電圧を、「電源電圧」と呼ぶ。
【００３１】
図２は、ＣＰＵモジュール１００の機能構成を概略的に示す。ＣＰＵモジュール１００は、制御部２００と、リセット部２１０と、電源部２２０と、低電圧検出部２３０と、第１通信部２４０と、第２通信部２４２と、揮発性メモリ２８１と、不揮発性メモリ２８２と、バス２９０とを備える。
【００３２】
電源部２２０は、ＣＰＵモジュール１００を動作させるための電力を生成する。ＣＰＵモジュール１００を動作させるための電力を、「動作電力」と呼ぶ。なお、動作電力の電圧を、「動作電圧」と呼ぶ。動作電圧は、規定値以上の予め定められた大きさの電圧であってよい。電源部２２０は、電源モジュール１８０からの電源電力を変換して、ＣＰＵモジュール１００の動作電力を生成する。より具体的には、電源部２２０は、電源電力を降圧して、動作電力を生成する。電源電圧は２４Ｖであってよい。動作電圧は３．３Ｖであってよい。すなわち、電源部２２０は、２４Ｖの電圧の電源電力を、３．３Ｖの電圧の動作電力に変換してよい。電源部２２０が生成した動作電力は、ＣＰＵモジュール１００の各部に供給される。例えば、電源部２２０が生成した動作電力は、制御部２００、リセット部２１０、第１通信部２４０、第２通信部２４２、低電圧検出部２３０、揮発性メモリ２８１、不揮発性メモリ２８２に供給され、それぞれが動作するための電力として用いられる。
【００３３】
リセット部２１０は、制御部２００にリセット信号を生成する。例えば、リセット部２１０は、電源部２２０から出力する電圧が規定値を超えた場合に、リセット信号を生成する。リセット信号は、電源部２２０が正常な動作電力を生成し始めたことを示す。制御部２００は、リセット部２１０からリセット信号を受信した場合に、動作を開始する。
【００３４】
制御部２００は、プロセッサであってよい。制御部２００は、マイクロコントローラであってよい。制御部２００は、中央処理装置（ＣＰＵ）、ＲＯＭ、ＲＡＭ等を含む半導体集積回路で構成されてよい。制御部２００は、ＣＰＵモジュール１００における主処理を担う。例えば、制御部２００は、システムプログラム及びアプリケーションプログラムに基づいて、ＩＯモジュール１２０からの出力データの処理、ＩＯモジュール１２０に対する入力データの生成、管理装置２０から受信した制御指示の処理、管理装置２０へのメッセージデータの生成等の処理を行う。
【００３５】
制御部２００は、第１通信部２４０、第２通信部２４２、揮発性メモリ２８１及び不揮発性メモリ２８２と、バス２９０を通じて接続される。制御部２００、第１通信部２４０、第２通信部２４２、揮発性メモリ２８１及び不揮発性メモリ２８２は、バス２９０を通じて互いにデータを送受信する。
【００３６】
第１通信部２４０は、外部の機器との通信を担う。例えば、第１通信部２４０は、ＩＯモジュール１２０からデータを受信し、ＩＯモジュール１２０にデータを送信する。具体的には、第１通信部２４０は、被制御機器４０が出力した出力データを、ＩＯモジュール１２０から受信する。第１通信部２４０は、受信したデータを制御部２００に送信する。第１通信部２４０は、被制御機器４０への入力データを制御部２００から受信して、受信した入力データをＩＯモジュール１２０に送信する。
【００３７】
第２通信部２４２は、管理装置２０との通信を担う。第２通信部２４２は、管理装置２０からの制御指示を受信して、受信した制御指示を制御部２００に送信する。また、第２通信部２４２は、管理装置２０へのメッセージデータを制御部２００から受信して、受信したメッセージデータを管理装置２０に送信する。
【００３８】
揮発性メモリ２８１は、揮発性記憶部の一例である。揮発性メモリ２８１は、例えば、ＳＲＡＭであってよい。不揮発性メモリ２８２は、不揮発性記憶部の一例である。不揮発性メモリ２８２は、例えば、フラッシュメモリであってよい。不揮発性メモリ２８２は、揮発性メモリ２８１よりアクセス速度が低速なメモリである。例えば、不揮発性メモリ２８２のアクセス時間は、揮発性メモリ２８１のアクセス時間より長い。
【００３９】
不揮発性メモリ２８２は、バックアップを必要とするデータであるバックアップデータを記憶する。バックアップデータは、例えば、アプリケーションプログラム用データ、システムプログラム用データ、制御システム１０の稼働情報、制御システム１０の故障情報、被制御機器４０との通信における通信状態や異常履歴等のＲＡＳ情報、及び、被制御機器４０のＩＯ情報等の動作状態のデータを含む。不揮発性メモリ２８２に記憶されているバックアップデータは、ＣＰＵモジュール１００の起動時に、揮発性メモリ２８１に転送される。制御部２００は、通常処理において、揮発性メモリ２８１に転送されたバックアップデータを用いて、被制御機器４０の制御を含む主処理を実行する。これにより、制御部２００は、高速に主処理を実行することができる。
【００４０】
揮発性メモリ２８１に記憶されているバックアップデータは、ＣＰＵモジュール１００が通常処理を行っている間に、更新される。例えば、揮発性メモリ２８１に記憶されているＩＯデータは、ＣＰＵモジュール１００が決定した出力データ及びＩＯモジュール１２０から取得した入力データに基づいて、更新され得る。また、管理装置２０からの制御指示により、揮発性メモリ２８１に記憶されているアプリケーションプログラム用データが更新され得る。また、管理装置２０からの制御指示等により、揮発性メモリ２８１に記憶されているシステムプログラム用データが更新され得る。また、揮発性メモリ２８１に記憶されている稼働情報及び故障情報は、制御システム１０の稼働状態が変化したり、制御システム１０内で機器の故障が発生した場合に、更新される。また、揮発性メモリ２８１に記憶されているＲＡＳ情報は、通信状態が変化したり、異常が発生した場合に、更新される。
【００４１】
ＣＰＵモジュール１００の動作終了時に、揮発性メモリ２８１に記憶されているバックアップデータは、不揮発性メモリ２８２に転送される。このように、ＣＰＵモジュール１００の起動時に、不揮発性メモリ２８２に記憶されているデータが揮発性メモリ２８１にリストアされ、ＣＰＵモジュール１００の動作終了時に、揮発性メモリ２８１に記憶されているデータは、不揮発性メモリ２８２にバックアップされる。なお、揮発性メモリ２８１に記憶されているデータを不揮発性メモリ２８２にバックアップする処理を、「バックアップ処理」と呼ぶ。また、不揮発性メモリ２８２に記憶されているデータを揮発性メモリ２８１にリストアする処理を、「リストア処理」と呼ぶ。
【００４２】
低電圧検出部２３０は、ＣＰＵモジュール１００における電源遮断を検出する。電源遮断が生じた場合、電源電圧が低下する。したがって、低電圧検出部２３０は、電源電圧を検出することにより、電源遮断を検出する。具体的には、低電圧検出部２３０は、電源電圧が予め定められた電圧以下に低下した場合に、電源遮断を検出する。ここで、予め定められた電圧は、動作電圧より高く、電源電圧より低くてよい。一例として、予め定められた電圧は、２０Ｖであってよい。すなわち、低電圧検出部２３０は、電源電圧が２０Ｖ以下に低下した場合に、電源遮断を検出してよい。
【００４３】
低電圧検出部２３０は、電源遮断を検出した場合に、電源遮断が生じた旨を示す信号を生成して、制御部２００に出力する。低電圧検出部２３０は、電源遮断を検出していない場合、電源遮断が生じていない旨を示す信号を生成して、制御部２００に出力する。なお、電源遮断は、電源異常の一例である。電源異常とは、電源モジュール１８０からの電源供給が完全に停止する場合だけでなく、電源モジュール１８０の電源電圧が低下することにより、電源部２２０が規定値を超える電圧の動作電力を生成することができない場合も含む。低電圧検出部２３０は、電源遮断を検出した場合に、電源遮断が生じたことを制御部２００に通知する。例えば、低電圧検出部２３０は、電源遮断が生じたことを、割り込みにより制御部２００に通知する。なお、電源遮断が生じたことを通知する割り込みを、「電源遮断割り込み」と呼ぶ。
【００４４】
制御部２００は、低電圧検出部２３０から電源遮断割り込みが生じた場合に、電源遮断が検出されてから、バックアップ処理が完了するまでの時間より長くＣＰＵモジュール１００が動作できるか否かを、電源部２２０の状態に基づいて、判断する。制御部２００は、電源遮断が生じた場合に、電源遮断が検出されてからバックアップ処理が完了するまでの時間より長くＣＰＵモジュール１００が動作できると判断したことを条件として、バックアップ処理を開始する。これにより、バックアップ処理が途中で中断してしまうことを抑制できる。そのため、データの一意性を保つことができる。また、バックアップデータが不揮発性メモリ２８２に破損した状態で記憶されることを抑制できる。
【００４５】
図３は、電源部２２０の機能構成を概略的に示す。電源部２２０は、ダイオード３１０ａ及びダイオード３１０ｂと、スイッチング電源３５０ａ及びスイッチング電源３５０ｂと、ダイオード３２０ａ及びダイオード３２０ｂと、蓄電部３３０と、電圧監視部３００とを備える。
【００４６】
ダイオード３１０ａは、電源モジュール１８０とスイッチング電源３５０ａとの間に接続される。ダイオード３１０ａのアノードは電源モジュール１８０に接続され、ダイオード３１０ａのカソードがスイッチング電源３５０ａに接続される。ダイオード３１０ｂは、スイッチング電源３５０ａとスイッチング電源３５０ｂとの間に接続される。ダイオード３１０ｂのアノードはスイッチング電源３５０ａに接続され、ダイオード３１０ｂのカソードはスイッチング電源３５０ｂに接続される。
【００４７】
ダイオード３１０ａは、スイッチング電源３５０ａからの電力の逆流を防止する。スイッチング電源３５０ａは、電源モジュール１８０からの電源電力を、中間電力に変換する。例えば、スイッチング電源３５０ａは、電源モジュール１８０からの２４Ｖの電圧の電源電力を、３．８Ｖの電圧の中間電力に変換する。ダイオード３１０ｂは、スイッチング電源３５０ｂからの電流の逆流を防止する。スイッチング電源３５０ｂは、中間電力を動作電力に変換する。動作電力の電圧は、３．３Ｖであってよい。スイッチング電源３５０ｂが生成した動作電力は、ＣＰＵモジュール１００の各部に供給される。
【００４８】
ダイオード３２０ａは、ノード３９０ａとダイオード３２０ｂとの間に接続される。ノード３９０ａは、スイッチング電源３５０ａとダイオード３１０ｂとの間のノードである。ダイオード３２０ａのアノードはノード３９０ａに接続され、ダイオード３２０ａのカソードはダイオード３２０ｂに接続される。ダイオード３２０ｂは、ダイオード３２０ａとノード３９０ｂとの間に接続される。ノード３９０ｂは、ダイオード３１０ｂとスイッチング電源３５０ｂとの間のノードである。ダイオード３２０ｂのアノードはダイオード３２０ａに接続され、ダイオード３２０ｂのカソードはノード３９０ｂに接続される。
【００４９】
蓄電部３３０は、ノード３９０ｃとグランドとの間に接続される。ノード３９０ｃは、ダイオード３２０ａとダイオード３２０ｂとの間のノードである。蓄電部３３０は、電荷を蓄積する。蓄電部３３０は、電気二重層キャパシタ等のキャパシタ、二次電池等であってよい。蓄電部３３０に蓄積されている電荷は、電源遮断時に放出される。蓄電部３３０から放出された電荷は、ノード３９０ｃ、ダイオード３２０ｂ及びノード３９０ｂを通じてスイッチング電源３５０ｂに供給される。
【００５０】
ダイオード３２０ａは、ノード３９０ｃからの電流の逆流を防止する。ダイオード３２０ａは、ノード３９０ｂからの電流の逆流を防止する。スイッチング電源３５０ａから中間電力が供給されている場合、蓄電部３３０は、ダイオード３２０ａを通じて供給される中間電力により、電荷を蓄積する。スイッチング電源３５０ａから中間電力が供給されていない場合、蓄電部３３０は、蓄積している電荷を放出して、ダイオード３２０ｂを通じてノード３９０ｂに電力を供給する。この場合、スイッチング電源３５０ｂは、蓄電部３３０から供給される電力を変換して動作電力を生成する。
【００５１】
なお、蓄電部３３０は、スイッチング電源３５０ａからの中間電力の電圧が蓄電部３３０の電圧より低い場合にも、蓄積している電荷を放出して、ダイオード３２０ｂを通じてノード３９０ｂに電力を供給する。この場合、スイッチング電源３５０ｂは、蓄電部３３０から供給される電力及びスイッチング電源３５０ａからの中間電力を変換して、動作電力を生成する。
【００５２】
電圧監視部３００は、蓄電部３３０に蓄積された電荷量を示す情報を監視する。具体的には、電圧監視部３００は、蓄電部３３０の電圧を検出する。より具体的には、蓄電部３３０は、蓄電部３３０の端子間電圧を検出する。蓄電部３３０の電圧は、蓄電部３３０に蓄積された電荷量に応じた値となる。電圧監視部３００は、蓄電部３３０の電圧を継続的に検出することにより、蓄電部３３０に蓄積された電荷量を監視する。
【００５３】
制御部２００は、低電圧検出部２３０により電源遮断が検出された場合に、電圧監視部３００が検出した電圧が予め定められた電圧を超えることを条件として、揮発性メモリ２８１に記憶されているデータを不揮発性メモリ２８２にバックアップする。一方、制御部２００は、電圧監視部３００が検出した電圧が予め定められた電圧以下である場合には、揮発性メモリ２８１に記憶されているデータを不揮発性メモリ２８２にバックアップしない。制御部２００は、低電圧検出部２３０により電源遮断が検出された場合に、電圧監視部３００が検出した電圧が予め定められた電圧以下であるときは、揮発性メモリ２８１に記憶されているデータを不揮発性メモリ２８２にバックアップせずに、バックアップしなかった旨を示す情報を、不揮発性メモリ２８２に記憶させてよい。
【００５４】
このように、制御部２００は、電源遮断が検出された場合に、蓄電部３３０に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、揮発性メモリ２８１に記憶されているデータを不揮発性メモリ２８２にバックアップする。また、制御部２００は、電源遮断が検出された場合に、蓄電部３３０に蓄積されている電荷量が予め定められた電荷量以下であるときは、揮発性メモリ２８１に記憶されているデータを不揮発性メモリ２８２にバックアップしない。これにより、データのバックアップ処理が途中で中断することを抑制できる。
【００５５】
なお、制御部２００は、電源投入後に、蓄電部３３０に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、不揮発性メモリ２８２から揮発性メモリ２８１にリストアされたデータを用いる制御を開始してよい。例えば、制御部２００は、電源投入後に、電圧監視部３００が検出した電圧が予め定められた電圧を超えるまで待ってから、不揮発性メモリ２８２に記憶されているデータを揮発性メモリ２８１にリストアしてよい。このように、制御部２００は、電源投入後に、蓄電部３３０に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、不揮発性メモリ２８２に記憶されているデータを揮発性メモリ２８１にリストアしてよい。また、制御部２００は、電源投入後に、蓄電部３３０の充電に並行して、不揮発性メモリ２８２から揮発性メモリ２８１へのデータのリストアを行い、揮発性メモリ２８１へのデータのリストアが完了後に、電圧監視部３００が検出した電圧が予め定められた電圧を超えていることを条件として、揮発性メモリ２８１にリストアしたデータを用いる制御を開始してよい。このように、制御部２００は、電源投入後に、不揮発性メモリ２８２に記憶されているデータを揮発性メモリ２８１にリストアした後、蓄電部３３０に蓄積されている電荷量が予め定められた電荷量を超えることを条件として、揮発性メモリ２８１にリストアしたデータを用いる制御を開始してもよい。
【００５６】
これにより、蓄電部３３０に十分な電荷量が蓄積された後にリストア処理を開始するので、リストア処理が完了した後にすぐに電源遮断が生じたとしても、バックアップ処理を確実に完了させることができる。そのため、ＣＰＵモジュール１００によれば、電源投入後に電源遮断が生じた場合でも、データの一意性を保つことができる。また、データが破損することを抑制できる。また、リストア処理中に電源遮断が生じたとしても、リストア処理を完了させてから、ＣＰＵモジュール１００の終了処理を行うことができる。そのため、リストアされた一貫性のあるデータを用いて、ＣＰＵモジュール１００の終了処理を正しく行うことができる。
【００５７】
図４は、電源投入後の電圧監視部３００の処理を示すフローチャートである。図４のフローチャートは、電源モジュール１８０から電源電力が供給されて、電圧監視部３００が動作するために必要な電力が電圧監視部３００に供給された場合に、開始される。なお、電源投入されてスイッチング電源３５０ａにより中間電力が生成されると、蓄電部３３０への電荷の蓄積が開始される。
【００５８】
電圧監視部３００に電力が供給されて電圧監視部３００の動作が可能になると、電圧監視部３００は、Ｓ４０２において、初期値としてバックアップ不可情報を出力する。バックアップ不可情報は、制御部２００がバックアップ処理を行うことを禁止することを示す。電圧監視部３００は、制御部２００のレジスタに、バックアップ処理を行うことを禁止することを示す値を書き込むことにより、バックアップ不可情報を出力してよい。
【００５９】
Ｓ４０４において、電圧監視部３００は、蓄電部３３０の端子間電圧が規定値を超えているか否かを判断する。蓄電部３３０の端子間電圧が規定値を超えていない場合、Ｓ４０８において、バックアップ不可情報の出力を継続し、Ｓ４０４に戻る。端子間電圧の規定値は、バックアップ処理を完了するのに必要な時間より長くＣＰＵモジュール１００が動作するために必要な電力を蓄電部３３０が供給することができるように、予め定められる。
【００６０】
Ｓ４０４において電圧監視部３００が蓄電部３３０の端子間電圧が規定値を超えていると判断した場合、電圧監視部３００は、Ｓ４０６において、バックアップ可能情報を出力し、Ｓ４０４に戻る。バックアップ可能情報は、制御部２００がバックアップ処理を行うことが可能であることを示す。電圧監視部３００は、制御部２００のレジスタに、バックアップ処理が可能であることを示す値を書き込むことにより、バックアップ可能情報を出力してよい。
【００６１】
図４のフローチャートの処理は、スイッチング電源３５０ａ及び蓄電部３３０から電圧監視部３００に必要な電力が供給されている限り、実行される継続する。したがって、電圧監視部３００は、バックアップ可能情報を出力した後も、Ｓ４０４の判断を続ける。したがって、電圧監視部３００は、バックアップ可能情報を出力した後に蓄電部３３０の端子間電圧が規定値以下になった場合は、バックアップ不可情報を出力する。なお、図４のフローチャートの処理は、電圧監視部３００が動作するために必要な電力が電圧監視部３００に供給されなくなった場合に、終了する。
【００６２】
図５は、電源投入後の制御部２００の処理を示すフローチャートである。図５のフローチャートは、電源投入された後にリセット部２１０からリセット信号を取得した場合に開始される。
【００６３】
制御部２００は、リセット信号を受信すると、Ｓ５００において、初期化処理を開始する。制御部２００は、初期化処理の一部として、内部のＲＯＭやＲＡＭ等の内部回路の初期化、揮発性メモリ２８１、不揮発性メモリ２８２、第１通信部２４０、第２通信部２４２の初期化等を行う。また、初期化処理の一部として、制御部２００は、システムプログラム及びアプリケーションプログラムをＲＯＭから読み出してよい。
【００６４】
制御部２００は、初期化処理の一部として、Ｓ５０２において、電圧監視部３００からバックアップ可能情報が出力されているか否かを判断する。電圧監視部３００からバックアップ可能情報が出力されていない場合は、電圧監視部３００からバックアップ可能情報が出力されるまで、Ｓ５０２の判断を繰り返す。Ｓ５０２において、制御部２００が電圧監視部３００からバックアップ可能情報が出力されていると判断した場合、制御部２００は、Ｓ５０４において、不揮発性メモリ２８２に記憶されているバックアップデータを揮発性メモリ２８１に転送する。続いて、制御部２００は、Ｓ５０６において、バックアップデータの転送後に行うべき残りの初期化処理を行い、初期化処理を完了させる。
【００６５】
続いて、制御部２００は、Ｓ５１０において、通常処理を実行する。通常処理には、揮発性メモリ２８１に記憶されているバックアップデータに基づくＩＯモジュール１２０の制御、管理装置２０からの制御指示に基づく制御システム１０の全体の制御、及び、管理装置２０へのデータ送信等が含まれる。
【００６６】
通常処理に並行して、制御部２００は、Ｓ５１２において、電源遮断割り込みが生じたか否かを判断する。電源遮断割り込みが生じていない場合は、Ｓ５１０の処理を継続する。電源遮断割り込みが生じた場合は、Ｓ５２０において通常処理を終了し、Ｓ５２２において、電圧監視部３００からバックアップ情報可能が出力されているか否かを判断する。Ｓ５２２において電圧監視部３００からバックアップ可能情報が出力されていると判断した場合、制御部２００は、揮発性メモリ２８１に記憶されているバックアップデータを、不揮発性メモリ２８２に転送して、処理を終了する。
【００６７】
Ｓ５２２において電圧監視部３００からバックアップ不可情報が出力されていると判断した場合、制御部２００は、予備電源異常を示す情報を不揮発性メモリ２８２に記憶させて、処理を終了する。
【００６８】
なお、図５のフローチャートのＳ５１２以降の処理は、制御部２００が通常処理をしている最中に電源遮断が生じた場合の終了処理である。その他に、管理装置２０から動作を終了するよう指示された場合等のように、通常の終了処理をする場合にも、制御部２００は、バックアップ可否情報に基づいてバックアップ処理を開始してよい。
【００６９】
具体的には、管理装置２０から動作を終了するよう指示された場合において、電圧監視部３００からバックアップ可能情報が出力されているときは、揮発性メモリ２８１に記憶されているバックアップデータを不揮発性メモリ２８２に転送してよい。このように、制御部２００は、バックアップ処理を開始する前に、電圧監視部３００からバックアップ可能情報が出力されているか否かを判断して、電圧監視部３００からバックアップ可能情報が出力されていることを条件として、バックアップ処理を開始してよい。
【００７０】
一方、管理装置２０から動作を終了するよう指示された場合において、電圧監視部３００からバックアップ不可情報が出力されているときは、電圧監視部３００からバックアップ可能情報が出力されるのを待ってから、揮発性メモリ２８１に記憶されているバックアップデータを不揮発性メモリ２８２に転送してよい。このとき、制御部２００は、バックアップ可能情報が予め定められた時間を経過しても出力されない場合には、予備電源異常を示す情報を不揮発性メモリ２８２に記憶させて、処理を終了してよい。
【００７１】
図６は、電源投入後の制御部２００の他の処理を示すフローチャートである。図６のフローチャートは、電源投入された後にリセット部２１０からリセット信号を取得した場合に開始される。図６に示すフローチャートと図５に示すフローチャートとは、図５のＳ５１０の処理を開始するまでの手順が異なる。そのため、リセット部２１０からリセット信号を取得してから図５のＳ５１０を開始する前までの処理を説明する。
【００７２】
制御部２００は、リセット部２１０からリセット信号を受信すると、Ｓ６００に進む。すなわち、Ｓ６００において、初期化処理を開始する。また、制御部２００は、初期化処理の一部として、内部のＲＯＭやＲＡＭ等の内部回路の初期化、揮発性メモリ２８１、不揮発性メモリ２８２、第１通信部２４０、第２通信部２４２の初期化等を行う。また、初期化処理の一部として、制御部２００は、システムプログラム及びアプリケーションプログラムをＲＯＭから読み出してよい。また、蓄電部３３０の充電も開始される。Ｓ６００の処理は、図５のフローチャートのＳ５００の処理と同じである。
【００７３】
Ｓ６０２において、制御部２００は、初期化処理の一部として、不揮発性メモリ２８２に記憶されているバックアップデータを揮発性メモリ２８１に転送する。続いて、Ｓ６０４において、制御部２００は、バックアップデータの転送後に行うべき残りの初期化処理を行い、初期化処理を完了させる。
【００７４】
Ｓ６０４の処理の後、Ｓ６０６に進む。Ｓ６０６の処理は、図５のフローチャートのＳ５０２の処理と同様である。すなわち、制御部２００は、Ｓ６０６において、電圧監視部３００からバックアップ可能情報が出力されているか否かを判断する。電圧監視部３００からバックアップ可能情報が出力されていない場合は、電圧監視部３００からバックアップ可能情報が出力されるまで、Ｓ６０６の判断を繰り返す。
【００７５】
Ｓ６０６において、制御部２００が電圧監視部３００からバックアップ可能情報が出力されていると判断した場合、図５のＳ５１０に進む。Ｓ５１０以降の処理は、図５に関連して説明した処理と同じであるので、その説明を省略する。
【００７６】
図６に示すフローチャートの処理によれば、蓄電部３３０の充電に並行して、揮発性メモリ２８１にバックアップデータを転送することができるので、電源が投入されてから通常処理を開始するまでの立ち上げ時間を短縮することができる。また、バックアップするべきデータ量が増えると蓄電部３３０の容量も増やす必要があるが、蓄電部３３０の容量の増大に伴い、蓄電部３３０を規定の充電率まで充電するのに要する時間が長くなる。しかし、図６に示すフローチャートの処理によれば、立ち上げ時間が長くなることを抑制できる。
【００７７】
以上の説明においては、低電圧検出部２３０は、電源遮断割り込みにより、電源遮断を制御部２００に通知するものとした。しかし、電源遮断を通知する方法は、割り込みに限らない。低電圧検出部２３０は、制御部２００のレジスタに、電源遮断が生じているか否かを示す値を書き込んでよい。制御部２００は、低電圧検出部２３０により書き込まれたレジスタの値に基づいて、電源遮断が発生したか否かを判断してよい。
【００７８】
以上に説明したように、一実施形態における制御システム１０は、制御装置としてＰＬＣを用いたＰＬＣシステムである。他の形態において、制御システムは、分散制御システム（ＤＣＳ）であり得る。また、ＣＰＵモジュール１００は、組み込みシステムの一例である。ＣＰＵモジュール１００に関連して説明した機能及び構成の少なくとも一部は、制御システムにおける制御装置に限らず、バックアップ及びリストアの少なくとも一方を行う任意の組み込みシステムに適用できる。
【００７９】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【００８０】
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【００８１】
１０  制御システム
２０  管理装置
４０  被制御機器
１００  ＣＰＵモジュール
１２０  ＩＯモジュール
１８０  電源モジュール
２００  制御部
２１０  リセット部
２２０  電源部
２３０  低電圧検出部
２４０  第１通信部
２４２  第２通信部
２８１  揮発性メモリ
２８２  不揮発性メモリ
２９０  バス
３００  電圧監視部
３１０  ダイオード
３２０  ダイオード
３３０  蓄電部
３５０  スイッチング電源
３９０  ノード
【図１】
2018026101.tif 000003
【図２】
2018026101.tif 000004
【図３】
2018026101.tif 000005
【図４】
2018026101.tif 000006
【図５】
2018026101.tif 000007
【図６】
2018026101.tif 000008